Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{toc}

This section will walk a developer through the steps of setting up Moves, on Windows or Linux. It does not cover OC4J installation, since that is covered elsewhere in this Wiki.

h1. Prerequisites
A machine running Windows or Linux. (This should work for Macs too... but the author does not use a mac).

h1. What we'll set up
* A recent JDK, with strong cryptography enabled
* SSH (or PuTTY on Windows)
* Kerberos
* Subversion with kerberos authentication
* Maven (with MIT trustore)
* The link to the Development Moves component registry.

h1. Setting up your JDK.
Get as recent a version of the JDK as MIT IS&T support, and install the Java Cryptography Extension (JCE) Unlimited Strength FOR THAT JDK. Make sure you get the JDK, and not just the JRE. Also make sure that the JDK is the FIRST java found in your path, and that you have the System environment variable JAVA_HOME pointing to that JDK. To install the JCE, simply backup \%JAVA_HOME\%
Table of Contents

This section will walk a developer through the steps of setting up Moves, on Windows or Linux. It does not cover OC4J installation, since that is covered elsewhere in this Wiki.

Prerequisites

A machine running Windows or Linux. (This should work for Macs too... but the author does not use a mac).

What we'll set up

  • A recent JDK, with strong cryptography enabled
  • SSH (or PuTTY on Windows)
  • Kerberos
  • Subversion with kerberos authentication
  • Maven (with MIT trustore)
  • The link to the Development Moves component registry.

Setting up your JDK.

...

/jre/lib/security/local_policy.jar and  \%JAVA_

...

HOME\%/jre/lib/security/US_export_policy.jar with the copies in the JCE zip file. For my windows jdk, the location was C:/Program Files/Java/jdk1.6.0_29/jre/lib/security.

...

 


h1. Setting up OC4J.

...


The complete setup of an OC4J container for IS&T is available here [SAISFRAMEWORK:Environment Setup].

...


To set up your container for moves, go to [SAISFRAMEWORK:Configuring a Moves

...

SSH setup

SSH on Ubuntu

...

 container]

h1. SSH setup

h2. SSH on Ubuntu 
type *sudo apt-get install openssh-client

...

SSH on Windows

...

*

h2. SSH on Windows
* Download PuTTY (e.g from [here

...

|http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.61-installer.exe])
* Make a note of the path (usually C:/Program Files/PuTTY or C:/Program Files (x86)/PuTTY).

...


At this stage you must be able to type C:/Program Files (x86)/PuTTY/plink svn.mit.edu and get a connection. The connection will look something like the following, until you hit CTRL-C

...


{panel

...

:borderStyle

...

=dashed

...

}{noformat

...

}
Last login: Wed Nov 30 12:22:56 2011 from west-ninetytwo-fourty.mit.edu

RHN kickstart on 2009-01-14

( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) )

...

Kerberos

...


{noformat}{panel}


h1. Kerberos
Moves does a WHOLE LOT of subversion activity. Unless you set yourself up for password-less authentication, you're gonna spend most of your life typing in your kerb username and password over and over again. Since you probably won't get an ssh private key installed on svn.mit.edu, you're gonna have to set yourself up with Kerberos. When we have Kerberos hooked up with svn, you'll only have to type in your username once per session. (A session lasts for about 10 hours). Sharing a production ssh key is not advisable (though it's been done).

h2.

...

 Kerberos on Ubuntu (should work for Debian)

...


* type *sudo apt-get install ssh-krb5 krb5-user krb4-config

...

If you weren't authenticated then

...

*
* type *kinit* and enter in your kerberos username and password. If that works, you're done.

If you weren't authenticated then 
* backup existing /etc/krb5.conf file if it exists (type *sudo mv /etc/krb5.conf /etc/krb5.backup*)

...


* copy [the attached file|^krb5.conf] to /etc/krb5.conf

...



h2. Kerberos on Windows

...


If you have 64 bit windows, *install the 64 bit kerberos client first*, from [http://www.secure-endpoints.com/#kfw

...

]
For 32 bit AND 64 bit windows, install the 32 bit client from [http://web.mit.edu/kerberos/dist/index.html#kfw-3.2

...

]
Restart windows if it asks you to

...



If all went well you should be able to open a (new) command prompt and type

...

 
C:/Program Files (x86)/PuTTY/plink svn.mit.edu

...


This time, instead of asking you at the command line to type in your username, a dialog box will pop up, looking something like this:

...


!kerberos.png|border=1!

The beauty of this is that next time you type C:/Program Files (x86)/PuTTY/plink svn.mit.edu you will not be asked for your password.

...


Try it and see. You should get this step working before proceeding.


h1.

...

Subversion

Subversion on Ubuntu

...

 Subversion

h2. Subversion on Ubuntu
* type *sudo apt-get install

...

Subversion on Windows

...

 subversion*

h2. Subversion on Windows
* Download Subversion from Collabnet. (You'll probably need to register).

...


* The 32 bit client is recommended, even if you have 64 bit windows... 'cos we'll be talking to Putty and Kerberos, and Putty is 32 bit only.

...


* Put Subversion  in your path.

...



If all is well we should now be able to list subversion repositories without a password (or at least the second time we try listing a repository we should not get asked for a password. Try the following command twice. You should be asked for a password 0 or 1 times only. (0 if you're already authenticated with kerberos, 1 if you're not).

...



svn ls svn+ssh://svn.mit.edu/sais-sis-common/maven/releases/trunk

...



h1. Maven (with MIT trustore)

...



Get the latest 2.x version of maven from [http://maven.apache.org/download.html] (unless MIT IS&T is already on 3.x when you're reading this document).

h2.

...

 Maven on Ubuntu

...


* Extract the maven download to /usr/local/apache-maven-x.x.x (where x.x.x is the version you downloaded).

...


* Set system property *MAVEN_HOME=/usr/local/apache-maven-x.x.x* (where x.x.x is the version you downloaded)

...


* Add $MAVEN_HOME/bin to your path

...


* Set system property *MAVEN_OPTS=-Xmx1024m -Xms1024m -XX:MaxPermSize=1024m -Djavax.net.ssl.trustStore=/home/$\{your-user-name}/keystores/serverTruststore.jks -Djavax.net.ssl.trustStorePassword=changeit

...

Maven on Windows

...

*

h2. Maven on Windows
* Extract the maven download to C:/Program Files/apache-maven-x.x.x (where x.x.x is the version you downloaded).

...


* Set system property *MAVEN_HOME=C:/Program Files/apache-maven-x.x.x* (where x.x.x is the version you downloaded)

...


* Add %MAVEN_HOME%/bin to your path

...


* Set system property *MAVEN_OPTS=-Xmx1024m -Xms1024m -XX:MaxPermSize=1024m -Djavax.net.ssl.trustStore=c:/Users/$\{your-user-name}/keystores/serverTruststore.jks -Djavax.net.ssl.trustStorePassword=changeit

...

Maven common steps

...

*

h2. Maven common steps
Now we will export settings.xml into your maven m2 home directory from the bamboo build configuration repository (which should always have the latest/greatest version). If you've never used maven before, you will have to create the folder *$\{user.home}/.m2* (ie C:/Users/*$\{your-user-name}*/.m2 or /home/*$\{your-user-name}*/.m2). If this folder already exists, that's cool... but if it contains a file called *settings.xml*, rename it to *settings.xml.backup

...

*

In a DOS box (or unix command shell), cd to $\{user.home}/.m2

...

 
type *svn export svn+ssh://svn.mit.edu/sais-sis-common/sais-common-conf/trunk/.m2/settings.xml

...

*

There should now be a new file in $\{user.home}/.m2 called settings.xml.

...


* It is highly recommended that *you delete the folder $\{user.home}/.m2/repositories if it exists*. This will slow down your first build, but will highlight any issues you may have with your maven configuration.

...



h1. Building commons

...



h2. Pre-requisites

...


* You should have a file called *registrar-test.jks* in your $\{user.home}/keystores folder. If you don't have that file, try using the attached

...

 [^registrar-test.jks].

...


* You should have a file called *sais-common-test.properties* in your $\{user.home} folder. If you don't have that file, try using the attached

...

 [^sais-common-test.properties]. *You will need to change the properties mitsis.database.username = and mitsis.database.password to your oracle username and password. If you don't have an oracle username and password, contact db-help@mit.edu.

...



h2. Check out the code.

...


* cd to C:/Users/your-user-name/WORKSPACE (on Windows) or /home/your-user-name/WORKSPACE (on Linux)

...


* If using windows, rename the folder C:/Users/your-user-name/WORKSPACE/sais-common to C:/Users/your-user-name/WORKSPACE/sais-common.backup (if that folder exists)

...


* If using linux, rename /home/your-user-name/WORKSPACE/sais-common to  /home/your-user-name/WORKSPACE/sais-common.backup (if that folder exists)

...


* type *svn co svn+ssh://svn.mit.edu/sais-sis-common/sais-common/trunk sais-common

...

*
* cd into the sais-common folder which was just created

...


* type *mvn clean install

...

*

You should see the message BUILD SUCCESSFUL in the log.

...

Building commons workflow



h1. Building commons workflow

h2. Pre-requisites

...


* You should have a file called *sais-common-workflow-test.properties* in your $\{user.home} folder. If you don't have that file, try using the attached

...

 [^sais-common-workflow-test.properties].

...



h2. Check out the code

...


* cd to C:/Users/your-user-name/WORKSPACE (on Windows) or /home/your-user-name/WORKSPACE (on Linux)

...


* If using windows, rename the folder C:/Users/your-user-name/WORKSPACE/sais-common-workflow to C:/Users/your-user-name/WORKSPACE/sais-common-workflow.backup (if that folder exists)

...


* If using linux, rename /home/your-user-name/WORKSPACE/sais-common-workflow to  /home/your-user-name/WORKSPACE/sais-common-workflow.backup (if that folder exists)

...


* type *svn co svn+ssh://eotoole@svn.mit.edu/sais-sis-common/sais-common-workflow/trunk sais-common-workflow

...

*
* cd into the sais-common-workflow folder which was just created

...


* type *mvn clean install

...

*

You should see the message BUILD SUCCESSFUL in the log.

...



h1. Building Moves

...



h2. Pre-requisites

...


* You should have a file called *sais-common-workflow-test.properties* in your $\{user.home} folder. If you don't have that file, try using the attached

...

 [^sais-common-workflow-test.properties].

...



h2. Check out the code

...


* cd to C:/Users/your-user-name/WORKSPACE (on Windows) or /home/your-user-name/WORKSPACE (on Linux)

...


* If using windows, rename the folder C:/Users/your-user-name/WORKSPACE/sais-

...

moves-

...

web to C:/Users/your-user-name/WORKSPACE/sais-

...

moves-

...

web.backup (if that folder exists)

...


* If using linux, rename /home/your-user-name/WORKSPACE/sais-

...

moves-

...

web to  /home/your-user-name/WORKSPACE/sais-

...

moves-

...

web.backup (if that folder exists)

...


* type *svn co svn+ssh://

...

svn.mit.edu/sais-sis-common/sais-

...

moves-

...

web/trunk sais-

...

moves-web*
* cd into the sais-moves-web folder which was just created
* type *mvn clean install -DskipTests*

(Currently moves does not run the unit tests, but this will be corrected).

You should see the message BUILD SUCCESSFUL in the log.

h1. Deploying moves

Moves can be deployed to any oc4j container, either remote or local. This is accomplished by using the maven-exec-plugin. If you know maven you can look at the pom.xml file to see what's going on. If you don't know maven, you shouldn't be modifying moves... but I will include an overview of how a deployment works.

{code:lang=xml|title=oc4j properties in moves pom.xml |borderStyle=dashed}
<properties>
    ...
    <oc4j.j2eeHome>${user.home}/servers/oc4j/10.1.3.5/j2ee/home</oc4j.j2eeHome>
    <!-- this should not need to be changed -->
    <oc4j.adminJar>admin_client.jar</oc4j.adminJar>
    <!-- this will only need to be changed if you have changed the default admin name in your oc4j install -->
    <oc4j.username>oc4jadmin</oc4j.username>
    <!-- this will usually need to be changed (I believe the default is oc4jadmin) -->
    <oc4j.password>oc4jadmin</oc4j.password>
    <!-- this will work for most local installs -->
    <oc4j.connectionUri>deployer:oc4j:localhost</oc4j.connectionUri>
    <!-- context root is always '/moves' for moves-->
    <oc4j.contextRoot>/moves</oc4j.contextRoot>
    <oc4j.deploymentName>moves</oc4j.deploymentName>
    <oc4j.siteXml>default-web-site</oc4j.siteXml>
</properties>
{code}

The above is the default properties for deploying an app. We have configured the maven-exec-plugin such that when you type *mvn exec:exec* maven will execute the following command
{panel borderStyle=dashed}
java -jar $\{oc4j.j2eeHome}/$\{oc4j.adminJar} deployer:oc4j:localhost $\{oc4j.username} $\{oc4j.password} -deploy -file $\{the war file previously built by maven} -deploymentName $\{oc4j.deploymentName} -bindAllWebApps $\{oc4j.siteXml} -contextRoot $\{oc4j.contextRoot}
{code}

So by default calling mvn exec:exec will execute (on my machine)

{panel borderStyle=dashed}
java -jar C:/Users/eotoole/servers/oc4j/10.1.3.5/j2ee/home\admin_client.jar deployer:oc4j:localhost oc4jadmin oc4jadmin -deploy -file C:/Users/eotoole/WORKSPACE/sais-moves-web/target/sais-moves-web-2.0.2-SNAPSHOT.war -deploymentName moves -bindAllWebApps default-web-site -contextRoot /moves
{panel}

If you have installed oc4j into a different folder, or if you have a different oc4j administrative username/password you can specify overrides on the command line. For example, if you type *mvn exec:exec -Doc4j.j2eeHome=C:/product/oc4j/j2ee/home -Doc4j.password=changeit* then maven will execute 

{panel borderStyle=dashed}
java -jar C:/product/oc4j/j2ee/home\admin_client.jar deployer:oc4j:localhost oc4jadmin changeit -deploy -file C:/Users/eotoole/WORKSPACE/sais-moves-web/taret/sais-moves-web-2.0.2-SNAPSHOT.war -deploymentName moves -bindAllWebApps default-web-site -contextRoot /moves
{panel}

If you successfully deployed moves, you should be able to navigate to
[http://localhost:8888/moves/admin/index.htm]