Enterprise Java Development@TOPIC@
Your project will be graded on completeness and quality of product. In order for you to receive full credit in each area, it must be a) complete, b) done well, and c) tested. The breakdown of grading will be as follows:
README provided that describes where each requirement satisfied: 10pts
Projects cleanly builds with Maven: 15pts
Project 1 functionality: 10pts
EJB Tier, remote interface, and EAR deployment: 25pts
WAR/EJB deployment: 10pts
Web UI integration: 10pts
Transactions: 10pts
End-to-end Integration Test: 10pts
The following table contains examples of where projects have lost points in the past. Of course, each project submitted can introduce new issues or different severity levels of the same issues. Do not treat this as a complete list.
Table 25.1. Sample Lost Points
README | |||
---|---|---|---|
Not provided | 10 | ||
README did not indicate where X was located and it was not obvious even after ... | 2 | ||
The WebUI is hard to navigate (fine) but README offered no assistance | 5 |
Projects cleanly builds with Maven | |||
---|---|---|---|
One of your IT tests assume the DB is setup correctly prior to running and that would only be true of we were running a common server database instance across our unit and IT tests. | 2 | ||
Testing does not produce consistent results - out of four runs of mvn install the process failed twice and succeeded twice. | 2 | ||
Build was not portable. I had to make changes. Sending me a copy of this beforehand would have caught this. | 2 |
Project 1 functionality | |||
---|---|---|---|
DB schema is under-constrained | 1 | ||
Project 1 end-to-end scenarios no longer exist/run | 2 |
EJB Tier, remote interface, and EAR deployment | |||
---|---|---|---|
Attempting to set the state of a @Stateless EJB. What do you think will happen to that state when you get a different bean instance the next time you call? | 5 | ||
With auto-create DDL turned on (hibernate.hbm2ddl.auto" value="create") your application deletes all data when redeployed. Deleting all data should be restricted to only an explicit call to resetAll(). | 5 | ||
Not separating a single call into separate transactions to drop and then create schema. First action may fail when not exist. | 2 | ||
You have methods that will only work in a @Local interface a part of your @Remote interface | 2 | ||
Reusing business logic classes instead if EJB components - repeating the same work of the reusable EJB component in each EJB that needs to reuse the functionality. Inject @Local interfaces. Do not repeat instantiation and setup of identical business logic/DAO classes. | 2 | ||
Injest was not implemented within a deployed EJB. It was mistakely implemented the same as project 1 in a JUnit client. | 5 | ||
You have not integrated the two applications at the EJB remote interface level. The second application does not make a single remote call to the first application. All interaction is occcuring outside of the server-side and results passed in. | 5 |
WAR/EJB deployment | |||
---|---|---|---|
You are deploying EJBs from the first application within your second application's WAR. Look at your built/deployed artifact and correct dependencies. | 5 |
Web UI integration | |||
---|---|---|---|
UI does not provide a path to satisfy a step in the end-to-end scenario (that the IT test shows works). | 2 | ||
EJB/Impl functionality called by UI fails and is not exercised by end-to-end IT test | 2 | ||
This is a real bust when tested on the deployment platform. This should have been easily noticed. Pressing resetAll() results in the following error displayed. | 5 |
Transactions | |||
---|---|---|---|
Transaction scope not explicitly defined for EJB. You are accepting container defaults. | 1 | ||
No attempt to demonstrate transaction rollback | 10 | ||
Scenario shows business logic check but not a rollback of actions (store) to a transactional resource (DB). The requirement called for you to persist something all the way to the database - such that if you stopped in a breakpoint you would see the data - and then have the data thrown away due to a rollback. | 7 |
End-to-end Integration Test | |||
---|---|---|---|
Poluted, hard to follow, too much extra stuff | 2 | ||
Missing resetAll and populate at start of scenarios | 5 | ||
Missing step X | 1 | ||
No. I want different functionality in this step | 1 |