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]