Florin Jurcovici created OPENJPA-2779:
-----------------------------------------

             Summary: ReverseMappingTool doesn't load persistence.xml
                 Key: OPENJPA-2779
                 URL: https://issues.apache.org/jira/browse/OPENJPA-2779
             Project: OpenJPA
          Issue Type: Bug
          Components: jdbc
    Affects Versions: 3.0.0
         Environment: $uname -a
Linux vasile 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux

$ java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

            Reporter: Florin Jurcovici


Steps to reproduce:

# download the openjpa zip for version 3.0.0, decompress it into a directory
# download the mariadb jdbc driver into the same directory
# in the same directory, create a subdirectory META-INF, then create a 
hibernate.xml file, based on the model from [this 
page|https://openjpa.apache.org/builds/3.0.0/apache-openjpa/docs/jpa_overview_persistence.html]
# create another directory, named src, inside the directory where the jars are
# replace the database url, driver name, username and password  with values 
specific to local setup
# run this command:

{code}java -cp ./:mariadb-java-client-2.4.0.jar:openjpa-all-3.0.0.jar 
org.apache.openjpa.jdbc.meta.ReverseMappingTool -pkg entities -d ./src{code}

Expected: for each table in the database appearing in the url, an entity class 
is generated inside the entities package.

Actual: a stack trace is printed to stdout:

{code}9  INFO   [main] openjpa.Tool - The reverse mapping tool will run on the 
database.  The tool is gathering schema information; this process may take some 
time.  Enable the org.apache.openjpa.jdbc.Schema logging category to see 
messages about schema data.
Exception in thread "main" <openjpa-3.0.0-r422266:1833209 fatal user error> 
org.apache.openjpa.util.UserException: The persistence provider is attempting 
to use properties in the persistence.xml file to resolve the data source. A 
Java Database Connectivity (JDBC) driver or data source class name must be 
specified in the openjpa.ConnectionDriverName or javax.persistence.jdbc.driver 
property. The following properties are available in the configuration: 
"org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl@f248234b". 
        at 
org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:71)
        at 
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:850)
        at 
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:733)
        at 
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:879)
        at 
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource2(JDBCConfigurationImpl.java:921)
        at 
org.apache.openjpa.jdbc.schema.SchemaGenerator.<init>(SchemaGenerator.java:86)
        at 
org.apache.openjpa.jdbc.meta.ReverseMappingTool.run(ReverseMappingTool.java:2027)
        at 
org.apache.openjpa.jdbc.meta.ReverseMappingTool.run(ReverseMappingTool.java:2005)
        at 
org.apache.openjpa.jdbc.meta.ReverseMappingTool.run(ReverseMappingTool.java:1882)
        at 
org.apache.openjpa.jdbc.meta.ReverseMappingTool$1.run(ReverseMappingTool.java:1863)
        at 
org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:762)
        at 
org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:747)
        at 
org.apache.openjpa.jdbc.meta.ReverseMappingTool.main(ReverseMappingTool.java:1858){code}

I downloaded the source code, and tried to run the same task in the IDE. I 
can't find any place in the code where the file META-INF/persistence.xml is 
loaded, so this is pretty much expected behavior, from how much I understood 
after spending half an hour or so with the source code.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to