[jira] Updated: (OPENJPA-14) PCEnhancer ant task requires openjpa jars to be on the system classpath or passed into ant with '-lib'

2006-08-17 Thread Bryan Noll (JIRA)
 [ http://issues.apache.org/jira/browse/OPENJPA-14?page=all ]

Bryan Noll updated OPENJPA-14:
--

Attachment: OPENJPA-14.patch1

Attaching patch named: OPENJPA-14.patch1

So, the issue reported originally was not a problem with the code, but a known 
problem with ant, as can be seen here: 
http://ant.apache.org/faq.html#delegating-classloader-1.6

The real fix for this is better documentation, which I will throw together.  I 
updated the 'no-product-derivations' in the 
'openjpa-kernel/src/main/resources/org/apache/openjpa/conf/localizer.properties'
 file to provide a hint to people who would've run into the same issue I did.


The rest of the patch is to deal with another issue in the same realm as this 
one, ant that is the fact that the PCEnhancerTask would throw a NPE if you 
didn't have 'META-INF/persistence.xml' on your system classpath, in 
$ANT_HOME/lib or supply the dir it was in via the 'ant -lib' argument.  To 
resolve this, I created a new required attribute for the PCEnhancerTask, named 
'configFile'... that allows the location of the config file to be declared when 
running the task.

Please provide feedback on the patch if you think I didn't grasp the context of 
what was going on at a higher level and potentially screwed something else up.

> 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
>
>
> 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.(OpenJPAConfigurationImpl.java:510)
> at 
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.(OpenJPAConfigurationImpl.java:160)
> at 
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.(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.(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




[jira] Updated: (OPENJPA-14) PCEnhancer ant task requires openjpa jars to be on the system classpath or passed into ant with '-lib'

2006-08-17 Thread Bryan Noll (JIRA)
 [ http://issues.apache.org/jira/browse/OPENJPA-14?page=all ]

Bryan Noll updated OPENJPA-14:
--

Attachment: OPENJPA-14.patch2

Attaching patch named: OPENJPA-14.patch2

Ignore 'OPENJPA-14.patch1 ', I forgot to make the test class I added as part of 
it.  That's the only difference between this one and that.

> 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.(OpenJPAConfigurationImpl.java:510)
> at 
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.(OpenJPAConfigurationImpl.java:160)
> at 
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.(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.(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




[jira] Updated: (OPENJPA-14) PCEnhancer ant task requires openjpa jars to be on the system classpath or passed into ant with '-lib'

2006-08-17 Thread Bryan Noll (JIRA)
 [ http://issues.apache.org/jira/browse/OPENJPA-14?page=all ]

Bryan Noll updated OPENJPA-14:
--

Attachment: OPENJPA-14.patch3

Attaching patch file: OPENJPA-14.patch3

Ignore patch1 and patch2

Thanks for pointing out the 'properties' and 'propertiesFile' values... that's 
exactly what I thought was missing and what I needed.  The patch is a simple 
update to give someone a hint about where their jars need to go so they don't 
get the original MissingResourceException.

> 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, OPENJPA-14.patch3
>
>
> 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.(OpenJPAConfigurationImpl.java:510)
> at 
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.(OpenJPAConfigurationImpl.java:160)
> at 
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.(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.(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




[jira] Updated: (OPENJPA-14) PCEnhancer ant task requires openjpa jars to be on the system classpath or passed into ant with '-lib'

2006-08-17 Thread Bryan Noll (JIRA)
 [ http://issues.apache.org/jira/browse/OPENJPA-14?page=all ]

Bryan Noll updated OPENJPA-14:
--

Attachment: OPENJPA-14.patch4

Attaching patch: OPENJPA-14.patch4

This throws a MetaDataException now instead of an NPE.

> 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, OPENJPA-14.patch3, 
> OPENJPA-14.patch4
>
>
> 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.(OpenJPAConfigurationImpl.java:510)
> at 
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.(OpenJPAConfigurationImpl.java:160)
> at 
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.(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.(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