[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