[openjpa] branch master updated: moving to Class.forName to force clinit call instead of creating a dead instance

2023-07-17 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new a494966e8 moving to Class.forName to force clinit call instead of 
creating a dead instance
a494966e8 is described below

commit a494966e8b04e1a31f9895947f7b4ac68d4f888b
Author: Romain Manni-Bucau 
AuthorDate: Mon Jul 17 19:48:36 2023 +0200

moving to Class.forName to force clinit call instead of creating a dead 
instance
---
 .../org/apache/openjpa/enhance/ManagedClassSubclasser.java | 10 +-
 .../java/org/apache/openjpa/util/ClassLoaderProxyService.java  |  8 
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
index cde3f0412..08ea4d3ec 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
@@ -291,15 +291,7 @@ public class ManagedClassSubclasser {
 // this is the new subclass
 ClassLoader loader = 
GeneratedClasses.getMostDerivedLoader(cls, PersistenceCapable.class);
 String className = cnt.getClassNode().name.replace("/", ".");
-final Class subclass = 
GeneratedClasses.loadAsmClass(className, byteArray, cls, loader);
-try {
-// Ugly workaround to trigger clinit static initializer 
block :(
-subclass.newInstance();
-}
-catch (Exception e) {
-throw new RuntimeException(e);
-}
-subs.add(subclass);
+subs.add(GeneratedClasses.loadAsmClass(className, byteArray, 
cls, loader));
 }
 }
 }
diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java
index 4ba872cae..61627cd29 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java
@@ -111,6 +111,14 @@ public class ClassLoaderProxyService
 classes.put(key, existing);
 }
 }
+try
+{
+Class.forName(existing.getName(), true, 
existing.getClassLoader());
+}
+catch (ClassNotFoundException e)
+{
+// no-op, not critical, will be done at first 
instantiation but shouldn't happen anyway
+}
 }
 return existing;
 }



[openjpa] branch master updated (a605d87 -> 641dfd9)

2022-03-10 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from a605d87  [OPENJPA-2713] Fixing OffsetDateTime conversion
 new 6d7ee9b  refine Jakarta relocate patterns
 new e5c29f4  Requires the full package for the pattern
 new 641dfd9  Merge pull request #93 from jeanouii/jakarta-relocate

The 5249 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 openjpa/pom.xml | 73 +++--
 1 file changed, 14 insertions(+), 59 deletions(-)


svn commit: r52417 - in /dev/openjpa: apache-openjpa-3.2.1-source.zip apache-openjpa-3.2.1-source.zip.asc apache-openjpa-3.2.1-source.zip.sha512

2022-02-06 Thread rmannibucau
Author: rmannibucau
Date: Sun Feb  6 14:33:29 2022
New Revision: 52417

Log:
openjpa release v3.2.1 - cleanup of dev

Removed:
dev/openjpa/apache-openjpa-3.2.1-source.zip
dev/openjpa/apache-openjpa-3.2.1-source.zip.asc
dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512



svn commit: r52416 - in /release/openjpa: 3.2.0/ 3.2.1/ 3.2.1/apache-openjpa-3.2.1-source.zip 3.2.1/apache-openjpa-3.2.1-source.zip.asc 3.2.1/apache-openjpa-3.2.1-source.zip.sha512

2022-02-06 Thread rmannibucau
Author: rmannibucau
Date: Sun Feb  6 14:33:19 2022
New Revision: 52416

Log:
openjpa release v3.2.1

Added:
release/openjpa/3.2.1/
release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip   (with props)
release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.asc
release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.sha512
Removed:
release/openjpa/3.2.0/

Added: release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip
==
Binary file - no diff available.

Propchange: release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip
--
svn:mime-type = application/octet-stream

Added: release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.asc
==
--- release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.asc (added)
+++ release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.asc Sun Feb  6 
14:33:19 2022
@@ -0,0 +1,11 @@
+-BEGIN PGP SIGNATURE-
+
+iQEzBAABCgAdFiEEz4CgVaKtKOnvv5QqcxKfWN5h7L0FAmH7qn4ACgkQcxKfWN5h
+7L02MwgAo6JIBnzRW6Ni+Nb7eL6PI1bhX/7qgY/xaKi+kXrt9PTOKxxRsn0wC78R
+MZTrXggOEsMvqRkjy6ynoYUau1I6SlV2qyGayrPyX0mdWT1UoDQQNo5B/BYEDW0p
+/BQw8ve/n1umCP560OvHmg4MtJUTCFI2U+M/D1nla9JqL+eK7qEdtOhwu1mtVSsM
+cvEywEv3nGksb9QiKvE0S6RSttWyNkgHfvxFyiZ3h/lL+Xukw3p+4UWC3/SVQ1ij
+SFkeXErXMhVAFeULDnrU3GfR0chgxoLOdiIM229/gIYpYmXnNMXd7FDTk0dGAJpd
+xh41b67RpaBPUZwbEi/nGcjfBak5UQ==
+=95Vx
+-END PGP SIGNATURE-

Added: release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.sha512
==
--- release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.sha512 (added)
+++ release/openjpa/3.2.1/apache-openjpa-3.2.1-source.zip.sha512 Sun Feb  6 
14:33:19 2022
@@ -0,0 +1 @@
+eff573cddc427ea496ab9bde6c1de3d1d1579272f5fe7fdfc79018cf31678694f8e59fb528415a5d5444e99cb74c5ded647b3b37cfea969805ebe491339d8e65
  apache-openjpa-3.2.1-source.zip




svn commit: r52378 - in /dev/openjpa: apache-openjpa-3.2.1-source.zip apache-openjpa-3.2.1-source.zip.asc apache-openjpa-3.2.1-source.zip.sha512

2022-02-03 Thread rmannibucau
Author: rmannibucau
Date: Thu Feb  3 10:17:01 2022
New Revision: 52378

Log:
apache openjpa 3.2.1 dev area

Added:
dev/openjpa/apache-openjpa-3.2.1-source.zip   (with props)
dev/openjpa/apache-openjpa-3.2.1-source.zip.asc
dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512

Added: dev/openjpa/apache-openjpa-3.2.1-source.zip
==
Binary file - no diff available.

Propchange: dev/openjpa/apache-openjpa-3.2.1-source.zip
--
svn:mime-type = application/octet-stream

Added: dev/openjpa/apache-openjpa-3.2.1-source.zip.asc
==
--- dev/openjpa/apache-openjpa-3.2.1-source.zip.asc (added)
+++ dev/openjpa/apache-openjpa-3.2.1-source.zip.asc Thu Feb  3 10:17:01 2022
@@ -0,0 +1,11 @@
+-BEGIN PGP SIGNATURE-
+
+iQEzBAABCgAdFiEEz4CgVaKtKOnvv5QqcxKfWN5h7L0FAmH7qn4ACgkQcxKfWN5h
+7L02MwgAo6JIBnzRW6Ni+Nb7eL6PI1bhX/7qgY/xaKi+kXrt9PTOKxxRsn0wC78R
+MZTrXggOEsMvqRkjy6ynoYUau1I6SlV2qyGayrPyX0mdWT1UoDQQNo5B/BYEDW0p
+/BQw8ve/n1umCP560OvHmg4MtJUTCFI2U+M/D1nla9JqL+eK7qEdtOhwu1mtVSsM
+cvEywEv3nGksb9QiKvE0S6RSttWyNkgHfvxFyiZ3h/lL+Xukw3p+4UWC3/SVQ1ij
+SFkeXErXMhVAFeULDnrU3GfR0chgxoLOdiIM229/gIYpYmXnNMXd7FDTk0dGAJpd
+xh41b67RpaBPUZwbEi/nGcjfBak5UQ==
+=95Vx
+-END PGP SIGNATURE-

Added: dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512
==
--- dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512 (added)
+++ dev/openjpa/apache-openjpa-3.2.1-source.zip.sha512 Thu Feb  3 10:17:01 2022
@@ -0,0 +1 @@
+eff573cddc427ea496ab9bde6c1de3d1d1579272f5fe7fdfc79018cf31678694f8e59fb528415a5d5444e99cb74c5ded647b3b37cfea969805ebe491339d8e65
  apache-openjpa-3.2.1-source.zip




[openjpa] 02/02: [maven-release-plugin] prepare for next development iteration

2022-02-03 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit 68b77e1ae7a078fa336d42b0ea6bf1c9b6e65dca
Author: Romain Manni-Bucau 
AuthorDate: Thu Feb 3 11:08:53 2022 +0100

[maven-release-plugin] prepare for next development iteration
---
 openjpa-all/pom.xml| 2 +-
 openjpa-examples/image-gallery/pom.xml | 2 +-
 openjpa-examples/openbooks/pom.xml | 2 +-
 openjpa-examples/pom.xml   | 2 +-
 openjpa-examples/simple/pom.xml| 2 +-
 openjpa-features/pom.xml   | 2 +-
 openjpa-integration/daytrader/pom.xml  | 2 +-
 openjpa-integration/examples/pom.xml   | 2 +-
 openjpa-integration/jmx/pom.xml| 2 +-
 openjpa-integration/pom.xml| 2 +-
 openjpa-integration/slf4j/pom.xml  | 2 +-
 openjpa-integration/tck/pom.xml| 2 +-
 openjpa-integration/validation/pom.xml | 2 +-
 openjpa-jdbc/pom.xml   | 2 +-
 openjpa-jest/pom.xml   | 2 +-
 openjpa-junit5/pom.xml | 2 +-
 openjpa-kernel/pom.xml | 2 +-
 openjpa-kubernetes/pom.xml | 2 +-
 openjpa-lib/pom.xml| 2 +-
 openjpa-persistence-jdbc/pom.xml   | 2 +-
 openjpa-persistence-locking/pom.xml| 2 +-
 openjpa-persistence/pom.xml| 2 +-
 openjpa-project/pom.xml| 2 +-
 openjpa-slice/pom.xml  | 2 +-
 openjpa-tools/openjpa-fetch-statistics-was/pom.xml | 2 +-
 openjpa-tools/openjpa-fetch-statistics/pom.xml | 2 +-
 openjpa-tools/openjpa-maven-plugin/pom.xml | 2 +-
 openjpa-tools/pom.xml  | 2 +-
 openjpa-xmlstore/pom.xml   | 2 +-
 openjpa/pom.xml| 2 +-
 pom.xml| 4 ++--
 31 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/openjpa-all/pom.xml b/openjpa-all/pom.xml
index b1b7ade..646aa36 100644
--- a/openjpa-all/pom.xml
+++ b/openjpa-all/pom.xml
@@ -28,7 +28,7 @@
 
 org.apache.openjpa
 openjpa-parent
-3.2.1
+3.2.2-SNAPSHOT
 
 
 openjpa-all
diff --git a/openjpa-examples/image-gallery/pom.xml 
b/openjpa-examples/image-gallery/pom.xml
index 67e2e1b..3e05306 100644
--- a/openjpa-examples/image-gallery/pom.xml
+++ b/openjpa-examples/image-gallery/pom.xml
@@ -27,7 +27,7 @@
   
   org.apache.openjpa
   openjpa-examples
-  3.2.1
+  3.2.2-SNAPSHOT
   
 
   org.apache.openjpa.openjpa-examples
diff --git a/openjpa-examples/openbooks/pom.xml 
b/openjpa-examples/openbooks/pom.xml
index 310609b..3fcbeef 100644
--- a/openjpa-examples/openbooks/pom.xml
+++ b/openjpa-examples/openbooks/pom.xml
@@ -29,7 +29,7 @@
 
 org.apache.openjpa
 openjpa-examples
-3.2.1
+3.2.2-SNAPSHOT
 
 
 org.apache.openjpa.openjpa-examples
diff --git a/openjpa-examples/pom.xml b/openjpa-examples/pom.xml
index 8acb1be..42b9bb8 100644
--- a/openjpa-examples/pom.xml
+++ b/openjpa-examples/pom.xml
@@ -28,7 +28,7 @@
 
 org.apache.openjpa
 openjpa-parent
-3.2.1
+3.2.2-SNAPSHOT
 
 
 openjpa-examples
diff --git a/openjpa-examples/simple/pom.xml b/openjpa-examples/simple/pom.xml
index 455f37f..17f0c5c 100644
--- a/openjpa-examples/simple/pom.xml
+++ b/openjpa-examples/simple/pom.xml
@@ -28,7 +28,7 @@
 
 org.apache.openjpa
 openjpa-examples
-3.2.1
+3.2.2-SNAPSHOT
 
 
 org.apache.openjpa.openjpa-examples
diff --git a/openjpa-features/pom.xml b/openjpa-features/pom.xml
index 03fce76..6e49653 100644
--- a/openjpa-features/pom.xml
+++ b/openjpa-features/pom.xml
@@ -18,7 +18,7 @@
 
 org.apache.openjpa
 openjpa-parent
-3.2.1
+3.2.2-SNAPSHOT
 
 
 openjpa-features
diff --git a/openjpa-integration/daytrader/pom.xml 
b/openjpa-integration/daytrader/pom.xml
index aee0d95..18fc9c9 100644
--- a/openjpa-integration/daytrader/pom.xml
+++ b/openjpa-integration/daytrader/pom.xml
@@ -27,7 +27,7 @@
 
 org.apache.openjpa
 openjpa-integration
-3.2.1
+3.2.2-SNAPSHOT
 
 
 openjpa-integration-daytrader
diff --git a/openjpa-integration/examples/pom.xml 
b/openjpa-integration/examples/pom.xml
index db60555..c2c5bc0 100644
--- a/openjpa-integration/examples/pom.xml
+++ b/openjpa-integration/examples/pom.xml
@@ -37,7 +37,7 @@
 
 org.apache.openjpa
 openjpa-integration
-3.2.1
+3.2.2-SNAPSHOT
 
 
 openjpa-integration-examples
diff --git a/openjpa-integration/jmx/pom.xml

[openjpa] branch master updated (468a453 -> 68b77e1)

2022-02-03 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 468a453  [OPENJPA-2896] automatic module name is set for bundles (#92)
 new 000c065  [maven-release-plugin] prepare release 3.2.1
 new 68b77e1  [maven-release-plugin] prepare for next development iteration

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 openjpa-all/pom.xml| 2 +-
 openjpa-examples/image-gallery/pom.xml | 2 +-
 openjpa-examples/openbooks/pom.xml | 2 +-
 openjpa-examples/pom.xml   | 2 +-
 openjpa-examples/simple/pom.xml| 2 +-
 openjpa-features/pom.xml   | 2 +-
 openjpa-integration/daytrader/pom.xml  | 2 +-
 openjpa-integration/examples/pom.xml   | 2 +-
 openjpa-integration/jmx/pom.xml| 2 +-
 openjpa-integration/pom.xml| 2 +-
 openjpa-integration/slf4j/pom.xml  | 2 +-
 openjpa-integration/tck/pom.xml| 2 +-
 openjpa-integration/validation/pom.xml | 2 +-
 openjpa-jdbc/pom.xml   | 2 +-
 openjpa-jest/pom.xml   | 2 +-
 openjpa-junit5/pom.xml | 2 +-
 openjpa-kernel/pom.xml | 2 +-
 openjpa-kubernetes/pom.xml | 2 +-
 openjpa-lib/pom.xml| 2 +-
 openjpa-persistence-jdbc/pom.xml   | 2 +-
 openjpa-persistence-locking/pom.xml| 2 +-
 openjpa-persistence/pom.xml| 2 +-
 openjpa-project/pom.xml| 2 +-
 openjpa-slice/pom.xml  | 2 +-
 openjpa-tools/openjpa-fetch-statistics-was/pom.xml | 2 +-
 openjpa-tools/openjpa-fetch-statistics/pom.xml | 2 +-
 openjpa-tools/openjpa-maven-plugin/pom.xml | 2 +-
 openjpa-tools/pom.xml  | 2 +-
 openjpa-xmlstore/pom.xml   | 2 +-
 openjpa/pom.xml| 2 +-
 pom.xml| 2 +-
 31 files changed, 31 insertions(+), 31 deletions(-)


[openjpa] 01/02: [maven-release-plugin] prepare release 3.2.1

2022-02-03 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit 000c065dbe8ceb4589fc1f789a37b8d68af6311e
Author: Romain Manni-Bucau 
AuthorDate: Thu Feb 3 11:08:53 2022 +0100

[maven-release-plugin] prepare release 3.2.1
---
 openjpa-all/pom.xml| 2 +-
 openjpa-examples/image-gallery/pom.xml | 2 +-
 openjpa-examples/openbooks/pom.xml | 2 +-
 openjpa-examples/pom.xml   | 2 +-
 openjpa-examples/simple/pom.xml| 2 +-
 openjpa-features/pom.xml   | 2 +-
 openjpa-integration/daytrader/pom.xml  | 2 +-
 openjpa-integration/examples/pom.xml   | 2 +-
 openjpa-integration/jmx/pom.xml| 2 +-
 openjpa-integration/pom.xml| 2 +-
 openjpa-integration/slf4j/pom.xml  | 2 +-
 openjpa-integration/tck/pom.xml| 2 +-
 openjpa-integration/validation/pom.xml | 2 +-
 openjpa-jdbc/pom.xml   | 2 +-
 openjpa-jest/pom.xml   | 2 +-
 openjpa-junit5/pom.xml | 2 +-
 openjpa-kernel/pom.xml | 2 +-
 openjpa-kubernetes/pom.xml | 2 +-
 openjpa-lib/pom.xml| 2 +-
 openjpa-persistence-jdbc/pom.xml   | 2 +-
 openjpa-persistence-locking/pom.xml| 2 +-
 openjpa-persistence/pom.xml| 2 +-
 openjpa-project/pom.xml| 2 +-
 openjpa-slice/pom.xml  | 2 +-
 openjpa-tools/openjpa-fetch-statistics-was/pom.xml | 2 +-
 openjpa-tools/openjpa-fetch-statistics/pom.xml | 2 +-
 openjpa-tools/openjpa-maven-plugin/pom.xml | 2 +-
 openjpa-tools/pom.xml  | 2 +-
 openjpa-xmlstore/pom.xml   | 2 +-
 openjpa/pom.xml| 2 +-
 pom.xml| 4 ++--
 31 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/openjpa-all/pom.xml b/openjpa-all/pom.xml
index 1c15072..b1b7ade 100644
--- a/openjpa-all/pom.xml
+++ b/openjpa-all/pom.xml
@@ -28,7 +28,7 @@
 
 org.apache.openjpa
 openjpa-parent
-3.2.1-SNAPSHOT
+3.2.1
 
 
 openjpa-all
diff --git a/openjpa-examples/image-gallery/pom.xml 
b/openjpa-examples/image-gallery/pom.xml
index 6dd6a1f..67e2e1b 100644
--- a/openjpa-examples/image-gallery/pom.xml
+++ b/openjpa-examples/image-gallery/pom.xml
@@ -27,7 +27,7 @@
   
   org.apache.openjpa
   openjpa-examples
-  3.2.1-SNAPSHOT
+  3.2.1
   
 
   org.apache.openjpa.openjpa-examples
diff --git a/openjpa-examples/openbooks/pom.xml 
b/openjpa-examples/openbooks/pom.xml
index c24a191..310609b 100644
--- a/openjpa-examples/openbooks/pom.xml
+++ b/openjpa-examples/openbooks/pom.xml
@@ -29,7 +29,7 @@
 
 org.apache.openjpa
 openjpa-examples
-3.2.1-SNAPSHOT
+3.2.1
 
 
 org.apache.openjpa.openjpa-examples
diff --git a/openjpa-examples/pom.xml b/openjpa-examples/pom.xml
index 7e06581..8acb1be 100644
--- a/openjpa-examples/pom.xml
+++ b/openjpa-examples/pom.xml
@@ -28,7 +28,7 @@
 
 org.apache.openjpa
 openjpa-parent
-3.2.1-SNAPSHOT
+3.2.1
 
 
 openjpa-examples
diff --git a/openjpa-examples/simple/pom.xml b/openjpa-examples/simple/pom.xml
index 9a3ca4f..455f37f 100644
--- a/openjpa-examples/simple/pom.xml
+++ b/openjpa-examples/simple/pom.xml
@@ -28,7 +28,7 @@
 
 org.apache.openjpa
 openjpa-examples
-3.2.1-SNAPSHOT
+3.2.1
 
 
 org.apache.openjpa.openjpa-examples
diff --git a/openjpa-features/pom.xml b/openjpa-features/pom.xml
index 63b368b..03fce76 100644
--- a/openjpa-features/pom.xml
+++ b/openjpa-features/pom.xml
@@ -18,7 +18,7 @@
 
 org.apache.openjpa
 openjpa-parent
-3.2.1-SNAPSHOT
+3.2.1
 
 
 openjpa-features
diff --git a/openjpa-integration/daytrader/pom.xml 
b/openjpa-integration/daytrader/pom.xml
index 2b913b7..aee0d95 100644
--- a/openjpa-integration/daytrader/pom.xml
+++ b/openjpa-integration/daytrader/pom.xml
@@ -27,7 +27,7 @@
 
 org.apache.openjpa
 openjpa-integration
-3.2.1-SNAPSHOT
+3.2.1
 
 
 openjpa-integration-daytrader
diff --git a/openjpa-integration/examples/pom.xml 
b/openjpa-integration/examples/pom.xml
index a6062a4..db60555 100644
--- a/openjpa-integration/examples/pom.xml
+++ b/openjpa-integration/examples/pom.xml
@@ -37,7 +37,7 @@
 
 org.apache.openjpa
 openjpa-integration
-3.2.1-SNAPSHOT
+3.2.1
 
 
 openjpa-integration-examples
diff --git a/openjpa-integration/jmx/pom.xml b/openjpa

[openjpa] annotated tag 3.2.1 created (now 85a3466)

2022-02-03 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to annotated tag 3.2.1
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


  at 85a3466  (tag)
 tagging 000c065dbe8ceb4589fc1f789a37b8d68af6311e (commit)
 replaces 3.2.0
  by Romain Manni-Bucau
  on Thu Feb 3 11:08:53 2022 +0100

- Log -
[maven-release-plugin] copy for tag 3.2.1
---

This annotated tag includes the following new commits:

 new 000c065  [maven-release-plugin] prepare release 3.2.1

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[openjpa] branch master updated: [OPENJPA-2889] Align commons-pool2 bundle version in Karaf features repository with the actual one

2021-12-05 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 4d932bc  [OPENJPA-2889] Align commons-pool2 bundle version in Karaf 
features repository with the actual one
 new cc55aec  Merge pull request #87 from jbonofre/OPENJPA-2889
4d932bc is described below

commit 4d932bc787ffaa4b8a79b44366b5ec80f58b9dda
Author: Jean-Baptiste Onofré 
AuthorDate: Mon Nov 22 16:07:50 2021 +0100

[OPENJPA-2889] Align commons-pool2 bundle version in Karaf features 
repository with the actual one
---
 openjpa-features/src/main/feature/feature.xml | 2 +-
 pom.xml   | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/openjpa-features/src/main/feature/feature.xml 
b/openjpa-features/src/main/feature/feature.xml
index d32e459..fa9834d 100644
--- a/openjpa-features/src/main/feature/feature.xml
+++ b/openjpa-features/src/main/feature/feature.xml
@@ -24,7 +24,7 @@
 mvn:org.eclipse.persistence/javax.persistence/2.1.0
 mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1
 mvn:org.apache.geronimo.specs/geronimo-el_1.0_spec/1.0.1
-mvn:org.apache.commons/commons-pool2/2.6.0
+   mvn:org.apache.commons/commons-pool2/${pool2.version}
 mvn:org.apache.commons/commons-dbcp2/2.7.0
 mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.14.1_1
 mvn:org.apache.xbean/xbean-asm9-shaded/${xbean.version}
diff --git a/pom.xml b/pom.xml
index 9fe6986..5685d7d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -105,6 +105,7 @@
 2.9.0
 
-SUBMODULES-NEED-TO-OVERRIDE-THIS-
 2.8.0
+   2.9.0
 
 
 
@@ -1725,7 +1726,7 @@
 
 org.apache.commons
 commons-pool2
-2.9.0
+   ${pool2.version}
 
 
 commons-logging


[openjpa] branch master updated (cb258ae -> e7774e3)

2021-11-30 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from cb258ae  Merge pull request #81 from tandraschko/master
 new fe42383  [OPENJPA-2891] allow configuration of @Generated annotation.
 new ad5f051  [OPENJPA-2891] default for addGeneratedOption, use switch
 new 3e9644d  [OPENJPA-2891][DOCS] add description for 
openjpa.addGeneratedAnnotation.
 new e7774e3  Merge pull request #90 from bmarwell/OPENJPA-2891_annotation

The 5237 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 openjpa-persistence/pom.xml|  5 +++
 .../persistence/meta/AnnotationProcessor6.java | 48 +++---
 .../openjpa/persistence/meta/localizer.properties  |  2 +
 .../src/doc/manual/jpa_overview_criteria.xml   | 10 +
 pom.xml|  6 +++
 5 files changed, 66 insertions(+), 5 deletions(-)


[openjpa] branch master updated (1fdf245 -> cb258ae)

2021-10-27 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 1fdf245  OPENJPA-2885 ensure openjpa-junit5 can support jakarta as 
well without any shade
 new 116eda9  OPENJPA-2877
 new d698cca  OPENJPA-2877 added caching of method
 new a0e4079  OPENJPA-2877 test
 new 08fe274  Merge branch 'apache:master' into master
 new 8ff3dff  OPENJPA-2877 added caching of constructor
 new cb258ae  Merge pull request #81 from tandraschko/master

The 5233 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/openjpa/meta/FieldMetaData.java | 188 ++---
 .../org/apache/openjpa/meta/localizer.properties   |   2 +
 .../persistence/meta/TestExternalValues.java   |   3 +
 .../meta/common/apps/ExternalValues.java   |  13 ++
 ...ntimeTest2.java => UuidAttributeConverter.java} |  35 ++--
 .../AnnotationPersistenceMetaDataParser.java   |   7 +
 .../apache/openjpa/persistence/MetaDataTag.java|   3 +-
 7 files changed, 167 insertions(+), 84 deletions(-)
 copy 
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/meta/common/apps/{RuntimeTest2.java
 => UuidAttributeConverter.java} (67%)


[openjpa] branch master updated: OPENJPA-2885 ensure openjpa-junit5 can support jakarta as well without any shade

2021-10-26 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 1fdf245  OPENJPA-2885 ensure openjpa-junit5 can support jakarta as 
well without any shade
1fdf245 is described below

commit 1fdf245200fc839d25d59a637994c62173429bd2
Author: Romain Manni-Bucau 
AuthorDate: Tue Oct 26 16:54:26 2021 +0200

OPENJPA-2885 ensure openjpa-junit5 can support jakarta as well without any 
shade
---
 .../junit5/internal/OpenJPADirectoriesEnhancer.java| 14 ++
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
index c79535f..d86f2bd 100644
--- 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
+++ 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
@@ -205,9 +205,12 @@ public class OpenJPADirectoriesEnhancer implements 
Runnable {
 
 private static class OpenJpaClassLoader extends BaseClassLoader {
 private static final String PERSITENCE_CAPABLE = 
Type.getDescriptor(PersistenceCapable.class);
-private static final String ENTITY = Type.getDescriptor(Entity.class);
-private static final String EMBEDDABLE = 
Type.getDescriptor(Embeddable.class);
-private static final String MAPPED_SUPERCLASS = 
Type.getDescriptor(MappedSuperclass.class);
+private static final String ENTITY = "Ljavax/persistence/Entity;";
+private static final String ENTITY2 = "Ljakarta/persistence/Entity;";
+private static final String EMBEDDABLE = "Ljavax/persistence/Entity;";
+private static final String EMBEDDABLE2 = 
"Ljakarta/persistence/Entity;";
+private static final String MAPPED_SUPERCLASS = 
"Ljavax/persistence/Entity;";
+private static final String MAPPED_SUPERCLASS2 = 
"Ljakarta/persistence/Entity;";
 
 private final MetaDataRepository repos;
 private final ClassLoader tmpLoader;
@@ -298,7 +301,10 @@ public class OpenJPADirectoriesEnhancer implements 
Runnable {
 public AnnotationVisitor visitAnnotation(final String 
descriptor, final boolean visible) {
 if (ENTITY.equals(descriptor) ||
 EMBEDDABLE.equals(descriptor) ||
-MAPPED_SUPERCLASS.equals(descriptor)) {
+MAPPED_SUPERCLASS.equals(descriptor) ||
+ENTITY2.equals(descriptor) ||
+EMBEDDABLE2.equals(descriptor) ||
+MAPPED_SUPERCLASS2.equals(descriptor)) {
 throw new MissingEnhancement(); // we already went 
into visit() so we miss the enhancement
 }
 return new EmptyVisitor().visitAnnotation(descriptor, 
visible);


[openjpa] branch master updated: OPENJPA-2884 trying to not relocate javax.annotation.processing

2021-10-26 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 3b6a69e  OPENJPA-2884 trying to not relocate 
javax.annotation.processing
3b6a69e is described below

commit 3b6a69e9f0d041b034ce11d934d7321732d069c8
Author: Romain Manni-Bucau 
AuthorDate: Tue Oct 26 16:20:43 2021 +0200

OPENJPA-2884 trying to not relocate javax.annotation.processing
---
 openjpa/pom.xml | 24 ++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/openjpa/pom.xml b/openjpa/pom.xml
index 4365ed1..3df7d46 100644
--- a/openjpa/pom.xml
+++ b/openjpa/pom.xml
@@ -123,8 +123,28 @@
 
 
 
-javax.annotation
-
jakarta.annotation
+
javax.annotation.security
+
jakarta.annotation.security
+
+
+
javax.annotation.Generated
+
jakarta.annotation.Generated
+
+
+
javax.annotation.PostConstruct
+
jakarta.annotation.PostConstruct
+
+
+
javax.annotation.PreDestroy
+
jakarta.annotation.PreDestroy
+
+
+
javax.annotation.Resource
+
jakarta.annotation.Resource
+
+
+
javax.annotation.Resources
+
jakarta.annotation.Resources
 
 
 javax.el


[openjpa] branch master updated: OPENJPA-2882: Exception passing javax.persistence.* String values to createEntityManager(Map)

2021-10-21 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 30c443d  OPENJPA-2882: Exception passing javax.persistence.* String 
values to createEntityManager(Map)
 new 0fa0ee9  Merge pull request #82 from dazey3/OJ2882_master
30c443d is described below

commit 30c443dcc32fdc43b75431c9579f8ca415421d17
Author: Will Dazey 
AuthorDate: Mon Oct 18 13:05:17 2021 -0500

OPENJPA-2882: Exception passing javax.persistence.* String values to 
createEntityManager(Map)

Signed-off-by: Will Dazey 
---
 .../persistence/property/TestEMProperties.java | 81 ++
 .../apache/openjpa/persistence/JPAProperties.java  | 14 +++-
 2 files changed, 94 insertions(+), 1 deletion(-)

diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/property/TestEMProperties.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/property/TestEMProperties.java
new file mode 100644
index 000..bcff7b1
--- /dev/null
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/property/TestEMProperties.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agEmployee_Last_Name to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.persistence.property;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+
+import org.apache.openjpa.persistence.OpenJPAPersistence;
+import org.apache.openjpa.persistence.OpenJPAQuery;
+import org.apache.openjpa.persistence.test.SingleEMFTestCase;
+
+/**
+ * TestEMProperties is used to test various persistence properties set 
through EntityManager.setProperty() API
+ * to ensure no errors are thrown.
+ */
+public class TestEMProperties extends SingleEMFTestCase {
+
+@Override
+public void setUp() {
+setUp(EntityContact.class,
+  EmbeddableAddress.class,
+  DROP_TABLES, "javax.persistence.query.timeout", 23456);
+}
+
+public void testQueryTimeoutPropertyDefault() {
+EntityManager em = emf.createEntityManager();
+
+String sql = "select * from EntityContact";
+OpenJPAQuery query = 
OpenJPAPersistence.cast(em.createNativeQuery(sql));
+assertEquals(23456, query.getFetchPlan().getQueryTimeout());
+
+em.clear();
+em.close();
+}
+
+public void testQueryTimeoutPropertyOnEntityManagerCreation() {
+Map properties = new HashMap();
+properties.put("javax.persistence.query.timeout", "12345");
+// Setting a value of type String should convert if possible and not 
return an error
+EntityManager em = emf.createEntityManager(properties);
+
+String sql = "select * from EntityContact";
+OpenJPAQuery query = 
OpenJPAPersistence.cast(em.createNativeQuery(sql));
+assertEquals(12345, query.getFetchPlan().getQueryTimeout());
+
+em.clear();
+em.close();
+}
+
+public void testQueryTimeoutPropertySetOnEntityManager() {
+EntityManager em = emf.createEntityManager();
+
+// Setting a value of type String should convert if possible and not 
return an error
+em.setProperty("javax.persistence.query.timeout", "12345");
+
+String sql = "select * from EntityContact";
+OpenJPAQuery query = 
OpenJPAPersistence.cast(em.createNativeQuery(sql));
+assertEquals(12345, query.getFetchPlan().getQueryTimeout());
+
+em.clear();
+em.close();
+}
+}
diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
index 89f2a79..162003c 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openjpa.persistence;
 
+import java.math.BigDecimal;
+imp

[openjpa] branch master updated (ba985ac -> 722eb57)

2021-05-28 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from ba985ac  [maven-release-plugin] prepare for next development iteration
 new 4894c17  OPENJPA-2875 make sure to avoid doing things when another 
persistence provider is specified.
 new 2771cce  Small fixes on the tests
 new 722eb57  Merge pull request #80 from 
jeanouii/OPENJPA-2875_filterJPAProvider

The 5214 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../TestPersistenceProviderFilteringTestCase.java  | 98 ++
 .../persistence/PersistenceProviderImpl.java   | 65 ++
 2 files changed, 148 insertions(+), 15 deletions(-)
 create mode 100644 
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/TestPersistenceProviderFilteringTestCase.java


[openjpa] branch master updated: [OPENJPA-2852] marking mojo as threadsafe

2021-03-31 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 9a96e0c  [OPENJPA-2852] marking mojo as threadsafe
9a96e0c is described below

commit 9a96e0cd89ee9bac41a39d89388468a0774a519d
Author: Romain Manni-Bucau 
AuthorDate: Wed Mar 31 10:18:21 2021 +0200

[OPENJPA-2852] marking mojo as threadsafe
---
 .../main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java  | 3 ++-
 .../main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java| 3 ++-
 .../src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java   | 3 ++-
 .../java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java   | 2 +-
 4 files changed, 7 insertions(+), 4 deletions(-)

diff --git 
a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java
 
b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java
index cba95de..fc79dec 100644
--- 
a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java
+++ 
b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaEnhancerMojo.java
@@ -29,6 +29,7 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
  * @version $Id: OpenJpaEnhancerMojo.java 10954 2009-10-23 22:05:45Z struberg $
  * @since 1.0
  */
-@Mojo(name="enhance", defaultPhase=LifecyclePhase.PROCESS_CLASSES, 
requiresDependencyResolution=ResolutionScope.COMPILE)
+@Mojo(name="enhance", defaultPhase=LifecyclePhase.PROCESS_CLASSES, 
requiresDependencyResolution=ResolutionScope.COMPILE,
+threadSafe = true)
 public class OpenJpaEnhancerMojo extends AbstractOpenJpaEnhancerMojo {
 }
diff --git 
a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java
 
b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java
index 186baff..857e22d 100644
--- 
a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java
+++ 
b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSchemaMojo.java
@@ -34,7 +34,8 @@ import org.apache.openjpa.lib.util.Options;
  * @version $Id$
  * @since 1.0
  */
-@Mojo(name="schema", defaultPhase=LifecyclePhase.PROCESS_CLASSES, 
requiresDependencyResolution=ResolutionScope.COMPILE)
+@Mojo(name="schema", defaultPhase=LifecyclePhase.PROCESS_CLASSES, 
requiresDependencyResolution=ResolutionScope.COMPILE,
+threadSafe = true)
 public class OpenJpaSchemaMojo extends AbstractOpenJpaMappingToolMojo {
 
 /**
diff --git 
a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java
 
b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java
index 79c1fec..6907f31 100644
--- 
a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java
+++ 
b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaSqlMojo.java
@@ -34,7 +34,8 @@ import org.apache.openjpa.lib.util.Options;
  * @version $Id$
  * @since 1.0
  */
-@Mojo(name="sql", defaultPhase=LifecyclePhase.PROCESS_CLASSES, 
requiresDependencyResolution=ResolutionScope.COMPILE)
+@Mojo(name="sql", defaultPhase=LifecyclePhase.PROCESS_CLASSES, 
requiresDependencyResolution=ResolutionScope.COMPILE,
+threadSafe = true)
 public class OpenJpaSqlMojo extends AbstractOpenJpaMappingToolMojo {
 
 /**
diff --git 
a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java
 
b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java
index 28d05e7..3a4e245 100644
--- 
a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java
+++ 
b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/OpenJpaTestEnhancerMojo.java
@@ -34,7 +34,7 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
  * @since 1.1
  */
 @Mojo(name="test-enhance", defaultPhase=LifecyclePhase.PROCESS_TEST_CLASSES,
-  requiresDependencyResolution=ResolutionScope.TEST)
+  requiresDependencyResolution=ResolutionScope.TEST, threadSafe = true)
 public class OpenJpaTestEnhancerMojo extends AbstractOpenJpaEnhancerMojo {
 
 /**


[openjpa] branch master updated: [OPENJPA-2840] light abstraction for asm

2020-11-20 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 0d78162  [OPENJPA-2840] light abstraction for asm
0d78162 is described below

commit 0d7816290ea9950a8f1aa02dfe418d877481dc0a
Author: Romain Manni-Bucau 
AuthorDate: Fri Nov 20 09:43:42 2020 +0100

[OPENJPA-2840] light abstraction for asm
---
 .../org/apache/openjpa/enhance/AsmAdaptor.java | 202 +++--
 .../org/apache/openjpa/enhance/asm/AsmSpi.java |  42 +
 .../enhance/{AsmAdaptor.java => asm/AsmSpi9.java}  |  50 +++--
 3 files changed, 96 insertions(+), 198 deletions(-)

diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
index 24f7c61..86d2818 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
@@ -18,24 +18,15 @@
  */
 package org.apache.openjpa.enhance;
 
-import static java.util.Arrays.asList;
+import org.apache.openjpa.enhance.asm.AsmSpi;
+import org.apache.openjpa.enhance.asm.AsmSpi9;
+import serp.bytecode.BCClass;
 
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStream;
-import java.net.URLDecoder;
-
-import org.apache.xbean.asm9.ClassReader;
-import org.apache.xbean.asm9.ClassVisitor;
-import org.apache.xbean.asm9.ClassWriter;
-import org.apache.xbean.asm9.Opcodes;
-
-import serp.bytecode.BCClass;
+import java.util.ServiceLoader;
+import java.util.stream.StreamSupport;
 
 
 /**
@@ -43,179 +34,46 @@ import serp.bytecode.BCClass;
  * Serp.
  */
 public final class AsmAdaptor {
-private static final int Java7_MajorVersion = 51;
-
-@SuppressWarnings("deprecation")
-public static void write(BCClass bc) throws IOException {
-if (bc.getMajorVersion() < Java7_MajorVersion) {
-bc.write();
-} else {
-String name = bc.getName();
-int dotIndex = name.lastIndexOf('.') + 1;
-name = name.substring(dotIndex);
-Class type = bc.getType();
-
-OutputStream out = new FileOutputStream(
-URLDecoder.decode(type.getResource(name + 
".class").getFile()));
+private final static AsmSpi impl;
+static {
+impl = 
StreamSupport.stream(ServiceLoader.load(AsmSpi.class).spliterator(), 
false).min((a, b) -> {
+final int v1;
 try {
-writeJava7(bc, out);
-} finally {
-out.flush();
-out.close();
+v1 = Integer.parseInt(a.getClass().getName().replace("AsmSpi", 
""));
+} catch (final Exception e) {
+// not matching our default naming so an user impl so let's 
use it
+return -1;
 }
-}
-}
-
-public static void write(BCClass bc, File outFile) throws IOException {
-if (bc.getMajorVersion() < Java7_MajorVersion) {
-bc.write(outFile);
-} else {
-OutputStream out = new FileOutputStream(outFile);
+final int v2;
 try {
-writeJava7(bc, out);
-} finally {
-out.flush();
-out.close();
+v2 = Integer.parseInt(b.getClass().getName().replace("AsmSpi", 
""));
+} catch (final Exception e) {
+// not matching our default naming so an user impl so let's 
use it
+return 1;
 }
-}
+return v2 - v1; // reverse since we want the higher
+}).orElseGet(AsmSpi9::new);
 }
 
-public static void write(BCClass bc, OutputStream os) throws IOException {
-if (bc.getMajorVersion() < Java7_MajorVersion) {
-bc.write(os);
-}
-else {
-try {
-writeJava7(bc, os);
-} finally {
-os.flush();
-os.close();
-}
-}
+@SuppressWarnings("deprecation")
+public static void write(BCClass bc) throws IOException {
+impl.write(bc);
 }
 
-public static byte[] toByteArray(BCClass bc, byte[] returnBytes) throws 
IOException {
-if (bc.getMajorVersion() >= Java7_MajorVersion) {
-returnBytes = toJava7ByteArray(bc, returnBytes);
-}
-return returnBytes;
+public static void write(BCClass bc, File outFile) throws IOException {
+impl.write(bc, outFile);
 }
 
-private static void w

[openjpa] branch master updated: [OPENJPA-2838] jul log factory

2020-11-16 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 440cdb3  [OPENJPA-2838] jul log factory
440cdb3 is described below

commit 440cdb37719d0431e07adcf8dff2f70aab6c292a
Author: Romain Manni-Bucau 
AuthorDate: Mon Nov 16 14:11:08 2020 +0100

[OPENJPA-2838] jul log factory
---
 .../internal/OpenJPADirectoriesEnhancer.java   |   7 +-
 .../apache/openjpa/lib/conf/ConfigurationImpl.java |   1 +
 .../org/apache/openjpa/lib/log/JULLogFactory.java  | 158 +
 .../apache/openjpa/lib/log/JULLogFactoryTest.java  |  61 
 4 files changed, 226 insertions(+), 1 deletion(-)

diff --git 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
index c8be809..c79535f 100644
--- 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
+++ 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
@@ -22,6 +22,7 @@ import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
 import org.apache.openjpa.enhance.AsmAdaptor;
 import org.apache.openjpa.enhance.PCEnhancer;
 import org.apache.openjpa.enhance.PersistenceCapable;
+import org.apache.openjpa.lib.log.JULLogFactory;
 import org.apache.openjpa.lib.log.LogFactory;
 import org.apache.openjpa.lib.log.LogFactoryImpl;
 import org.apache.openjpa.lib.log.SLF4JLogFactory;
@@ -125,7 +126,11 @@ public class OpenJPADirectoriesEnhancer implements 
Runnable {
 try {
 return new SLF4JLogFactory();
 } catch (final Error | Exception e) {
-return new LogFactoryImpl();
+try {
+return new LogFactoryImpl();
+} catch (final Error | Exception e2) {
+return new JULLogFactory();
+}
 }
 }
 return 
logFactory.asSubclass(LogFactory.class).getConstructor().newInstance();
diff --git 
a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java 
b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
index 14076c4..d7d54c3 100644
--- 
a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
+++ 
b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
@@ -158,6 +158,7 @@ public class ConfigurationImpl
 "commons", "org.apache.openjpa.lib.log.CommonsLogFactory",
 "log4j", "org.apache.openjpa.lib.log.Log4JLogFactory",
 "slf4j", "org.apache.openjpa.lib.log.SLF4JLogFactory",
+"jul", "org.apache.openjpa.lib.log.JULLogFactory",
 "none", NoneLogFactory.class.getName(),
 "false", NoneLogFactory.class.getName(),
 };
diff --git 
a/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/JULLogFactory.java 
b/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/JULLogFactory.java
new file mode 100644
index 000..72a2727
--- /dev/null
+++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/log/JULLogFactory.java
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.lib.log;
+
+import org.apache.openjpa.lib.conf.Configurable;
+import org.apache.openjpa.lib.conf.Configuration;
+import org.apache.openjpa.lib.conf.Value;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class JULLogFactory implements LogFactory, Configurable {
+private ClassLoader classLoader;
+
+public JULLogFactory() {
+classLoader = Thread.currentThread().getContextClassLoader();
+}
+
+@Override
+public Log getLog(final String channel) {
+final Thread thread;
+final ClassLoader oldLoader;
+if (classLoader != null) 

[openjpa] branch master updated (6f26922 -> aabbc25)

2020-10-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 6f26922  [OPENJPA-2834] invalid properties cache when a propery changes
 new 02e9144  OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique 
Indexes
 new bb35ca7  add test case and set supportsCascadeUpdateAction=false
 new a998255  add test cases
 new 117f75c  fix checkstyle
 new aabbc25  Merge pull request #76 from 
eolivelli/OPENJPA-2836-herddb-dict-enhance

The 5103 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/openjpa/jdbc/sql/HerdDBDictionary.java  |   6 +-
 .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 +
 2 files changed, 185 insertions(+), 3 deletions(-)
 create mode 100644 
openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java



[openjpa] branch master updated (6f26922 -> aabbc25)

2020-10-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 6f26922  [OPENJPA-2834] invalid properties cache when a propery changes
 new 02e9144  OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique 
Indexes
 new bb35ca7  add test case and set supportsCascadeUpdateAction=false
 new a998255  add test cases
 new 117f75c  fix checkstyle
 new aabbc25  Merge pull request #76 from 
eolivelli/OPENJPA-2836-herddb-dict-enhance

The 5103 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/openjpa/jdbc/sql/HerdDBDictionary.java  |   6 +-
 .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 +
 2 files changed, 185 insertions(+), 3 deletions(-)
 create mode 100644 
openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java



[openjpa] branch master updated (6f26922 -> aabbc25)

2020-10-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 6f26922  [OPENJPA-2834] invalid properties cache when a propery changes
 new 02e9144  OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique 
Indexes
 new bb35ca7  add test case and set supportsCascadeUpdateAction=false
 new a998255  add test cases
 new 117f75c  fix checkstyle
 new aabbc25  Merge pull request #76 from 
eolivelli/OPENJPA-2836-herddb-dict-enhance

The 5103 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/openjpa/jdbc/sql/HerdDBDictionary.java  |   6 +-
 .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 +
 2 files changed, 185 insertions(+), 3 deletions(-)
 create mode 100644 
openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java



[openjpa] branch master updated (6f26922 -> aabbc25)

2020-10-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 6f26922  [OPENJPA-2834] invalid properties cache when a propery changes
 new 02e9144  OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique 
Indexes
 new bb35ca7  add test case and set supportsCascadeUpdateAction=false
 new a998255  add test cases
 new 117f75c  fix checkstyle
 new aabbc25  Merge pull request #76 from 
eolivelli/OPENJPA-2836-herddb-dict-enhance

The 5103 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/openjpa/jdbc/sql/HerdDBDictionary.java  |   6 +-
 .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 +
 2 files changed, 185 insertions(+), 3 deletions(-)
 create mode 100644 
openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java



[openjpa] branch master updated (6f26922 -> aabbc25)

2020-10-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 6f26922  [OPENJPA-2834] invalid properties cache when a propery changes
 new 02e9144  OPENJPA-2836 HerdDBDictionary: enable ForeignKeys and Unique 
Indexes
 new bb35ca7  add test case and set supportsCascadeUpdateAction=false
 new a998255  add test cases
 new 117f75c  fix checkstyle
 new aabbc25  Merge pull request #76 from 
eolivelli/OPENJPA-2836-herddb-dict-enhance

The 5103 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/openjpa/jdbc/sql/HerdDBDictionary.java  |   6 +-
 .../openjpa/jdbc/sql/TestHerdDBDictionary.java | 182 +
 2 files changed, 185 insertions(+), 3 deletions(-)
 create mode 100644 
openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestHerdDBDictionary.java



[openjpa] branch master updated: [OPENJPA-2834] invalid properties cache when a propery changes

2020-10-27 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 6f26922  [OPENJPA-2834] invalid properties cache when a propery changes
6f26922 is described below

commit 6f2692228fbc75656f34c5d1d7cc6dbe2de631ca
Author: Romain Manni-Bucau 
AuthorDate: Tue Oct 27 15:43:24 2020 +0100

[OPENJPA-2834] invalid properties cache when a propery changes
---
 .../openjpa/persistence/EntityManagerImpl.java | 23 ++
 1 file changed, 23 insertions(+)

diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
index d5f78fe..6c4d551 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
@@ -262,6 +262,7 @@ public class EntityManagerImpl
 public void setMultithreaded(boolean multithreaded) {
 assertNotCloseInvoked();
 _broker.setMultithreaded(multithreaded);
+properties = null;
 }
 
 @Override
@@ -273,6 +274,7 @@ public class EntityManagerImpl
 public void setIgnoreChanges(boolean val) {
 assertNotCloseInvoked();
 _broker.setIgnoreChanges(val);
+properties = null;
 }
 
 @Override
@@ -284,6 +286,7 @@ public class EntityManagerImpl
 public void setNontransactionalRead(boolean val) {
 assertNotCloseInvoked();
 _broker.setNontransactionalRead(val);
+properties = null;
 }
 
 @Override
@@ -295,6 +298,7 @@ public class EntityManagerImpl
 public void setNontransactionalWrite(boolean val) {
 assertNotCloseInvoked();
 _broker.setNontransactionalWrite(val);
+properties = null;
 }
 
 @Override
@@ -306,6 +310,7 @@ public class EntityManagerImpl
 public void setOptimistic(boolean val) {
 assertNotCloseInvoked();
 _broker.setOptimistic(val);
+properties = null;
 }
 
 @Override
@@ -317,12 +322,14 @@ public class EntityManagerImpl
 public void setRestoreState(RestoreStateType val) {
 assertNotCloseInvoked();
 _broker.setRestoreState(val.toKernelConstant());
+properties = null;
 }
 
 @Override
 public void setRestoreState(int restore) {
 assertNotCloseInvoked();
 _broker.setRestoreState(restore);
+properties = null;
 }
 
 @Override
@@ -334,6 +341,7 @@ public class EntityManagerImpl
 public void setRetainState(boolean val) {
 assertNotCloseInvoked();
 _broker.setRetainState(val);
+properties = null;
 }
 
 @Override
@@ -345,12 +353,14 @@ public class EntityManagerImpl
 public void setAutoClear(AutoClearType val) {
 assertNotCloseInvoked();
 _broker.setAutoClear(val.toKernelConstant());
+properties = null;
 }
 
 @Override
 public void setAutoClear(int autoClear) {
 assertNotCloseInvoked();
 _broker.setAutoClear(autoClear);
+properties = null;
 }
 
 @Override
@@ -362,12 +372,14 @@ public class EntityManagerImpl
 public void setDetachState(DetachStateType type) {
 assertNotCloseInvoked();
 _broker.setDetachState(type.toKernelConstant());
+properties = null;
 }
 
 @Override
 public void setDetachState(int detach) {
 assertNotCloseInvoked();
 _broker.setDetachState(detach);
+properties = null;
 }
 
 @Override
@@ -379,30 +391,35 @@ public class EntityManagerImpl
 public void setAutoDetach(AutoDetachType flag) {
 assertNotCloseInvoked();
 _broker.setAutoDetach(AutoDetachType.fromEnumSet(EnumSet.of(flag)));
+properties = null;
 }
 
 @Override
 public void setAutoDetach(EnumSet flags) {
 assertNotCloseInvoked();
 _broker.setAutoDetach(AutoDetachType.fromEnumSet(flags));
+properties = null;
 }
 
 @Override
 public void setAutoDetach(int autoDetachFlags) {
 assertNotCloseInvoked();
 _broker.setAutoDetach(autoDetachFlags);
+properties = null;
 }
 
 @Override
 public void setAutoDetach(AutoDetachType value, boolean on) {
 assertNotCloseInvoked();
 
_broker.setAutoDetach(AutoDetachType.fromEnumSet(EnumSet.of(value)),on);
+properties = null;
 }
 
 @Override
 public void setAutoDetach(int flag, boolean on) {
 assertNotCloseInvoked();
 _broker.setAutoDetach(flag, on);
+properties = null;
 }
 
 @Override
@@ -414,6 +431,7 @@ public class EntityManagerImpl
 public void setEvictFromStoreCache(boolean evict) {
 assertNotCloseInvoked

[openjpa] branch master updated: useless import

2020-10-01 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 629ebae  useless import
629ebae is described below

commit 629ebaefce481863ec0a154b06ef8b5ccf41a620
Author: Romain Manni-Bucau 
AuthorDate: Thu Oct 1 10:52:41 2020 +0200

useless import
---
 .../src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java | 2 --
 1 file changed, 2 deletions(-)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java
index a9377dc..8fc3472 100644
--- 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java
+++ 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openjpa.jdbc.sql;
 
-import java.sql.Types;
-
 /**
  * Dictionary for HerdDB.
  */



[openjpa] branch master updated: [OPENJPA-2834] also cache properties in the em - even if less useful, but no need to recompute it again and again

2020-10-01 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 574e226  [OPENJPA-2834] also cache properties in the em - even if less 
useful, but no need to recompute it again and again
574e226 is described below

commit 574e226ba074dda5927623f5f1b33c009c4d1187
Author: Romain Manni-Bucau 
AuthorDate: Thu Oct 1 09:49:00 2020 +0200

[OPENJPA-2834] also cache properties in the em - even if less useful, but 
no need to recompute it again and again
---
 .../src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java  | 1 +
 1 file changed, 1 insertion(+)

diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
index 1a171dd..d5f78fe 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
@@ -1965,6 +1965,7 @@ public class EntityManagerImpl
 props.put(userKey.equals(kernelKey) ? s : userKey, 
JPAProperties.convertToUserValue(userKey, kvalue));
 }
 }
+properties = props; // no need to synchronize, we don't care of the 
actual ref, we just want it as value
 return props;
 }
 



[openjpa] branch master updated: [OPENJPA-2834] enable to bypass synchronizeMappings when calling getProperties

2020-10-01 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 0b68db6  [OPENJPA-2834] enable to bypass synchronizeMappings when 
calling getProperties
0b68db6 is described below

commit 0b68db6ba164943d8470d46fb4de326a19fc9485
Author: Romain Manni-Bucau 
AuthorDate: Thu Oct 1 09:45:50 2020 +0200

[OPENJPA-2834] enable to bypass synchronizeMappings when calling 
getProperties
---
 .../apache/openjpa/persistence/EntityManagerFactoryImpl.java | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
index ff06de6..9242ccd 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
@@ -119,7 +119,7 @@ public class EntityManagerFactoryImpl
 if (emEmptyPropsProperties != null) {
 props.putAll(emEmptyPropsProperties);
 } else {
-props.putAll(createEntityManager().getProperties());
+props.putAll(doCreateEM(SynchronizationType.SYNCHRONIZED, 
null, true).getProperties());
 }
 // no need to sync or volatile, worse case concurrent threads 
create 2 instances
 // we just want to avoid to do it after some "init" phase
@@ -198,6 +198,12 @@ public class EntityManagerFactoryImpl
  */
 @Override
 public OpenJPAEntityManagerSPI createEntityManager(SynchronizationType 
synchronizationType, Map props) {
+return doCreateEM(synchronizationType, props, false);
+}
+
+private OpenJPAEntityManagerSPI doCreateEM(SynchronizationType 
synchronizationType,
+   Map props,
+   boolean 
byPassSynchronizeMappings) {
 if (synchronizationType == null) {
 throw new NullPointerException("SynchronizationType must not be 
null");
 }
@@ -271,7 +277,9 @@ public class EntityManagerFactoryImpl
 }
 validateCfNameProps(conf, cfName, cf2Name);
 
-Broker broker = _factory.newBroker(user, pass, managed, retainMode, 
false, cfName, cf2Name);
+Broker broker = byPassSynchronizeMappings ?
+conf.newBrokerInstance(user, pass) :
+_factory.newBroker(user, pass, managed, retainMode, false, 
cfName, cf2Name);
 
 // add autodetach for close and rollback conditions to the 
configuration
 broker.setAutoDetach(AutoDetach.DETACH_CLOSE, true);



[openjpa] branch master updated: [OPENJPA-2834] ensure getProperties does not fail with xmlstore

2020-09-30 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 9fa619f  [OPENJPA-2834] ensure getProperties does not fail with 
xmlstore
9fa619f is described below

commit 9fa619f94ecec2510d2ec560bb719eecd8f222c1
Author: Romain Manni-Bucau 
AuthorDate: Wed Sep 30 15:34:44 2020 +0200

[OPENJPA-2834] ensure getProperties does not fail with xmlstore
---
 .../openjpa/conf/OpenJPAConfigurationImpl.java |  3 ++
 .../openjpa/enhance/PCClassFileTransformer.java| 45 --
 .../apache/openjpa/enhance/PCEnhancerAgent.java|  2 +-
 .../java/org/apache/openjpa/kernel/BrokerImpl.java |  5 ++-
 .../persistence/PersistenceProviderImpl.java   |  2 +-
 5 files changed, 43 insertions(+), 14 deletions(-)

diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
index 6727e14..4660b8d 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
@@ -2023,6 +2023,9 @@ public class OpenJPAConfigurationImpl
 
 @Override
 public FinderCache getFinderCacheInstance() {
+if (finderCachePlugin == null) { // xmlstore case
+return null;
+}
 if (finderCachePlugin.get() == null) {
 finderCachePlugin.instantiate(FinderCache.class, this);
 }
diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
index d5f35ae..8376c6e 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
@@ -54,7 +54,6 @@ public class PCClassFileTransformer
 private final ClassLoader _tmpLoader;
 private final Log _log;
 private final Set _names;
-private boolean _transforming = false;
 
 /**
  * Constructor.
@@ -104,6 +103,13 @@ public class PCClassFileTransformer
 _log.info(_loc.get("runtime-enhance-pcclasses"));
 }
 
+public static PCClassFileTransformer newInstance(final MetaDataRepository 
repos, final Options parseProperties,
+ final ClassLoader 
tmpLoader) {
+return parseProperties != null && 
parseProperties.getBooleanProperty("Reentrant") ?
+new PCClassFileTransformer.Reentrant(repos, parseProperties, 
tmpLoader) :
+new PCClassFileTransformer(repos, parseProperties, tmpLoader);
+}
+
 @Override
 public byte[] transform(ClassLoader loader, String className, Class redef, 
ProtectionDomain domain, byte[] bytes)
 throws IllegalClassFormatException {
@@ -115,14 +121,6 @@ public class PCClassFileTransformer
 if (className == null) {
 return null;
 }
-// prevent re-entrant calls, which can occur if the enhancing
-// loader is used to also load OpenJPA libraries; this is to prevent
-// recursive enhancement attempts for internal openjpa libraries
-if (_transforming)
-return null;
-
-_transforming = true;
-
 return transform0(className, redef, bytes);
 }
 
@@ -131,7 +129,7 @@ public class PCClassFileTransformer
  * ClassCircularityError when executing method using pure-JIT JVMs
  * such as JRockit.
  */
-private byte[] transform0(String className, Class redef, byte[] bytes)
+protected byte[] transform0(String className, Class redef, byte[] bytes)
 throws IllegalClassFormatException {
 
 byte[] returnBytes = null;
@@ -169,7 +167,6 @@ public class PCClassFileTransformer
 throw (IllegalClassFormatException) t;
 throw new GeneralException(t);
 } finally {
-_transforming = false;
 if (returnBytes != null && _log.isTraceEnabled())
 _log.trace(_loc.get("runtime-enhance-complete", className,
 bytes.length, returnBytes.length));
@@ -228,4 +225,30 @@ public class PCClassFileTransformer
 private static boolean isEnhanced(byte[] b) {
 return AsmAdaptor.isEnhanced(b);
 }
+
+public static class Reentrant extends PCClassFileTransformer {
+private final ThreadLocal transforming = new ThreadLocal<>();
+
+public Reentrant(final MetaDataRepository repos, final Options opts, 
final ClassLoader loader) {
+super(repos, opts, loader);
+}
+
+public Reentrant(final MetaDataRepository repos, final 
PCEnhancer.Flag

[openjpa] branch master updated: [OPENJPA-2834] ensure setProperty invalid properties cache in em

2020-09-30 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 4a546f7  [OPENJPA-2834] ensure setProperty invalid properties cache in 
em
4a546f7 is described below

commit 4a546f759cee4220495e4206abc3c0503af204fa
Author: Romain Manni-Bucau 
AuthorDate: Wed Sep 30 13:43:55 2020 +0200

[OPENJPA-2834] ensure setProperty invalid properties cache in em
---
 .../org/apache/openjpa/persistence/EntityManagerFactoryImpl.java  | 8 +---
 .../java/org/apache/openjpa/persistence/EntityManagerImpl.java| 1 +
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
index 0c8ff9a..ff06de6 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
@@ -281,9 +281,11 @@ public class EntityManagerFactoryImpl
 OpenJPAEntityManagerSPI em = newEntityManagerImpl(broker);
 
 // allow setting of other bean properties of EM
-Set entrySet = props.entrySet();
-for (Map.Entry entry : entrySet) {
-em.setProperty(entry.getKey().toString(), entry.getValue());
+if (!props.isEmpty()) {
+Set entrySet = props.entrySet();
+for (Map.Entry entry : entrySet) {
+em.setProperty(entry.getKey().toString(), entry.getValue());
+}
 }
 if (canCacheGetProperties) {
 if (emEmptyPropsProperties == null) {
diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
index 9782412..1a171dd 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
@@ -2121,6 +2121,7 @@ public class EntityManagerImpl
  */
 @Override
 public void setProperty(String prop, Object value) {
+properties = null;
 if (!setKernelProperty(this, prop, value)) {
 if (!setKernelProperty(this.getFetchPlan(), prop, value)) {
 Log log = 
getConfiguration().getLog(OpenJPAConfiguration.LOG_RUNTIME);



[openjpa] branch master updated (049c2ef -> 758b866)

2020-09-30 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 049c2ef  Merge pull request #71 from eolivelli/fix/OPENJPA-2820-delim
 new b24a6a2  OPENJPA-2832 DROP COLUMN does not use delimiters and always 
add double quotes
 new 61f11a7  add test
 new 758b866  Merge pull request #75 from eolivelli/fix/OPENJPA-2832

The 5090 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/openjpa/jdbc/sql/DBDictionary.java  |  2 +-
 .../jdbc/sql/TestDBDictionaryGeneratedSQL.java | 32 ++
 2 files changed, 33 insertions(+), 1 deletion(-)



[openjpa] branch master updated: OPENJPA-2820

2020-09-30 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new bc63cd2  OPENJPA-2820
 new 049c2ef  Merge pull request #71 from eolivelli/fix/OPENJPA-2820-delim
bc63cd2 is described below

commit bc63cd2e45b386040ea5e402d8ab6abd4d98c833
Author: Enrico Olivelli 
AuthorDate: Thu Jul 23 10:14:43 2020 +0200

OPENJPA-2820
---
 .../java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java| 6 --
 .../java/org/apache/openjpa/lib/identifier/IdentifierImpl.java   | 9 +
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java
 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java
index aa1f888..255784a 100644
--- 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java
+++ 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java
@@ -142,6 +142,7 @@ public class DBIdentifier extends IdentifierImpl implements 
Cloneable, Identifie
 if (DBIdentifierType.CONSTANT != getType() && 
DBIdentifierType.COLUMN_DEFINITION != getType()) {
 if (delimit) {
 name = Normalizer.delimit(name, true);
+setNameDelimited(true);
  } else {
  name = Normalizer.normalizeString(name);
  }
@@ -325,6 +326,7 @@ public class DBIdentifier extends IdentifierImpl implements 
Cloneable, Identifie
 sName.setNameInternal(getNameInternal());
 sName.setType(getType());
 sName.setIgnoreCase(getIgnoreCase());
+sName.setNameDelimited(isNameDelimited());
 return sName;
 }
 
@@ -859,7 +861,7 @@ public class DBIdentifier extends IdentifierImpl implements 
Cloneable, Identifie
  * @param name
  */
 public static DBIdentifier removeDelimiters(DBIdentifier name) {
-if (DBIdentifier.isNull(name)) {
+if (DBIdentifier.isNull(name) || !name.isDelimited()) {
 return name;
 }
 if (!name.isDelimited()) {
@@ -927,7 +929,7 @@ public class DBIdentifier extends IdentifierImpl implements 
Cloneable, Identifie
 if (DBIdentifier.isEmpty(this)) {
 return false;
 }
-return Normalizer.isDelimited(getNameInternal());
+return isNameDelimited() || Normalizer.isDelimited(getNameInternal());
 }
 
 /**
diff --git 
a/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierImpl.java
 
b/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierImpl.java
index 3958cd3..99a636d 100644
--- 
a/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierImpl.java
+++ 
b/openjpa-lib/src/main/java/org/apache/openjpa/lib/identifier/IdentifierImpl.java
@@ -28,6 +28,7 @@ public class IdentifierImpl implements Identifier, 
Serializable {
 
 private static final long serialVersionUID = 1L;
 private String _name = null;
+private boolean nameDelimited = false;
 
 protected IdentifierImpl() {}
 
@@ -45,6 +46,14 @@ public class IdentifierImpl implements Identifier, 
Serializable {
 return _name;
 }
 
+public boolean isNameDelimited() {
+return nameDelimited;
+}
+
+public void setNameDelimited(boolean nameDelimited) {
+this.nameDelimited = nameDelimited;
+}
+
 @Override
 public String toString() {
 return getName();



[openjpa] branch master updated: [OPENJPA-2834] cache EMF#properties

2020-09-30 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new bd015d0  [OPENJPA-2834] cache EMF#properties
bd015d0 is described below

commit bd015d02e95bd3d7c39f3b0a9bdf2cb448bedc75
Author: Romain Manni-Bucau 
AuthorDate: Wed Sep 30 12:14:35 2020 +0200

[OPENJPA-2834] cache EMF#properties
---
 .../persistence/EntityManagerFactoryImpl.java  | 27 ++
 .../openjpa/persistence/EntityManagerImpl.java |  8 +++
 2 files changed, 31 insertions(+), 4 deletions(-)

diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
index 4dd9728..0c8ff9a 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
@@ -75,6 +75,8 @@ public class EntityManagerFactoryImpl
 private transient StoreCache _cache = null;
 private transient QueryResultCache _queryCache = null;
 private transient MetamodelImpl _metaModel;
+private transient Map properties;
+private transient Map emEmptyPropsProperties;
 
 /**
  * Default constructor provided for auto-instantiation.
@@ -111,10 +113,19 @@ public class EntityManagerFactoryImpl
 
 @Override
 public Map getProperties() {
-Map props = _factory.getProperties();
-// convert to user readable values
-props.putAll(createEntityManager().getProperties());
-return props;
+if (properties == null) {
+Map props = _factory.getProperties();
+// convert to user readable values
+if (emEmptyPropsProperties != null) {
+props.putAll(emEmptyPropsProperties);
+} else {
+props.putAll(createEntityManager().getProperties());
+}
+// no need to sync or volatile, worse case concurrent threads 
create 2 instances
+// we just want to avoid to do it after some "init" phase
+this.properties = props;
+}
+return properties;
 }
 
 @Override
@@ -201,6 +212,7 @@ public class EntityManagerFactoryImpl
 props = new HashMap(props);
 }
 
+boolean canCacheGetProperties = props.isEmpty(); // nominal case
 
 OpenJPAConfiguration conf = getConfiguration();
 Log log = conf.getLog(OpenJPAConfiguration.LOG_RUNTIME);
@@ -273,6 +285,13 @@ public class EntityManagerFactoryImpl
 for (Map.Entry entry : entrySet) {
 em.setProperty(entry.getKey().toString(), entry.getValue());
 }
+if (canCacheGetProperties) {
+if (emEmptyPropsProperties == null) {
+emEmptyPropsProperties = em.getProperties();
+} else if (EntityManagerImpl.class.isInstance(em)) {
+
EntityManagerImpl.class.cast(em).setProperties(emEmptyPropsProperties);
+}
+}
 if (log != null && log.isTraceEnabled()) {
 log.trace(this + " created EntityManager " + em + ".");
 }
diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
index 35606f0..9782412 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
@@ -122,6 +122,7 @@ public class EntityManagerImpl
 protected RuntimeExceptionTranslator _ret = 
PersistenceExceptions.getRollbackTranslator(this);
 private boolean _convertPositionalParams = false;
 private boolean _isJoinedToTransaction;
+private Map properties;
 
 public EntityManagerImpl() {
 // for Externalizable
@@ -1792,6 +1793,10 @@ public class EntityManagerImpl
 }
 }
 
+public void setProperties(final Map 
emEmptyPropsProperties) {
+this.properties = emEmptyPropsProperties;
+}
+
 private static class BrokerBytesInputStream extends ObjectInputStream {
 
 private OpenJPAConfiguration conf;
@@ -1935,6 +1940,9 @@ public class EntityManagerImpl
  */
 @Override
 public Map getProperties() {
+if (properties != null) {
+return properties;
+}
 Map props = _broker.getProperties();
 for (String s : _broker.getSupportedProperties()) {
 String kernelKey = getBeanPropertyName(s);



[openjpa] branch master updated: [OPENJPA-2833] asm 9

2020-09-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 910a812  [OPENJPA-2833] asm 9
910a812 is described below

commit 910a812a1550382d2bafd9a001a66c5e7425ccf5
Author: Romain Manni-Bucau 
AuthorDate: Tue Sep 29 16:57:20 2020 +0200

[OPENJPA-2833] asm 9
---
 .../junit5/internal/OpenJPADirectoriesEnhancer.java| 14 +++---
 openjpa-kernel/pom.xml |  2 +-
 .../main/java/org/apache/openjpa/enhance/AsmAdaptor.java   |  8 
 pom.xml|  2 +-
 4 files changed, 13 insertions(+), 13 deletions(-)

diff --git 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
index dd8e169..c8be809 100644
--- 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
+++ 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
@@ -27,10 +27,10 @@ import org.apache.openjpa.lib.log.LogFactoryImpl;
 import org.apache.openjpa.lib.log.SLF4JLogFactory;
 import org.apache.openjpa.meta.MetaDataRepository;
 import org.apache.openjpa.persistence.PersistenceMetaDataFactory;
-import org.apache.xbean.asm8.AnnotationVisitor;
-import org.apache.xbean.asm8.ClassReader;
-import org.apache.xbean.asm8.Type;
-import org.apache.xbean.asm8.shade.commons.EmptyVisitor;
+import org.apache.xbean.asm9.AnnotationVisitor;
+import org.apache.xbean.asm9.ClassReader;
+import org.apache.xbean.asm9.Type;
+import org.apache.xbean.asm9.shade.commons.EmptyVisitor;
 import org.apache.xbean.finder.ClassLoaders;
 import serp.bytecode.BCClass;
 import serp.bytecode.Project;
@@ -58,9 +58,9 @@ import java.util.logging.Logger;
 import java.util.stream.Stream;
 
 import static java.util.Arrays.asList;
-import static org.apache.xbean.asm8.ClassReader.SKIP_CODE;
-import static org.apache.xbean.asm8.ClassReader.SKIP_DEBUG;
-import static org.apache.xbean.asm8.ClassReader.SKIP_FRAMES;
+import static org.apache.xbean.asm9.ClassReader.SKIP_CODE;
+import static org.apache.xbean.asm9.ClassReader.SKIP_DEBUG;
+import static org.apache.xbean.asm9.ClassReader.SKIP_FRAMES;
 
 public class OpenJPADirectoriesEnhancer implements Runnable {
 private static final Logger LOGGER = 
Logger.getLogger(OpenJPADirectoriesEnhancer.class.getName());
diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml
index 89450bd..d0d2793 100644
--- a/openjpa-kernel/pom.xml
+++ b/openjpa-kernel/pom.xml
@@ -77,7 +77,7 @@
 
 
 org.apache.xbean
-xbean-asm8-shaded
+xbean-asm9-shaded
 ${xbean.version}
 
 
diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
index 4c8b3a4..24f7c61 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
@@ -30,10 +30,10 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URLDecoder;
 
-import org.apache.xbean.asm8.ClassReader;
-import org.apache.xbean.asm8.ClassVisitor;
-import org.apache.xbean.asm8.ClassWriter;
-import org.apache.xbean.asm8.Opcodes;
+import org.apache.xbean.asm9.ClassReader;
+import org.apache.xbean.asm9.ClassVisitor;
+import org.apache.xbean.asm9.ClassWriter;
+import org.apache.xbean.asm9.Opcodes;
 
 import serp.bytecode.BCClass;
 
diff --git a/pom.xml b/pom.xml
index 6bc4c9f..cf6c223 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,7 +94,7 @@
 
 3.0.0-M4
 
-4.17
+4.18
 1.1.2
 2.9.0
 
-SUBMODULES-NEED-TO-OVERRIDE-THIS-



[openjpa] branch master updated (f93ea15 -> 4c624c0)

2020-09-26 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from f93ea15  [OPENJPA-2828] Fix method equals() (#72)
 new dd9bce0  OPENJPA-2816 Add HerdDB DBDictionary - more fixes
 new 963ed59  remove useless conversion and extension point
 new e95dbc8  add tests
 new 4c624c0  Merge pull request #74 from 
eolivelli/fix/herddb-delimitall-real

The 5083 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../openjpa/jdbc/kernel/ClassTableJDBCSeq.java |   6 +-
 .../apache/openjpa/jdbc/kernel/TableJDBCSeq.java   |   7 +-
 .../openjpa/jdbc/kernel/ValueTableJDBCSeq.java |   4 +-
 .../org/apache/openjpa/jdbc/sql/DBDictionary.java  |   3 +
 .../apache/openjpa/jdbc/sql/HerdDBDictionary.java  |   5 +-
 .../openjpa/jdbc/kernel/TableJDBCSeqTest.java  | 161 +
 6 files changed, 179 insertions(+), 7 deletions(-)
 create mode 100644 
openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/kernel/TableJDBCSeqTest.java



[openjpa] branch master updated: dropping java < 8 asm test since we require java >= 8

2020-09-16 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 1862e2b  dropping java < 8 asm test since we require java >= 8
1862e2b is described below

commit 1862e2bad507949caed81cecb9155360b9731220
Author: Romain Manni-Bucau 
AuthorDate: Wed Sep 16 10:32:04 2020 +0200

dropping java < 8 asm test since we require java >= 8
---
 .../org/apache/openjpa/enhance/AsmAdaptor.java |  6 --
 .../openjpa/enhance/PCClassFileTransformer.java| 23 +-
 .../org/apache/openjpa/enhance/TestAsmAdaptor.java |  4 
 3 files changed, 1 insertion(+), 32 deletions(-)

diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
index 6bb26d9..4c8b3a4 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
@@ -43,7 +43,6 @@ import serp.bytecode.BCClass;
  * Serp.
  */
 public final class AsmAdaptor {
-private static final boolean USE_ASM = 
System.getProperty("java.version").compareTo("1.6") > 0;
 private static final int Java7_MajorVersion = 51;
 
 @SuppressWarnings("deprecation")
@@ -117,11 +116,6 @@ public final class AsmAdaptor {
 return cw.toByteArray();
 }
 
-public static boolean use()
-{
-return USE_ASM;
-}
-
 public static boolean isEnhanced(final byte[] b)
 {
 if (b == null)
diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
index d67fb48..d5f35ae 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
@@ -35,7 +35,6 @@ import org.apache.openjpa.util.GeneralException;
 
 import serp.bytecode.BCClass;
 import serp.bytecode.Project;
-import serp.bytecode.lowlevel.ConstantPoolTable;
 
 
 /**
@@ -227,26 +226,6 @@ public class PCClassFileTransformer
  * {@link PersistenceCapable}.
  */
 private static boolean isEnhanced(byte[] b) {
-if (AsmAdaptor.use())
-{
-return AsmAdaptor.isEnhanced(b);
-}
-
-ConstantPoolTable table = new ConstantPoolTable(b);
-int idx = table.getEndIndex();
-
-idx += 6; // skip access, cls, super
-int ifaces = table.readUnsignedShort(idx);
-int clsEntry, utfEntry;
-String name;
-for (int i = 0; i < ifaces; i++) {
-idx += 2;
-clsEntry = table.readUnsignedShort(idx);
-utfEntry = table.readUnsignedShort(table.get(clsEntry));
-name = table.readString(table.get(utfEntry));
-if ("org/apache/openjpa/enhance/PersistenceCapable".equals(name))
-return true;
-}
-return false;
+return AsmAdaptor.isEnhanced(b);
 }
 }
diff --git 
a/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java 
b/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java
index d64c7f8..970b981 100644
--- 
a/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java
+++ 
b/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java
@@ -33,10 +33,6 @@ public class TestAsmAdaptor
 @Test
 public void isEnhanced()
 {
-if (!AsmAdaptor.use())
-{
-return;
-}
 assertTrue(AsmAdaptor.isEnhanced(bytes(Enhanced.class)));
 assertTrue(AsmAdaptor.isEnhanced(bytes(TransitivelyEnhanced.class)));
 assertFalse(AsmAdaptor.isEnhanced(bytes(NotEnhanced.class)));



[openjpa] branch master updated: [OPENJPA-2830] ensure we don't drop a SQL statement when running action executeScript

2020-09-15 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new a38684b  [OPENJPA-2830] ensure we don't drop a SQL statement when 
running action executeScript
a38684b is described below

commit a38684b3231e13cef7fa6588194c68f226589d52
Author: Romain Manni-Bucau 
AuthorDate: Tue Sep 15 17:57:24 2020 +0200

[OPENJPA-2830] ensure we don't drop a SQL statement when running action 
executeScript
---
 .../src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java| 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
index f57293d..1bdbf64 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
@@ -525,9 +525,9 @@ public class SchemaTool {
 continue;
 }
 
-int semiColonPosition = sql.indexOf(";");
-if (semiColonPosition != -1) {
-sql = sql.substring(0, semiColonPosition);
+int semiColonPosition = sql.indexOf(";"); // ';' can be in 
string, don't blindly drop it
+if (sql.endsWith(";")) {
+sql = sql.substring(0, sql.length() - 1);
 }
 if (sql.isEmpty()) {
 continue;



[openjpa] branch master updated: [OPENJPA-2829] ensure empty lines are ignored for executeScript action

2020-09-15 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 8dbdc14  [OPENJPA-2829] ensure empty lines are ignored for 
executeScript action
8dbdc14 is described below

commit 8dbdc143219734d3c8ab05f13fa11b791e643458
Author: Romain Manni-Bucau 
AuthorDate: Tue Sep 15 16:57:43 2020 +0200

[OPENJPA-2829] ensure empty lines are ignored for executeScript action
---
 .../src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java   | 3 +++
 1 file changed, 3 insertions(+)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
index f7d528f..f57293d 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
@@ -529,6 +529,9 @@ public class SchemaTool {
 if (semiColonPosition != -1) {
 sql = sql.substring(0, semiColonPosition);
 }
+if (sql.isEmpty()) {
+continue;
+}
 script.add(sql);
 }
 



[openjpa] branch master updated: [OPENJPA-2824] simplify OpenJPADirectoriesEnhancer runtime when in auto mode

2020-07-24 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 119df60  [OPENJPA-2824] simplify OpenJPADirectoriesEnhancer runtime 
when in auto mode
119df60 is described below

commit 119df603b8223043499b28410ce28a1edae22459
Author: Romain Manni-Bucau 
AuthorDate: Fri Jul 24 11:46:13 2020 +0200

[OPENJPA-2824] simplify OpenJPADirectoriesEnhancer runtime when in auto mode
---
 .../internal/OpenJPADirectoriesEnhancer.java   | 37 --
 .../openjpa/junit5/internal/OpenJPAExtension.java  |  3 --
 2 files changed, 21 insertions(+), 19 deletions(-)

diff --git 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
index 19b4419..dd8e169 100644
--- 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
+++ 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
@@ -53,6 +53,7 @@ import java.nio.file.StandardOpenOption;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.logging.Logger;
 import java.util.stream.Stream;
 
@@ -65,6 +66,8 @@ public class OpenJPADirectoriesEnhancer implements Runnable {
 private static final Logger LOGGER = 
Logger.getLogger(OpenJPADirectoriesEnhancer.class.getName());
 public static final StackTraceElement[] NO_STACK_TRACE = new 
StackTraceElement[0];
 
+private static final AtomicBoolean AUTO_DONE = new AtomicBoolean(false);
+
 private final boolean auto;
 private final String[] entities;
 private final Class logFactory;
@@ -84,22 +87,24 @@ public class OpenJPADirectoriesEnhancer implements Runnable 
{
 thread.setContextClassLoader(enhancementClassLoader);
 try {
 if (auto) {
-try {
-
ClassLoaders.findUrls(enhancementClassLoader.getParent()).stream()
-.map(org.apache.xbean.finder.util.Files::toFile)
-.filter(File::isDirectory)
-.map(File::toPath)
-.forEach(dir -> {
-LOGGER.fine(() -> "Enhancing folder '" + dir + 
"'");
-try {
-enhanceDirectory(enhancementClassLoader, 
dir);
-} catch (final IOException e) {
-throw new IllegalStateException(e);
-}
-});
-} catch (final IOException e) {
-throw new IllegalStateException(e);
-}
+if (AUTO_DONE.compareAndSet(false, true)) {
+try {
+
ClassLoaders.findUrls(enhancementClassLoader.getParent()).stream()
+
.map(org.apache.xbean.finder.util.Files::toFile)
+.filter(File::isDirectory)
+.map(File::toPath)
+.forEach(dir -> {
+LOGGER.fine(() -> "Enhancing folder '" + 
dir + "'");
+try {
+
enhanceDirectory(enhancementClassLoader, dir);
+} catch (final IOException e) {
+throw new IllegalStateException(e);
+}
+});
+} catch (final IOException e) {
+throw new IllegalStateException(e);
+}
+} // else: already done, skip useless work
 } else {
 Stream.of(entities).forEach(e -> {
 try {
diff --git 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
index 2cacd5e..86147e3 100644
--- 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
+++ 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
@@ -23,10 +23,7 @@ import org.junit.jupiter.api.extension.BeforeAllCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
 import org.junit.platform.commons.util.AnnotationUtils;
 
-import java.util.logging.Logger;
-
 public class OpenJPAExtension implements BeforeAllCallback {
-private static final Logger LO

[openjpa] 02/02: excluding asm too

2020-07-23 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch 
OPENJPA-2817_PCClassFileTransformer-exclusions
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit 1c14bc28cb399e32afba5e59d4b23c6eb6ad3067
Author: Romain Manni-Bucau 
AuthorDate: Tue Jul 14 20:25:00 2020 +0200

excluding asm too
---
 .../main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
index 45bc953..f0ac151 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
@@ -143,7 +143,8 @@ public class PCClassFileTransformer
 if (className.startsWith("org/apache/")) {
 final String sub = className.substring("org/apache/".length());
 if (sub.startsWith("openjpa/") ||
-sub.startsWith("commons/")) {
+sub.startsWith("commons/") ||
+sub.startsWith("xbean/")) {
 return true;
 }
 }



[openjpa] branch OPENJPA-2817_PCClassFileTransformer-exclusions updated (9e665c0 -> 1c14bc2)

2020-07-23 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch 
OPENJPA-2817_PCClassFileTransformer-exclusions
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


omit 9e665c0  Merge branch 'master' into 
OPENJPA-2817_PCClassFileTransformer-exclusions
omit 96b2b12  excluding asm too
omit 763e20c  OPENJPA-2817 dropping _transforming from 
PCClassFileTransformer and replace it by a minimal exclusion list
 new fd70273  OPENJPA-2817 dropping _transforming from 
PCClassFileTransformer and replace it by a minimal exclusion list
 new 1c14bc2  excluding asm too

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (9e665c0)
\
 N -- N -- N   
refs/heads/OPENJPA-2817_PCClassFileTransformer-exclusions (1c14bc2)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/openjpa/enhance/PCClassFileTransformer.java | 18 --
 1 file changed, 8 insertions(+), 10 deletions(-)



[openjpa] 01/02: OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list

2020-07-23 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch 
OPENJPA-2817_PCClassFileTransformer-exclusions
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit fd70273f246255e86411bc4ed738860bd5cdc8f6
Author: Romain Manni-Bucau 
AuthorDate: Tue Jul 14 19:38:48 2020 +0200

OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace 
it by a minimal exclusion list
---
 .../openjpa/enhance/PCClassFileTransformer.java| 78 +++---
 1 file changed, 53 insertions(+), 25 deletions(-)

diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
index d67fb48..45bc953 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
@@ -55,7 +55,6 @@ public class PCClassFileTransformer
 private final ClassLoader _tmpLoader;
 private final Log _log;
 private final Set _names;
-private boolean _transforming = false;
 
 /**
  * Constructor.
@@ -64,7 +63,8 @@ public class PCClassFileTransformer
  * @param opts enhancer configuration options
  * @param loader temporary class loader for loading intermediate classes
  */
-public PCClassFileTransformer(MetaDataRepository repos, Options opts, 
ClassLoader loader) {
+public PCClassFileTransformer(MetaDataRepository repos, Options opts,
+ClassLoader loader) {
 this(repos, toFlags(opts), loader, opts.removeBooleanProperty
 ("scanDevPath", "ScanDevPath", false));
 }
@@ -105,6 +105,9 @@ public class PCClassFileTransformer
 _log.info(_loc.get("runtime-enhance-pcclasses"));
 }
 
+// this must be called under a proper locking, this is guaranteed by either
+// a correct concurrent classloader with transformation support OR
+// a mono-threaded access guarantee (build, deploy time enhancements).
 @Override
 public byte[] transform(ClassLoader loader, String className, Class redef, 
ProtectionDomain domain, byte[] bytes)
 throws IllegalClassFormatException {
@@ -116,17 +119,43 @@ public class PCClassFileTransformer
 if (className == null) {
 return null;
 }
-// prevent re-entrant calls, which can occur if the enhancing
-// loader is used to also load OpenJPA libraries; this is to prevent
-// recursive enhancement attempts for internal openjpa libraries
-if (_transforming)
-return null;
-
-_transforming = true;
 
 return transform0(className, redef, bytes);
 }
 
+// very simplified flavor of
+// @apache/tomee >
+// container/openejb-core >
+// org/apache/openejb/util/classloader/URLClassLoaderFirst.java#L207
+private boolean isExcluded(final String className) {
+if (// api
+className.startsWith("javax/") ||
+className.startsWith("jakarta/") ||
+// openjpa dependencies
+className.startsWith("serp/") ||
+// jvm
+className.startsWith("java/") ||
+className.startsWith("sun/") ||
+className.startsWith("jdk/")) {
+return true;
+}
+// it is faster to use substring when multiple tests are needed
+if (className.startsWith("org/apache/")) {
+final String sub = className.substring("org/apache/".length());
+if (sub.startsWith("openjpa/") ||
+sub.startsWith("commons/")) {
+return true;
+}
+}
+if (className.startsWith("com/")) {
+final String sub = className.substring("com/".length());
+if (sub.startsWith("oracle/") || sub.startsWith("sun/")) { // jvm
+return true;
+}
+}
+return false;
+}
+
 /**
  * We have to split the transform method into two methods to avoid
  * ClassCircularityError when executing method using pure-JIT JVMs
@@ -149,7 +178,7 @@ public class PCClassFileTransformer
 try {
 PCEnhancer enhancer = new PCEnhancer(_repos.getConfiguration(),
 new Project().loadClass(new 
ByteArrayInputStream(bytes),
-_tmpLoader), _repos);
+_tmpLoader), _repos, _tmpLoader);
 
enhancer.setAddDefaultConstructor(_flags.addDefaultConstructor);
 enhancer.setEnforcePropertyRestrictions
 (_flags.enforcePropertyRestrictions);
@@ -170,7 +199,6 @@ public 

[openjpa] branch OPENJPA-2817_PCClassFileTransformer-exclusions updated (96b2b12 -> 9e665c0)

2020-07-23 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch 
OPENJPA-2817_PCClassFileTransformer-exclusions
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 96b2b12  excluding asm too
 add c933137  OPENJPA-2816 Add HerdDB DBDictionary - implement 
HerdDBDictionary - add autodiscovery of HerdDB
 add 0e32d49  Merge pull request #63 from eolivelli/fix/OPENJPA-2816-herddb
 add dcc313b  OPENJPA-2819 Add simple GitHub Actions validation for Pull 
Requests
 add 6ec962f  remove snapshots
 add c97bb58  hard code key cache
 add 6ddfe4e  add quotes
 add d4882b0  indent
 add 29ca489  better clause
 add 5263d8c  Switch to verify
 add 7822592  use 'package'
 add 80c7d3c  use 'install' goal
 add c1a6aa5  Merge pull request #70 from eolivelli/fix/OPENJPA-2819
 add e3bb1f1  OPENJPA-2818 DBDictionary > delimitIdentifiers = true does 
not work (#69)
 add 589d775  detect newer java versions as well
 add 5d9c88d  just fix broken javadoc
 add bf03bdb  OPENJPA-2822 get rid of tricks < java8
 add ab6e0ed  OPENJPA-2823 treat jakarta.* like javax.*
 add 94a033d  OPENJPA-2821 use AsmAdapter for subclassing
 add 5b81bea  use proper maven structure for persistence.xml
 add 093a547  Fix typo
 add 9e665c0  Merge branch 'master' into 
OPENJPA-2817_PCClassFileTransformer-exclusions

No new revisions were added by this update.

Summary of changes:
 .github/workflows/pr-validation.yml|  38 ++
 .../{java => resources}/META-INF/persistence.xml   |   0
 openjpa-jdbc/nbproject/project.properties  |   0
 .../openjpa/jdbc/conf/JDBCConfigurationImpl.java   |   1 +
 .../openjpa/jdbc/identifier/DBIdentifier.java  |  42 +-
 .../org/apache/openjpa/jdbc/schema/SchemaTool.java |   7 +-
 .../java/org/apache/openjpa/jdbc/schema/Table.java |  38 +-
 .../openjpa/jdbc/sql/DBDictionaryFactory.java  |   5 +-
 ...{CacheDictionary.java => HerdDBDictionary.java} |  37 +-
 .../org/apache/openjpa/jdbc/sql/SelectImpl.java|   6 +-
 .../openjpa/jdbc/sql/DBDictionaryFactoryTest.java  |  61 +++
 .../apache/openjpa/jdbc/sql/TestSelectImpl.java|  92 
 .../org/apache/openjpa/enhance/AsmAdaptor.java |  14 +
 .../org/apache/openjpa/enhance/ClassRedefiner.java |  44 +-
 .../openjpa/enhance/InstrumentationFactory.java|   9 -
 .../openjpa/enhance/ManagedClassSubclasser.java|   7 +-
 .../openjpa/enhance/PCClassFileTransformer.java|  32 +-
 .../org/apache/openjpa/lib/util/JavaVersions.java  |   6 +-
 .../openjpa/jdbc/sql/TestDelimitIdentifiers.java   | 536 +
 .../persistence/PersistenceProviderImpl.java   |   2 -
 .../src/doc/manual/ref_guide_dbsetup.xml   |  11 +
 21 files changed, 878 insertions(+), 110 deletions(-)
 create mode 100644 .github/workflows/pr-validation.yml
 rename openjpa-examples/simple/src/main/{java => 
resources}/META-INF/persistence.xml (100%)
 create mode 100644 openjpa-jdbc/nbproject/project.properties
 copy 
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/{CacheDictionary.java => 
HerdDBDictionary.java} (52%)
 create mode 100644 
openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/DBDictionaryFactoryTest.java
 create mode 100644 
openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSelectImpl.java
 create mode 100644 
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestDelimitIdentifiers.java



[openjpa] branch master updated (0e32d49 -> c1a6aa5)

2020-07-20 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from 0e32d49  Merge pull request #63 from eolivelli/fix/OPENJPA-2816-herddb
 new dcc313b  OPENJPA-2819 Add simple GitHub Actions validation for Pull 
Requests
 new 6ec962f  remove snapshots
 new c97bb58  hard code key cache
 new 6ddfe4e  add quotes
 new d4882b0  indent
 new 29ca489  better clause
 new 5263d8c  Switch to verify
 new 7822592  use 'package'
 new 80c7d3c  use 'install' goal
 new c1a6aa5  Merge pull request #70 from eolivelli/fix/OPENJPA-2819

The 5052 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/pr-validation.yml | 38 +
 1 file changed, 38 insertions(+)
 create mode 100644 .github/workflows/pr-validation.yml



[openjpa] branch OPENJPA-2817_PCClassFileTransformer-exclusions updated: excluding asm too

2020-07-14 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch 
OPENJPA-2817_PCClassFileTransformer-exclusions
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to 
refs/heads/OPENJPA-2817_PCClassFileTransformer-exclusions by this push:
 new 96b2b12  excluding asm too
96b2b12 is described below

commit 96b2b128c180089d6999288ade928e6e183ce5da
Author: Romain Manni-Bucau 
AuthorDate: Tue Jul 14 20:25:00 2020 +0200

excluding asm too
---
 .../main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
index 63b4d2e..45d8838 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
@@ -144,7 +144,8 @@ public class PCClassFileTransformer
 if (className.startsWith("org/apache/")) {
 final String sub = className.substring("org/apache/".length());
 if (sub.startsWith("openjpa/") ||
-sub.startsWith("commons/")) {
+sub.startsWith("commons/") ||
+sub.startsWith("xbean/")) {
 return true;
 }
 }



[openjpa] branch OPENJPA-2817_PCClassFileTransformer-exclusions created (now 763e20c)

2020-07-14 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch 
OPENJPA-2817_PCClassFileTransformer-exclusions
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


  at 763e20c  OPENJPA-2817 dropping _transforming from 
PCClassFileTransformer and replace it by a minimal exclusion list

This branch includes the following new commits:

 new 763e20c  OPENJPA-2817 dropping _transforming from 
PCClassFileTransformer and replace it by a minimal exclusion list

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[openjpa] 01/01: OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it by a minimal exclusion list

2020-07-14 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch 
OPENJPA-2817_PCClassFileTransformer-exclusions
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit 763e20c3777be37df7eafc62f3b103d524f51704
Author: Romain Manni-Bucau 
AuthorDate: Tue Jul 14 19:38:48 2020 +0200

OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace 
it by a minimal exclusion list
---
 .../openjpa/enhance/PCClassFileTransformer.java| 80 +++---
 1 file changed, 55 insertions(+), 25 deletions(-)

diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
index 872d413..63b4d2e 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java
@@ -55,7 +55,6 @@ public class PCClassFileTransformer
 private final ClassLoader _tmpLoader;
 private final Log _log;
 private final Set _names;
-private boolean _transforming = false;
 
 /**
  * Constructor.
@@ -107,6 +106,9 @@ public class PCClassFileTransformer
 _log.info(_loc.get("runtime-enhance-pcclasses"));
 }
 
+// this must be called under a proper locking, this is guaranteed by either
+// a correct concurrent classloader with transformation support OR
+// a mono-threaded access guarantee (build, deploy time enhancements).
 @Override
 public byte[] transform(ClassLoader loader, String className,
 Class redef, ProtectionDomain domain, byte[] bytes)
@@ -118,17 +120,43 @@ public class PCClassFileTransformer
 if (className == null) {
 return null;
 }
-// prevent re-entrant calls, which can occur if the enhancing
-// loader is used to also load OpenJPA libraries; this is to prevent
-// recursive enhancement attempts for internal openjpa libraries
-if (_transforming)
-return null;
-
-_transforming = true;
 
 return transform0(className, redef, bytes);
 }
 
+// very simplified flavor of
+// @apache/tomee >
+// container/openejb-core >
+// org/apache/openejb/util/classloader/URLClassLoaderFirst.java#L207
+private boolean isExcluded(final String className) {
+if (// api
+className.startsWith("javax/") ||
+className.startsWith("jakarta/") ||
+// openjpa dependencies
+className.startsWith("serp/") ||
+// jvm
+className.startsWith("java/") ||
+className.startsWith("sun/") ||
+className.startsWith("jdk/")) {
+return true;
+}
+// it is faster to use substring when multiple tests are needed
+if (className.startsWith("org/apache/")) {
+final String sub = className.substring("org/apache/".length());
+if (sub.startsWith("openjpa/") ||
+sub.startsWith("commons/")) {
+return true;
+}
+}
+if (className.startsWith("com/")) {
+final String sub = className.substring("com/".length());
+if (sub.startsWith("oracle/") || sub.startsWith("sun/")) { // jvm
+return true;
+}
+}
+return false;
+}
+
 /**
  * We have to split the transform method into two methods to avoid
  * ClassCircularityError when executing method using pure-JIT JVMs
@@ -151,7 +179,7 @@ public class PCClassFileTransformer
 try {
 PCEnhancer enhancer = new PCEnhancer(_repos.getConfiguration(),
 new Project().loadClass(new 
ByteArrayInputStream(bytes),
-_tmpLoader), _repos);
+_tmpLoader), _repos, _tmpLoader);
 
enhancer.setAddDefaultConstructor(_flags.addDefaultConstructor);
 enhancer.setEnforcePropertyRestrictions
 (_flags.enforcePropertyRestrictions);
@@ -172,7 +200,6 @@ public class PCClassFileTransformer
 throw (IllegalClassFormatException) t;
 throw new GeneralException(t);
 } finally {
-_transforming = false;
 if (returnBytes != null && _log.isTraceEnabled())
 _log.trace(_loc.get("runtime-enhance-complete", className,
 bytes.length, returnBytes.length));
@@ -182,41 +209,44 @@ public class PCClassFileTransformer
 /**
  * Return whether the given class needs enhancement.
  */
-private Boolean needsEnhance(String clsName, Clas

[openjpa] branch master updated: OPENJPA-2816 Add HerdDB DBDictionary - implement HerdDBDictionary - add autodiscovery of HerdDB

2020-07-13 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new c933137  OPENJPA-2816 Add HerdDB DBDictionary - implement 
HerdDBDictionary - add autodiscovery of HerdDB
 new 0e32d49  Merge pull request #63 from eolivelli/fix/OPENJPA-2816-herddb
c933137 is described below

commit c93313767d369d60ed3201c784b257c8592892c6
Author: Enrico Olivelli 
AuthorDate: Mon Jul 13 17:18:23 2020 +0200

OPENJPA-2816 Add HerdDB DBDictionary
- implement HerdDBDictionary
- add autodiscovery of HerdDB
---
 .../openjpa/jdbc/conf/JDBCConfigurationImpl.java   |  1 +
 .../apache/openjpa/jdbc/sql/HerdDBDictionary.java  | 44 ++
 .../src/doc/manual/ref_guide_dbsetup.xml   | 11 ++
 3 files changed, 56 insertions(+)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java
 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java
index abfea8a..2b2ac33 100644
--- 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java
+++ 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/conf/JDBCConfigurationImpl.java
@@ -215,6 +215,7 @@ public class JDBCConfigurationImpl
 "jdatastore", 
org.apache.openjpa.jdbc.sql.JDataStoreDictionary.class.getName(),
 "mariadb", 
org.apache.openjpa.jdbc.sql.MariaDBDictionary.class.getName(),
 "mysql", 
org.apache.openjpa.jdbc.sql.MySQLDictionary.class.getName(),
+"herddb", 
org.apache.openjpa.jdbc.sql.HerdDBDictionary.class.getName(),
 "oracle", 
org.apache.openjpa.jdbc.sql.OracleDictionary.class.getName(),
 "pointbase", 
org.apache.openjpa.jdbc.sql.PointbaseDictionary.class.getName(),
 "postgres", 
org.apache.openjpa.jdbc.sql.PostgresDictionary.class.getName(),
diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java
new file mode 100644
index 000..31986e8
--- /dev/null
+++ 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HerdDBDictionary.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.jdbc.sql;
+
+/**
+ * Dictionary for HerdDB.
+ */
+public class HerdDBDictionary
+extends org.apache.openjpa.jdbc.sql.DBDictionary {
+
+private static final String DELIMITER_BACK_TICK = "`";
+
+public HerdDBDictionary() {
+platform = "HerdDB";
+databaseProductName = "HerdDB";
+supportsForeignKeys = false;
+supportsUniqueConstraints = false;
+supportsCascadeDeleteAction = false;
+
+// make OpenJPA escape everything, because Apache Calcite has a lot of 
reserved words, like 'User', 'Value'...
+setDelimitIdentifiers(true);
+setSupportsDelimitedIdentifiers(true);
+setLeadingDelimiter(DELIMITER_BACK_TICK);
+setTrailingDelimiter(DELIMITER_BACK_TICK);
+}
+
+}
+
diff --git a/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml 
b/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml
index 6de9dac..c839c87 100644
--- a/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml
+++ b/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml
@@ -4353,6 +4353,17 @@ dictionaries provided by OpenJPA are in the following 
table.
]


+
+   
+   HerdDBDictionary
+   
+   
+   `
+   
+   
+   `
+   
+   
 





[openjpa] branch master updated: OPENJPA-2815 jakarta bundle

2020-06-08 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new db5912b  OPENJPA-2815 jakarta bundle
db5912b is described below

commit db5912b309a3dabc74b7155285f8771dad360446
Author: Romain Manni-Bucau 
AuthorDate: Mon Jun 8 13:35:12 2020 +0200

OPENJPA-2815 jakarta bundle
---
 openjpa/pom.xml | 88 +
 1 file changed, 88 insertions(+)

diff --git a/openjpa/pom.xml b/openjpa/pom.xml
index a20817c..6c80ebd 100644
--- a/openjpa/pom.xml
+++ b/openjpa/pom.xml
@@ -96,6 +96,94 @@
 
 
 
+
+shade-jakarta
+package
+
+shade
+
+
+
true
+
jakarta
+
false
+
${createSources}
+
+
+
+
+
+
org.apache.openjpa:openjpa-lib
+
org.apache.openjpa:openjpa-kernel
+
org.apache.openjpa:openjpa-jdbc
+
org.apache.openjpa:openjpa-persistence
+
org.apache.openjpa:openjpa-persistence-jdbc
+
org.apache.openjpa:openjpa-xmlstore
+
org.apache.openjpa:openjpa-slice
+
+
+
+
+javax.annotation
+
jakarta.annotation
+
+
+javax.el
+jakarta.el
+
+
+javax.enterprise
+
jakarta.enterprise
+
+
+javax.decorator
+
jakarta.decorator
+
+
+javax.inject
+
jakarta.inject
+
+
+javax.interceptor
+
jakarta.interceptor
+
+
+javax.servlet
+
jakarta.servlet
+
+
+javax.transaction
+
jakarta.transaction
+
+
+javax.validation
+
jakarta.validation
+
+
+javax.persistence
+
jakarta.persistence
+
+
+javax.faces
+
jakarta.faces
+
+
+javax.ejb
+jakarta.ejb
+
+
+javax.jms
+jakarta.jms
+
+
+javax.transaction
+
jakarta.transaction
+
+
+
+
+
 
 
 



[openjpa] branch master updated: ensure TestSnakeCaseDDL runs in enhanced mode otherwise there is an issue in column name uniqueness check + fixing MappingDefaultsImpl name definition

2020-05-07 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new e721abf  ensure TestSnakeCaseDDL runs in enhanced mode otherwise there 
is an issue in column name uniqueness check + fixing MappingDefaultsImpl name 
definition
e721abf is described below

commit e721abfdaa5a89489f7fec11d4cf3a0d2b804556
Author: Romain Manni-Bucau 
AuthorDate: Thu May 7 10:02:45 2020 +0200

ensure TestSnakeCaseDDL runs in enhanced mode otherwise there is an issue 
in column name uniqueness check + fixing MappingDefaultsImpl name definition
---
 .../java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java |  2 +-
 .../org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java  | 10 --
 .../java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java |  5 +++--
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
index c9f872e..0554235 100644
--- 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
+++ 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
@@ -643,7 +643,7 @@ public class MappingDefaultsImpl
 corrected = true;
 }
 if (corrected) {
-name = dict.getValidColumnName(name, table, false);
+name = dict.getValidColumnName(name, table, true);
 col.setIdentifier(name);
 table.addCorrectedColumnName(name, true);
 }
diff --git 
a/openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java
 
b/openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java
index f779a04..99dbf71 100644
--- 
a/openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java
+++ 
b/openjpa-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestMappingDefaultsImpl.java
@@ -26,6 +26,7 @@ import org.apache.openjpa.jdbc.schema.Table;
 import org.junit.Test;
 
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 
 public class TestMappingDefaultsImpl {
 
@@ -52,11 +53,8 @@ public class TestMappingDefaultsImpl {
 mr.setConfiguration(conf);
 Version version = new Version(new ClassMapping(String.class,mr));
 mapping.populateColumns(version, table, cols);
-assertFalse("column names are conflicted : " + cols[0].getName(),
-cols[0].getName().equals(cols[1].getName()));
-assertFalse("column names are conflicted : " + cols[0].getName(),
-cols[0].getName().equals(cols[2].getName()));
-assertFalse("column names are conflicted : " + cols[1].getName(),
-cols[1].getName().equals(cols[2].getName()));
+assertNotEquals("column names are conflicted : " + cols[0].getName(), 
cols[0].getName(), cols[1].getName());
+assertNotEquals("column names are conflicted : " + cols[0].getName(), 
cols[0].getName(), cols[2].getName());
+assertNotEquals("column names are conflicted : " + cols[1].getName(), 
cols[1].getName(), cols[2].getName());
 }
 }
diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java
index 053ccfa..94d1a51 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java
@@ -57,7 +57,6 @@ public class TestSnakeCaseDDL {
 ds.setUrl("jdbc:derby:memory:ddlInSnakeCase;create=true");
 persistenceUnitInfo.setJtaDataSource(ds);
 persistenceUnitInfo.setProperty("openjpa.jdbc.DBDictionary", 
"derby(javaToDbColumnNameProcessing=snake_case)");
-persistenceUnitInfo.setProperty("openjpa.RuntimeUnenhancedClasses", 
"supported");
 new PersistenceProviderImpl().generateSchema(persistenceUnitInfo, new 
HashMap<>());
 final Collection createdTables = new HashSet<>();
 final Map> columns = new HashMap<>();
@@ -95,7 +94,9 @@ public class TestSnakeCaseDDL {
 em.persist(entity);
 em.getTransaction().commit();
 } catch (final RuntimeException re) {
-em.getTransaction().rollback();
+if (em.getTransaction().isActive()) {
+em.getTransaction().rollback();
+}
 throw re;
 } finally {
 em.close();



[openjpa] branch master updated: activating back seasar repo for uow-api now xbean had been downloaded on the ci

2020-05-07 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 868a446  activating back seasar repo for uow-api now xbean had been 
downloaded on the ci
868a446 is described below

commit 868a446a3e45fd026280c977de86dd6c4f123113
Author: Romain Manni-Bucau 
AuthorDate: Thu May 7 09:46:06 2020 +0200

activating back seasar repo for uow-api now xbean had been downloaded on 
the ci
---
 openjpa-kernel/pom.xml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml
index 7241235..5d97ccb 100644
--- a/openjpa-kernel/pom.xml
+++ b/openjpa-kernel/pom.xml
@@ -165,7 +165,7 @@
 
 
 
-
 



[openjpa] branch master updated: commenting seasar-repo since it should be useless now (and try to get back the CI green/blue)

2020-05-07 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 560a850  commenting seasar-repo since it should be useless now (and 
try to get back the CI green/blue)
560a850 is described below

commit 560a850bfdee09171a34acd3f79cd676f37279a4
Author: Romain Manni-Bucau 
AuthorDate: Thu May 7 09:39:07 2020 +0200

commenting seasar-repo since it should be useless now (and try to get back 
the CI green/blue)
---
 openjpa-kernel/pom.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml
index 5d97ccb..7241235 100644
--- a/openjpa-kernel/pom.xml
+++ b/openjpa-kernel/pom.xml
@@ -165,7 +165,7 @@
 
 
 
-
+
 



[openjpa] branch master updated (a975a3d -> d087567)

2020-04-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git.


from a975a3d  OPENJPA-2811 asm8 support
 new bf418eb  OPENJPA-2813 PersistenceProvider#generateSchema (misses the 
boolean state)
 new d087567  OPENJPA-2812 snake_case support in dbdictionary for db column 
names

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../openjpa/jdbc/kernel/JDBCBrokerFactory.java |  11 +-
 .../openjpa/jdbc/meta/MappingDefaultsImpl.java |  16 +-
 .../org/apache/openjpa/jdbc/sql/DBDictionary.java  |  37 +
 .../apache/openjpa/jdbc/sql/TestDBDictionary.java} |  25 ++--
 .../apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java  | 162 +
 .../persistence/PersistenceProviderImpl.java   |  54 ++-
 .../slice/jdbc/DistributedJDBCBrokerFactory.java   |   6 +-
 7 files changed, 282 insertions(+), 29 deletions(-)
 copy openjpa-jdbc/src/{main/java/org/apache/openjpa/jdbc/sql/Calendard.java => 
test/java/org/apache/openjpa/jdbc/sql/TestDBDictionary.java} (61%)
 create mode 100644 
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java



[openjpa] 01/02: OPENJPA-2813 PersistenceProvider#generateSchema (misses the boolean state)

2020-04-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit bf418eb1b3036f49d9536db66e30ef7ceb83332d
Author: Romain Manni-Bucau 
AuthorDate: Wed Apr 29 20:47:12 2020 +0200

OPENJPA-2813 PersistenceProvider#generateSchema (misses the boolean state)
---
 .../openjpa/jdbc/kernel/JDBCBrokerFactory.java | 11 +++--
 .../persistence/PersistenceProviderImpl.java   | 54 --
 .../slice/jdbc/DistributedJDBCBrokerFactory.java   |  6 ++-
 3 files changed, 60 insertions(+), 11 deletions(-)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
index 1597c00..ecf0f8c 100644
--- 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
+++ 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
@@ -147,17 +147,17 @@ public class JDBCBrokerFactory extends 
AbstractBrokerFactory {
 /**
  * Synchronize the mappings of the classes listed in the configuration.
  */
-protected void synchronizeMappings(ClassLoader loader,
+protected boolean synchronizeMappings(ClassLoader loader,
 JDBCConfiguration conf) {
 mapSchemaGenerationToSynchronizeMappings(conf);
 String action = conf.getSynchronizeMappings();
 if (StringUtil.isEmpty(action))
-return;
+return false;
 
 MappingRepository repo = conf.getMappingRepositoryInstance();
 Collection> classes = repo.loadPersistentTypes(false, loader);
 if (classes.isEmpty())
-return;
+return false;
 
 String props = Configurations.getProperties(action);
 action = Configurations.getClassName(action);
@@ -175,10 +175,11 @@ public class JDBCBrokerFactory extends 
AbstractBrokerFactory {
 }
 }
 tool.record();
+return true; // todo: check?
 }
 
-protected void synchronizeMappings(ClassLoader loader) {
-synchronizeMappings(loader, (JDBCConfiguration) getConfiguration());
+protected boolean synchronizeMappings(ClassLoader loader) {
+return synchronizeMappings(loader, (JDBCConfiguration) 
getConfiguration());
 }
 
 private void mapSchemaGenerationToSynchronizeMappings(JDBCConfiguration 
conf) {
diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
index 1d337af..0b6d998 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
@@ -20,6 +20,8 @@ package org.apache.openjpa.persistence;
 
 import java.lang.instrument.ClassFileTransformer;
 import java.lang.instrument.IllegalClassFormatException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.security.ProtectionDomain;
 import java.util.HashMap;
 import java.util.Map;
@@ -36,6 +38,7 @@ import org.apache.openjpa.conf.OpenJPAConfiguration;
 import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
 import org.apache.openjpa.enhance.PCClassFileTransformer;
 import org.apache.openjpa.enhance.PCEnhancerAgent;
+import org.apache.openjpa.kernel.AbstractBrokerFactory;
 import org.apache.openjpa.kernel.Bootstrap;
 import org.apache.openjpa.kernel.BrokerFactory;
 import org.apache.openjpa.kernel.ConnectionRetainModes;
@@ -223,13 +226,56 @@ public class PersistenceProviderImpl
 }
 
 @Override
-public void generateSchema(PersistenceUnitInfo info, Map map) {
-throw new UnsupportedOperationException("JPA 2.1");
+public void generateSchema(final PersistenceUnitInfo info, final Map map) {
+final Map runMap = map == null ? new HashMap<>() : new HashMap<>(map);
+runMap.put("javax.persistence.schema-generation.database.action", 
"create");
+final OpenJPAEntityManagerFactory factory = 
createContainerEntityManagerFactory(info, runMap);
+try {
+synchronizeMappings(factory);
+} finally {
+factory.close();
+}
 }
 
 @Override
-public boolean generateSchema(String persistenceUnitName, Map map) {
-throw new UnsupportedOperationException("JPA 2.1");
+public boolean generateSchema(final String persistenceUnitName, final Map 
map) {
+final Map runMap = map == null ? new HashMap<>() : new HashMap<>(map);
+runMap.put("javax.persistence.schema-generation.database.action", 
"create");
+final OpenJPAEntityManagerFactory factory = 
createEntityManagerFactory(persistenceUnitNa

[openjpa] 02/02: OPENJPA-2812 snake_case support in dbdictionary for db column names

2020-04-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit d0875670dd470473e305aea00d66984735a8e3dc
Author: Romain Manni-Bucau 
AuthorDate: Wed Apr 29 20:47:28 2020 +0200

OPENJPA-2812 snake_case support in dbdictionary for db column names
---
 .../openjpa/jdbc/meta/MappingDefaultsImpl.java |  16 +-
 .../org/apache/openjpa/jdbc/sql/DBDictionary.java  |  37 +
 .../apache/openjpa/jdbc/sql/TestDBDictionary.java  |  35 +
 .../apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java  | 162 +
 4 files changed, 246 insertions(+), 4 deletions(-)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
index ca1bf38..c9f872e 100644
--- 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
+++ 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingDefaultsImpl.java
@@ -630,14 +630,22 @@ public class MappingDefaultsImpl
  * Correct the given column's name.
  */
 protected void correctName(Table table, Column col) {
+DBIdentifier name = col.getIdentifier();
+boolean corrected = false;
+if (dict.javaToDbColumnNameProcessing != null) {
+name = dict.processDBColumnName(name);
+corrected = true;
+}
 if (!_defMissing || _removeHungarianNotation)
 {
-DBIdentifier name = col.getIdentifier();
 if (_removeHungarianNotation)
 name = DBIdentifier.removeHungarianNotation(name);
-DBIdentifier correctedName = dict.getValidColumnName(name, table);
-col.setIdentifier(correctedName);
-table.addCorrectedColumnName(correctedName, true);
+corrected = true;
+}
+if (corrected) {
+name = dict.getValidColumnName(name, table, false);
+col.setIdentifier(name);
+table.addCorrectedColumnName(name, true);
 }
 }
 
diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
index 82ee861..26e13fc 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
@@ -135,6 +135,8 @@ import org.apache.openjpa.util.StoreException;
 import org.apache.openjpa.util.UnsupportedException;
 import org.apache.openjpa.util.UserException;
 
+import static java.util.Locale.ROOT;
+
 
 /**
  * Class which allows the creation of SQL dynamically, in a
@@ -223,6 +225,7 @@ public class DBDictionary
 public String selectWords = null;
 public String fixedSizeTypeNames = null;
 public String schemaCase = SCHEMA_CASE_UPPER;
+public String javaToDbColumnNameProcessing;
 public boolean setStringRightTruncationOn = true;
 public boolean fullResultCollectionInOrderByRelation = false;
 public boolean disableSchemaFactoryColumnTypeErrors = false; //OPENJPA-2627
@@ -3292,6 +3295,32 @@ public class DBDictionary
 return toDBName(getColumnIdentifier(column));
 }
 
+public String toSnakeCase(final String name) {
+final StringBuilder out = new StringBuilder(name.length() + 3);
+final boolean isDelimited = name.startsWith(getLeadingDelimiter()) && 
name.endsWith(getTrailingDelimiter());
+final String toConvert;
+if (isDelimited) {
+toConvert = name.substring(2, name.length() - 1);
+out.append(name.substring(0, 2).toLowerCase(ROOT));
+} else {
+toConvert = name.substring(1);
+out.append(Character.toLowerCase(name.charAt(0)));
+}
+for (final char c : toConvert.toCharArray()) {
+if (!Character.isLetter(c)) { // delimiter
+out.append(c);
+} else if (Character.isUpperCase(c)) {
+out.append('_').append(Character.toLowerCase(c));
+} else {
+out.append(c);
+}
+}
+if (toConvert.length() != name.length() - 1) {
+out.append(name.charAt(name.length() - 1));
+}
+return out.toString();
+}
+
 /**
  * Returns the full name of the table, including the schema (delimited
  * by {@link #catalogSeparator}).
@@ -3389,6 +3418,14 @@ public class DBDictionary
 return getValidColumnName(DBIdentifier.newColumn(name), table, 
true).getName();
 }
 
+public DBIdentifier processDBColumnName(final DBIdentifier name) {
+if ("snake_case".equalsIgnoreCase(javaToDbColumnNameProcessing)) {
+return DBIdentifier.newColumn(toSnakeCase(name.getName()));
+}
+throw new IllegalArgumentException(
+  

[openjpa] branch master updated: OPENJPA-2811 asm8 support

2020-04-27 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new a975a3d  OPENJPA-2811 asm8 support
a975a3d is described below

commit a975a3d1c63a82a6897b79a5cc9fcc4a3ebbb01f
Author: Romain Manni-Bucau 
AuthorDate: Mon Apr 27 16:52:11 2020 +0200

OPENJPA-2811 asm8 support
---
 openjpa-features/src/main/feature/feature.xml  |  2 +-
 .../junit5/internal/OpenJPADirectoriesEnhancer.java| 14 +++---
 openjpa-kernel/pom.xml |  2 +-
 .../main/java/org/apache/openjpa/enhance/AsmAdaptor.java   | 10 +-
 openjpa-project/assembly.xml   |  2 +-
 openjpa-project/bin-assembly.xml   |  2 +-
 pom.xml|  2 +-
 7 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/openjpa-features/src/main/feature/feature.xml 
b/openjpa-features/src/main/feature/feature.xml
index 63b39c0..c3fc1c3 100644
--- a/openjpa-features/src/main/feature/feature.xml
+++ b/openjpa-features/src/main/feature/feature.xml
@@ -28,7 +28,7 @@
 mvn:org.apache.commons/commons-dbcp2/2.7.0
 mvn:org.apache.commons/commons-collections4/4.4
 mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.14.1_1
-mvn:org.apache.xbean/xbean-asm7-shaded/${xbean.version}
+mvn:org.apache.xbean/xbean-asm8-shaded/${xbean.version}
 mvn:org.apache.openjpa/openjpa/${project.version}
 
 
osgi.service;objectClass=javax.persistence.spi.PersistenceProvider;effective:=active;javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl
diff --git 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
index 7c62942..19b4419 100644
--- 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
+++ 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
@@ -27,10 +27,10 @@ import org.apache.openjpa.lib.log.LogFactoryImpl;
 import org.apache.openjpa.lib.log.SLF4JLogFactory;
 import org.apache.openjpa.meta.MetaDataRepository;
 import org.apache.openjpa.persistence.PersistenceMetaDataFactory;
-import org.apache.xbean.asm7.AnnotationVisitor;
-import org.apache.xbean.asm7.ClassReader;
-import org.apache.xbean.asm7.Type;
-import org.apache.xbean.asm7.shade.commons.EmptyVisitor;
+import org.apache.xbean.asm8.AnnotationVisitor;
+import org.apache.xbean.asm8.ClassReader;
+import org.apache.xbean.asm8.Type;
+import org.apache.xbean.asm8.shade.commons.EmptyVisitor;
 import org.apache.xbean.finder.ClassLoaders;
 import serp.bytecode.BCClass;
 import serp.bytecode.Project;
@@ -57,9 +57,9 @@ import java.util.logging.Logger;
 import java.util.stream.Stream;
 
 import static java.util.Arrays.asList;
-import static org.apache.xbean.asm7.ClassReader.SKIP_CODE;
-import static org.apache.xbean.asm7.ClassReader.SKIP_DEBUG;
-import static org.apache.xbean.asm7.ClassReader.SKIP_FRAMES;
+import static org.apache.xbean.asm8.ClassReader.SKIP_CODE;
+import static org.apache.xbean.asm8.ClassReader.SKIP_DEBUG;
+import static org.apache.xbean.asm8.ClassReader.SKIP_FRAMES;
 
 public class OpenJPADirectoriesEnhancer implements Runnable {
 private static final Logger LOGGER = 
Logger.getLogger(OpenJPADirectoriesEnhancer.class.getName());
diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml
index 5a32849..5d97ccb 100644
--- a/openjpa-kernel/pom.xml
+++ b/openjpa-kernel/pom.xml
@@ -77,7 +77,7 @@
 
 
 org.apache.xbean
-xbean-asm7-shaded
+xbean-asm8-shaded
 ${xbean.version}
 
 
diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
index d3cfe03..7bef1ef 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
@@ -30,10 +30,10 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URLDecoder;
 
-import org.apache.xbean.asm7.ClassReader;
-import org.apache.xbean.asm7.ClassVisitor;
-import org.apache.xbean.asm7.ClassWriter;
-import org.apache.xbean.asm7.Opcodes;
+import org.apache.xbean.asm8.ClassReader;
+import org.apache.xbean.asm8.ClassVisitor;
+import org.apache.xbean.asm8.ClassWriter;
+import org.apache.xbean.asm8.Opcodes;
 
 import serp.bytecode.BCClass;
 
@@ -117,7 +117,7 @@ public final class AsmAdaptor {
 final ClassReader cr = new ClassReader(b);
 try
 {
-cr.accept(new

[openjpa] branch master updated: extracting directory enhancement logic in a runnable for junit5 module to be able to reuse it easily

2020-03-31 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new beb1255  extracting directory enhancement logic in a runnable for 
junit5 module to be able to reuse it easily
beb1255 is described below

commit beb125500f10b77cca8d40b88d23252af78fae21
Author: Romain Manni-Bucau 
AuthorDate: Tue Mar 31 09:28:32 2020 +0200

extracting directory enhancement logic in a runnable for junit5 module to 
be able to reuse it easily
---
 ...ension.java => OpenJPADirectoriesEnhancer.java} |  98 ---
 .../openjpa/junit5/internal/OpenJPAExtension.java  | 318 +
 2 files changed, 56 insertions(+), 360 deletions(-)

diff --git 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
similarity index 84%
copy from 
openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
copy to 
openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
index 2478cad..7c62942 100644
--- 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
+++ 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java
@@ -22,7 +22,6 @@ import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
 import org.apache.openjpa.enhance.AsmAdaptor;
 import org.apache.openjpa.enhance.PCEnhancer;
 import org.apache.openjpa.enhance.PersistenceCapable;
-import org.apache.openjpa.junit5.OpenJPASupport;
 import org.apache.openjpa.lib.log.LogFactory;
 import org.apache.openjpa.lib.log.LogFactoryImpl;
 import org.apache.openjpa.lib.log.SLF4JLogFactory;
@@ -33,9 +32,6 @@ import org.apache.xbean.asm7.ClassReader;
 import org.apache.xbean.asm7.Type;
 import org.apache.xbean.asm7.shade.commons.EmptyVisitor;
 import org.apache.xbean.finder.ClassLoaders;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.platform.commons.util.AnnotationUtils;
 import serp.bytecode.BCClass;
 import serp.bytecode.Project;
 
@@ -47,7 +43,6 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
 import java.net.URL;
 import java.nio.file.FileVisitResult;
 import java.nio.file.Files;
@@ -66,53 +61,62 @@ import static org.apache.xbean.asm7.ClassReader.SKIP_CODE;
 import static org.apache.xbean.asm7.ClassReader.SKIP_DEBUG;
 import static org.apache.xbean.asm7.ClassReader.SKIP_FRAMES;
 
-public class OpenJPAExtension implements BeforeAllCallback {
-private static final Logger LOGGER = 
Logger.getLogger(OpenJPAExtension.class.getName());
+public class OpenJPADirectoriesEnhancer implements Runnable {
+private static final Logger LOGGER = 
Logger.getLogger(OpenJPADirectoriesEnhancer.class.getName());
+public static final StackTraceElement[] NO_STACK_TRACE = new 
StackTraceElement[0];
+
+private final boolean auto;
+private final String[] entities;
+private final Class logFactory;
+
+public OpenJPADirectoriesEnhancer(final boolean auto, final String[] 
entities, final Class logFactory) {
+this.auto = auto;
+this.entities = entities;
+this.logFactory = logFactory;
+}
 
 @Override
-public void beforeAll(final ExtensionContext context) {
-AnnotationUtils.findAnnotation(context.getElement(), 
OpenJPASupport.class).ifPresent(s -> {
-final ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();
-final OpenJpaClassLoader enhancementClassLoader = new 
OpenJpaClassLoader(
-classLoader, createLogFactory(classLoader, 
s.logFactory()));
-final Thread thread = Thread.currentThread();
-thread.setContextClassLoader(enhancementClassLoader);
-try {
-if (s.auto()) {
+public void run() {
+final ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();
+final OpenJpaClassLoader enhancementClassLoader = new 
OpenJpaClassLoader(
+classLoader, createLogFactory(classLoader));
+final Thread thread = Thread.currentThread();
+thread.setContextClassLoader(enhancementClassLoader);
+try {
+if (auto) {
+try {
+
ClassLoaders.findUrls(enhancementClassLoader.getParent()).stream()
+.map(org.apache.xbean.finder.util.Files::toFile)
+.filter(File::isDirectory)
+.map(File::toPath)
+.forEach(dir -> {
+LO

[openjpa] branch master updated: using same jpa spec jar in junit5 module than others

2020-03-23 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 4c9ac41  using same jpa spec jar in junit5 module than others
4c9ac41 is described below

commit 4c9ac41fd1367396e34151dcc5e9b98674d2665b
Author: Romain Manni-Bucau 
AuthorDate: Mon Mar 23 09:24:12 2020 +0100

using same jpa spec jar in junit5 module than others
---
 openjpa-junit5/pom.xml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/openjpa-junit5/pom.xml b/openjpa-junit5/pom.xml
index 45668cb..fb6d5ab 100644
--- a/openjpa-junit5/pom.xml
+++ b/openjpa-junit5/pom.xml
@@ -39,8 +39,7 @@
 
 
 org.apache.geronimo.specs
-geronimo-jpa_2.1_spec
-1.0-alpha-1
+geronimo-jpa_2.2_spec
 provided
 
 



[openjpa] branch master updated: fixing parent version of junit5 module

2020-03-23 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new d2ba842  fixing parent version of junit5 module
d2ba842 is described below

commit d2ba842d61266ab67bc17245c00db37a06da666b
Author: Romain Manni-Bucau 
AuthorDate: Mon Mar 23 08:56:00 2020 +0100

fixing parent version of junit5 module
---
 openjpa-junit5/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/openjpa-junit5/pom.xml b/openjpa-junit5/pom.xml
index 4f72473..1eb5c6c 100644
--- a/openjpa-junit5/pom.xml
+++ b/openjpa-junit5/pom.xml
@@ -24,7 +24,7 @@
 
 org.apache.openjpa
 openjpa-parent
-3.0.1-SNAPSHOT
+3.1.2-SNAPSHOT
 
 
 openjpa-junit5



[openjpa] branch master updated: OPENJPA-2809 ensure embeddabe too are enhanced

2020-03-23 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new f9b0906  OPENJPA-2809 ensure embeddabe too are enhanced
f9b0906 is described below

commit f9b0906c1baa080ea67b3b1b26430a2489013671
Author: Romain Manni-Bucau 
AuthorDate: Mon Mar 23 08:45:20 2020 +0100

OPENJPA-2809 ensure embeddabe too are enhanced
---
 .../java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java   | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
index 2761291..2478cad 100644
--- 
a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
+++ 
b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPAExtension.java
@@ -39,6 +39,7 @@ import org.junit.platform.commons.util.AnnotationUtils;
 import serp.bytecode.BCClass;
 import serp.bytecode.Project;
 
+import javax.persistence.Embeddable;
 import javax.persistence.Entity;
 import javax.persistence.MappedSuperclass;
 import java.io.ByteArrayInputStream;
@@ -191,6 +192,7 @@ public class OpenJPAExtension implements BeforeAllCallback {
 private static class OpenJpaClassLoader extends BaseClassLoader {
 private static final String PERSITENCE_CAPABLE = 
Type.getDescriptor(PersistenceCapable.class);
 private static final String ENTITY = Type.getDescriptor(Entity.class);
+private static final String EMBEDDABLE = 
Type.getDescriptor(Embeddable.class);
 private static final String MAPPED_SUPERCLASS = 
Type.getDescriptor(MappedSuperclass.class);
 
 private final MetaDataRepository repos;
@@ -280,7 +282,9 @@ public class OpenJPAExtension implements BeforeAllCallback {
 
 @Override
 public AnnotationVisitor visitAnnotation(final String 
descriptor, final boolean visible) {
-if (ENTITY.equals(descriptor) || 
MAPPED_SUPERCLASS.equals(descriptor)) {
+if (ENTITY.equals(descriptor) ||
+EMBEDDABLE.equals(descriptor) ||
+MAPPED_SUPERCLASS.equals(descriptor)) {
 throw new MissingEnhancement(); // we already went 
into visit() so we miss the enhancement
 }
 return new EmptyVisitor().visitAnnotation(descriptor, 
visible);



[openjpa] branch master updated: OPENJPA-2809 adding openjpa-junit5 module

2020-03-17 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new ae9b2a9  OPENJPA-2809 adding openjpa-junit5 module
ae9b2a9 is described below

commit ae9b2a904bc5611257e2db888d3c61c7235be19f
Author: Romain Manni-Bucau 
AuthorDate: Tue Mar 17 17:17:19 2020 +0100

OPENJPA-2809 adding openjpa-junit5 module
---
 openjpa-examples/image-gallery/pom.xml |   2 -
 openjpa-examples/openbooks/pom.xml |   1 -
 openjpa-examples/pom.xml   |   3 +-
 openjpa-examples/simple/pom.xml|   1 -
 openjpa-features/src/main/feature/feature.xml  |   6 +-
 openjpa-integration/daytrader/pom.xml  |   2 -
 openjpa-integration/examples/pom.xml   |   3 -
 openjpa-integration/jmx/pom.xml|   2 -
 openjpa-integration/slf4j/pom.xml  |   2 -
 openjpa-integration/tck/pom.xml|   1 -
 openjpa-integration/validation/pom.xml |   1 -
 {openjpa-tools => openjpa-junit5}/pom.xml  |  54 ++--
 .../org/apache/openjpa/junit5/OpenJPASupport.java  |  57 
 .../openjpa/junit5/internal/OpenJPAExtension.java  | 346 +
 .../java/org/apache/openjpa/junit5/MyEntity.java   |  28 ++
 .../apache/openjpa/junit5/OpenJPASupportTest.java  |  32 ++
 openjpa-kernel/pom.xml |   2 +-
 openjpa-project/checkstyle.xml |  20 +-
 openjpa-tools/openjpa-fetch-statistics-was/pom.xml |   1 -
 openjpa-tools/openjpa-fetch-statistics/pom.xml |   1 -
 openjpa-tools/openjpa-maven-plugin/pom.xml |   1 -
 openjpa-tools/pom.xml  |   4 -
 pom.xml|  41 ++-
 23 files changed, 543 insertions(+), 68 deletions(-)

diff --git a/openjpa-examples/image-gallery/pom.xml 
b/openjpa-examples/image-gallery/pom.xml
index bff6ae3..8bfc302 100644
--- a/openjpa-examples/image-gallery/pom.xml
+++ b/openjpa-examples/image-gallery/pom.xml
@@ -38,8 +38,6 @@
   Apache OpenJPA Examples - image-gallery
 
   
-
${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}checkstyle.xml
-
${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml
 256m
 1024m
 -Xmx${test.jvm.maxheapsize}
diff --git a/openjpa-examples/openbooks/pom.xml 
b/openjpa-examples/openbooks/pom.xml
index b33c758..2a00c1e 100644
--- a/openjpa-examples/openbooks/pom.xml
+++ b/openjpa-examples/openbooks/pom.xml
@@ -40,7 +40,6 @@
 Apache OpenJPA Examples - OpenBooks
 
 
-
${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}checkstyle.xml
 
${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml
 
org.apache.openjpa.examples.openbooks
 
diff --git a/openjpa-examples/pom.xml b/openjpa-examples/pom.xml
index 96ed800..b7d5289 100644
--- a/openjpa-examples/pom.xml
+++ b/openjpa-examples/pom.xml
@@ -39,8 +39,7 @@
 
 
 DefaultLevel=WARN
-
${project.basedir}${file.separator}..${file.separator}openjpa-project${file.separator}checkstyle.xml
-
${project.basedir}${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml
+
${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml
 
 
 
diff --git a/openjpa-examples/simple/pom.xml b/openjpa-examples/simple/pom.xml
index 7e9c7df..661d26a 100644
--- a/openjpa-examples/simple/pom.xml
+++ b/openjpa-examples/simple/pom.xml
@@ -47,7 +47,6 @@
 
 
 
-
${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}checkstyle.xml
 
${project.basedir}${file.separator}..${file.separator}..${file.separator}openjpa-project${file.separator}suppressions.xml
 
org.apache.openjpa.examples.simple
 
diff --git a/openjpa-features/src/main/feature/feature.xml 
b/openjpa-features/src/main/feature/feature.xml
index 4737feb..63b39c0 100644
--- a/openjpa-features/src/main/feature/feature.xml
+++ b/openjpa-features/src/main/feature/feature.xml
@@ -25,10 +25,10 @@
 mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1
 mvn:org.apache.geronimo.specs/geronimo-el_1.0_spec/1.0.1
 mvn:org.apache.commons/commons-pool2/2.6.0
-mvn:org.apache.commons/commons-dbcp2/2.6.0
-mvn:org.apache.commons/commons-collections4/4.3
+mvn:org.apache.commons/commons-dbcp2/2.7.0
+mvn:org.apache.commons/commons-collections4/4.4
 mvn:org.apache.servicemix.bund

[openjpa] branch master updated: removing kubernetes module from our osgi bundle

2020-02-10 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new aad345f  removing kubernetes module from our osgi bundle
aad345f is described below

commit aad345fc4a690db8b07a428ff6fa82cd02cf4183
Author: Romain Manni-Bucau 
AuthorDate: Tue Feb 11 08:10:44 2020 +0100

removing kubernetes module from our osgi bundle
---
 openjpa/pom.xml | 7 ---
 1 file changed, 7 deletions(-)

diff --git a/openjpa/pom.xml b/openjpa/pom.xml
index 3300b37..a3a4b8e 100644
--- a/openjpa/pom.xml
+++ b/openjpa/pom.xml
@@ -83,7 +83,6 @@
 
org.apache.openjpa:openjpa-persistence-jdbc
 
org.apache.openjpa:openjpa-xmlstore
 
org.apache.openjpa:openjpa-slice
-
org.apache.openjpa:openjpa-kubernetes
 
 
 
@@ -139,7 +138,6 @@
 serp.*;resolution:=optional,
 org.apache.commons.dbcp2.*;resolution:=optional,
 org.apache.commons.pool2.*;resolution:=optional,
-io.fabric8.kubernetes.*;resolution:=optional,
 javax.persistence.*;version="[1.1.0,2.2)",
 *
 
@@ -238,10 +236,5 @@
 openjpa-slice
 ${project.version}
 
-
-org.apache.openjpa
-openjpa-kubernetes
-${project.version}
-
 
 



[openjpa] branch master updated: OPENJPA-2803 make pool2 optional in OSGi

2020-02-10 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new a7c4f44  OPENJPA-2803 make pool2 optional in OSGi
a7c4f44 is described below

commit a7c4f4405eacd749659ecd0130cdb4d5e05acd3a
Author: Romain Manni-Bucau 
AuthorDate: Tue Feb 11 07:53:25 2020 +0100

OPENJPA-2803 make pool2 optional in OSGi
---
 openjpa/pom.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/openjpa/pom.xml b/openjpa/pom.xml
index fd16eb6..3300b37 100644
--- a/openjpa/pom.xml
+++ b/openjpa/pom.xml
@@ -138,6 +138,7 @@
 javax.xml.bind.*;resolution:=optional,
 serp.*;resolution:=optional,
 org.apache.commons.dbcp2.*;resolution:=optional,
+org.apache.commons.pool2.*;resolution:=optional,
 io.fabric8.kubernetes.*;resolution:=optional,
 javax.persistence.*;version="[1.1.0,2.2)",
 *



[openjpa] branch master updated: OPENJPA-2803 make dbcp2 optional in OSGi

2020-02-10 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 36ddbac  OPENJPA-2803 make dbcp2 optional in OSGi
36ddbac is described below

commit 36ddbac0e4dd39494887664f9a96024ad6df798a
Author: Romain Manni-Bucau 
AuthorDate: Tue Feb 11 07:48:04 2020 +0100

OPENJPA-2803 make dbcp2 optional in OSGi
---
 openjpa/pom.xml | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/openjpa/pom.xml b/openjpa/pom.xml
index 7a93f96..fd16eb6 100644
--- a/openjpa/pom.xml
+++ b/openjpa/pom.xml
@@ -122,9 +122,9 @@
 
 
org.apache.openjpa.*;version=${project.version}
 
-oracle.jdbc.pool;resolution:=optional,
-oracle.jdbc;resolution:=optional,
-oracle.sql;resolution:=optional,
+oracle.jdbc.pool;resolution:=optional,
+oracle.jdbc;resolution:=optional,
+oracle.sql;resolution:=optional,
 com.ibm.*;resolution:=optional,
 org.postgresql.*;resolution:=optional,
 org.apache.tools.ant.*;resolution:=optional,
@@ -137,6 +137,8 @@
 
javax.validation.*;version="[1.0.0,1.1)";resolution:=optional,
 javax.xml.bind.*;resolution:=optional,
 serp.*;resolution:=optional,
+org.apache.commons.dbcp2.*;resolution:=optional,
+io.fabric8.kubernetes.*;resolution:=optional,
 javax.persistence.*;version="[1.1.0,2.2)",
 *
 



[openjpa] branch master updated: OPENJPA-2743 skip AttributeConverter when loading the Metamodel and preparing the broker to avoid to fail if it was registered in persistent classes (allowed in JPA to

2019-07-29 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new ef98e18  OPENJPA-2743 skip AttributeConverter when loading the 
Metamodel and preparing the broker to avoid to fail if it was registered in 
persistent classes (allowed in JPA to bypass scanning but enable converters)
ef98e18 is described below

commit ef98e1848096448ba7e60f65839d69451dfcc06d
Author: Romain Manni-Bucau 
AuthorDate: Mon Jul 29 17:40:09 2019 +0200

OPENJPA-2743 skip AttributeConverter when loading the Metamodel and 
preparing the broker to avoid to fail if it was registered in persistent 
classes (allowed in JPA to bypass scanning but enable converters)
---
 .../org/apache/openjpa/jdbc/meta/MappingTool.java  |  2 +-
 .../apache/openjpa/conf/OpenJPAConfiguration.java  |  4 ++
 .../openjpa/conf/OpenJPAConfigurationImpl.java | 16 +
 .../org/apache/openjpa/enhance/PCEnhancer.java |  4 ++
 .../apache/openjpa/meta/MetaDataRepository.java| 22 +-
 .../apache/openjpa/lib/conf/ClassListValue.java| 80 +
 openjpa-persistence-jdbc/src/main/ant/enhancer.xml |  1 +
 .../jdbc/JDBCPersistenceProductDerivation.java |  6 ++
 .../persistence/meta/TestMetamodelWithEnum.java| 83 ++
 .../openjpa/persistence/meta/MetamodelImpl.java|  4 ++
 10 files changed, 220 insertions(+), 2 deletions(-)

diff --git 
a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java 
b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java
index 511eabb..1e368de 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java
@@ -748,7 +748,7 @@ public class MappingTool
 ClassMapping mapping = repos.getMapping(cls, null, false);
 if (mapping != null)
 return mapping;
-if (!validate || cls.isInterface()
+if (!validate || cls.isInterface() || repos.skipMetadata(cls)
 || repos.getPersistenceAware(cls) != null)
 return null;
 throw new MetaDataException(_loc.get("no-meta", cls, 
cls.getClassLoader()));
diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
index bd844f6..703b487 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java
@@ -2009,5 +2009,9 @@ public interface OpenJPAConfiguration
 String getDropScriptTarget();
 
 String getLoadScriptSource();
+
+Collection> getTypesWithoutEnhancement();
+
+void setTypesWithoutEnhancement(Collection> value);
 }
 
diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
index 17d9b84..6727e14 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openjpa.conf;
 
+import static java.util.Arrays.asList;
+
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Map;
@@ -54,6 +56,7 @@ import org.apache.openjpa.kernel.Seq;
 import org.apache.openjpa.kernel.exps.AggregateListener;
 import org.apache.openjpa.kernel.exps.FilterListener;
 import org.apache.openjpa.lib.conf.BooleanValue;
+import org.apache.openjpa.lib.conf.ClassListValue;
 import org.apache.openjpa.lib.conf.ConfigurationImpl;
 import org.apache.openjpa.lib.conf.Configurations;
 import org.apache.openjpa.lib.conf.IntValue;
@@ -178,6 +181,7 @@ public class OpenJPAConfigurationImpl
 public BooleanValue postLoadOnMerge;
 public BooleanValue optimizeIdCopy;
 public BooleanValue useTcclForSelectNew;
+public ClassListValue typesWithoutEnhancement;
 
 // JPA Properties
 public IntValue databaseAction;
@@ -672,6 +676,8 @@ public class OpenJPAConfigurationImpl
 useTcclForSelectNew.setDefault("false");
 useTcclForSelectNew.set(false);
 
+typesWithoutEnhancement = new ClassListValue();
+
 // initialize supported options that some runtimes may not support
 supportedOptions.add(OPTION_NONTRANS_READ);
 supportedOptions.add(OPTION_OPTIMISTIC);
@@ -2278,5 +2284,15 @@ public class OpenJPAConfigurationImpl
 setUseTCCLinSelectNew(useTcclForSelectNew.booleanValue());
 }
 }
+
+@Override
+public Collection> getTypesWithoutEnhancement() {
+return asList(typesWithoutEnhancement.get());
+}
+
+ 

[openjpa] branch master updated: OPENJPA-2770 ensure equal(xxx, literal(boolean)) works in criteria builder

2019-01-23 Thread rmannibucau
This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
 new 9e22265  OPENJPA-2770 ensure equal(xxx, literal(boolean)) works in 
criteria builder
9e22265 is described below

commit 9e222652dff1d959a2252cf96e5abb48a11dd7fd
Author: Romain Manni-Bucau 
AuthorDate: Wed Jan 23 10:21:53 2019 +0100

OPENJPA-2770 ensure equal(xxx, literal(boolean)) works in criteria builder
---
 .../persistence/criteria/TestTypesafeCriteria.java | 10 ++
 .../persistence/criteria/CriteriaBuilderImpl.java  | 18 ++
 .../openjpa/persistence/criteria/PredicateImpl.java|  3 +++
 3 files changed, 27 insertions(+), 4 deletions(-)

diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java
index d850c16..5f2f8e5 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java
@@ -76,6 +76,16 @@ public class TestTypesafeCriteria extends CriteriaTest {
 assertEquivalence(q.where(cb.literal(Boolean.FALSE)), FALSE_JPQL);
 }
 
+public void testBooleanLiteralInEquals() {
+CriteriaQuery q = cb.createQuery(Order.class);
+Root root = q.from(Order.class);
+Path path = root.get("delivered");
+Expression literal = cb.literal(Boolean.FALSE);
+assertEquals( // we don't want o.delivered = 1 <> 1 but o.delivered = 
false
+"SELECT o FROM Order o WHERE o.delivered = false",
+((OpenJPACriteriaQuery) q.select(root).where(cb.equal(path, 
literal))).toCQL());
+}
+
 public void testDefaultAndIsTrue() {
 CriteriaQuery q = cb.createQuery(Person.class);
 q.from(Person.class);
diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
index 05a6b13..a3e54ed 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
@@ -264,19 +264,19 @@ public class CriteriaBuilderImpl implements 
OpenJPACriteriaBuilder, ExpressionPa
 @Override
 public  Expression diff(Expression x,
 Expression y) {
-return new Expressions.Diff<>(x, y);
+return new Expressions.Diff<>(replaceExpressionForBinaryOperator(x), 
replaceExpressionForBinaryOperator(y));
 }
 
 @Override
 public  Expression diff(
 Expression x, N y) {
-return new Expressions.Diff<>(x, y);
+return new Expressions.Diff<>(replaceExpressionForBinaryOperator(x), 
y);
 }
 
 @Override
 public  Expression diff(N x,
 Expression y) {
-return new Expressions.Diff<>(x, y);
+return new Expressions.Diff<>(x, 
replaceExpressionForBinaryOperator(y));
 }
 
 @Override
@@ -288,7 +288,17 @@ public class CriteriaBuilderImpl implements 
OpenJPACriteriaBuilder, ExpressionPa
 public Predicate equal(Expression x, Expression y) {
 if (y == null)
 return new Expressions.IsNull((ExpressionImpl )x);
-return new Expressions.Equal(x, y);
+return new Expressions.Equal(replaceExpressionForBinaryOperator(x), 
replaceExpressionForBinaryOperator(y));
+}
+
+private  Expression replaceExpressionForBinaryOperator(final 
Expression expression) {
+if (expression == PredicateImpl.TRUE()) {
+return (Expression) PredicateImpl.TRUE_CONSTANT;
+}
+if (expression == PredicateImpl.FALSE()) {
+return (Expression) PredicateImpl.FALSE_CONSTANT;
+}
+return expression;
 }
 
 @Override
diff --git 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java
 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java
index 9c6f34a..ea79d75 100644
--- 
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java
+++ 
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java
@@ -45,6 +45,9 @@ import org.apache.openjpa.kernel.exps.Literal;
  * @since 2.0.0
  */
 abstract class PredicateImpl extends ExpressionImpl implements 
Predicate {
+static final Expression TRUE_CONSTANT = new 
Expressions.Constant<>(true);
+static final Expression FALSE_CONSTANT = new 

svn commit: r1838151 - /openjpa/trunk/openjpa-features/src/main/feature/feature.xml

2018-08-16 Thread rmannibucau
Author: rmannibucau
Date: Thu Aug 16 06:35:24 2018
New Revision: 1838151

URL: http://svn.apache.org/viewvc?rev=1838151=rev
Log:
OPENJPA-2746 patch from jbonofre, OpenJPA Karaf feature is not complete, 
missing xbean asm 6 and provider capabilities

Modified:
openjpa/trunk/openjpa-features/src/main/feature/feature.xml

Modified: openjpa/trunk/openjpa-features/src/main/feature/feature.xml
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-features/src/main/feature/feature.xml?rev=1838151=1838150=1838151=diff
==
--- openjpa/trunk/openjpa-features/src/main/feature/feature.xml (original)
+++ openjpa/trunk/openjpa-features/src/main/feature/feature.xml Thu Aug 16 
06:35:24 2018
@@ -28,8 +28,11 @@
mvn:commons-dbcp/commons-dbcp/1.4
mvn:commons-collections/commons-collections/3.2.2
 mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.14.1_1
-mvn:org.apache.xbean/xbean-asm5-shaded/4.3
+mvn:org.apache.xbean/xbean-asm6-shaded/4.9
 mvn:org.apache.openjpa/openjpa/${project.version}
+
+
osgi.service;objectClass=javax.persistence.spi.PersistenceProvider;effective:=active;javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl
+
 
 
 




svn commit: r1770509 - in /openjpa/trunk: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ openjpa-jdbc/src/main/java/org/apache/open

2016-11-19 Thread rmannibucau
Author: rmannibucau
Date: Sat Nov 19 18:08:44 2016
New Revision: 1770509

URL: http://svn.apache.org/viewvc?rev=1770509=rev
Log:
OPENJPA-2554 JPA 2.1 - Schema Generation, patch from Roberto Cortez, doc to 
update still

Added:

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/SchemaGenerationAction.java

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/SchemaGenerationSource.java

openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaGenerationProperties.java

openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/

openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/create-after-metadata.sql

openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/create.sql

openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/drop-after-metadata.sql

openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/drop.sql

openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/schema/load.sql
Modified:

openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java

openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java

openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java

openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/schema/localizer.properties

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfiguration.java

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java

Modified: 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java?rev=1770509=1770508=1770509=diff
==
--- 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
 (original)
+++ 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
 Sat Nov 19 18:08:44 2016
@@ -22,6 +22,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Map;
 
+import org.apache.openjpa.conf.SchemaGenerationSource;
 import org.apache.openjpa.lib.util.StringUtil;
 import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
 import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl;
@@ -36,6 +37,19 @@ import org.apache.openjpa.lib.conf.Confi
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.util.UserException;
 
+import static org.apache.openjpa.conf.SchemaGenerationAction.CREATE;
+import static org.apache.openjpa.conf.SchemaGenerationAction.DROP;
+import static org.apache.openjpa.conf.SchemaGenerationAction.DROP_AND_CREATE;
+import static org.apache.openjpa.conf.SchemaGenerationSource.METADATA;
+import static 
org.apache.openjpa.conf.SchemaGenerationSource.METADATA_THEN_SCRIPT;
+import static org.apache.openjpa.conf.SchemaGenerationSource.SCRIPT;
+import static 
org.apache.openjpa.conf.SchemaGenerationSource.SCRIPT_THEN_METADATA;
+import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_ADD;
+import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_DROP;
+import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_SCRIPT_CREATE;
+import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_SCRIPT_DROP;
+import static org.apache.openjpa.jdbc.meta.MappingTool.ACTION_SCRIPT_LOAD;
+
 /**
  * BrokerFactory type for use with the JDBC runtime.
  *
@@ -133,6 +147,7 @@ public class JDBCBrokerFactory
  */
 protected void synchronizeMappings(ClassLoader loader, 
 JDBCConfiguration conf) {
+mapSchemaGenerationToSynchronizeMappings(conf);
 String action = conf.getSynchronizeMappings();
 if (StringUtil.isEmpty(action))
 return;
@@ -163,4 +178,80 @@ public class JDBCBrokerFactory
 protected void synchronizeMappings(ClassLoader loader) {
 synchronizeMappings(loader, (JDBCConfiguration) getConfiguration());
 }
+
+private void mapSchemaGenerationToSynchronizeMappings(JDBCConfiguration 
conf) {
+String actions = "";
+if (conf.getDatabaseAction() != null) {
+int databaseAction = conf.getDatabaseActionConstant();
+if (databaseAction == CREATE) {
+actions = generateSchemaCreation(conf);
+} else if (databaseAction == DROP) {
+actions = generateSchemaDrop(conf);
+} else if (databaseAction == DROP_AND_CREATE) {
+actions = generateSchemaDropC

svn commit: r1757319 - /openjpa/trunk/openjpa-project/checkstyle.xml

2016-08-23 Thread rmannibucau
Author: rmannibucau
Date: Tue Aug 23 07:57:16 2016
New Revision: 1757319

URL: http://svn.apache.org/viewvc?rev=1757319=rev
Log:
ensure checkstyle uses UNIx EOL to have a portable build on windows

Modified:
openjpa/trunk/openjpa-project/checkstyle.xml

Modified: openjpa/trunk/openjpa-project/checkstyle.xml
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-project/checkstyle.xml?rev=1757319=1757318=1757319=diff
==
--- openjpa/trunk/openjpa-project/checkstyle.xml (original)
+++ openjpa/trunk/openjpa-project/checkstyle.xml Tue Aug 23 07:57:16 2016
@@ -18,7 +18,9 @@
we can remove this file and remove the reference from the pom.xml -->
 
 
-   
+   
+   
+   







svn commit: r1757320 - /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java

2016-08-23 Thread rmannibucau
Author: rmannibucau
Date: Tue Aug 23 07:57:38 2016
New Revision: 1757320

URL: http://svn.apache.org/viewvc?rev=1757320=rev
Log:
OPENJPA-2300 avoid warnings due to annotation processor

Modified:

openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java?rev=1757320=1757319=1757320=diff
==
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/AnnotationProcessor6.java
 Tue Aug 23 07:57:38 2016
@@ -18,8 +18,6 @@
  */
 package org.apache.openjpa.persistence.meta;
 
-import static javax.lang.model.SourceVersion.RELEASE_6;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintWriter;
@@ -38,7 +36,7 @@ import javax.annotation.processing.Proce
 import javax.annotation.processing.RoundEnvironment;
 import javax.annotation.processing.SupportedAnnotationTypes;
 import javax.annotation.processing.SupportedOptions;
-import javax.annotation.processing.SupportedSourceVersion;
+import javax.lang.model.SourceVersion;
 import javax.lang.model.element.Element;
 import javax.lang.model.element.TypeElement;
 import javax.lang.model.type.TypeKind;
@@ -103,7 +101,6 @@ import org.apache.openjpa.persistence.ut
 "openjpa.header",
 "openjpa.metamodel"
   })
-@SupportedSourceVersion(RELEASE_6)
 
 public class AnnotationProcessor6 extends AbstractProcessor {
 private SourceAnnotationHandler handler;
@@ -113,6 +110,7 @@ public class AnnotationProcessor6 extend
 private List header = new ArrayList();
 private boolean active;
 private static Localizer _loc =  
Localizer.forPackage(AnnotationProcessor6.class);
+private SourceVersion supportedSourceVersion;
 
 /**
  * Category of members as per JPA 2.0 type system.
@@ -183,7 +181,15 @@ public class AnnotationProcessor6 extend
 return TypeCategory.MAP;
 return TypeCategory.ATTRIBUTE;
 }
-
+
+@Override
+public SourceVersion getSupportedSourceVersion() {
+if (supportedSourceVersion != null) {
+return supportedSourceVersion;
+}
+return SourceVersion.latestSupported();
+}
+
 /**
  * Initialization.
  */
@@ -193,6 +199,14 @@ public class AnnotationProcessor6 extend
 active = "true".equalsIgnoreCase(getOptionValue("openjpa.metamodel"));
 if (!active)
 return;
+
+final String supported = 
getOptionValue("openjpa.processor.supportedversion");
+if (supported != null) {
+supportedSourceVersion = SourceVersion.valueOf(supported);
+} else { // default to ensure we don't log a false warning for every 
compilation, see OPENJPA-2300
+supportedSourceVersion = SourceVersion.latestSupported();
+}
+
 processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, 
_loc.get("mmg-tool-banner").toString());
 logger = new CompileTimeLogger(processingEnv, 
getOptionValue("openjpa.log"));
 setSourceVersion();




svn commit: r1727495 - in /openjpa/sandboxes/21: openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java openjpa/pom.xml

2016-01-29 Thread rmannibucau
Author: rmannibucau
Date: Fri Jan 29 08:07:05 2016
New Revision: 1727495

URL: http://svn.apache.org/viewvc?rev=1727495=rev
Log:
applying OPENJPA-2607

Modified:

openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
openjpa/sandboxes/21/openjpa/pom.xml

Modified: 
openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java?rev=1727495=1727494=1727495=diff
==
--- 
openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 (original)
+++ 
openjpa/sandboxes/21/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 Fri Jan 29 08:07:05 2016
@@ -2032,34 +2032,7 @@ public class EntityManagerImpl
return newProcedure(procedureName, meta);
}

-   /**
-* Creates a query to execute a Stored Procedure.
-* 
-* Construction of a {@link StoredProcedureQuery} object is a three 
step process
-* 
-* a {@link org.apache.openjpa.kernel.Query kernel query} {@code 
kQ} is created for 
-* {@link QueryLanguages#LANG_SQL SQL} language with the string {@code 
S} 
-* a {@link QueryImpl facade query} {@code fQ} is created that 
delegates to the kernel query {@code kQ}
-* a {@link StoredProcedureQueryImpl stored procedure query} is 
created that delegates to the facade query
-* {@code fQ}. 
-* 
-* 
-* @param sql name of the database stored procedure. 
-* @param meta
-* @param mappingName
-* @return
-*/
-   private StoredProcedureQuery newProcedure(String procedureName, 
MultiQueryMetaData meta) {
-org.apache.openjpa.kernel.QueryImpl kernelQuery = 
(org.apache.openjpa.kernel.QueryImpl)
-   _broker.newQuery(QueryLanguages.LANG_STORED_PROC, 
procedureName);
-kernelQuery.getStoreQuery().setQuery(meta);
-if (meta != null) {
-   
getConfiguration().getMetaDataRepositoryInstance().addQueryMetaData(meta);
-   kernelQuery.setResultMapping(null, 
meta.getResultSetMappingName());
-}
-org.apache.openjpa.persistence.QueryImpl facadeQuery = new 
QueryImpl(this, _ret, kernelQuery, meta, _log);
-return new StoredProcedureQueryImpl(procedureName, facadeQuery);
-   }
+
 
@Override
public boolean isJoinedToTransaction() {

Modified: openjpa/sandboxes/21/openjpa/pom.xml
URL: 
http://svn.apache.org/viewvc/openjpa/sandboxes/21/openjpa/pom.xml?rev=1727495=1727494=1727495=diff
==
--- openjpa/sandboxes/21/openjpa/pom.xml (original)
+++ openjpa/sandboxes/21/openjpa/pom.xml Fri Jan 29 08:07:05 2016
@@ -120,7 +120,22 @@
 
org.apache.openjpa.persistence.osgi.PersistenceActivator
 
 
org.apache.openjpa.*;version=${project.version}
-
com.ibm.*;resolution:=optional,org.postgresql.*;resolution:=optional,org.apache.tools.ant.*;resolution:=optional,org.apache.log4j.*;resolution:=optional,org.slf4j.*;resolution:=optional,org.apache.commons.logging.*;resolution:=optional,javax.activation.xa*;resolution:=optional,javax.jms.*;version="[1.1.0,1.2)";resolution:=optional,javax.transaction.*;version="[1.1.0,1.2)";resolution:=optional,javax.validation.*;version="[1.0.0,1.1)";resolution:=optional,javax.xml.bind.*;resolution:=optional,serp.*;resolution:=optional,javax.persistence.*;version="[1.1.0,2.1)",*
+
+   com.ibm.*;resolution:=optional,
+   org.postgresql.*;resolution:=optional,
+   org.apache.tools.ant.*;resolution:=optional,
+   org.apache.log4j.*;resolution:=optional,
+   org.slf4j.*;resolution:=optional,
+   
org.apache.commons.logging.*;resolution:=optional,
+   javax.activation.xa*;resolution:=optional,
+   
javax.jms.*;version="[1.1.0,1.2)";resolution:=optional,
+   
javax.transaction.*;version="[1.1,1.3)";resolution:=optional,
+   
javax.validation.*;version="[1.0.0,1.1)";resolution:=optional,
+   javax.xml.bind.*;resolution:=optional,
+   serp.*;resolution:=optional,
+   javax.persistence.*;version="[1.1.0,2.1)",
+   *
+
 
 
 




svn commit: r1727520 - in /openjpa/trunk/openjpa-kernel/src: main/java/org/apache/openjpa/enhance/AsmAdaptor.java main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java test/java/org/apache/

2016-01-29 Thread rmannibucau
Author: rmannibucau
Date: Fri Jan 29 10:36:53 2016
New Revision: 1727520

URL: http://svn.apache.org/viewvc?rev=1727520=rev
Log:
OPENJPA-2626 support of java 8 bytecode test for isEnhanced - avoid to have 
logs full of exception/warnings when it actually works cause it is already 
enahnced at build time

Added:

openjpa/trunk/openjpa-kernel/src/test/java/org/apache/openjpa/enhance/TestAsmAdaptor.java
Modified:

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java

Modified: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java?rev=1727520=1727519=1727520=diff
==
--- 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
 (original)
+++ 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
 Fri Jan 29 10:36:53 2016
@@ -20,22 +20,29 @@ package org.apache.openjpa.enhance;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URLDecoder;
 
 import org.apache.xbean.asm5.ClassReader;
+import org.apache.xbean.asm5.ClassVisitor;
 import org.apache.xbean.asm5.ClassWriter;
+import org.apache.xbean.asm5.Opcodes;
 import serp.bytecode.BCClass;
 
+import static java.util.Arrays.asList;
+
 
 /**
  * Use ASM to add required StackMapTable attribute to the byte code generated 
by
  * Serp.
  */
 public final class AsmAdaptor {
+private static final boolean USE_ASM = 
System.getProperty("java.version").compareTo("1.6") > 0;
 private static final int Java7_MajorVersion = 51;
 
 @SuppressWarnings("deprecation")
@@ -95,6 +102,70 @@ public final class AsmAdaptor {
 return cw.toByteArray();
 }
 
+public static boolean use()
+{
+return USE_ASM;
+}
+
+public static boolean isEnhanced(final byte[] b)
+{
+if (b == null)
+{
+return false;
+}
+final ClassReader cr = new ClassReader(b);
+try
+{
+cr.accept(new ClassVisitor(Opcodes.ASM5)
+{
+@Override
+public void visit(final int i, final int i1,
+  final String name, final String s,
+  final String parent, final String[] 
interfaces)
+{
+boolean enhanced = interfaces != null && interfaces.length 
> 0 &&
+
asList(interfaces).contains("org/apache/openjpa/enhance/PersistenceCapable");
+if (!enhanced && name != null && parent != null &&
+!"java/lang/Object".equals(parent) && 
!name.equals(parent)) {
+enhanced = isEnhanced(bytes(parent));
+}
+throw new EnhancedStatusException(enhanced);
+}
+}, 0);
+return false;
+} catch (final EnhancedStatusException e) {
+return e.status;
+} catch (final Exception e) {
+return false;
+}
+}
+
+private static byte[] bytes(final String type)
+{
+final ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
+final InputStream stream = 
Thread.currentThread().getContextClassLoader()
+.getResourceAsStream(type + ".class");
+if (stream == null) {
+return null;
+}
+try {
+int c;
+byte[] buffer = new byte[1024];
+while ((c = stream.read(buffer)) >= 0) {
+baos.write(buffer, 0, c);
+}
+} catch (IOException e) {
+return null;
+} finally {
+try {
+stream.close();
+} catch (IOException e) {
+// no-op
+}
+}
+return baos.toByteArray();
+}
+
 private static class BCClassWriter extends ClassWriter {
 private final ClassLoader _loader;
 
@@ -128,4 +199,12 @@ public final class AsmAdaptor {
 return class1.getName().replace('.', '/');
 }
 }
+
+private static class EnhancedStatusException extends RuntimeException {
+private final boolean status;
+
+private EnhancedStatusException(final boolean status) {
+this.status = status;
+}
+}
 }

Modified: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache

svn commit: r1719469 - /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java

2015-12-11 Thread rmannibucau
Author: rmannibucau
Date: Fri Dec 11 16:27:33 2015
New Revision: 1719469

URL: http://svn.apache.org/viewvc?rev=1719469=rev
Log:
forcing EOL for BlacklistClassResolver

Modified:

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
   (props changed)

Propchange: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
--
svn:eol-style = LF




svn commit: r1718043 - /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java

2015-12-04 Thread rmannibucau
Author: rmannibucau
Date: Fri Dec  4 21:59:08 2015
New Revision: 1718043

URL: http://svn.apache.org/viewvc?rev=1718043=rev
Log:
new line - checkstyle fix

Modified:

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java

Modified: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java?rev=1718043=1718042=1718043=diff
==
--- 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
 (original)
+++ 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
 Fri Dec  4 21:59:08 2015
@@ -59,3 +59,4 @@ public class BlacklistClassResolver {
 return false;
 }
 }
+




svn commit: r1716891 - in /openjpa/trunk: openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java openjpa-persistence/src/main/java/org/apache/openjpa/persisten

2015-11-27 Thread rmannibucau
Author: rmannibucau
Date: Fri Nov 27 15:52:13 2015
New Revision: 1716891

URL: http://svn.apache.org/viewvc?rev=1716891=rev
Log:
OPENJPA-2618 pevent Tuple to pass through in createXQuery methods since we dont 
support it yet

Added:

openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java
  - copied, changed from r1716854, 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java
Modified:

openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java

Copied: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java
 (from r1716854, 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java)
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java?p2=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java=1716854=1716891=1716891=diff
==
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java
 Fri Nov 27 15:52:13 2015
@@ -18,19 +18,15 @@
  */
 package org.apache.openjpa.persistence.query;
 
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-
 import junit.textui.TestRunner;
 import org.apache.openjpa.persistence.simple.NamedEntity;
 import org.apache.openjpa.persistence.test.SingleEMFTestCase;
 
-/**
- * Test that we can query by an entity's abstract schema name.
- *
- * @author Abe White
- */
-public class TestAbstractSchemaName
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceException;
+import javax.persistence.Tuple;
+
+public class TupleQueryTest
 extends SingleEMFTestCase {
 
 public void setUp() {
@@ -46,17 +42,20 @@ public class TestAbstractSchemaName
 em.close();
 }
 
-public void testQuery() {
+public void testNormalQuery() {
 EntityManager em = emf.createEntityManager();
-Query q = em.createQuery("select e from named e");
-NamedEntity e = (NamedEntity) q.getSingleResult();
-assertNotNull(e);
-assertEquals("e", e.getName());
-em.close();
+try {
+em.createQuery("select e.name from named e", Tuple.class);
+fail();
+} catch (final PersistenceException pe) {
+// ok
+} finally {
+em.close();
+}
 }
 
 public static void main(String[] args) {
-TestRunner.run(TestAbstractSchemaName.class);
+TestRunner.run(TupleQueryTest.class);
 }
 }
 

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java?rev=1716891=1716890=1716891=diff
==
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 Fri Nov 27 15:52:13 2015
@@ -46,6 +46,7 @@ import javax.persistence.FlushModeType;
 import javax.persistence.LockModeType;
 import javax.persistence.PessimisticLockScope;
 import javax.persistence.Query;
+import javax.persistence.Tuple;
 import javax.persistence.TypedQuery;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.ParameterExpression;
@@ -972,9 +973,16 @@ public class EntityManagerImpl
 
 @SuppressWarnings("unchecked")
 public  TypedQuery createQuery(String query, Class resultClass) {
+checkTuple(resultClass);
 return createQuery(query).setResultClass(resultClass);
 }
-
+
+private  void checkTuple(Class resultClass) {
+if (Tuple.class == resultClass) {
+throw new PersistenceException("Tuple is not a valid type", null, 
null, true);
+}
+}
+
 public OpenJPAQuery createQuery(String query) {
 return createQuery(JPQLParser.LANG_JPQL, query);
 }
@@ -1014,6 +1022,7 @@ public class EntityManagerImpl
 
 @SuppressWarnings("unchecked")
 public  TypedQuery createNamedQuery(String name, Class 
resultClass) {
+checkTuple(resultClass);
 return createNamedQuery(na

svn commit: r1716864 - /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java

2015-11-27 Thread rmannibucau
Author: rmannibucau
Date: Fri Nov 27 12:41:31 2015
New Revision: 1716864

URL: http://svn.apache.org/viewvc?rev=1716864=rev
Log:
better whitelist handling

Modified:

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java

Modified: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java?rev=1716864=1716863=1716864=diff
==
--- 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
 (original)
+++ 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
 Fri Nov 27 12:41:31 2015
@@ -20,10 +20,9 @@ package org.apache.openjpa.util;
 
 public class BlacklistClassResolver {
 public static final BlacklistClassResolver DEFAULT = new 
BlacklistClassResolver(
-toArray(
-System.getProperty(
-"openjpa.serialization.class.blacklist",
-
"org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan")),
+toArray(System.getProperty(
+"openjpa.serialization.class.blacklist",
+
"org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan")),
 toArray(System.getProperty("openjpa.serialization.class.whitelist")));
 
 private final String[] blacklist;
@@ -35,7 +34,7 @@ public class BlacklistClassResolver {
 }
 
 protected boolean isBlacklisted(final String name) {
-return !contains(whitelist, name) && contains(blacklist, name);
+return (whitelist != null && !contains(whitelist, name)) || 
contains(blacklist, name);
 }
 
 public final String check(final String name) {




svn commit: r1716859 - in /openjpa/trunk: openjpa-kernel/src/main/java/org/apache/openjpa/util/ openjpa-persistence/src/main/java/org/apache/openjpa/persistence/

2015-11-27 Thread rmannibucau
Author: rmannibucau
Date: Fri Nov 27 12:15:47 2015
New Revision: 1716859

URL: http://svn.apache.org/viewvc?rev=1716859=rev
Log:
OPENJPA-2617 adding BlacklistClassResolver to support blacklisting of class 
loading in our ObjectInputStream

Added:

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
Modified:

openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java

openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java

Added: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java?rev=1716859=auto
==
--- 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
 (added)
+++ 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/BlacklistClassResolver.java
 Fri Nov 27 12:15:47 2015
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.util;
+
+public class BlacklistClassResolver {
+public static final BlacklistClassResolver DEFAULT = new 
BlacklistClassResolver(
+toArray(
+System.getProperty(
+"openjpa.serialization.class.blacklist",
+
"org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan")),
+toArray(System.getProperty("openjpa.serialization.class.whitelist")));
+
+private final String[] blacklist;
+private final String[] whitelist;
+
+protected BlacklistClassResolver(final String[] blacklist, final String[] 
whitelist) {
+this.whitelist = whitelist;
+this.blacklist = blacklist;
+}
+
+protected boolean isBlacklisted(final String name) {
+return !contains(whitelist, name) && contains(blacklist, name);
+}
+
+public final String check(final String name) {
+if (isBlacklisted(name)) {
+throw new SecurityException(name + " is not whitelisted as 
deserialisable, prevented before loading.");
+}
+return name;
+}
+
+private static String[] toArray(final String property) {
+return property == null ? null : property.split(" *, *");
+}
+
+private static boolean contains(final String[] list, String name) {
+if (list != null) {
+for (final String white : list) {
+if (name.startsWith(white)) {
+return true;
+}
+}
+}
+return false;
+}
+}

Modified: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java?rev=1716859=1716858=1716859=diff
==
--- 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java
 (original)
+++ 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java
 Fri Nov 27 12:15:47 2015
@@ -128,12 +128,13 @@ public class Serialization {
 
 protected Class resolveClass(ObjectStreamClass desc) 
 throws IOException, ClassNotFoundException {
+String name = BlacklistClassResolver.DEFAULT.check(desc.getName());
 MultiClassLoader loader = AccessController
 .doPrivileged(J2DoPrivHelper.newMultiClassLoaderAction());
 addContextClassLoaders(loader);
 loader.addClassLoader(getClass().getClassLoader());
 loader.addClassLoader(MultiClassLoader.SYSTEM_LOADER);
-return Class.forName(desc.getName(), true, loader);
+return Class.forName(name, true, loader);
 }
 
 protected void addContextClassLoaders(MultiClassLoader loader) {

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa

svn commit: r1688082 - /openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java

2015-06-28 Thread rmannibucau
Author: rmannibucau
Date: Mon Jun 29 04:25:16 2015
New Revision: 1688082

URL: http://svn.apache.org/r1688082
Log:
OPENJPA-2597 DECIMAL and NUMERIC needs scale configuration for hsqldb

Modified:

openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java

Modified: 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java?rev=1688082r1=1688081r2=1688082view=diff
==
--- 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java
 (original)
+++ 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java
 Mon Jun 29 04:25:16 2015
@@ -97,6 +97,8 @@ public class HSQLDictionary extends DBDi
 fixedSizeTypeNameSet.addAll(Arrays.asList(new String[]{
 TEXT
 }));
+fixedSizeTypeNameSet.remove(NUMERIC);
+fixedSizeTypeNameSet.remove(DECIMAL);
 }
 
 /**




svn commit: r1684055 - in /openjpa/branches/openjpa_jpa-2.1: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-kernel/src/main/java/org/apache/openjpa/meta/ openjpa-persistence-jdbc/s

2015-06-07 Thread rmannibucau
Author: rmannibucau
Date: Sun Jun  7 18:12:39 2015
New Revision: 1684055

URL: http://svn.apache.org/r1684055
Log:
mapping db param to jpa param for stored procedure parameter names + starting 
to impl cursor support (need testing)

Modified:

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/XROP.java

openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MultiQueryMetaData.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/TestStoredProcedure.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/entity/EntityWithStoredProcedure.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoredProcedureQueryImpl.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java

Modified: 
openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java?rev=1684055r1=1684054r2=1684055view=diff
==
--- 
openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java
 (original)
+++ 
openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java
 Sun Jun  7 18:12:39 2015
@@ -37,7 +37,7 @@ import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.ArrayList;
-import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -105,7 +105,7 @@ public class StoredProcedureQuery extend
 }
 }
 }
-return new StoredProcedureQueryExecutor(this, mappings, classes);
+return new StoredProcedureQueryExecutor(this, mappings, classes, 
_meta);
 }
 
 public boolean supportsParameterDeclarations() {
@@ -128,9 +128,11 @@ public class StoredProcedureQuery extend
 public class StoredProcedureQueryExecutor  extends AbstractExecutor {
 private final ListClass? _resultClasses;
 private final ListQueryResultMapping _resultMappings;
+private final MapString, String _parametersNameMapping = new 
HashMapString, String();
+private final MapString, String _parametersNameMappingReverse = new 
HashMapString, String();
 
 public StoredProcedureQueryExecutor(StoredProcedureQuery q, 
ListQueryResultMapping resultMapping,
-ListClass? classes) {
+ListClass? classes, 
MultiQueryMetaData _meta) {
 QueryContext ctx = q.getContext();
 _resultMappings = resultMapping;
 _resultClasses = classes;
@@ -140,6 +142,14 @@ public class StoredProcedureQuery extend
 if (_proc == null) {
 throw new RuntimeException(Can not find stored procedure  + 
procName);
 }
+for (final Column c : _proc.getColumns()) {
+final String name = 
_meta.getParameters().get(c.getIndex()).getName();
+if (name != null) {
+final String dbName = c.getIdentifier().getName();
+_parametersNameMapping.put(name, dbName);
+_parametersNameMappingReverse.put(dbName, name);
+}
+}
 }
 
 StoredProcedure getStoredProcedure(Connection conn, DBDictionary dict, 
String procedureName) {
@@ -167,21 +177,26 @@ public class StoredProcedureQuery extend
 Connection conn = _store.getConnection();
 CallableStatement stmnt = conn.prepareCall(_proc.getCallSQL());
 
-final StoredProcedureQuery spq = 
StoredProcedureQuery.class.cast(q);
-for (Column c : spq.getProcedure().getInColumns()) {
-dict.setUnknown(stmnt, c.getIndex() + 1, 
params[c.getIndex()], c);
-}
-for (Column c : spq.getProcedure().getInOutColumns()) {
-final int index = c.getIndex() + 1;
-stmnt.registerOutParameter(index, c.getType());
-dict.setUnknown(stmnt, index, params[index - 1], c);
-}
-for (Column c : spq.getProcedure().getOutColumns

svn commit: r1683972 [1/2] - in /openjpa/branches/openjpa_jpa-2.1: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-jdb

2015-06-06 Thread rmannibucau
Author: rmannibucau
Date: Sun Jun  7 01:05:22 2015
New Revision: 1683972

URL: http://svn.apache.org/r1683972
Log:
OPENJPA-2592 basic stored procedure impl import

Added:

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/StoredProcedureQuery.java

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/XROP.java

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/StoredProcedure.java

openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryResultCallback.java

openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MultiQueryMetaData.java

openjpa/branches/openjpa_jpa-2.1/openjpa-lib/src/main/java/org/apache/openjpa/lib/rop/BatchedResultObjectProvider.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/TestStoredProcedure.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/derby/

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/derby/Procedures.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/entity/

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/procedure/entity/EntityWithStoredProcedure.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoredProcedureQueryImpl.java
Modified:

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCStoreManager.java

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingRepository.java

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/QueryResultMapping.java

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Column.java

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java

openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ResultSetResult.java

openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryImpl.java

openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryLanguages.java

openjpa/branches/openjpa_jpa-2.1/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/MappingTag.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AbstractQuery.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataFactory.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java

Modified: 
openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java?rev=1683972r1=1683971r2=1683972view=diff
==
--- 
openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java
 (original)
+++ 
openjpa/branches/openjpa_jpa-2.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/DBIdentifier.java
 Sun Jun  7 01:05:22 2015
@@ -46,6 +46,7 @@ public class DBIdentifier extends Identi

svn commit: r1683972 [2/2] - in /openjpa/branches/openjpa_jpa-2.1: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/identifier/ openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-jdb

2015-06-06 Thread rmannibucau
Modified: 
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java?rev=1683972r1=1683971r2=1683972view=diff
==
--- 
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
 (original)
+++ 
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceMetaDataParser.java
 Sun Jun  7 01:05:22 2015
@@ -63,6 +63,8 @@ import static org.apache.openjpa.persist
 import static org.apache.openjpa.persistence.MetaDataTag.QUERY;
 import static org.apache.openjpa.persistence.MetaDataTag.READ_ONLY;
 import static org.apache.openjpa.persistence.MetaDataTag.SEQ_GENERATOR;
+import static 
org.apache.openjpa.persistence.MetaDataTag.STOREDPROCEDURE_QUERIES;
+import static org.apache.openjpa.persistence.MetaDataTag.STOREDPROCEDURE_QUERY;
 import static org.apache.openjpa.persistence.MetaDataTag.TYPE;
 import static org.apache.openjpa.persistence.MetaDataTag.VERSION;
 
@@ -120,9 +122,12 @@ import javax.persistence.NamedNativeQuer
 import javax.persistence.NamedNativeQuery;
 import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
+import javax.persistence.NamedStoredProcedureQueries;
+import javax.persistence.NamedStoredProcedureQuery;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
+import javax.persistence.ParameterMode;
 import javax.persistence.PostLoad;
 import javax.persistence.PostPersist;
 import javax.persistence.PostRemove;
@@ -132,6 +137,7 @@ import javax.persistence.PreRemove;
 import javax.persistence.PreUpdate;
 import javax.persistence.QueryHint;
 import javax.persistence.SequenceGenerator;
+import javax.persistence.StoredProcedureParameter;
 import javax.persistence.Version;
 
 import org.apache.commons.lang.StringUtils;
@@ -156,6 +162,7 @@ import org.apache.openjpa.meta.Lifecycle
 import org.apache.openjpa.meta.MetaDataFactory;
 import org.apache.openjpa.meta.MetaDataModes;
 import org.apache.openjpa.meta.MetaDataRepository;
+import org.apache.openjpa.meta.MultiQueryMetaData;
 import org.apache.openjpa.meta.Order;
 import org.apache.openjpa.meta.QueryMetaData;
 import org.apache.openjpa.meta.SequenceMetaData;
@@ -203,6 +210,8 @@ public class AnnotationPersistenceMetaDa
 _tags.put(MapsId.class, MAPPED_BY_ID);
 _tags.put(NamedNativeQueries.class, NATIVE_QUERIES);
 _tags.put(NamedNativeQuery.class, NATIVE_QUERY);
+_tags.put(NamedStoredProcedureQueries.class, STOREDPROCEDURE_QUERIES);
+_tags.put(NamedStoredProcedureQuery.class, STOREDPROCEDURE_QUERY);
 _tags.put(NamedQueries.class, QUERIES);
 _tags.put(NamedQuery.class, QUERY);
 _tags.put(OrderBy.class, ORDER_BY);
@@ -471,6 +480,14 @@ public class AnnotationPersistenceMetaDa
 if (isQueryMode()  (pkgMode  MODE_QUERY) == 0)
 parseNamedQueries(pkg, (NamedQuery) anno);
 break;
+case STOREDPROCEDURE_QUERIES:
+if (isQueryMode())
+parseNamedStoredProcedureQueries(pkg, 
((NamedStoredProcedureQueries) anno).value());
+break;
+case STOREDPROCEDURE_QUERY:
+if (isQueryMode())
+parseNamedStoredProcedureQueries(pkg, 
((NamedStoredProcedureQuery) anno));
+break;
 case SEQ_GENERATOR:
 if (isMappingOverrideMode() 
 (pkgMode  MODE_MAPPING) == 0)
@@ -623,6 +640,14 @@ public class AnnotationPersistenceMetaDa
 if (isQueryMode()  (meta.getSourceMode()  
MODE_QUERY)==0)
 parseNamedQueries(_cls, (NamedQuery) anno);
 break;
+case STOREDPROCEDURE_QUERIES:
+if (isQueryMode())
+parseNamedStoredProcedureQueries(_cls, 
((NamedStoredProcedureQueries) anno).value());
+break;
+case STOREDPROCEDURE_QUERY:
+if (isQueryMode())
+parseNamedStoredProcedureQueries(_cls, 
((NamedStoredProcedureQuery) anno));
+break;
 case SEQ_GENERATOR:
 if (isMappingOverrideMode())
 parseSequenceGenerator(_cls, (SequenceGenerator) anno);
@@ -1043,8 +1068,8 @@ public class AnnotationPersistenceMetaDa
  * If FetchGroup A includes FetchGroup B, then a bi-link is set between
  * A and B. Both A and B must be declared in the same Class.
  * br
- 

svn commit: r1683976 - in /openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence: MetaDataTag.java XMLPersistenceMetaDataParser.java

2015-06-06 Thread rmannibucau
Author: rmannibucau
Date: Sun Jun  7 01:17:38 2015
New Revision: 1683976

URL: http://svn.apache.org/r1683976
Log:
basis for stored procedure query xml parsing

Modified:

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java

Modified: 
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java?rev=1683976r1=1683975r2=1683976view=diff
==
--- 
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java
 (original)
+++ 
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/MetaDataTag.java
 Sun Jun  7 01:17:38 2015
@@ -91,5 +91,9 @@ public enum MetaDataTag {
 OPENJPA_VERSION,
 // JPA 2.1
 STOREDPROCEDURE_QUERIES,
-STOREDPROCEDURE_QUERY
+STOREDPROCEDURE_QUERY,
+PARAMETER,
+RESULT_CLASS,
+RESULT_SET_MAPPING,
+HINT
 }

Modified: 
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?rev=1683976r1=1683975r2=1683976view=diff
==
--- 
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
 (original)
+++ 
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
 Sun Jun  7 01:17:38 2015
@@ -39,6 +39,7 @@ import javax.persistence.CascadeType;
 import javax.persistence.GenerationType;
 import javax.persistence.LockModeType;
 
+import static java.util.Arrays.asList;
 import static javax.persistence.CascadeType.*;
 
 import org.apache.commons.lang.StringUtils;
@@ -65,6 +66,7 @@ import org.apache.openjpa.meta.Lifecycle
 import org.apache.openjpa.meta.MetaDataContext;
 import org.apache.openjpa.meta.MetaDataDefaults;
 import org.apache.openjpa.meta.MetaDataFactory;
+import org.apache.openjpa.meta.MultiQueryMetaData;
 import org.apache.openjpa.meta.UpdateStrategies;
 
 import static org.apache.openjpa.meta.MetaDataModes.*;
@@ -156,6 +158,11 @@ public class XMLPersistenceMetaDataParse
 _elems.put(ELEM_XML_MAP_META_COMPLETE, ELEM_XML_MAP_META_COMPLETE);
 _elems.put(ELEM_DELIM_IDS, ELEM_DELIM_IDS);
 
+_elems.put(parameter, PARAMETER);
+_elems.put(result-class, RESULT_CLASS);
+_elems.put(result-set-mapping, RESULT_SET_MAPPING);
+_elems.put(hint, HINT);
+
 _elems.put(entity-listeners, ENTITY_LISTENERS);
 _elems.put(pre-persist, PRE_PERSIST);
 _elems.put(post-persist, POST_PERSIST);
@@ -170,6 +177,7 @@ public class XMLPersistenceMetaDataParse
 
 _elems.put(named-query, QUERY);
 _elems.put(named-native-query, NATIVE_QUERY);
+_elems.put(named-stored-procedure-query, STOREDPROCEDURE_QUERY);
 _elems.put(query-hint, QUERY_HINT);
 _elems.put(query, QUERY_STRING);
 
@@ -618,6 +626,21 @@ public class XMLPersistenceMetaDataParse
 case NATIVE_QUERY:
 ret = startNamedNativeQuery(attrs);
 break;
+case STOREDPROCEDURE_QUERY:
+ret = startStoredQuery(attrs);
+break;
+case PARAMETER:
+ret = startStoredProcedureParameter(attrs);
+break;
+case RESULT_CLASS:
+ret = startResultClass();
+break;
+case RESULT_SET_MAPPING:
+ret = startResultSetMapping();
+break;
+case HINT:
+ret = startStoredProcedureHint(attrs);
+break;
 case QUERY_STRING:
 ret = startQueryString(attrs);
 break;
@@ -683,6 +706,15 @@ public class XMLPersistenceMetaDataParse
 case NATIVE_QUERY:
 endNamedNativeQuery();
 break;
+case STOREDPROCEDURE_QUERY:
+popElement();
+break;
+case RESULT_CLASS:
+endResultClass();
+break;
+case RESULT_SET_MAPPING:
+endResultSetMapping();
+break

svn commit: r1683942 - in /openjpa/branches/openjpa_jpa-2.1: ./ openjpa-integration/tck/ openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/ openjpa-jest/

2015-06-06 Thread rmannibucau
Author: rmannibucau
Date: Sat Jun  6 19:19:11 2015
New Revision: 1683942

URL: http://svn.apache.org/r1683942
Log:
upgrading API (throwing exception for all new methods) to JPA 2.1

Modified:
openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml

openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java

openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider2.java
openjpa/branches/openjpa_jpa-2.1/openjpa-jest/pom.xml

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/NonstandardMappingEntity.java
openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/pom.xml

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoreCacheImpl.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java

openjpa/branches/openjpa_jpa-2.1/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java
openjpa/branches/openjpa_jpa-2.1/openjpa-project/assembly.xml
openjpa/branches/openjpa_jpa-2.1/openjpa-project/bin-assembly.xml
openjpa/branches/openjpa_jpa-2.1/openjpa-slice/pom.xml

openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-fetch-statistics/pom.xml
openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/pom.xml

openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/pom.xml

openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/dependingArtifact/pom.xml

openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/nonDefaultPersistenceXml/pom.xml

openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/sqlActionDropSchema/pom.xml

openjpa/branches/openjpa_jpa-2.1/openjpa-tools/openjpa-maven-plugin/src/it/testDependencies/pom.xml
openjpa/branches/openjpa_jpa-2.1/pom.xml
openjpa/branches/openjpa_jpa-2.1/scripts/mmg.bat

Modified: openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml
URL: 
http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml?rev=1683942r1=1683941r2=1683942view=diff
==
--- openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml (original)
+++ openjpa/branches/openjpa_jpa-2.1/openjpa-integration/tck/pom.xml Sat Jun  6 
19:19:11 2015
@@ -458,7 +458,7 @@ databaseName=${db.name}
 dependencies
   dependency
 groupIdorg.apache.geronimo.specs/groupId
-artifactIdgeronimo-jpa_2.0_spec/artifactId
+artifactIdgeronimo-jpa_2.1_spec/artifactId
 scopecompile/scope
   /dependency
   dependency

Modified: 
openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java?rev=1683942r1=1683941r2=1683942view=diff
==
--- 
openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java
 (original)
+++ 
openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java
 Sat Jun  6 19:19:11 2015
@@ -32,6 +32,16 @@ public class DummyProvider1 implements P
 return null;
 }
 
+@Override
+public void generateSchema(PersistenceUnitInfo info, Map map) {
+// no-op
+}
+
+@Override
+public boolean generateSchema(String persistenceUnitName, Map map) {
+return false;
+}
+
 public EntityManagerFactory createEntityManagerFactory(String s, Map map) {
 return null;
 }

Modified: 
openjpa/branches/openjpa_jpa-2.1/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider2.java
URL: 
http://svn.apache.org/viewvc

svn commit: r1683938 - /openjpa/branches/openjpa_jpa-2.1/

2015-06-06 Thread rmannibucau
Author: rmannibucau
Date: Sat Jun  6 17:38:42 2015
New Revision: 1683938

URL: http://svn.apache.org/r1683938
Log:
creating a jpa 2.1 branchfrom trunk

Added:
openjpa/branches/openjpa_jpa-2.1/   (props changed)
  - copied from r1683937, openjpa/trunk/

Propchange: openjpa/branches/openjpa_jpa-2.1/
--
--- svn:ignore (added)
+++ svn:ignore Sat Jun  6 17:38:42 2015
@@ -0,0 +1,15 @@
+.*
+openjpa-database
+target
+subs
+*.bat
+enhance.xml
+user.dict
+wip
+patches
+bin
+*.log
+maven-eclipse.xml
+*.iml
+*.ipr
+*.iws

Propchange: openjpa/branches/openjpa_jpa-2.1/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Sat Jun  6 17:38:42 2015
@@ -0,0 +1,6 @@
+/openjpa/branches/1.0.x:736493
+/openjpa/branches/2.0.x:1504611
+/openjpa/branches/2.1.x:1415379,1415398,1485010,1513249,1517838,1530146,1533218,1533280,1539188,1569528,1575444,1591536,1636464,1655218,1662610,1673300,1673491
+/openjpa/branches/2.2.1.x:1415367,1415413,1415425,1504719,1508186,1530347,1533222,1539193,1651808
+/openjpa/branches/2.2.x:1384400,1415459-1415460,1415469,1485013,1530364,1533223,1580898,1580939,1591681,1631786,1641906,1642555,1666312
+/openjpa/branches/2.3.x:1533462,1535560,1536912,1540277,1564121