You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Andrus Adamchik <an...@objectstyle.org> on 2006/08/10 22:59:33 UTC

[SOLVED, sort of] -javaagent in integration tests

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: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org