Orientation


This page relates to JumpStart v1.5.0 to v2.0.0.

The project structure of jumpstart-min and jumpstart-max is the same.

Web source is in these locations:
	web
|---src
|---main
|---java
|---jumpstart
|---min
|---web
|---components --> .java for components eg. Border.java
|---pages --> .java for pages eg. UserEditPage.java
|---webapp
|---WEB-INF --> .application file for Tapestry and .properties file for web messages
|---jumpstart-min --> .html and .jwc for components eg. Border.html
|---pages --> .html and .page for pages eg. UserEditPage.html
Business source is in these locations:
	business
|---src
|---main
|---java --> .properties file for business messages
|---jumpstart
|---min
|---business
|---domain --> .java for business (entities and services and )
|---resources
|---META-INF --> .xml for persistence descriptor
Eclipse compiles the java source to bin/ and runs our Ant file exploder.xml file to copy all the necessary items to exploded/, which holds an "exploded" EAR file with this structure:
	exploded
|---jumpstart-min.ear
|---jumpstart-min.jar --> the business layer
|---jumpstart-min.war --> the web layer
You can see how the exploder has this been configured by displaying the project's properties and choosing Builders.

A tour To learn more, open the project in Eclipse, locate README-HOME-PAGE in web/src/main/webapp/WEB-INF/ and start the tour. Afterwards, you can use this page to get more info and as a handy reference.

Reference There are 5 XML files that describe the application structure. They rarely need to change.
web/src/main/webapp/WEB-INF/web.xml  tells the web server how to handle jumpstart-min URLs - it says feed them to Tapestry!
web/src/main/webapp/WEB-INF/jumpstart.application  tells Tapestry about our application - its home page, etc.
web/src/main/webapp/WEB-INF/hivemodule.xml  tells HiveMind to add some functionality to Tapestry: our custom validators, translators, etc.
enterprise/src/main/resources/META-INF/application.xml  tells the application server we have a WAR and a JAR, and it says the WAR handles URLs involving jumpstart-min.
business/src/main/resources/META-INF/MANIFEST.MF  tells the EJB3 server which classpath entries we need (in addition to the ones it provides).
business/src/main/resources/META-INF/persistence.xml  tells the EJB3 server how we want to persist data - the datasource name and some settings.

The only one you're likely to change is persistence.xml. See Tips for more on that.

Examples Here are the pieces involved in logging in:

Layer Source file Location
Web messages jumpstart-min.properties web/src/main/webapp/WEB-INF/
View LoginPage.html
LoginPage.page
web/src/main/webapp/WEB-INF/pages/login/
web/src/main/webapp/WEB-INF/pages/login/
Controller LoginPage.java web/src/main/java/jumpstart/min/web/pages/login/
Services ISecurityFinderSvcLocal.java
SecurityFinderSvc.java
business/src/main/java/jumpstart/min/business/domain/security/iface/
business/src/main/java/jumpstart/min/business/domain/security/
Entity User.java business/src/main/java/jumpstart/min/business/domain/security/
Business messages messageDefs.properties business/src/main/java/

Here are the pieces involved in editing a user. Many are the same as for logging in:

Layer Source file Location
Web messages jumpstart-min.properties web/src/main/webapp/WEB-INF/
View UserEditPage.html web/src/main/webapp/WEB-INF/pages/security/
Controller UserEditPage.java web/src/main/java/jumpstart/min/web/pages/security/
Services ISecurityFinderSvcLocal.java
SecurityFinderSvc.java
ISecurityManagerSvcLocal.java
SecurityManagerSvc.java
business/src/main/java/jumpstart/min/business/domain/security/iface/
business/src/java/main/jumpstart/min/business/domain/security/
business/src/java/main/jumpstart/min/business/domain/security/iface/
business/src/java/main/jumpstart/min/business/domain/security/
Entity User.java business/src/main/java/jumpstart/min/business/domain/security/
Business messages messageDefs.properties business/src/main/java/

Tapestry locates components that aren't pages a little differently. For example, the "Border" component:

Layer Source file Location
View Border.html
Border.jwc
web/src/main/webapp/WEB-INF/jumpstart-min/
web/src/main/webapp/WEB-INF/jumpstart-min/
Controller Border.java web/src/main/java/jumpstart/min/web/components/

©2006, 2007 Geoff Callender, Sydney, Australia