I still haven't been able to get ant to work. The svn update I did today seemed to fix the java command line. There is definitely a difference in the way that the and task invokes the enhancer and how it works from the command line. I used the batch file (windows) below. You can specify your classes, but I just let the enhancer find my persistence.xml and work from that.
echo off set proj=D:\Personal\projects\MyMoney set lib=%proj%\openjpa-0.9.0\lib set cp=%lib%\commons-collections-3.2.jar set cp=%cp%;%lib%\commons-lang-2.1.jar set cp=%cp%;%lib%\commons-logging-1.0.4.jar set cp=%cp%;%lib%\commons-pool-1.3.jar set cp=%cp%;%lib%\derby-10.1.3.1.jar set cp=%cp%;%lib%\geronimo-j2ee-connector_1.5_spec-1.0.1.jar set cp=%cp%;%lib%\geronimo-jms_1.1_spec-1.0.1.jar set cp=%cp%;%lib%\geronimo-jta_1.0.1B_spec-1.0.1.jar set cp=%cp%;%lib%\openjpa-jdbc-0.9.0.jar set cp=%cp%;%lib%\openjpa-jdbc-5-0.9.0.jar set cp=%cp%;%lib%\openjpa-kernel-0.9.0.jar set cp=%cp%;%lib%\openjpa-kernel-4-0.9.0.jar set cp=%cp%;%lib%\openjpa-kernel-5-0.9.0.jar set cp=%cp%;%lib%\openjpa-lib-0.9.0.jar set cp=%cp%;%lib%\openjpa-persistence-0.9.0.jar set cp=%cp%;%lib%\openjpa-persistence-jdbc-0.9.0.jar set cp=%cp%;%lib%\openjpa-project-0.9.0.jar set cp=%cp%;%lib%\openjpa-xmlstore-0.9.0.jar set cp=%cp%;%lib%\persistence-api-1.0.jar set cp=%cp%;%lib%\serp-1.11.0.jar echo using classpath: %cp% java -cp %cp%;%proj%\build\classes org.apache.openjpa.enhance.PCEnhancer -----Original Message----- From: Bryan Noll [mailto:[EMAIL PROTECTED] Sent: Monday, August 14, 2006 3:25 PM To: [email protected] Subject: Re: [jira] Commented: (OPENJPA-8) java.util.MissingResourceException: system is missing product derivations 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_1242 7870 ] > > 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>(OpenJPAConfigura tionImpl.java:516) >> [openjpac] at org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigura tionImpl.java:165) >> [openjpac] at org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigura tionImpl.java:155) >> [openjpac] at org.apache.openjpa.ant.PCEnhancerTask.newConfiguration(PCEnhancerTask.ja va:77) >> [openjpac] at org.apache.openjpa.lib.ant.AbstractTask.getConfiguration(AbstractTask.ja va: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(DefaultExecut or.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.j ava:53) >> [openjpac] ... 19 more >> > >
