Developer Setup for ISB

The standard setup for an ISB Lifecycle Management and Integration Runtime Environment is provided either locally or obtained via Infinity on Demand. However, developers may want to work on ISB scenarios without any Lifecycle Management e.g. for Proof of Concept scenarios or to familiarize themselves with ISB.

The following is intended to be used only by Java developers familiar with Eclipse and Maven.

This kind of ISB runtime setup is based on a simple Stardust archetype that per default is defining Tomcat as application server and Derby as embedded Audit Trail. Some little adjustments allow extending this standard Stardust runtime with Infinity Service Bus artifacts by just adding further Maven dependencies. The following describes all steps required to setting up such an initial ISB runtime for developers.

Pre-requisites

Artifact Repository Access

You need an account for the Stardust Artifact Repository. You can use your INTERNAL account (without preceeding INTERNAL\) and password for it, but only after you have logged into www.infinity.com once (no further operation needed there). Please contact IPP.Enabling@sungard.com if further assistant is needed.

Maven

Maven is used as a scripting utility to download all required ISB artefacts and perform certain tasks during the installation.

More detailed installation instructions can be found in the corresponding section on the bottom of the download page.

Maven Repository Configuration

While we are packaging up Stardust for Eclipse, you can get free access to the Stardust - the product Stardust originates from. After you followed the instructions on how to gain access to the Maven Repository, you can authenticate against the ipp-libs repository with the username and password you picked when registering. Further repositories Stardust builds may require are Maven Central, Java.net and JBoss public. To access these repositories from Maven make sure they are configured in your Maven settings.xml as shown below.

<repositories>
   ...
	<repository>
		<id>ipp-libs</id>
   		<url>https://infinity.sungard.com/repository/ipp-libs/</url>
	</repository>
	<repository>
<id>isb-libs</id>
<url>https://infinity.sungard.com/repository/isb-libs</url>
</repository>
<repository> <id>mavenCentral</id> <url>http://repo1.maven.org/maven2/</url> </repository> <repository> <id>public-jboss</id> <url>http://repository.jboss.org/nexus/content/groups/public-jboss</url> </repository> <repository> <id>maven2-repository.java.net</id> <url>http://download.java.net/maven/2/</url> </repository> ... </repositories>

Also configure the correct credentials for the ipp-libs repository as shown here:

<servers>
   ... 
	<server>
   		<id>ipp-libs</id>
   		<username>YourUserName</username>
   		<password>YourPlainTextPasswordOrPasswordHashFromRepository</password>
	</server>
   ...
</servers>

If you do not want to specify your password in plain text, you can encode it in the repository web portal:

Creating an Stardust Project Template via Maven Archetype

The Maven command below creates an Stardust runtime project template for Tomcat 7. The -DarchetypeVersion parameter has to be adjusted accordingly to the Stardust Release you are using. For the following Release 7.2.0-NIGHTLY-SNAPSHOT is assumed. The command asks for manual confirmation.

mvn archetype:generate -DarchetypeGroupId=com.infinity.bpm.archetypes -DarchetypeArtifactId=ipp-archetype-tc7-ipp-portal-war -DarchetypeVersion=7.2.0-NIGHTLY-SNAPSHOT 
   -DgroupId=org.eclipse.stardust.isb -DartifactId=isb-runtime-war -Dversion=1.0-SNAPSHOT -Dgoals=dependency:unpack

Adding ISB-specific Maven Dependencies

After the Maven command has been executed successfully the pom.xml within isb-runtime-war folder needs to be extended with ISB-specific dependencies.

Add the following entry to dependencyManagement section:

<dependency>
   <groupId>com.infinity.integration</groupId>
   <artifactId>camel-ipp</artifactId>
   <version>1.1.2</version>
   <exclusions>
   	<exclusion>
   		<groupId>org.springframework</groupId>
   		<artifactId>*</artifactId>
   		</exclusion>
   </exclusions>
</dependency>

Add the following entries to dependency section:

<dependency>
   <groupId>com.infinity.bpm</groupId>
   <artifactId>ipp-camel-module</artifactId>
   <version>1.1.2</version>
   <scope>runtime</scope>
   <type>pom</type>
</dependency>

<dependency>
   <groupId>com.infinity.integration</groupId>
   <artifactId>camel-ipp</artifactId>
   <scope>runtime</scope>
</dependency>

Further Camel component specific dependencies may be required depending on used Camel endpoints.

Building Project via Maven

Call

mvn clean package 

from within the newly created project (isb-runtime-war). All dependencies should be resolved and the ISB runtime is created within the target folder. The project itself can be imported into Eclipse and handled as dynamic web project such as an Stardust project based on the Rapid Application Development (RAD) approach.

To import the project select File > Import… > Existing Maven Projects, browse to the project isb-runtime-war and finish the import process.

Run Project on Tomcat Server

Please follow the instructions under http://wiki.eclipse.org/Stardust/Knowledge_Base/Deployment/Tomcat/RAD_on_Tomcat. Before the Tomcat is started for the first time a valid Stardust license needs to be copied to src/main/resources folder. Furthermore the Spring configuration regarding the Audit Trail data source based on Derby needs to be adjusted.

Replace

<bean id="carnotXaAuditTrailDataSourceLocalURL" class="org.apache.derby.jdbc.ClientXADataSource" lazy-init="true">
   <property name="serverName" value="localhost" />
   <property name="portNumber" value="1527" />
   <property name="databaseName" value="ipp" />
   <property name="user" value="carnot" />
   <property name="password" value="ag" />
</bean>

with

<bean id="carnotXaAuditTrailDataSourceLocalURL" class="org.apache.derby.jdbc.EmbeddedXADataSource">
   <property name="databaseName" value="carnot" />
   <property name="user" value="carnot" />
   <property name="password" value="ag" />
</bean>

within the carnot-spring-ds-context.xml file under src/main/webapp/WEB-INF/confing/ipp/spring folder. In the same folder create a file with name camel-spring-context.xml with below content.

<?xml version="1.0" encoding="UTF-8"?>
   <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-2.5.xsd
   http://camel.apache.org/schema/spring 
   http://camel.apache.org/schema/spring/camel-spring.xsd
   http://activemq.apache.org/schema/core 
   http://activemq.apache.org/schema/core/activemq-core.xsd">
	<bean id="ippClientEnvironment" class="com.infinity.bpm.util.client.spring.SpringClientEnvironment" />
	<camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring">
	</camelContext>
</beans>

Test ISB Runtime Setup

To test the ISB runtime setup create a simple Stardust process (keep defaults) with one process including one activity. Add below route to the camelContext section within the camel-spring-context.xml file, start the Tomcat server, deploy the process model and let any file drop into C:/temp/test. The file should be picked up by ISB and a process instance of process ProcessDefinition1 should be created and completed.

<route>
   <from uri="file://C:/temp/test" />
   <to uri="ipp:authenticate:setCurrent?user=motu&amp;password=motu"    />
   <to uri="ipp:process:start?processId=ProcessDefinition1" />
</route>