Author: mszefler
Date: Thu Sep 7 14:59:12 2006
New Revision: 441249
URL: http://svn.apache.org/viewvc?view=rev&rev=441249
Log:
Simplified correlation mechanism to use one table instead of 4.
Added:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorEntry.java
(with props)
Modified:
incubator/ode/trunk/dao-hibernate/.classpath
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java
Modified: incubator/ode/trunk/dao-hibernate/.classpath
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/.classpath?view=diff&rev=441249&r1=441248&r2=441249
==============================================================================
--- incubator/ode/trunk/dao-hibernate/.classpath (original)
+++ incubator/ode/trunk/dao-hibernate/.classpath Thu Sep 7 14:59:12 2006
@@ -1,47 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/test/java"
output="target/test-classes"/>
- <classpathentry kind="src" path="target/generated-resources/xdoclet"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var"
path="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar"/>
- <classpathentry kind="src" path="/ode-jacob"/>
- <classpathentry kind="src" path="/ode-bpel-parser"/>
- <classpathentry kind="var"
path="M2_REPO/stax/stax-api/1.0/stax-api-1.0.jar"/>
- <classpathentry kind="var"
path="M2_REPO/ehcache/ehcache/1.1/ehcache-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/xom/xom/1.0b3/xom-1.0b3.jar"/>
- <classpathentry kind="var"
path="M2_REPO/xmlbeans/xbean/2.1.0/xbean-2.1.0.jar"/>
- <classpathentry kind="var"
path="M2_REPO/commons-pool/commons-pool/1.2/commons-pool-1.2.jar"/>
- <classpathentry kind="var"
path="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
- <classpathentry kind="var"
path="M2_REPO/saxon/saxon-dom/8.4/saxon-dom-8.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="src" path="/ode-bpel-dd"/>
- <classpathentry kind="src" path="/ode-utils"/>
- <classpathentry kind="var"
path="M2_REPO/org/hibernate/hibernate/3.1.2/hibernate-3.1.2.jar"/>
- <classpathentry kind="src" path="/ode-bpel-compiler"/>
- <classpathentry kind="src" path="/ode-bpel-api"/>
- <classpathentry kind="src" path="/ode-bpel-obj"/>
- <classpathentry kind="src" path="/ode-bpel-ql"/>
- <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
- <classpathentry kind="var"
path="M2_REPO/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.jar"/>
- <classpathentry kind="var"
path="M2_REPO/xerces/xmlParserAPIs/2.6.2/xmlParserAPIs-2.6.2.jar"/>
- <classpathentry kind="src" path="/ode-bpel-schemas"/>
- <classpathentry kind="var"
path="M2_REPO/com/ibm/icu/icu4j/2.6.1/icu4j-2.6.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
- <classpathentry kind="var" path="M2_REPO/xalan/xalan/2.6.0/xalan-2.6.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/jdom/jdom/1.0/jdom-1.0.jar"/>
- <classpathentry kind="var"
path="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/>
- <classpathentry kind="var"
path="M2_REPO/antlr/antlr/2.7.6rc1/antlr-2.7.6rc1.jar"/>
- <classpathentry kind="src" path="/ode-bpel-el-xpath10"/>
- <classpathentry kind="var"
path="M2_REPO/wsdl4j/wsdl4j/1.5.2/wsdl4j-1.5.2.jar"/>
- <classpathentry kind="var"
path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
- <classpathentry kind="src" path="/ode-bpel-bom"/>
- <classpathentry kind="src" path="/ode-bpel-el-xpath20"/>
- <classpathentry kind="var"
path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/saxon/saxon/8.4/saxon-8.4.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/ccil/cowan/tagsoup/tagsoup/0.9.7/tagsoup-0.9.7.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0/geronimo-jta_1.0.1B_spec-1.0.jar"/>
- <classpathentry kind="var"
path="M2_REPO/jaxen/jaxen/1.1-beta-8/jaxen-1.1-beta-8.jar"/>
- <classpathentry kind="var"
path="M2_REPO/xmlbeans/xmlpublic/2.1.0/xmlpublic-2.1.0.jar"/>
-</classpath>
\ No newline at end of file
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry output="target/test-classes" kind="src"
path="src/test/java"/>
+ <classpathentry kind="src" path="target/generated-resources/xdoclet"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var"
path="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar"/>
+ <classpathentry kind="src" path="/ode-jacob"/>
+ <classpathentry kind="src" path="/ode-bpel-parser"/>
+ <classpathentry kind="var"
path="M2_REPO/stax/stax-api/1.0/stax-api-1.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/ehcache/ehcache/1.1/ehcache-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xom/xom/1.0b3/xom-1.0b3.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xmlbeans/xbean/2.1.0/xbean-2.1.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/commons-pool/commons-pool/1.2/commons-pool-1.2.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/saxon/saxon-dom/8.4/saxon-dom-8.4.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="src" path="/ode-bpel-dd"/>
+ <classpathentry kind="src" path="/ode-utils"/>
+ <classpathentry kind="var"
path="M2_REPO/org/hibernate/hibernate/3.1.2/hibernate-3.1.2.jar"/>
+ <classpathentry kind="src" path="/ode-bpel-compiler"/>
+ <classpathentry kind="src" path="/ode-bpel-api"/>
+ <classpathentry kind="src" path="/ode-bpel-obj"/>
+ <classpathentry kind="src" path="/ode-bpel-ql"/>
+ <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xerces/xmlParserAPIs/2.6.2/xmlParserAPIs-2.6.2.jar"/>
+ <classpathentry kind="src" path="/ode-bpel-schemas"/>
+ <classpathentry kind="var"
path="M2_REPO/com/ibm/icu/icu4j/2.6.1/icu4j-2.6.1.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xalan/xalan/2.6.0/xalan-2.6.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jdom/jdom/1.0/jdom-1.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/antlr/antlr/2.7.6rc1/antlr-2.7.6rc1.jar"/>
+ <classpathentry kind="src" path="/ode-bpel-el-xpath10"/>
+ <classpathentry kind="var"
path="M2_REPO/wsdl4j/wsdl4j/1.5.2/wsdl4j-1.5.2.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
+ <classpathentry kind="src" path="/ode-bpel-bom"/>
+ <classpathentry kind="src" path="/ode-bpel-el-xpath20"/>
+ <classpathentry kind="var"
path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/saxon/saxon/8.4/saxon-8.4.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/ccil/cowan/tagsoup/tagsoup/0.9.7/tagsoup-0.9.7.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.0/geronimo-jta_1.0.1B_spec-1.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/jaxen/jaxen/1.1-beta-8/jaxen-1.1-beta-8.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xmlbeans/xmlpublic/2.1.0/xmlpublic-2.1.0.jar"/>
+ <classpathentry kind="src" path="/ode-bpel-dao"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Modified:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java?view=diff&rev=441249&r1=441248&r2=441249
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
(original)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
Thu Sep 7 14:59:12 2006
@@ -92,9 +92,7 @@
.addClass(HProcessProperty.class)
.addClass(HProcessInstance.class)
.addClass(HCorrelator.class)
- .addClass(HCorrelatorSelector.class)
- .addClass(HCorrelatorMessage.class)
- .addClass(HCorrelatorMessageKey.class)
+ .addClass(HCorrelatorEntry.class)
.addClass(HCorrelationProperty.class)
.addClass(HMessageExchange.class)
.addClass(HMessage.class)
@@ -104,7 +102,7 @@
.addClass(HXmlData.class)
.addClass(HVariableProperty.class)
.addClass(HBpelEvent.class)
- .addClass(HFaultData.class)
+ .addClass(HFaultData.class)
.addClass(HActivityRecovery.class)
.addClass(HLargeData.class);
}
Modified:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java?view=diff&rev=441249&r1=441248&r2=441249
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
(original)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
Thu Sep 7 14:59:12 2006
@@ -18,173 +18,138 @@
*/
package org.apache.ode.daohib.bpel;
-import org.apache.ode.bpel.common.ProcessState;
+import java.util.ArrayList;
+import java.util.Date;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.CorrelationKey;
+import org.apache.ode.bpel.common.ProcessState;
import org.apache.ode.bpel.dao.CorrelatorDAO;
import org.apache.ode.bpel.dao.MessageExchangeDAO;
import org.apache.ode.bpel.dao.MessageRouteDAO;
import org.apache.ode.bpel.dao.ProcessInstanceDAO;
import org.apache.ode.daohib.SessionManager;
-import org.apache.ode.daohib.bpel.hobj.*;
+import org.apache.ode.daohib.bpel.hobj.HCorrelator;
+import org.apache.ode.daohib.bpel.hobj.HCorrelatorMessage;
+import org.apache.ode.daohib.bpel.hobj.HCorrelatorSelector;
+import org.apache.ode.daohib.bpel.hobj.HMessageExchange;
+import org.apache.ode.daohib.bpel.hobj.HProcessInstance;
import org.apache.ode.utils.ArrayUtils;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.hibernate.Hibernate;
import org.hibernate.Query;
/**
* Hibernate-based [EMAIL PROTECTED] CorrelatorDAO} implementation.
*/
class CorrelatorDaoImpl extends HibernateDao implements CorrelatorDAO {
-
- private static final String QRY_MESSAGE =
- "select this from " + HCorrelatorMessageKey.class.getName() +
- " as hk where hk.owner = this and hk.canonical = ? order by
this.created";
-
- /** filter for finding a matching selector. */
- private static final String FLTR_SELECTORS =
- "where this.correlationKey = ?" +
- " and (this.instance.state = " + ProcessState.STATE_ACTIVE +
- " or this.instance.state = " + ProcessState.STATE_READY + ")" +
- " order by this.created";
-
-
- /** Query for removing routes. */
- private static final String QRY_DELROUTES = "delete from " +
- HCorrelatorSelector.class.getName() + " where groupId = ? " +
- "and instance = ?";
-
- static Log __log = LogFactory.getLog(CorrelatorDaoImpl.class);
-
- private HCorrelator _hobj;
-
- public CorrelatorDaoImpl(SessionManager sm, HCorrelator hobj) {
- super(sm,hobj);
- _hobj = hobj;
- }
-
- public MessageExchangeDAO dequeueMessage(CorrelationKey key) {
- HMessageExchange hmex = null;
- upgrade();
-
- Query qry =
getSession().createFilter(_hobj.getMessageCorrelations(),QRY_MESSAGE);
- qry.setString(0, CorrelationKeySerializer.toCanonicalString(key));
- // We can use the database to do the searching on hashcode AND canonical
string
- Iterator iter = qry.iterate();
-
- while(iter.hasNext()){
- HCorrelatorMessage mcor = (HCorrelatorMessage)iter.next();
- hmex = mcor.getMessageExchange();
- _hobj.getMessageCorrelations().remove(mcor);
- // Lock this row
- getSession().delete(mcor);
- break;
- }
-
- Hibernate.close(iter);
- if (__log.isDebugEnabled()) {
- if(hmex != null)
- __log.debug("dequeueEarliest: MATCH FOUND, data=" + hmex);
- }
-
- return hmex == null ? null : new MessageExchangeDaoImpl(_sm,hmex);
- }
-
- public MessageRouteDAO findRoute(CorrelationKey key) {
- if (__log.isTraceEnabled())
- __log.trace("findRoute(key=" + key + ")");
-
- upgrade();
-
- Query q = getSession().createFilter(_hobj.getSelectors(), FLTR_SELECTORS);
- q.setString(0, CorrelationKeySerializer.toCanonicalString(key));
- Iterator iter = q.iterate();
- if(iter.hasNext()){
- HCorrelatorSelector selector = (HCorrelatorSelector)iter.next();
- Hibernate.close(iter);
- return new MessageRouteDaoImpl(_sm,selector);
- }else{
- Hibernate.close(iter);
- return null;
- }
-
- }
- /**
- * @see org.apache.ode.bpel.dao.CorrelatorDAO#enqueueMessage(byte[],
CorrelationKey[])
- */
- public void enqueueMessage(MessageExchangeDAO mex, CorrelationKey[]
correlationKeys) {
- String[] keys = canonifyKeys(correlationKeys);
- if (__log.isDebugEnabled()) {
- __log.debug("enqueueProcessInvocation: mex=" +mex + " keys="
- + ArrayUtils.makeCollection(ArrayList.class, keys));
+
+ private static final String QRY_MESSAGE = "select this from " +
HCorrelatorMessage.class.getName()
+ + " as hk where hk.correlationKey = ?".intern();
+
+ /** filter for finding a matching selector. */
+ private static final String FLTR_SELECTORS = "where this.correlationKey =
?" + " and (this.instance.state = "
+ + ProcessState.STATE_ACTIVE + " or this.instance.state = " +
ProcessState.STATE_READY + ")".intern();
+
+ /** Query for removing routes. */
+ private static final String QRY_DELSELECTORS = "delete from " +
HCorrelatorSelector.class.getName()
+ + " where groupId = ? " + "and instance = ?".intern();
+
+ private static final String QRY_DELMESSAGES = "delete from " +
HCorrelatorMessage.class.getName()
+ + " where messageExchange = ?".intern();
+
+ static Log __log = LogFactory.getLog(CorrelatorDaoImpl.class);
+
+ private HCorrelator _hobj;
+
+ public CorrelatorDaoImpl(SessionManager sm, HCorrelator hobj) {
+ super(sm, hobj);
+ _hobj = hobj;
}
- upgrade();
-
- HCorrelatorMessage mcor = new HCorrelatorMessage();
- mcor.setCorrelator(_hobj);
- mcor.setCreated(new Date());
- _hobj.getMessageCorrelations().add(mcor);
- for (String key : keys) {
- HCorrelatorMessageKey hk = new HCorrelatorMessageKey();
- hk.setCanonical(key);
- hk.setOwner(mcor);
- getSession().save(hk);
- mcor.getCorrelationHashKeys().add(hk);
+ public MessageExchangeDAO dequeueMessage(CorrelationKey key) {
+ Query qry = getSession().createFilter(_hobj.getMessageCorrelations(),
QRY_MESSAGE);
+ qry.setString(0, CorrelationKeySerializer.toCanonicalString(key));
+ HCorrelatorMessage mcor = (HCorrelatorMessage) qry.uniqueResult();
+
+ if (mcor == null)
+ return null;
+
+ removeEntries(mcor.getMessageExchange());
+
+ return new MessageExchangeDaoImpl(_sm, mcor.getMessageExchange());
+ }
+
+ public MessageRouteDAO findRoute(CorrelationKey key) {
+ if (__log.isTraceEnabled())
+ __log.trace("findRoute(key=" + key + ")");
+
+ Query q = getSession().createFilter(_hobj.getSelectors(),
FLTR_SELECTORS);
+ q.setString(0, CorrelationKeySerializer.toCanonicalString(key));
+ HCorrelatorSelector selector = (HCorrelatorSelector) q.uniqueResult();
+ return selector == null ? null : new MessageRouteDaoImpl(_sm,
selector);
+ }
+
+ /**
+ * @see org.apache.ode.bpel.dao.CorrelatorDAO#enqueueMessage(byte[],
+ * CorrelationKey[])
+ */
+ public void enqueueMessage(MessageExchangeDAO mex, CorrelationKey[]
correlationKeys) {
+ String[] keys = canonifyKeys(correlationKeys);
+ if (__log.isDebugEnabled()) {
+ __log.debug("enqueueProcessInvocation: mex=" + mex + " keys="
+ + ArrayUtils.makeCollection(ArrayList.class, keys));
+ }
+
+ for (String key : keys) {
+ HCorrelatorMessage mcor = new HCorrelatorMessage();
+ mcor.setCorrelator(_hobj);
+ mcor.setCreated(new Date());
+ mcor.setCorrelationKey(key);
+ mcor.setMessageExchange((HMessageExchange)
((MessageExchangeDaoImpl) mex)._hobj);
+ getSession().save(mcor);
+ }
+
+ }
+
+ private String[] canonifyKeys(CorrelationKey[] keys) {
+ String[] ret = new String[keys.length];
+ for (int i = 0; i < ret.length; ++i) {
+ ret[i] = CorrelationKeySerializer.toCanonicalString(keys[i]);
+ }
+ return ret;
}
-
-
mcor.setMessageExchange((HMessageExchange)((MessageExchangeDaoImpl)mex)._hobj);
- getSession().save(mcor);
- }
+ public void addRoute(String routeGroupId, ProcessInstanceDAO target, int
idx, CorrelationKey correlationKey) {
- private String[] canonifyKeys(CorrelationKey[] keys) {
- String[] ret = new String[keys.length];
- for (int i = 0; i < ret.length; ++i) {
- ret[i] = CorrelationKeySerializer.toCanonicalString(keys[i]);
- }
- return ret;
- }
-
-
- public void addRoute(String routeGroupId, ProcessInstanceDAO target, int
idx, CorrelationKey correlationKey) {
- upgrade();
-
- HCorrelatorSelector hsel = new HCorrelatorSelector();
- hsel.setGroupId(routeGroupId);
- hsel.setIndex(idx);
-
hsel.setCorrelationKey(CorrelationKeySerializer.toCanonicalString(correlationKey));
- hsel.setInstance((HProcessInstance)
((ProcessInstanceDaoImpl)target).getHibernateObj());
- hsel.setCorrelator(_hobj);
- hsel.setCreated(new Date());
- _hobj.getSelectors().add(hsel);
- getSession().save(hsel);
-
- }
-
- public String getCorrelatorId() {
- return _hobj.getCorrelatorId();
- }
-
- public void removeRoutes(String routeGroupId, ProcessInstanceDAO target) {
- upgrade();
-
- Query q = getSession().createQuery(QRY_DELROUTES);
- q.setString(0,routeGroupId);
- q.setEntity(1, ((ProcessInstanceDaoImpl)target).getHibernateObj());
- q.executeUpdate();
- }
-
- private void upgrade() {
- // This effectively creates a mutual exclusion lock on this
- // correlator by obtaining a row-lock.
- _hobj.setLock(_hobj.getLock()+1);
- getSession().flush();
- }
+ HCorrelatorSelector hsel = new HCorrelatorSelector();
+ hsel.setGroupId(routeGroupId);
+ hsel.setIndex(idx);
+
hsel.setCorrelationKey(CorrelationKeySerializer.toCanonicalString(correlationKey));
+ hsel.setInstance((HProcessInstance) ((ProcessInstanceDaoImpl)
target).getHibernateObj());
+ hsel.setCorrelator(_hobj);
+ hsel.setCreated(new Date());
+ _hobj.getSelectors().add(hsel);
+ getSession().save(hsel);
+
+ }
+
+ public String getCorrelatorId() {
+ return _hobj.getCorrelatorId();
+ }
+
+ public void removeRoutes(String routeGroupId, ProcessInstanceDAO target) {
+ Query q = getSession().createQuery(QRY_DELSELECTORS);
+ q.setString(0, routeGroupId); // groupId
+ q.setEntity(1, ((ProcessInstanceDaoImpl) target).getHibernateObj());
// instance
+ q.executeUpdate();
+ }
+
+
+ public void removeEntries(HMessageExchange mex) {
+ Query q = getSession().createQuery(QRY_DELMESSAGES);
+ q.setEntity(0, mex); // messageExchange
+ q.executeUpdate();
+ }
+
}
Modified:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java?view=diff&rev=441249&r1=441248&r2=441249
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
(original)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
Thu Sep 7 14:59:12 2006
@@ -19,7 +19,9 @@
package org.apache.ode.daohib.bpel;
+import java.util.Collections;
import java.util.Date;
+import java.util.Set;
import javax.xml.namespace.QName;
@@ -259,7 +261,6 @@
public void setProperty(String key, String value) {
_hself.getProperties().put(key, value);
- //getSession().update(_hself.getProperties()); // Does not appear to
work ?
update();
}
@@ -270,6 +271,10 @@
public PartnerLinkDAO getPartnerLink() {
return new PartnerLinkDAOImpl(_sm, _hself.getPartnerLink());
+ }
+
+ public Set<String> getPropertyNames() {
+ return Collections.unmodifiableSet(_hself.getProperties().keySet());
}
}
Added:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorEntry.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorEntry.java?view=auto&rev=441249
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorEntry.java
(added)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorEntry.java
Thu Sep 7 14:59:12 2006
@@ -0,0 +1,43 @@
+package org.apache.ode.daohib.bpel.hobj;
+
+
+import org.apache.ode.daohib.hobj.HObject;
+
+/**
+ * @hibernate.class table="BPEL_CORRELATOR_ENTRY"
+ * @hibernate.discriminator column="CLSTYPE"
+ *
+ */
+public class HCorrelatorEntry extends HObject {
+ private HCorrelator _correlator;
+
+ private String _correlationKey;
+
+ /**
+ * @hibernate.property column="CORRELATION_KEY"
+ * @hibernate.column name="CORRELATION_KEY"
+ * unique-key="IDX_CORRELATOR_CORRELATION_KEY_UNIQ"
+ * not-null="true"
+ *
+ */
+ public String getCorrelationKey() {
+ return _correlationKey;
+ }
+
+ public void setCorrelationKey(String correlationKey) {
+ _correlationKey = correlationKey;
+ }
+
+ /**
+ * @hibernate.many-to-one
+ * @hibernate.column name="CORRELATOR"
index="IDX_CORRELATORENTRY_CORRELATOR"
+ */
+ public HCorrelator getCorrelator() {
+ return _correlator;
+ }
+
+ public void setCorrelator(HCorrelator correlator) {
+ _correlator = correlator;
+ }
+
+}
Propchange:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorEntry.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java?view=diff&rev=441249&r1=441248&r2=441249
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java
(original)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java
Thu Sep 7 14:59:12 2006
@@ -18,62 +18,24 @@
*/
package org.apache.ode.daohib.bpel.hobj;
-import org.apache.ode.daohib.hobj.HObject;
-import java.util.HashSet;
-import java.util.Set;
/**
- * @hibernate.class table="BPEL_CORRELATOR_MESSAGE"
+ * @hibernate.subclass table="BPEL_CORRELATOR_ENTRY" discriminator-value="M"
*/
-public class HCorrelatorMessage extends HObject {
-
- private Set<HCorrelatorMessageKey> _correlationKeys = new
HashSet<HCorrelatorMessageKey>();
- private HCorrelator _correlator;
- private HMessageExchange _messageExchange;
+public class HCorrelatorMessage extends HCorrelatorEntry {
- public HCorrelatorMessage() {
- super();
- }
-
- /**
- * @hibernate.set
- * lazy="true"
- * inverse="true"
- * cascade="delete"
- * @hibernate.collection-key
- * column="CORRELATOR_MESSAGE_ID"
- * @hibernate.collection-one-to-many
- * class="org.apache.ode.daohib.bpel.hobj.HCorrelatorMessageKey"
- */
- public Set<HCorrelatorMessageKey> getCorrelationHashKeys() {
- return _correlationKeys;
- }
+ private HMessageExchange _messageExchange;
- public void setCorrelationHashKeys(Set<HCorrelatorMessageKey>
correlationHashKeys) {
- _correlationKeys = correlationHashKeys;
- }
-
- /**
- * @hibernate.many-to-one
- * @hibernate.column name="CORRELATOR" index="IDX_CORRELATORMESSAGE_CID"
- */
- public HCorrelator getCorrelator() {
- return _correlator;
- }
-
- public void setCorrelator(HCorrelator correlator) {
- _correlator = correlator;
- }
-
- /**
- * @hibernate.many-to-one column="MEX"
- */
- public HMessageExchange getMessageExchange() {
- return _messageExchange;
- }
-
- public void setMessageExchange(HMessageExchange data) {
- _messageExchange = data;
- }
+
+ /**
+ * @hibernate.many-to-one column="MEX"
+ */
+ public HMessageExchange getMessageExchange() {
+ return _messageExchange;
+ }
+
+ public void setMessageExchange(HMessageExchange data) {
+ _messageExchange = data;
+ }
}
Modified:
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java?view=diff&rev=441249&r1=441248&r2=441249
==============================================================================
---
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java
(original)
+++
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java
Thu Sep 7 14:59:12 2006
@@ -18,79 +18,49 @@
*/
package org.apache.ode.daohib.bpel.hobj;
-import org.apache.ode.daohib.hobj.HObject;
-
/**
- * @hibernate.class table="BPEL_CORRELATOR_SELECTOR"
+ * @hibernate.subclass table="BPEL_CORRELATOR_ENTRY" discriminator-value="S"
+ *
*/
-public class HCorrelatorSelector extends HObject{
- private HCorrelator _correlator;
- private HProcessInstance _instance;
- private String _groupId;
- private String _correlationKey;
- private int _idx;
-
-
- /** Constructor. */
- public HCorrelatorSelector() {
- super();
- }
-
- /**
- * @hibernate.many-to-one column="PIID"
- */
- public HProcessInstance getInstance() {
- return _instance;
- }
-
- public void setInstance(HProcessInstance instance) {
- _instance = instance;
- }
-
- /**
- * @hibernate.many-to-one
- * @hibernate.column name="CORRELATOR"
index="IDX_CORRELATORSELECTOR_CORRELATOR"
- */
- public HCorrelator getCorrelator() {
- return _correlator;
- }
-
- public void setCorrelator(HCorrelator owner) {
- _correlator = owner;
- }
-
- /**
- * @hibernate.property column="SELGRPID"
- * @hibernate.column name="SELGRPID" index="IDX_SELECTOR_SELGRPID"
- */
- public String getGroupId() {
- return _groupId;
- }
-
- public void setGroupId(String groupId) {
- _groupId = groupId;
- }
-
- /**
- * @hibernate.property column="CKEY"
- * @hibernate.column name="CKEY" index="IDX_SELECTOR_CKEY"
- */
- public String getCorrelationKey() {
- return _correlationKey;
- }
-
- public void setCorrelationKey(String correlationKey) {
- _correlationKey = correlationKey;
- }
-
- /**
- * @hibernate.property column="IDX"
- */
- public int getIndex() {
- return _idx;
- }
-
- public void setIndex(int idx) {
- _idx = idx;
- }
+public class HCorrelatorSelector extends HCorrelatorEntry {
+
+ private HProcessInstance _instance;
+
+ private String _groupId;
+
+ private int _idx;
+
+ /**
+ * @hibernate.many-to-one column="PIID"
+ */
+ public HProcessInstance getInstance() {
+ return _instance;
+ }
+
+ public void setInstance(HProcessInstance instance) {
+ _instance = instance;
+ }
+
+ /**
+ * @hibernate.property column="SELGRPID"
+ * @hibernate.column name="SELGRPID" index="IDX_SELECTOR_SELGRPID"
+ */
+ public String getGroupId() {
+ return _groupId;
+ }
+
+ public void setGroupId(String groupId) {
+ _groupId = groupId;
+ }
+
+ /**
+ * @hibernate.property column="IDX"
+ */
+ public int getIndex() {
+ return _idx;
+ }
+
+ public void setIndex(int idx) {
+ _idx = idx;
+ }
}