We provide a variety of
services including:
·
Training
classes for Spring, Hibernate and
Acegi Security
·
Jumpstarts to get your project off to the right start
·
Reviews to improve your architecture, code and development
process
For more information visit our website: http://www.chrisrichardson.net
Chris Richardson, chris@chrisrichardson.net
The goal of Project Track is to show how to build enterprise Java applications with JSF, Spring, Hibernate and Acegi Security. Project Track was originally written by Kito Mann (author of JavaServer Faces in Action). Chris Richardson (author of POJOs in Action), then developed the Spring, and Hibernate backend, integrated Acegi Security, and wrote some Selenium tests (among other things).
The ProjectTrack application provides a high-level view of a project as it moves through its development lifecycle. The ProjectTrack application provides the following functionality:
· Project managers can create projects
· Employees (project managers, business analysts, development managers, QA managers etc) who are responsible for completing the project approve or reject a project as it goes through its lifecycle.
· Each user has an inbox of projects that are waiting for their approval/rejection.
· Upper managers can login and view all projects they cannot update them.
· Employees are also responsible for recording which of a projects artifacts have been completed.
The following diagram shows the lifecycle of a project.
The forward arrow represents approvals and the reverse arrows represent rejections.
The state of the project determines who is authorized to approve or reject it:
Projects phase |
Who can approve |
Proposal |
Project manager |
Planning |
Project manager |
Requirements analyst |
Business analyst |
Architecture |
Development manager |
Initial development |
Development manager |
Beta deployment |
Systems manager |
Beta testing |
QA manager |
Final development |
Development manager |
UAT deployment |
Systems manager |
UA testing |
QA manager |
Production deployment |
Systems manager |
Complete |
Project manager |
Closed |
No one final state |
|
|
The application tracks which of a projects artifacts have been created. The artifacts are:
· Project proposal
· Project plan
· Architecture specification
· Test plan
· Deployment guidelines
· Maintenance documentation
· User documentation.
Note: the application does not store these documents.
The Project Track application uses the following frameworks:
· JavaServer Faces used to implements the web UI
· Spring provides transaction management, and dependency injection and simplifies the DAOs
· Hibernate used to access the database
· Acegi Security used to implement declarative web security
The following diagram shows the major architectural components.
The web tier is implemented using JSF. The JSF managed beans
Handle
UI requests
Invoke
the business tier (Spring beans)
Spring beans are injected into JSF
managed beans
Acegi Security provides web-based security.
TODO write more
The service layer is the entry point into the business tier. It uses Spring declarative security.
ProjectCoordinator manages projects and defines the following methods:
getProjectsWaitingForApproval()
get()
changeStatus()
UserCoordinator manages users and defines the following methods:
getUser()
TODO write more
The following diagram shows the domain model classes.
The data access
classes are implemented using Hibernate and Spring Hibernate.
The ProjectRepository
provides methods for finding and saving projects including:
add()
get()
getAllProjects()
The UserRepository
provides methods for finding users including:
·
findUser()
·
TODO
write more