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

  2. 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/M2Rice/pom.xml
    <dependencies>
    ...
      <dependency>
        <groupId>org.kuali.rice</groupId>
        <artifactId>rice-ksb</artifactId>
        <version>0.9.3</version>
      </dependency>
    </dependencies>
    
    <repositories>
      <repository>
        <id>kuali</id>
        <name>Kuali Repository</name>
        <url>https://test.kuali.org/maven/</url>
      </repository>
    </repositories>
    

  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/M2Rice/src/main/webapp/WEB-INF/web.xml
    <web-app>
      <display-name>M2Rice</display-name>
      
      <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>
    
    </web-app>
    

  4. Create Rice Runtime Configuration File
    In \M2Rice\src\main\resources, create a new file called M2Rice-config.xml
    Code Block
    title/M2Rice/src/main/resources/M2Rice-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">classpath: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>
    

  5. 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
    

  6. Import M2Rice as an Eclipse project
    Start Eclipse
    Select C:\Development\KualiRice.workspace as your workspace
    Go to File -> Import -> Existing projects into Workspace
    Select C:\Development\KualiRice.workspace\M2Rice as the root directory and click Finish


  7. Embed the Kuali Service Bus and Kuali Enterprise Workflow
    In the project structure, right-click on src/main/resources, then New -> File
    Name the file M2Rice-RiceSpringBeans.xml
    Configure the Spring Beans as follows:
    Code Block
    title/M2Rice/src/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: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>
    

  8. Build WAR File
    Back at the command prompt, navigate to C:\Development\KualiRice.workspace\M2Rice
    Generate the WAR file:
    Code Block
    C:\Development\KualiRice.workspace\M2Rice> mvn package
    
    

  9. Deploy M2Rice Application
    Copy \M2Rice\target\M2Rice.war to %CATALINA_HOME%\webapps
    Start Tomcat
    Open the URL: http://localhost:8080/M2Rice/index.jsp

...