[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