openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthew T. Adams (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OPENJPA-2063) OpenJPA Maven plugin's enhancer doesn't include test output directory when enhancing during process-test-classes phase
Date Wed, 30 Nov 2011 13:37:39 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-2063?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13160047#comment-13160047
] 

Matthew T. Adams commented on OPENJPA-2063:
-------------------------------------------

@Vermeulen, that was it.  Removing <classes> & <includes> with <goal>test-enhance</goal>
works as expected.  I didn't see that goal in the docs list.

OpenJPA team, I'd say that there is still a bug here, because, as you can see in the pom,
I am specifying the location of classes in the configuration:

                        <configuration>
                            <persistenceXmlFile>${project.build.testOutputDirectory}/META-INF/persistence.xml</persistenceXmlFile>
                            <!-- THIS IS BEING IGNORED !!! -->
                            <classes>${project.build.testOutputDirectory}</classes>
                            <includes>${project.build.testOutputDirectory}/**/*.class</includes>
                            <toolProperties>
                                <openjpa.Log>log4j</openjpa.Log>
                            </toolProperties>
                        </configuration>

The enhancer is ignoring my instructions and I don't see an error or warning that they're
being ignored.  I argue that this should still work.
                
> OpenJPA Maven plugin's enhancer doesn't include test output directory when enhancing
during process-test-classes phase
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2063
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2063
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: Enhance, tooling
>    Affects Versions: 2.1.1
>         Environment: Win7 64-bit, javac 1.6.0_26, Apache Maven 2.2.1 (r801777; 2009-08-06
14:16:01-0500), openjpa-maven-plugin 1.2
>            Reporter: Matthew T. Adams
>              Labels: enhancement, maven, process-test-classes
>         Attachments: openjpa-maven-plugin-bug.zip
>
>
> I'm attempting to enhance via the maven plugin entities that are in src/test/java &
that are compiled to target/test-classes.  The persistence.xml file is also located under
target/test-classes (since it comes from src/test/resources/META-INF/persistence.xml).  Enhancement
is failing because .../target/test-classes is not on the classpath that the enhancer uses
(see trace below).
> Steps to reproduce:
> 1. Create a Maven project that includes OpenJPA dependencies & the Maven OpenJPA
plugin.
> 2. Create an @Entity class in src/test/java/org/example/entity/Foo.java.  Note this is
in src/test/java, not src/main/java.
> 3. Put a persistence.xml file in src/test/resources/META-INF/persistence.xml that names
Foo as an entity:
> <?xml version="1.0" encoding="UTF-8"?>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
>     version="2.0">
>     <persistence-unit name="application"
>         transaction-type="RESOURCE_LOCAL">
>         <class>org.example.entity.Foo</class>
>         <exclude-unlisted-classes>true</exclude-unlisted-classes>
>     </persistence-unit>
> </persistence>
> 4. Configure the openjpa-maven-plugin as below.  Note phase is "process-test-classes"
& classes argument is "${project.build.testOutputDirectory}".
>                     <plugin>
>                         <groupId>org.codehaus.mojo</groupId>
>                         <artifactId>openjpa-maven-plugin</artifactId>
>                         <version>1.2</version>
>                         <executions>
>                             <execution>
>                                 <id>enhancer</id>
>                                 <phase>process-test-classes</phase>
>                                 <goals>
>                                     <goal>enhance</goal>
>                                 </goals>
>                             </execution>
>                         </executions>
>                         <configuration>
>                             <classes>${project.build.testOutputDirectory}</classes>
>                         </configuration>
>                     </plugin>
> 5. Issue maven command "mvn -X clean test".
> 6. Suspicion of missing classpath element ".../target/test-classes" is further reinforced
if you include the plugin argument <persistenceXmlFile> and set its value to "${project.build.testOutputDirectory}/META-INF/persistence.xml".
 Plugin then finds persistence.xml, but complains about not finding class Foo (which it can't
because the plug-in doesn't include .../target/test-classes on the classpath at enhancement
time).
> MAVEN OUTPUT TRACE:
> ===================
> [DEBUG] Configuring mojo 'org.codehaus.mojo:openjpa-maven-plugin:1.2:enhance' -->
> [DEBUG]   (f) addDefaultConstructor = true
> [DEBUG]   (f) classes = C:\Perforce\p4serv1.online.ea.com_1999\matthewadams_win7\nucleus\SANDBOX\madams\nextgen\shard-test-example\target\test-classes
> [DEBUG]   (f) compileClasspathElements = [C:\Perforce\p4serv1.online.ea.com_1999\matthewadams_win7\nucleus\SANDBOX\madams\nextgen\shard-test-example\target\classes,
C:\Users\madams\.m2\repository\org\eclipse\persistence\javax.persistence\2.0.0\javax.persistence-2.0.0.jar,
C:\Users\madams\.m2\repository\javax\validation\validation-api\1.0.0.GA\validation-api-1.0.0.GA.jar,
C:\Users\madams\.m2\repository\org\hibernate\hibernate-validator\4.1.0.Final\hibernate-validator-4.1.0.Final.jar,
C:\Users\madams\.m2\repository\org\slf4j\slf4j-api\1.6.2\slf4j-api-1.6.2.jar, C:\Users\madams\.m2\repository\org\springframework\spring-context-support\3.1.0.RC1\spring-context-support-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\org\springframework\spring-beans\3.1.0.RC1\spring-beans-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\org\springframework\spring-core\3.1.0.RC1\spring-core-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\org\springframework\spring-asm\3.1.0.RC1\spring-asm-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar,
C:\Users\madams\.m2\repository\org\springframework\spring-context\3.1.0.RC1\spring-context-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\org\springframework\spring-aop\3.1.0.RC1\spring-aop-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar, C:\Users\madams\.m2\repository\org\springframework\spring-expression\3.1.0.RC1\spring-expression-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\org\springframework\spring-orm\3.1.0.RC1\spring-orm-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\org\springframework\spring-jdbc\3.1.0.RC1\spring-jdbc-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\org\springframework\spring-tx\3.1.0.RC1\spring-tx-3.1.0.RC1.jar,
C:\Users\madams\.m2\repository\cglib\cglib\2.2.2\cglib-2.2.2.jar, C:\Users\madams\.m2\repository\asm\asm\3.3.1\asm-3.3.1.jar,
C:\Users\madams\.m2\repository\commons-dbcp\commons-dbcp\1.2.2\commons-dbcp-1.2.2.jar, C:\Users\madams\.m2\repository\commons-pool\commons-pool\1.3\commons-pool-1.3.jar,
C:\Users\madams\.m2\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar, C:\Users\madams\.m2\repository\org\slf4j\slf4j-log4j12\1.6.2\slf4j-log4j12-1.6.2.jar,
C:\Users\madams\.m2\repository\org\apache\openjpa\openjpa\2.1.1\openjpa-2.1.1.jar, C:\Users\madams\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar,
C:\Users\madams\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar,
C:\Users\madams\.m2\repository\net\sourceforge\serp\serp\1.13.1\serp-1.13.1.jar, C:\Users\madams\.m2\repository\org\apache\geronimo\specs\geronimo-jms_1.1_spec\1.1.1\geronimo-jms_1.1_spec-1.1.1.jar,
C:\Users\madams\.m2\repository\org\apache\geronimo\specs\geronimo-jta_1.1_spec\1.1.1\geronimo-jta_1.1_spec-1.1.1.jar,
C:\Users\madams\.m2\repository\org\apache\derby\derby\10.8.1.2\derby-10.8.1.2.jar]
> [DEBUG]   (f) enforcePropertyRestrictions = false
> [DEBUG]   (f) forceMojoExecution = false
> [DEBUG]   (f) includes = **/*.class
> [DEBUG]   (f) project = MavenProject: org.example:shard-test:1.0.1.CI-SNAPSHOT @ C:\Perforce\p4serv1.online.ea.com_1999\matthewadams_win7\nucleus\SANDBOX\madams\nextgen\shard-test-example\pom.xml
> [DEBUG]   (f) skip = false
> [DEBUG]   (f) tmpClassLoader = false
> [DEBUG]   (f) toolProperties = {}
> [DEBUG] -- end configuration --
> [INFO] [openjpa:enhance {execution: enhancer}]
> [DEBUG] Added classpathElement URL file:/C:/Perforce/p4serv1.online.ea.com_1999/matthewadams_win7/nucleus/SANDBOX/madams/nextgen/shard-test-example/target/classes/
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/eclipse/persistence/javax.persistence/2.0.0/javax.persistence-2.0.0.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/hibernate/hibernate-validator/4.1.0.Final/hibernate-validator-4.1.0.Final.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/slf4j/slf4j-api/1.6.2/slf4j-api-1.6.2.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-context-support/3.1.0.RC1/spring-context-support-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-beans/3.1.0.RC1/spring-beans-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-core/3.1.0.RC1/spring-core-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-asm/3.1.0.RC1/spring-asm-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-context/3.1.0.RC1/spring-context-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-aop/3.1.0.RC1/spring-aop-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-expression/3.1.0.RC1/spring-expression-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-orm/3.1.0.RC1/spring-orm-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-jdbc/3.1.0.RC1/spring-jdbc-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/springframework/spring-tx/3.1.0.RC1/spring-tx-3.1.0.RC1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/cglib/cglib/2.2.2/cglib-2.2.2.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/asm/asm/3.3.1/asm-3.3.1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/commons-pool/commons-pool/1.3/commons-pool-1.3.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/log4j/log4j/1.2.16/log4j-1.2.16.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/slf4j/slf4j-log4j12/1.6.2/slf4j-log4j12-1.6.2.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/apache/openjpa/openjpa/2.1.1/openjpa-2.1.1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/net/sourceforge/serp/serp/1.13.1/serp-1.13.1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1.1/geronimo-jms_1.1_spec-1.1.1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar
> [DEBUG] Added classpathElement URL file:/C:/Users/madams/.m2/repository/org/apache/derby/derby/10.8.1.2/derby-10.8.1.2.jar
> [INFO] ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO] ------------------------------------------------------------------------
> [INFO] MetaDataFactory could not be configured (conf.newMetaDataFactoryInstance() returned
null). This might mean that no configuration properties were found. Ensure that you have a
META-INF/persistence.xml file, that it is available in your classpath, or that the properties
file you are using for configuration is available. If you are using Ant, please see the <properties>
or <propertiesFile> attributes of the task's nested <config> element. This can
also occur if your OpenJPA distribution jars are corrupt, or if your security policy is overly
strict.
> [INFO] ------------------------------------------------------------------------
> [DEBUG] Trace
> <openjpa-2.0.0-r422266:935683 fatal user error> org.apache.openjpa.util.MetaDataException:
MetaDataFactory could not be configured (conf.newMetaDataFactoryInstance() returned null).
This might mean that no configuration properties were found. Ensure that you have a META-INF/persistence.xml
file, that it is available in your classpath, or that the properties file you are using for
configuration is available. If you are using Ant, please see the <properties> or <propertiesFile>
attributes of the task's nested <config> element. This can also occur if your OpenJPA
distribution jars are corrupt, or if your security policy is overly strict.
> 	at org.apache.openjpa.meta.MetaDataRepository.initializeMetaDataFactory(MetaDataRepository.java:1873)
> 	at org.apache.openjpa.meta.MetaDataRepository.endConfiguration(MetaDataRepository.java:1854)
> 	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:507)
> 	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:432)
> 	at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
> 	at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
> 	at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> 	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:939)
> 	at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4618)
> 	at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4600)
> 	at org.apache.openjpa.enhance.PCEnhancer$1.run(PCEnhancer.java:4570)
> 	at org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:725)
> 	at org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:710)
> 	at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4565)
> 	at org.codehaus.mojo.openjpa.AbstractOpenJpaEnhancerMojo.enhance(AbstractOpenJpaEnhancerMojo.java:136)
> 	at org.codehaus.mojo.openjpa.AbstractOpenJpaEnhancerMojo.execute(AbstractOpenJpaEnhancerMojo.java:95)
> 	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
> 	at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
> 	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.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
> 	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
> 	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
> 	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 4 seconds
> [INFO] Finished at: Mon Oct 24 12:42:06 CDT 2011
> [INFO] Final Memory: 32M/265M
> [INFO] ------------------------------------------------------------------------

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message