Date   

Re: DN 6.0.0-M1 released

Page bloom
 

So on further reading I realized Oracle has just separated out JEE stuff to Eclipse. I had previously misunderstood Oracle's stance to imply that all non "core Java" libraries using javax.* packaging were being separated out to jakarta.* land.


Re: DN 6.0.0-M1 released

Page bloom
 

Ah cool. It was my understanding that any 'javax.*' packages would have to be renamed.


Re: DN 6.0.0-M1 released

Andy
 

No. It's nothing to do with 'java ee'.


Re: DN 6.0.0-M1 released

Page bloom
 

Will the JDO API have to undergo a similar Jakartification?


ResultClass cannot inherit class with same field names?

ebenzacar@...
 
Edited

Hi,

 

I'm not sure if this is a bug or by design.  I have raised an issue in the Datanucleus-rdbms project at https://github.com/datanucleus/datanucleus-rdbms/issues/384, but not sure which forum is better suited to discuss the finding(s).

I noticed that when specifying a ResultClass in an SQL query, if the ResultClass extends a base class with a same-name field, an exception is thrown.  However, the exception message is misleading:

Result Class query field names are not case sensitive. It does not allow fields with same name, but in a different case. For instance, the field "name" is conflicting.
org.datanucleus.exceptions.NucleusUserException: Result Class query field names are not case sensitive. It does not allow fields with same name, but in a different case. For instance, the field "name" is conflicting.
From the exception, I would expect that fields with the same name, and the same case are permitted.  However, this indicates otherwise.
Is this a bug or by design?  If a bug, I have submitted a proposed PR to resolve the issue.


Thanks,
 
Eric


Re: How to use Queries that do not start with "SELECT" but return a data set?

Andy
 

Since RDBMS datastores each have their own dialect, and since they have such a wide variety of random stuff you can put into an SQL statement, it is necessary to categorise statements and use the appropriate JDBC execute method. As a result, "non standard" stuff like your statement won't be caught.

If you want to make that linked example (the call to "getInternalQuery().setType(...)") accessible via a standard JDO method you could contribute a GitHub PullRequest that provides an "extension" for the query type and specify the "type" through that, and then call "query.addExtension(...)".


How to use Queries that do not start with "SELECT" but return a data set?

ebenzacar@...
 
Edited

My DBA has prepared some custom SQL queries that he does not want to put into StoredProcs.  So I want to execute them via a normal Query.executeResultList().  However, I noticed that if the query does not start with "SELECT", then DN only returns a boolean "TRUE".  

For instance, the query looks something like the following:

WITH 
 tab1 AS (SELECT 1 col1),
 tab2 AS (SELECT 2 col2)
SELECT
tab1.col1
   ,tab2.col2
FROM tab1
JOIN tab2 ON tab1.col1 <> tab2.col2

 
 
From a quick look at the code, I see that the `org.datanucleus.store.query.Query#executeQuery` first parses the SQL Query to identify if it is a SELECTBULK_UPDATEBULK_DELETEBULK_INSERT or OTHER.  I presume a fix would be to update the `org.datanucleus.store.rdbms.query.SQLQuery` parser to somehow detect this, but it seems like that could be a little difficult to parse appropriately (many edge cases).


Alternatively, is there another JDO way to execute the query and get the result set?    I noticed there is an example here (https://www.datanucleus.org/products/accessplatform/jdo/query.html#stored_procedures_as_sql), but that uses internal/DataNucleus libs/dependencies.  Is there anyway while remaining implementation agnostic?

Thanks,

Eric


Re: How to use PreparedStatements with the Persistence Manager?

ebenzacar@...
 

Thanks for the link.  I had tried a github search for PreparedStatement on the samples repo, but hadn't thought of searching for tests.  I had not realized that the JDOConnection could simply be cast to a Connection; that resolves my issue cleanly.  

Thanks,

Eric


Re: How to use PreparedStatements with the Persistence Manager?

Andy
 
Edited

The JDO spec is public, as is the JDO TCK which will have tests. Also this test.


How to use PreparedStatements with the Persistence Manager?

ebenzacar@...
 
Edited

I have a few pieces of code that use native PreparedStatements, but am having trouble using them in conjunction with the PersistenceManager.  The current approach is:


Connection conn = (Connection)persistenceManager.getDataStoreConnection.getNativeConnection();
PreparedStatement stm = conn.prepareStatement("delete from Athletes where id=?");
stm.setLong(
1, 12345);
stm.execute();
stm.close();
conn.close();


While this works, the problem I have is that when I try to continue to use the PM afterwards, or access any Objects retrieved prior to this snippet of code, I get the following error message:

org.datanucleus.exceptions.NucleusUserException: The Connection was acquired by the developer and must be closed before using the persistence API.
        at org.datanucleus.store.connection.ConnectionManagerImpl.getManagedConnection(ConnectionManagerImpl.java:310)
        at org.datanucleus.store.connection.ConnectionManagerImpl.allocateManagedConnection(ConnectionManagerImpl.java:349)
        at org.datanucleus.store.connection.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:213)
        at org.datanucleus.store.connection.ConnectionManager.getConnection(ConnectionManager.java:62)
        at org.datanucleus.store.rdbms.scostore.JoinSetStore.iterator(JoinSetStore.java:888)
        at org.datanucleus.store.types.wrappers.backed.Set.loadFromStore(Set.java:292)
        at org.datanucleus.store.types.wrappers.backed.Set.iterator(Set.java:468)


I have managed to track the issue down to fact that the NativeConnection is being closed instead of the DataStoreConnection being closed.

Does JDO spec identify/specify the requirements/contract for using PreparedStatements?  Or is this part of the DN implementation only?  Are there any examples that I can review to help identify best practices for using PreparedStatements within DataNucleus (I couldn't find anything in the datanucleus/samples-jdo repo)?  I did find a snippet of code on the DN Persistence pages but I'm not sure if I need to close the native connection as well or not.

If, instead of using the PM.getDataSource().getNativeConnection(), I were to use the PMF to get a brand new PM and new NativeConnection, if I only close the native connection (ie: nativeConnection.close()), will that cause a memory leak?  Am I always required to close the JDOConnection as well?

Thanks,

Eric


Re: Problems with Java 16

claudio_rosati@...
 

Thank you Andy for your reply.

I've modified my master POM file to use the pluginManagement section and magically everything now works (probably there was some wrong dependency somewhere, probably with ASM which now I'll use it in ver. 9.1). Now that DN v6.0.0.m1 is released I'm able to use DN directly from Maven rather than using my local build.

Thank you for your help. If I'll have problems with the new version I'll let you know.


Re: Does JDO provide a hook/trigger to identify a transaction commit/boundary?

Andy
 

Look at JDO spec 13.4.3, you can call
transaction.setSynchronization(...)
and be notified via the (standard) beforeCompletion/afterCompletion methods.

Note that this is for a transaction itself. It will not include NON-TRANSACTIONAL ops which are ... not transactional.


Does JDO provide a hook/trigger to identify a transaction commit/boundary?

ebenzacar@...
 

I'm working on migrating legacy code that was using the OpenJPA Transaction Listener to identify a transaction boundary (commit) to trigger some post-commit functionality.  The logic is a bit messy, but the idea is that after a commit is completed, an MQ message must be published to trigger some asynchronous processing.  It is critical that the MQ message only be published after the commit as the MQ Client only has access to the persisted data and must only be triggered one the commit is confirmed.
`
The legacy code is leveraging the OpenJPA `org.apache.openjpa.event.EndTransactionListener#afterCommit()` listener to trigger the message publishing.

Is there any similar constructs that I can use with JDO?  The closest I have found are the JDO Lifecycle listeners, but those unfortunately provide triggers on the individual objects and not the transaction as a whole.  I noticed that the DN TransactionImpl has listeners n(org.datanucleus.TransactionEventListener) that I could likely leverage, but that would then imply that I need to have dependencies on the Impl instead of just the JDO standard.

Am I overlooking anything?


DN 6.0.0-M1 released

Andy
 

DN v6.0.0.m1 is released.

Notable changes are
  • Minimum Java requirement v11. Upgraded ASM to v9.1 to provide for all current bytecode.
  • Support for Jakarta Persistence v3.0+ API. The JPA API is effectively discontinued at its current v2.2 and it continues life as Jakarta Persistence API. DataNucleus continues to support the JPA API v2.2 for those people who don't want to repackage annotations and API classes for little benefit. For those that want any future benefits from this API they can now make use of Jakarta Persistence API with DataNucleus. You can use metadata (XML/annotations) from any of the persistence specs (JDO, JPA, Jakarta) with any of the persistence API's (JDO, JPA, Jakarta) interchangeably with DataNucleus.
  • Various bug fixes and improvements.

Report any problems in the normal way with associated testcase or, better still, get involved and provide Pull Requests.


Re: Problems with Java 16

Andy
 
Edited

Thanks for the info. Since I don't have Java16, and unlikely to ever have it (not an extended lifetime release AFAIK), I cant confirm or otherwise. You can provide a GitHub pull request for the maven-bundle-plugin, or anything else. I (currently) use Java 11 (for DN v6), so don't meet such things.

No need to rebuild Maven plugin since there is nothing in there post 6.0.0-m1

You need to talk to ASM people if you want to resolve bytecode issues. "datanucleus-core" master branch uses (repackaged) ASM v9.1 (which is the latest version according to https://repo1.maven.org/maven2/org/ow2/asm/asm/ ), so supports what that handles. You could look at the setting of this line; I simply left it unchanged at upgrade of ASM, but likely needs bumping, try it and see


Re: Problems with Java 16

claudio_rosati@...
 

Hello Andy,

I've cloned DataNucleus Core, JDO API plugin, RDBMS plugin, and Maven Plugin, and built them with Java 16.

First problem: DataNucleus Core, JDO API plugin, and RDBMS plugin require the addition of <version>5.1.2</version> to the maven-bundle-plugin to avoid a concurrent modification exception (I think this change is needed from Java 15).

Second problem, I'm still unable to have my project built. The error is the following (I've used the Maven -X option for a bit of debugging info):

--- datanucleus-maven-plugin:6.0.0-m2-SNAPSHOT:enhance (default) @ ginestra.plugins.materials ---
Dependency collection stats {ConflictMarker.analyzeTime=130500, ConflictMarker.markTime=48400, ConflictMarker.nodeCount=26, ConflictIdSorter.graphTime=36900, ConflictIdSorter.topsortTime=19900, ConflictIdSorter.conflictIdCount=16, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=286100, ConflictResolver.conflictItemCount=24, DefaultDependencyCollector.collectTime=49947400, DefaultDependencyCollector.transformTime=544700}
org.datanucleus:datanucleus-maven-plugin:jar:6.0.0-m2-SNAPSHOT
   org.codehaus.plexus:plexus-utils:jar:3.3.0:compile
   org.apache.maven:maven-artifact:jar:3.8.1:compile
      org.apache.commons:commons-lang3:jar:3.8.1:compile
   org.apache.maven:maven-plugin-api:jar:3.8.1:compile
      org.apache.maven:maven-model:jar:3.8.1:compile
      org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:compile
         javax.enterprise:cdi-api:jar:1.0:compile
            javax.annotation:jsr250-api:jar:1.0:compile
            javax.inject:javax.inject:jar:1:compile
         org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:compile
         org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile
      org.codehaus.plexus:plexus-classworlds:jar:2.6.0:compile
   org.codehaus.plexus:plexus-container-default:jar:2.1.0:compile
      org.apache.xbean:xbean-reflect:jar:3.7:compile
      com.google.collections:google-collections:jar:1.0:compile
Created new class realm plugin>org.datanucleus:datanucleus-maven-plugin:6.0.0-m2-SNAPSHOT
Importing foreign packages into class realm plugin>org.datanucleus:datanucleus-maven-plugin:6.0.0-m2-SNAPSHOT
  Imported:  < maven.api
Populating class realm plugin>org.datanucleus:datanucleus-maven-plugin:6.0.0-m2-SNAPSHOT
  Included: org.datanucleus:datanucleus-maven-plugin:jar:6.0.0-m2-SNAPSHOT
  Included: org.codehaus.plexus:plexus-utils:jar:3.3.0
  Included: org.apache.commons:commons-lang3:jar:3.8.1
  Included: javax.enterprise:cdi-api:jar:1.0
  Included: org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4
  Included: org.codehaus.plexus:plexus-component-annotations:jar:1.5.5
  Included: org.apache.xbean:xbean-reflect:jar:3.7
  Included: com.google.collections:google-collections:jar:1.0
Configuring mojo org.datanucleus:datanucleus-maven-plugin:6.0.0-m2-SNAPSHOT:enhance from plugin realm ClassRealm[plugin>org.datanucleus:datanucleus-maven-plugin:6.0.0-m2-SNAPSHOT, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@73d16e93]
Configuring mojo 'org.datanucleus:datanucleus-maven-plugin:6.0.0-m2-SNAPSHOT:enhance' with basic configurator -->
  (f) alwaysDetachable = false
  (f) api = JDO
  (f) classpathElements = [C:\Users\crosati165522\Projects\ginestra\guijava\ginestra.plugins.module\ginestra.plugins.materials.module\target\classes, C:\Users\crosati165522\.m2\repository\com\vdurmont\semver4j\3.1.0\semver4j-3.1.0.jar, C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.core.db\3.3.0-SNAPSHOT-60b1f83a\ginestra.core.db-3.3.0-SNAPSHOT-60b1f83a.jar, C:\Users\crosati165522\.m2\repository\org\apache\derby\derby\10.14.2.0\derby-10.14.2.0.jar, C:\Users\crosati165522\.m2\repository\org\datanucleus\javax.jdo\3.2.0-m13\javax.jdo-3.2.0-m13.jar, C:\Users\crosati165522\.m2\repository\javax\transaction\transaction-api\1.1\transaction-api-1.1.jar, C:\Users\crosati165522\.m2\repository\org\datanucleus\datanucleus-core\5.2.7\datanucleus-core-5.2.7.jar, C:\Users\crosati165522\.m2\repository\org\datanucleus\datanucleus-api-jdo\5.2.6\datanucleus-api-jdo-5.2.6.jar, C:\Users\crosati165522\.m2\repository\javax\cache\cache-api\1.1.1\cache-api-1.1.1.jar, C:\Users\crosati165522\.m2\repository\com\github\ben-manes\caffeine\jcache\3.0.2\jcache-3.0.2.jar, C:\Users\crosati165522\.m2\repository\com\github\ben-manes\caffeine\caffeine\3.0.2\caffeine-3.0.2.jar, C:\Users\crosati165522\.m2\repository\com\typesafe\config\1.4.1\config-1.4.1.jar, C:\Users\crosati165522\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar, C:\Users\crosati165522\.m2\repository\org\osgi\org.osgi.service.component.annotations\1.4.0\org.osgi.service.component.annotations-1.4.0.jar, C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.core\3.3.0-SNAPSHOT-60b1f83a\ginestra.core-3.3.0-SNAPSHOT-60b1f83a.jar, C:\Users\crosati165522\.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar, C:\Users\crosati165522\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar, C:\Users\crosati165522\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar, C:\Users\crosati165522\.m2\repository\org\slf4j\slf4j-api\2.0.0-alpha1\slf4j-api-2.0.0-alpha1.jar, C:\Users\crosati165522\.m2\repository\org\slf4j\slf4j-nop\2.0.0-alpha1\slf4j-nop-2.0.0-alpha1.jar, C:\Users\crosati165522\.m2\repository\org\slf4j\slf4j-simple\2.0.0-alpha1\slf4j-simple-2.0.0-alpha1.jar, C:\Users\crosati165522\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar, C:\Users\crosati165522\.m2\repository\io\reactivex\rxjava3\rxjava\3.0.13-RC4\rxjava-3.0.13-RC4.jar, C:\Users\crosati165522\.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar, C:\Users\crosati165522\.m2\repository\com\github\tomtung\latex2unicode_2.11\0.2.6\latex2unicode_2.11-0.2.6.jar, C:\Users\crosati165522\.m2\repository\org\scala-lang\scala-library\2.11.12\scala-library-2.11.12.jar, C:\Users\crosati165522\.m2\repository\com\lihaoyi\fastparse_2.11\1.0.0\fastparse_2.11-1.0.0.jar, C:\Users\crosati165522\.m2\repository\com\lihaoyi\fastparse-utils_2.11\1.0.0\fastparse-utils_2.11-1.0.0.jar, C:\Users\crosati165522\.m2\repository\com\lihaoyi\sourcecode_2.11\0.1.4\sourcecode_2.11-0.1.4.jar, C:\Users\crosati165522\.m2\repository\com\glazedlists\glazedlists\1.11.0\glazedlists-1.11.0.jar, C:\Users\crosati165522\.m2\repository\one\util\streamex\0.7.3\streamex-0.7.3.jar, C:\Users\crosati165522\.m2\repository\org\javatuples\javatuples\1.2\javatuples-1.2.jar, C:\Users\crosati165522\.m2\repository\org\zeroturnaround\zt-zip\1.14\zt-zip-1.14.jar, C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.annotations\3.3.0-SNAPSHOT-60b1f83a\ginestra.annotations-3.3.0-SNAPSHOT-60b1f83a.jar, C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.core.ui\3.3.0-SNAPSHOT-60b1f83a\ginestra.core.ui-3.3.0-SNAPSHOT-60b1f83a.jar, C:\Users\crosati165522\.m2\repository\org\apache\commons\commons-text\1.9\commons-text-1.9.jar, C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-swing\1.0.1\jiconfont-swing-1.0.1.jar, C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont\1.0.0\jiconfont-1.0.0.jar, C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-elusive\2.0.3\jiconfont-elusive-2.0.3.jar, C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-entypo\2.0.3\jiconfont-entypo-2.0.3.jar, C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-font_awesome\4.7.0.1\jiconfont-font_awesome-4.7.0.1.jar, C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-google_material_design_icons\2.2.0.2\jiconfont-google_material_design_icons-2.2.0.2.jar, C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-open_iconic\1.1.1.3\jiconfont-open_iconic-1.1.1.3.jar, C:\Users\crosati165522\.m2\repository\org\atteo\evo-inflector\1.2.2\evo-inflector-1.2.2.jar, C:\Users\crosati165522\.m2\repository\com\fifesoft\rsyntaxtextarea\3.1.2\rsyntaxtextarea-3.1.2.jar, C:\Users\crosati165522\.m2\repository\com\jidesoft\jide-oss\3.6.18\jide-oss-3.6.18.jar, C:\Users\crosati165522\.m2\repository\com\miglayout\miglayout-swing\4.2\miglayout-swing-4.2.jar, C:\Users\crosati165522\.m2\repository\com\miglayout\miglayout-core\4.2\miglayout-core-4.2.jar, C:\Users\crosati165522\.m2\repository\org\swinglabs\swingx\swingx-all\1.6.5-1\swingx-all-1.6.5-1.jar, C:\Users\crosati165522\.m2\repository\net\engio\mbassador\1.3.2\mbassador-1.3.2.jar, C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.core.math\3.3.0-SNAPSHOT-60b1f83a\ginestra.core.math-3.3.0-SNAPSHOT-60b1f83a.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\synthetica.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\syntheticaBlackEye.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\syntheticaGreenDream.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\syntheticaSimple2D.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\syntheticaWhiteVision.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaAddons.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaBlackEyeAddon.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaGreenDreamAddon.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaSimple2DAddon.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaWhiteVisionAddon.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaAddonsWithThemes.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\jydocking.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\jytable.jar, C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\jywidgets.jar, C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.graphics3d\3.3.0-SNAPSHOT-60b1f83a\ginestra.graphics3d-3.3.0-SNAPSHOT-60b1f83a.jar, C:\Users\crosati165522\.m2\repository\commons-io\commons-io\2.8.0\commons-io-2.8.0.jar, C:\Users\crosati165522\.m2\repository\org\la4j\la4j\0.6.0\la4j-0.6.0.jar, C:\Users\crosati165522\.m2\repository\com\google\guava\guava\30.1.1-jre\guava-30.1.1-jre.jar, C:\Users\crosati165522\.m2\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar, C:\Users\crosati165522\.m2\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar, C:\Users\crosati165522\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar, C:\Users\crosati165522\.m2\repository\org\checkerframework\checker-qual\3.8.0\checker-qual-3.8.0.jar, C:\Users\crosati165522\.m2\repository\com\google\errorprone\error_prone_annotations\2.5.1\error_prone_annotations-2.5.1.jar, C:\Users\crosati165522\.m2\repository\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar, C:\Users\crosati165522\.m2\repository\net\sourceforge\jmol\jmol\14.31.10\jmol-14.31.10.jar, C:\ginestra-devenv\VTK-8.1.1\lib\vtk.jar]
  (f) detachListener = false
  (f) fork = false
  (f) generateConstructor = true
  (f) generatePK = true
  (f) ignoreMetaDataForMissingClasses = false
  (f) metadataDirectory = C:\Users\crosati165522\Projects\ginestra\guijava\ginestra.plugins.module\ginestra.plugins.materials.module\target\classes
  (f) metadataIncludes = **/*.jdo, **/*.class
  (f) pluginArtifacts = [org.datanucleus:datanucleus-maven-plugin:maven-plugin:6.0.0-m2-SNAPSHOT:, org.codehaus.plexus:plexus-utils:jar:3.3.0:compile, org.apache.maven:maven-artifact:jar:3.8.1:compile, org.apache.commons:commons-lang3:jar:3.8.1:compile, org.apache.maven:maven-plugin-api:jar:3.8.1:compile, org.apache.maven:maven-model:jar:3.8.1:compile, org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:compile, javax.enterprise:cdi-api:jar:1.0:compile, javax.annotation:jsr250-api:jar:1.0:compile, javax.inject:javax.inject:jar:1:compile, org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:compile, org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile, org.codehaus.plexus:plexus-classworlds:jar:2.6.0:compile, org.codehaus.plexus:plexus-container-default:jar:2.1.0:compile, org.apache.xbean:xbean-reflect:jar:3.7:compile, com.google.collections:google-collections:jar:1.0:compile]
  (f) quiet = false
  (f) useFileListFile = auto
  (f) verbose = true
-- end configuration --
Metadata Directory is : C:\Users\crosati165522\Projects\ginestra\guijava\ginestra.plugins.module\ginestra.plugins.materials.module\target\classes
  CP: C:\Users\crosati165522\.m2\repository\org\datanucleus\datanucleus-maven-plugin\6.0.0-m2-SNAPSHOT\datanucleus-maven-plugin-6.0.0-m2-SNAPSHOT.jar
  CP: C:\Users\crosati165522\.m2\repository\org\codehaus\plexus\plexus-utils\3.3.0\plexus-utils-3.3.0.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\maven\maven-artifact\3.8.1\maven-artifact-3.8.1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\maven\maven-plugin-api\3.8.1\maven-plugin-api-3.8.1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\maven\maven-model\3.8.1\maven-model-3.8.1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\eclipse\sisu\org.eclipse.sisu.plexus\0.3.4\org.eclipse.sisu.plexus-0.3.4.jar
  CP: C:\Users\crosati165522\.m2\repository\javax\enterprise\cdi-api\1.0\cdi-api-1.0.jar
  CP: C:\Users\crosati165522\.m2\repository\javax\annotation\jsr250-api\1.0\jsr250-api-1.0.jar
  CP: C:\Users\crosati165522\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\eclipse\sisu\org.eclipse.sisu.inject\0.3.4\org.eclipse.sisu.inject-0.3.4.jar
  CP: C:\Users\crosati165522\.m2\repository\org\codehaus\plexus\plexus-component-annotations\1.5.5\plexus-component-annotations-1.5.5.jar
  CP: C:\Users\crosati165522\.m2\repository\org\codehaus\plexus\plexus-classworlds\2.6.0\plexus-classworlds-2.6.0.jar
  CP: C:\Users\crosati165522\.m2\repository\org\codehaus\plexus\plexus-container-default\2.1.0\plexus-container-default-2.1.0.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\xbean\xbean-reflect\3.7\xbean-reflect-3.7.jar
  CP: C:\Users\crosati165522\.m2\repository\com\google\collections\google-collections\1.0\google-collections-1.0.jar
  CP: C:\Users\crosati165522\Projects\ginestra\guijava\ginestra.plugins.module\ginestra.plugins.materials.module\target\classes
  CP: C:\Users\crosati165522\.m2\repository\com\vdurmont\semver4j\3.1.0\semver4j-3.1.0.jar
  CP: C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.core.db\3.3.0-SNAPSHOT-60b1f83a\ginestra.core.db-3.3.0-SNAPSHOT-60b1f83a.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\derby\derby\10.14.2.0\derby-10.14.2.0.jar
  CP: C:\Users\crosati165522\.m2\repository\org\datanucleus\javax.jdo\3.2.0-m13\javax.jdo-3.2.0-m13.jar
  CP: C:\Users\crosati165522\.m2\repository\javax\transaction\transaction-api\1.1\transaction-api-1.1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\datanucleus\datanucleus-core\5.2.7\datanucleus-core-5.2.7.jar
  CP: C:\Users\crosati165522\.m2\repository\org\datanucleus\datanucleus-api-jdo\5.2.6\datanucleus-api-jdo-5.2.6.jar
  CP: C:\Users\crosati165522\.m2\repository\javax\cache\cache-api\1.1.1\cache-api-1.1.1.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\ben-manes\caffeine\jcache\3.0.2\jcache-3.0.2.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\ben-manes\caffeine\caffeine\3.0.2\caffeine-3.0.2.jar
  CP: C:\Users\crosati165522\.m2\repository\com\typesafe\config\1.4.1\config-1.4.1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\osgi\org.osgi.service.component.annotations\1.4.0\org.osgi.service.component.annotations-1.4.0.jar
  CP: C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.core\3.3.0-SNAPSHOT-60b1f83a\ginestra.core-3.3.0-SNAPSHOT-60b1f83a.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\slf4j\slf4j-api\2.0.0-alpha1\slf4j-api-2.0.0-alpha1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\slf4j\slf4j-nop\2.0.0-alpha1\slf4j-nop-2.0.0-alpha1.jar
  CP: C:\Users\crosati165522\.m2\repository\org\slf4j\slf4j-simple\2.0.0-alpha1\slf4j-simple-2.0.0-alpha1.jar
  CP: C:\Users\crosati165522\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar
  CP: C:\Users\crosati165522\.m2\repository\io\reactivex\rxjava3\rxjava\3.0.13-RC4\rxjava-3.0.13-RC4.jar
  CP: C:\Users\crosati165522\.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\tomtung\latex2unicode_2.11\0.2.6\latex2unicode_2.11-0.2.6.jar
  CP: C:\Users\crosati165522\.m2\repository\org\scala-lang\scala-library\2.11.12\scala-library-2.11.12.jar
  CP: C:\Users\crosati165522\.m2\repository\com\lihaoyi\fastparse_2.11\1.0.0\fastparse_2.11-1.0.0.jar
  CP: C:\Users\crosati165522\.m2\repository\com\lihaoyi\fastparse-utils_2.11\1.0.0\fastparse-utils_2.11-1.0.0.jar
  CP: C:\Users\crosati165522\.m2\repository\com\lihaoyi\sourcecode_2.11\0.1.4\sourcecode_2.11-0.1.4.jar
  CP: C:\Users\crosati165522\.m2\repository\com\glazedlists\glazedlists\1.11.0\glazedlists-1.11.0.jar
  CP: C:\Users\crosati165522\.m2\repository\one\util\streamex\0.7.3\streamex-0.7.3.jar
  CP: C:\Users\crosati165522\.m2\repository\org\javatuples\javatuples\1.2\javatuples-1.2.jar
  CP: C:\Users\crosati165522\.m2\repository\org\zeroturnaround\zt-zip\1.14\zt-zip-1.14.jar
  CP: C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.annotations\3.3.0-SNAPSHOT-60b1f83a\ginestra.annotations-3.3.0-SNAPSHOT-60b1f83a.jar
  CP: C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.core.ui\3.3.0-SNAPSHOT-60b1f83a\ginestra.core.ui-3.3.0-SNAPSHOT-60b1f83a.jar
  CP: C:\Users\crosati165522\.m2\repository\org\apache\commons\commons-text\1.9\commons-text-1.9.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-swing\1.0.1\jiconfont-swing-1.0.1.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont\1.0.0\jiconfont-1.0.0.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-elusive\2.0.3\jiconfont-elusive-2.0.3.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-entypo\2.0.3\jiconfont-entypo-2.0.3.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-font_awesome\4.7.0.1\jiconfont-font_awesome-4.7.0.1.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-google_material_design_icons\2.2.0.2\jiconfont-google_material_design_icons-2.2.0.2.jar
  CP: C:\Users\crosati165522\.m2\repository\com\github\jiconfont\jiconfont-open_iconic\1.1.1.3\jiconfont-open_iconic-1.1.1.3.jar
  CP: C:\Users\crosati165522\.m2\repository\org\atteo\evo-inflector\1.2.2\evo-inflector-1.2.2.jar
  CP: C:\Users\crosati165522\.m2\repository\com\fifesoft\rsyntaxtextarea\3.1.2\rsyntaxtextarea-3.1.2.jar
  CP: C:\Users\crosati165522\.m2\repository\com\jidesoft\jide-oss\3.6.18\jide-oss-3.6.18.jar
  CP: C:\Users\crosati165522\.m2\repository\com\miglayout\miglayout-swing\4.2\miglayout-swing-4.2.jar
  CP: C:\Users\crosati165522\.m2\repository\com\miglayout\miglayout-core\4.2\miglayout-core-4.2.jar
  CP: C:\Users\crosati165522\.m2\repository\org\swinglabs\swingx\swingx-all\1.6.5-1\swingx-all-1.6.5-1.jar
  CP: C:\Users\crosati165522\.m2\repository\net\engio\mbassador\1.3.2\mbassador-1.3.2.jar
  CP: C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.core.math\3.3.0-SNAPSHOT-60b1f83a\ginestra.core.math-3.3.0-SNAPSHOT-60b1f83a.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\synthetica.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\syntheticaBlackEye.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\syntheticaGreenDream.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\syntheticaSimple2D.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\syntheticaWhiteVision.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaAddons.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaBlackEyeAddon.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaGreenDreamAddon.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaSimple2DAddon.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaWhiteVisionAddon.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\syntheticaAddonsWithThemes.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\jydocking.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\jytable.jar
  CP: C:\Users\crosati165522\Projects\ginestra\libs\java\synthetica\addons\jywidgets.jar
  CP: C:\Users\crosati165522\.m2\repository\com\amat\mdlx\ginestra.graphics3d\3.3.0-SNAPSHOT-60b1f83a\ginestra.graphics3d-3.3.0-SNAPSHOT-60b1f83a.jar
  CP: C:\Users\crosati165522\.m2\repository\commons-io\commons-io\2.8.0\commons-io-2.8.0.jar
  CP: C:\Users\crosati165522\.m2\repository\org\la4j\la4j\0.6.0\la4j-0.6.0.jar
  CP: C:\Users\crosati165522\.m2\repository\com\google\guava\guava\30.1.1-jre\guava-30.1.1-jre.jar
  CP: C:\Users\crosati165522\.m2\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar
  CP: C:\Users\crosati165522\.m2\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
  CP: C:\Users\crosati165522\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar
  CP: C:\Users\crosati165522\.m2\repository\org\checkerframework\checker-qual\3.8.0\checker-qual-3.8.0.jar
  CP: C:\Users\crosati165522\.m2\repository\com\google\errorprone\error_prone_annotations\2.5.1\error_prone_annotations-2.5.1.jar
  CP: C:\Users\crosati165522\.m2\repository\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar
  CP: C:\Users\crosati165522\.m2\repository\net\sourceforge\jmol\jmol\14.31.10\jmol-14.31.10.jar
  CP: C:\ginestra-devenv\VTK-8.1.1\lib\vtk.jar
Java 9 or higher detected. Using modern classloader strategy.
log4j:WARN No appenders could be found for logger (DataNucleus.General).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
DataNucleus Enhancer (version 5.2.7) for API "JDO"
DataNucleus Enhancer : Classpath
>>  C:\ginestra-devenv\maven\apache-maven-3.8.1\bin\..\boot\plexus-classworlds-2.6.0.jar
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time:  11.579 s
Finished at: 2021-05-24T12:09:23+02:00
------------------------------------------------------------------------
Failed to execute goal org.datanucleus:datanucleus-maven-plugin:6.0.0-m2-SNAPSHOT:enhance (default) on project ginestra.plugins.materials: Error executing DataNucleus tool org.datanucleus.enhancer.DataNucleusEnhancer: InvocationTargetException: Unsupported class file major version 60 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.datanucleus:datanucleus-maven-plugin:6.0.0-m2-SNAPSHOT:enhance (default) on project ginestra.plugins.materials: Error executing DataNucleus tool org.datanucleus.enhancer.DataNucleusEnhancer
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:78)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error executing DataNucleus tool org.datanucleus.enhancer.DataNucleusEnhancer
    at org.datanucleus.maven.AbstractDataNucleusMojo.executeInJvm (AbstractDataNucleusMojo.java:362)
    at org.datanucleus.maven.AbstractEnhancerMojo.enhance (AbstractEnhancerMojo.java:289)
    at org.datanucleus.maven.AbstractEnhancerMojo.executeDataNucleusTool (AbstractEnhancerMojo.java:81)
    at org.datanucleus.maven.AbstractDataNucleusMojo.execute (AbstractDataNucleusMojo.java:126)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:78)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:78)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.datanucleus.maven.AbstractDataNucleusMojo.executeInJvm (AbstractDataNucleusMojo.java:345)
    at org.datanucleus.maven.AbstractEnhancerMojo.enhance (AbstractEnhancerMojo.java:289)
    at org.datanucleus.maven.AbstractEnhancerMojo.executeDataNucleusTool (AbstractEnhancerMojo.java:81)
    at org.datanucleus.maven.AbstractDataNucleusMojo.execute (AbstractDataNucleusMojo.java:126)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:78)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 60
    at org.datanucleus.enhancer.asm.ClassReader.<init> (ClassReader.java:196)
    at org.datanucleus.enhancer.asm.ClassReader.<init> (ClassReader.java:177)
    at org.datanucleus.enhancer.asm.ClassReader.<init> (ClassReader.java:163)
    at org.datanucleus.enhancer.asm.ClassReader.<init> (ClassReader.java:284)
    at org.datanucleus.enhancer.ClassEnhancerImpl.getClassNameForFileName (ClassEnhancerImpl.java:449)
    at org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput (DataNucleusEnhancer.java:712)
    at org.datanucleus.enhancer.DataNucleusEnhancer.enhance (DataNucleusEnhancer.java:501)
    at org.datanucleus.enhancer.DataNucleusEnhancer.main (DataNucleusEnhancer.java:1158)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:78)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.datanucleus.maven.AbstractDataNucleusMojo.executeInJvm (AbstractDataNucleusMojo.java:345)
    at org.datanucleus.maven.AbstractEnhancerMojo.enhance (AbstractEnhancerMojo.java:289)
    at org.datanucleus.maven.AbstractEnhancerMojo.executeDataNucleusTool (AbstractEnhancerMojo.java:81)
    at org.datanucleus.maven.AbstractDataNucleusMojo.execute (AbstractDataNucleusMojo.java:126)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:78)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)


Re: Problems with Java 16

Andy
 

DataNucleus v6 uses latest ASM bytecode handler, which supports whatever is around. DataNucleus v6 is in GitHub.

Obviously it won't be released any time soon ...


Problems with Java 16

claudio_rosati@...
 

Hello all,

I'm migrating from java 8 to Java 16, and building one of my Maven projects fails with the following message:

Failed to execute goal org.datanucleus:datanucleus-maven-plugin:6.0.0-m1:enhance (default) on project ginestra.plugins.materials: Error executing DataNucleus tool org.datanucleus.enhancer.DataNucleusEnhancer: InvocationTargetException: Unsupported class file major version 60 -> [Help 1]

I'm using datanucleus-maven-plugin at ver. 6.0.0-m1, but datanucleus-rdbms and datanucleus-core at ver. 5.2.7 and datanucleus-api-jdo at ver. 5.2.6 because I've not found a newer versions.

Is DataNucleus ready for Java 16?

Claudio


Plugins branched for v6.0

Andy
 

For anyone developing any DN plugin, the majority are now branched so that "master" is for v6.0.
Use the release branch for whichever version you are developing for


Re: Problems with extra N+1 requests - likely due to poor mapping defns, but not sure how to rectify

ebenzacar@...
 
Edited

Hi @Andy,

I have finally been able to reproduce my error in a test case for you,using the sample app that you provided.  I have created a branch in github repo illustrate the problem. https://github.com/benze/test-jdo/tree/implicit-transaction-errors
Similarly, I have opened an issue in the rdbms module as I suspect it is something specific with the rdbms module (although I may be mistaken): https://github.com/datanucleus/datanucleus-rdbms/issues/369.

I am using an Abstract class with 2 subclass tables as my N-1 relation.  I do see a warning from DN that this is not fully supported so I don't know if that is the root cause, however, oddly enough, it works fine with transaction boundaries explicitly defined.

If, however, I use implicit transactions (and remove the `tx.begin()` and `tx.commit()`), the test fails with an endless loop and generates a StackOverflow issue.  I have traced down the issue into something in the `org.datanucleus.store.rdbms.ConnectionFactoryImpl.ManagedConnectionImpl#release()` as it tries to commitOnRelease, but get a little bit lost in the logic as to why the release is trying to iterate to the end of an open result set instead of just closing the result set as such.

I would be happy to help provide a fix for this, however, I am not able to fully grasp the complete theory behind the existing logic.

Thanks,

Eric

101 - 120 of 471