<?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: JavaDelegates, custom nodes, configuration and use in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/javadelegates-custom-nodes-configuration-and-use/m-p/48660#M27878</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I've been testing the behavior on 5.8 over the weekend and there seem to be some interesting changes in the delegate behavior.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The delegates now do appear to be instance-specific and can be configured differently, even multiple times within a process. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;They now also seem to handle expressions, which can be declared via member properties, and can be evaluated at execution time, even referring to spring variables. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is very nice!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was wondering though - I'd like the code I'm actually delegating to - the business logic - to be a spring bean, which is invoked by the delegate. What's the best way from the delegate to get to the engine to be able to resolve beans? I could pass the business logic spring bean in the expressions, but this seems to be counter-intuitive to a user. Is there some way to request an arbitrary bean from what I have available - the DelegateExecution - or should I use some other means?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, on the topic of the generation of the bpm20 xmls, it is strange that this code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;FieldExtensionsExport.java&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (FieldExtension fieldExtension : fieldExtensionList) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(fieldExtension.getFieldname() != null &amp;amp;&amp;amp; fieldExtension.getFieldname().length() &amp;gt; 0 &amp;amp;&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldExtension.getExpression() != null &amp;amp;&amp;amp; fieldExtension.getExpression().length() &amp;gt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, "field", ACTIVITI_EXTENSIONS_NAMESPACE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeAttribute("name", fieldExtension.getFieldname());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fieldExtension.getExpression().contains("${")) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, "expression", ACTIVITI_EXTENSIONS_NAMESPACE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, "string", ACTIVITI_EXTENSIONS_NAMESPACE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeCharacters(fieldExtension.getExpression());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeEndElement();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeEndElement();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;is not called from ServiceTaskExport, which has the rather less powerful:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (serviceTask.getResultVariableName() != null &amp;amp;&amp;amp; serviceTask.getResultVariableName().length() &amp;gt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeAttribute(ACTIVITI_EXTENSIONS_PREFIX, ACTIVITI_EXTENSIONS_NAMESPACE, "resultVariableName", serviceTask.getResultVariableName());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;The difference is that since the custom node editor always creates a servicetask, there is no way to generate variable expressions using the custom nodes. Would it be reasonable for me to add a Jira for an enhancement for this?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Dec 2011 03:39:34 GMT</pubDate>
    <dc:creator>msandoz</dc:creator>
    <dc:date>2011-12-19T03:39:34Z</dc:date>
    <item>
      <title>JavaDelegates, custom nodes, configuration and use</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/javadelegates-custom-nodes-configuration-and-use/m-p/48659#M27877</link>
      <description>I read this: Since the Java class instance is reused, the injection only happens once, when the serviceTask is called the first time. When the fields are altered by your code, the values won't be re-injected so you should treat them as immutable and don't make any changes to them.I defined several c</description>
      <pubDate>Sat, 17 Dec 2011 15:39:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/javadelegates-custom-nodes-configuration-and-use/m-p/48659#M27877</guid>
      <dc:creator>msandoz</dc:creator>
      <dc:date>2011-12-17T15:39:35Z</dc:date>
    </item>
    <item>
      <title>Re: JavaDelegates, custom nodes, configuration and use</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/javadelegates-custom-nodes-configuration-and-use/m-p/48660#M27878</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I've been testing the behavior on 5.8 over the weekend and there seem to be some interesting changes in the delegate behavior.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The delegates now do appear to be instance-specific and can be configured differently, even multiple times within a process. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;They now also seem to handle expressions, which can be declared via member properties, and can be evaluated at execution time, even referring to spring variables. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is very nice!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was wondering though - I'd like the code I'm actually delegating to - the business logic - to be a spring bean, which is invoked by the delegate. What's the best way from the delegate to get to the engine to be able to resolve beans? I could pass the business logic spring bean in the expressions, but this seems to be counter-intuitive to a user. Is there some way to request an arbitrary bean from what I have available - the DelegateExecution - or should I use some other means?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, on the topic of the generation of the bpm20 xmls, it is strange that this code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;FieldExtensionsExport.java&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (FieldExtension fieldExtension : fieldExtensionList) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(fieldExtension.getFieldname() != null &amp;amp;&amp;amp; fieldExtension.getFieldname().length() &amp;gt; 0 &amp;amp;&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldExtension.getExpression() != null &amp;amp;&amp;amp; fieldExtension.getExpression().length() &amp;gt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, "field", ACTIVITI_EXTENSIONS_NAMESPACE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeAttribute("name", fieldExtension.getFieldname());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fieldExtension.getExpression().contains("${")) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, "expression", ACTIVITI_EXTENSIONS_NAMESPACE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, "string", ACTIVITI_EXTENSIONS_NAMESPACE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeCharacters(fieldExtension.getExpression());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeEndElement();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeEndElement();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;is not called from ServiceTaskExport, which has the rather less powerful:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (serviceTask.getResultVariableName() != null &amp;amp;&amp;amp; serviceTask.getResultVariableName().length() &amp;gt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtw.writeAttribute(ACTIVITI_EXTENSIONS_PREFIX, ACTIVITI_EXTENSIONS_NAMESPACE, "resultVariableName", serviceTask.getResultVariableName());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;The difference is that since the custom node editor always creates a servicetask, there is no way to generate variable expressions using the custom nodes. Would it be reasonable for me to add a Jira for an enhancement for this?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Dec 2011 03:39:34 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/javadelegates-custom-nodes-configuration-and-use/m-p/48660#M27878</guid>
      <dc:creator>msandoz</dc:creator>
      <dc:date>2011-12-19T03:39:34Z</dc:date>
    </item>
    <item>
      <title>Re: JavaDelegates, custom nodes, configuration and use</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/javadelegates-custom-nodes-configuration-and-use/m-p/48661#M27879</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;There might be a specific reason for that, but you should certainly file an issue so we can look into it. If you do, please reference this thread so we can lookup the details.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Dec 2011 08:26:46 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/javadelegates-custom-nodes-configuration-and-use/m-p/48661#M27879</guid>
      <dc:creator>tiesebarrell</dc:creator>
      <dc:date>2011-12-19T08:26:46Z</dc:date>
    </item>
    <item>
      <title>Re: JavaDelegates, custom nodes, configuration and use</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/javadelegates-custom-nodes-configuration-and-use/m-p/48662#M27880</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;ACT-1033 - ServiceTaskExport does not take advantage of expressions&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for the export issues.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I will start a new thread on the other issue.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Dec 2011 12:09:40 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/javadelegates-custom-nodes-configuration-and-use/m-p/48662#M27880</guid>
      <dc:creator>msandoz</dc:creator>
      <dc:date>2011-12-19T12:09:40Z</dc:date>
    </item>
  </channel>
</rss>

