<?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 Spring and JPA vs Activiti and call activity in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162348#M116235</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Good morning Activiti,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Guys I need your help (big time) concerning the integration of Activiti with Spring and JPA.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;The context.&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My bpmn files contain a text-annotation with a customized version number&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;textAnnotation id="versionNumber"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;text&amp;gt;1.10&amp;lt;/text&amp;gt; &lt;BR /&gt;&amp;lt;/textAnnotation&amp;gt;&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have an entity called ProcessDefVersion.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;@Entity&lt;BR /&gt;@Table(name = "RF_PROCDEF_VERSION")&lt;BR /&gt;public class ProcessDefVersion implements java.io.Serializable, Persistable&amp;lt;String&amp;gt; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private static final long serialVersionUID = 4348704348958182088L;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Id&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@GeneratedValue&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Column(name = "ID")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private String id;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Column(name = "PROC_ID")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Basic&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private String processId;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Column(name = "PROC_KEY")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Basic&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private String processKey;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Column(name = "PROC_VERSION")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Basic&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;private String processVersion;&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I also have a repository, an interface that communicates with the corresponding table in the db.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;@Repository&lt;BR /&gt;@Transactional&lt;BR /&gt;public interface ProcessDefRepository extends JpaRepository&amp;lt;ProcessDefVersion, String&amp;gt;, JpaSpecificationExecutor&amp;lt;ProcessDefVersion&amp;gt; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Query(value = "select pdv from ProcessDefVersion pdv where pdv.processKey = ?1 order by pdv.processVersion desc")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;lt;ProcessDefVersion&amp;gt; findByProcessKey(String processKey);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I deploy a workflow I save the corresponding information (process id, key and version) into the RF_PROCDEF_VERSION table.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When I want to start a specific version of the workflow, I search in this table thanks to the key and the version number, the id of the corresponding process I want to instantiate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So far so good.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My issue comes with the use of sub processes, and, I think (this is where my comprehension is limited), &lt;/SPAN&gt;&lt;STRONG&gt;with how the Application Context passes information to the process engine&lt;/STRONG&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The issue :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When calling a sub process, thanks to call activity: My process engine loads a customized ActivityBehaviorFactory, that uses a customized CallActivityBehavior.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="dataSource" ref="dataSource" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="transactionManager" ref="transactionManager" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="databaseSchemaUpdate" value="true" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="jobExecutorActivate" value="false" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="activityBehaviorFactory" ref="customizedActivityBehaviorFactory" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;bean id="customizedActivityBehaviorFactory" class="com.yo.poc.util.CustomizedActivityBehaviorFactory"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CustomizedCallActivityBehavior will then try to load a service implementation ProcessDefVersionServiceImp that will use ProcessDefRepository to query for the needed information: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Same trick, a specific version of a main process will start an instance of a specific version of the sub process.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;After retrieving what should be the version number of the sub process (this is hard coded so far, if it wasn't I would I face the same issue I'm trying to describe), my application will look in RF_PROCDEF_VERSION for the id of the corresponding sub process I want to instantiate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;The issue: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;Before calling my sub process, my spring configuration does its job by scanning for annotations, autowiring the services, the repository.&lt;BR /&gt;But when the sub process starts, it doesn't any more.&lt;/STRONG&gt;&lt;SPAN&gt; And I think this is what I have to resolve !&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Not finding the solution I had two approaches:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. I tried adding all the configuration related to jpa in the activiti.cfg.xml. Not helping&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. I started injecting the beans from inside activiti.cfg.xml, and that was not too bad. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My different beans are not null any more and do their job.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But I can't inject an interface. And my repository ProcessDefRepository is an interface, wired in ProcessDefVersionServiceImpl.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="dataSource" ref="dataSource" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="transactionManager" ref="transactionManager" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="databaseSchemaUpdate" value="true" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="jobExecutorActivate" value="false" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="activityBehaviorFactory" ref="customizedActivityBehaviorFactory" /&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;bean id="customizedActivityBehaviorFactory" class="com.yo.poc.util.CustomizedActivityBehaviorFactory"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="callActivityBehaviour" ref="customizedCallActivityBehavior" /&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;bean id="customizedCallActivityBehavior" class="com.yo.poc.util.CustomizedCallActivityBehavior"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property name="processDefVersionService" ref="processDefVersionService" /&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;bean id="processDefVersionService" class="com.yo.poc.service.impl.ProcessDefVersionServiceImpl"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The more I go into this direction, the more hacky is my implementation. And I really feel like I'm missing something when loading the Process Engine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When in CustomizedActivityBehaviorFactory, wiring CustomizedCallActivityBehavior with spring annotation should work. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;And then, when in CustomizedCallActivityBehavior, wiring ProcessDefVersionServiceImpl should work too …&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you guys direct me to either a good documentation or a start of a solution ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks so much&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 21 Mar 2014 14:08:30 GMT</pubDate>
    <dc:creator>zze_one</dc:creator>
    <dc:date>2014-03-21T14:08:30Z</dc:date>
    <item>
      <title>Spring and JPA vs Activiti and call activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162348#M116235</link>
      <description>Good morning Activiti,Guys I need your help (big time) concerning the integration of Activiti with Spring and JPA.The context.My bpmn files contain a text-annotation with a customized version number&amp;lt;textAnnotation id="versionNumber"&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;text&amp;gt;1.10&amp;lt;/text&amp;gt; &amp;lt;/textAnnotation&amp;gt;‍‍‍‍‍</description>
      <pubDate>Fri, 21 Mar 2014 14:08:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162348#M116235</guid>
      <dc:creator>zze_one</dc:creator>
      <dc:date>2014-03-21T14:08:30Z</dc:date>
    </item>
    <item>
      <title>Re: Spring and JPA vs Activiti and call activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162349#M116236</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Could you include the implementation of your CustomizedActivityBehaviorFactory class?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Mar 2014 15:54:02 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162349#M116236</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2014-03-21T15:54:02Z</dc:date>
    </item>
    <item>
      <title>Re: Spring and JPA vs Activiti and call activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162350#M116237</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;sure thing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for having a look !&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Mar 2014 16:40:04 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162350#M116237</guid>
      <dc:creator>zze_one</dc:creator>
      <dc:date>2014-03-21T16:40:04Z</dc:date>
    </item>
    <item>
      <title>Re: Spring and JPA vs Activiti and call activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162351#M116238</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;problem solved.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In CustomizedActivityBehaviorFactory, I Autowired my CustomizedCallActivityBehavior.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I also had to Inject the SpringProcessEngineConfiguration in the Rest Controller I was qwering.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In dispatcher-servlet.xml: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;import resource="classpath:activiti.cfg.xml" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Mar 2014 21:21:33 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162351#M116238</guid>
      <dc:creator>zze_one</dc:creator>
      <dc:date>2014-03-26T21:21:33Z</dc:date>
    </item>
    <item>
      <title>Re: Spring and JPA vs Activiti and call activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162352#M116239</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It makes sense then it didn't work before &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for posting back the solution to your problem!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Apr 2014 19:12:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162352#M116239</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2014-04-01T19:12:36Z</dc:date>
    </item>
    <item>
      <title>Re: Spring and JPA vs Activiti and call activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162353#M116240</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Joram,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm attaching my CustomizedActivityBehaviorFactory class.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The purpose of this class is to create a CustomizedCallActivityBehavior bean instead of a CallActivityBehavior to manage call activities.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm overriding createCallActivityBehavior(CallActivity callActivity) for this purpose.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This solution works fine but I feel like it's not the best way of doing it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If tomorrow you guys make changes in CallActivityBehavior, those changes won't be applied to my code. So maintainability is not optimized.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there a way to / do you have any suggestion for me to / provide a new CustomizedCallActivityBehavior without overriding the entire method ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In &amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;@Override&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; public CallActivityBehavior createCallActivityBehavior(CallActivity callActivity) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; String expressionRegex = "\\$+\\{+.+\\}";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; /**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; * In process-appContext.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; * CustomizedCallActivityBehavior's scope is described as 'prototype'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; * in order for each call Activity to have a newly created bean &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; * */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; callActivityBehaviour = (CustomizedCallActivityBehavior) appContext.getBean("customizedCallActivityBehavior");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (StringUtils.isNotEmpty(callActivity.getCalledElement()) &amp;amp;&amp;amp; callActivity.getCalledElement().matches(expressionRegex)) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callActivityBehaviour.setProcessDefinitionExpression(expressionManager.createExpression(callActivity.getCalledElement()));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callActivityBehaviour.setProcessDefinitonKey(callActivity.getCalledElement());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (IOParameter ioParameter : callActivity.getInParameters()) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (StringUtils.isNotEmpty(ioParameter.getSourceExpression())) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Expression expression = expressionManager.createExpression(ioParameter.getSourceExpression().trim());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callActivityBehaviour.addDataInputAssociation(new SimpleDataInputAssociation(expression, ioParameter.getTarget()));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callActivityBehaviour.addDataInputAssociation(new SimpleDataInputAssociation(ioParameter.getSource(), ioParameter.getTarget()));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (IOParameter ioParameter : callActivity.getOutParameters()) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (StringUtils.isNotEmpty(ioParameter.getSourceExpression())) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Expression expression = expressionManager.createExpression(ioParameter.getSourceExpression().trim());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callActivityBehaviour.addDataOutputAssociation(new MessageImplicitDataOutputAssociation(ioParameter.getTarget(), expression));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callActivityBehaviour.addDataOutputAssociation(new MessageImplicitDataOutputAssociation(ioParameter.getTarget(), ioParameter.getSource()));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return callActivityBehaviour;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The only thing that changes is &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callActivityBehaviour = (CustomizedCallActivityBehavior) appContext.getBean("customizedCallActivityBehavior");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (StringUtils.isNotEmpty(callActivity.getCalledElement()) &amp;amp;&amp;amp; callActivity.getCalledElement().matches(expressionRegex)) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callActivityBehaviour.setProcessDefinitionExpression(expressionManager.createExpression(callActivity.getCalledElement()));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callActivityBehaviour.setProcessDefinitonKey(callActivity.getCalledElement());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Apr 2014 15:51:20 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162353#M116240</guid>
      <dc:creator>zze_one</dc:creator>
      <dc:date>2014-04-23T15:51:20Z</dc:date>
    </item>
    <item>
      <title>Re: Spring and JPA vs Activiti and call activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162354#M116241</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I don't see any way to make your code less tied to the implementation right now, other than changing activiti-code…&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Apr 2014 07:29:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162354#M116241</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2014-04-24T07:29:45Z</dc:date>
    </item>
    <item>
      <title>Re: Spring and JPA vs Activiti and call activity</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162355#M116242</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Frederik&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Apr 2014 17:48:04 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-and-jpa-vs-activiti-and-call-activity/m-p/162355#M116242</guid>
      <dc:creator>zze_one</dc:creator>
      <dc:date>2014-04-29T17:48:04Z</dc:date>
    </item>
  </channel>
</rss>

