So... before I got update the jira, I want to go make sure it's not something stupid I'm doing.

Classpath defined like this in ant...

   <path id="project.classpath">
       <pathelement location="${basedir}/lib/commons-collections-3.2.jar"/>
       <pathelement location="${basedir}/lib/commons-lang-2.1.jar"/>
       <pathelement location="${basedir}/lib/commons-logging-1.0.4.jar"/>
       <pathelement location="${basedir}/lib/commons-pool-1.3.jar"/>
       <pathelement location="${basedir}/lib/derby-10.1.3.1.jar"/>
<pathelement location="${basedir}/lib/geronimo-j2ee-connector_1.5_spec-1.0.1.jar"/> <pathelement location="${basedir}/lib/geronimo-jms_1.1_spec-1.0.1.jar"/> <pathelement location="${basedir}/lib/geronimo-jta_1.0.1B_spec-1.0.1.jar"/>
       <pathelement location="${basedir}/lib/openjpa-jdbc-0.9.0.jar"/>
       <pathelement location="${basedir}/lib/openjpa-jdbc-5-0.9.0.jar"/>
       <pathelement location="${basedir}/lib/openjpa-kernel-0.9.0.jar"/>
       <pathelement location="${basedir}/lib/openjpa-kernel-4-0.9.0.jar"/>
       <pathelement location="${basedir}/lib/openjpa-kernel-5-0.9.0.jar"/>
       <pathelement location="${basedir}/lib/openjpa-lib-0.9.0.jar"/>
<pathelement location="${basedir}/lib/openjpa-persistence-0.9.0.jar"/> <pathelement location="${basedir}/lib/openjpa-persistence-jdbc-0.9.0.jar"/>
       <pathelement location="${basedir}/lib/openjpa-project-0.9.0.jar"/>
       <pathelement location="${basedir}/lib/openjpa-xmlstore-0.9.0.jar"/>
       <pathelement location="${basedir}/lib/persistence-api-1.0.jar"/>
       <pathelement location="${basedir}/lib/serp-1.11.0.jar"/>
   </path>

(have also tried it like....)

   <path id="project.classpath">
       <fileset dir="${basedir}/lib" includes="*.jar"/>
   </path>


===========

Task defined like...

<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
       <classpath refid="project.classpath" />
   </taskdef>

Target defined like...

   <target name="enhance-src">
       <openjpac>
           <classpath refid="project.classpath"/>
           <fileset dir=".">
<include name="${basedir}/src/main/java/tutorial/persistence/*.java" />
           </fileset>
       </openjpac>
   </target>


and I still get that same MissingResourceException...

When digging into the Services.getImplementors(String serviceName, ClassLoader loader) method, I print out all the URL's returned by a call to URLClassLoader.getURLs, and it gives me the following:

file:/c:/tools/apache-ant-1.6.5/lib/ant-antlr.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-bcel.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-bsf.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-log4j.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-oro.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-regexp.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-resolver.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-commons-logging.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-commons-net.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-icontract.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-jai.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-javamail.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-jdepend.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-jmf.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-jsch.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-junit.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-launcher.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-netrexx.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-nodeps.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-starteam.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-stylebook.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-swing.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-trax.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-vaj.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-weblogic.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-xalan1.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-xslp.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant.jar
file:/c:/tools/apache-ant-1.6.5/lib/junit-3.8.1.jar
file:/c:/tools/apache-ant-1.6.5/lib/junit.jar
file:/c:/tools/apache-ant-1.6.5/lib/xercesImpl.jar
file:/c:/tools/apache-ant-1.6.5/lib/xml-apis.jar
file:/c:/tools/jdk1.5.0_06/lib/tools.jar


Obviously, the 'META-INF/services/org.apache.openjpa.conf.ProductDerivation' file is not gonna be in any of those libraries.

What am I missing?

Neil Hornbeck (JIRA) wrote:
[ http://issues.apache.org/jira/browse/OPENJPA-8?page=comments#action_12427870 ] Neil Hornbeck commented on OPENJPA-8:
-------------------------------------

Updated to revision 431325.  I am now able to us the Enhancer from the command 
line.

java.util.MissingResourceException: system is missing product derivations
-------------------------------------------------------------------------

                Key: OPENJPA-8
                URL: http://issues.apache.org/jira/browse/OPENJPA-8
            Project: OpenJPA
         Issue Type: Bug
        Environment: Windows 2000, using ant build.
           Reporter: Neil Hornbeck
           Priority: Blocker

I am trying to run the openjpac from within ant.  I am getting the error that 
the file META-INF/services/org.apache.openjpa.conf.ProductDerivation is missing 
but it is right on the classpath that the Enhancer is running from.
+++
 [openjpac] java.lang.ExceptionInInitializerError
 [openjpac]     at 
org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigurationImpl.java:516)
 [openjpac]     at 
org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigurationImpl.java:165)
 [openjpac]     at 
org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigurationImpl.java:155)
 [openjpac]     at 
org.apache.openjpa.ant.PCEnhancerTask.newConfiguration(PCEnhancerTask.java:77)
 [openjpac]     at 
org.apache.openjpa.lib.ant.AbstractTask.getConfiguration(AbstractTask.java:89)
 [openjpac]     at 
org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:84)
 [openjpac]     at 
org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:153)
 [openjpac]     at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 [openjpac]     at org.apache.tools.ant.Task.perform(Task.java:364)
 [openjpac]     at org.apache.tools.ant.Target.execute(Target.java:341)
 [openjpac]     at org.apache.tools.ant.Target.performTasks(Target.java:369)
 [openjpac]     at 
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
 [openjpac]     at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
 [openjpac]     at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
 [openjpac]     at 
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
 [openjpac]     at org.apache.tools.ant.Main.runBuild(Main.java:668)
 [openjpac]     at org.apache.tools.ant.Main.startAnt(Main.java:187)
 [openjpac]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
 [openjpac]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
 [openjpac] Caused by: java.util.MissingResourceException: Your system is 
missing product derivations.  Product derivations provide configuration options 
for supported da
ta stores and specifications.  You must have a 
META-INF/services/org.apache.openjpa.conf.ProductDerivation file in your 
classpath listing the available derivation classes
, and some listed class must be instantiable.  Typically this file is bundled 
as part of the distribution.  Have you unbundled it, or unbundled its listed 
classes?
 [openjpac]     at 
org.apache.openjpa.conf.ProductDerivations.<clinit>(ProductDerivations.java:53)
 [openjpac]     ... 19 more

Reply via email to