[jbpm-commits] JBoss JBPM SVN: r1581 - in api/trunk/modules/api/src: test/java/org/jboss/bpm/model and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Jul 10 15:41:53 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-07-10 15:41:52 -0400 (Thu, 10 Jul 2008)
New Revision: 1581

Added:
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleInFlowSupport.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleOutFlowSupport.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleInFlowSupport.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleOutFlowSupport.java
Modified:
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/EndEvent.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/StartEvent.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java
   api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java
Log:
Add ProcessBuilder

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/EndEvent.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/EndEvent.java	2008-07-10 17:55:37 UTC (rev 1580)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/EndEvent.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -112,4 +112,9 @@
       }
     };
   }
+  
+  public String toString()
+  {
+    return "EndEvent[" + getName() + "]";
+  }
 }
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java	2008-07-10 17:55:37 UTC (rev 1580)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Gateway.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -21,12 +21,10 @@
  */
 package org.jboss.bpm.model;
 
+//$Id$
+
 import javax.xml.bind.annotation.XmlType;
 
-
-
-// $Id$
-
 /**
  * Gateways are modelling elements that are used to control how Sequence Flow interact as they converge and diverge within a Process. 
  * If the flow does not need to be controlled, then a Gateway is not needed. 

Added: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleInFlowSupport.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleInFlowSupport.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleInFlowSupport.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.model;
+
+import java.util.List;
+
+//$Id$
+
+public interface MultipleInFlowSupport
+{
+  /**
+   * Get the list of in flows
+   */
+  List<Flow> getInFlows();
+  
+  /**
+   * Add an out flow
+   */
+  void addOutFlow(Flow flow);
+}


Property changes on: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleInFlowSupport.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleOutFlowSupport.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleOutFlowSupport.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleOutFlowSupport.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.model;
+
+import java.util.List;
+
+//$Id$
+
+public interface MultipleOutFlowSupport
+{
+  /**
+   * Get the list of out flows
+   */
+  List<Flow> getOutFlows();
+  
+  /**
+   * Add an out flow
+   */
+  void addOutFlow(Flow flow);
+}


Property changes on: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/MultipleOutFlowSupport.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java	2008-07-10 17:55:37 UTC (rev 1580)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Process.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -48,12 +48,12 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
- at XmlType(name = "Process", propOrder = { "startEvent", "tasks", "endEvents" })
+ at XmlType(name = "Process", propOrder = { "startEvent", "flowObjects", "endEvents" })
 @XmlRootElement(name = "process")
 public class Process extends Activity
 {
   private StartEvent startEvent;
-  private List<Task> tasks = new ArrayList<Task>();
+  private List<FlowObject> flowObjects = new ArrayList<FlowObject>();
   private List<EndEvent> endEvents = new ArrayList<EndEvent>();
   
   @XmlTransient
@@ -107,20 +107,11 @@
     else if (flowObject instanceof EndEvent)
     {
       endEvents.add((EndEvent)flowObject);
-      flowObject.setProcess(this);
     }
-    else if (flowObject instanceof Task)
+    else 
     {
-      if (tasks == null)
-        tasks = new ArrayList<Task>();
-
-      tasks.add((Task)flowObject);
-      flowObject.setProcess(this);
+      flowObjects.add(flowObject);
     }
-    else
-    {
-      throw new InvalidProcessException("Unsupported type: " + flowObject);
-    }
   }
 
   /**
@@ -143,7 +134,6 @@
     if (this.startEvent != null)
       throw new InvalidProcessException("Process cannot have multiple start events: " + startEvent);
 
-    startEvent.setProcess(this);
     this.startEvent = startEvent;
   }
 
@@ -168,25 +158,17 @@
   }
 
   /**
-   * Get the list of tasks
+   * Get the list of flow objects, excluding start and end states
    */
-  public List<Task> getTasks()
+  @XmlElement(name = "node")
+  public List<FlowObject> getFlowObjects()
   {
     if (processState == ProcessState.CREATED)
-      return tasks;
+      return flowObjects;
     
-    return Collections.unmodifiableList(tasks);
+    return Collections.unmodifiableList(flowObjects);
   }
 
-  /**
-   * Set the tasks Note, this MUST NOT leak into the public API.
-   */
-  @XmlElement(name = "task")
-  protected void setTasks(List<Task> tasks)
-  {
-    this.tasks = tasks;
-  }
-
   /** Start the process */
   public Future<Result> startProcess()
   {
@@ -196,6 +178,10 @@
   /** Start the process, with a given execution context */
   public Future<Result> startProcess(Attachments att)
   {
+    if (processState != ProcessState.INITIALIZED)
+      throw new IllegalStateException("Cannot start process in state: " + processState);
+    
+    processState = ProcessState.STARTED;
     execute(new InitialToken(this, att));
     return new ResultFuture();
   }
@@ -210,8 +196,13 @@
     if (name == null)
       throw new IllegalArgumentException("Cannot find flow object with name: null");
     
+    List<FlowObject> allFlowObjects = new ArrayList<FlowObject>();
+    allFlowObjects.add(startEvent);
+    allFlowObjects.addAll(flowObjects);
+    allFlowObjects.addAll(endEvents);
+    
     NamedFlowObject nfo = null;
-    for (FlowObject aux : getFlowObjects())
+    for (FlowObject aux : allFlowObjects)
     {
       if (aux instanceof NamedFlowObject && name.equals(((NamedFlowObject)aux).getName()))
       {
@@ -222,15 +213,6 @@
     return nfo;
   }
 
-  public List<FlowObject> getFlowObjects()
-  {
-    List<FlowObject> flowObjects = new ArrayList<FlowObject>();
-    flowObjects.add(startEvent);
-    flowObjects.addAll(tasks);
-    flowObjects.addAll(endEvents);
-    return flowObjects;
-  }
-
   /**
    * Get signal for enter
    */
@@ -266,17 +248,18 @@
     if (processState != ProcessState.CREATED)
       throw new IllegalStateException("Cannot initialize process in state: " + processState);
     
-    for (EndEvent aux : endEvents)
-      aux.setProcess(this);
-    
-    for (Task aux : tasks)
-      aux.setProcess(this);
-    
     if (startEvent == null)
       throw new InvalidProcessException("Process does not have a start event");
       
     if (endEvents.size() == 0)
       throw new InvalidProcessException("Process does not have end events");
+    
+    // Set the associated process
+    startEvent.setProcess(this);
+    for (FlowObject aux : flowObjects)
+      aux.setProcess(this);
+    for (FlowObject aux : endEvents)
+      aux.setProcess(this);
       
     processState = ProcessState.INITIALIZED;
   }
@@ -309,7 +292,11 @@
 
     public boolean isDone()
     {
-      return getResult() != null;
+      boolean isDone = getResult() != null;
+      if (isDone)
+        processState = ProcessState.ENDED;
+
+      return isDone;
     }
 
     private Result getResult()
@@ -321,6 +308,7 @@
           result = aux.getResult();
           if (result != null)
           {
+            processState = ProcessState.ENDED;
             break;
           }
         }

Added: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -0,0 +1,134 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.model;
+
+// $Id$
+
+/**
+ * A Process is any Activity performed within a company or organization.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public class ProcessBuilder
+{
+  private Process proc;
+  private FlowObject flowObject;
+  
+  public ProcessBuilder (String procName)
+  {
+    proc = new Process(procName);
+  }
+  
+  public Process getProcess()
+  {
+    proc.initialize();
+    return proc;
+  }
+  
+  public ProcessBuilder addStartEvent()
+  {
+    flowObject = new StartEvent();
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+  
+  public ProcessBuilder addSequenceFlow(String name)
+  {
+    if (flowObject instanceof SingleOutFlowSupport)
+    {
+      SingleOutFlowSupport outFlow = (SingleOutFlowSupport)flowObject;
+      outFlow.setOutFlow(new SequenceFlow(name));
+    }
+    else if (flowObject instanceof MultipleOutFlowSupport)
+    {
+      MultipleOutFlowSupport outFlow = (MultipleOutFlowSupport)flowObject;
+      outFlow.addOutFlow(new SequenceFlow(name));
+    }
+    else
+    {
+      throw new IllegalStateException("Cannot add a sequence flow to: " + flowObject);
+    }
+    return this;
+  }
+  
+  public ProcessBuilder addMessageFlow(String name)
+  {
+    if (flowObject instanceof SingleOutFlowSupport)
+    {
+      SingleOutFlowSupport outFlow = (SingleOutFlowSupport)flowObject;
+      outFlow.setOutFlow(new MessageFlow(name));
+    }
+    else if (flowObject instanceof MultipleOutFlowSupport)
+    {
+      MultipleOutFlowSupport outFlow = (MultipleOutFlowSupport)flowObject;
+      outFlow.addOutFlow(new MessageFlow(name));
+    }
+    else
+    {
+      throw new IllegalStateException("Cannot add a message flow to: " + flowObject);
+    }
+    return this;
+  }
+  
+  public ProcessBuilder addTask(String name)
+  {
+    flowObject = new Task(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+  
+  public ProcessBuilder addExclusiveGateway(String name)
+  {
+    flowObject = new ExclusiveGateway();
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+  
+  public ProcessBuilder addInclusiveGateway(String name)
+  {
+    flowObject = new InclusiveGateway();
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+  
+  public ProcessBuilder addComplexGateway(String name)
+  {
+    flowObject = new ComplexGateway();
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+  
+  public ProcessBuilder addParallelGateway(String name)
+  {
+    flowObject = new ParallelGateway();
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+  
+  public ProcessBuilder addEndEvent(String name)
+  {
+    flowObject = new EndEvent(name);
+    proc.addFlowObject(flowObject);
+    return this;
+  }
+}
\ No newline at end of file


Property changes on: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleInFlowSupport.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleInFlowSupport.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleInFlowSupport.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.model;
+
+//$Id$
+
+public interface SingleInFlowSupport
+{
+  /**
+   * Get the out flow
+   */
+  Flow getInFlow();
+  
+  /**
+   * Set the in flow
+   */
+  void setOutFlow(Flow flow);
+}


Property changes on: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleInFlowSupport.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleOutFlowSupport.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleOutFlowSupport.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleOutFlowSupport.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.model;
+
+//$Id$
+
+public interface SingleOutFlowSupport
+{
+  /**
+   * Get the out flow
+   */
+  Flow getOutFlow();
+  
+  /**
+   * Set the out flow
+   */
+  void setOutFlow(Flow flow);
+}


Property changes on: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SingleOutFlowSupport.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/StartEvent.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/StartEvent.java	2008-07-10 17:55:37 UTC (rev 1580)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/StartEvent.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -37,7 +37,7 @@
  * @since 08-Jul-2008
  */
 @XmlType(name="StartEvent")
-public class StartEvent extends Event
+public class StartEvent extends Event implements SingleOutFlowSupport
 {
   private Flow outFlow;
   
@@ -70,9 +70,15 @@
    * Note, this MUST NOT leak into the public API.
    */
   @XmlElement(name = "flow", required = true)
-  protected void setOutFlow(Flow outFlow)
+  public void setOutFlow(Flow outFlow)
   {
+    if (this.outFlow != null)
+      throw new IllegalStateException("Cannot reassign out flow");
     this.outFlow = outFlow;
   }
 
+  public String toString()
+  {
+    return "StartEvent[]";
+  }
 }
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java	2008-07-10 17:55:37 UTC (rev 1580)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Task.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -36,7 +36,7 @@
  * @since 08-Jul-2008
  */
 @XmlType(name="Task")
-public class Task extends Activity
+public class Task extends Activity implements SingleOutFlowSupport
 {
   private Flow outFlow;
   
@@ -68,8 +68,11 @@
    * Note, this MUST NOT leak into the public API.
    */
   @XmlElement(name = "flow", required = true)
-  protected void setOutFlow(Flow outFlow)
+  public void setOutFlow(Flow outFlow)
   {
+    if (this.outFlow != null)
+      throw new IllegalStateException("Cannot reassign out flow");
+    
     this.outFlow = outFlow;
   }
   
@@ -84,4 +87,9 @@
   {
     return new Signal(getProcess(), Signal.Type.EXIT_TASK, getName());
   }
+  
+  public String toString()
+  {
+    return "Task[" + getName() + "]";
+  }
 }
\ No newline at end of file

Modified: api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java
===================================================================
--- api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java	2008-07-10 17:55:37 UTC (rev 1580)
+++ api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java	2008-07-10 19:41:52 UTC (rev 1581)
@@ -41,29 +41,21 @@
 {
   public void testProcess() throws Exception
   {
-    Process inProc = new Process("myproc");
-    StartEvent start = new StartEvent();
-    start.setOutFlow(new SequenceFlow("taskA"));
-    inProc.addFlowObject(start);
-    Task taskA = new Task("taskA");
-    taskA.setOutFlow(new SequenceFlow("end"));
-    inProc.addFlowObject(taskA);
-    EndEvent end = new EndEvent("end");
-    inProc.addFlowObject(end);
-    
+    Process inProc = new ProcessBuilder("myproc").addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").addEndEvent("end").getProcess();
+
     StringWriter strwr = new StringWriter();
     ProcessMarshaller marshaller = new ProcessMarshaller();
     marshaller.marshallProcess(inProc, strwr);
     String xml = strwr.toString();
-    
+
     System.out.println(xml);
-    
+
     ProcessUnmarshaller unmarshaller = new ProcessUnmarshaller();
     Process outProc = unmarshaller.unmarshallProcess(new StringReader(xml));
-    start = outProc.getStartEvent();
-    taskA = (Task)outProc.findFlowObject("taskA");
-    end = outProc.getEndEvents().get(0);
-    
+    StartEvent start = outProc.getStartEvent();
+    Task taskA = (Task)outProc.findFlowObject("taskA");
+    EndEvent end = outProc.getEndEvents().get(0);
+
     assertEquals(inProc.getName(), outProc.getName());
     assertNotNull(start);
     assertEquals(outProc, start.getProcess());




More information about the jbpm-commits mailing list