Orientation
This page relates to JumpStart v3.8 and v3.9. Click here for newer versions.
Web source is in these locations:
webBusiness source is in these locations:
|---src
|---main
|---java
|---jumpstart
|---web
|---components --> .java for components eg. Layout.java
|---pages --> .java for pages eg. UserSearch.java
|---services --> .java for services eg. BusinessServicesLocator.java
|---webapp
|---components --> .tml for components eg. Layout.tml
|---pages --> .tml for pages eg. UserSearch.tml
|---WEB-INF --> .properties file for application-wide messages
businessEclipse 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:
|---src
|---main
|---java --> .properties file for business messages
|---jumpstart
|---business
|---domain --> .java for business (entities and services and )
|---resources
|---META-INF --> .xml for persistence descriptor
explodedYou can see how the exploder has this been configured by displaying the project's properties and choosing Builders.
|---jumpstart-min.ear
|---jumpstart-min.jar --> the business layer
|---jumpstart-min.war --> the web layer
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 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/webapp/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 |
|---|---|---|
| Web messages | app.properties | web/src/main/webapp/WEB-INF/ |
| View | LogIn.tml | web/src/main/webapp/pages/theapp/ |
| Controller | LogIn.java | web/src/main/java/jumpstart/web/pages/theapp/ |
| 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 |
|---|---|---|
| Web messages | app.properties | web/src/main/webapp/WEB-INF/ |
| View | UserEdit.tml | web/src/main/webapp/pages/theapp/security/ |
| Controller | UserEdit.java | web/src/main/java/jumpstart/web/pages/theapp/security/ |
| 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/webapp/components/theapp/ |
| Controller | Layout.java | web/src/main/java/jumpstart/web/components/theapp/ |