[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