[jbpm-commits] JBoss JBPM SVN: r2533 - in jbpm3/trunk/modules/gwt-console/server/src/main: java/org/jboss/bpm/console/server/dao and 5 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Oct 14 05:17:33 EDT 2008
Author: heiko.braun at jboss.com
Date: 2008-10-14 05:17:32 -0400 (Tue, 14 Oct 2008)
New Revision: 2533
Added:
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockDAOFactory.java
Removed:
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java
Modified:
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/BufferedResponseWrapper.java
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/UserManagement.java
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/JBPM3Management.java
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/DiagramDAO.java
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/internal/DiagramInfoParser.java
jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/internal/MockDiagramDAO.java
jbpm3/trunk/modules/gwt-console/server/src/main/webapp/WEB-INF/web.xml
Log:
Load DAOFactory from servlet init parameter
Modified: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/BufferedResponseWrapper.java
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/BufferedResponseWrapper.java 2008-10-13 17:06:31 UTC (rev 2532)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/BufferedResponseWrapper.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -22,11 +22,11 @@
package org.jboss.bpm.console.server;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.ServletOutputStream;
+import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
-import java.io.ByteArrayOutputStream;
/**
* @author Heiko.Braun <heiko.braun at jboss.com>
Modified: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java 2008-10-13 17:06:31 UTC (rev 2532)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/ProcessManagement.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -26,6 +26,7 @@
import org.jboss.bpm.console.server.dao.DAOFactory;
import org.jboss.bpm.console.server.dao.ProcessDAO;
+import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
@@ -39,10 +40,19 @@
public class ProcessManagement
{
private ProcessDAO processDAO;
-
- public ProcessManagement()
+
+ /**
+ * Lazy load the {@link org.jboss.bpm.console.server.dao.ProcessDAO}
+ */
+ private ProcessDAO getProcessDAO(HttpServletRequest request)
{
- this.processDAO = DAOFactory.createProcessDAO();
+ if(null==this.processDAO)
+ {
+ DAOFactory factory = DAOFactory.newInstance(request.getSession().getServletContext());
+ this.processDAO = factory.createProcessDAO();
+ }
+
+ return this.processDAO;
}
@GET
@@ -52,8 +62,8 @@
@Context
HttpServletRequest request
)
- {
- return new ProcessDefinitionWrapper( processDAO.getAllDefinitions() );
+ {
+ return new ProcessDefinitionWrapper( getProcessDAO(request).getAllDefinitions() );
}
@POST
@@ -66,7 +76,7 @@
HttpServletRequest request
)
{
- return new ProcessDefinitionWrapper( processDAO.removeDefinition(processId) );
+ return new ProcessDefinitionWrapper( getProcessDAO(request).removeDefinition(processId) );
}
@GET
@@ -78,7 +88,7 @@
@Context
HttpServletRequest request)
{
- return new ProcessInstanceWrapper( processDAO.getInstancesByProcessId(processId) );
+ return new ProcessInstanceWrapper( getProcessDAO(request).getInstancesByProcessId(processId) );
}
@POST
@@ -90,6 +100,6 @@
@Context
HttpServletRequest request)
{
- return new ProcessInstanceWrapper( processDAO.removeInstance(instanceId) );
+ return new ProcessInstanceWrapper( getProcessDAO(request).removeInstance(instanceId) );
}
}
Modified: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/UserManagement.java
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/UserManagement.java 2008-10-13 17:06:31 UTC (rev 2532)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/UserManagement.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -21,14 +21,14 @@
*/
package org.jboss.bpm.console.server;
+import org.jboss.bpm.console.client.model.RoleAssignment;
import org.jboss.bpm.console.client.model.RoleAssignmentWrapper;
-import org.jboss.bpm.console.client.model.RoleAssignment;
+import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
-import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
import java.util.List;
-import java.util.ArrayList;
import java.util.StringTokenizer;
/**
Deleted: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java 2008-10-13 17:06:31 UTC (rev 2532)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -1,44 +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.dao;
-
-import org.jboss.bpm.console.server.dao.internal.MockProcessDAO;
-import org.jboss.bpm.console.server.jbpm3.dao.DiagramDAO;
-import org.jboss.bpm.console.server.jbpm3.dao.internal.MockDiagramDAO;
-
-/**
- * TODO: Add service locator lookup
- * @author Heiko.Braun <heiko.braun at jboss.com>
- */
-public class DAOFactory
-{
- public static ProcessDAO createProcessDAO()
- {
- return new MockProcessDAO();
- }
-
- public static DiagramDAO createDiagramDAO()
- {
- return new MockDiagramDAO();
- }
-}
-
Added: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java (rev 0)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -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.dao;
+
+import org.jboss.bpm.console.server.jbpm3.dao.DiagramDAO;
+
+import javax.servlet.ServletContext;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public abstract class DAOFactory
+{
+ public abstract ProcessDAO createProcessDAO();
+
+ public abstract DiagramDAO createDiagramDAO();
+
+ /**
+ * Expects an init parameter <code>org.jboss.bpm.console.server.dao.DAOFactory</code>
+ * refering to the implementation class name that should be created.
+ * @param context ServletContext
+ * @return a DAOFactory implementation
+ */
+ public static DAOFactory newInstance(ServletContext context)
+ {
+ String daoFactoryClassName = context.getInitParameter(DAOFactory.class.getName());
+ if(null==daoFactoryClassName)
+ throw new RuntimeException("Failed to load DAOFactory. Init parameter " +
+ DAOFactory.class.getName() + " is missing");
+
+ try
+ {
+ return (DAOFactory)Class.forName(daoFactoryClassName).newInstance();
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Failed to load DAOFactory", e);
+ }
+ }
+}
Copied: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockDAOFactory.java (from rev 2532, jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/DAOFactory.java)
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockDAOFactory.java (rev 0)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockDAOFactory.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -0,0 +1,44 @@
+/*
+ * 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.DAOFactory;
+import org.jboss.bpm.console.server.dao.ProcessDAO;
+import org.jboss.bpm.console.server.jbpm3.dao.DiagramDAO;
+import org.jboss.bpm.console.server.jbpm3.dao.internal.MockDiagramDAO;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class MockDAOFactory extends DAOFactory
+{
+ public ProcessDAO createProcessDAO()
+ {
+ return new MockProcessDAO();
+ }
+
+ public DiagramDAO createDiagramDAO()
+ {
+ return new MockDiagramDAO();
+ }
+}
+
Property changes on: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/dao/internal/MockDAOFactory.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/JBPM3Management.java
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/JBPM3Management.java 2008-10-13 17:06:31 UTC (rev 2532)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/JBPM3Management.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -21,15 +21,18 @@
*/
package org.jboss.bpm.console.server.jbpm3;
+import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
+import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
import org.jboss.bpm.console.server.dao.DAOFactory;
+import org.jboss.bpm.console.server.dao.ProcessDAO;
import org.jboss.bpm.console.server.jbpm3.dao.DiagramDAO;
-import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
-import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.GET;
import javax.ws.rs.Path;
-import javax.ws.rs.GET;
+import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.PathParam;
+import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
/**
@@ -38,22 +41,44 @@
@Path("jbpm3")
public class JBPM3Management
{
- private DiagramDAO diagramDAO;
+ private DiagramDAO diagramDAO = null;
+ private ProcessDAO processDAO = null;
- public JBPM3Management()
+ private ProcessDAO getProcessDAO(HttpServletRequest request)
{
- this.diagramDAO = DAOFactory.createDiagramDAO();
+ if(null==this.processDAO)
+ {
+ DAOFactory factory = DAOFactory.newInstance(request.getSession().getServletContext());
+ this.processDAO = factory.createProcessDAO();
+ }
+
+ return this.processDAO;
+
}
+ private DiagramDAO getDiagramDAO(HttpServletRequest request)
+ {
+ if(null==this.diagramDAO)
+ {
+ DAOFactory factory = DAOFactory.newInstance(request.getSession().getServletContext());
+ this.diagramDAO = factory.createDiagramDAO();
+ }
+
+ return this.diagramDAO;
+
+ }
+
@GET
@Path("definitions/{id}/image")
@Produces("image/jpeg")
public Response getProcessImage(
@PathParam("id")
- long id
+ long id,
+ @Context
+ HttpServletRequest request
)
{
- byte[] image = diagramDAO.getProcessImage(id);
+ byte[] image = getDiagramDAO(request).getProcessImage(id);
if(null==image)
return Response.serverError().build();
else
@@ -65,10 +90,12 @@
@Produces("application/json")
public DiagramInfo getDiagramInfo(
@PathParam("id")
- long id
+ long id,
+ @Context
+ HttpServletRequest request
)
{
- return diagramDAO.getDiagramInfo(id);
+ return getDiagramDAO(request).getDiagramInfo(id);
}
@GET
@@ -76,10 +103,12 @@
@Produces("application/json")
public ActiveNodeInfo getActiveNodeInfo(
@PathParam("id")
- long id
+ long id,
+ @Context
+ HttpServletRequest request
)
{
- return diagramDAO.getActivNodeInfo(id);
+ return getDiagramDAO(request).getActivNodeInfo(getProcessDAO(request), id);
}
}
Modified: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/DiagramDAO.java
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/DiagramDAO.java 2008-10-13 17:06:31 UTC (rev 2532)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/DiagramDAO.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -21,8 +21,9 @@
*/
package org.jboss.bpm.console.server.jbpm3.dao;
+import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
-import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
+import org.jboss.bpm.console.server.dao.ProcessDAO;
/**
* @author Heiko.Braun <heiko.braun at jboss.com>
@@ -33,5 +34,5 @@
DiagramInfo getDiagramInfo(long processId);
- ActiveNodeInfo getActivNodeInfo(long instanceId);
+ ActiveNodeInfo getActivNodeInfo(ProcessDAO processDAO, long instanceId);
}
Modified: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/internal/DiagramInfoParser.java
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/internal/DiagramInfoParser.java 2008-10-13 17:06:31 UTC (rev 2532)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/internal/DiagramInfoParser.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -23,16 +23,16 @@
import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
import org.jboss.bpm.console.client.model.jbpm3.DiagramNodeInfo;
+import org.jbpm.util.XmlUtil;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import org.w3c.dom.Node;
-import org.jbpm.util.XmlUtil;
+import java.io.IOException;
import java.io.InputStream;
-import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
-import java.util.ArrayList;
/**
* @author Heiko.Braun <heiko.braun at jboss.com>
Modified: jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/internal/MockDiagramDAO.java
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/internal/MockDiagramDAO.java 2008-10-13 17:06:31 UTC (rev 2532)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/java/org/jboss/bpm/console/server/jbpm3/dao/internal/MockDiagramDAO.java 2008-10-14 09:17:32 UTC (rev 2533)
@@ -21,17 +21,15 @@
*/
package org.jboss.bpm.console.server.jbpm3.dao.internal;
-import org.jboss.bpm.console.server.jbpm3.dao.DiagramDAO;
-import org.jboss.bpm.console.server.jbpm3.dao.internal.DiagramInfoParser;
-import org.jboss.bpm.console.server.dao.ProcessDAO;
-import org.jboss.bpm.console.server.dao.DAOFactory;
-import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
+import org.jboss.bpm.console.client.model.ProcessInstance;
import org.jboss.bpm.console.client.model.jbpm3.ActiveNodeInfo;
+import org.jboss.bpm.console.client.model.jbpm3.DiagramInfo;
import org.jboss.bpm.console.client.model.jbpm3.DiagramNodeInfo;
-import org.jboss.bpm.console.client.model.ProcessInstance;
+import org.jboss.bpm.console.server.dao.ProcessDAO;
+import org.jboss.bpm.console.server.jbpm3.dao.DiagramDAO;
-import java.io.InputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.util.List;
/**
@@ -39,13 +37,7 @@
*/
public class MockDiagramDAO implements DiagramDAO
{
- private ProcessDAO processDAO;
- public MockDiagramDAO()
- {
- processDAO = DAOFactory.createProcessDAO();
- }
-
public byte[] getProcessImage(long processId)
{
byte[] imageBytes = null;
@@ -75,7 +67,7 @@
return DiagramInfoParser.parse(in);
}
- public ActiveNodeInfo getActivNodeInfo(long instanceId)
+ public ActiveNodeInfo getActivNodeInfo(ProcessDAO processDAO, long instanceId)
{
ProcessInstance pi = processDAO.getInstanceById(instanceId);
Modified: jbpm3/trunk/modules/gwt-console/server/src/main/webapp/WEB-INF/web.xml
===================================================================
--- jbpm3/trunk/modules/gwt-console/server/src/main/webapp/WEB-INF/web.xml 2008-10-13 17:06:31 UTC (rev 2532)
+++ jbpm3/trunk/modules/gwt-console/server/src/main/webapp/WEB-INF/web.xml 2008-10-14 09:17:32 UTC (rev 2533)
@@ -15,6 +15,11 @@
<param-value>/rs</param-value>
</context-param>
+ <context-param>
+ <param-name>org.jboss.bpm.console.server.dao.DAOFactory</param-name>
+ <param-value>org.jboss.bpm.console.server.dao.internal.MockDAOFactory</param-value>
+ </context-param>
+
<filter>
<filter-name>gwtJSON</filter-name>
<filter-class>org.jboss.bpm.console.server.GWTJsonFilter</filter-class>
More information about the jbpm-commits
mailing list