<?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 Executing code from the web client in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/executing-code-from-the-web-client/m-p/15008#M6539</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Something I've found useful when developing with Alfresco is the ability to execute different sorts of code from the web client. Sometimes its nice to be able to run some code against the repository without having to set up complex test data in a unit test or run a remote client. So I created a simple action executor that (with a bit of configuration) can execute any class that implements a particular interface.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The executor looks like this…&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;public class GenericActionExecuter extends ActionExecuterAbstractBase {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final String NAME = "action-generic";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private ActionExecutable target;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private List&amp;lt;Object&amp;gt; executionArgs;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setExecutionArgs(List&amp;lt;Object&amp;gt; executionArgs) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.executionArgs = executionArgs;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void executeImpl(Action ruleAction, NodeRef actionedUponNodeRef) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; target.doExecute(ruleAction, actionedUponNodeRef, executionArgs);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void addParameterDefintions(List&amp;lt;ParameterDefinition&amp;gt; paramList) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; target.doAddParameterDefintions(paramList);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setTarget(ActionExecutable target) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.target = target;&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;/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;Any class that implements this interface…&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;public interface ActionExecutable {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void doExecute(Action ruleAction, NodeRef actionedUponNodeRef, List&amp;lt;Object&amp;gt; args);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void doAddParameterDefintions(List&amp;lt;ParameterDefinition&amp;gt; paramList);&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;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;…can be wired by Spring to be executed from the web client's run action interface. Not a replacement for a unit test, but a quick way to run some code against a repository and visually see the results.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 04 Apr 2006 12:41:30 GMT</pubDate>
    <dc:creator>peterm</dc:creator>
    <dc:date>2006-04-04T12:41:30Z</dc:date>
    <item>
      <title>Executing code from the web client</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/executing-code-from-the-web-client/m-p/15008#M6539</link>
      <description>Something I've found useful when developing with Alfresco is the ability to execute different sorts of code from the web client. Sometimes its nice to be able to run some code against the repository without having to set up complex test data in a unit test or run a remote client. So I created a simp</description>
      <pubDate>Tue, 04 Apr 2006 12:41:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/executing-code-from-the-web-client/m-p/15008#M6539</guid>
      <dc:creator>peterm</dc:creator>
      <dc:date>2006-04-04T12:41:30Z</dc:date>
    </item>
    <item>
      <title>Re: Executing code from the web client</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/executing-code-from-the-web-client/m-p/15009#M6540</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;Sounds good &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Perhaps we should create a project on the &lt;/SPAN&gt;&lt;A href="http://forge.alfresco.com" rel="nofollow noopener noreferrer"&gt;forge&lt;/A&gt;&lt;SPAN&gt; where additional actions, such as this, can be easily contributed?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Roy&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Apr 2006 14:04:15 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/executing-code-from-the-web-client/m-p/15009#M6540</guid>
      <dc:creator>rwetherall</dc:creator>
      <dc:date>2006-04-04T14:04:15Z</dc:date>
    </item>
  </channel>
</rss>

