[ https://issues.apache.org/jira/browse/OPENJPA-482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Schlaikjer updated OPENJPA-482: ------------------------------------ Component/s: build / infrastructure Priority: Minor (was: Major) > PCEnhancer Ant task unable to find persistence.xml in default location with > explicit classpath definition > --------------------------------------------------------------------------------------------------------- > > Key: OPENJPA-482 > URL: https://issues.apache.org/jira/browse/OPENJPA-482 > Project: OpenJPA > Issue Type: Bug > Components: build / infrastructure > Affects Versions: 1.0.1 > Environment: Linux, Apache Ant 1.7.0, Sun JDK 1.6.0_01-b06 > Reporter: Andy Schlaikjer > Priority: Minor > > I've noticed some irregular behavior from the PCEnhancer's "openjpac" Ant > task: When I specify a custom classpath for the task using an embedded > <classpath> element, the task is unable to properly locate my persistence.xml > file in the default "META-INF/persistence.xml" location relative to this > path. I must explicitly specify the location of the persistence.xml file > using the "propertiesFile" attribute of the nested "config" element. > Here's an outline of the layout of my project files: > project/ > build.xml > lib/classes/...(compiled class files)... > lib/classes/log4j.properties > lib/classes/META-INF/persistence.xml > The relevant code from build.xml: > <path id="build.classpath"> > <fileset dir="${basedir}/lib"> > <include name="**/*.jar" /> > <exclude name="**/${dist.name}.jar" /> > </fileset> > </path> > ... > <taskdef name="openjpac" > classname="org.apache.openjpa.ant.PCEnhancerTask" > classpathref="build.classpath" /> > <openjpac> > <classpath> > <pathelement location="${basedir}/lib/classes" /> > <path refid="build.classpath"/> > </classpath> > </openjpac> > If i modify the openjpac element as follows, the persistence.xml file is > picked up: > <openjpac> > <classpath> > <pathelement location="${basedir}/lib/classes" /> > <path refid="build.classpath"/> > </classpath> > <config > propertiesFile="${basedir}/lib/classes/META-INF/persistence.xml"/> > </openjpac> > Here's an additional point of interest: In my persistence.xml file I set > <property name="openjpa.Log" value="log4j" /> to enable Log4j logging within > OpenJPA. Notice that I have my log4j.properties file in the root of my > classpath hierarchy, where it should be automatically found by Log4j on > initialization. When I run ant using the second configuration listed above, I > see this output: > [openjpac] log4j:WARN No appenders could be found for logger > (openjpa.Runtime). > [openjpac] log4j:WARN Please initialize the log4j system properly. > My log4j properties file does contain all required configuration, but it > isn't being found by Log4j, just like the PCEnhancer task isn't picking up my > persistence.xml from the specified classpath. Perhaps the PCEnhancer task is > somehow incorrectly incorporating this classpath, or failing to pass it along > on initialization? Perhaps to get this to work properly a new runtime must be > created (fork) so the classpath is available to everything uniformly? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.