Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Create Maven Project
    Open a command prompt
    Navigate to C:\Development\KualiRice.workspace
    Create a web application project using the maven-archetype-webapp archetype (aka project template)
    Code Block
    C:\Development\KualiRice.workspace\M2Rice> mvn archetype:create -DgroupId=edu.ucdavis.iet -DartifactId=M2Rice -DarchetypeArtifactId=maven-archetype-webapp
    
    This creates a directory named M2Rice (after the artifactId) in C:\Development\KualiRice.workspace
    Import Project into Eclipse
    Start Eclipse
    Go to File -> New -> Project -> Maven Project
    Check the Use default Workspace location box and click Next
    Select Internal as the catalog
    From the list of archetypes, select the maven-archetype-webapp Arctifact Id and click Next
    Image Removed
    For Group Id, enter edu.ucdavis.iet
    For Artifact Id, enter M2Rice
    Image Removed
    Click Finish

  2. Embed the Kuali Service Bus and Kuali Enterprise Workflow Identify Rice dependencies
    Add the following to your pom.xml Add Kuali dependencies
    In Windows Explorer, navigate to C:\Development\KualiRice.workspace\M2Rice and find pom.xml
    Add the following code to pom.xml:
    Code Block
    title
    pom
    M2Ricepom.xml
    
    <dependencies>
    ...
      <dependency>
        <groupId>org.kuali.rice</groupId>
        <artifactId>rice-ksb</artifactId>
        <version>0.9.3</version>
      </dependency>
    </dependencies>
    
    <repository>
    	<id>kuali</id>
    	<name>Kuali Repository</name>
    	<url>https://test.kuali.org/maven/</url>
    </repository>
    
    <dependency> <groupId>org.kuali.rice</groupId> <artifactId>rice-ksb</artifactId> <version>0.9.3</version> </dependency> Configure KSB Dispatcher Servlet

  3. Configure the Kuali Service Bus Dispatcher Servlet
    Navigate to \M2Rice\src\main\webapp\WEB-INF and find web.xml
    Add the following code to web.xml
    Code Block
    title
    /WEB-INF/web
    M2RicesrcmainwebappWEB-INFweb.xml
    
    <servlet>
      <servlet-name>remoting</servlet-name>
      <servlet-class>edu.iu.uis.eden.messaging.servlet.KSBDispatcherServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>remoting</servlet-name>
      <url-pattern>/remoting/*</url-pattern>
    </servlet-mapping>
    

    • Create Rice runtime configuration file
      In the project structure, right-click on src/main/webapp/WEB-INF, then New -> File
      Name the file \M2Rice\src\main\resources, create a new file called M2Rice-config.xml
      Code Block
      titlesrc/main/webapp/WEB-INF/M2Rice-M2RicesrcmainresourcesM2Rice-config.xml
      <config>
      
          <!-- Core -->
          <param name="application.url">http://localhost:8080/M2Rice</param>
      
          <!-- Database -->
          <param name="datasource.url">jdbc:mysql://localhost:3306/kricedev</param>
          <param name="datasource.username">KRICEDEV</param>
          <param name="datasource.password">*** password ***</param>
          <param name="datasource.ojb.platform">MySQL</param>
          <param name="datasource.platform">org.kuali.rice.database.platform.MySQLPlatform</param>
          <param name="datasource.driver.name">com.mysql.jdbc.Driver</param>
          <param name="datasource.pool.validationQuery">select 1 from dual</param>
          <param name="datasource.pool.maxWait">30000</param>
          <param name="datasource.pool.minSize">2</param>
          <param name="datasource.pool.maxSize">5</param>
      
          <!-- KSB -->
          <param name="serviceServletUrl">${application.url}/remoting/</param>
          <param name="keystore.file">/usr/local/rice/rice.keystore</param>
          <param name="keystore.alias">*** key alias ***</param>
          <param name="keystore.password">*** password ***</param>
      
          <!-- KEW -->
          <param name="workflow.url">${application.url}/en</param>
          <param name="client.protocol">embedded</param>
          <param name="plugin.dir">/usr/local/rice/plugins</param>
          <param name="attachment.dir.location">/usr/local/rice/kew_attachments</param>
      
      </config>
      

  4. Generate an Eclipse Project
    At the command prompt, navigate to C:\Development\KualiRice.workspace\M2Rice
    Generate the Eclipse project:
    Code Block
    
    C:\Development\KualiRice.workspace\M2Rice> mvn eclipse:eclipse
    

  5. Import Project into Eclipse
    Start Eclipse
    Go to File -> New -> Project -> Maven Project
    Check the Use default Workspace location box and click Next
    Select Internal as the catalog
    From the list of archetypes, select the maven-archetype-webapp Arctifact Id and click Next
    Image Added
    For Group Id, enter edu.ucdavis.iet
    For Artifact Id, enter M2Rice
    Image Added
    Click Finish

  6. Embed the Kuali Service Bus and Kuali Enterprise Workflow
    • Configure Spring Beans
      In the project structure, right-click on src/main/resources, then New -> File
      Name the file M2Rice-RiceSpringBeans.xml
      Code Block
      titlesrc/main/resources/M2Rice-RiceSpringBeans.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
      <beans>
      
      <bean id="config" class="org.kuali.rice.config.spring.ConfigFactoryBean">
        <property name="configLocations">
          <list>
            <value>classpath:WEB-INF/M2Rice-config.xml</value>
          </list>
        </property>
      </bean>
      
      <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="properties" ref="configProperties" />
      </bean>
      
      <bean id="configProperties" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetObject" ref="config" />
        <property name="targetMethod" value="getProperties" />
      </bean>
      
      <bean id="rice" class="org.kuali.rice.config.RiceConfigurer">
        <property name="dataSource" ref="riceDataSource" />
        <property name="transactionManager" ref="jotm" />
        <property name="userTransaction" ref="jotm" />
        <property name="properties">
          <props>
            <prop key="message.entity">M2Rice</prop>
            <prop key="message.persistence">true</prop>
      
            <prop key="message.delivery">asynchronous</prop>
            <prop key="Routing.ImmediateExceptionRouting">false</prop>
            <prop key="RouteQueue.timeIncrement">1000</prop>
            <prop key="RouteQueue.maxRetryAttempts">3</prop>
            <prop key="useQuartzDatabase">true</prop>
            <prop key="ksb.org.quartz.scheduler.instanceId">AUTO</prop>
            <prop key="ksb.org.quartz.scheduler.instanceName">KSBScheduler</prop>
            <prop key="ksb.org.quartz.jobStore.isClustered">true</prop>
            <prop key="ksb.org.quartz.jobStore.tablePrefix">KR_QRTZ_</prop>
          </props>
        </property>
        <property name="modules">
          <list>
            <bean class="edu.iu.uis.eden.messaging.config.KSBConfigurer">
              <property name="serviceServletUrl" value="${serviceServletUrl}" />
            </bean>
            <bean class="org.kuali.workflow.config.KEWConfigurer">
              <property name="dataSource" ref="riceDataSource"/>
            </bean>
          </list>
        </property>
      </bean>
      
      <bean id="ksbConfigurer" class="edu.iu.uis.eden.config.spring.KSBSpringConfigurer">
      	<property name="clientProtocol" value="embedded" />
      	<property name="messageEntity" value="M2Rice" />
      	<property name="dataSource" ref="riceDataSource" />
      	<property name="transactionManager">
      		<ref bean="jotm" />
      	</property>
      	<property name="userTransaction">
      		<ref bean="jotm" />
      	</property>
      </bean>
      
      <bean id="riceDataSource" class="org.kuali.rice.database.XAPoolDataSource">
      	<property name="transactionManager" ref="jotm" />
      	<property name="driverClassName" value="${datasource.driver.name}" />
      	<property name="url" value="${datasource.url}" />
      	<property name="maxSize" value="${datasource.pool.maxSize}" />
      	<property name="minSize" value="${datasource.pool.minSize}" />
      	<property name="maxWait" value="${datasource.pool.maxWait}" />
      	<property name="validationQuery" value="${datasource.pool.validationQuery}" />
      	<property name="username" value="${datasource.username}" />
      	<property name="password" value="${datasource.password}" />
      </bean>
      
      <bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean" />
      
      </beans>
      

...