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

Andy Schlaikjer commented on OPENJPA-482:
-----------------------------------------

I've fallen back on using an explicit <java> task to invoke the enhancer:

<java failonerror="true"
          fork="true"
          classname="org.apache.openjpa.enhance.PCEnhancer">
      <classpath>
        <pathelement location="${basedir}/lib/classes" />
        <path refid="build.classpath" />
      </classpath>
    </java>

This allows both the persistence.xml and log4j.properties files to be 
recognized automatically.

> 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
>    Affects Versions: 1.0.1
>         Environment: Linux, Apache Ant 1.7.0, Sun JDK 1.6.0_01-b06
>            Reporter: Andy Schlaikjer
>
> 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.

Reply via email to