Author: mriou
Date: Fri Sep 29 09:35:09 2006
New Revision: 451344

URL: http://svn.apache.org/viewvc?view=rev&rev=451344
Log:
Throwing an exception if someone tries to deploy twice the same process in 
different deployment units

Modified:
    
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java

Modified: 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java?view=diff&rev=451344&r1=451343&r2=451344
==============================================================================
--- 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
 (original)
+++ 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
 Fri Sep 29 09:35:09 2006
@@ -111,6 +111,8 @@
                         // it to hold on for a while.
                         _poller.hold();
                         File dest = new File(_deployPath, namePart.getText());
+                        _service.undeploy(dest);
+
                         dest.mkdir();
                         unzip(dest, (DataHandler) binaryNode.getDataHandler());
 

Modified: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java?view=diff&rev=451344&r1=451343&r2=451344
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
 Fri Sep 29 09:35:09 2006
@@ -167,13 +167,7 @@
                 if 
(deploymentUnit.getDeployDir().getName().equals(file.getName()))
                     du = deploymentUnit;
             }
-            if (du == null) {
-                if (file.exists())
-                    __log.warn("Couldn't undeploy " + file.getName() + ", 
package was not found.");
-                else if (__log.isDebugEnabled())
-                    __log.debug("Couldn't undeploy " + file.getName() + ", 
package was not found.");
-                return false;
-            }
+            if (du == null) return false;
 
             boolean success = true;
             for (QName pName : du.getProcessNames()) {
@@ -626,14 +620,21 @@
      * Deploys a process.
      */
     public Collection<QName> deploy(File deploymentUnitDirectory) {
-        // Undeploy everything
-        undeploy(deploymentUnitDirectory);
-
         __log.info(__msgs.msgDeployStarting(deploymentUnitDirectory));
 
         _mngmtLock.writeLock().lock();
         try {
             DeploymentUnitImpl du = 
_deploymentManager.createDeploymentUnit(deploymentUnitDirectory);
+
+            // Checking first that the same process isn't deployed elsewhere
+            for (TDeployment.Process processDD : 
du.getDeploymentDescriptor().getDeploy().getProcessList()) {
+                if (_deploymentUnits.get(processDD.getName()) != null) {
+                    String duName = 
_deploymentUnits.get(processDD.getName()).getDeployDir().getName();
+                    if (!duName.equals(deploymentUnitDirectory.getName()))
+                        throw new BpelEngineException("Process " + 
processDD.getName() + " is already deployed in " +
+                                duName + "");
+                }
+            }
 
             ArrayList<QName> deployed = new ArrayList<QName>();
             BpelEngineException failed = null;


Reply via email to