[jbpm-commits] JBoss JBPM SVN: r5158 - in projects/gwt-console/trunk: server/server-core/src/main/java/org/jboss/bpm/console/server and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Jun 29 11:13:18 EDT 2009
Author: heiko.braun at jboss.com
Date: 2009-06-29 11:13:18 -0400 (Mon, 29 Jun 2009)
New Revision: 5158
Added:
projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/FormProcessingFacade.java
projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/FormAuthorityRef.java
projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/FormDispatcherPlugin.java
Removed:
projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/TaskDispatcherPlugin.java
Modified:
projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/task/AssignedTasksView.java
projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/ConsoleServerApplication.java
projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/InfoFacade.java
projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/TaskListFacade.java
projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/TaskMgmtFacade.java
Log:
Rename TaskDispatcher to FormDispatcher
Modified: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/task/AssignedTasksView.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/task/AssignedTasksView.java 2009-06-29 14:55:15 UTC (rev 5157)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/task/AssignedTasksView.java 2009-06-29 15:13:18 UTC (rev 5158)
@@ -215,7 +215,7 @@
// plugin availability
this.hasDispatcherPlugin =
- ServerPlugins.has("org.jboss.bpm.console.server.plugin.TaskDispatcherPlugin");
+ ServerPlugins.has("org.jboss.bpm.console.server.plugin.FormDispatcherPlugin");
viewBtn.setEnabled(hasDispatcherPlugin);
isInitialized = true;
Modified: projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/ConsoleServerApplication.java
===================================================================
--- projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/ConsoleServerApplication.java 2009-06-29 14:55:15 UTC (rev 5157)
+++ projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/ConsoleServerApplication.java 2009-06-29 15:13:18 UTC (rev 5158)
@@ -45,7 +45,7 @@
singletons.add(new UserMgmtFacade());
singletons.add(new TestFacade());
singletons.add(new EngineFacade());
-
+ singletons.add(new FormProcessingFacade());
singletons.add( new ReportFacade() );
}
Added: projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/FormProcessingFacade.java
===================================================================
--- projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/FormProcessingFacade.java (rev 0)
+++ projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/FormProcessingFacade.java 2009-06-29 15:13:18 UTC (rev 5158)
@@ -0,0 +1,168 @@
+/*
+ * 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 org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.bpm.console.server.plugin.FormAuthorityRef;
+import org.jboss.bpm.console.server.plugin.FormDispatcherPlugin;
+import org.jboss.bpm.console.server.plugin.PluginMgr;
+import org.jboss.resteasy.plugins.providers.multipart.InputPart;
+import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
+
+import javax.activation.DataHandler;
+import javax.activation.DataSource;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+ at Path("form")
+public class FormProcessingFacade
+{
+ private static final Log log = LogFactory.getLog(FormProcessingFacade.class);
+
+ private FormDispatcherPlugin formPlugin;
+
+ /**
+ * Lazy load the {@link org.jboss.bpm.console.server.integration.TaskManagement}
+ */
+ private FormDispatcherPlugin getFormDispatcherPlugin()
+ {
+ if(null==this.formPlugin)
+ {
+ this.formPlugin = PluginMgr.load(FormDispatcherPlugin.class);
+ log.debug("Using FormDispatcherPlugin impl:" + this.formPlugin);
+ }
+
+ return this.formPlugin;
+ }
+
+
+ @GET
+ @Path("task/{taskId}/render")
+ @Produces("text/html")
+ public Response renderTaskUI(
+ @PathParam("taskId")
+ String taskId
+ )
+ {
+ DataHandler dh = getFormDispatcherPlugin().provideForm(
+ new FormAuthorityRef(taskId)
+ );
+
+ if(null==dh)
+ {
+ throw new RuntimeException("No UI associated with task ID " + taskId);
+ }
+
+ return Response.ok(dh.getDataSource()).type("text/html").build();
+ }
+
+ @POST
+ @Path("task/{taskId}/complete")
+ @Produces("text/html")
+ @Consumes("multipart/form-data")
+ public Response closeTaskWithUI(
+ @Context
+ HttpServletRequest request,
+ @PathParam("taskId")
+ String taskId,
+ MultipartFormDataInput payload
+ )
+ {
+ Map<String,Object> processVars = new HashMap<String,Object>();
+
+ Map<String, InputPart> formData = payload.getFormData();
+ Iterator<String> partNames = formData.keySet().iterator();
+
+ String outcome = null;
+
+ while(partNames.hasNext())
+ {
+ final String partName = partNames.next();
+ final InputPart part = formData.get(partName);
+ final MediaType mediaType = part.getMediaType();
+
+ if(partName.equals("outcome"))
+ {
+ outcome = part.getBodyAsString();
+ }
+ else if(MediaType.TEXT_PLAIN_TYPE.equals(mediaType))
+ {
+ // RFC2045: Each part has an optional "Content-Type" header
+ // that defaults to "text/plain".
+ // Can go into process without conversion
+ processVars.put(partName, part.getBodyAsString());
+ }
+ else
+ {
+ // anything else turns into a DataHandler
+ final byte[] data = part.getBodyAsString().getBytes();
+ DataHandler dh = new DataHandler(
+ new DataSource()
+ {
+ public InputStream getInputStream() throws IOException
+ {
+ return new ByteArrayInputStream(data);
+ }
+
+ public OutputStream getOutputStream() throws IOException
+ {
+ throw new RuntimeException("This is a readonly DataHandler");
+ }
+
+ public String getContentType()
+ {
+ return mediaType.getType();
+ }
+
+ public String getName()
+ {
+ return partName;
+ }
+ }
+ );
+
+ processVars.put(partName, dh);
+ }
+ }
+
+ // complete task
+ getFormDispatcherPlugin().processCompletion(
+ new FormAuthorityRef(taskId), processVars, request.getRemoteUser(), outcome
+ );
+
+ return Response.ok("Successfully processed task UI").build();
+ }
+}
Modified: projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/InfoFacade.java
===================================================================
--- projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/InfoFacade.java 2009-06-29 14:55:15 UTC (rev 5157)
+++ projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/InfoFacade.java 2009-06-29 15:13:18 UTC (rev 5158)
@@ -21,7 +21,7 @@
*/
package org.jboss.bpm.console.server;
-import org.jboss.bpm.console.server.plugin.TaskDispatcherPlugin;
+import org.jboss.bpm.console.server.plugin.FormDispatcherPlugin;
import org.jboss.bpm.console.server.plugin.PluginMgr;
import org.jboss.bpm.console.server.plugin.GraphViewerPlugin;
import org.jboss.bpm.console.server.plugin.ProcessEnginePlugin;
@@ -44,7 +44,7 @@
{
private Class[] pluginInterfaces = {
- TaskDispatcherPlugin.class,
+ FormDispatcherPlugin.class,
GraphViewerPlugin.class,
ProcessEnginePlugin.class
};
Modified: projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/TaskListFacade.java
===================================================================
--- projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/TaskListFacade.java 2009-06-29 14:55:15 UTC (rev 5157)
+++ projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/TaskListFacade.java 2009-06-29 15:13:18 UTC (rev 5158)
@@ -24,19 +24,22 @@
import com.google.gson.Gson;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jboss.bpm.console.client.model.TaskRef;
import org.jboss.bpm.console.client.model.TaskRefWrapper;
-import org.jboss.bpm.console.client.model.TaskRef;
import org.jboss.bpm.console.server.gson.GsonFactory;
import org.jboss.bpm.console.server.integration.ManagementFactory;
import org.jboss.bpm.console.server.integration.TaskManagement;
-import org.jboss.bpm.console.server.plugin.TaskDispatcherPlugin;
import org.jboss.bpm.console.server.plugin.PluginMgr;
+import org.jboss.bpm.console.server.plugin.FormAuthorityRef;
+import org.jboss.bpm.console.server.plugin.FormDispatcherPlugin;
-import javax.ws.rs.*;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
+import java.net.URL;
import java.util.List;
-import java.util.ArrayList;
-import java.net.URL;
/**
* REST server module for accessing task related data.
@@ -49,7 +52,7 @@
private static final Log log = LogFactory.getLog(TaskMgmtFacade.class);
private TaskManagement taskManagement;
- private TaskDispatcherPlugin formPlugin;
+ private FormDispatcherPlugin formPlugin;
/**
* Lazy load the {@link org.jboss.bpm.console.server.integration.TaskManagement}
@@ -67,14 +70,14 @@
}
/**
- * Lazy load the {@link org.jboss.bpm.console.server.plugin.TaskDispatcherPlugin}.
+ * Lazy load the {@link org.jboss.bpm.console.server.plugin.FormDispatcherPlugin}.
* Can be null if the plugin is not available.
*/
- private TaskDispatcherPlugin getTaskDispatcherPlugin()
+ private FormDispatcherPlugin getTaskDispatcherPlugin()
{
if(null==this.formPlugin)
{
- this.formPlugin = PluginMgr.load(TaskDispatcherPlugin.class);
+ this.formPlugin = PluginMgr.load(FormDispatcherPlugin.class);
}
return this.formPlugin;
@@ -107,12 +110,14 @@
private Response processTaskListResponse(List<TaskRef> taskList)
{
// decorate task form URL if plugin available
- TaskDispatcherPlugin formPlugin = getTaskDispatcherPlugin();
+ FormDispatcherPlugin formPlugin = getTaskDispatcherPlugin();
if(formPlugin!=null)
{
for(TaskRef task : taskList)
{
- URL taskFormURL = formPlugin.getDispatchUrl(task.getId());
+ URL taskFormURL = formPlugin.getDispatchUrl(
+ new FormAuthorityRef(String.valueOf(task.getId()))
+ );
if(taskFormURL!=null)
{
task.setUrl(taskFormURL.toExternalForm());
Modified: projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/TaskMgmtFacade.java
===================================================================
--- projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/TaskMgmtFacade.java 2009-06-29 14:55:15 UTC (rev 5157)
+++ projects/gwt-console/trunk/server/server-core/src/main/java/org/jboss/bpm/console/server/TaskMgmtFacade.java 2009-06-29 15:13:18 UTC (rev 5158)
@@ -26,7 +26,8 @@
import org.jboss.bpm.console.server.integration.ManagementFactory;
import org.jboss.bpm.console.server.integration.TaskManagement;
import org.jboss.bpm.console.server.plugin.PluginMgr;
-import org.jboss.bpm.console.server.plugin.TaskDispatcherPlugin;
+import org.jboss.bpm.console.server.plugin.FormAuthorityRef;
+import org.jboss.bpm.console.server.plugin.FormDispatcherPlugin;
import org.jboss.resteasy.plugins.providers.multipart.InputPart;
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
@@ -37,13 +38,13 @@
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.ByteArrayInputStream;
/**
* REST server module for accessing task related data.
@@ -57,7 +58,7 @@
private TaskManagement taskManagement;
- private TaskDispatcherPlugin formPlugin;
+ private FormDispatcherPlugin formPlugin;
/**
* Lazy load the {@link org.jboss.bpm.console.server.integration.TaskManagement}
@@ -77,12 +78,12 @@
/**
* Lazy load the {@link org.jboss.bpm.console.server.integration.TaskManagement}
*/
- private TaskDispatcherPlugin getTaskDispatcherPlugin()
+ private FormDispatcherPlugin getFormDispatcherPlugin()
{
if(null==this.formPlugin)
{
- this.formPlugin = PluginMgr.load(TaskDispatcherPlugin.class);
- log.debug("Using TaskDispatcherPlugin impl:" + this.formPlugin);
+ this.formPlugin = PluginMgr.load(FormDispatcherPlugin.class);
+ log.debug("Using FormDispatcherPlugin impl:" + this.formPlugin);
}
return this.formPlugin;
@@ -152,15 +153,19 @@
return Response.ok().build();
}
+ /*
@GET
@Path("{taskId}/render")
@Produces("text/html")
public Response renderUI(
@PathParam("taskId")
- long taskId
+ String taskId
)
{
- DataHandler dh = getTaskDispatcherPlugin().provideTaskUI(taskId);
+ DataHandler dh = getFormDispatcherPlugin().provideForm(
+ new FormAuthorityRef(taskId)
+ );
+
if(null==dh)
{
throw new RuntimeException("No UI associated with task ID " + taskId);
@@ -177,7 +182,7 @@
@Context
HttpServletRequest request,
@PathParam("taskId")
- long taskId,
+ String taskId,
MultipartFormDataInput payload
)
{
@@ -238,15 +243,11 @@
}
}
- // trigger execution
- TaskManagement tm = getTaskManagement();
-
- if(null==outcome)
- tm.completeTask(taskId, processVars, request.getRemoteUser());
- else
- tm.completeTask(taskId, outcome, processVars, request.getRemoteUser());
+ // complete task
+ getFormDispatcherPlugin().processCompletion(
+ new FormAuthorityRef(taskId), processVars, request.getRemoteUser(), outcome
+ );
-
return Response.ok("Successfully processed task UI").build();
- }
+ } */
}
Added: projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/FormAuthorityRef.java
===================================================================
--- projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/FormAuthorityRef.java (rev 0)
+++ projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/FormAuthorityRef.java 2009-06-29 15:13:18 UTC (rev 5158)
@@ -0,0 +1,59 @@
+/*
+ * 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.plugin;
+
+/**
+ * Identifies the source entity associated with a form.
+ * I.e. process or task.
+ *
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class FormAuthorityRef
+{
+ public enum Type {TASK, PROCESS}
+
+ private Type currentType = null;
+
+ private String referenceId;
+
+ public FormAuthorityRef(String referenceId)
+ {
+ this.referenceId = referenceId;
+ this.currentType = Type.TASK;
+ }
+
+ public FormAuthorityRef(Type currentType, String referenceId)
+ {
+ this.currentType = currentType;
+ this.referenceId = referenceId;
+ }
+
+ public Type getType()
+ {
+ return this.currentType;
+ }
+
+ public String getReferenceId()
+ {
+ return referenceId;
+ }
+}
Copied: projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/FormDispatcherPlugin.java (from rev 5148, projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/TaskDispatcherPlugin.java)
===================================================================
--- projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/FormDispatcherPlugin.java (rev 0)
+++ projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/FormDispatcherPlugin.java 2009-06-29 15:13:18 UTC (rev 5158)
@@ -0,0 +1,42 @@
+/*
+ * 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.plugin;
+
+import javax.activation.DataHandler;
+import java.net.URL;
+import java.util.Map;
+
+/**
+ * Render task UI's and process task completion.
+ *
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public interface FormDispatcherPlugin
+{
+ URL getDispatchUrl(FormAuthorityRef ref);
+
+ DataHandler provideForm(FormAuthorityRef ref);
+
+ void processCompletion(
+ FormAuthorityRef ref, Map<String, Object> payload,
+ String performingUser, String outcome);
+}
Deleted: projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/TaskDispatcherPlugin.java
===================================================================
--- projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/TaskDispatcherPlugin.java 2009-06-29 14:55:15 UTC (rev 5157)
+++ projects/gwt-console/trunk/server/server-integration/src/main/java/org/jboss/bpm/console/server/plugin/TaskDispatcherPlugin.java 2009-06-29 15:13:18 UTC (rev 5158)
@@ -1,40 +0,0 @@
-/*
- * 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.plugin;
-
-import javax.activation.DataHandler;
-import java.io.InputStream;
-import java.net.URL;
-
-/**
- * Render task UI's and process task completion.
- *
- * @author Heiko.Braun <heiko.braun at jboss.com>
- */
-public interface TaskDispatcherPlugin
-{
- URL getDispatchUrl(long taskId);
-
- DataHandler provideTaskUI(long taskId);
-
- void processCompletion(long taskId, String outcome, InputStream payload);
-}
More information about the jbpm-commits
mailing list