PA165 Enterprise Java - Seminars
2nd Milestone Project Requirements (M2)
2nd Milestone Project Requirements
project done: Fri 25.11.2016 23:59
evaluation submitted: Tue 29.11.2016 15:59
Project Requirements:
- Implement Facade layer interfaces and implementations.
- Everything that should happen in the system must be available through these interfaces (create entities, deleting them etc);
- You must have at least 2 non-trivial business functions on Service Layer (the example project contains several of them). Service layer is not always just a place to delegate to DAO;
- Other points about the Facade and Service layers:
- All the classes must be wired via dependency injection. Your service objects should obtain an instance of the EntityManager that way;
- All the facade interfaces must not reference entities, but Transfer Objects only;
- All service interfaces must reference only entities, not Data Transfer Objects;
- You can use Dozer framework to map entity instances to transfer objects. The mapping may be done on Facade Layer;
- Facade layer is used to drive transactions;
- Change layout of your project to Multimodule Maven project (tutorial here http://maven.apache.org/guides/getting-started/index.html) Your project should have 3 separate modules:
- DAO layer
- Service Layer and Facade Layer implementation
- API layer - just DTOs and facade interfaces!
- Facade layer will use Service layer and Service layer will use DAO layer;
- Make sure that DataAccessException or its subclass is thrown in case of any exception on a the DAO layer;
- Implement simple unit tests for facade layer. Just one simple test per method is enough. This is mainly so that it’s easy to verify the Facade layer works;
- There must be extensive unit tests for the service layer (particularly for your 2 business functions) and all the tests of service layer must use Mock DAO objects;
Evaluation Checklist:
- Maximum number of points for this milestone is 10 points;
- -2 points if it is not possible to compile the project and run tests using “mvn clean install”;
- -2 points if there are test failures;
- minimally -1 point for each of the unmet project requirements;
- -1 point for each occurrence of a team member not contributing enough;
- If a team member was not contributing at all, or very little, you should explicitly say this in your evaluation report. Tutor will follow up on this information;