You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by pe...@apache.org on 2023/02/03 21:40:22 UTC
[netbeans] branch master updated: Improve TomEE support for JPA (Fix 4146) (#5415)
This is an automated email from the ASF dual-hosted git repository.
pepness pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new fc936ecc50 Improve TomEE support for JPA (Fix 4146) (#5415)
fc936ecc50 is described below
commit fc936ecc500cc2f5c915b0b8c0130e3351e3ee45
Author: José Contreras <pe...@apache.org>
AuthorDate: Fri Feb 3 15:40:13 2023 -0600
Improve TomEE support for JPA (Fix 4146) (#5415)
- Add logic to support two default provider for TomEE PluME
- Add logic to support up to JPA 2.1
- Add methods to support JPA 2.2 and 3.0; when available in NetBeans
- Remove redundant logging, already logged the first time a server is
registered
---
.../modules/tomcat5/deploy/TomcatManager.java | 33 ++++++++++++++++-
.../modules/tomcat5/j2ee/JpaSupportImpl.java | 42 +++++++++++++++++-----
.../modules/tomcat5/j2ee/TomcatPlatformImpl.java | 2 +-
3 files changed, 67 insertions(+), 10 deletions(-)
diff --git a/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/deploy/TomcatManager.java b/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/deploy/TomcatManager.java
index c1d7fa0ff6..006a3c708c 100644
--- a/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/deploy/TomcatManager.java
+++ b/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/deploy/TomcatManager.java
@@ -498,6 +498,38 @@ public class TomcatManager implements DeploymentManager {
return false;
}
}
+
+ public boolean isTomEE9() {
+ return tomEEVersion == TomEEVersion.TOMEE_90;
+ }
+
+ public boolean isTomEE8() {
+ return tomEEVersion == TomEEVersion.TOMEE_80;
+ }
+
+ public boolean isTomEEplume() {
+ return tomEEType == TomEEType.TOMEE_PLUME;
+ }
+
+ public boolean isJpa30() {
+ return isTomEE9();
+ }
+
+ public boolean isJpa22() {
+ return isTomEE8();
+ }
+
+ public boolean isJpa21() {
+ return tomEEVersion.isAtLeast(TomEEVersion.TOMEE_70) && !isTomEE9();
+ }
+
+ public boolean isJpa20() {
+ return tomEEVersion.isAtLeast(TomEEVersion.TOMEE_15) && !isTomEE9();
+ }
+
+ public boolean isJpa10() {
+ return isJpa20(); // All TomEE versions up to 8 support JPA 1.0
+ }
/** Returns Tomcat lib folder: "lib" for Tomcat 6.0 or greater and "common/lib" for Tomcat 5.x or less*/
public String libFolder() {
@@ -523,7 +555,6 @@ public class TomcatManager implements DeploymentManager {
boolean fireListener = false;
synchronized (this) {
if (tomEEChecked) {
- LOGGER.log(Level.INFO, "TomEE version {0}, type {1}", new Object[] {tomEEVersion, tomEEType});
return;
}
assert tomEEWarListener == null;
diff --git a/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/j2ee/JpaSupportImpl.java b/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/j2ee/JpaSupportImpl.java
index b3ff67d42c..2362b78d2e 100644
--- a/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/j2ee/JpaSupportImpl.java
+++ b/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/j2ee/JpaSupportImpl.java
@@ -18,32 +18,58 @@
*/
package org.netbeans.modules.tomcat5.j2ee;
-import java.util.Collections;
+import java.util.HashSet;
import java.util.Set;
import org.netbeans.modules.javaee.specs.support.api.JpaProvider;
import org.netbeans.modules.javaee.specs.support.spi.JpaProviderFactory;
import org.netbeans.modules.javaee.specs.support.spi.JpaSupportImplementation;
+import org.netbeans.modules.tomcat5.deploy.TomcatManager;
/**
- * This is TomEE only class.
- * @author Petr Hejl
+ * This is TomEE only class. TomEE PluME support two implementations: {@code OpenJPA}
+ * and {@code EclipseLink}, </p> every other TomEE flavor only support {@code OpenJPA}
+ * @author Petr Hejl, José Contreras
*/
-public class JpaSupportImpl implements JpaSupportImplementation {
+class JpaSupportImpl implements JpaSupportImplementation {
private static final String OPENJPA_JPA_PROVIDER = "org.apache.openjpa.persistence.PersistenceProviderImpl"; // NOI18N
+ private static final String ECLIPSELINK_JPA_PROVIDER = "org.eclipse.persistence.jpa.PersistenceProvider"; // NOI18N
+ private final TomcatManager instance;
- public JpaSupportImpl() {
- super();
+
+ JpaSupportImpl(TomcatManager instance) {
+ this.instance = instance;
}
@Override
public JpaProvider getDefaultProvider() {
- return JpaProviderFactory.createJpaProvider(OPENJPA_JPA_PROVIDER, true, true, true, false);
+ return JpaProviderFactory.createJpaProvider(
+ OPENJPA_JPA_PROVIDER,
+ true,
+ instance.isJpa10(),
+ instance.isJpa20(),
+ instance.isJpa21());
}
@Override
public Set<JpaProvider> getProviders() {
- return Collections.singleton(getDefaultProvider());
+ Set<JpaProvider> providers = new HashSet<>();
+ providers.add(JpaProviderFactory.createJpaProvider(
+ OPENJPA_JPA_PROVIDER,
+ true,
+ instance.isJpa10(),
+ instance.isJpa20(),
+ instance.isJpa21()));
+ // TomEE PluME has Eclipselink and OpenJPA
+ if (instance.isTomEEplume()) {
+ providers.add(JpaProviderFactory.createJpaProvider(
+ ECLIPSELINK_JPA_PROVIDER,
+ true,
+ instance.isJpa10(),
+ instance.isJpa20(),
+ instance.isJpa21()));
+ }
+ return providers;
}
}
diff --git a/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/j2ee/TomcatPlatformImpl.java b/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/j2ee/TomcatPlatformImpl.java
index 05e39a6846..fed6b746a3 100644
--- a/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/j2ee/TomcatPlatformImpl.java
+++ b/enterprise/tomcat5/src/org/netbeans/modules/tomcat5/j2ee/TomcatPlatformImpl.java
@@ -614,7 +614,7 @@ public class TomcatPlatformImpl extends J2eePlatformImpl2 {
Collections.addAll(content, tp.getCatalinaHome(),
new EjbSupportImpl(manager), wsStack);
if (manager.isTomEE()) {
- content.add(new JpaSupportImpl());
+ content.add(new JpaSupportImpl(manager));
if (manager.isTomEEJaxRS()) {
content.add(new JaxRsStackSupportImpl(this));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists