You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2015/04/08 00:12:36 UTC
[2/2] tomee git commit: synchronization for persistence unit from
@PersistenceContext
synchronization for persistence unit from @PersistenceContext
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3bf595f3
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3bf595f3
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3bf595f3
Branch: refs/heads/master
Commit: 3bf595f3c045a5d1644d99b5cff07933c3b24fc0
Parents: dc66eb5
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Wed Apr 8 00:12:27 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Wed Apr 8 00:12:27 2015 +0200
----------------------------------------------------------------------
.../org/apache/openejb/config/AnnotationDeployer.java | 7 +++++++
.../apache/openejb/config/PersistenceContextAnn.java | 2 ++
.../openejb/config/PersistenceContextAnnFactory.java | 14 ++++++++++++++
3 files changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/3bf595f3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java b/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
index f4713bf..c47e3b1 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
@@ -84,6 +84,7 @@ import org.apache.openejb.jee.NamedMethod;
import org.apache.openejb.jee.OutboundResourceAdapter;
import org.apache.openejb.jee.ParamValue;
import org.apache.openejb.jee.PersistenceContextRef;
+import org.apache.openejb.jee.PersistenceContextSynchronization;
import org.apache.openejb.jee.PersistenceContextType;
import org.apache.openejb.jee.PersistenceUnitRef;
import org.apache.openejb.jee.PortComponent;
@@ -4555,6 +4556,9 @@ public class AnnotationDeployer implements DynamicDeployer {
PersistenceContextRef persistenceContextRef = consumer.getPersistenceContextRefMap().get(refName);
if (persistenceContextRef == null) {
persistenceContextRef = new PersistenceContextRef();
+ if (persistenceContext.synchronization() != null) { // should be the case in "normal" deployments
+ persistenceContextRef.setPersistenceContextSynchronization(PersistenceContextSynchronization.valueOf(persistenceContext.synchronization().toUpperCase(Locale.ENGLISH)));
+ }
persistenceContextRef.setPersistenceUnitName(persistenceContext.unitName());
persistenceContextRef.setPersistenceContextRefName(refName);
if ("EXTENDED".equalsIgnoreCase(persistenceContext.type())) {
@@ -4574,6 +4578,9 @@ public class AnnotationDeployer implements DynamicDeployer {
persistenceContextRef.setPersistenceContextType(PersistenceContextType.TRANSACTION);
}
}
+ if (persistenceContextRef.getPersistenceContextSynchronization() == null && persistenceContext.synchronization() != null) {
+ persistenceContextRef.setPersistenceContextSynchronization(PersistenceContextSynchronization.valueOf(persistenceContext.synchronization().toUpperCase(Locale.ENGLISH)));
+ }
}
List<Property> persistenceProperties = persistenceContextRef.getPersistenceProperty();
http://git-wip-us.apache.org/repos/asf/tomee/blob/3bf595f3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnn.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnn.java b/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnn.java
index de59f66..aaf70b8 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnn.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnn.java
@@ -22,6 +22,8 @@ import java.util.Map;
public interface PersistenceContextAnn {
String name();
+ String synchronization();
+
String unitName();
String type();
http://git-wip-us.apache.org/repos/asf/tomee/blob/3bf595f3/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java
index cc4bd61..ee9671c 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/PersistenceContextAnnFactory.java
@@ -28,6 +28,7 @@ import org.apache.xbean.asm5.shade.commons.EmptyVisitor;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceProperty;
+import javax.persistence.SynchronizationType;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
@@ -112,6 +113,11 @@ public class PersistenceContextAnnFactory {
return persistenceContext.name();
}
+ @Override
+ public String synchronization() {
+ return persistenceContext.synchronization().name();
+ }
+
public String unitName() {
return persistenceContext.unitName();
}
@@ -140,12 +146,18 @@ public class PersistenceContextAnnFactory {
public String name;
public String unitName;
public String type;
+ public String synchronization = SynchronizationType.SYNCHRONIZED.name(); // default
public final Map<String, String> properties = new LinkedHashMap<String, String>();
public String name() {
return name;
}
+ @Override
+ public String synchronization() {
+ return synchronization;
+ }
+
public String unitName() {
return unitName;
}
@@ -261,6 +273,8 @@ public class PersistenceContextAnnFactory {
persistenceContext.unitName = value;
} else if ("type".equals(name)) {
persistenceContext.type = value;
+ } else if ("synchronization".equals(name)) {
+ persistenceContext.synchronization = value;
}
}