Merge branch 'develop'
diff --git a/plugins/org.eclipse.bpel.apache.ode.runtime/src/org/eclipse/bpel/apache/ode/runtime/OdeBPELPublisher.java b/plugins/org.eclipse.bpel.apache.ode.runtime/src/org/eclipse/bpel/apache/ode/runtime/OdeBPELPublisher.java
index eb9f571..e600baa 100644
--- a/plugins/org.eclipse.bpel.apache.ode.runtime/src/org/eclipse/bpel/apache/ode/runtime/OdeBPELPublisher.java
+++ b/plugins/org.eclipse.bpel.apache.ode.runtime/src/org/eclipse/bpel/apache/ode/runtime/OdeBPELPublisher.java
@@ -1,95 +1,103 @@
-package org.eclipse.bpel.apache.ode.runtime;
-
-/*******************************************************************************
- * Copyright (c) 2008, 2012 IBM Corporation, University of Stuttgart (IAAS) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation, University of Stuttgart (IAAS) - initial API and implementation
- *******************************************************************************/
-
-import java.io.File;
-
-import org.eclipse.bpel.runtimes.publishers.GenericBPELPublisher;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jst.server.core.PublishUtil;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IModuleArtifact;
-import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.model.IModuleResource;
-import org.eclipse.wst.server.core.model.ModuleDelegate;
-
-/**
- * BPEL publisher for Apache ODE.
- *
- * @author Tammo van Lessen (IAAS)
- * @author Simon Moser (IBM)
- */
-public class OdeBPELPublisher extends GenericBPELPublisher {
-
- public OdeBPELPublisher() {
- super();
- }
-
- @Override
- public IStatus[] publish(IModuleArtifact[] artifacts, IProgressMonitor monitor) {
- // resources will always be null for some weird reason :(
- // therefore we generate a BPELModuleArtifact
- // the module id value enables us to get BPEL file path relative to its project
- IModule[] modules = super.getModule();
-
- try {
- IModule last = modules[modules.length-1];
- IPath root = createDeploymentDestination(last);
- ModuleDelegate delegate = (ModuleDelegate)last.loadAdapter(ModuleDelegate.class, new NullProgressMonitor());
- IModuleResource[] resources = delegate.members();
- PublishUtil.publishFull(resources, root, monitor);
- } catch( CoreException ce ) {
- // TODO return bad status
- }
- return new IStatus[]{Status.OK_STATUS};
-
- }
-
- @Override
- public IStatus[] unpublish(IProgressMonitor monitor) {
- IModule[] modules = super.getModule();
- IModule last = modules[modules.length - 1];
- IStatus[] result = new Status[modules.length];
- IPath root = createDeploymentDestination(last);
- PublishUtil.deleteDirectory(root.toFile(), monitor);
- return result;
- }
-
- /**
- * This method will create a folder inside the WEB-INF\processes subfolder
- * of the ODE installation
- */
- protected IPath createDeploymentDestination(IModule module) {
- String moduleName = module.getName();
- String deployAppName = moduleName;
-
- // get TOMCAT_HOME
- IRuntime serverDef = getServerRuntime().getRuntime();
- IPath tomcatHome = serverDef.getLocation();
-
- // append ODE's Process target Dir tomcatHome
- IPath deployTarget = tomcatHome.append("webapps").append("ode")
- .append("WEB-INF").append("processes").append(deployAppName);
-
- File f = deployTarget.toFile();
- if (!f.exists()) {
- f.mkdir();
- }
-
- return deployTarget;
- }
-}
+package org.eclipse.bpel.apache.ode.runtime;
+
+/*******************************************************************************
+ * Copyright (c) 2008, 2012 IBM Corporation, University of Stuttgart (IAAS) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation, University of Stuttgart (IAAS) - initial API and implementation
+ *******************************************************************************/
+
+import java.io.File;
+
+import org.eclipse.bpel.runtimes.publishers.GenericBPELPublisher;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jst.server.core.PublishUtil;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IModuleArtifact;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.model.IModuleResource;
+import org.eclipse.wst.server.core.model.ModuleDelegate;
+
+/**
+ * BPEL publisher for Apache ODE.
+ *
+ * @author Tammo van Lessen (IAAS)
+ * @author Simon Moser (IBM)
+ */
+public class OdeBPELPublisher extends GenericBPELPublisher {
+
+ public OdeBPELPublisher() {
+ super();
+ }
+
+ @Override
+ public IStatus[] publish(IModuleArtifact[] artifacts, IProgressMonitor monitor) {
+ // resources will always be null for some weird reason :(
+ // therefore we generate a BPELModuleArtifact
+ // the module id value enables us to get BPEL file path relative to its project
+ IModule[] modules = super.getModule();
+
+ try {
+ IModule last = modules[modules.length-1];
+ IPath root = createDeploymentDestination(last);
+ ModuleDelegate delegate = (ModuleDelegate)last.loadAdapter(ModuleDelegate.class, new NullProgressMonitor());
+ IModuleResource[] resources = delegate.members();
+ PublishUtil.publishFull(resources, root, monitor);
+
+ // https://bugs.eclipse.org/bugs/show_bug.cgi?id=379613
+ // remove the "*.deployed" file, so Ode knows to reload the changes
+ File f = root.addFileExtension("deployed").toFile();
+ if (f.exists()) {
+ f.delete();
+ }
+
+ } catch( CoreException ce ) {
+ // TODO return bad status
+ }
+ return new IStatus[]{Status.OK_STATUS};
+
+ }
+
+ @Override
+ public IStatus[] unpublish(IProgressMonitor monitor) {
+ IModule[] modules = super.getModule();
+ IModule last = modules[modules.length - 1];
+ IStatus[] result = new Status[modules.length];
+ IPath root = createDeploymentDestination(last);
+ PublishUtil.deleteDirectory(root.toFile(), monitor);
+ return result;
+ }
+
+ /**
+ * This method will create a folder inside the WEB-INF\processes subfolder
+ * of the ODE installation
+ */
+ protected IPath createDeploymentDestination(IModule module) {
+ String moduleName = module.getName();
+ String deployAppName = moduleName;
+
+ // get TOMCAT_HOME
+ IRuntime serverDef = getServerRuntime().getRuntime();
+ IPath tomcatHome = serverDef.getLocation();
+
+ // append ODE's Process target Dir tomcatHome
+ IPath deployTarget = tomcatHome.append("webapps").append("ode")
+ .append("WEB-INF").append("processes").append(deployAppName);
+
+ File f = deployTarget.toFile();
+ if (!f.exists()) {
+ f.mkdir();
+ }
+
+ return deployTarget;
+ }
+}