[jbpm-commits] JBoss JBPM SVN: r2648 - in projects/gwt-console/trunk: rpc/src/main/java/org/jboss/bpm/console/client/model and 7 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Oct 28 13:26:15 EDT 2008


Author: heiko.braun at jboss.com
Date: 2008-10-28 13:26:15 -0400 (Tue, 28 Oct 2008)
New Revision: 2648

Added:
   projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/TaskReferenceWrapper.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/TaskManagement.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/TaskDAO.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3TaskDAO.java
Modified:
   projects/gwt-console/trunk/gwt-console.iml
   projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/RoleAssignment.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ConsoleServerApplication.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/UserManagement.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/ProcessDAO.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3CommandDelegate.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DAOFactory.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DiagramDAO.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3ProcessDAO.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockDAOFactory.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockProcessDAO.java
   projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/Transform.java
   projects/gwt-console/trunk/server/src/main/webapp/index.html
   projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java
   projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java
   projects/gwt-console/trunk/war/src/test/java/org/jboss/bpm/console/client/GwtTestDTOParser.java
Log:
Begin work an TaskManagement: Added REST interface and DTO parsing for TaskReferences

Modified: projects/gwt-console/trunk/gwt-console.iml
===================================================================
--- projects/gwt-console/trunk/gwt-console.iml	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/gwt-console.iml	2008-10-28 17:26:15 UTC (rev 2648)
@@ -14,6 +14,8 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="jbpm3-core" />
+    <orderEntry type="module" module-name="jbpm3-enterprise" />
     <orderEntry type="module-library">
       <library name="M2 Dep: org.slf4j:slf4j-simple:jar:1.5.2:compile">
         <CLASSES>
@@ -132,17 +134,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="M2 Dep: org.jbpm.jbpm3:jbpm-core:jar:3.3.0-SNAPSHOT:provided">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../.m2/repository/org/jbpm/jbpm3/jbpm-core/3.3.0-SNAPSHOT/jbpm-core-3.3.0-SNAPSHOT.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../../../../.m2/repository/org/jbpm/jbpm3/jbpm-core/3.3.0-SNAPSHOT/jbpm-core-3.3.0-SNAPSHOT-sources.jar!/" />
-        </SOURCES>
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
       <library name="M2 Dep: cglib:cglib:jar:2.1_3:provided">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../.m2/repository/cglib/cglib/2.1_3/cglib-2.1_3.jar!/" />
@@ -404,17 +395,6 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="M2 Dep: org.jbpm.jbpm3:jbpm-enterprise-beans:jar:3.3.0-SNAPSHOT:provided">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../../../.m2/repository/org/jbpm/jbpm3/jbpm-enterprise-beans/3.3.0-SNAPSHOT/jbpm-enterprise-beans-3.3.0-SNAPSHOT.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../../../../.m2/repository/org/jbpm/jbpm3/jbpm-enterprise-beans/3.3.0-SNAPSHOT/jbpm-enterprise-beans-3.3.0-SNAPSHOT-sources.jar!/" />
-        </SOURCES>
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
       <library name="M2 Dep: pdfbox:pdfbox:jar:0.6.4:provided">
         <CLASSES>
           <root url="jar://$MODULE_DIR$/../../../../../../.m2/repository/pdfbox/pdfbox/0.6.4/pdfbox-0.6.4.jar!/" />

Modified: projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/RoleAssignment.java
===================================================================
--- projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/RoleAssignment.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/RoleAssignment.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -55,7 +55,7 @@
       this.role = role;
    }
 
-   @XmlElement(name = "assigned")
+   @XmlElement(name = "isAssigned")
    public boolean isAssigned()
    {
       return isAssigned;

Added: projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/TaskReferenceWrapper.java
===================================================================
--- projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/TaskReferenceWrapper.java	                        (rev 0)
+++ projects/gwt-console/trunk/rpc/src/main/java/org/jboss/bpm/console/client/model/TaskReferenceWrapper.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.console.client.model;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+ at XmlRootElement(name = "wrapper")
+public class TaskReferenceWrapper
+{
+   List<TaskReference> tasks = new ArrayList<TaskReference>();
+
+
+   public TaskReferenceWrapper()
+   {
+   }
+
+   public TaskReferenceWrapper(List<TaskReference> tasks)
+   {
+      this.tasks = tasks;
+   }
+
+   public List<TaskReference> getTasks()
+   {
+      return tasks;
+   }
+
+   public void setTasks(List<TaskReference> tasks)
+   {
+      this.tasks = tasks;
+   }
+}

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ConsoleServerApplication.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ConsoleServerApplication.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/ConsoleServerApplication.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -37,6 +37,7 @@
    public ConsoleServerApplication()
    {
       singletons.add(new ProcessManagement());
+      singletons.add(new TaskManagement());
       singletons.add(new UserManagement());
       singletons.add(new JBPM3Management());
    }

Added: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/TaskManagement.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/TaskManagement.java	                        (rev 0)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/TaskManagement.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -0,0 +1,94 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.console.server;
+
+import com.google.gson.Gson;
+import org.jboss.bpm.console.client.model.TaskReferenceWrapper;
+import org.jboss.bpm.console.server.dao.DAOFactory;
+import org.jboss.bpm.console.server.dao.TaskDAO;
+import org.jboss.bpm.console.server.gson.GsonFactory;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+/**
+ * REST server module for accessing process related data.
+ *
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+ at Path("tasks")
+public class TaskManagement
+{
+   private TaskDAO taskDAO;
+
+   /**
+    * Lazy load the {@link org.jboss.bpm.console.server.dao.ProcessDAO}
+    */
+   private TaskDAO getTaskDAO(HttpServletRequest request)
+   {
+      if(null==this.taskDAO)
+      {
+         DAOFactory factory = DAOFactory.newInstance(request.getSession().getServletContext());
+         this.taskDAO = factory.createTaskDAO();
+      }
+
+      return this.taskDAO;
+   }
+
+   @GET
+   @Path("actor")
+   @Produces("application/json")
+   public Response getTasksForActor(
+     @Context
+     HttpServletRequest request,
+     @QueryParam("actors")
+     String actors
+   )
+   {
+      List<String> actorList = new ArrayList<String>();
+
+      StringTokenizer tok = new StringTokenizer(actors, ",");
+      while(tok.hasMoreTokens())
+      {
+         actorList.add(tok.nextToken());
+      }
+
+      TaskReferenceWrapper wrapper =
+        new TaskReferenceWrapper(getTaskDAO(request).getTasksByActors(actorList));
+      return createJsonResponse(wrapper);
+   }
+
+   private Response createJsonResponse(Object wrapper)
+   {
+      Gson gson = GsonFactory.createInstance();
+      String json = gson.toJson(wrapper);
+      return Response.ok(json).type("application/json").build();
+   }
+}

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/UserManagement.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/UserManagement.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/UserManagement.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -23,14 +23,18 @@
 
 import org.jboss.bpm.console.client.model.RoleAssignment;
 import org.jboss.bpm.console.client.model.RoleAssignmentWrapper;
+import org.jboss.bpm.console.server.gson.GsonFactory;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.*;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.StringTokenizer;
 
+import com.google.gson.Gson;
+
 /**
  * REST server module for accessing user related data.
  *
@@ -43,7 +47,7 @@
    @GET
    @Path("roles")
    @Produces("application/json")
-   public RoleAssignmentWrapper getAssignedRoles(
+   public Response getAssignedRoles(
      @Context
      HttpServletRequest request,
      @QueryParam("roleCheck")
@@ -63,6 +67,13 @@
          String possibleRole = tok.nextToken();
          actualRoles.add( new RoleAssignment(possibleRole, request.isUserInRole(possibleRole)));         
       }
-      return new RoleAssignmentWrapper(actualRoles);
-   }   
+      return createJsonResponse( new RoleAssignmentWrapper(actualRoles));
+   }
+
+   private Response createJsonResponse(Object wrapper)
+   {
+      Gson gson = GsonFactory.createInstance();
+      String json = gson.toJson(wrapper);
+      return Response.ok(json).type("application/json").build();
+   }
 }

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -36,6 +36,8 @@
 
    public abstract DiagramDAO createDiagramDAO();
 
+   public abstract TaskDAO createTaskDAO();
+
    /**
     * Expects an init parameter <code>org.jboss.bpm.console.server.dao.DAOFactory</code>
     * refering to the implementation class name that should be created.

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/ProcessDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/ProcessDAO.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/ProcessDAO.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -23,6 +23,7 @@
 
 import org.jboss.bpm.console.client.model.ProcessDefinition;
 import org.jboss.bpm.console.client.model.ProcessInstance;
+import org.jboss.bpm.console.client.model.TaskReference;
 
 import java.util.List;
 
@@ -48,4 +49,6 @@
    ProcessInstance newInstance(long processId);
 
    ProcessDefinition deployNewDefinition(byte[] data);
+
+   List<TaskReference> getAllTasks();
 }

Added: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/TaskDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/TaskDAO.java	                        (rev 0)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/TaskDAO.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.console.server.dao;
+
+import org.jboss.bpm.console.client.model.TaskReference;
+
+import java.util.List;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public interface TaskDAO
+{
+   List<TaskReference> getTasksByActors(List<String> actorList);
+   List<TaskReference> getTasksByInstanceId(long instanceId);
+}

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3CommandDelegate.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3CommandDelegate.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3CommandDelegate.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -25,6 +25,7 @@
 import org.jbpm.ejb.LocalCommandService;
 import org.jbpm.ejb.LocalCommandServiceHome;
 import org.jbpm.graph.def.ProcessDefinition;
+import org.jbpm.taskmgmt.exe.TaskInstance;
 import org.jboss.bpm.console.server.util.ServiceLocator;
 
 import javax.ejb.CreateException;
@@ -144,4 +145,11 @@
       );
       return p0;  
    }
+
+   public List<TaskInstance> getActualTasksForActors(List<String> actorList)
+   {
+      List<TaskInstance> tasks = (List<TaskInstance>)
+            facade.execute( new GetTaskListCommand(actorList.toArray(new String[]{})));
+      return tasks;
+   }
 }

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DAOFactory.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DAOFactory.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DAOFactory.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -21,10 +21,7 @@
  */
 package org.jboss.bpm.console.server.dao.internal;
 
-import org.jboss.bpm.console.server.dao.DAOFactory;
-import org.jboss.bpm.console.server.dao.ProcessDAO;
-import org.jboss.bpm.console.server.dao.DiagramDAO;
-import org.jboss.bpm.console.server.dao.DAOProxy;
+import org.jboss.bpm.console.server.dao.*;
 
 /**
  * @author Heiko.Braun <heiko.braun at jboss.com>
@@ -41,4 +38,10 @@
    {
       return (DiagramDAO) DAOProxy.newInstance( new JBPM3DiagramDAO() );  
    }
+
+
+   public TaskDAO createTaskDAO()
+   {
+      return (TaskDAO) DAOProxy.newInstance( new JBPM3TaskDAO() );
+   }
 }

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DiagramDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DiagramDAO.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3DiagramDAO.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -61,7 +61,7 @@
    {
       org.jbpm.graph.exe.ProcessInstance instance = delegate.getActualInstance(instanceId);
       String currentNodeName = instance.getRootToken().getNode().getName();
-
+      
       DiagramInfo diagram = getDiagramInfo(instance.getProcessDefinition().getId());
       List<DiagramNodeInfo> nodes = diagram.getNodeList();
 

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3ProcessDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3ProcessDAO.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3ProcessDAO.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -23,6 +23,7 @@
 
 import org.jboss.bpm.console.client.model.ProcessDefinition;
 import org.jboss.bpm.console.client.model.ProcessInstance;
+import org.jboss.bpm.console.client.model.TaskReference;
 import org.jboss.bpm.console.server.dao.ProcessDAO;
 
 import java.util.ArrayList;
@@ -104,4 +105,10 @@
       org.jbpm.graph.def.ProcessDefinition p0 = delegate.deploy(data);
       return Transform.processDefinition(p0);  
    }
+
+
+   public List<TaskReference> getAllTasks()
+   {
+      return null;  //To change body of implemented methods use File | Settings | File Templates.
+   }
 }

Added: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3TaskDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3TaskDAO.java	                        (rev 0)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/JBPM3TaskDAO.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.console.server.dao.internal;
+
+import org.jboss.bpm.console.server.dao.TaskDAO;
+import org.jboss.bpm.console.client.model.TaskReference;
+
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class JBPM3TaskDAO implements TaskDAO
+{
+
+   private JBPM3CommandDelegate delegate;
+
+
+   public JBPM3TaskDAO()
+   {
+      this.delegate = new JBPM3CommandDelegate();
+   }
+
+   public List<TaskReference> getTasksByActors(List<String> actorList)
+   {
+      List<org.jbpm.taskmgmt.exe.TaskInstance> actualTasks =
+            delegate.getActualTasksForActors(actorList);
+
+      List<TaskReference> taskRefs = new ArrayList<TaskReference>();
+      for(org.jbpm.taskmgmt.exe.TaskInstance t0 : actualTasks)
+      {
+         taskRefs.add( Transform.taskInstance(t0));
+      }
+
+      return taskRefs;
+   }
+
+   public List<TaskReference> getTasksByInstanceId(long instanceId)
+   {
+      return null;  //To change body of implemented methods use File | Settings | File Templates.
+   }
+}

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockDAOFactory.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockDAOFactory.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockDAOFactory.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -24,6 +24,7 @@
 import org.jboss.bpm.console.server.dao.DAOFactory;
 import org.jboss.bpm.console.server.dao.ProcessDAO;
 import org.jboss.bpm.console.server.dao.DiagramDAO;
+import org.jboss.bpm.console.server.dao.TaskDAO;
 import org.jboss.bpm.console.server.dao.internal.MockDiagramDAO;
 
 /**
@@ -40,5 +41,11 @@
    {
       return new MockDiagramDAO();
    }
+
+
+   public TaskDAO createTaskDAO()
+   {
+      throw new RuntimeException("Not implemented");
+   }
 }
 

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockProcessDAO.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockProcessDAO.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockProcessDAO.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -23,6 +23,7 @@
 
 import org.jboss.bpm.console.client.model.ProcessDefinition;
 import org.jboss.bpm.console.client.model.ProcessInstance;
+import org.jboss.bpm.console.client.model.TaskReference;
 import org.jboss.bpm.console.server.dao.ProcessDAO;
 
 import java.util.ArrayList;
@@ -148,4 +149,10 @@
    {
       throw new RuntimeException("Not implemented");
    }
+
+
+   public List<TaskReference> getAllTasks()
+   {
+      throw new RuntimeException("Not implemented");
+   }
 }

Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/Transform.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/Transform.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/dao/internal/Transform.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -23,8 +23,11 @@
 
 import org.jboss.bpm.console.client.model.ProcessDefinition;
 import org.jboss.bpm.console.client.model.ProcessInstance;
+import org.jboss.bpm.console.client.model.TaskReference;
+import org.jbpm.graph.def.Transition;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author Heiko.Braun <heiko.braun at jboss.com>
@@ -67,4 +70,31 @@
             
    }
 
+   public static TaskReference taskInstance(org.jbpm.taskmgmt.exe.TaskInstance t0)
+   {
+      TaskReference taskRef = new TaskReference(
+         t0.getId(),
+            t0.getName(),
+            t0.getDescription(),
+            t0.isSignalling(),
+            t0.isBlocking(),
+            t0.getToken().getId(),
+            t0.getProcessInstance().getId(),
+            t0.getActorId()
+      );
+
+      List<Transition> transitionList =  (List<Transition>)
+            t0.getToken().getNode().getLeavingTransitionsList();
+
+      for(Transition trs0 : transitionList)
+      {
+         taskRef.getTransitionNames().add(
+               trs0.getName()
+         );
+      }
+
+      return taskRef;
+   }
+
+
 }

Modified: projects/gwt-console/trunk/server/src/main/webapp/index.html
===================================================================
--- projects/gwt-console/trunk/server/src/main/webapp/index.html	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/server/src/main/webapp/index.html	2008-10-28 17:26:15 UTC (rev 2648)
@@ -99,7 +99,7 @@
 <h2>Example usage</h2>
 
 <pre>
-   curl -H 'Accept: application/json' http://localhost:8080/gwt-console-server/rs/process/definitions
+   curl -u "user:password" -H 'Accept: application/json' http://localhost:8080/gwt-console-server/rs/process/definitions
    curl -H 'Accept: application/json' http://localhost:8080/gwt-console-server/rs/process/definitions/1/instances
 </pre>
 </body>

Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/model/DTOParser.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -21,14 +21,13 @@
  */
 package org.jboss.bpm.console.client.model;
 
-import com.google.gwt.json.client.JSONValue;
-import com.google.gwt.json.client.JSONParser;
-import com.google.gwt.json.client.JSONArray;
-import com.google.gwt.json.client.JSONObject;
+import com.google.gwt.json.client.*;
 
 import java.util.List;
 import java.util.ArrayList;
 
+import org.jboss.bpm.console.client.util.JSONWalk;
+
 /**
  * @author Heiko.Braun <heiko.braun at jboss.com>
  */
@@ -39,23 +38,70 @@
       // parse roles
       List<String> roles = new ArrayList<String>();
 
-      JSONValue result = JSONParser.parse(json);
-      JSONValue jsonValue = result.isObject().get("roles");
-      JSONArray array = jsonValue.isArray();
+      // {"roles":[{"isAssigned":true,"role":"admin"},{"isAssigned":true,"role":"user"}]}
+
+      JSONValue root = JSONParser.parse(json);
+      JSONArray array = JSONWalk.on(root).next("roles").asArray();
+
       for (int i = 0; i < array.size(); ++i)
       {
          JSONObject item = array.get(i).isObject();
-         String assigned = item.get("assigned").toString();
-         String roleName = item.get("role").toString();
+         System.out.println("!!!! "+ item);
+         boolean assigned = JSONWalk.on(item).next("isAssigned").asBool();
+         String roleName = JSONWalk.on(item).next("role").asString();
 
-
-         if(assigned.equals("true"))
+         if(assigned)
          {
             roles.add(roleName);
          }
-
       }
 
       return roles;
    }
+
+   public static List<TaskReference> parseTaskReferenceList(String json)
+   {
+      List<TaskReference> results = new ArrayList<TaskReference>();
+
+      // {"tasks":[{"id":14,"name":"manager evaluation","isSignalling":true,
+      // "isBlocking":false,"tokenId":6,"processInstanceId":4,"actor":"manager",
+      // "transitionNames":["reject","approve"]}]}
+
+      JSONValue root = JSONParser.parse(json);
+      JSONArray array = JSONWalk.on(root).next("tasks").asArray();
+
+      for (int i = 0; i < array.size(); ++i)
+      {
+         JSONObject item = array.get(i).isObject();
+         long id = JSONWalk.on(item).next("id").asLong();
+         long tokenId = JSONWalk.on(item).next("tokenId").asLong();
+         long instanceId = JSONWalk.on(item).next("processInstanceId").asLong();
+         String name = JSONWalk.on(item).next("name").asString();
+         String actor = JSONWalk.on(item).next("actor").asString();
+         boolean isBlocking = JSONWalk.on(item).next("isBlocking").asBool();
+         boolean isSignalling = JSONWalk.on(item).next("isSignalling").asBool();
+                                                        
+         TaskReference ref = new TaskReference(
+               id, name, "",  // TODO: description, deal with optional values in JSONWalk
+               isSignalling, isBlocking,
+               tokenId, instanceId,
+               actor
+         );
+
+         if(isSignalling)
+         {
+            JSONArray arr = JSONWalk.on(item).next("transitionNames").asArray();
+            for (int k = 0; k < arr.size(); ++k)
+            {
+               JSONString t = arr.get(k).isString();               
+               ref.getTransitionNames().add(t.stringValue());
+            }
+         }
+
+         results.add(ref);
+
+      }
+
+      return results;
+   }
 }

Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/util/JSONWalk.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -93,6 +93,18 @@
          }
       }
 
+      public long asLong()
+      {
+         if(value.isNumber()!=null)
+         {
+            return new Double(value.isNumber().getValue()).longValue();
+         }
+         else
+         {
+            throw new IllegalArgumentException("Not a number: " + value);
+         }
+      }
+
       public double asDouble()
       {
          if(value.isNumber()!=null)

Modified: projects/gwt-console/trunk/war/src/test/java/org/jboss/bpm/console/client/GwtTestDTOParser.java
===================================================================
--- projects/gwt-console/trunk/war/src/test/java/org/jboss/bpm/console/client/GwtTestDTOParser.java	2008-10-28 13:52:32 UTC (rev 2647)
+++ projects/gwt-console/trunk/war/src/test/java/org/jboss/bpm/console/client/GwtTestDTOParser.java	2008-10-28 17:26:15 UTC (rev 2648)
@@ -23,23 +23,34 @@
 
 import com.google.gwt.junit.client.GWTTestCase;
 import org.jboss.bpm.console.client.model.DTOParser;
+import org.jboss.bpm.console.client.model.TaskReference;
 
 import java.util.List;
 
 
 public class GwtTestDTOParser extends GWTTestCase {
 
-    public String getModuleName() {
-        return "org.jboss.bpm.console.Application";
-    }
+   public String getModuleName() {
+      return "org.jboss.bpm.console.Application";
+   }
 
-    public void testRolesAssgnedParsing()
-    {
+   public void testRolesAssgnedParsing()
+   {
+      // {"roles":[{"isAssigned":true,"role":"admin"},{"isAssigned":true,"role":"user"}]}
 
-        // {"roles":[{"assigned":true,"role":"admin"},{"assigned":true,"role":"user"}]}
-        
-        String json = "{\"roles\":[{\"assigned\":true,\"role\":\"admin\"},{\"assigned\":true,\"role\":\"user\"}]}";
-        List<String> roles = DTOParser.parseRolesAssigned(json);
-        assertTrue(roles.size() == 2);
-    }
+      String json = "{\"roles\":[{\"isAssigned\":true,\"role\":\"admin\"},{\"isAssigned\":true,\"role\":\"user\"}]}";
+      List<String> roles = DTOParser.parseRolesAssigned(json);
+      assertTrue(roles.size() == 2);
+   }
+
+   public void testTaskRefParsing()
+   {
+      //{"tasks":[{"id":14,"name":"manager evaluation","isSignalling":true,"isBlocking":false,"tokenId":6,"processInstanceId":4,"actor":"manager","transitionNames":["reject","approve"]}]}
+
+      String json = "{\"tasks\":[{\"id\":14,\"name\":\"manager evaluation\",\"isSignalling\":true,\"isBlocking\":false,\"tokenId\":6,\"processInstanceId\":4,\"actor\":\"manager\",\"transitionNames\":[\"reject\",\"approve\"]}]}";
+      List<TaskReference> result = DTOParser.parseTaskReferenceList(json);
+      assertTrue("Failed to parse TaskReferenceList", result.size()==1);
+      assertTrue("Failed to parse transitionNames", result.get(0).getTransitionNames().size()==2);
+
+   }
 }




More information about the jbpm-commits mailing list