Author: mriou
Date: Tue Mar 6 11:11:48 2007
New Revision: 515255
URL: http://svn.apache.org/viewvc?view=rev&rev=515255
Log:
JPA works! Our 3 main scenarios execute properly. Still need more tests for JBI
and our test suite but it's a real step forward!
Added:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/OpenJPADAO.java
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageRouteDAOImpl.java
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MexProperty.java
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ScopeDAOImpl.java
Modified:
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
(original)
+++
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
Tue Mar 6 11:11:48 2007
@@ -742,7 +742,7 @@
Message odeRequest =
myRoleMex.createMessage(operation.getInput().getMessage().getQName());
odeRequest.setMessage(outgoingMessage);
- __log.debug("Setting session ids for p2p interaction, mySession "
+ __log.debug("Setting myRoleMex session ids for p2p interaction,
mySession "
+ partnerSessionId + " - partnerSess " + mySessionId);
if ( partnerSessionId != null )
myRoleMex.setProperty(MessageExchange.PROPERTY_SEP_MYROLE_SESSIONID,
partnerSessionId);
Modified:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java
(original)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java
Tue Mar 6 11:11:48 2007
@@ -24,6 +24,9 @@
import java.util.Map;
import java.util.Properties;
+/**
+ * @author Matthieu Riou <mriou at apache dot org>
+ */
public class BPELDAOConnectionFactoryImpl implements
BpelDAOConnectionFactoryJDBC {
static final Log __log =
LogFactory.getLog(BPELDAOConnectionFactoryImpl.class);
@@ -31,9 +34,8 @@
private TransactionManager _tm;
private DataSource _ds;
private Object _dbdictionary;
- private DataSource _unmanagedDS;
- private ThreadLocal _emTL = new ThreadLocal();
+ static ThreadLocal<BPELDAOConnectionImpl> _connections = new
ThreadLocal<BPELDAOConnectionImpl>();
public BPELDAOConnectionFactoryImpl() {
}
@@ -41,32 +43,34 @@
public BpelDAOConnection getConnection() {
try {
_tm.getTransaction().registerSynchronization(new Synchronization()
{
+ // OpenJPA allows cross-transaction entity managers, which we
don't want
public void afterCompletion(int i) {
- _emTL.set(null);
+ if (_connections.get() != null)
+ _connections.get().getEntityManager().close();
+ _connections.set(null);
}
public void beforeCompletion() { }
});
} catch (RollbackException e) {
throw new RuntimeException("Coulnd't register synchronizer!");
} catch (SystemException e) {
- throw new RuntimeException("Coulnd't register synchronizer!");
+ throw new RuntimeException("Coulnd't register synchronizer!");
}
- if (_emTL.get() != null) {
- return new BPELDAOConnectionImpl((EntityManager) _emTL.get());
+ if (_connections.get() != null) {
+ return _connections.get();
} else {
HashMap propMap2 = new HashMap();
propMap2.put("openjpa.TransactionMode", "managed");
EntityManager em = _emf.createEntityManager(propMap2);
- _emTL.set(em);
- return new BPELDAOConnectionImpl(em);
+ BPELDAOConnectionImpl conn = new BPELDAOConnectionImpl(em);
+ _connections.set(conn);
+ return conn;
}
}
public void init(Properties properties) {
HashMap<String, Object> propMap = new HashMap<String,Object>();
-// propMap.put("javax.persistence.nonJtaDataSource", _unmanagedDS ==
null ? _ds : _unmanagedDS);
-
propMap.put("openjpa.Log", "DefaultLevel=TRACE");
// propMap.put("openjpa.Log", "log4j");
propMap.put("openjpa.jdbc.DBDictionary",
"org.apache.openjpa.jdbc.sql.DerbyDictionary");
@@ -74,7 +78,7 @@
propMap.put("openjpa.ManagedRuntime", new TxMgrProvider());
propMap.put("openjpa.ConnectionFactory", _ds);
propMap.put("openjpa.ConnectionFactoryMode", "managed");
- propMap.put("openjpa.Log", "DefaultLevel=TRACE");
+ propMap.put("openjpa.FlushBeforeQueries", "false");
if (_dbdictionary != null)
propMap.put("openjpa.jdbc.DBDictionary", _dbdictionary);
@@ -105,7 +109,6 @@
}
public void setUnmanagedDataSource(DataSource ds) {
- _unmanagedDS = ds;
}
public void shutdown() {
Modified:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
(original)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
Tue Mar 6 11:11:48 2007
@@ -36,6 +36,9 @@
import java.util.Date;
import java.util.List;
+/**
+ * @author Matthieu Riou <mriou at apache dot org>
+ */
public class BPELDAOConnectionImpl implements BpelDAOConnection {
EntityManager _em;
@@ -58,7 +61,6 @@
public ProcessInstanceDAO getInstance(Long iid) {
ProcessInstanceDAOImpl instance =
_em.find(ProcessInstanceDAOImpl.class, iid);
- instance.setConnection(this);
return instance;
}
@@ -73,7 +75,7 @@
}
public ProcessDAO createProcess(QName pid, QName type, String guid, long
version) {
- ProcessDAOImpl ret = new ProcessDAOImpl(pid,type,guid,this,version);
+ ProcessDAOImpl ret = new ProcessDAOImpl(pid,type,guid,version);
_em.persist(ret);
return ret;
}
@@ -83,7 +85,6 @@
.setParameter(1, processId.toString()).getResultList();
if (l.size() == 0) return null;
ProcessDAOImpl p = (ProcessDAOImpl) l.get(0);
- p.setConnection(this);
return p;
}
@@ -122,13 +123,6 @@
_em = em;
}
- void removeProcess(ProcessDAOImpl p) {
- if ( _em != null ) {
- _em.remove(p);
- _em.flush();
- }
- }
-
public MessageExchangeDAO getMessageExchange(String mexid) {
return _em.find(MessageExchangeDAOImpl.class, mexid);
}
Modified:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
(original)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
Tue Mar 6 11:11:48 2007
@@ -51,7 +51,7 @@
private String _correlatorKey;
@OneToMany(targetEntity=MessageRouteDAOImpl.class,mappedBy="_correlator",fetch=FetchType.EAGER,cascade={CascadeType.ALL})
private Collection<MessageRouteDAOImpl> _routes = new
ArrayList<MessageRouteDAOImpl>();
-
@OneToMany(targetEntity=MessageExchangeDAOImpl.class,mappedBy="_correlator",fetch=FetchType.EAGER,cascade={CascadeType.ALL})
+
@OneToMany(targetEntity=MessageExchangeDAOImpl.class,mappedBy="_correlator",fetch=FetchType.LAZY,cascade={CascadeType.ALL})
private Collection<MessageExchangeDAOImpl> _exchanges = new
ArrayList<MessageExchangeDAOImpl>();
@ManyToOne(fetch= FetchType.LAZY,cascade={CascadeType.PERSIST})
@Column(name="PROC_ID")
private ProcessDAOImpl _process;
@@ -61,10 +61,9 @@
_correlatorKey = correlatorKey;
}
- public void addRoute(String routeGroupId, ProcessInstanceDAO target,
- int index, CorrelationKey correlationKey) {
- MessageRouteDAOImpl mr = new
MessageRouteDAOImpl(correlationKey,routeGroupId,index,(ProcessInstanceDAOImpl)target);
-
+ public void addRoute(String routeGroupId, ProcessInstanceDAO target, int
index, CorrelationKey correlationKey) {
+ MessageRouteDAOImpl mr = new MessageRouteDAOImpl(correlationKey,
+ routeGroupId, index, (ProcessInstanceDAOImpl) target, this);
_routes.add(mr);
}
Modified:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java
(original)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java
Tue Mar 6 11:11:48 2007
@@ -285,7 +285,7 @@
}
public void setProperty(String key, String value) {
- _props.add(new MexProperty(key, value));
+ _props.add(new MexProperty(key, value, this));
}
public void setRequest(MessageDAO msg) {
Modified:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageRouteDAOImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageRouteDAOImpl.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageRouteDAOImpl.java
(original)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageRouteDAOImpl.java
Tue Mar 6 11:11:48 2007
@@ -46,7 +46,7 @@
@Basic @Column(name="INDEX")
private int _index;
@Basic @Column(name="CORRELATION_KEY")
- private CorrelationKey _correlationKey;
+ private String _correlationKey;
@ManyToOne(fetch=FetchType.LAZY,cascade={CascadeType.PERSIST})
@Column(name="PROCESS_INSTANCE_ID")
private ProcessInstanceDAOImpl _processInst;
@@ -54,15 +54,17 @@
private CorrelatorDAOImpl _correlator;
public MessageRouteDAOImpl() {}
- public MessageRouteDAOImpl(CorrelationKey key, String groupId, int
index, ProcessInstanceDAOImpl processInst) {
- _correlationKey = key;
+ public MessageRouteDAOImpl(CorrelationKey key, String groupId, int
index,
+ ProcessInstanceDAOImpl processInst,
CorrelatorDAOImpl correlator) {
+ _correlationKey = key.toCanonicalString();
_groupId = groupId;
_index = index;
_processInst = processInst;
- }
+ _correlator = correlator;
+ }
public CorrelationKey getCorrelationKey() {
- return _correlationKey;
+ return new CorrelationKey(_correlationKey);
}
public String getGroupId() {
Modified:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MexProperty.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MexProperty.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MexProperty.java
(original)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MexProperty.java
Tue Mar 6 11:11:48 2007
@@ -50,9 +50,10 @@
public MexProperty() {
}
- public MexProperty(String propertyKey, String propertyValue) {
+ public MexProperty(String propertyKey, String propertyValue,
MessageExchangeDAOImpl mex) {
this.propertyKey = propertyKey;
this.propertyValue = propertyValue;
+ this._mex = mex;
}
public String getPropertyKey() {
Added:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/OpenJPADAO.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/OpenJPADAO.java?view=auto&rev=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/OpenJPADAO.java
(added)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/OpenJPADAO.java
Tue Mar 6 11:11:48 2007
@@ -0,0 +1,35 @@
+package org.apache.ode.dao.jpa;
+
+import org.apache.openjpa.persistence.OpenJPAPersistence;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.util.List;
+
+/**
+ * @author Matthieu Riou <mriou at apache dot org>
+ */
+public class OpenJPADAO {
+
+ protected BPELDAOConnectionImpl getConn() {
+ return BPELDAOConnectionFactoryImpl._connections.get();
+ }
+
+ protected EntityManager getEM() {
+ return OpenJPAPersistence.getEntityManager(this);
+ }
+
+ /**
+ * javax.persistence.Query either let you query for a collection or a
single
+ * value throwing an exception if nothing is found. Just a convenient
shortcut
+ * for single results allowing null values
+ * @param qry query to execute
+ * @return whatever you assign it to
+ */
+ protected <T> T getSingleResult(Query qry) {
+ List res = qry.getResultList();
+ if (res.size() == 0) return null;
+ return (T) res.get(0);
+
+ }
+}
Modified:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
(original)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
Tue Mar 6 11:11:48 2007
@@ -28,7 +28,6 @@
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
-import javax.persistence.EntityManager;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
@@ -36,25 +35,23 @@
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
-import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.Table;
-import javax.persistence.Transient;
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+/**
+ * @author Matthieu Riou <mriou at apache dot org>
+ */
@Entity
@Table(name="ODE_PROCESS")
@NamedQueries({
@NamedQuery(name="InstanceByCKey", query="SELECT cs._scope._instance FROM
CorrelationSetDAOImpl as cs WHERE cs._correlationKey = :ckey"),
@NamedQuery(name="CorrelatorByKey", query="SELECT c FROM CorrelatorDAOImpl
as c WHERE c._correlatorKey = :ckey")
})
-public class ProcessDAOImpl implements ProcessDAO {
-
- @PersistenceContext
- private EntityManager _em;
+public class ProcessDAOImpl extends OpenJPADAO implements ProcessDAO {
@Id @Column(name="ID")
@GeneratedValue(strategy= GenerationType.AUTO)
@@ -74,14 +71,10 @@
@OneToMany(targetEntity=CorrelatorDAOImpl.class,mappedBy="_process",fetch=FetchType.LAZY,cascade={CascadeType.ALL})
private Collection<CorrelatorDAOImpl> _correlators = new
ArrayList<CorrelatorDAOImpl>();
- @Transient
- transient private BPELDAOConnectionImpl _connection;
-
public ProcessDAOImpl() {}
- public ProcessDAOImpl(QName pid, QName type, String guid,
BPELDAOConnectionImpl connection, long version) {
+ public ProcessDAOImpl(QName pid, QName type, String guid, long version)
{
_processId = pid.toString();
_processType = type.toString();
- _connection = connection;
_guid = guid;
_version = version;
}
@@ -92,7 +85,7 @@
}
public CorrelatorDAO getCorrelator(String correlatorId) {
- Query qry =
_connection.getEntityManager().createNamedQuery("CorrelatorByKey");
+ Query qry = getEM().createNamedQuery("CorrelatorByKey");
qry.setParameter("ckey", correlatorId);
List res = qry.getResultList();
if (res.size() == 0) return null;
@@ -101,21 +94,21 @@
public ProcessInstanceDAO createInstance(
CorrelatorDAO instantiatingCorrelator) {
- ProcessInstanceDAOImpl inst = new
ProcessInstanceDAOImpl((CorrelatorDAOImpl)instantiatingCorrelator,
this,_connection);
- _connection.getEntityManager().persist(inst);
+ ProcessInstanceDAOImpl inst = new
ProcessInstanceDAOImpl((CorrelatorDAOImpl)instantiatingCorrelator, this);
+ getEM().persist(inst);
_numInstances++;
return inst;
}
@SuppressWarnings("unchecked")
public Collection<ProcessInstanceDAO> findInstance(CorrelationKey ckey) {
- Query qry =
_connection.getEntityManager().createNamedQuery("InstanceByCKey");
+ Query qry = getEM().createNamedQuery("InstanceByCKey");
qry.setParameter("ckey", ckey.toCanonicalString());
return qry.getResultList();
}
public ProcessInstanceDAO getInstance(Long iid) {
- return _connection.getInstance(iid);
+ return getEM().find(ProcessInstanceDAOImpl.class, iid);
}
public QName getProcessId() {
@@ -127,7 +120,7 @@
}
public void delete() {
- _connection.removeProcess(this);
+ getEM().remove(this);
}
public int getNumInstances() {
@@ -152,7 +145,4 @@
return _guid;
}
- void setConnection(BPELDAOConnectionImpl connection) {
- _connection = connection;
- }
}
Modified:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
(original)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
Tue Mar 6 11:11:48 2007
@@ -49,7 +49,6 @@
import javax.persistence.OneToOne;
import javax.persistence.Query;
import javax.persistence.Table;
-import javax.persistence.Transient;
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.Collection;
@@ -64,12 +63,9 @@
@NamedQueries({
@NamedQuery(name="ScopeById", query="SELECT s FROM ScopeDAOImpl as s WHERE
s._scopeInstanceId = :sid and s._processInstance = :instance")
})
-public class ProcessInstanceDAOImpl implements ProcessInstanceDAO {
+public class ProcessInstanceDAOImpl extends OpenJPADAO implements
ProcessInstanceDAO {
- @Transient
- private BPELDAOConnectionImpl _connection;
-
- @Id @Column(name="PROCESS_INSTANCE_ID")
+ @Id @Column(name="PROCESS_INSTANCE_ID")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long _instanceId;
@Basic @Column(name="LAST_RECOVERY_DATE")
@@ -101,9 +97,8 @@
private CorrelatorDAOImpl _instantiatingCorrelator;
public ProcessInstanceDAOImpl() {}
- public ProcessInstanceDAOImpl(CorrelatorDAOImpl correlator,
ProcessDAOImpl process, BPELDAOConnectionImpl connection) {
+ public ProcessInstanceDAOImpl(CorrelatorDAOImpl correlator,
ProcessDAOImpl process) {
_instantiatingCorrelator = correlator;
- _connection = connection;
_process = process;
}
@@ -116,30 +111,24 @@
_lastRecovery = dateTime;
}
- public ScopeDAO createScope(ScopeDAO parentScope, String name,
- int scopeModelId) {
- ScopeDAOImpl ret = new
ScopeDAOImpl((ScopeDAOImpl)parentScope,name,scopeModelId,this, _connection);
+ public ScopeDAO createScope(ScopeDAO parentScope, String name, int
scopeModelId) {
+ ScopeDAOImpl ret = new
ScopeDAOImpl((ScopeDAOImpl)parentScope,name,scopeModelId,this);
ret.setState(ScopeStateEnum.ACTIVE);
-
_scopes.add(ret);
-
_rootScope = (parentScope == null)?ret:_rootScope;
// Must persist the scope to generate a scope ID
- _connection.getEntityManager().persist(ret);
-
+ getEM().persist(ret);
return ret;
}
public void delete() {
- if ( _connection.getEntityManager() != null ) {
- _connection.getEntityManager().remove(this);
+ if (getEM() != null ) {
+ getEM().remove(this);
}
-
}
public void deleteActivityRecovery(String channel) {
-
for (Iterator itr=_recoveries.iterator(); itr.hasNext(); ) {
ActivityRecoveryDAO arElement =
(ActivityRecoveryDAO)itr.next();
if ( arElement.getChannel().equals(channel)) {
@@ -171,10 +160,6 @@
return _recoveries;
}
- public BpelDAOConnection getConnection() {
- return _connection;
- }
-
public CorrelationSetDAO getCorrelationSet(String name) {
// TODO: should this method be deprecated?
@@ -235,14 +220,10 @@
}
public ScopeDAO getScope(Long scopeInstanceId) {
- Query qry =
_connection.getEntityManager().createNamedQuery("ScopeById");
+ Query qry = getEM().createNamedQuery("ScopeById");
qry.setParameter("sid", scopeInstanceId);
qry.setParameter("instance", this);
- List res = qry.getResultList();
- if (res.size() == 0) return null;
- ScopeDAOImpl s = (ScopeDAOImpl) res.get(0);
- s.setConnection(_connection);
- return s;
+ return getSingleResult(qry);
}
public Collection<ScopeDAO> getScopes(String scopeName) {
@@ -278,7 +259,7 @@
}
public void insertBpelEvent(ProcessInstanceEvent event) {
- _connection.insertBpelEvent(event, getProcess(), this);
+ getConn().insertBpelEvent(event, getProcess(), this);
}
public void setExecutionState(byte[] execState) {
@@ -287,18 +268,15 @@
public void setFault(FaultDAO fault) {
_fault = (FaultDAOImpl)fault;
-
}
public void setFault(QName faultName, String explanation, int
faultLineNo,
int activityId, Element faultMessage) {
_fault = new
FaultDAOImpl(faultName,explanation,faultLineNo,activityId,faultMessage);
-
}
public void setLastActiveTime(Date dt) {
_lastActive = dt;
-
}
public void setState(short state) {
@@ -310,7 +288,7 @@
_process.removeRoutes(routeGroupId, this);
}
- void setConnection(BPELDAOConnectionImpl connection) {
- _connection = connection;
+ public BpelDAOConnection getConnection() {
+ return new BPELDAOConnectionImpl(getEM());
}
}
Modified:
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ScopeDAOImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ScopeDAOImpl.java?view=diff&rev=515255&r1=515254&r2=515255
==============================================================================
---
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ScopeDAOImpl.java
(original)
+++
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ScopeDAOImpl.java
Tue Mar 6 11:11:48 2007
@@ -42,7 +42,6 @@
import javax.persistence.OneToMany;
import javax.persistence.Query;
import javax.persistence.Table;
-import javax.persistence.Transient;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -52,10 +51,7 @@
@NamedQueries({
@NamedQuery(name="PLinkByModelId", query="SELECT pl FROM
PartnerLinkDAOImpl as pl WHERE pl._partnerLinkModelId = :mid")
})
-public class ScopeDAOImpl implements ScopeDAO {
-
- @Transient
- private BPELDAOConnectionImpl _connection;
+public class ScopeDAOImpl extends OpenJPADAO implements ScopeDAO {
@Id @Column(name="SCOPE_ID")
@GeneratedValue(strategy= GenerationType.AUTO)
@@ -84,13 +80,11 @@
private ProcessInstanceDAOImpl _processInstance;
public ScopeDAOImpl() {}
- public ScopeDAOImpl(ScopeDAOImpl parentScope, String name, int
scopeModelId,
- ProcessInstanceDAOImpl pi, BPELDAOConnectionImpl
connection) {
+ public ScopeDAOImpl(ScopeDAOImpl parentScope, String name, int
scopeModelId, ProcessInstanceDAOImpl pi) {
_parentScope = parentScope;
_name = name;
_modelId = scopeModelId;
_processInstance = pi;
- _connection = connection;
}
public PartnerLinkDAO createPartnerLink(int plinkModelId, String
pLinkName,
@@ -119,7 +113,7 @@
// PartnerLink creation )
ret = new CorrelationSetDAOImpl(this,corrSetName);
// Persist the new correlation set to generate an ID
- _connection.getEntityManager().persist(ret);
+ getEM().persist(ret);
_correlationSets.add(ret);
}
@@ -143,11 +137,9 @@
}
public PartnerLinkDAO getPartnerLink(int plinkModelId) {
- Query qry =
_connection.getEntityManager().createNamedQuery("PLinkByModelId");
- qry.setParameter("mid", plinkModelId);
- List res = qry.getResultList();
- if (res.size() == 0) return null;
- return (PartnerLinkDAO) res.get(0);
+ Query qry = getEM().createNamedQuery("PLinkByModelId");
+ qry.setParameter("mid", plinkModelId);
+ return getSingleResult(qry);
}
public Collection<PartnerLinkDAO> getPartnerLinks() {
@@ -192,7 +184,4 @@
_scopeState = state.toString();
}
- void setConnection(BPELDAOConnectionImpl connection) {
- _connection = connection;
- }
}