You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by me...@apache.org on 2006/12/03 20:41:52 UTC
svn commit: r481866 -
/incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java
Author: meerajk
Date: Sun Dec 3 11:41:51 2006
New Revision: 481866
URL: http://svn.apache.org/viewvc?view=rev&rev=481866
Log:
Added support for property overriding in @PersistenceContext.
Modified:
incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java
Modified: incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java?view=diff&rev=481866&r1=481865&r2=481866
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceContextProcessor.java Sun Dec 3 11:41:51 2006
@@ -18,9 +18,13 @@
*/
package org.apache.tuscany.service.persistence.common;
+import java.util.Properties;
+
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceContextType;
+import javax.persistence.PersistenceProperty;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.annotation.Autowire;
@@ -69,7 +73,7 @@
emf = builder.newEntityManagerFactory(unitName, context.getClassLoader());
parent.registerJavaObject(unitName, EntityManagerFactory.class, emf);
}
- ObjectFactory factory = new EmObjectFactory(emf);
+ ObjectFactory factory = new EmObjectFactory(emf, annotation);
property.setDefaultValueFactory(factory);
}
@@ -77,16 +81,28 @@
private class EmObjectFactory implements ObjectFactory<EntityManager> {
private EntityManagerFactory emf;
+ private PersistenceContext annotation;
- public EmObjectFactory(EntityManagerFactory emf) {
+ public EmObjectFactory(EntityManagerFactory emf, PersistenceContext annotation) {
this.emf = emf;
+ this.annotation = annotation;
}
public EntityManager getInstance() {
- // TODO This needs to be proxied
- EntityManager em = emf.createEntityManager();
- em.joinTransaction();
- return em;
+
+ PersistenceContextType type = annotation.type();
+ if(type == PersistenceContextType.TRANSACTION) {
+ // TODO This needs to be proxied
+ Properties props = new Properties();
+ for(PersistenceProperty property : annotation.properties()) {
+ props.put(property.name(), property.value());
+ }
+ EntityManager em = emf.createEntityManager(props);
+ em.joinTransaction();
+ return em;
+ } else {
+ throw new UnsupportedOperationException("Extended persistence contexts not supported");
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org