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:
webBusiness source is in these locations:
|---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
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
|---min
|---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 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.
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.
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/ |