[jbpm-commits] JBoss JBPM SVN: r6753 - in jbpm4/trunk/modules: pvm/src/main/java/org/jbpm/pvm/internal/hibernate and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Sat Oct 9 13:16:12 EDT 2010
Author: rebody
Date: 2010-10-09 13:16:11 -0400 (Sat, 09 Oct 2010)
New Revision: 6753
Modified:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SqlActivity.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/QuerySessionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/QuerySession.java
Log:
JBPM-2927 remove hibernate package from HqlActivity and SqlActivity
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlActivity.java 2010-10-09 12:11:46 UTC (rev 6752)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/HqlActivity.java 2010-10-09 17:16:11 UTC (rev 6753)
@@ -21,13 +21,15 @@
*/
package org.jbpm.jpdl.internal.activity;
-import org.hibernate.Query;
-import org.hibernate.Session;
+import java.util.HashMap;
+import java.util.Map;
+
import org.jbpm.api.JbpmException;
import org.jbpm.api.model.OpenExecution;
import org.jbpm.internal.log.Log;
import org.jbpm.pvm.internal.env.EnvironmentImpl;
import org.jbpm.pvm.internal.model.ScopeInstanceImpl;
+import org.jbpm.pvm.internal.session.QuerySession;
import org.jbpm.pvm.internal.wire.Descriptor;
import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.wire.descriptor.ListDescriptor;
@@ -35,6 +37,7 @@
/**
* @author Tom Baeyens
+ * @author Huisheng Xu
*/
public class HqlActivity extends JpdlAutomaticActivity {
@@ -51,60 +54,51 @@
public void perform(OpenExecution execution) {
EnvironmentImpl environment = EnvironmentImpl.getCurrent();
- if (environment==null) {
- throw new JbpmException("no environment for jpdl activity "+HqlBinding.TAG);
+ if (environment == null) {
+ throw new JbpmException("no environment for jpdl activity " + HqlBinding.TAG);
}
- Session session = environment.get(Session.class);
- Query q = createQuery(session);
-
- if (parametersDescriptor!=null) {
- for (Descriptor valueDescriptor: parametersDescriptor.getValueDescriptors()) {
+ Map<String, Object> params = new HashMap<String, Object>();
+ if (parametersDescriptor != null) {
+ for (Descriptor valueDescriptor : parametersDescriptor.getValueDescriptors()) {
String parameterName = valueDescriptor.getName();
Object value = WireContext.create(valueDescriptor, (ScopeInstanceImpl) execution);
- applyParameter(q, parameterName, value);
+ params.put(parameterName, value);
}
}
- Object result = null;
- if (isUpdate) {
- result = q.executeUpdate();
- } else if (isResultUnique) {
- result = q.uniqueResult();
- } else {
- result = q.list();
- }
+ QuerySession querySession = environment.get(QuerySession.class);
+ Object result = querySession.execute(query,
+ this.getQueryType(),
+ params,
+ isUpdate,
+ isResultUnique);
+
execution.setVariable(resultVariableName, result);
}
- protected Query createQuery(Session session) {
- return session.createQuery(query);
- }
-
- public void applyParameter(Query q, String parameterName, Object value) {
- if (value instanceof String) {
- q.setString(parameterName, (String) value);
- } else if (value instanceof Long) {
- q.setLong(parameterName, (Long) value);
- } else {
- log.error("unknown hql parameter type: "+value.getClass().getName());
- }
- }
-
public void setQuery(String query) {
this.query = query;
}
+
public void setParametersDescriptor(ListDescriptor parametersDescriptor) {
this.parametersDescriptor = parametersDescriptor;
}
+
public void setResultUnique(boolean isResultUnique) {
this.isResultUnique = isResultUnique;
}
+
public void setResultVariableName(String resultVariableName) {
this.resultVariableName = resultVariableName;
}
+
public void setUpdate(boolean isUpdate) {
this.isUpdate = isUpdate;
}
+
+ protected String getQueryType() {
+ return "hql";
+ }
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SqlActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SqlActivity.java 2010-10-09 12:11:46 UTC (rev 6752)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SqlActivity.java 2010-10-09 17:16:11 UTC (rev 6753)
@@ -21,17 +21,15 @@
*/
package org.jbpm.jpdl.internal.activity;
-import org.hibernate.Query;
-import org.hibernate.Session;
-
/**
* @author Tom Baeyens
+ * @author Huisheng Xu
*/
public class SqlActivity extends HqlActivity {
private static final long serialVersionUID = 1L;
- protected Query createQuery(Session session) {
- return session.createSQLQuery(query);
+ protected String getQueryType() {
+ return "sql";
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/QuerySessionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/QuerySessionImpl.java 2010-10-09 12:11:46 UTC (rev 6752)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/QuerySessionImpl.java 2010-10-09 17:16:11 UTC (rev 6753)
@@ -31,6 +31,7 @@
import org.hibernate.Query;
import org.hibernate.Session;
+import org.jbpm.api.JbpmException;
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.QueryOperator;
import org.jbpm.api.identity.Group;
@@ -695,4 +696,32 @@
String objectName = (String)propertyMap.get("objectName");
return (ProcessDefinitionImpl) repositorySession.getObject(deploymentId, objectName);
}
+
+ // ~ ======================================================================
+
+ public Object execute(String queryString,
+ String queryType,
+ Map<String, Object> params,
+ boolean isUpdate,
+ boolean isUnique) {
+ Query query = null;
+
+ if ("sql".equalsIgnoreCase(queryType)) {
+ query = session.createSQLQuery(queryString);
+ } else if ("hql".equalsIgnoreCase(queryType)) {
+ query = session.createQuery(queryString);
+ } else {
+ throw new JbpmException("Unsupported query type : " + queryString);
+ }
+
+ query.setProperties(params);
+
+ if (isUpdate) {
+ return query.executeUpdate();
+ } else if (isUnique) {
+ return query.uniqueResult();
+ } else {
+ return query.list();
+ }
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/QuerySession.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/QuerySession.java 2010-10-09 12:11:46 UTC (rev 6752)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/session/QuerySession.java 2010-10-09 17:16:11 UTC (rev 6753)
@@ -21,6 +21,7 @@
*/
package org.jbpm.pvm.internal.session;
+import java.util.Map;
import org.jbpm.pvm.internal.query.QueryProperty;
/**
@@ -30,4 +31,6 @@
*/
public interface QuerySession {
Object query(QueryProperty queryProperty);
+
+ Object execute(String queryString, String queryType, Map<String, Object> params, boolean isUpdate, boolean isUnique);
}
More information about the jbpm-commits
mailing list