App Fuse Architecture Directory Structure BuildTestDeploy Processes Project
App. Fuse Architecture Directory Structure, Build/Test/Deploy Processes
Project Structure Directory structure – Simpler is better – Map to artifacts – Customizations/personalization's – IDE issues – Separate source from artifacts - cleanable
Top-level Directory Structure bin – automation scripts lib – 3 rd party libraries (i. e. Struts and Hibernate) metadata – SQL scripts, server configurations and XDoclet fragments src – Java source files test – JUnit, Cactus, Struts. Test. Case tests tools – Strutsgen: a tool for generating JSPs from Action. Forms web – JSPs, properties files, images, scripts, stylesheets
Open Source Dependencies Ant-contrib – use “propertycopy” task in build process Checkstyle – used to verify that coding standards are followed Dbunit – cleans/loads data into database before tests are run Display Tag – used to display list screens (including sorting/paging) Hibernate – persistence engine Cactus – for unit testing server-side java code Log 4 j – logging framework, includes e -mailing errors Struts – web application framework, we use JSPs and Servlets Java 2 HTML – creates HTML pages of. java files … continued
Open Source Dependencies, cont. JUnit. Doclet – generates skeleton test cases for a class’s methods PMD – inspects code for unused variables, parameters, etc. Struts. Menu – navigation system Struts. Test. Case – extension of Cactus to test Struts’ Actions Web. Test – used to test JSPs XDoclet – code and deployment descriptor generator
Java Directory Structure src & test common ejb web org. appfuse…
Ant Build File XML format In project root directory Default name: build. xml Declarative - define steps, not scripty details Defines a single project A project contains targets Targets contain tasks
App. Fuse Tasks Main tasks in appfuse project – – – clean ejbdoclet and webdoclet compile-module (where module is common, web or ejb) package-module deploy test-module
build/deploy process
Test process
XDoclet’s Role Generates Hibernate mapping files (. hbm. xml) - <ejbdoclet> Generates Struts’ Action. Forms from POJOs - <ejbdoclet> Generates Validator’s validation. xml from Action. Forms - <webdoclet> Generates web. xml and strutsconfig. xml - <webdoclet>
XDoclet Examples Hibernate: User. java – @hibernate. class table=“app_user" Generating Action. Forms: User. java – @struts. form include-all="true" extends=“Base. Form"
XDoclet Examples, cont. Generating entries in struts-config: User. Action. java – @struts. action path="/save. User" name=“user. Form“ scope="request" validate="true" parameter="action" input=“edit. User"
User Interface Constructed with Tiles – web/layouts/base. Layout. jsp controls the entire layout of the site. Uses Struts JSP tags for editing/saving forms. Uses JSTL for conditionals, includes and messages.
User Interface, cont. XHTML 1. 0 and CSS 2. 0 – Allows validation – Cleaner HTML (all attributes lowercase, etc) – DOCTYPE switching
More Resources App. Fuse Project Homepage – http: //raibledesigns. com/appfuse/tutorials Java Development with Ant – http: //www. ehatchersolutions. com/Java. Dev. With. Ant Enhance J 2 EE component reuse with XDoclet – http: //www. arc-mind. com/papers/ws-j 2 x-ltr. pdf Step-by-Step tutorial on using XDoclet to write your own custom templates – http: //www. arc-mind. com/papers/xdoclet 2. pdf Ant, JUnit, XDoclet Presentations – http: //ehatchersolutions. com/downloads/presentations
- Slides: 16