[jbpm-commits] JBoss JBPM SVN: r1637 - in api/trunk/modules: api/src/main/java/org/jboss/bpm/client/internal and 6 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Jul 15 10:26:52 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-07-15 10:26:52 -0400 (Tue, 15 Jul 2008)
New Revision: 1637

Added:
   api/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalListener.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/ExecutionHandler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Handler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/SignalHandler.java
Removed:
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExecutionHandler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowHandler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Handler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SignalHandler.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/SignalListener.java
Modified:
   api/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalManager.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.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/internal/EndEventImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ExecutionHandlerImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowHandlerImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SignalHandlerImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSetterSupport.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSupport.java
   api/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java
   api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/context/TaskA.java
   api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java
Log:
Remove default handlers

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/client/ExecutionManager.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -25,15 +25,15 @@
 
 import java.util.concurrent.Future;
 
-import org.jboss.bpm.model.ExecutionHandler;
-import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.Result;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.runtime.Attachments;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.HandlerSupport;
+import org.jboss.bpm.runtime.SignalHandler;
 
 /**
  * The ExecutionManager executes processes 
@@ -70,23 +70,20 @@
 
   protected ExecutionHandler getExecutionHandler(FlowObject target)
   {
-    HandlerSupport exfo = getExecutable(target);
-    ExecutionHandler handler = exfo.getExecutionHandler();
-    return handler != null ? handler : exfo.getDefaultExecutionHandler();
+    HandlerSupport exfo = getHandlerSupport(target);
+    return exfo.getExecutionHandler();
   }
 
   protected SignalHandler getSignalHandler(FlowObject target)
   {
-    HandlerSupport exfo = getExecutable(target);
-    SignalHandler handler = exfo.getSignalHandler();
-    return handler != null ? handler : exfo.getDefaultSignalHandler();
+    HandlerSupport exfo = getHandlerSupport(target);
+    return exfo.getSignalHandler();
   }
 
   protected FlowHandler getFlowHandler(FlowObject target)
   {
-    HandlerSupport exfo = getExecutable(target);
-    FlowHandler handler = exfo.getFlowHandler();
-    return handler != null ? handler : exfo.getDefaultFlowHandler();
+    HandlerSupport exfo = getHandlerSupport(target);
+    return exfo.getFlowHandler();
   }
 
   protected void throwSignal(Signal signal)
@@ -95,7 +92,7 @@
     sm.throwSignal(signal);
   }
 
-  private HandlerSupport getExecutable(FlowObject fo)
+  private HandlerSupport getHandlerSupport(FlowObject fo)
   {
     if (fo instanceof HandlerSupport == false)
       throw new IllegalStateException("Flow object is not executable: " + fo);

Copied: api/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalListener.java (from rev 1636, api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/SignalListener.java)
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalListener.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalListener.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -0,0 +1,41 @@
+/*
+ * 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.client;
+
+import org.jboss.bpm.model.Signal;
+
+//$Id$
+
+
+/**
+ * A signal listener that can be registered with the ProcessEngine
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface SignalListener
+{
+  /** 
+   * Catch a signal from the process that this listener is registered with 
+   */
+  void catchSignal(Signal signal);
+}
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalManager.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalManager.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/client/SignalManager.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -31,7 +31,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.runtime.SignalListener;
 
 /**
  * The signal manager is the entry point for signal processing

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -34,18 +34,18 @@
 import org.jboss.bpm.client.ExecutionManager;
 import org.jboss.bpm.client.ProcessEngine;
 import org.jboss.bpm.model.EndEvent;
-import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.model.Flow;
-import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.Result;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.StartEvent;
 import org.jboss.bpm.model.internal.SequenceFlowImpl;
 import org.jboss.bpm.model.internal.jaxb.JAXBSequenceFlow;
 import org.jboss.bpm.runtime.Attachments;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
+import org.jboss.bpm.runtime.SignalHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**

Deleted: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExecutionHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExecutionHandler.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExecutionHandler.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -1,44 +0,0 @@
-/*
- * 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$
-
-import org.jboss.bpm.client.ProcessEngine;
-import org.jboss.bpm.runtime.HandlerSupport;
-import org.jboss.bpm.runtime.Token;
-
-/**
- * The {@link ProcessEngine} invokes the ExecutionHandler on an {@link HandlerSupport} 
- * {@link FlowObject} to execute user provided business logic.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface ExecutionHandler extends Handler
-{
-  /**
-   * Execute business logic associated with a {@link FlowObject}
-   */
-  void execute(Token token);
-
-}
\ No newline at end of file

Deleted: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowHandler.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowHandler.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -1,47 +0,0 @@
-/*
- * 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$
-
-import org.jboss.bpm.client.ProcessEngine;
-import org.jboss.bpm.runtime.HandlerSupport;
-import org.jboss.bpm.runtime.Token;
-
-/**
- * The {@link ProcessEngine} invokes the FlowHandler on an {@link HandlerSupport} 
- * {@link FlowObject} to move the {@link Token} to the next {@link FlowObject}.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface FlowHandler extends Handler
-{
-  /**
-   * Execute the the FlowHandler.
-   * <p/>
-   * The FlowHandler will add the active outgoing @{link Flow}s to
-   * some @{link Flow} queue for the {@link ProcessEngine} to execute.    
-   */
-  void execute(Token token);
-
-}
\ No newline at end of file

Deleted: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Handler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Handler.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Handler.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -1,35 +0,0 @@
-/*
- * 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$
-
-/**
- * The generic base for handlers that can be associated with a {@link FlowObject}.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface Handler
-{
-
-}
\ No newline at end of file

Modified: 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	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ProcessBuilder.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -22,6 +22,9 @@
 package org.jboss.bpm.model;
 
 import org.jboss.bpm.client.ProcessManager;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
+import org.jboss.bpm.runtime.SignalHandler;
 
 //$Id$
 

Deleted: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SignalHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SignalHandler.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SignalHandler.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -1,48 +0,0 @@
-/*
- * 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$
-
-import org.jboss.bpm.client.ProcessEngine;
-import org.jboss.bpm.client.SignalManager;
-import org.jboss.bpm.runtime.HandlerSupport;
-
-/**
- * The {@link ProcessEngine} invokes the SignalHandler on an {@link HandlerSupport} 
- * {@link FlowObject} to send {@link Signal}s to the {@link SignalManager}.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface SignalHandler extends Handler
-{
-  /** 
-   * Get signal for enter 
-   */
-  Signal getEnterSignal();
-
-  /** 
-   * Get signal for exit 
-   */
-  Signal getExitSignal();
-}
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -27,21 +27,21 @@
 import org.apache.commons.logging.LogFactory;
 import org.jboss.bpm.model.EndEvent;
 import org.jboss.bpm.model.Flow;
-import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Result;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBEndEvent;
 import org.jboss.bpm.runtime.Attachments;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
+import org.jboss.bpm.runtime.SignalHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**
- * As the name implies, the End Event indicates where a Process will end. 
+ * As the name implies, the End Event indicates where a Process will end.
  * 
- * In terms of Sequence Flow, the End Event ends the flow of the Process, and thus, will not have any outgoing Sequence Flow. 
- * An End Event can have a specific Result that will appear as a marker within the center of the End Event shape. 
- * End Event Results are Message, Error, Compensation, Link, and Multiple.
+ * In terms of Sequence Flow, the End Event ends the flow of the Process, and thus, will not have any outgoing Sequence Flow. An End Event can have a specific Result
+ * that will appear as a marker within the center of the End Event shape. End Event Results are Message, Error, Compensation, Link, and Multiple.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
@@ -50,10 +50,10 @@
 {
   // provide logging
   private static final Log log = LogFactory.getLog(EndEventImpl.class);
-  
+
   private Result result;
   private Flow inFlow;
-  
+
   public EndEventImpl(String name)
   {
     this(new JAXBEndEvent());
@@ -64,22 +64,22 @@
   {
     super(delegate);
   }
-  
+
   public String getName()
   {
     return getDelegate().getName();
   }
-  
+
   public void setName(String name)
   {
     getDelegate().setName(name);
   }
-  
+
   public Flow getInFlow()
   {
     return inFlow;
   }
-  
+
   /**
    * Set the in flow
    */
@@ -87,65 +87,78 @@
   {
     this.inFlow = inFlow;
   }
-  
+
   public Result getResult()
   {
     return result;
   }
 
-  public FlowHandler getDefaultFlowHandler()
+  public ExecutionHandler getExecutionHandler()
   {
-    return new FlowHandlerImpl()
+    ExecutionHandler handler = super.getExecutionHandler();
+    if (handler == null)
     {
-      @Override
-      public void execute(Token token)
+      handler = new ExecutionHandler()
       {
-        log.debug("End reached in: " + getName());
-      }
-    };
+        public void execute(final Token token)
+        {
+          // Provide the result
+          result = new Result()
+          {
+            public Attachments getAttachments()
+            {
+              return token.getExecutionContext();
+            }
+          };
+        }
+      };
+    }
+    return handler;
   }
 
-  public SignalHandler getDefaultSignalHandler()
+  public FlowHandler getFlowHandler()
   {
-    final FlowObject end = this;
-    return new SignalHandlerImpl()
+    FlowHandler handler = super.getFlowHandler();
+    if (handler == null)
     {
-      public Signal getEnterSignal()
+      handler = new FlowHandler()
       {
-        return new Signal(end, Signal.Type.ENTER_END_EVENT);
-      }
-
-      public Signal getExitSignal()
-      {
-        return new Signal(end, Signal.Type.EXIT_END_EVENT);
-      }
-    };
+        public void execute(Token token)
+        {
+          log.debug("End reached in: " + getName());
+        }
+      };
+    }
+    return handler;
   }
 
-  public ExecutionHandlerImpl getDefaultExecutionHandler()
+  public SignalHandler getSignalHandler()
   {
-    return new ExecutionHandlerImpl()
+    SignalHandler handler = super.getSignalHandler();
+    if (handler == null)
     {
-      @Override
-      public void execute(final Token token)
+      final FlowObject end = this;
+      handler = new SignalHandler()
       {
-        // Provide the result
-        result = new Result()
+        public Signal getEnterSignal()
         {
-          public Attachments getAttachments()
-          {
-            return token.getExecutionContext();
-          }
-        };
-      }
-    };
+          return new Signal(end, Signal.Type.ENTER_END_EVENT);
+        }
+
+        public Signal getExitSignal()
+        {
+          return new Signal(end, Signal.Type.EXIT_END_EVENT);
+        }
+      };
+    }
+    return handler;
   }
-  
+
   public JAXBEndEvent getDelegate()
   {
     return (JAXBEndEvent)super.getDelegate();
   }
-  
+
   public String toString()
   {
     return "EndEvent[" + getName() + "]";

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -22,11 +22,11 @@
 package org.jboss.bpm.model.internal;
 
 import org.jboss.bpm.model.Event;
-import org.jboss.bpm.model.ExecutionHandler;
-import org.jboss.bpm.model.FlowHandler;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBEvent;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.HandlerSetterSupport;
+import org.jboss.bpm.runtime.SignalHandler;
 
 //$Id$
 

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ExecutionHandlerImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ExecutionHandlerImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ExecutionHandlerImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -23,8 +23,8 @@
 
 //$Id$
 
-import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBExecutionHandler;
+import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowHandlerImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowHandlerImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowHandlerImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -23,8 +23,8 @@
 
 //$Id$
 
-import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBFlowHandler;
+import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -29,16 +29,16 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.model.Flow;
-import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Gateway;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
 import org.jboss.bpm.model.internal.jaxb.JAXBGateway;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.HandlerSetterSupport;
+import org.jboss.bpm.runtime.SignalHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**
@@ -102,7 +102,18 @@
 
   public ExecutionHandler getExecutionHandler()
   {
-    return executionHandler;
+    ExecutionHandler handler = executionHandler;
+    if (handler == null)
+    {
+      handler = new ExecutionHandler()
+      {
+        public void execute(Token token)
+        {
+          log.debug("Nothing to do in gateway: " + getName());
+        }
+      };
+    }
+    return handler;
   }
 
   public void setExecutionHandler(ExecutionHandler executionHandler)
@@ -112,7 +123,18 @@
 
   public FlowHandler getFlowHandler()
   {
-    return flowHandler;
+    FlowHandler handler = flowHandler;
+    if (handler == null && outFlows.size() == 1)
+    {
+      handler = new FlowHandler()
+      {
+        public void execute(Token token)
+        {
+          token.addTailFlow(outFlows.get(0));
+        }
+      };
+    }
+    return handler;
   }
 
   public void setFlowHandler(FlowHandler flowHandler)
@@ -122,54 +144,29 @@
 
   public SignalHandler getSignalHandler()
   {
-    return signalHandler;
-  }
-
-  public void setSignalHandler(SignalHandler signalHandler)
-  {
-    this.signalHandler = signalHandler;
-  }
-
-  public FlowHandler getDefaultFlowHandler()
-  {
-    return new FlowHandlerImpl()
+    SignalHandler handler = signalHandler;
+    if (handler == null)
     {
-      @Override
-      public void execute(Token token)
+      final FlowObject gateway = this;
+      handler = new SignalHandler()
       {
-        if (outFlows.size() == 1)
-          token.addTailFlow(outFlows.get(0));
-      }
-    };
-  }
+        public Signal getEnterSignal()
+        {
+          return new Signal(gateway, Signal.Type.ENTER_GATEWAY);
+        }
 
-  public SignalHandler getDefaultSignalHandler()
-  {
-    final FlowObject gateway = this;
-    return new SignalHandlerImpl()
-    {
-      public Signal getEnterSignal()
-      {
-        return new Signal(gateway, Signal.Type.ENTER_GATEWAY);
-      }
-
-      public Signal getExitSignal()
-      {
-        return new Signal(gateway, Signal.Type.EXIT_GATEWAY);
-      }
-    };
+        public Signal getExitSignal()
+        {
+          return new Signal(gateway, Signal.Type.EXIT_GATEWAY);
+        }
+      };
+    }
+    return handler;
   }
 
-  public ExecutionHandlerImpl getDefaultExecutionHandler()
+  public void setSignalHandler(SignalHandler signalHandler)
   {
-    return new ExecutionHandlerImpl()
-    {
-      @Override
-      public void execute(Token token)
-      {
-        log.debug("Nothing to do in gateway: " + getName());
-      }
-    };
+    this.signalHandler = signalHandler;
   }
 
   public JAXBGateway getDelegate()

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -23,8 +23,8 @@
 
 //$Id$
 
-import org.jboss.bpm.model.Handler;
 import org.jboss.bpm.model.internal.jaxb.JAXBHandler;
+import org.jboss.bpm.runtime.Handler;
 import org.jboss.bpm.NotImplementedException;
 
 /**

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -25,14 +25,15 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.jboss.bpm.model.Event;
 import org.jboss.bpm.model.Flow;
-import org.jboss.bpm.model.FlowHandler;
-import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.IntermediateEvent;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
 import org.jboss.bpm.model.internal.jaxb.JAXBIntermediateEvent;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
+import org.jboss.bpm.runtime.SignalHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**
@@ -95,45 +96,58 @@
     getDelegate().setOutFlow(jaxb);
   }
 
-  public FlowHandler getDefaultFlowHandler()
+  public ExecutionHandler getExecutionHandler()
   {
-    return new FlowHandlerImpl()
+    ExecutionHandler handler = super.getExecutionHandler();
+    if (handler == null)
     {
-      @Override
-      public void execute(Token token)
+      handler = new ExecutionHandler()
       {
-        token.addTailFlow(getOutFlow());
-      }
-    };
+        public void execute(Token token)
+        {
+          log.debug("Nothing to do in event");
+        }
+      };
+    }
+    return handler;
   }
 
-  public SignalHandler getDefaultSignalHandler()
+  public FlowHandler getFlowHandler()
   {
-    final FlowObject event = this;
-    return new SignalHandlerImpl()
+    FlowHandler handler = super.getFlowHandler();
+    if (handler == null)
     {
-      public Signal getEnterSignal()
+      handler = new FlowHandler()
       {
-        return new Signal(event, Signal.Type.ENTER_EVENT);
-      }
-
-      public Signal getExitSignal()
-      {
-        return new Signal(event, Signal.Type.EXIT_EVENT);
-      }
-    };
+        public void execute(Token token)
+        {
+          token.addTailFlow(getOutFlow());
+        }
+      };
+    }
+    return handler;
   }
 
-  public ExecutionHandlerImpl getDefaultExecutionHandler()
+  public SignalHandler getSignalHandler()
   {
-    return new ExecutionHandlerImpl()
+    SignalHandler handler = super.getSignalHandler();
+    if (handler == null)
     {
-      @Override
-      public void execute(Token token)
+      final Event event = this;
+      handler = new SignalHandler()
       {
-        log.debug("Nothing to do in start-event");
-      }
-    };
+        public Signal getEnterSignal()
+        {
+          return new Signal(event, Signal.Type.ENTER_EVENT);
+        }
+
+        public Signal getExitSignal()
+        {
+          return new Signal(event, Signal.Type.EXIT_EVENT);
+        }
+      };
+    }
+    return handler;
   }
 
   public JAXBIntermediateEvent getDelegate()

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -24,8 +24,8 @@
 //$Id$
 
 import org.jboss.bpm.model.Flow;
-import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBParallelGateway;
+import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.Token;
 
 
@@ -49,20 +49,23 @@
   }
 
   /**
-   * The DefaultFlowHandler adds all out flows to the queue
+   * The default FlowHandler adds all out flows to the queue
    */
-  @Override
-  public FlowHandler getDefaultFlowHandler()
+  public FlowHandler getFlowHandler()
   {
-    return new FlowHandlerImpl()
+    FlowHandler handler = super.getFlowHandler();
+    if (handler == null)
     {
-      @Override
-      public void execute(Token token)
+      handler = new FlowHandler()
       {
-        for(Flow outFlow : getOutFlows())
-          token.addTailFlow(outFlow);
-      }
-    };
+        public void execute(Token token)
+        {
+          for(Flow outFlow : getOutFlows())
+            token.addTailFlow(outFlow);
+        }
+      };
+    }
+    return handler;
   }
 
   public String toString()

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessBuilderImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -24,14 +24,14 @@
 //$Id$
 
 import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.model.ExecutionHandler;
-import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.MultipleOutFlowSupport;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.ProcessBuilder;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.SingleOutFlowSupport;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.HandlerSetterSupport;
+import org.jboss.bpm.runtime.SignalHandler;
 
 /**
  * The ProcessBuilder can be used to dynamically build {@link Process}es.

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SignalHandlerImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SignalHandlerImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SignalHandlerImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -24,8 +24,8 @@
 //$Id$
 
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.internal.jaxb.JAXBSignalHandler;
+import org.jboss.bpm.runtime.SignalHandler;
 
 /**
  * Implement to get signals on enter and exit.

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -26,13 +26,13 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.jboss.bpm.model.Flow;
-import org.jboss.bpm.model.FlowHandler;
-import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.StartEvent;
 import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
 import org.jboss.bpm.model.internal.jaxb.JAXBStartEvent;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
+import org.jboss.bpm.runtime.SignalHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**
@@ -72,47 +72,60 @@
     getDelegate().setOutFlow(jaxb);
   }
 
-  public FlowHandler getDefaultFlowHandler()
+  public ExecutionHandler getExecutionHandler()
   {
-    return new FlowHandlerImpl()
+    ExecutionHandler handler = super.getExecutionHandler();
+    if (handler == null)
     {
-      @Override
-      public void execute(Token token)
+      handler = new ExecutionHandler()
       {
-        token.addTailFlow(outFlow);
-      }
-    };
+        public void execute(Token token)
+        {
+          log.debug("Nothing to do in start-event");
+        }
+      };
+    }
+    return handler;
   }
 
-  public SignalHandler getDefaultSignalHandler()
+  public FlowHandler getFlowHandler()
   {
-    final FlowObject start = this;
-    return new SignalHandlerImpl()
+    FlowHandler handler = super.getFlowHandler();
+    if (handler == null)
     {
-      public Signal getEnterSignal()
+      handler = new FlowHandler()
       {
-        return new Signal(start, Signal.Type.ENTER_START_EVENT);
-      }
-
-      public Signal getExitSignal()
-      {
-        return new Signal(start, Signal.Type.EXIT_START_EVENT);
-      }
-    };
+        public void execute(Token token)
+        {
+          token.addTailFlow(outFlow);
+        }
+      };
+    }
+    return handler;
   }
 
-  public ExecutionHandlerImpl getDefaultExecutionHandler()
+  public SignalHandler getSignalHandler()
   {
-    return new ExecutionHandlerImpl()
+    SignalHandler handler = super.getSignalHandler();
+    if (handler == null)
     {
-      @Override
-      public void execute(Token token)
+      final StartEvent start = this;
+      handler = new SignalHandler()
       {
-        log.debug("Nothing to do in start-event");
-      }
-    };
+        public Signal getEnterSignal()
+        {
+          return new Signal(start, Signal.Type.ENTER_START_EVENT);
+        }
+
+        public Signal getExitSignal()
+        {
+          return new Signal(start, Signal.Type.EXIT_START_EVENT);
+        }
+      };
+    }
+    return handler;
   }
-
+  
   public JAXBStartEvent getDelegate()
   {
     return (JAXBStartEvent)super.getDelegate();

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -23,16 +23,16 @@
 
 //$Id$
 
-import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.model.Flow;
-import org.jboss.bpm.model.FlowHandler;
 import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.SubProcess;
 import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
 import org.jboss.bpm.model.internal.jaxb.JAXBSubProcess;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.HandlerSetterSupport;
+import org.jboss.bpm.runtime.SignalHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**
@@ -88,7 +88,18 @@
 
   public ExecutionHandler getExecutionHandler()
   {
-    return executionHandler;
+    ExecutionHandler handler = executionHandler;
+    if (handler == null)
+    {
+      handler = new ExecutionHandler()
+      {
+        public void execute(Token token)
+        {
+          startProcess(token.getExecutionContext());
+        }
+      };
+    }
+    return handler;
   }
 
   public void setExecutionHandler(ExecutionHandler executionHandler)
@@ -98,7 +109,18 @@
 
   public FlowHandler getFlowHandler()
   {
-    return flowHandler;
+    FlowHandler handler = flowHandler;
+    if (handler == null)
+    {
+      handler = new FlowHandler()
+      {
+        public void execute(Token token)
+        {
+          token.addTailFlow(outFlow);
+        }
+      };
+    }
+    return handler;
   }
 
   public void setFlowHandler(FlowHandler flowHandler)
@@ -108,53 +130,29 @@
 
   public SignalHandler getSignalHandler()
   {
-    return signalHandler;
-  }
-
-  public void setSignalHandler(SignalHandler signalHandler)
-  {
-    this.signalHandler = signalHandler;
-  }
-
-  public FlowHandler getDefaultFlowHandler()
-  {
-    return new FlowHandlerImpl()
+    SignalHandler handler = signalHandler;
+    if (handler == null)
     {
-      @Override
-      public void execute(Token token)
+      final FlowObject subproc = this;
+      handler = new SignalHandler()
       {
-        token.addTailFlow(outFlow);
-      }
-    };
-  }
+        public Signal getEnterSignal()
+        {
+          return new Signal(subproc, Signal.Type.ENTER_SUB_PROCESS);
+        }
 
-  public SignalHandler getDefaultSignalHandler()
-  {
-    final FlowObject subproc = this;
-    return new SignalHandlerImpl()
-    {
-      public Signal getEnterSignal()
-      {
-        return new Signal(subproc, Signal.Type.ENTER_SUB_PROCESS);
-      }
-
-      public Signal getExitSignal()
-      {
-        return new Signal(subproc, Signal.Type.EXIT_SUB_PROCESS);
-      }
-    };
+        public Signal getExitSignal()
+        {
+          return new Signal(subproc, Signal.Type.EXIT_SUB_PROCESS);
+        }
+      };
+    }
+    return handler;
   }
 
-  public ExecutionHandlerImpl getDefaultExecutionHandler()
+  public void setSignalHandler(SignalHandler signalHandler)
   {
-    return new ExecutionHandlerImpl()
-    {
-      @Override
-      public void execute(Token token)
-      {
-        startProcess(token.getExecutionContext());
-      }
-    };
+    this.signalHandler = signalHandler;
   }
 
   public JAXBSubProcess getDelegate()

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -23,16 +23,15 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.model.Flow;
-import org.jboss.bpm.model.FlowHandler;
-import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.SignalHandler;
 import org.jboss.bpm.model.Task;
 import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
 import org.jboss.bpm.model.internal.jaxb.JAXBTask;
+import org.jboss.bpm.runtime.ExecutionHandler;
+import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.HandlerSetterSupport;
+import org.jboss.bpm.runtime.SignalHandler;
 import org.jboss.bpm.runtime.Token;
 
 //$Id$
@@ -102,7 +101,18 @@
   
   public ExecutionHandler getExecutionHandler()
   {
-    return executionHandler;
+    ExecutionHandler handler = executionHandler;
+    if (handler == null)
+    {
+      handler = new ExecutionHandler()
+      {
+        public void execute(Token token)
+        {
+          log.debug("Nothing to do in task: " + getName());
+        }
+      };
+    }
+    return handler;
   }
 
   public void setExecutionHandler(ExecutionHandler executionHandler)
@@ -112,7 +122,18 @@
 
   public FlowHandler getFlowHandler()
   {
-    return flowHandler;
+    FlowHandler handler = flowHandler;
+    if (handler == null)
+    {
+      handler = new FlowHandler()
+      {
+        public void execute(Token token)
+        {
+          token.addTailFlow(outFlow);
+        }
+      };
+    }
+    return handler;
   }
 
   public void setFlowHandler(FlowHandler flowHandler)
@@ -122,55 +143,31 @@
 
   public SignalHandler getSignalHandler()
   {
-    return signalHandler;
-  }
-
-  public void setSignalHandler(SignalHandler signalHandler)
-  {
-    this.signalHandler = signalHandler;
-  }
-
-  public FlowHandler getDefaultFlowHandler()
-  {
-    return new FlowHandlerImpl()
+    SignalHandler handler = signalHandler;
+    if (handler == null)
     {
-      @Override
-      public void execute(Token token)
+      final Task task = this;
+      handler = new SignalHandler()
       {
-        token.addTailFlow(outFlow);
-      }
-    };
-  }
+        public Signal getEnterSignal()
+        {
+          return new Signal(task, Signal.Type.ENTER_TASK);
+        }
 
-  public SignalHandler getDefaultSignalHandler()
-  {
-    final FlowObject task = this;
-    return new SignalHandlerImpl()
-    {
-      public Signal getEnterSignal()
-      {
-        return new Signal(task, Signal.Type.ENTER_TASK);
-      }
-
-      public Signal getExitSignal()
-      {
-        return new Signal(task, Signal.Type.EXIT_TASK);
-      }
-    };
+        public Signal getExitSignal()
+        {
+          return new Signal(task, Signal.Type.EXIT_TASK);
+        }
+      };
+    }
+    return handler;
   }
 
-  public ExecutionHandler getDefaultExecutionHandler()
+  public void setSignalHandler(SignalHandler signalHandler)
   {
-    return new ExecutionHandlerImpl()
-    {
-      @Override
-      public void execute(Token token)
-      {
-        log.debug("Nothing to do in task: " + getName());
-      }
-    };
+    this.signalHandler = signalHandler;
   }
-  
+
   public JAXBTask getDelegate()
   {
     return (JAXBTask)super.getDelegate();

Copied: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/ExecutionHandler.java (from rev 1636, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/ExecutionHandler.java)
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/ExecutionHandler.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/ExecutionHandler.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -0,0 +1,43 @@
+/*
+ * 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.runtime;
+
+//$Id$
+
+import org.jboss.bpm.client.ProcessEngine;
+import org.jboss.bpm.model.FlowObject;
+
+/**
+ * The {@link ProcessEngine} invokes the ExecutionHandler on an {@link HandlerSupport} 
+ * {@link FlowObject} to execute user provided business logic.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ExecutionHandler extends Handler
+{
+  /**
+   * Execute business logic associated with a {@link FlowObject}
+   */
+  void execute(Token token);
+
+}
\ No newline at end of file

Copied: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java (from rev 1636, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/FlowHandler.java)
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/FlowHandler.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -0,0 +1,46 @@
+/*
+ * 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.runtime;
+
+//$Id$
+
+import org.jboss.bpm.client.ProcessEngine;
+import org.jboss.bpm.model.FlowObject;
+
+/**
+ * The {@link ProcessEngine} invokes the FlowHandler on an {@link HandlerSupport} 
+ * {@link FlowObject} to move the {@link Token} to the next {@link FlowObject}.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface FlowHandler extends Handler
+{
+  /**
+   * Execute the the FlowHandler.
+   * <p/>
+   * The FlowHandler will add the active outgoing @{link Flow}s to
+   * some @{link Flow} queue for the {@link ProcessEngine} to execute.    
+   */
+  void execute(Token token);
+
+}
\ No newline at end of file

Copied: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Handler.java (from rev 1636, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/Handler.java)
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Handler.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/Handler.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -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.runtime;
+
+import org.jboss.bpm.model.FlowObject;
+
+//$Id$
+
+/**
+ * The generic base for handlers that can be associated with a {@link FlowObject}.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface Handler
+{
+
+}
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSetterSupport.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSetterSupport.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSetterSupport.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -21,9 +21,6 @@
  */
 package org.jboss.bpm.runtime;
 
-import org.jboss.bpm.model.ExecutionHandler;
-import org.jboss.bpm.model.FlowHandler;
-import org.jboss.bpm.model.SignalHandler;
 
 //$Id$
 

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSupport.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSupport.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/HandlerSupport.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -21,9 +21,6 @@
  */
 package org.jboss.bpm.runtime;
 
-import org.jboss.bpm.model.ExecutionHandler;
-import org.jboss.bpm.model.FlowHandler;
-import org.jboss.bpm.model.SignalHandler;
 
 //$Id$
 
@@ -38,18 +35,9 @@
   /** Get the associated ExecutionHandler */ 
   ExecutionHandler getExecutionHandler();
   
-  /** Get the default ExecutionHandler */ 
-  ExecutionHandler getDefaultExecutionHandler();
-  
   /** Get the associated SignalHandler */ 
   SignalHandler getSignalHandler();
   
-  /** Get the default SignalHandler */ 
-  SignalHandler getDefaultSignalHandler();
-  
   /** Get the associated FlowHandler */ 
   FlowHandler getFlowHandler();
-  
-  /** Get the default FlowHandler */ 
-  FlowHandler getDefaultFlowHandler();
 }
\ No newline at end of file

Copied: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/SignalHandler.java (from rev 1636, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/SignalHandler.java)
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/SignalHandler.java	                        (rev 0)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/SignalHandler.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -0,0 +1,49 @@
+/*
+ * 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.runtime;
+
+//$Id$
+
+import org.jboss.bpm.client.ProcessEngine;
+import org.jboss.bpm.client.SignalManager;
+import org.jboss.bpm.model.FlowObject;
+import org.jboss.bpm.model.Signal;
+
+/**
+ * The {@link ProcessEngine} invokes the SignalHandler on an {@link HandlerSupport} 
+ * {@link FlowObject} to send {@link Signal}s to the {@link SignalManager}.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface SignalHandler extends Handler
+{
+  /** 
+   * Get signal for enter 
+   */
+  Signal getEnterSignal();
+
+  /** 
+   * Get signal for exit 
+   */
+  Signal getExitSignal();
+}
\ No newline at end of file

Deleted: api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/SignalListener.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/SignalListener.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/runtime/SignalListener.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -1,41 +0,0 @@
-/*
- * 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.runtime;
-
-import org.jboss.bpm.model.Signal;
-
-//$Id$
-
-
-/**
- * A signal listener that can be registered with the ProcessEngine
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface SignalListener
-{
-  /** 
-   * Catch a signal from the process that this listener is registered with 
-   */
-  void catchSignal(Signal signal);
-}
\ No newline at end of file

Modified: api/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/api/src/main/java/org/jboss/bpm/test/AbstractAPITestCase.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -33,9 +33,9 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.jboss.bpm.JBPMException;
+import org.jboss.bpm.client.SignalListener;
 import org.jboss.bpm.client.internal.EmbeddedBeansDeployer;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.runtime.SignalListener;
 
 public abstract class AbstractAPITestCase extends TestCase implements SignalListener
 {

Modified: api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/context/TaskA.java
===================================================================
--- api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/context/TaskA.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/context/TaskA.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -23,8 +23,8 @@
 
 // $Id$
 
-import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.runtime.ExecutionContext;
+import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**

Modified: api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java
===================================================================
--- api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java	2008-07-15 13:05:25 UTC (rev 1636)
+++ api/trunk/modules/testsuite/src/test/java/org/jboss/bpm/samples/task/TaskA.java	2008-07-15 14:26:52 UTC (rev 1637)
@@ -23,8 +23,8 @@
 
 // $Id$
 
-import org.jboss.bpm.model.ExecutionHandler;
 import org.jboss.bpm.runtime.ExecutionContext;
+import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.Token;
 
 /**




More information about the jbpm-commits mailing list