Orientation
This page describes the structure of JumpStart 6.6.n.
Web source is in these locations:
webBusiness source is in these locations:
|---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
businessEclipse compiles the java source to bin/, then runs our collapser to copy all the necessary items to collapsed/ . Its purpose is explained in Testing: WAR or EAR.
|---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
The collapsed/ directory holds a WAR in "collapsed EAR" format:
collapsed
|---jumpstart.war --> the web layer with business layer embedded
|---WEB-INF
|---classes --> the business and web classes together
Reference These files describe the application structure. They rarely need to change.
enterprise/src/main/resources/META-INF/application.xml
is needed if we're deploying an EAR. It tells the application server that the EAR contains 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.
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:
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/ |