Bug 408354

Summary: [API] Incorporate b89 draft of Java EE 7 schemas - model changes
Product: [WebTools] WTP Java EE Tools Reporter: Carl Anderson <ccc>
Component: jst.j2eeAssignee: Carl Anderson <ccc>
Status: RESOLVED FIXED QA Contact: Chuck Bridgham <cbridgha>
Severity: major    
Priority: P1 CC: cbridgha, ccc, konstantin, neil.hauge, nsand.dev, raghunathan.srinivasan, shr31223, thatnitind
Version: 3.5Flags: ccc: pmc_approved? (david_williams)
raghunathan.srinivasan: pmc_approved+
ccc: pmc_approved? (naci.dai)
neil.hauge: pmc_approved+
ccc: pmc_approved? (cbridgha)
cbridgha: review+
Target Milestone: 3.5 RC2   
Hardware: All   
OS: All   
Whiteboard: JavaEE7 PMC_Approved
Bug Depends on: 408159    
Bug Blocks:    
Attachments:
Description Flags
Changes to the EMF models to support the latest Java EE 7 schemas none

Description Carl Anderson CLA 2013-05-17 11:08:18 EDT
+++ This bug was initially created as a clone of Bug #408159 +++

The Java EE 7 schemas in GF 4.0 b89 from today (last planned release candidate) contain some changes from the revision of schemas currently integrated into WTP. The schemas, models, etc. need to be updated.

From bug 408159, comment #5:

Delta from what we currently have:

1. Documentation improvements.

2. In beans_1_1.xsd, scan element has new if-class-not-available child element.

3. In ejb-jar_3_2.xsd, interceptorType has new around-construct child element.

4. In javaee_7.xsd, the class-name element within connection-factory-resourceType has been renamed as interface-name.

5. In javaee_7.xsd, jms-connection-factoryType has new interface-name child element.

6. In javaee_7.xsd, jms-destinationType has new interface-name child element.

7. Some type definitions moved around between web-app_3_1.xsd, web-common_3_1.xsd and web-fragment_3_1.xsd. It isn't immediately clear if other changes are hidden within those movements.

8. In web-facelettaglibrary_2_2.xsd, facelet-taglibType has new short-name child element.
Comment 1 Carl Anderson CLA 2013-05-17 11:13:52 EDT
#1 is easy

We do not yet have a model for beans_1_1.xsd or web-facelettaglibrary_2_2.xsd, so #2 and #8 do not effect our models.

#3, #4, #5, and #6 are simple and straightforward

#7 brings up the question of backwards compatibility.  Types that were in web-common in Java EE 6 are now moved to their corresponding subtype.  I believe the right thing to do here is to create corresponding interfaces at the subtype level, and then mark the web-common ones as deprecated as of Java EE 7, but they still have to remain where they are to support Java EE 6.
Comment 2 Carl Anderson CLA 2013-05-23 01:54:30 EDT
Created attachment 231342 [details]
Changes to the EMF models to support the latest Java EE 7 schemas

Note that there is a public API change on API introduced in M6.  This is necessary, since various model elements had class changed to interface in the schemas.

Additions to API:

EJB 3.2 - aroundConstruct added to InterceptorType
Web 3.1 - getDenyUncoveredHttpMethods added to WebApp

Also note that the reorganization of WebAppType and WebFragmentType was not done, in order to ensure compliance with the Java EE 6 specification.  Further improvements may be done in that area later.
Comment 3 Carl Anderson CLA 2013-05-23 09:06:29 EDT
I ran the Java EE JUnit tests against this patch, and I did not see any new issues.
Comment 4 Chuck Bridgham CLA 2013-05-23 14:04:24 EDT
approved
Comment 5 Carl Anderson CLA 2013-05-23 14:28:26 EDT
PMC Review requested due to API change (from new API in WTP 3.5 M6)

Explain why you believe this is a stop-ship defect. Or, if it is a "hotbug" (requested by an adopter) please document it as such. 

We need to comply with the Java EE 7 specification and XSDs as much as possible.  We received new XSDs, and this brings our EMF models into compliance with those.

Is there a work-around? If so, why do you believe the work-around is insufficient?

There is no work-around.

How has the fix been tested? Is there a test case attached to the bugzilla record? Has a JUnit Test been added?

I have tested these changes by hand, and have run the Java EE JUnit test bucket against it.

Give a brief technical overview. Who has reviewed this fix?

See comment #2 for the technical overview.
Chuck Bridgham and Roberto Sanchez have reviewed this fix.

What is the risk associated with this fix?

This is a medium risk fix- we are changing the EMF models for Java EE 5, 6, and 7.
Comment 6 Carl Anderson CLA 2013-05-30 13:55:14 EDT
This was committed for WTP 3.5.0 RC2