Orientation


This page describes the structure of JumpStart 4.0.n to 4.3.n.


Web source is in these locations:
	web
|---src
|---main
|---java
|---jumpstart
|---web
|---components --> .java, .tml, .properties for components eg. Layout.java, Layout.tml
|---pages --> .java, .tml, .properties for pages eg. UserSearch.java, UserSearch.tml
|---services --> .java for services eg. AppModule.java and BusinessServicesLocator.java
|---WEB-INF --> app.properties file for web application-wide messages
Business source is in these locations:
	business
|---src
|---main
|---java --> messageDefs.properties file for business messages
|---jumpstart
|---business
|---domain --> .java for business domain (services and entities eg. SecurityFinderService and User)
|---resources --> .xml for persistence and datasource descriptors
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.ear
|---jumpstart.jar --> the business layer
|---jumpstart.war --> the web layer
Jetty runs over this exploded EAR. You can see how the exploder has been configured by displaying the project's properties and choosing Builders.

Reference These files describe the application structure. They rarely need to change.
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.
web/src/main/java/jumpstart/web/WEB-INF/web.xml  tells the web server how to handle jumpstart URLs - it says filter them through Tapestry!
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.

Tapestry expects a class called AppModule to exist to describe services we want added in:
jumpstart.web.services.AppModule

Examples Here are the pieces involved in logging in:

Layer Source file Location
View LogIn.tml web/src/main/java/jumpstart/web/pages/theapp/
Controller LogIn.java web/src/main/java/jumpstart/web/pages/theapp/
Web messages app.properties web/src/main/webapp/WEB-INF/
Services ISecurityFinderSvcLocal.java
SecurityFinderSvc.java
business/src/main/java/jumpstart/business/domain/security/iface/
business/src/main/java/jumpstart/business/domain/security/
Entity User.java business/src/main/java/jumpstart/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
View UserEdit.tml web/src/main/java/jumpstart/web/pages/theapp/security/
Controller UserEdit.java web/src/main/java/jumpstart/web/pages/theapp/security/
Web messages app.properties web/src/main/webapp/WEB-INF/
Services ISecurityFinderSvcLocal.java
SecurityFinderSvc.java
ISecurityManagerSvcLocal.java
SecurityManagerSvc.java
business/src/main/java/jumpstart/business/domain/security/iface/
business/src/java/main/jumpstart/business/domain/security/
business/src/java/main/jumpstart/business/domain/security/iface/
business/src/java/main/jumpstart/business/domain/security/
Entity User.java business/src/main/java/jumpstart/business/domain/security/
Business messages messageDefs.properties business/src/main/java/

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

Layer Source file Location
View Layout.tml web/src/main/java/jumpstart/web/components/theapp/
Controller Layout.java web/src/main/java/jumpstart/web/components/theapp/

©2006, 2007 Geoff Callender, Sydney, Australia