Enterprise Java Development@TOPIC@

Chapter 25. Project 2 Grading

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:

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 provided10  
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 assistance5  
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-constrained1  
Project 1 end-to-end scenarios no longer exist/run2  
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 stuff2  
Missing resetAll and populate at start of scenarios5  
Missing step X1  
No. I want different functionality in this step1