Ok, looks like I found the problem - when using "-javaagent" option, all agent dependencies have to be passed as "-bootclasspath" in <argLine/>. I'll see if I can decouple the agent from the rest of the framework. In the meantime, is there a Maven environment variable that I can reference in the POM that gives me a full dependency classpath?

Thanks
Andrus


On Aug 9, 2006, at 10:00 PM, Andrus Adamchik wrote:

I am having trouble using instrumentation API with Surefire. The project pom can be found here - [1]. Essentially, no matter whether I start mvn with "-javaagent" in MAVEN_OPTS, or use fork with <argLine>, I am getting an exception (see below). When I start unit tests with a main method of a regular Java class, it works.

Any insights? See error details below.

Thanks
Andrus

[1] https://svn.apache.org/repos/asf/incubator/cayenne/sandbox/ itest-unit1/pom.xml


ERROR 1. With childDelegation=false (the agent is loaded but ClassLoader blows during the test:

[INFO] Surefire report directory: /Users/andrus/work/jpa-itests/ itest-unit1/target/surefire-reports
*** CayenneAgent starting...

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.apache.cayenne.jpa.itest.entity.EntityClassTest
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.061 sec <<< FAILURE! testFieldBasedPersistence (org.apache.cayenne.jpa.itest.entity.EntityClassTest) Time elapsed: 0.016 sec <<< ERROR! java.lang.NoClassDefFoundError: javax/persistence/spi/ PersistenceProvider
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java: 260)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java: 268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java: 319)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java: 260)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java: 268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass (IsolatedClassLoader.java:100) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java: 319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:242)
at org.apache.cayenne.jpa.itest.Unit1TestHelper.<init> (Unit1TestHelper.java:44) at org.apache.cayenne.jpa.itest.Unit1TestHelper.<clinit> (Unit1TestHelper.java:32) at org.apache.cayenne.jpa.itest.entity.EntityClassTest.testFieldBasedPers istence(EntityClassTest.java:33)

ERROR 2: Without child delegation (agent loaded, but no instrumentation is available to the tests):

*** CayenneAgent starting...

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.apache.cayenne.jpa.itest.entity.EntityClassTest
cayenne WARN [main 08-09 21:59:12] InstrumentingUnit: *** No instrumentation instance present. Check the -javaagent: option Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.554 sec <<< FAILURE! testFieldBasedPersistence (org.apache.cayenne.jpa.itest.entity.EntityClassTest) Time elapsed: 0.512 sec <<< ERROR!
java.lang.IllegalArgumentException: entity must be Persistent
at org.apache.cayenne.jpa.cspi.CjpaEntityManager.checkEntityType (CjpaEntityManager.java:116) at org.apache.cayenne.jpa.cspi.CjpaEntityManager.persistInternal (CjpaEntityManager.java:48) at org.apache.cayenne.jpa.JpaEntityManager.persist (JpaEntityManager.java:95) at org.apache.cayenne.jpa.itest.entity.EntityClassTest.testFieldBasedPers istence(EntityClassTest.java:36)







---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to