Plugin

The following sections describes how to install the Plugin.

First use the 'grails install-plugin' goal and install the plugin sources in your application. Secondly, there are two additional grails plugins that should be installed in the application. These are:

  1. Quartz plugin (tested with version grails-quartz-0.2.zip);
  2. RichUI plugin (tested with version grails-richui-0.2.zip);

    Then the Grailsflow-core plugin needs to be configured. There is a list of Spring beans that can/should be configured in your application, if it uses the Grailsflow-core plugin.

    The following configuration (common beans) are already configured in GrailsflowCoreGrailsPlugin.groovy and have default values. You can change the default configuration by specifying new beans values.

  1. applicationContext-grailsflow-common beans:

  2.   

    <!-- Necessary for uploading files. -->
    < bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    < property name="maxUploadSize" value="1000000"/>
    < /bean>

    <!-- Path (folder) for process scripts.
    The path is relative to workarea resources path -->
    < bean id="processesPath" class="java.lang.String">
    < constructor-arg value="processes"/>
    < /bean>

    <!-- Path (folder) for actions scripts.
    The path is relative to workarea resources path -->
    < bean id="actionsPath" class="java.lang.String">
    < constructor-arg value="actions"/>
    < /bean>

    < !-- Root path (folder) for stored documents.
    The path is relative to workarea resources path -->
    < bean id="documentsPath" class="java.lang.String">
    < constructor-arg value="documents"/>
    < /bean>

    <!-- Important for action flow and class should implements ActionFactory interface. -->
    < bean id="actionFactory" class="com.jcatalog.grailsflow.actions.GrailsflowActionFactory">
    < property name="workareaPathProvider" ref="workareaPathProvider"/>
    < property name="actionsPath" ref="actionsPath"/>
    < /bean>

    <!-- Important for process flow and execution and class should implements ProcessFactory
    interface. -->
    < bean id="processFactory" class="com.jcatalog.grailsflow.engine.GrailsflowProcessFactory">
    < property name="actionFactory" ref="actionFactory"/>
    < property name="workareaPathProvider" ref="workareaPathProvider"/>
    < property name="processesPath" ref="processesPath"/>
    /bean>

    <!-- Property is used for paging, defines maximum size for items list. -->
    < bean id="maxResultSize" class = "java.lang.Integer">
    < constructor-arg> < value> 10< /value> < /constructor-arg>
    < /bean>

    <!-- Application ID or name of external application: especially important if there are
    several applications which share the DB but have Grailsflow-core plugin installed in both
    of them. In this case Grailsflow Engine needs to know with which application it
    currently works. Can have an empty value! -->
    < bean id="appExternalID" class = "java.lang.String">
    < constructor-arg value = "grailsflow"/>
    < /bean>

    <!-- Common configs for worklist providers -->
    < bean id="abstractProvider" class="com.jcatalog.grailsflow.worklist.AbstractWorklistProvider" abstract="true"/>
    The next configurations are needed for interfaces that you need to provide an implementation for. We provide some out of the box implementation that you can change or you can create your own implementation. They deal with application security implementation, structure of folders, mail libraries, etc..

  3. applicationContext-grailsflow-workarea beans:
  4.  
    <!-- Configuration for workareaPathProvider, should implement
    WorkareaPathProvider class
    The work area is a path were Documents that are uploaded in processes are stored as files.
    -->
    < bean id="workareaPathProvider" class="com.jcatalog.grailsflow.workarea.FooPathProvider">
    < property name="resourcesPath" value="workarea"/>
    < property name="resourcesUrl" value="/workarea"/>
    < /bean>
  5. applicationContext-grailsflow-worklist beans:
  6.   
    <!-- Configuration for worklistProvider, the implementation class should extend
    AbstractWorklistProvider class. Important to specify 'parent':
    parent="abstractProvider" - is a bean, configured in Grailsflow-core plugin
    -->
    < bean id="worklistProvider" class="com.jcatalog.grailsflow.worklist.FooWorklistProvider" parent="abstractProvider">
  7. applicationContext-grailsflow-security beans:
  8.   
    <!-- Configuration for securityHelper class, should implement SecurityHelper
    interface. -->
    < bean id="securityHelper" class="com.jcatalog.grailsflow.security.FooSecurityHelper" scope="singleton"/>
  9. applicationContext-grailsflow-client beans:
  10.   
    <!-- Configuration for client Executor, the implementation class should extend
    ClientExecutor class. Especially important if you want to use external calls and
    asynchronous actions in your application. -->
    < bean id="clientExecutor" class="com.jcatalog.grailsflow.client.FooHTTPClientExecutor">
  11. applicationContext-grailsflow-mail beans:
  12.   
    <!-- Configuration for sendMailHelper, should implement
    SendMailHelper interface. -->
    <bean id="sendMailHelper" class="com.jcatalog.grailsflow.mail.FooMailHelper">
    <property name="mailHost" value="neon.scand"/>
    <property name="sender" value="info@neon.scand"/>
    </bean>

This product is based on Groovy and Grails. (http://www.grails.org)