Hi Kyle I may be missing something but I opened up your zip and looked
at the test and found this, with the maven import commented out:
@Override
protected List<Option> getChildOptionList() {
List<Option> list = new ArrayList<Option>();
list.add(vmOption(
"-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" ));
list.add(logProfile());
list.add(systemProperty(
"org.ops4j.pax.logging.DefaultServiceLog.level" ).value( "DEBUG" ));
//list.add(mavenBundle("pax-parent", "pax-parent",
"1.0.0-SNAPSHOT"));
list.add(workingDirectory("working/1"));
list.add(new Customizer() {
public InputStream customizeTestProbe( InputStream
testProbe )
throws Exception {
TinyBundle newBundle =
TinyBundles.modifyBundle(testProbe).add(BasePaxTest.class);
//newBundle.set(Constants.REQUIRE_BUNDLE,
"pax-parent");
//newBundle.set(Constants.IMPORT_PACKAGE,
"com.example*");
testProbe = newBundle.build();
return testProbe;
}
});
return list;
}
If I'm understanding this with the few seconds that I looked at it,
the bundle you need is not a part of the classpath yet.
On Thu, Dec 23, 2010 at 11:29 AM, Kyle Miller <[email protected]> wrote:
> (Thank you in advance for any direction you can give.)
>
> I am having trouble trying to run a pax exam test that extends from a class
> in another bundle.
>
> My setup contains two bundles:
>
> pax-parent - contains abstract class with most pax exam configuration
>
> pax-child - contains extended class with some config.
>
> When I run the class in pax-child as a jUnit test, it installs my bundles,
> starts equinox, and then when it tries to call the test, I get a
> NoClassDefFound exception referring to the base class in the pax-parent
> bundle:
>
> Pax Exam 1.2.2 from OPS4J - http://www.ops4j.org
> ------------------------------------------------
>
> [ JUnit4TestMethod] - Starting test runTestSteps
> [equinox](com.example.BasePaxTest)
> [ PaxRunnerTestContainer] - Starting up the test container (Pax
> Runner 1.5.0 )
> [ PaxRunnerTestContainer] - Acquire lock for new Pax Runner instance
> on /Users/millkyl/Documents/workspace-trunk/pax-child/working/1/paxexam.lock
> [ ConfigurationImpl] - Using config
> [classpath:META-INF/runner.properties]
> [ Run] - Using only arguments from command line
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.ops4j.pax.exam/pax-exam/1....@1]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.ops4j.pax.exam/pax-exam-junit-extender/1....@1]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.ops4j.pax.exam/pax-exam-junit-extender-impl/1....@1]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.ops4j.pax.url/pax-url-mvn/0.4.0]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:wrap:mvn:org.ops4j.base/ops4j-base-util/0....@update]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:wrap:mvn:org.ops4j.pax.exam/pax-exam-container-default/1....@update]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:wrap:mvn:org.ops4j.pax.exam/pax-exam-junit/1....@update]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.junit/com.springsource.org.junit/4....@1]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.ops4j.pax.exam/pax-exam-container-rbc/1....@1]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-composite:mvn:org.ops4j.pax.runner.profiles/log//composite]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.apache.felix/org.apache.felix.configadmin/1.2.4]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.ops4j.pax.logging/pax-logging-api/1.5.1]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.ops4j.pax.logging/pax-logging-service/1.5.1]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-composite:mvn:org.ops4j.pax.runner.profiles/log//composite]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.apache.felix/org.apache.felix.configadmin/1.2.4]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.ops4j.pax.logging/pax-logging-api/1.5.1]
> [ ProvisionServiceImpl] - Scan bundles from
> [scan-bundle:mvn:org.ops4j.pax.logging/pax-logging-service/1.5.1]
> [ Run] - Provision bundle
> [mvn:org.ops4j.pax.exam/pax-exam/1.2.2, at start level 1, bundle will be
> started, bundle will be loaded from the cache]
> [ Run] - Provision bundle
> [mvn:org.ops4j.pax.exam/pax-exam-junit-extender/1.2.2, at start level 1,
> bundle will be started, bundle will be loaded from the cache]
> [ Run] - Provision bundle
> [mvn:org.ops4j.pax.exam/pax-exam-junit-extender-impl/1.2.2, at start level
> 1, bundle will be started, bundle will be loaded from the cache]
> [ Run] - Provision bundle
> [mvn:org.ops4j.pax.url/pax-url-mvn/0.4.0, at default start level, bundle
> will be started, bundle will be loaded from the cache]
> [ Run] - Provision bundle
> [wrap:mvn:org.ops4j.base/ops4j-base-util/0.5.3, at default start level,
> bundle will be started, bundle will be re-downloaded]
> [ Run] - Provision bundle
> [wrap:mvn:org.ops4j.pax.exam/pax-exam-container-default/1.2.2, at default
> start level, bundle will be started, bundle will be re-downloaded]
> [ Run] - Provision bundle
> [wrap:mvn:org.ops4j.pax.exam/pax-exam-junit/1.2.2, at default start level,
> bundle will be started, bundle will be re-downloaded]
> [ Run] - Provision bundle
> [mvn:org.junit/com.springsource.org.junit/4.4.0, at start level 1, bundle
> will be started, bundle will be loaded from the cache]
> [ Run] - Provision bundle
> [mvn:org.ops4j.pax.exam/pax-exam-container-rbc/1.2.2, at start level 1,
> bundle will be started, bundle will be loaded from the cache]
> [ Run] - Provision bundle
> [mvn:org.apache.felix/org.apache.felix.configadmin/1.2.4, at default start
> level, bundle will be started, bundle will be loaded from the cache]
> [ Run] - Provision bundle
> [mvn:org.ops4j.pax.logging/pax-logging-api/1.5.1, at default start level,
> bundle will be started, bundle will be loaded from the cache]
> [ Run] - Provision bundle
> [mvn:org.ops4j.pax.logging/pax-logging-service/1.5.1, at default start
> level, bundle will be started, bundle will be loaded from the cache]
> [ PlatformImpl] - Preparing framework [Equinox 3.6.0]
> [ PlatformImpl] - Downloading bundles...
> [ StreamUtils] -
> wrap:mvn:org.ops4j.base/ops4j-base-util/0.5.3 : downloading...
> [ StreamUtils] -
> wrap:mvn:org.ops4j.base/ops4j-base-util/0.5.3 : 15808 bytes @ [ 526kBps ]
> [ StreamUtils] -
> wrap:mvn:org.ops4j.pax.exam/pax-exam-container-default/1.2.2 :
> downloading...
> [ StreamUtils] -
> wrap:mvn:org.ops4j.pax.exam/pax-exam-container-default/1.2.2 : 35051 bytes @
> [ 1298kBps ]
> [ StreamUtils] -
> wrap:mvn:org.ops4j.pax.exam/pax-exam-junit/1.2.2 : downloading...
> [ StreamUtils] -
> wrap:mvn:org.ops4j.pax.exam/pax-exam-junit/1.2.2 : 29417 bytes @ [ 1838kBps
> ]
> [ ExecutionEnvironment] - Using execution environment [J2SE-1.6]
> [ DefaultJavaRunner] - Runner has successfully finished his job!
>
> [ PaxRunnerTestContainer] - Test container (Pax Runner 1.5.0) started
> in 4541 millis
> [ PaxRunnerTestContainer] - Wait for test container to finish its
> initialization for 300000 millis
> Listening for transport dt_socket at address: 5005
> [org.ops4j.pax.exam.rbc.internal.Activator] : RMI registry started on port
> [1099]
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Enabling SLF4J API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Enabling Jakarta Commons Logging API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Enabling Log4J API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Enabling Avalon Logger API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Enabling JULI Logger API support.
> [ RemoteBundleContextClient] - Remote bundle context found after 2180
> millis
> [ RawBuilder] - Copy thread finished.
> [RMI TCP Connection(1)-10.15.1.17] INFO
> org.ops4j.pax.exam.rbc.internal.RemoteBundleContextImpl - Install bundle
> from URL
> [file:/var/folders/5J/5JLin7oUG9GXEhGIIJKiGU+++TI/-Tmp-/tb/tinybundles_2e604b2e930e1edfe39b11ab14d83c29c1b12b58.bin]
> [RMI TCP Connection(1)-10.15.1.17] INFO
> org.ops4j.pax.exam.rbc.internal.RemoteBundleContextImpl - Look up service
> [org.osgi.service.startlevel.StartLevel], timeout in 0 millis
> [RMI TCP Connection(1)-10.15.1.17] INFO
> org.ops4j.pax.exam.junit.extender.impl.internal.TestBundleObserver - Found
> test: com.example.child.ChildPaxTest.runTestSteps
> [RMI TCP Connection(1)-10.15.1.17] INFO
> org.ops4j.pax.exam.junit.extender.impl.internal.TestBundleObserver -
> Registered testcase [com.example.child.ChildPaxTest.runTestSteps]
> [ JUnit4TestMethod] - Starting test runTestSteps
> [equinox](com.example.BasePaxTest)
> [RMI TCP Connection(1)-10.15.1.17] INFO
> org.ops4j.pax.exam.rbc.internal.RemoteBundleContextImpl - Remote call of
> [org.ops4j.pax.exam.junit.extender.CallableTestMethod.call]
> [RMI TCP Connection(1)-10.15.1.17] INFO
> org.ops4j.pax.exam.rbc.internal.RemoteBundleContextImpl - Look up service
> [org.ops4j.pax.exam.junit.extender.CallableTestMethod], timeout in 0 millis
> [ PaxRunnerTestContainer] - Shutting down the test container (Pax
> Runner)
>
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Disabling SLF4J API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Disabling Jakarta Commons Logging API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Disabling Log4J API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Disabling Avalon Logger API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
> : Disabling JULI Logger API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.exam.junit.extender.impl.internal.TestBundleObserver]
> : Unregistered testcase [com.example.child.ChildPaxTest.runTestSteps]
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.exam.rbc.internal.Activator]
> : RMI registry stopped
>
> [ DefaultJavaRunner] - Platform has been shutdown.
>
> The exception:
> java.lang.NoClassDefFoundError: BasePaxTest
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:580)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:550)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:481)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:469)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:449)
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:469)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1197)
> at
> org.ops4j.pax.exam.junit.extender.impl.internal.CallableTestMethodImpl.call(CallableTestMethodImpl.java:99)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.ops4j.pax.exam.rbc.internal.RemoteBundleContextImpl.remoteCall(RemoteBundleContextImpl.java:80)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> at sun.rmi.transport.Transport$1.run(Transport.java:159)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> at
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:680)
> Caused by: java.lang.ClassNotFoundException: BasePaxTest
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> ... 39 more
>
>
> I added a Customizer option to the child test to try to include the parent
> class in my test probe to no avail. I tried deploying the parent bundle and
> importing the parent class in my test probe to no avail.
>
> Should I be able to do this? Can anyone give me an idea of where I am going
> wrong?
>
> (For reference, I have included the contrived projects I am working with.
> If the attachments cannot be delivered, I would be happy to post them on the
> web somewhere.)
>
> Again, thank you in advance.
>
> Kyle Miller
> Pax Exam Enthusiast.
>
> _______________________________________________
> general mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/general
>
>
_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general