[ http://issues.apache.org/jira/browse/OPENJPA-14?page=comments#action_12428817 ] Bryan Noll commented on OPENJPA-14: -----------------------------------
I thought about making it optional, but it just seemed odd to me that you'd have to have 'META-INF/persistence.xml' in one of the places I mentioned earlier... 1) system classpath 2)$ANT_HOME/lib 3) ant -lib dir_where_META_INF_is 4) I forgot about this before... but a 4th would be ${user.home}/.ant/lib ...in particular, the first two options seem like a round peg in a square hole. Making it optional would be easy, but I just thought making it required would save users the problem of having to get that on their classpath. Maybe I'm not seeing the use case? Like I said though, changing it to optional is trivial. > PCEnhancer ant task requires openjpa jars to be on the system classpath or > passed into ant with '-lib' > ------------------------------------------------------------------------------------------------------ > > Key: OPENJPA-14 > URL: http://issues.apache.org/jira/browse/OPENJPA-14 > Project: OpenJPA > Issue Type: Bug > Components: lib > Environment: Windows XP > Reporter: Bryan Noll > Assigned To: Bryan Noll > Attachments: OPENJPA-14.patch1, OPENJPA-14.patch2 > > > Ideally, one should be able to run 'ant openjpac' (openjpac would be a > target defined in the build script that would use the PCEnhancer task) > without having to put the openjpa jars on the system classpath or having to > pass them into ant vie the '-lib' argument. Currently this is not possible. > The root of the issue can be seen from by looking at the public static > String[] getImplementors(String serviceName, ClassLoader loader) method of > the Services class. Basically, the call to > loader = Thread.currentThread().getContextClassLoader(); > returns a ClassLoader with the $ANT_HOME\lib\*.jar and > $JAVA_HOME\lib\tools.jar in it... which obviously doesn't contain > 'META-INF/services/org.apache.openjpa.conf.ProductDerivation' > The exception seen when encountering this issue: > java.lang.ExceptionInInitializerError > at > org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigurationImpl.java:510) > at > org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigurationImpl.java:160) > at > org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigurationImpl.java:151) > at > org.apache.openjpa.ant.PCEnhancerTask.newConfiguration(PCEnhancerTask.java:77) > at > org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:170) > at > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) > at org.apache.tools.ant.Task.perform(Task.java:364) > at org.apache.tools.ant.Target.execute(Target.java:341) > at org.apache.tools.ant.Target.performTasks(Target.java:369) > at > org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) > at org.apache.tools.ant.Project.executeTarget(Project.java:1185) > at > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40) > at org.apache.tools.ant.Project.executeTargets(Project.java:1068) > at org.apache.tools.ant.Main.runBuild(Main.java:668) > at org.apache.tools.ant.Main.startAnt(Main.java:187) > at org.apache.tools.ant.launch.Launcher.run(Launcher.java:251) > at org.apache.tools.ant.launch.Launcher.main(Launcher.java:72) > Caused by: java.util.MissingResourceException: Your system is missing product > derivations. Product derivations provide configuration options for supported > data 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? > at > org.apache.openjpa.conf.ProductDerivations.<clinit>(ProductDerivations.java:53) > ... 17 more -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira