[arquillian-issues] [JBoss JIRA] (ARQ-1050) Drone fails to instantiate drivers when operadriver isn't on classpath

Bartosz Majsak (JIRA) jira-events at lists.jboss.org
Wed Nov 13 03:46:06 EST 2013


    [ https://issues.jboss.org/browse/ARQ-1050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923036#comment-12923036 ] 

Bartosz Majsak commented on ARQ-1050:
-------------------------------------

I believe this problem should be rethink. I will give you an example from yesterday's Hackergarten at Devoxx.

We were working on Drone-powered tests of [AngularJS application|https://github.com/vorburger/mifosx-ui-selenium-webdriver-tests/pull/2] and we wanted to run it using jetty embedded. And here's the classpath hell:
* phantomjs has it's own jetty 
* htmlunit another one

But if I remove any of them I simply can use Drone at all. Is it really necessary to follow all-or-nothing strategy?
                
> Drone fails to instantiate drivers when operadriver isn't on classpath
> ----------------------------------------------------------------------
>
>                 Key: ARQ-1050
>                 URL: https://issues.jboss.org/browse/ARQ-1050
>             Project: Arquillian
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Extension - Drone
>    Affects Versions: drone_1.1.0.CR2
>            Reporter: Lukáš Fryč
>            Assignee: Karel Piwko
>            Priority: Critical
>
> When {{operadriver}} isn't included on classpath, Drone fails to instantiate {{HtmlUnitDriver}}.
> Likely other browser drivers are affected as well.
> {code}
> java.lang.NoClassDefFoundError: com/opera/core/systems/OperaDriver
> 	at java.lang.Class.getDeclaredMethods0(Native Method)
> 	at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
> 	at java.lang.Class.getDeclaredMethods(Class.java:1808)
> 	at org.jboss.arquillian.core.impl.Reflections.getObserverMethods(Reflections.java:52)
> 	at org.jboss.arquillian.core.impl.ExtensionImpl.of(ExtensionImpl.java:51)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.inject(ManagerImpl.java:198)
> 	at org.jboss.arquillian.core.impl.InjectorImpl.inject(InjectorImpl.java:58)
> 	at org.jboss.arquillian.core.impl.loadable.ServiceRegistryLoader.createServiceInstance(ServiceRegistryLoader.java:108)
> 	at org.jboss.arquillian.core.impl.loadable.ServiceRegistryLoader.all(ServiceRegistryLoader.java:55)
> 	at org.jboss.arquillian.drone.impl.DroneRegistrar.registerConfigurators(DroneRegistrar.java:84)
> 	at org.jboss.arquillian.drone.impl.DroneRegistrar.register(DroneRegistrar.java:77)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:601)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> 	at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:601)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
> 	at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:68)
> 	at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:97)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: java.lang.ClassNotFoundException: com.opera.core.systems.OperaDriver
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> 	... 35 more
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the arquillian-issues mailing list