<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to create a custom activity in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48132#M27450</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you for implementing this so fast! This is a great help so I don't have to merge every time ClassDelegate changes or every time I checkout a new workingcopy. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it possible to also implement an additional method in RuntimeService that look like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;nbsp; &lt;BR /&gt;public void signal(String activityInstanceId, Object o){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; commandExecutor.execute(new SignalCmd(activityInstanceId, null, o));&lt;BR /&gt;}&lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 20 Apr 2011 12:19:41 GMT</pubDate>
    <dc:creator>sascha1</dc:creator>
    <dc:date>2011-04-20T12:19:41Z</dc:date>
    <item>
      <title>How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48114#M27432</link>
      <description>Hello,is there any document or example how to create custom Activities?I think i have to implement an ActivityBehavior.First of all I would like to implement an Activity that is waiting for an JMSMessage. I began to implement a class that extends AbstractBpmnActivityBehavior and implements javax.jms</description>
      <pubDate>Fri, 08 Apr 2011 08:01:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48114#M27432</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-08T08:01:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48115#M27433</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Implement ActivityBehaviour (not JavaDelegate, since you want 'wait behavior'), implement whatever interface you need for catching the JMS listener, and probably registyer your bean with the queueu.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Apr 2011 09:12:29 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48115#M27433</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-04-08T09:12:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48116#M27434</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You should also add your activity to the parsing-mechanism, so it can be instantiated by activiti.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;@See BPMNParse&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Apr 2011 12:02:54 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48116#M27434</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2011-04-08T12:02:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48117#M27435</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you both for your replies! &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What do you mean with:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Implement ActivityBehaviour (not JavaDelegate, …&lt;/BLOCKQUOTE&gt;&lt;SPAN&gt; I am implementing AbstractBpmnActivityBehavior and of course JMS interface for catching a Message. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do I really need to change the Activiti Parser (BPMNParse), do I really need to recompile Activiti-Engine isn't there any mechanism to plugin-in my implementation?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sascha&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 10 Apr 2011 08:08:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48117#M27435</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-10T08:08:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48118#M27436</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can hook in a BPMNParser I guess, which alters the activityBehaviour in the ActivityImpl when for example, parsing a servicetask which has a special attribute on it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt; void parseServiceTask(Element serviceTaskElement, ScopeImpl scope, ActivityImpl activity);&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;You can just plug the parseListener in in the config (search the forum, I've explained the process before here)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Apr 2011 06:43:56 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48118#M27436</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2011-04-11T06:43:56Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48119#M27437</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It depends on your use case. I assume you just want to do:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;serviceTask activiti:class="MyImplementation' …&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then it is enough to do what you do, no changes to the engine are required.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Apr 2011 08:08:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48119#M27437</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-04-11T08:08:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48120#M27438</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;at least for now&amp;nbsp; ServiceTask seem to suffice. It works except that if I call &lt;/SPAN&gt;&lt;EM&gt;leave(ActivityExecution execution)&lt;/EM&gt;&lt;SPAN&gt; in my onMessage-implementation (implementation of javax.jms.MessageListener) i get a NullPointerException. At the moment I am creating a reference (instance-variable) to the ActivityExecution-Parameter of execute-Method and call leave with this reference as parameter.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In ExecutionEntity the method performOperation(AtomicOperation operation) looks like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;public void performOperation(AtomicOperation executionOperation) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Context&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getCommandContext()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .performOperation(executionOperation, this);&lt;BR /&gt;&amp;nbsp; }&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Context.getCommandContext() is null and this causes the NullPointerException. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe I am in a wrong context or something like this. At the moment I did not start to further analyze the activiti-engine-code. Any ideas how to leave properly after receiving a message?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Apr 2011 14:33:02 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48120#M27438</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-11T14:33:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48121#M27439</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;How do you call your class? Now that I think of it: you have to make sure you call it through the Activiti interfaces (ie runtimeService.signal) since otherwise you will indeed have exceptions because the context doesnt exist.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So you'll probably have to put your JMS listener 'in front of the process', and not being part of the process itself. So when you receive a JMS message, you will need to call runtimeService.signal() to continue the process.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Apr 2011 07:55:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48121#M27439</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-04-12T07:55:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48122#M27440</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I did have a similar idea. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried to call runtimeService.signal(executionID) inside the onMessage-implementation. But I don't know how to acquire the correct RuntimeService. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; RuntimeService runtimeService = processEngine.getRuntimeService();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; runtimeService.signal(this.executionID);&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;and overrode signal(…)-method of FlowNodeActivityBehavior with:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;public void signal(ActivityExecution execution, String signalName,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Object signalData) throws Exception {&lt;BR /&gt;&amp;nbsp; leave(execution);&lt;BR /&gt; }&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;But it seems to me that a new ProcessEngine is created and i get&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;org.activiti.engine.ActivitiException: this activity doesn't accept signals&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;though I had overriden signal-method of org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Edited:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I added my class like this &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;serviceTask id="servicetask1" name="WaitOnEvent" activiti:class="de.uni_stuttgart.informatik.eventum.activiti.activities.JmsCatchMsgBehavior" /&amp;gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;onMessage correctly receives Messages.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Apr 2011 08:52:51 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48122#M27440</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-12T08:52:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48123#M27441</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I observed that if I override the method &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;of FlowNodeActivityBehavior my overriding implementation is never called. Always the implementation of FlowNodeActivityBehavior which only throws an ActivitiException("this activity doesn't accept signals") is called. This is maybe a bug.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Apr 2011 13:12:33 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48123#M27441</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-12T13:12:33Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48124#M27442</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It works the other way aroung:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You process will have a simple wait state (eg receiveTask)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You will have to put a JMS listener separate from your process. That JMS listener then calls the runtimeService.signal method, with the execution id of the execution waiting in that wait state.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Putting the listener in your service task is never going to work, as you need to go through the services to build up the context to actually execute the process logic.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Apr 2011 07:23:13 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48124#M27442</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-04-13T07:23:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48125#M27443</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you for that hint! It seems that this is working. But simple wait-state behavior doesn't suffice for me. I want to be able to receive JMS-Messages inside my process. Thus I need to transport Data via signal and then store it to a variable. I am worrying that I need to change Activiti-Engine implementation to realize this behavior. Is that true? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If this is true are the following steps correct:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Implement a method like signal(String instanceID, Object signalData) in RuntimeServiceImpl&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Implement a TaskActivityBehavior similar to ReceiveTaskActivityBehavior&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Implement parsing for my new activity (did not look at parsing in detail so far)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sascha&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Apr 2011 11:49:57 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48125#M27443</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-13T11:49:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48126#M27444</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I see two simple solutions for your problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- pass the data using runtimeService.setVariable() with your data before calling the signal method. Note that in this case you have two separate transactions instead of one&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- Create your own ActivityBehaviour, and use SignallableActivityBehaviour instead of ActivityBehaviour (note that this is internal API)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Implement a method like signal(String instanceID, Object signalData) in RuntimeServiceImpl&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;The SignallableActivityBehaviour has exactly that method&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Implement a TaskActivityBehavior similar to ReceiveTaskActivityBehavior&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;Correct. But this is nothing more than making your execute() method empy (the engine assumes wait state by default)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Implement parsing for my new activity (did not look at parsing in detail so far)&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;Not needed. You can simply use it as a serviceTask: &amp;lt;serviceTask activiti:class="MyImpl"&amp;gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Apr 2011 07:50:56 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48126#M27444</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-04-14T07:50:56Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48127#M27445</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;i would really prefer the second alternative. Therefore I implemented SignallableActivityBehavior. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In execute-method only a class for receiving the messages is instantiated for now the constructor has only one parameter the executionId.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My implementation of the &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;looks like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;Logger.info("&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; signal");&lt;BR /&gt;&amp;nbsp; receiver.destroy();&lt;BR /&gt;&amp;nbsp; leave(execution);&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Now if I use my class as serviceTask implementation (&amp;lt;serviceTask activiti:class="MyImplementation' …) I always get an exception:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;SCHWERWIEGEND: Error while closing command context&lt;BR /&gt;org.activiti.engine.ActivitiException: this activity doesn't accept signals&lt;BR /&gt; at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.signal(FlowNodeActivityBehavior.java:53)&lt;BR /&gt; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.signal(ExecutionEntity.java:309)&lt;BR /&gt; at org.activiti.engine.impl.cmd.SignalCmd.execute(SignalCmd.java:50)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt; at org.activiti.engine.impl.RuntimeServiceImpl.signal(RuntimeServiceImpl.java:135)&lt;BR /&gt; at de.uni_stuttgart.informatik.eventum.activiti.activities.JMSReceiver.onMessage(JMSReceiver.java:92)&lt;BR /&gt; at com.sun.messaging.jmq.jmsclient.MessageConsumerImpl.deliverAndAcknowledge(MessageConsumerImpl.java:358)&lt;BR /&gt; at com.sun.messaging.jmq.jmsclient.MessageConsumerImpl.onMessage(MessageConsumerImpl.java:287)&lt;BR /&gt; at com.sun.messaging.jmq.jmsclient.SessionReader.deliver(SessionReader.java:119)&lt;BR /&gt; at com.sun.messaging.jmq.jmsclient.ConsumerReader.run(ConsumerReader.java:192)&lt;BR /&gt; at java.lang.Thread.run(Thread.java:619)&lt;BR /&gt;org.activiti.engine.ActivitiException: this activity doesn't accept signals&lt;BR /&gt; at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.signal(FlowNodeActivityBehavior.java:53)&lt;BR /&gt; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.signal(ExecutionEntity.java:309)&lt;BR /&gt; at org.activiti.engine.impl.cmd.SignalCmd.execute(SignalCmd.java:50)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt; at org.activiti.engine.impl.RuntimeServiceImpl.signal(RuntimeServiceImpl.java:135)&lt;BR /&gt; at de.uni_stuttgart.informatik.eventum.activiti.activities.JMSReceiver.onMessage(JMSReceiver.java:92)&lt;BR /&gt; at com.sun.messaging.jmq.jmsclient.MessageConsumerImpl.deliverAndAcknowledge(MessageConsumerImpl.java:358)&lt;BR /&gt; at com.sun.messaging.jmq.jmsclient.MessageConsumerImpl.onMessage(MessageConsumerImpl.java:287)&lt;BR /&gt; at com.sun.messaging.jmq.jmsclient.SessionReader.deliver(SessionReader.java:119)&lt;BR /&gt; at com.sun.messaging.jmq.jmsclient.ConsumerReader.run(ConsumerReader.java:192)&lt;BR /&gt; at java.lang.Thread.run(Thread.java:619)&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;I did not try the other alternative because there are some questions.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;How to instantiate the receiving-class and how to get the receiving-class know the correct executionID …&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 17 Apr 2011 10:16:37 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48127#M27445</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-17T10:16:37Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48128#M27446</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It appears you have not correctly override the signal method in FlowNodeActivityBehavior, as this is the implementation (check the exception you see)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // concrete activity behaviours that do accept signals should override this method;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new ActivitiException("this activity doesn't accept signals");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Apr 2011 07:23:59 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48128#M27446</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-04-18T07:23:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48129#M27447</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;My implementation looks like this so that cannot be the problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt; &lt;BR /&gt;@Override&lt;BR /&gt;public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; signal");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; receiver.destroy();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; leave(execution);&lt;BR /&gt;}&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Eclipse is also showing the symbol for implementing (implements org.activiti.engine.impl.pvm.delegate.SignallableActivityBehavior.signal). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Just before calling activityBehavior.signal(…) in ExecutionEntity the attribute activityBehavior references a ClassDelegate-object. The attribute className of this ClassDelegate-object is "de.uni_stuttgart.informatik.eventum.activiti.activities.JmsCatchMsgBehavior" which seems to be correct. Then not my implementation "de.uni_stuttgart.informatik.eventum.activiti.activities.JmsCatchMsgBehavior.signal(..)" is called but the implementation of FlowNodeActivityBehavior which throws the Exception.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EDIT: At all i don't understand why the implementation of FlowNodeActivityBehavior is called because I did directly implement SignallableActivityBehavior.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Apr 2011 09:45:27 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48129#M27447</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-18T09:45:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48130#M27448</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think now I know what is causing the problem can anybody confirm my guess?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Problem is that in method ExecutionEntity.signal(…) the ActivityBehavior-implementation is retrieved with:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;SignallableActivityBehavior activityBehavior = (SignallableActivityBehavior) activity.getActivityBehavior();&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;activity.getActivityBehavior() returns a ClassDelegate-object. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Next activitiyBehavior.signal(…) is called but ClassDelegate extends AbstractActivityBehavior which extends FlowNodeActivityBehavior since my Class JMSCatchMsgBehavior does not extend FlowNodeActivityBehavior and override signal-method (it implements SignallableActivityBehavior) the default implementation of signal-method in FlowNodeActivityBehavior is called.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Am I right?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried to implement a method in ClassDelegate that looks like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;@Override&lt;BR /&gt;public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (activityBehaviorInstance == null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; activityBehaviorInstance = getActivityBehaviorInstance(execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ((SignallableActivityBehavior)activityBehaviorInstance).signal(execution, signalName, signalData);&lt;BR /&gt;}&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;This seems to work.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Apr 2011 15:17:29 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48130#M27448</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-18T15:17:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48131#M27449</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Your analysis is correct. The ClassDelegate doesnt support delegating to a wait state, it seems.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I added the following method to ClassDelegate. According to your findigs, that should do the trick.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the detailed description. This was really valuable!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;nbsp; // Signallable activity behavior&lt;BR /&gt;&amp;nbsp; public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (activityBehaviorInstance == null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; activityBehaviorInstance = getActivityBehaviorInstance(execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (activityBehaviorInstance instanceof SignallableActivityBehavior) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((SignallableActivityBehavior) activityBehaviorInstance).signal(execution, signalName, signalData);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new ActivitiException("signal() can only be called on a " + SignallableActivityBehavior.class.getName() + " instance");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Apr 2011 10:27:21 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48131#M27449</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-04-19T10:27:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a custom activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48132#M27450</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you for implementing this so fast! This is a great help so I don't have to merge every time ClassDelegate changes or every time I checkout a new workingcopy. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it possible to also implement an additional method in RuntimeService that look like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;nbsp; &lt;BR /&gt;public void signal(String activityInstanceId, Object o){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; commandExecutor.execute(new SignalCmd(activityInstanceId, null, o));&lt;BR /&gt;}&lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Apr 2011 12:19:41 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-create-a-custom-activity/m-p/48132#M27450</guid>
      <dc:creator>sascha1</dc:creator>
      <dc:date>2011-04-20T12:19:41Z</dc:date>
    </item>
  </channel>
</rss>

