JBoss JBPM SVN: r6333 - in jbpm4/trunk/modules: pvm/src/main/java/org/jbpm/pvm/internal/cmd and 5 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-12 07:21:09 -0400 (Wed, 12 May 2010)
New Revision: 6333
Modified:
jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/mail/AttachmentTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java
Log:
JBPM-2703: close input streams
Modified: jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java
===================================================================
--- jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java 2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java 2010-05-12 11:21:09 UTC (rev 6333)
@@ -75,6 +75,9 @@
catch (IOException e) {
throw new JbpmException("could not read resource: " + resource, e);
}
+ finally {
+ IoUtil.close(stream);
+ }
}
public static List<String> extractCommands(String fileContents) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java 2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java 2010-05-12 11:21:09 UTC (rev 6333)
@@ -51,6 +51,9 @@
catch (IOException e) {
throw new JbpmException("could not read resource: " + resourceName, e);
}
+ finally {
+ IoUtil.close(inputStream);
+ }
}
public Void execute(Environment environment) throws Exception {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java 2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java 2010-05-12 11:21:09 UTC (rev 6333)
@@ -115,6 +115,9 @@
catch (IOException e) {
throw new JbpmException("couldn't read zip archive", e);
}
+ finally {
+ IoUtil.close(zipInputStream);
+ }
return this;
}
@@ -137,21 +140,22 @@
if (resources == null) {
resources = new HashMap<String, Lob>();
}
- byte[] bytes = null;
+ InputStream inputStream = streamInput.openStream();
try {
- InputStream inputStream = streamInput.openStream();
- bytes = IoUtil.readBytes(inputStream);
- inputStream.close();
+ byte[] bytes = IoUtil.readBytes(inputStream);
+
+ // Since this method is probably called outside an environment block, we
+ // need to generate the dbid of the Lob later (during the actual deployment).
+ Lob lob = new Lob(bytes, false);
+ resources.put(name, lob);
}
catch (IOException e) {
throw new JbpmException("couldn't read from " + name, e);
}
+ finally {
+ IoUtil.close(inputStream);
+ }
- // Since this method is probably called outside an environment block, we
- // need to generate the dbid of the Lob later (during the actual deployment).
- Lob lob = new Lob(bytes, false);
- resources.put(name, lob);
-
return this;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java 2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java 2010-05-12 11:21:09 UTC (rev 6333)
@@ -22,27 +22,37 @@
package org.jbpm.pvm.internal.util;
import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import org.jbpm.internal.log.Log;
+
public class IoUtil {
public static final int BUFFERSIZE = 4096;
+ private static final Log log = Log.getLog(IoUtil.class.getName());
private IoUtil() {
// prevent instantiation
}
- public static byte[] readBytes(InputStream inputStream) throws IOException {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- try {
- transfer(inputStream, outputStream);
+ public static byte[] readBytes(InputStream in) throws IOException {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ transfer(in, out);
+ return out.toByteArray();
+ }
+
+ public static void close(Closeable closeable) {
+ if (closeable != null) {
+ try {
+ closeable.close();
+ }
+ catch (IOException e) {
+ if (log.isDebugEnabled()) log.debug("failed to close stream", e);
+ }
}
- finally {
- inputStream.close();
- }
- return outputStream.toByteArray();
}
public static long transfer(InputStream in, OutputStream out) throws IOException {
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/mail/AttachmentTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/mail/AttachmentTest.java 2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/mail/AttachmentTest.java 2010-05-12 11:21:09 UTC (rev 6333)
@@ -77,14 +77,21 @@
+ " <end name='end'/>"
+ "</process>");
- byte[] strip = IoUtil.readBytes(getClass().getResourceAsStream("strip.gif"));
+ InputStream resourceStream = getClass().getResourceAsStream("strip.gif");
+ try {
+ byte[] strip = IoUtil.readBytes(resourceStream);
- // start process instance
- ProcessInstance processInstance = executionService.startProcessInstanceByKey("varattachment", Collections.singletonMap("strip", strip));
- assertProcessInstanceEnded(processInstance);
+ // start process instance
+ ProcessInstance processInstance = executionService
+ .startProcessInstanceByKey("varattachment", Collections.singletonMap("strip", strip));
+ assertProcessInstanceEnded(processInstance);
- // examine produced messages
- examineMessages(wiser.getMessages());
+ // examine produced messages
+ examineMessages(wiser.getMessages());
+ }
+ finally {
+ IoUtil.close(resourceStream);
+ }
}
public void testFileAttachment() throws MessagingException, IOException, URISyntaxException {
@@ -110,7 +117,8 @@
+ "</process>");
// start process instance
- ProcessInstance processInstance = executionService.startProcessInstanceByKey("fileattachment");
+ ProcessInstance processInstance = executionService
+ .startProcessInstanceByKey("fileattachment");
assertProcessInstanceEnded(processInstance);
// examine produced messages
@@ -140,7 +148,8 @@
+ "</process>");
// start process instance
- ProcessInstance processInstance = executionService.startProcessInstanceByKey("urlattachment");
+ ProcessInstance processInstance = executionService
+ .startProcessInstanceByKey("urlattachment");
assertProcessInstanceEnded(processInstance);
// examine produced messages
@@ -166,7 +175,8 @@
+ "</process>");
// start process instance
- ProcessInstance processInstance = executionService.startProcessInstanceByKey("resattachment");
+ ProcessInstance processInstance = executionService
+ .startProcessInstanceByKey("resattachment");
assertProcessInstanceEnded(processInstance);
// examine produced messages
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java 2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java 2010-05-12 11:21:09 UTC (rev 6333)
@@ -24,7 +24,6 @@
*/
package org.jbpm.test.deploy;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipInputStream;
@@ -33,43 +32,32 @@
import org.jbpm.api.ProcessDefinition;
import org.jbpm.test.JbpmTestCase;
-
/**
- * Test case for the various ways of setting a process, image, etc as input
- * of a deployment.
+ * Test case for the various ways of setting a process, image, etc as input of a deployment.
*
* @author Joram Barrez
*/
public class DeploymentResourceTest extends JbpmTestCase {
-
- public void testZippedResourceDeployment() {
- InputStream inputStream = null;
+ public void testZippedResourceDeployment() throws IOException {
+ InputStream inputStream = getClass().getResourceAsStream("process.zip");
+ ZipInputStream zipInputStream = new ZipInputStream(inputStream);
try {
- inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("org/jbpm/test/deploy/process.zip");
- ZipInputStream zipInputStream = new ZipInputStream(inputStream);
-
NewDeployment newDeployment = repositoryService.createDeployment();
newDeployment.addResourcesFromZipInputStream(zipInputStream);
String deployId = newDeployment.deploy();
-
- ProcessDefinition procDef = repositoryService.createProcessDefinitionQuery()
- .deploymentId(deployId)
- .uniqueResult();
+
+ ProcessDefinition procDef = repositoryService
+ .createProcessDefinitionQuery()
+ .deploymentId(deployId)
+ .uniqueResult();
assertNotNull(procDef);
assertEquals("ImageTest", procDef.getName());
repositoryService.deleteDeploymentCascade(deployId);
-
- } finally {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (IOException e) {
- fail(e.getMessage());
- }
- }
}
-
+ finally {
+ zipInputStream.close();
+ }
}
-
+
}
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java 2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java 2010-05-12 11:21:09 UTC (rev 6333)
@@ -49,16 +49,26 @@
String imageResourceName = processDefinition.getImageResourceName();
assertEquals("org/jbpm/test/deploy/ImageTest.png", imageResourceName);
- InputStream inputStream = repositoryService.getResourceAsStream(processDefinition
- .getDeploymentId(), imageResourceName);
- byte[] imageBytes = IoUtil.readBytes(inputStream);
+ InputStream imageStream = repositoryService
+ .getResourceAsStream(deploymentId, imageResourceName);
+ try {
+ byte[] imageBytes = IoUtil.readBytes(imageStream);
- inputStream = Thread
- .currentThread()
- .getContextClassLoader()
- .getResourceAsStream("org/jbpm/test/deploy/ImageTest.png");
- byte[] expectedImageBytes = IoUtil.readBytes(inputStream);
- assertTrue(Arrays.equals(expectedImageBytes, imageBytes));
+ InputStream expectedImageStream = Thread
+ .currentThread()
+ .getContextClassLoader()
+ .getResourceAsStream("org/jbpm/test/deploy/ImageTest.png");
+ try {
+ byte[] expectedImageBytes = IoUtil.readBytes(expectedImageStream);
+ assertTrue(Arrays.equals(expectedImageBytes, imageBytes));
+ }
+ finally {
+ IoUtil.close(expectedImageStream);
+ }
+ }
+ finally {
+ IoUtil.close(imageStream);
+ }
repositoryService.deleteDeploymentCascade(deploymentId);
}
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java 2010-05-12 10:54:01 UTC (rev 6332)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java 2010-05-12 11:21:09 UTC (rev 6333)
@@ -61,9 +61,14 @@
.getStartFormResourceName(processDefinitionId, null);
assertEquals("org/jbpm/test/process/ProcessDefinitionStartForm.form", startFormResourceName);
- InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition
+ InputStream formStream = repositoryService.getResourceAsStream(processDefinition
.getDeploymentId(), startFormResourceName);
- assertEquals("start task form", new String(IoUtil.readBytes(formInputStream)));
+ try {
+ assertEquals("start task form", new String(IoUtil.readBytes(formStream)));
+ }
+ finally {
+ IoUtil.close(formStream);
+ }
}
public void testFormInNamedStartActivity() throws IOException {
@@ -92,9 +97,13 @@
.getStartFormResourceName(processDefinitionId, "start");
assertEquals("org/jbpm/test/process/ProcessDefinitionStartForm.form", startFormResourceName);
- InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition
+ InputStream formStream = repositoryService.getResourceAsStream(processDefinition
.getDeploymentId(), startFormResourceName);
- String formContents = new String(IoUtil.readBytes(formInputStream));
- assertEquals("start task form", formContents);
+ try {
+ assertEquals("start task form", new String(IoUtil.readBytes(formStream)));
+ }
+ finally {
+ IoUtil.close(formStream);
+ }
}
}
15 years, 11 months
JBoss JBPM SVN: r6332 - in jbpm4/trunk: modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd and 5 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-12 06:54:01 -0400 (Wed, 12 May 2010)
New Revision: 6332
Modified:
jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentObjectInputStream.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java
jbpm4/trunk/qa/jdbc/mysql.properties
Log:
JBPM-2703: let IoUtil throw IOExceptions to improve exception handling
update mysql properties in quality lab
Modified: jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java
===================================================================
--- jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java 2010-05-12 09:52:59 UTC (rev 6331)
+++ jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbHelper.java 2010-05-12 10:54:01 UTC (rev 6332)
@@ -21,6 +21,7 @@
*/
package org.jbpm.db;
+import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@@ -51,24 +52,29 @@
public static void executeSqlResource(String resource, Session session) {
InputStream stream = Upgrade.class.getClassLoader().getResourceAsStream(resource);
if (stream == null) {
- throw new JbpmException("resource "+resource+" does not exist");
+ throw new JbpmException("resource not found: " + resource);
}
- byte[] bytes = IoUtil.readBytes(stream);
- String fileContents = new String(bytes);
- List<String> commands = extractCommands(fileContents);
-
- log.info("--- Executing DB Commands -------------------------");
- for (String command: commands) {
- log.info(command);
- try {
- int result = session.createSQLQuery(command).executeUpdate();
- log.info("--- Result: "+result+" --------------------------");
- } catch (Exception e) {
- e.printStackTrace();
- log.info("-----------------------------------------------");
+ try {
+ byte[] bytes = IoUtil.readBytes(stream);
+ String fileContents = new String(bytes);
+ List<String> commands = extractCommands(fileContents);
+
+ log.info("--- Executing DB Commands -------------------------");
+ for (String command: commands) {
+ log.info(command);
+ try {
+ int result = session.createSQLQuery(command).executeUpdate();
+ log.info("--- Result: "+result+" --------------------------");
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.info("-----------------------------------------------");
+ }
}
}
+ catch (IOException e) {
+ throw new JbpmException("could not read resource: " + resource, e);
+ }
}
public static List<String> extractCommands(String fileContents) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java 2010-05-12 09:52:59 UTC (rev 6331)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/UpdateDeploymentResourceCmd.java 2010-05-12 10:54:01 UTC (rev 6332)
@@ -21,29 +21,36 @@
*/
package org.jbpm.pvm.internal.cmd;
+import java.io.IOException;
import java.io.InputStream;
+import org.jbpm.api.JbpmException;
import org.jbpm.api.cmd.Command;
import org.jbpm.api.cmd.Environment;
import org.jbpm.pvm.internal.session.RepositorySession;
import org.jbpm.pvm.internal.util.IoUtil;
-
/**
* @author Tom Baeyens
*/
public class UpdateDeploymentResourceCmd implements Command<Void> {
private static final long serialVersionUID = 1L;
-
+
protected String deploymentId;
protected String resourceName;
protected byte[] bytes;
- public UpdateDeploymentResourceCmd(String deploymentId, String resourceName, InputStream inputStream) {
+ public UpdateDeploymentResourceCmd(String deploymentId, String resourceName,
+ InputStream inputStream) {
this.deploymentId = deploymentId;
this.resourceName = resourceName;
- this.bytes = IoUtil.readBytes(inputStream);
+ try {
+ bytes = IoUtil.readBytes(inputStream);
+ }
+ catch (IOException e) {
+ throw new JbpmException("could not read resource: " + resourceName, e);
+ }
}
public Void execute(Environment environment) throws Exception {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java 2010-05-12 09:52:59 UTC (rev 6331)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java 2010-05-12 10:54:01 UTC (rev 6332)
@@ -32,29 +32,29 @@
import org.jbpm.api.JbpmException;
import org.jbpm.pvm.internal.env.EnvironmentImpl;
import org.jbpm.pvm.internal.session.RepositorySession;
-import org.jbpm.pvm.internal.util.IoUtil;
-
/**
* @author Tom Baeyens
*/
public class DeploymentClassLoader extends ClassLoader {
- private String deploymentId = null;
+ private final String deploymentId;
- public DeploymentClassLoader(ClassLoader parent, String deploymentId ) {
+ public DeploymentClassLoader(ClassLoader parent, String deploymentId) {
super(parent);
this.deploymentId = deploymentId;
}
+ @Override
public URL findResource(String name) {
URL url = null;
byte[] bytes = getDeployment().getBytes(name);
- if (bytes!=null) {
- InputStream inputStream = new ByteArrayInputStream(bytes);
+ if (bytes != null) {
try {
- url = new URL(null, "jbpm://"+deploymentId+"/"+name, new BytesUrlStreamHandler(inputStream));
- } catch (MalformedURLException e) {
+ url =
+ new URL(null, "jbpm://" + deploymentId + "/" + name, new BytesUrlStreamHandler(bytes));
+ }
+ catch (MalformedURLException e) {
throw new JbpmException("couldn't create url", e);
}
}
@@ -62,63 +62,74 @@
}
protected DeploymentImpl getDeployment() {
- RepositorySession repositorySession = EnvironmentImpl.getFromCurrent(RepositorySession.class);
+ RepositorySession repositorySession =
+ EnvironmentImpl.getFromCurrent(RepositorySession.class);
return repositorySession.getDeployment(deploymentId);
}
-
- public static class BytesUrlStreamHandler extends URLStreamHandler {
- InputStream inputStream;
- public BytesUrlStreamHandler(InputStream inputStream) {
- this.inputStream = inputStream;
+
+ private static class BytesUrlStreamHandler extends URLStreamHandler {
+
+ private final byte[] bytes;
+
+ public BytesUrlStreamHandler(byte[] bytes) {
+ this.bytes = bytes;
}
+
+ @Override
protected URLConnection openConnection(URL u) throws IOException {
- return new BytesUrlConnection(inputStream, u);
+ return new BytesUrlConnection(bytes, u);
}
}
- public static class BytesUrlConnection extends URLConnection {
- InputStream inputStream;
- public BytesUrlConnection(InputStream inputStream, URL url) {
+ private static class BytesUrlConnection extends URLConnection {
+
+ private final byte[] bytes;
+
+ public BytesUrlConnection(byte[] bytes, URL url) {
super(url);
- this.inputStream = inputStream;
+ this.bytes = bytes;
}
+
+ @Override
public void connect() throws IOException {
}
+
+ @Override
public InputStream getInputStream() throws IOException {
- return inputStream;
+ return new ByteArrayInputStream(bytes);
}
}
- public Class findClass(String name) throws ClassNotFoundException {
- Class clazz = null;
+ @Override
+ public Class<?> findClass(String name) throws ClassNotFoundException {
+ // find class bytecode
+ String fileName = name.replace('.', '/') + ".class";
+ byte[] bytecode = getDeployment().getBytes(fileName);
+ if (bytecode == null) {
+ throw new ClassNotFoundException(name);
+ }
- String fileName = name.replace( '.', '/' ) + ".class";
- byte[] bytes = getDeployment().getBytes(fileName);
- if (bytes!=null) {
- try {
- InputStream inputStream = new ByteArrayInputStream(bytes);
- byte[] classBytes = IoUtil.readBytes(inputStream);
- clazz = defineClass(name, classBytes, 0, classBytes.length);
+ // define class
+ Class<?> clazz = defineClass(name, bytecode, 0, bytecode.length);
- // Add the package information
- final int packageIndex = name.lastIndexOf('.');
- if (packageIndex != -1) {
- final String packageName = name.substring(0, packageIndex);
- final Package classPackage = getPackage(packageName);
- if (classPackage == null) {
- definePackage(packageName, null, null, null, null, null, null, null);
- }
+ // define package, if not defined already
+ int packageIndex = name.lastIndexOf('.');
+ if (packageIndex != -1) {
+ String packageName = name.substring(0, packageIndex);
+ Package classPackage = getPackage(packageName);
+ if (classPackage == null) {
+ Package myPackage = getClass().getPackage();
+ if (myPackage != null) {
+ definePackage(packageName, myPackage.getSpecificationTitle(),
+ myPackage.getSpecificationVersion(), myPackage.getSpecificationVendor(),
+ myPackage.getImplementationTitle(), myPackage.getImplementationVersion(),
+ myPackage.getImplementationVendor(), null);
}
-
- } catch (JbpmException e) {
- clazz = null;
+ else {
+ definePackage(packageName, null, null, null, null, null, null, null);
+ }
}
}
-
- if (clazz==null) {
- throw new ClassNotFoundException("class '"+name+"' could not be found in deployment "+deploymentId);
- }
-
return clazz;
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java 2010-05-12 09:52:59 UTC (rev 6331)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java 2010-05-12 10:54:01 UTC (rev 6332)
@@ -25,7 +25,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectStreamException;
-import java.io.Serializable;
import java.net.URL;
import java.util.Collections;
import java.util.HashMap;
@@ -53,19 +52,18 @@
import org.jbpm.pvm.internal.util.IoUtil;
import org.jbpm.pvm.internal.xml.ProblemList;
-
/**
* @author Tom Baeyens
*/
-public class DeploymentImpl extends ProblemList implements NewDeployment, Serializable {
-
+public class DeploymentImpl extends ProblemList implements NewDeployment {
+
private static final long serialVersionUID = 1L;
public static final String KEY_PROCESS_LANGUAGE_ID = "langid";
public static final String KEY_PROCESS_DEFINITION_ID = "pdid";
public static final String KEY_PROCESS_DEFINITION_KEY = "pdkey";
public static final String KEY_PROCESS_DEFINITION_VERSION = "pdversion";
-
+
protected long dbid;
protected String name;
protected long timestamp;
@@ -82,15 +80,16 @@
public DeploymentImpl(CommandService commandService) {
this.commandService = commandService;
}
-
+
+ @Override
public String toString() {
- return "deployment("+dbid+")";
+ return "deployment(" + dbid + ")";
}
-
+
public String deploy() {
return commandService.execute(new DeployCmd(this));
}
-
+
public NewDeployment addResourceFromClasspath(String resourceName) {
addResourceFromStreamInput(resourceName, new ResourceStreamInput(resourceName));
return this;
@@ -100,19 +99,20 @@
addResourceFromStreamInput(resourceName, new StringStreamInput(text));
return this;
}
-
+
public NewDeployment addResourcesFromZipInputStream(ZipInputStream zipInputStream) {
try {
ZipEntry zipEntry = zipInputStream.getNextEntry();
- while(zipEntry!=null) {
+ while (zipEntry != null) {
String entryName = zipEntry.getName();
byte[] bytes = IoUtil.readBytes(zipInputStream);
- if (bytes!=null) {
+ if (bytes != null) {
addResourceFromStreamInput(entryName, new ByteArrayStreamInput(bytes));
}
zipEntry = zipInputStream.getNextEntry();
}
- } catch (Exception e) {
+ }
+ catch (IOException e) {
throw new JbpmException("couldn't read zip archive", e);
}
return this;
@@ -134,7 +134,7 @@
}
public NewDeployment addResourceFromStreamInput(String name, StreamInput streamInput) {
- if (resources==null) {
+ if (resources == null) {
resources = new HashMap<String, Lob>();
}
byte[] bytes = null;
@@ -142,43 +142,43 @@
InputStream inputStream = streamInput.openStream();
bytes = IoUtil.readBytes(inputStream);
inputStream.close();
- } catch (IOException e) {
- throw new JbpmException("couldn't read from "+streamInput, e);
}
-
- // Since this method is probably called outside an environment block, we
+ catch (IOException e) {
+ throw new JbpmException("couldn't read from " + name, e);
+ }
+
+ // Since this method is probably called outside an environment block, we
// need to generate the dbid of the Lob later (during the actual deployment).
- Lob lob = new Lob(bytes, false);
+ Lob lob = new Lob(bytes, false);
resources.put(name, lob);
-
+
return this;
}
public Set<String> getResourceNames() {
- if (resources==null) {
+ if (resources == null) {
return Collections.emptySet();
}
return resources.keySet();
}
-
+
/**
- * This method should be called before saving the deployment. It will assign a
- * generated dbid to the resource Lobs.
+ * This method should be called before saving the deployment. It will assign a generated dbid
+ * to the resource Lobs.
*
- * Note: when using a database, this method must be called within an
- * environment block!
+ * Note: when using a database, this method must be called within an environment block!
*/
public void initResourceLobDbids() {
for (Lob resource : resources.values()) {
long resourceDbid = DbidGenerator.getDbidGenerator().getNextId();
- resource.setDbid(resourceDbid);
+ resource.setDbid(resourceDbid);
}
}
-
+
public byte[] getBytes(String resourceName) {
- if (resources!=null) {
+ if (resources != null) {
Lob lob = resources.get(resourceName);
- if (lob!=null) {
+ if (lob != null) {
return lob.extractBytes();
}
}
@@ -186,18 +186,18 @@
}
public void addObject(String objectName, Object object) {
- if (objects==null) {
+ if (objects == null) {
objects = new HashMap<String, Object>();
}
objects.put(objectName, object);
}
-
+
// object properties ////////////////////////////////////////////////////////
-
+
public void setProcessDefinitionId(String processDefinitionName, String processDefinitionId) {
setObjectProperty(processDefinitionName, KEY_PROCESS_DEFINITION_ID, processDefinitionId);
}
-
+
public String getProcessDefinitionId(String processDefinitionName) {
return (String) getObjectProperty(processDefinitionName, KEY_PROCESS_DEFINITION_ID);
}
@@ -210,14 +210,15 @@
return (String) getObjectProperty(processDefinitionName, KEY_PROCESS_DEFINITION_KEY);
}
- public void setProcessDefinitionVersion(String processDefinitionName, Long processDefinitionVersion) {
+ public void setProcessDefinitionVersion(String processDefinitionName,
+ Long processDefinitionVersion) {
setObjectProperty(processDefinitionName, KEY_PROCESS_DEFINITION_VERSION, processDefinitionVersion);
}
-
+
public Long getProcessDefinitionVersion(String processDefinitionName) {
return (Long) getObjectProperty(processDefinitionName, KEY_PROCESS_DEFINITION_VERSION);
}
-
+
public String getProcessLanguageId(String processDefinitionName) {
return (String) getObjectProperty(processDefinitionName, KEY_PROCESS_LANGUAGE_ID);
}
@@ -227,7 +228,7 @@
}
public void setObjectProperty(String objectName, String key, Object value) {
- if (objectProperties==null) {
+ if (objectProperties == null) {
objectProperties = new HashSet<DeploymentProperty>();
}
DeploymentProperty deploymentProperty = new DeploymentProperty(this, objectName, key);
@@ -239,7 +240,7 @@
if (objectProperties != null) {
for (DeploymentProperty deploymentProperty : objectProperties) {
if (deploymentProperty.getObjectName().equals(objectName)
- && deploymentProperty.getKey().equals(key)) {
+ && deploymentProperty.getKey().equals(key)) {
Object value = deploymentProperty.getValue();
objectProperties.remove(deploymentProperty);
return value;
@@ -250,11 +251,10 @@
}
public Object getObjectProperty(String objectName, String key) {
- if (objectProperties!=null) {
- for (DeploymentProperty deploymentProperty: objectProperties) {
- if ( (deploymentProperty.getObjectName().equals(objectName))
- && (deploymentProperty.getKey().equals(key))
- ) {
+ if (objectProperties != null) {
+ for (DeploymentProperty deploymentProperty : objectProperties) {
+ if (deploymentProperty.getObjectName().equals(objectName)
+ && deploymentProperty.getKey().equals(key)) {
return deploymentProperty.getValue();
}
}
@@ -264,8 +264,8 @@
public Set<String> getProcessDefinitionIds() {
Set<String> processDefinitionIds = new HashSet<String>();
- if (objectProperties!=null) {
- for (DeploymentProperty deploymentProperty: objectProperties) {
+ if (objectProperties != null) {
+ for (DeploymentProperty deploymentProperty : objectProperties) {
if (KEY_PROCESS_DEFINITION_ID.equals(deploymentProperty.getKey())) {
String processDefinitionId = deploymentProperty.getStringValue();
processDefinitionIds.add(processDefinitionId);
@@ -276,26 +276,26 @@
}
public boolean hasObjectProperties(String objectName) {
- if (objectProperties!=null) {
- for (DeploymentProperty deploymentProperty: objectProperties) {
- if ( deploymentProperty.getObjectName().equals(objectName)
- && KEY_PROCESS_DEFINITION_ID.equals(deploymentProperty.getKey())
- ) {
+ if (objectProperties != null) {
+ for (DeploymentProperty deploymentProperty : objectProperties) {
+ if (deploymentProperty.getObjectName().equals(objectName)
+ && KEY_PROCESS_DEFINITION_ID.equals(deploymentProperty.getKey())) {
return true;
}
}
}
return false;
}
-
+
public void suspend() {
if (isSuspended()) {
throw new JbpmException("deployment is already suspended");
}
-
+
state = Deployment.STATE_SUSPENDED;
- RepositorySessionImpl repositorySession = EnvironmentImpl.getFromCurrent(RepositorySessionImpl.class);
+ RepositorySessionImpl repositorySession = EnvironmentImpl
+ .getFromCurrent(RepositorySessionImpl.class);
repositorySession.cascadeDeploymentSuspend(this);
RepositoryCache repositoryCache = EnvironmentImpl.getFromCurrent(RepositoryCache.class);
@@ -306,18 +306,19 @@
if (!isSuspended()) {
throw new JbpmException("deployment is not suspended");
}
-
+
state = Deployment.STATE_ACTIVE;
-
- RepositorySessionImpl repositorySession = EnvironmentImpl.getFromCurrent(RepositorySessionImpl.class);
+
+ RepositorySessionImpl repositorySession = EnvironmentImpl
+ .getFromCurrent(RepositorySessionImpl.class);
repositorySession.cascadeDeploymentResume(this);
-
+
RepositoryCache repositoryCache = EnvironmentImpl.getFromCurrent(RepositoryCache.class);
repositoryCache.remove(Long.toString(dbid));
}
-
+
public boolean isSuspended() {
- return Deployment.STATE_SUSPENDED.equals(state);
+ return Deployment.STATE_SUSPENDED.equals(state);
}
protected Object writeReplace() throws ObjectStreamException {
@@ -326,11 +327,11 @@
}
// customized getters and setters ///////////////////////////////////////////
-
+
public String getId() {
return Long.toString(dbid);
}
-
+
// getters and setters //////////////////////////////////////////////////////
public long getDbid() {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentObjectInputStream.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentObjectInputStream.java 2010-05-12 09:52:59 UTC (rev 6331)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentObjectInputStream.java 2010-05-12 10:54:01 UTC (rev 6332)
@@ -30,30 +30,30 @@
* Helper class responsible for providing classes while deserializing variables.
*
* @author Maciej Swiderski swiderski.maciej(a)gmail.com
- *
*/
public class DeploymentObjectInputStream extends ObjectInputStream {
- private String deploymentId;
-
- public DeploymentObjectInputStream(InputStream stream, String deploymentId) throws IOException {
+ private final String deploymentId;
+
+ public DeploymentObjectInputStream(InputStream stream, String deploymentId)
+ throws IOException {
super(stream);
this.deploymentId = deploymentId;
}
@Override
- protected Class< ? > resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
-
+ protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException,
+ ClassNotFoundException {
+ ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
- Class< ? > clazz = Class.forName(desc.getName(), true, Thread.currentThread().getContextClassLoader());
- return clazz;
- } catch (ClassNotFoundException e) {
- //trying to get it from deployment
- DeploymentClassLoader cl = new DeploymentClassLoader(Thread.currentThread().getContextClassLoader(), deploymentId);
- return Class.forName(desc.getName(), true, cl);
+ return Class.forName(desc.getName(), false, contextClassLoader);
}
+ catch (ClassNotFoundException e) {
+ // trying to get it from deployment
+ ClassLoader deploymentClassLoader =
+ new DeploymentClassLoader(contextClassLoader, deploymentId);
+ return Class.forName(desc.getName(), false, deploymentClassLoader);
+ }
}
-
-
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java 2010-05-12 09:52:59 UTC (rev 6331)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/IoUtil.java 2010-05-12 10:54:01 UTC (rev 6332)
@@ -26,41 +26,32 @@
import java.io.InputStream;
import java.io.OutputStream;
-import org.jbpm.api.JbpmException;
+public class IoUtil {
-public abstract class IoUtil {
-
public static final int BUFFERSIZE = 4096;
- public static byte[] readBytes(InputStream inputStream) {
- byte[] bytes = null;
- if (inputStream==null) {
- throw new JbpmException("inputStream is null");
- }
+ private IoUtil() {
+ // prevent instantiation
+ }
+
+ public static byte[] readBytes(InputStream inputStream) throws IOException {
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
transfer(inputStream, outputStream);
- bytes = outputStream.toByteArray();
- outputStream.close();
- return bytes;
- } catch (IOException e) {
- throw new JbpmException("couldn't read bytes from inputStream", e);
}
+ finally {
+ inputStream.close();
+ }
+ return outputStream.toByteArray();
}
-
- public static int transfer(InputStream in, OutputStream out) {
- int total = 0;
+
+ public static long transfer(InputStream in, OutputStream out) throws IOException {
+ long total = 0;
byte[] buffer = new byte[BUFFERSIZE];
- try {
- int bytesRead = in.read( buffer );
- while ( bytesRead != -1 ) {
- out.write( buffer, 0, bytesRead );
- total += bytesRead;
- bytesRead = in.read( buffer );
- }
- return total;
- } catch (IOException e) {
- throw new JbpmException("couldn't write bytes to output stream", e);
+ for (int count; (count = in.read(buffer)) != -1;) {
+ out.write(buffer, 0, count);
+ total += count;
}
+ return total;
}
}
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java 2010-05-12 09:52:59 UTC (rev 6331)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java 2010-05-12 10:54:01 UTC (rev 6332)
@@ -21,6 +21,7 @@
*/
package org.jbpm.test.deploy;
+import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
@@ -28,35 +29,37 @@
import org.jbpm.pvm.internal.util.IoUtil;
import org.jbpm.test.JbpmTestCase;
-
/**
* @author Tom Baeyens
*/
public class ImageTest extends JbpmTestCase {
- public void testImage() {
+ public void testImage() throws IOException {
String deploymentId = repositoryService
- .createDeployment()
- .addResourceFromClasspath("org/jbpm/test/deploy/ImageTest.jpdl.xml")
- .addResourceFromClasspath("org/jbpm/test/deploy/ImageTest.png")
- .deploy();
-
+ .createDeployment()
+ .addResourceFromClasspath("org/jbpm/test/deploy/ImageTest.jpdl.xml")
+ .addResourceFromClasspath("org/jbpm/test/deploy/ImageTest.png")
+ .deploy();
+
ProcessDefinition processDefinition = repositoryService
- .createProcessDefinitionQuery()
- .processDefinitionKey("ImageTest")
- .uniqueResult();
-
+ .createProcessDefinitionQuery()
+ .processDefinitionKey("ImageTest")
+ .uniqueResult();
+
String imageResourceName = processDefinition.getImageResourceName();
assertEquals("org/jbpm/test/deploy/ImageTest.png", imageResourceName);
-
- InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), imageResourceName);
+
+ InputStream inputStream = repositoryService.getResourceAsStream(processDefinition
+ .getDeploymentId(), imageResourceName);
byte[] imageBytes = IoUtil.readBytes(inputStream);
-
- inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("org/jbpm/test/deploy/ImageTest.png");
+
+ inputStream = Thread
+ .currentThread()
+ .getContextClassLoader()
+ .getResourceAsStream("org/jbpm/test/deploy/ImageTest.png");
byte[] expectedImageBytes = IoUtil.readBytes(inputStream);
-
assertTrue(Arrays.equals(expectedImageBytes, imageBytes));
-
+
repositoryService.deleteDeploymentCascade(deploymentId);
}
}
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java 2010-05-12 09:52:59 UTC (rev 6331)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionStartFormTest.java 2010-05-12 10:54:01 UTC (rev 6332)
@@ -21,6 +21,7 @@
*/
package org.jbpm.test.process;
+import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@@ -29,82 +30,70 @@
import org.jbpm.pvm.internal.util.IoUtil;
import org.jbpm.test.JbpmTestCase;
-
/**
* @author Tom Baeyens
*/
public class ProcessDefinitionStartFormTest extends JbpmTestCase {
-
- public void testFormInUnnamedStartActivity() {
- String deploymentDbid =
- repositoryService.createDeployment()
- .addResourceFromString("xmlstring.jpdl.xml",
- "<process name='make print'>" +
- " <start form='org/jbpm/test/process/ProcessDefinitionStartForm.form' />" +
- "</process>"
- )
- .addResourceFromClasspath("org/jbpm/test/process/ProcessDefinitionStartForm.form")
- .deploy();
+ public void testFormInUnnamedStartActivity() throws IOException {
+ String deploymentDbid = repositoryService
+ .createDeployment()
+ .addResourceFromString("xmlstring.jpdl.xml", "<process name='make print'>"
+ + " <start form='org/jbpm/test/process/ProcessDefinitionStartForm.form' />"
+ + "</process>")
+ .addResourceFromClasspath("org/jbpm/test/process/ProcessDefinitionStartForm.form")
+ .deploy();
registerDeployment(deploymentDbid);
- ProcessDefinition processDefinition =
- repositoryService
- .createProcessDefinitionQuery()
- .processDefinitionName("make print")
- .uniqueResult();
-
+ ProcessDefinition processDefinition = repositoryService
+ .createProcessDefinitionQuery()
+ .processDefinitionName("make print")
+ .uniqueResult();
String processDefinitionId = processDefinition.getId();
-
- List<String> startActivityNames = repositoryService.getStartActivityNames(processDefinitionId );
+
+ List<String> startActivityNames = repositoryService
+ .getStartActivityNames(processDefinitionId);
List<String> expectedStartActivityNames = new ArrayList<String>();
expectedStartActivityNames.add(null);
-
assertEquals(expectedStartActivityNames, startActivityNames);
- String startFormResourceName = repositoryService.getStartFormResourceName(processDefinitionId, null);
-
+ String startFormResourceName = repositoryService
+ .getStartFormResourceName(processDefinitionId, null);
assertEquals("org/jbpm/test/process/ProcessDefinitionStartForm.form", startFormResourceName);
-
- InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), startFormResourceName);
-
- String formContents = new String(IoUtil.readBytes(formInputStream));
- assertEquals("start task form", formContents);
+
+ InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition
+ .getDeploymentId(), startFormResourceName);
+ assertEquals("start task form", new String(IoUtil.readBytes(formInputStream)));
}
- public void testFormInNamedStartActivity() {
- String deploymentDbid =
- repositoryService.createDeployment()
- .addResourceFromString("xmlstring.jpdl.xml",
- "<process name='make print'>" +
- " <start name='start' form='org/jbpm/test/process/ProcessDefinitionStartForm.form' />" +
- "</process>"
- )
- .addResourceFromClasspath("org/jbpm/test/process/ProcessDefinitionStartForm.form")
- .deploy();
-
+ public void testFormInNamedStartActivity() throws IOException {
+ String deploymentDbid = repositoryService
+ .createDeployment()
+ .addResourceFromString("xmlstring.jpdl.xml", "<process name='make print'>"
+ + " <start name='start' form='org/jbpm/test/process/ProcessDefinitionStartForm.form' />"
+ + "</process>")
+ .addResourceFromClasspath("org/jbpm/test/process/ProcessDefinitionStartForm.form")
+ .deploy();
registerDeployment(deploymentDbid);
- ProcessDefinition processDefinition =
- repositoryService
- .createProcessDefinitionQuery()
- .processDefinitionName("make print")
- .uniqueResult();
-
+ ProcessDefinition processDefinition = repositoryService
+ .createProcessDefinitionQuery()
+ .processDefinitionName("make print")
+ .uniqueResult();
String processDefinitionId = processDefinition.getId();
-
- List<String> startActivityNames = repositoryService.getStartActivityNames(processDefinitionId );
+
+ List<String> startActivityNames = repositoryService
+ .getStartActivityNames(processDefinitionId);
List<String> expectedStartActivityNames = new ArrayList<String>();
expectedStartActivityNames.add("start");
-
assertEquals(expectedStartActivityNames, startActivityNames);
- String startFormResourceName = repositoryService.getStartFormResourceName(processDefinitionId, "start");
-
+ String startFormResourceName = repositoryService
+ .getStartFormResourceName(processDefinitionId, "start");
assertEquals("org/jbpm/test/process/ProcessDefinitionStartForm.form", startFormResourceName);
-
- InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), startFormResourceName);
-
+
+ InputStream formInputStream = repositoryService.getResourceAsStream(processDefinition
+ .getDeploymentId(), startFormResourceName);
String formContents = new String(IoUtil.readBytes(formInputStream));
assertEquals("start task form", formContents);
}
Modified: jbpm4/trunk/qa/jdbc/mysql.properties
===================================================================
--- jbpm4/trunk/qa/jdbc/mysql.properties 2010-05-12 09:52:59 UTC (rev 6331)
+++ jbpm4/trunk/qa/jdbc/mysql.properties 2010-05-12 10:54:01 UTC (rev 6332)
@@ -1,4 +1,4 @@
jdbc.driver=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://dev02.qa.atl.jboss.com:3306/pvm1
+jdbc.url=jdbc:mysql://vmg02.mw.lab.eng.bos.redhat.com:3306/pvm1
jdbc.username=pvm1
jdbc.password=pvm1
15 years, 11 months
JBoss JBPM SVN: r6331 - projects/parent/trunk.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-12 05:52:59 -0400 (Wed, 12 May 2010)
New Revision: 6331
Modified:
projects/parent/trunk/pom.xml
Log:
move taglib plugin from jbpm-parent to jsf-console-parent
Modified: projects/parent/trunk/pom.xml
===================================================================
--- projects/parent/trunk/pom.xml 2010-05-12 09:52:24 UTC (rev 6330)
+++ projects/parent/trunk/pom.xml 2010-05-12 09:52:59 UTC (rev 6331)
@@ -7,7 +7,7 @@
<groupId>org.jbpm</groupId>
<artifactId>jbpm-parent</artifactId>
<packaging>pom</packaging>
- <version>1.0.3</version>
+ <version>1.0.4-SNAPSHOT</version>
<!-- Organization -->
<organization>
@@ -32,7 +32,7 @@
<!-- Continuous Integration Management -->
<ciManagement>
<system>hudson</system>
- <url>http://hudson.jboss.org/hudson</url>
+ <url>http://hudson.jboss.org/hudson/view/jBPM</url>
</ciManagement>
<!-- Licenses -->
@@ -89,12 +89,6 @@
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0-beta-4</version>
</plugin>
-
- <plugin>
- <groupId>net.sourceforge.maven-taglib</groupId>
- <artifactId>maven-taglib-plugin</artifactId>
- <version>2.4</version>
- </plugin>
</plugins>
</pluginManagement>
</build>
15 years, 11 months
JBoss JBPM SVN: r6330 - in jbpm3/branches/jbpm-3.2-soa/modules: enterprise/src/main/java/org/jbpm/scheduler/ejbtimer and 1 other directory.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-12 05:52:24 -0400 (Wed, 12 May 2010)
New Revision: 6330
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java
jbpm3/branches/jbpm-3.2-soa/modules/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerServiceFactory.java
Log:
remove unused imports, fix format
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java 2010-05-12 09:43:32 UTC (rev 6329)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java 2010-05-12 09:52:24 UTC (rev 6330)
@@ -157,16 +157,13 @@
}
public void reorderExceptionHandler(int oldIndex, int newIndex) {
- if (exceptionHandlers != null
- && Math.min(oldIndex, newIndex) >= 0
+ if (exceptionHandlers != null && Math.min(oldIndex, newIndex) >= 0
&& Math.max(oldIndex, newIndex) < exceptionHandlers.size()) {
Object o = exceptionHandlers.remove(oldIndex);
exceptionHandlers.add(newIndex, o);
}
else {
- throw new IndexOutOfBoundsException("could not move element from "
- + oldIndex
- + " to "
+ throw new IndexOutOfBoundsException("could not move element from " + oldIndex + " to "
+ newIndex);
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerServiceFactory.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerServiceFactory.java 2010-05-12 09:43:32 UTC (rev 6329)
+++ jbpm3/branches/jbpm-3.2-soa/modules/enterprise/src/main/java/org/jbpm/scheduler/ejbtimer/EntitySchedulerServiceFactory.java 2010-05-12 09:52:24 UTC (rev 6330)
@@ -1,10 +1,5 @@
package org.jbpm.scheduler.ejbtimer;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-import org.jbpm.JbpmException;
import org.jbpm.ejb.LocalTimerEntityHome;
import org.jbpm.job.Timer;
import org.jbpm.svc.Service;
15 years, 11 months
JBoss JBPM SVN: r6329 - in jbpm3/branches/jbpm-3.2-soa/modules/core/src: main/java/org/jbpm/graph/node and 4 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-12 05:43:32 -0400 (Wed, 12 May 2010)
New Revision: 6329
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/DelegationException.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Node.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Decision.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/CheckUnpersistableVariablesOperation.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/exe/DecisionHandlerTest.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/SchedulerTest.java
Log:
JBPM-1162: ensure decision node selects default transition after decision handler throws exception
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/DelegationException.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/DelegationException.java 2010-05-12 04:10:11 UTC (rev 6328)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/DelegationException.java 2010-05-12 09:43:32 UTC (rev 6329)
@@ -28,17 +28,20 @@
private static final long serialVersionUID = 1L;
+ /** @deprecated this execution context may not be in a consistent state */
protected transient ExecutionContext executionContext;
public DelegationException(String message, Throwable cause) {
super(message, cause);
}
+ /** @deprecated the given execution context may not be in a consistent state */
public DelegationException(Throwable cause, ExecutionContext executionContext) {
super(cause.getMessage(), cause);
this.executionContext = executionContext;
}
+ /** @deprecated the returned execution context may not be in a consistent state */
public ExecutionContext getExecutionContext() {
return executionContext;
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java 2010-05-12 04:10:11 UTC (rev 6328)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java 2010-05-12 09:43:32 UTC (rev 6329)
@@ -157,13 +157,16 @@
}
public void reorderExceptionHandler(int oldIndex, int newIndex) {
- if (exceptionHandlers != null && Math.min(oldIndex, newIndex) >= 0
+ if (exceptionHandlers != null
+ && Math.min(oldIndex, newIndex) >= 0
&& Math.max(oldIndex, newIndex) < exceptionHandlers.size()) {
Object o = exceptionHandlers.remove(oldIndex);
exceptionHandlers.add(newIndex, o);
}
else {
- throw new IndexOutOfBoundsException("could not move element from " + oldIndex + " to "
+ throw new IndexOutOfBoundsException("could not move element from "
+ + oldIndex
+ + " to "
+ newIndex);
}
}
@@ -324,14 +327,14 @@
}
/**
- * throws an ActionException if no applicable exception handler is found. An ExceptionHandler
- * is searched for in this graph element and then recursively up the parent hierarchy. If an
- * exception handler is found, it is applied. If the exception handler does not throw an
- * exception, the exception is considered handled. Otherwise the search for an applicable
- * exception handler continues where it left of with the newly thrown exception.
+ * looks for an {@linkplain ExceptionHandler exception handler} in this graph element and then
+ * recursively up the parent hierarchy. If an exception handler is found, it is applied. If
+ * the exception handler does not rethrow, the exception is considered handled. Otherwise the
+ * rethrown exception is propagated up the parent hierarchy.
+ *
+ * @throws DelegationException if no applicable exception handler is found
*/
- public void raiseException(Throwable exception, ExecutionContext executionContext)
- throws DelegationException {
+ public void raiseException(Throwable exception, ExecutionContext executionContext) {
if (isAbleToHandleExceptions(executionContext)) {
try {
ExceptionHandler exceptionHandler = findExceptionHandler(exception);
@@ -358,7 +361,7 @@
// if exception was not handled, throw delegation exception to client
throw exception instanceof JbpmException ? (JbpmException) exception
- : new DelegationException(exception, executionContext);
+ : new DelegationException("no applicable exception handler found", exception);
}
/**
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Node.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Node.java 2010-05-12 04:10:11 UTC (rev 6328)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Node.java 2010-05-12 09:43:32 UTC (rev 6329)
@@ -272,14 +272,14 @@
* is the default leaving transition.
*/
public Transition getDefaultLeavingTransition() {
- if (leavingTransitions != null) {
+ if (leavingTransitions != null && !leavingTransitions.isEmpty()) {
// select the first unconditional transition
for (Iterator i = leavingTransitions.iterator(); i.hasNext();) {
Transition transition = (Transition) i.next();
if (transition.getCondition() == null) return transition;
}
// there is no unconditional transition, just pick the first one
- if (!leavingTransitions.isEmpty()) return (Transition) leavingTransitions.get(0);
+ return (Transition) leavingTransitions.get(0);
}
else if (superState != null) {
return superState.getDefaultLeavingTransition();
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Decision.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Decision.java 2010-05-12 04:10:11 UTC (rev 6328)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Decision.java 2010-05-12 09:43:32 UTC (rev 6329)
@@ -91,19 +91,11 @@
Transition transition = null;
if (decisionDelegation != null) {
- DecisionHandler decisionHandler = (DecisionHandler) decisionDelegation.getInstance();
- try {
- String transitionName = decisionHandler.decide(executionContext);
- transition = getLeavingTransition(transitionName);
- if (transition == null) {
- throw new JbpmException("no such transition: " + transitionName);
- }
- }
- catch (Exception e) {
- raiseException(e, executionContext);
- }
+ // call decision handler
+ transition = handleDecision(executionContext);
}
else if (decisionExpression != null) {
+ // evaluate expression
String transitionName = (String) JbpmExpressionEvaluator
.evaluate(decisionExpression, executionContext, String.class);
transition = getLeavingTransition(transitionName);
@@ -165,6 +157,26 @@
}
}
+ private Transition handleDecision(ExecutionContext executionContext) {
+ // invoke handler to obtain transition name
+ DecisionHandler decisionHandler = (DecisionHandler) decisionDelegation.getInstance();
+ String transitionName;
+ try {
+ transitionName = decisionHandler.decide(executionContext);
+ }
+ catch (Exception e) {
+ raiseException(e, executionContext);
+ return null;
+ }
+
+ // resolve transition from name
+ Transition transition = getLeavingTransition(transitionName);
+ if (transition == null) {
+ throw new JbpmException("no such transition: " + transitionName);
+ }
+ return transition;
+ }
+
public List getDecisionConditions() {
return decisionConditions;
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/CheckUnpersistableVariablesOperation.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/CheckUnpersistableVariablesOperation.java 2010-05-12 04:10:11 UTC (rev 6328)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/CheckUnpersistableVariablesOperation.java 2010-05-12 09:43:32 UTC (rev 6329)
@@ -37,31 +37,20 @@
private static final long serialVersionUID = 1L;
public void save(ProcessInstance processInstance, JbpmContext jbpmContext) {
- Collection updatedVariableContainers = VariableContainer.getUpdatedVariableContainers(processInstance);
- if (updatedVariableContainers!=null) {
-
- // loop over all updated variable containers
- Iterator iter = updatedVariableContainers.iterator();
- while (iter.hasNext()) {
- VariableContainer variableContainer = (VariableContainer) iter.next();
+ Collection variableContainers = processInstance.getContextInstance()
+ .getUpdatedVariableContainers();
+ // iterate over variable containers
+ if (variableContainers != null) {
+ for (Iterator containerIter = variableContainers.iterator(); containerIter.hasNext();) {
+ VariableContainer variableContainer = (VariableContainer) containerIter.next();
Map variableInstances = variableContainer.getVariableInstances();
- if (variableInstances!=null) {
-
- // loop over all variable instances in the container
- Iterator varInstancesIter = variableInstances.entrySet().iterator();
- while (varInstancesIter.hasNext()) {
- Map.Entry entry = (Map.Entry) varInstancesIter.next();
- String name = (String) entry.getKey();
- VariableInstance variableInstance = (VariableInstance) entry.getValue();
-
- // if the variable is of the unpersistable type... booom!
+ // iterate over variable instances
+ if (variableInstances != null) {
+ for (Iterator instanceIter = variableInstances.values().iterator(); instanceIter.hasNext();) {
+ VariableInstance variableInstance = (VariableInstance) instanceIter.next();
+ // if the variable cannot be persisted... boom!
if (variableInstance instanceof UnpersistableInstance) {
- Object value = variableInstance.getValue();
- if (value!=null) {
- throw new JbpmException("variable '"+name+"' in '"+variableContainer+"' contains '"+value+"': type '"+value.getClass().getName()+"' is unpersistable according to the jbpm.varmapping.xml configuration");
- } else {
- throw new JbpmException("variable '"+name+"' in '"+variableContainer+"' was created with a non persistable value");
- }
+ throw new JbpmException(variableInstance + " cannot be persisted");
}
}
}
@@ -69,5 +58,4 @@
}
}
- // private static Log log = LogFactory.getLog(CheckUnpersistableVariablesOperation.class);
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java 2010-05-12 04:10:11 UTC (rev 6328)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/taskmgmt/exe/TaskMgmtInstance.java 2010-05-12 09:43:32 UTC (rev 6329)
@@ -230,17 +230,7 @@
public void performAssignment(Delegation assignmentDelegation, String actorIdExpression,
String pooledActorsExpression, Assignable assignable, ExecutionContext executionContext) {
if (assignmentDelegation != null) {
- try {
- performAssignmentDelegation(assignmentDelegation, assignable, executionContext);
- }
- catch (Exception e) {
- GraphElement graphElement = executionContext.getEventSource();
- if (graphElement == null) {
- throw e instanceof JbpmException ? (JbpmException) e
- : new DelegationException(e, executionContext);
- }
- graphElement.raiseException(e, executionContext);
- }
+ performAssignmentDelegation(assignmentDelegation, assignable, executionContext);
}
else {
if (actorIdExpression != null) {
@@ -253,8 +243,8 @@
}
private void performAssignmentDelegation(Delegation assignmentDelegation,
- Assignable assignable, ExecutionContext executionContext) throws Exception {
- ClassLoader surroundingClassLoader = Thread.currentThread().getContextClassLoader();
+ Assignable assignable, ExecutionContext executionContext) {
+ ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
// set context class loader correctly for delegation class
// https://jira.jboss.org/jira/browse/JBPM-1448
@@ -268,15 +258,25 @@
// invoke the assignment handler
UserCodeInterceptor userCodeInterceptor = UserCodeInterceptorConfig
.getUserCodeInterceptor();
- if (userCodeInterceptor != null) {
- userCodeInterceptor.executeAssignment(assignmentHandler, assignable, executionContext);
+ try {
+ if (userCodeInterceptor != null) {
+ userCodeInterceptor.executeAssignment(assignmentHandler, assignable, executionContext);
+ }
+ else {
+ assignmentHandler.assign(assignable, executionContext);
+ }
}
- else {
- assignmentHandler.assign(assignable, executionContext);
+ catch (Exception e) {
+ GraphElement eventSource = executionContext.getEventSource();
+ if (eventSource == null) {
+ throw e instanceof JbpmException ? (JbpmException) e
+ : new DelegationException("event source is null", e);
+ }
+ eventSource.raiseException(e, executionContext);
}
}
finally {
- Thread.currentThread().setContextClassLoader(surroundingClassLoader);
+ Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/exe/DecisionHandlerTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/exe/DecisionHandlerTest.java 2010-05-12 04:10:11 UTC (rev 6328)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jpdl/exe/DecisionHandlerTest.java 2010-05-12 09:43:32 UTC (rev 6329)
@@ -22,6 +22,7 @@
package org.jbpm.jpdl.exe;
import org.jbpm.AbstractJbpmTestCase;
+import org.jbpm.JbpmException;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.ProcessInstance;
@@ -33,51 +34,76 @@
private static final long serialVersionUID = 1L;
public String decide(ExecutionContext executionContext) {
- int budget = ((Number)executionContext.getContextInstance().getVariable("budget")).intValue();
- if (budget>1000) return "important lead";
- else if (budget>100) return "lead";
- return "beggars";
+ Number wrapper = (Number) executionContext.getContextInstance().getVariable("budget");
+ int budget = wrapper.intValue();
+ return budget > 1000 ? "important lead" : budget == 777 ? "lucky number"
+ : budget > 100 ? "lead" : "beggars";
}
}
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <start-state>" +
- " <transition to='d' />" +
- " </start-state>" +
- " <decision name='d'>" +
- " <handler class='org.jbpm.jpdl.exe.DecisionHandlerTest$LeadEvaluator'/>" +
- " <transition name='important lead' to='harras them'/>" +
- " <transition name='lead' to='put it in the lead db'/>" +
- " <transition name='beggars' to='forget about it'/>" +
- " </decision>" +
- " <state name='harras them' />" +
- " <state name='put it in the lead db' />" +
- " <state name='forget about it' />" +
- "</process-definition>" );
-
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state>"
+ + " <transition to='d' />"
+ + " </start-state>"
+ + " <decision name='d'>"
+ + " <handler class='org.jbpm.jpdl.exe.DecisionHandlerTest$LeadEvaluator'/>"
+ + " <transition name='beggars' to='forget about it'/>"
+ + " <transition name='lead' to='put it in the lead db'/>"
+ + " <transition name='important lead' to='harass them'/>"
+ + " <exception-handler exception-class='java.lang.ClassCastException'/>"
+ + " </decision>"
+ + " <state name='harass them' />"
+ + " <state name='put it in the lead db' />"
+ + " <state name='forget about it' />"
+ + "</process-definition>");
+
public void testBudgetHignerThenThousand() {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.getContextInstance().setVariable("budget", new Integer(3500));
processInstance.signal();
-
- assertEquals(processDefinition.getNode("harras them"), processInstance.getRootToken().getNode());
+
+ assertEquals(processDefinition.getNode("harass them"), processInstance.getRootToken()
+ .getNode());
}
public void testBudgetBetweenHundredAndThousand() {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.getContextInstance().setVariable("budget", new Integer(350));
processInstance.signal();
-
- assertEquals(processDefinition.getNode("put it in the lead db"), processInstance.getRootToken().getNode());
+
+ assertEquals(processDefinition.getNode("put it in the lead db"), processInstance.getRootToken()
+ .getNode());
}
public void testSmallBudget() {
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.getContextInstance().setVariable("budget", new Integer(35));
processInstance.signal();
-
- assertEquals(processDefinition.getNode("forget about it"), processInstance.getRootToken().getNode());
+
+ assertEquals(processDefinition.getNode("forget about it"), processInstance.getRootToken()
+ .getNode());
}
+ public void testBadTransitionName() {
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.getContextInstance().setVariable("budget", new Integer(777));
+
+ try {
+ processInstance.signal();
+ fail("expected exception");
+ }
+ catch (JbpmException e) {
+ assert e.getMessage().indexOf("lucky number") != -1;
+ }
+ }
+
+ public void testHandledException() {
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.getContextInstance().setVariable("budget", "nothing");
+ processInstance.signal();
+
+ // decision node should take default transition
+ assertEquals(processDefinition.getNode("forget about it"), processInstance.getRootToken()
+ .getNode());
+ }
}
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/SchedulerTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/SchedulerTest.java 2010-05-12 04:10:11 UTC (rev 6328)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/scheduler/exe/SchedulerTest.java 2010-05-12 09:43:32 UTC (rev 6329)
@@ -689,7 +689,9 @@
processInstance.signal();
}
catch (JbpmException je) {
- assertEquals("improper format of duration '1 demo'", je.getMessage());
+ Throwable cause = je.getCause();
+ assertSame(IllegalArgumentException.class, cause.getClass());
+ assert cause.getMessage().indexOf("1 demo") != -1 : cause;
}
finally {
jbpmContext.close();
15 years, 11 months
JBoss JBPM SVN: r6328 - projects.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-12 00:10:11 -0400 (Wed, 12 May 2010)
New Revision: 6328
Removed:
projects/identity/
projects/task/
Log:
delete abandoned jbpm4 spin-offs
15 years, 11 months
JBoss JBPM SVN: r6327 - projects.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-12 00:03:43 -0400 (Wed, 12 May 2010)
New Revision: 6327
Removed:
projects/zync/
Log:
delete trivial zync project
15 years, 11 months
JBoss JBPM SVN: r6326 - projects and 1 other directory.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-12 00:00:46 -0400 (Wed, 12 May 2010)
New Revision: 6326
Added:
legacy/gwt-console/
Removed:
projects/gwt-console/
Log:
move gwt-console to legacy land
Copied: legacy/gwt-console (from rev 6325, projects/gwt-console)
15 years, 11 months
JBoss JBPM SVN: r6325 - projects and 1 other directory.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-11 23:55:55 -0400 (Tue, 11 May 2010)
New Revision: 6325
Added:
legacy/bbq/
Removed:
projects/bbq/
Log:
move bbq project to legacy land
Copied: legacy/bbq (from rev 6324, projects/bbq)
15 years, 11 months
JBoss JBPM SVN: r6324 - legacy.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-05-11 23:53:34 -0400 (Tue, 11 May 2010)
New Revision: 6324
Removed:
legacy/jbpm-spec/
Log:
remove empty jbpm-spec directory
15 years, 11 months