h2. *UNDER CONSTRUCTION*
{indent}
{color:green}Help is available by sending an email to [mailto:csf-support@mit.edu]{color}
{indent}
{panel}
Quick Links to:
{toc:minLevel=3|maxLevel=3}
{panel}
{panel}
{anchor:Picking a projectName and a projectArtifactId}
h3. Picking a projectName and a projectArtifactId
{indent:1}
The first thing that must be done is to pick a *projectName* and a *projectArtifactId*.  These will be used throughout the life time of your project.
\\
\\
The *projectName* is a short acronym that is used to uniquely identify your project.
The *projectArtifactId* is the application context under which your project war file will be deployed to the OC4J server.
\\
\\
Once the *projectName* and *projectArtifactId* have been selected, they should not be changed.
\\
\\
Here are a few examples of what other project have used in the past:
{indent}
{indent:2}
||projectName||projectArtifactId||project description|
|ssb|sfs-ssb|student sponsored billing|
|ogs|ogs|online grade submission|
|onlinereg|onlinereg|online registration|
|iap|iap|individual activities period|
{indent}
\\
{panel}
{panel}
{anchor:Installation of the project war component using the war-template}
h3. Installation of the project war component using the war-template
* {color:red}This setup assumes that you have completed the [Workstation configuration | Getting Started#Workstation configuration] as found on the [CSF Home - Getting Started | Getting Started] tab.
If you have not completed the [Workstation configuration | Getting Started#Workstation configuration], please do so [*now* | Getting Started#Workstation configuration].{color}
# Run Eclipse.  Go to *File > New > Other...*.
Scroll down to *Maven* and expand then select *Checkout Maven Projects from SCM* as shown in the following panel.
\\
{indent:2}
!setupWarTemplate002.jpg!
{indent}
When satisfied that everything is correct, click *Next*.
\\
# Do the following:
{indent:1}
* From the *SCM URL:* dropdown, select *snv*.
* Uncheck *Checkout All Projects*.
* Copy and pasted the following URL into the *SCM URL:* input field.
{indent}
{indent:2}
{code}
svn+ssh://svn.mit.edu/es-projects/es-project-template/war-template/trunk
{code}
{indent}
When done the panel should be identical to the following:
\\
{indent:2}
!setupWarTemplate004.jpg!
{indent}
When satisfied that everything is correct, click *Next*.
\\
# If you want the change the *Workspace location*, uncheck the *Use default Workspace location* and enter the path to the desired workspace.
\\
{indent:2}
!setupWarTemplate006.jpg!
{indent}
When satisfied that everything is correct, click *Finish*.
\\
# Verify the Maven Project that is being imported.  The *Import Maven Projects* panel should be identical to the following panel.
\\
{indent:2}
!setupWarTemplate008.jpg!
{indent}
When satisfied that everything is correct, click *Finish*.
\\
# When the project is opened, your *Eclipse - Project Explorer View* should look as follows:
\\
{indent:2}
!setupWarTemplate010.jpg!
{indent}
Right click on the project and select *Team > Disconnect*
\\
# When following *Confirm Disconnect from SVN* is displayed, select *Also delete the SVN meta-information from the file system*..
\\
{indent:2}
!setupWarTemplate012.jpg!
{indent}
When satisfied that everything is correct, click *Yes*.
\\
# Open the Eclipse - *Navigator View*
{indent:2}
* expand the *projectArtifactId* project,
* delete the *.settings* file.
{indent}
# Open the Eclipse *Project Explorer View*. The view should look as follows:
\\
{indent:2}
!setupWarTemplate014.jpg!
{indent}
Right click on the project and select *Refactor > Rename...*.
Replace *projectArtifactId* with the projectArtifactId that you have previously selected.
\\
{indent:2}
*Note*:  You might want to append a *-war* to the projectArtifactId to denote that this is the war component of your project.
{indent}
\\
For example: If my projectArtifactId was *att*, then my panel would look like the following:
\\
{indent:2}
!setupWarTemplate016.jpg!
{indent}
When satisfied that everything is correct, click *OK*.
\\
# The *Eclipse - Project Explorer View* should look similar to the following:
\\
{indent:2}
!setupWarTemplate018.jpg!
{indent}
Right click on the project and select *Team > Share Project...*
\\
# Select *SVN* as shown below:
\\
{indent:2}
!setupWarTemplate020.jpg!
{indent}
When satisfied that everything is correct, click *Next*.
\\
# Select *Create a new repository location* as shown below:
\\
{indent:2}
!setupWarTemplate022.jpg!
{indent}
When satisfied that everything is correct, click *Next*.
\\
# Enter a desired SVN URL for your project.
For example:
{indent:1}
Keep in mind that there are at least 2 component for every project, a WAR and a JAR.
You Should keep all project components grouped together in the same SVN directory.  A logical grouping
would be by the projectName that you selected.  If my projectName were *att*, then the SVN
URL would be *svn+ssh://svn.mit.edu/es-projects/att*.  This would mean that my war project
would be created under the *es-projects/att* directory in the SVN repository.  This is shown
in the following panel:
{indent}
{indent:2}
!setupWarTemplate024.jpg!
{indent}
Don't forget to enter your *User* name and *Password*,
When satisfied that everything is correct, click *Finish*.
\\
# When the following panel is display notifying you that a new SVN entry will be created:
\\
{indent:2}
!setupWarTemplate026.jpg!
{indent}
When satisfied that everything is correct, click *OK*.
\\
# Do the following:
{indent:1}
* In the *Advanced Mode* section, select *Use project name*.
* In the *Project Repository Layout* section, select *Use single project layout*.
* Check *Use Subversion recommended layout ('trunk', 'branches' and 'tags')* check box.
{indent}
The panel should be as illustrated in the following panel:
\\
{indent:2}
!setupWarTemplate028.jpg!
{indent}
When satisfied that everything is correct, click *Finish*.
\\
# Nothing to do here.  This is an information panel similar to the following panel:
\\
{indent:2}
!setupWarTemplate030.jpg!
{indent}
When satisfied that everything is correct, click *Finish*.
\\
# When a panel similar to the one below is display, enter a comment.
This is the initial SVN check-in (svn commit) for the WAR project:
\\
{indent:2}
!setupWarTemplate032.jpg!
{indent}
When satisfied that everything is correct, click *OK*.
\\
# When the SVN commit has completed, the *Eclipse - Project Explorer View* should look similar to the following.
\\
{indent:2}
!setupWarTemplate034.jpg!
{indent}
\\

h4. {color:green}Installation of the project war component using the war-template is now complete.{color}
{panel}
{panel}
{anchor:Customizing the project WAR}
h3. Customizing the project WAR
{panel}
# Run Eclipse and open a *Project Explorer View* and open the Maven WAR project that you want to customize.
Your *Project Explorer View* should look similar to the following:
\\
{indent:2}
!customizeWar002.jpg!
{indent}
\\
# Expand your project, then expand *src/main/resources*.
Your *Project Explorer View* should look similar to the following:
\\
{indent:2}
!customizeWar004.jpg!
{indent}
\\
# Open the *applicationContext-projectName-config.xml* for editing and change the following lines substituting your project name for *projectName*.
The are 5 occurances of *projectName* that have to be changed.
\\
* <bean id="*projectName*WebMappingResources" class="org.springframework.beans.factory.config.ListFactoryBean" parent="hibernateCsfProjectNameMappingResources">
* <bean id="projectNameWebMappingResources" class="org.springframework.beans.factory.config.ListFactoryBean" parent="hibernateCsf*ProjectName*MappingResources">
* <bean id="hibernateMappingResources" class="org.springframework.beans.factory.config.ListFactoryBean" parent="*projectName*WebMappingResources">
* <value>file:${user.home}/*projectName*.properties</value>
* <value>file:${user.home}/*projectName*.properties</value>
\\
When you have made all the changes, the lines you have changed should look similar to the following:
\\
{indent:1}
<bean id="attWebMappingResources" class="org.springframework.beans.factory.config.ListFactoryBean" parent="hibernateCsfAttMappingResources">
<bean id="attNameWebMappingResources" class="org.springframework.beans.factory.config.ListFactoryBean" parent="hibernateCsfAttMappingResources">
<bean id="hibernateMappingResources" class="org.springframework.beans.factory.config.ListFactoryBean" parent="attWebMappingResources">
<value>file:${user.home}/att.properties</value>
<value>file:${user.home}/att.properties</value>
{indent}
In the above example, *projectName* was replaced with *att* and *ProjectName* was replaced with *Att*.
\\
xxxxxx
{panel}
{anchor:Customizing the project WAR pom.xml}
h3. Customizing the project WAR pom.xml
{panel}