Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Pre-Requisites
  1. User Accounts to Rice Databases
  2. PSL Firewall Access
  3. Data Center Firewall Access
  4. Access to IET:ADDA Subversion Repository
  5. Access to IET:ADDA Maven Repository
  6. Access to JIRA
  7. Completed Kuali Rice SLAs and T&Cs
Initial Setup

Setup Project Directories

  1. Create a directory where you will store working copies of files to be checked out from Subversion, such as <PATH>/subversion

Checkout Sample Embedded Client Project

  1. Navigate to <PATH>/subversion
  2. [<PATH>/subversion]$ svn co https://mware.ucdavis.edu/svn/kuali/RiceApplications/sample-embedded-client/trunk/sample-embedded-client
    

Checkout the Kuali Impex Tool

[<PATH>/subversion]$ svn co https://test.kuali.org/svn/kul-cfg-dbs/trunk

This creates a directory <PATH>/subversion/trunk. To make the directory structure more readable, rename trunk to kul-cfg-dbs.


Checkout the Sample Embedded Client Database Configuration Files

[<PATH>/subversion]$ svn co https://test.kuali.org/svn/rice-cfg-dbs/rice-client-db/branches/rice-release-1-0-0-br

This creates a directory <PATH>/subversion/rice-release-1-0-0-br. To make the directory structure more readable, rename rice-release-1-0-0-br to rice-client-db.


Prepare Database Import Configuration

  1. Copy <PATH>/subversion/kul-cfg-dbs/impex/impex-build.properties to <HOME>/impex-build.properties
  2. Set the following property values in /wiki/spaces/UCDK/pages/119111688:

    Property

    Sample Value

    svn.module

    rice-cfg-dbs

    svn.base

    branches/rice-release-1-0-0-br

    torque.schema.dir

    <PATH>/subversion/rice-client-db

    drivers.directory

    <path to your client database JDBC driver> Use forward slashes, even in Windows!!!

    import.torque.database.url

    jdbc:oracle:thin:@<DB Host>.ucdavis.edu:1521:<DB SID>

    import.torque.database.user

    <user you will log in as> SYS, schema, etc.

    import.torque.database.schema

    <SCHEMA> Must be in UPPER CASE

    import.torque.database.password

    <password>


Set Environment Variables

  1. Navigate to <HOME>/subversion/kul-cfg-dbs/impex
  2. Set JAVA_HOME
    [<PATH>/subversion/kul-cfg-dbs/impex]$ export JAVA_HOME=<path to Java>
    
  3. Set the classpath
    [<PATH>/subversion/kul-cfg-dbs/impex]$ export classpath=<PATH>/subversion/kul-cfg-dbs/impex/lib
    

Execute the Database Import

  • If you're starting with a blank database:
    [<PATH>/subversion/kul-cfg-dbs/impex]$ ant import
    
  • If you're adding to an existing database:
    1. [<PATH>/subversion/kul-cfg-dbs/impex]$ ant create-ddl
      
    2. [<PATH>/subversion/kul-cfg-dbs/impex]$ ant dataxml-to-sql
      
    3. Navigate to <PATH>/subversion/rice-client-db/sql and execute the generated SQL statements.
    4. Navigate to <PATH>/subversion/rice-client-db/datasql and execute the generated SQL statements.

If you are updating the Database Configuration Files project from Kuali's Subversion repository and updating your client Rice database structure, delete <PATH>/subversion/rice-cfg-dbs/sql and /datasql subdirectories before running ant import, ant create-ddl, or ant dataxml-to-sql.

Spring Configuration
~/sample-embedded-client/src/main/resources/edu/sampleu/embedded/config/SpringBeans.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	<property name="properties" ref="configProperties" />
</bean>

<bean id="config" class="org.kuali.rice.core.config.spring.ConfigFactoryBean">
	<property name="configLocations">
		<list>
			<value>classpath:edu/sampleu/embedded/config/sample-embedded-client-config.xml</value>
		</list>
	</property>
</bean>
	
<bean id="configProperties" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
	<property name="targetObject" ref="config" />
	<property name="targetMethod" value="getProperties" />
</bean>

<bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean">
	<property name="defaultTimeout" value="${transaction.timeout}"/>
</bean>
	
<bean id="jtaTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
	<property name="transactionManager" ref="jotm"/>
	<property name="userTransaction" ref="jotm"/>
</bean>

<bean id="dataSource" class="org.kuali.rice.core.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.size}" />
	<property name="minSize" value="${datasource.initialSize}" />
	<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="nonTransactionalDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
	<property name="driverClassName" value="${datasource.driver.name}" />
	<property name="url" value="${datasource.url}" />
	<property name="maxActive" value="${datasource.pool.maxActive}" />
	<property name="minIdle" value="${datasource.minIdle}" />
	<property name="initialSize" value="${datasource.initialSize}" />
	<property name="validationQuery" value="${datasource.pool.validationQuery}" />
	<property name="username" value="${datasource.username}" />
	<property name="password" value="${datasource.password}" />
	<property name="accessToUnderlyingConnectionAllowed" value="${datasource.accessToUnderlyingConnectionAllowed}" />
</bean>

<bean id="standaloneDataSource" class="org.kuali.rice.core.database.XAPoolDataSource">
	<property name="transactionManager" ref="jotm" />
	<property name="driverClassName" value="${standalone.datasource.driver.name}" />
	<property name="url" value="${standalone.datasource.url}" />
	<property name="maxSize" value="${standalone.datasource.pool.size}" />
	<property name="minSize" value="${standalone.datasource.initialSize}" />
	<property name="maxWait" value="${standalone.datasource.pool.maxWait}" />
	<property name="validationQuery" value="${standalone.datasource.pool.validationQuery}" />
	<property name="username" value="${standalone.datasource.username}" />
	<property name="password" value="${standalone.datasource.password}" />
</bean>

<bean id="rice" class="org.kuali.rice.core.config.RiceConfigurer">
	<property name="dataSource" ref="dataSource" />
	<property name="nonTransactionalDataSource" ref="nonTransactionalDataSource"/>
	<property name="serverDataSource" ref="standaloneDataSource"/>
	<property name="transactionManager" ref="jotm" />
	<property name="userTransaction" ref="jotm" />
	<property name="serviceNamespace" value="RSEC" />
	<property name="environment" value="dev" />
	<property name="rootConfig" ref="config" />
	<property name="ksbConfigurer">
		<bean class="org.kuali.rice.ksb.messaging.config.KSBConfigurer">
			<property name="serviceServletUrl" value="${serviceServletUrl}" />
		</bean>
	</property>
	<property name="kewConfigurer">
		<bean class="org.kuali.rice.kew.config.KEWConfigurer">
			<property name="clientProtocol" value="local" />
		</bean>
	</property>
	<property name="knsConfigurer">
		<bean class="org.kuali.rice.kns.config.KNSConfigurer"/>
	</property>
	<property name="kimConfigurer">
		<bean class="org.kuali.rice.kim.config.KIMConfigurer"/>
	</property>
	<property name="kcbConfigurer">
		<bean class="org.kuali.rice.kcb.config.KCBConfigurer"/>
	</property>
</bean>
</beans>
Rice Configuration
~/sample-embedded-client/src/main/resources/edu/sampleu/embedded/config/sample-embedded-client-config.xml
<config>
	<!-- LDAP Settings -->
	<param name="ldap.url">ldaps://ldap.ucdavis.edu</param>
	<param name="ldap.base">ou=People,dc=ucdavis,dc=edu</param>
	<param name="ldap.pool">true</param>
	<param name="ldap.user">uid=my_ldap_uid,ou=Special Users,dc=ucdavis,dc=edu</param>
	<param name="ldap.password">my_ldap_password</param>
		
	<!-- Client Database Settings -->
	<param name="datasource.ojb.platform">MySQL</param>
	<param name="datasource.platform">org.kuali.rice.core.database.platform.MySQLPlatform</param>
	<param name="datasource.url">jdbc:mysql://localhost:3306/MyDB</param>
	<param name="datasource.driver.name">com.mysql.jdbc.Driver</param>
	<param name="datasource.pool.validationQuery">select 1</param>
	<param name="datasource.pool.maxWait">30000</param>
	<param name="datasource.pool.size">30</param>
	<param name="datasource.pool.maxActive">50</param>
	<param name="datasource.minIdle">7</param>
	<param name="datasource.initialSize">7</param>
	<param name="datasource.accessToUnderlyingConnectionAllowed">true</param>
	<param name="datasource.username">embeddeduser</param>
	<param name="datasource.password">embeddedpassword</param>
	
	<!--  Rice Standalone Database Settings -->
	<param name="standalone.datasource.ojb.platform">Oracle9i</param>
	<param name="standalone.datasource.platform">org.kuali.rice.core.database.platform.OraclePlatform</param>
	<param name="standalone.datasource.url">jdbc:oracle:thin:@dbhost.ucdavis.edu:1521:SID</param>
	<param name="standalone.datasource.driver.name">oracle.jdbc.driver.OracleDriver</param>
	<param name="standalone.datasource.pool.validationQuery">select 1 from dual</param>
	<param name="standalone.datasource.pool.maxWait">30000</param>
	<param name="standalone.datasource.pool.size">30</param>
	<param name="standalone.datasource.pool.maxActive">50</param>
	<param name="standalone.datasource.minIdle">7</param>
	<param name="standalone.datasource.initialSize">7</param>
	<param name="standalone.datasource.accessToUnderlyingConnectionAllowed">true</param>
	<param name="standalone.datasource.username">riceuser</param>
	<param name="standalone.datasource.password">ricepassword</param>
	
	<!--  log4j Settings -->
	<param name="log4j.reload.minutes">5</param>
	<param name="log4j.settings.path">classpath:META-INF/log4j.properties</param>

	<!--  Bus Configuration  -->
	<param name="dev.mode">false</param>
	<param name="message.persistence">true</param>
	<param name="message.delivery">async</param>
	<param name="Routing.ImmediateExceptionRouting">true</param>
	<param name="RouteQueue.timeIncrement">60000</param>
	<param name="RouteQueue.maxRetryAttempts">6</param>

	<!--  Quartz Configuration  -->
	<param name="useQuartzDatabase">true</param>
	<param name="ksb.org.quartz.scheduler.instanceName">Embedded KSB Scheduler</param>
	<param name="ksb.org.quartz.scheduler.instanceId">AUTO</param>
<!--	<param name="ksb.org.quartz.jobStore.tablePrefix">KRSB_QRTZ_</param>-->
<!--	<param name="ksb.org.quartz.jobStore.isClustered">true</param>-->
	<param name="ksb.org.quartz.threadPool.threadCount">5</param>
	<param name="ksb.org.quartz.jobStore.class">org.quartz.simpl.RAMJobStore</param>

	<!--  Workflow Upload Configuration (for stand-alone)  -->
	<param name="data.xml.pollIntervalSecs">30</param>
	<param name="initialDelaySecs">10</param>
	<param name="simpleDocumentActionsService.security">true</param>
	<param name="secure.workflowdocument.javaservice.endpoint">true</param>
	<param name="secure.workflowutility.javaservice.endpoint">true</param>
	<param name="keystore.file">security/rice.keystore</param>
	<param name="keystore.alias">rice</param>
	<param name="keystore.password">r1c3pw</param>
	
	<param name="transaction.timeout">600</param>
	<!-- Standalone Server URL -->
	<param name="serviceServletUrl">http://ricehost.ucdavis.edu/rice-context/remoting</param>
	
	<!-- XML ingester directories -->
	<param name="data.xml.root.location">/opt/ears/${environment}/en/xml</param>
	<param name="data.xml.pending.location">${data.xml.root.location}pending</param>
	<param name="data.xml.loaded.location">${data.xml.root.location}loaded</param>
	<param name="data.xml.problem.location">${data.xml.root.location}problem</param>
	<param name="attachment.dir.location">/opt/ears/</param>
	
	<!-- External Configuration Files -->
	<param name="config.location">classpath:META-INF/common-config-defaults.xml</param>
<!--	<param name="config.location">/usr/local/rice/embedded-client-config.xml</param>-->
</config>
Environment Properties
environment.properties
ldap.user=
ldap.password=

client.datasource.url=
client.datasource.username=
client.datasource.password=
datasource.pool.size=
datasource.initialSize=
datasource.pool.maxWait=
datasource.pool.validationQuery=
datasource.username=
datasource.password=
datasource.driver.name=
	
standalone.datasource.url=
standalone.datasource.username=
standalone.datasource.password=
datasource.driver.name=
datasource.pool.size=
datasource.initialSize=
datasource.pool.maxWait=
datasource.pool.validationQuery=

standalone.server.url=
Required Libraries
  1. rice-api-1.0.0
  2. rice-impl-1.0.0
  3. iet-commons-ldap-1.0.0
  4. ucd-kim-impl-1.0.0
  5. asm 3.0
  6. spring-ldap-core 1.3.0.RELEASE
Removed Libraries
  1. asm-1.5.3
  2. asm-attrs-1.5.3
  3. cglib-2.1

Reference: CXF: Dependency Incompatibility with Hibernate

Maven Configuration
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.kuali.rice</groupId>
<artifactId>embedded-client</artifactId>
<packaging>jar</packaging>
<name>embedded-client</name>
<version>1.0.0</version>
<build>
	<plugins>
		<plugin>
			<artifactId>maven-compiler-plugin</artifactId>
			<configuration>
				<source>1.5</source>
				<target>1.5</target>
			</configuration>
		</plugin>
	</plugins>
</build>

<properties>
  	<iet-commons-ldap.version>1.0.0</iet-commons-ldap.version>
  	<ucd-kim-impl.version>1.0.0RC1</ucd-kim-impl.version>
  	<rice.version>1.0.0-SNAPSHOT</rice.version>
	<asm.version>3.0</asm.version>
</properties>

<dependencies>
	<dependency>
    		<groupId>edu.ucdavis.iet.commons</groupId>
    		<artifactId>iet-commons-ldap</artifactId>
    		<version>${iet-commons-ldap.version}</version>
    		<exclusions>
    			<exclusion>
    				<groupId>org.springframework</groupId>
    				<artifactId>spring-tx</artifactId>
    			</exclusion> 	
    			<exclusion>
    				<groupId>org.springframework</groupId>
    				<artifactId>spring-beans</artifactId>
    			</exclusion>     
    			<exclusion>
    				<groupId>org.springframework</groupId>
    				<artifactId>spring-core</artifactId>
    			</exclusion>   		
    		</exclusions>
  	</dependency>
  	<dependency>
    		<groupId>edu.ucdavis.iet.kuali.rice</groupId>
    		<artifactId>ucd-kim-impl</artifactId>
    		<version>${ucd-kim-impl.version}</version>
    		<exclusions>
    			<exclusion>
    				<groupId>asm</groupId>
    				<artifactId>asm</artifactId>
    			</exclusion> 	
    			<exclusion>
    				<groupId>asm</groupId>

    				<artifactId>asm-attrs</artifactId>
    			</exclusion>     
    			<exclusion>
    				<groupId>cglib</groupId>
    				<artifactId>cglib</artifactId>
    			</exclusion>   		
    		</exclusions>	    		
  	</dependency>   	
  	<dependency>
		<groupId>asm</groupId>
		<artifactId>asm</artifactId>
		<version>${asm.version}</version>
	</dependency>	  		
	<dependency>
		<groupId>org.kuali.rice</groupId>
		<artifactId>rice-api</artifactId>
		<version>${rice.version}</version>
	</dependency>
	<dependency>
		<groupId>org.kuali.rice</groupId>
		<artifactId>rice-impl</artifactId>
		<version>${rice.version}</version>			 			
	</dependency>
	<dependency>
        	<groupId>javax.servlet</groupId>
           	<artifactId>servlet-api</artifactId>
        	<version>2.4</version>
        	<scope>provided</scope>
        </dependency>
	</dependencies>

<repositories>
	<repository>
		<id>kuali</id>
		<name>Kuali Repository</name>
		<url>https://test.kuali.org/maven</url>
	</repository>
</repositories>

</project>
  • No labels