JEE6Integration

Version: 1.3
Author: DavidKonecny

This planning document is closed now. Java EE 6 support was delivered in NetBeans 6.8.'

Contents


NetBeans support for Java Enterpise Edition v6

This is a planing document for integration of Java Enterpise Edition v6 to NetBeans IDE. JEE6 Specification is being developed as JSR 316. Individual updated specifications are going to be listed here with concrete tasks to implement to ease development of JEE6 applications in NetBeans IDE 6.8.

This document is based on JEE6 Public Draft - 1/13/09.

Individual specifications from JEE6 are linked in the below table. For list of all specification click here.

Comparison of specification versions included in the platform:

JEE6 JEE5 Comment
EJB 3.1 EJB 3.0
Servlet 3.0 Servlet 2.5
JSP 2.2 JSP 2.1
EL 1.1
JMS 1.1 JMS 1.1 no change
JTA 1.1 JTA 1.1 no change
JavaMail 1.4 JavaMail 1.4 no change
JAF 1.1 moved to Java Standard Edition?
Connector 1.6 Connector 1.5
Web Services 1.3 Web Services 1.2
JAX-RPC 1.1 JAX-RPC 1.1 candidate for pruning
JAX-WS 2.2 JAX-WS 2.0
JAX-RS 1.1
JAXB 2.2 JAXB 2.0
SAAJ 1.3 SAAJ 1.3 no change
JAXR 1.0 JAXR 1.0 candidate for pruning
Java EE Management 1.1 Java EE Management 1.1 candidate for pruning
Java EE Deployment 1.2d Java EE Deployment 1.2c candidate for pruning
JACC 1.2 JACC 1.1
JASPIC 1.0
JSP Debugging 1.0 JSP Debugging 1.0 no change
JSTL 1.2 JSTL 1.2 no change
Web Services Metadata 2.0 Web Services Metadata 2.0 no change
JSF 2.0 JSF 1.2
Common Annotations 1.1 Common Annotations 1.0 no relevant change
StAX 1.0 StAX 1.0 no change
Java Persistence 2.0 Java Persistence 1.0
Web Beans 1.0 Web Beans = "Contexts and Dependency Injection for Java"


All changed specifications in the table are going to be analyzed and tasked in individual chapters.

Structure and conventions of this document

Each chapter lists first relevant changes in specification (from the IDE point of view) and then rough tasks to implement these changes. It can also contain open issues section, out of scope section and any other relevant information. If more detailed specification of task or a UI specification is needed these should be created as separate Wiki pages linked from the task.

Each task definition has following format:

  • taskID status (priority, responsible engineer, target milestone, estimate in weeks or days) task description

taskID is a unique identifier for easy referencing.

status can be:

  • STARTED
  • DONE

priority is indicated from IDE point of view as:

  • P1 (Must-Have) - essential in order to enable development of JEE6 applications
  • P2 (Should-Have) - very basic tooling support for JEE6 development
  • P3 (Nice-To-Have) - anything what would be nice to have but can be implemented/enhanced in future releases

milestones are two (see Timeframes chapter for concrete dates):

  • M1
  • M2

People

Time estimates are preliminary and very rough. Only P1 and P2 tasks are estimated. Allocation of people may change after Milestone 1 as additional areas will need to be covered (eg. frameworks, JavaScript)

  • Petr Hejl - J2EE Server API and project types area (6-8 weeks)
  • Andrey Yamkovoy - EJB and EJB Project area (6-9 weeks)
  • Petr Slechta - Servlet, Web Project and deployment descriptor editing area (4-8 weeks)
  • Marek Fukala - Facelets editting support area (6-9 weeks - estimate for this and next item - needs to be split)
  • Alexey Butenko - JSF and Facelets project support area
  • Sergey Petrov - JPA area (1-3 weeks)
  • Denis Anisimov - Web Beans editting area (3-6 weeks)
  • Milan Kuchtiak - Web Services area (1-5 weeks)
  • David Konecny - for M1 no concrete allocation - involved in all areas
  • Petr Cyhelsky - Spring, Hibernate, Struts

and

  • Vince Kraemer - GlassFish server integration
  • Peter Williams - GlassFish server integration
  • Nitya Doraisamy - GlassFish server integration
  • Ondrej Langr - UI engineer

QE/Testing:

  • Michal Mocnak
  • JSF 2.0
  • Contexts and Dependency Injection for Java 1.0 (Web Beans)
  • Web Services 1.3
  • JAX-WS 2.2 / Metro 2.0
  • JAX-RS 1.1
  • JAXB 2.2
  • Martin Schovanek
  • JEE 6
  • EJB 3.1
  • Java Persistence 2.0
  • Servlet 3.0
  • Davis Nguyen
  • Server Plugin

Documentation:

  • Troy Giunipero
  • Ken Ganfield

Timeframe

Two milestones with approximately these dates:

  • M1 - 3.6 - 13.7 development; 13.7 -27.7 - stabilization period
  • M2 - 27.7 - 24.8 development; 24.8 - 6.9 - stabilization period; 6.9 feature freeze

Planned summer holidays:

  • David: 15.6 - 30.6
  • Marek: 8.6 - 17.6 + likely week in summer - TBA
  • Milan: 7.7 - 24.7
  • PetrH: 17.7 - 28.7
  • PetrS: 4 weeks in August
  • Andrey: 6.8 - 7.8., 10.8. - 23.8, probably 2 weeks in September
  • Alexey: 15.6 - 5.7, 9.11 - 15.11
  • Sergey: approx 21.08-04.09
  • Denis: 6.8 - 10.8.
  • PetrJ: 25.8, 31.8 - 1.9.
  • Vince: 7.8 - 22.8
  • Peter: ???
  • Nitya: ???

Travels:

  • David: 13.7 - 24.7 in Prague
  • Peter, Vince: 13.7 - 17.7 in Prague
  • Andrey, Alexey, Sergey, Denis: 13.7 - 17.7 in Prague
  • Trip wiki page (Sun internal)

Risks

  • specifications are not final and may change
  • holiday time - it is summer after all (oops not in NZ, we have winter here)
  • schedule does not have much buffer
  • multiple project commitments


Process

No regularly scheduled team meetings - they can be called on as needed basis.

Project progress tracked via two ways:

  • this wiki page - any task started should be labelled as STARTED and any finished task should be marked as DONE

Team Blog

We have a team blog at DZone: http://netbeans.dzone.com/category/tags/javaee. See more information at the Java EE Team Blog wiki page.

Developers corner

Feel free to add here anything useful for other team members.

Capabilities Candidates

You can suggest code snippets that should form a method in capabilities on JEE6IntegrationCapabilitiesCandidates.

Individual JEE Areas

JEE 6


Relevant changes:

  • introduction of profiles (see chapter EE.2.2 in spec)

Milestones:

  • M1 - implements server side of J2EE Server Capabilities API and has very basic UI on project side to allow project creation
  • M2 - finishes project side - mostly about UI

Tasks:

  • JEE.1 DONE (P1, PetrH, M1, 1-3D) provide a quick temporary way for other modules to decide if project is JEE6 enabled or not so that other people can start building their implementations around it; later replace this with real solution based on top of J2EE Server Capabilities API
  • JEE.2 DONE (P1, PetrH, M1, 2-3W) fix j2eeserver spec related APIs
  • JEE.2.1 DONE (P1, PetrH, M1) replace string constants for spec version and module type, fix all clients
  • JEE.2.2 DONE (P1, PetrH, M1, 1W) establish new API module j2ee.core to share common APIs across j2eeserver and web, ejb API
  • JEE.2.3 STARTED collect usecases for project required capabilities (Facade in j2ee.common)
  • Optional - only if useful create Profile-Capability (spec related like Servlet, EJB, etc.) mapping and UI specification for project side of J2EE Server Capabilities API and implement it for all project types:
  • JEE.3.1 DONE (P1, PetrH, M1, 1W) implement basic UI for: project wizards
  • JEE.3.2 DROPPED (P1, TBD, M2, 2-3W) implement full UI for: project wizards, project customizers, broken server customizer
  • JEE.4 DONE (P1, PetrH, M1) update bundled Java EE Javadoc to JEE 6 version
  • JEE.5 DONE (P2, Milan, M2) bundle Java EE 6 samples (either the FirstCup application, or Adam Bien's samples, or ...)
  • JEE.6 DONE (P1, Andrey, M2) implement Profiles handling

EJB 3.1


Relevant changes:

  • EJB can be packaged directly in WAR
  • Local Business interface is optional
  • Singleton session bean added
  • EJB-Lite - subset of EJB functionality that can be provided for example in Java EE Web Profile
  • Embeddable Container

Open issues:

  • consider taking advantage of Embeddable Container and provide support for generating Java class with main method and boilerplate code for retrieving it and running EJB's methods for the purpose of quick testing. In order to run such a Java class the classpath would have to contain Embeddable Container jar(s).

Milestones:

  • M1 - enables EJBs in Web project
  • M2 - does everyhing else (singleton beans, optional local business interface and EJB-Lite)

Tasks:

  • EJB.1 DONE (P1, Andrey, M1, 1-5D) use J2EE Server Capabilities API to distinguish whether EJB or EJB-Lite should be supported in project and if it is EJB-Lite then provide support only for relevant areas (eg. hide Message Driven Bean wizard, etc. see chapter 21.1 EJB 3.1 Lite in EJB 3.1 specification)
  • EJB.2 DONE (P2, Andrey, M1, 1-3D) update EJB wizards (and code generators) to do not generate Local Business interface
  • Singleton session bean:
  • EJB.3.1 DONE (P1, Andrey, M1, 1-5D) update EJB metadata model to handle Singleton session beans (possibly an API enhancement)
  • EJB.3.2 DONE (P1, Andrey, M1, 1-3D) make sure Singleton session beans are presented in UI (EJB node in project logical view, EJB chooser panel, etc.)
  • EJB.3.3 DONE (P2, Andrey, M1, 1-3D) add wizard for creation of Singleton session bean (or enhance existing Session Bean wizard with an additional checkbox)
  • EJB in WAR:
  • EJB.4.1 DONE (P1, Andrey, M1, 1-4W) implement all EJB related interfaces (EjbJarProvider, EjbJarsInProject, EnterpriseReferenceContainer, ...) in Web Project type preferably by reusing the code from ejbjarproject (eg. by refactoring code from ejbjar module into j2ee.common module first). These implementations should be provided in Web project if and only if project is JEE6 project
  • EJB.4.2 DONE (P1, Andrey, M1, 1-2D) enable EJB wizards in Web Project (New EJB, New EJB Deployment Descriptor, etc.) (iff project is JEE6 project)
  • EJB.4.3 DONE (P1, Andrey, M1, 1-2D) show EJB logical node in Web Project (if project is JEE6 project)
  • Embeddable Container (aka EJB testability):
  • EJB.5.1 DONE (P1, PetrH, M2, 1-3D) enhance J2EE Server API with new constant for Embeddable Container (chapter 22) so that servers can provide a container (that is classpath)
  • EJB.5.2 DONE (P2, Andrey, M2, 1-5D) Embeddable Container classpath should be added to project's unit testing classpath
  • EJB.5.3 DROPPED (P3, Andrey) add wizard for generating test file for EJB(s) (with boilerplate code for EJB retrieval etc.)
  • EJB.5.4 DROPPED (P3-2, Andrey) a support should be considered for generating a Java main class (in any project/source package) with a boilerplate code for retrieving and calling EJBs methods; such a wizard may need to add extra JARs to project's classpath (Emneddable Container JARs)
  • EJB.6 DROPPED (P2, Andrey) - resurrect ejb-jar GUI editor (but only if it does not have some serious existing issues - if it does then leave it dead as we will not have a time to resolve these); create subset of metamodel just from ejb-jar.xml file and pass it to GUI editor
  • EJB.7 DONE (P2-3, M2) - use portable global JNDI name syntax in code templates which looks up EJB from a JNDI context

Non-JEE6 Tasks:

  • STARTED (P1) lower bug count
  • (P2-3) TaskList integration - implement/enhance/update EJB specific editor hints and task list items
  • (P2-3) refactoring - implement/enhance/update refactoring for EJB

Servlet 3.0


Relevant changes:

  • web.xml is optional and annotations can be used instead

Open issues:

  • even if project is JEE6 some users may prefer to use web.xml instead of annotations, for example when creating new Servlet, ServletListener, etc. For now I would recommend to not make this configurable in wizards and always generate annotations. It can be revisited if there is enough demand for it.

Milestones:

  • M1 - enhances metadata model to merge deployment information
  • M2 - does everything else (update wizards to use annotations, new wizards for web-fragments, etc.)

Tasks:

  • S.1 STARTED (P1, PetrS, M1, 2-4W) create new (annotation based) deployment descriptor model (similarly as was done for EJB's deployment descriptor in JEE5). properly merge annotations and web.xml and web-fragment.xml according to rules defined by the spec; metamodel has to be updatable and changes should be stored to web.xml
  • S.2 DONE (P2, PetrS, M1, 1-5D) change web project to not generate web.xml at all; if this become source of problems then always generate empty web.xml; add WebFrameworkProvider.requiresWebXml() (for backward compatibility returning by default true) and if framework being added to a project returns true then generate empty web.xml if it does not exist yet (iff project is JEE6 project)
  • S.3 DONE (P2, PetrS, M1, 1-5D) update wizards to use annotations instead of updating web.xml (New Servlet, Listener, etc.) (iff project is JEE6 project)
  • S.4 DONE (P2, PetrS, M1, 1-3D) add new wizards for creation of web-fragment.xml and web.xml in Web Project (iff project is JEE6 project)
  • S.5 DONE (P2, PetrS, M1, 1D) amend web.xml GUI editor to operate on metadata model created just for web.xml; if this is too complicated then web.xml GUI editor could be permanently disabled
  • S.6 (P2-3, PetrS, M2, 1-5D) support editting of web-fragment.xml (hints, refactoring, code completion, etc.)
  • S.7 DONE (P2-3, PetrS, M2, 1-3D) list web-fragment.xml (presented in project's sources) under Configuration Files; possibly list also web-fragment.xml files from all modules on classpath (and communicate that these are readonly).
  • S.8 DONE (P3, PetrS, M2) enhance web.xml GUI editor to work also for web-fragment.xml files (web.xml and web-fragment.xml are using different XSD but differences are tiny - download dev build of Glassfish v3 and check folder glassfishv3/glassfish/lib/schemas to compare schemas)

Remarks:

  • S.1 Metadata model clients need to be evaluated and use-cases extracted. Then metamodel may be extended based on requirements.
  • S.2 Still some code may depend on web.xml and should be fixed. I tested New File > {Servlet, Filter, Listener}, and Project > Properties > Frameworks > Add.
  • S.3 For JEE 6 projects, if the checkbox "Add information into DD" is not checked then annotations are generated. The checkbox is unchecked for JEE 6 projects by default.
  • S.5 web-fragment.xml can be edited as XML and in visual editor.
  • S.8 web-fragment.xml can be edited as XML and in visual editor. Support for ordering implemented. (Editing of some of new elements not implemented yet.)

Non-JEE6 Tasks:

  • (P1) lower bug count
  • (P2-3) TaskList integration - implement/enhance/update web deployment descriptor specific editor hints and task list items
  • (P2-3) refactoring - implement/enhance/update refactoring for web deployment descriptor
  • DONE (P2-3) Drop support for J2ee 1.3 and older (mainly from j2ee.dd)

Other tasks currently not planned:

  • UI to overide annotations/web-fragments.xml in web.xml
  • vizualization which section of web.xml are overriding others and corresponding 'GoTo original definition' action

Resources and links:

Other:

JSP 2.2

No relevant changes (changelog). See also this blog entry.

EL 1.1

No relevant changes (changelog). See also this blog entry.

Connector 1.6

No support is currently provided and planned.

Web Services 1.3

Relevant changes:

Tasks:

  • WS.1 (P1, Milan, M2, 1-10D) update Web Services from 1.2 to 1.3 (ie. support for Singleton Session beans)

Non-JEE6 Tasks (for Web Services support in general):

  • (P1) lower bug count
  • (P2-3) TaskList integration - implement/enhance/update WS specific editor hints and task list items
  • (P2-3) refactoring - implement/enhance/update refactoring for WS
  • (P3) code generated by WS wizards should be reformatted (for example anotations formatting is hard to read)
  • (P3) consider adding a wizard for generating WS from a Java bean class

JAX-WS 2.2 / Metro 2.0

Relevant changes:

  • no big relevant changes - changelog for 2.2 and 2.1

Tasks:

  • JAXWS.1 DONE (P1, Milan, M1, 1-5D) update JAX-WS from 2.1 to 2.2
  • JAXWS.2 DONE (P1, M1) update Metro 1.4 library to Metro 2.0
  • JAXWS.3 DONE (P1-2, M1) use Metro 2.0 library instead of JAX-WS, where appropriate
  • JAXWS.4 DONE (P1, M1) Wizards: update WS wizards in consistency with JEE6 spec, e.g. enable Session EJB WS in web project
  • JAXWS.5 NOT IMPLEMENTED (P3) WS Addressing support(Wizard for Stateful web service)

JAX-RS 1.1

Relevant changes:

Tasks:

  • JAXRS.1 DONE (P1, Milan, M1, 1-5D) update JAX-RS from 1.0 to 1.1
  • JAXRS.2 PARTIALLY IMPLEMENTED (P3) - REST Resource testing; implement Tester capability for REST resource (implementetd for GET methods)
  • JAXRS.3 DONE (P1, M1) implement REST WS Stack - contract between J2EE server and REST suport
  • JAXRS.4 NOT IMPLEMENTED (P2, M2) implement support for Jersey(REST) Client API: The idea is to generate Unit test for REST resource that uses this AP.
  • JAXRS.5 NOT IMPLEMENTED (P2, M2) Rest Service from Entity Classes (from Database) update to JPA 2.0
  • JAXRS.6 NOT IMPLEMENTED (P3) Jersey Container configuration (See: ResourceConfig and ServletContainer)
  • JAXRS.7 NOT IMPLEMENTED (P3) REST Validation: make use of Jersey validation capability. Would be nice to integrate this feature into editor hints.

JAXB 2.2

Relevant changes:

Tasks:

  • JAXB.1 DONE (P1, Milan, M1</div>, 1-5D) update JAXB from 2.1 to 2.2

JACC 1.2

No support is currently provided and planned for Java Authorization Contract for Containers.

JASPIC 1.0

No support is currently provided and planned for Java Authentication Service Provider Interface for Containers.

JSF 2.0


Relevant changes:

  • Facelets
  • annotations in addition to faces-config.xml
  • AJAX
  • composite components

Open issues:

  • can two different page declarion laguages be used at the same time in one application? if yes then make sure JSP and Facelets can coexist in one project
  • check whether it is possible to add "composite components" to palette (or code snippets palette?) or if it would make sense to provide support for it

Milestones:

  • M1 - enables basic Facelets development and enhances deployment descriptor metamodel
  • M2 - improves Facelets support

Tasks:

  • JSF.1.1 DONE (P1, Marek, M1, 1-5D) migrate sources to NB repository and make new module part of the standard build
  • JSF.1.2 DONE (P1, Alexey, M1, 1-3W) integrate existing Facelets framework into JSF framework as new default page declaration language and allow user to configure it; this should preserve the ability to choose other JSF implementations which do not come with Facelets (eg. JSF 1.2)
  • JSF.1.3 DONE (P1, Marek, M1, 1W) refresh nbfaceletssupport's existing editing support and make sure its basics are working properly (code completion, ...)
  • JSF.1.4 DONE (P2-3, Marek, M1, 1-2W) update facelets support to use latest API (eg. Parsing API, CLS API, ...)
  • JSF.1.5 DONE (P2-3, Marek, M2, 1-2W) advanced editor support for facelet source files (refactorings, error hints, ...)
  • JSF.1.6 DONE (P2-3, Marek, M2) provide wizards/support for Facelets TagLibs
  • JSF.1.6 DONE (P3-2, Marek, M2) provide support for composite components, eg. their resuse via component palette, etc.
  • JSF.1.7 (P1, Marek, M1, 1-2D) automatically disable nbfaceletssupport module to avoid clashing
  • JSF.2 DONE (P1, Alexey, M1, 1-5D) bundle JSF 2.0 libraries with JSF framework; check what other libraries it makes sense to distribute: Facelets 1.1.14, My Faces, etc. (some of these are part of nbfaceletssupport module - so talk to Marek what his plans are)
  • JSF.3 DONE (P1, Denis, M1, 1-3W) update metamodel for faces-config.xml to merge all other faces-config.xml files on classpath and cover also elements registered via annotations; metamodel should stay updatable and changes should be written to faces-config.xml
  • JSF.4 DONE (P2, David, M2) update 'JSF page from Entity Classes' wizard to generate facelets or JSP pages; improve the code generated by the wizard
  • Editing tasks: JSFFaceletsEditing

Non-JEE6 Tasks:

  • (P1) lower bug count
  • (P2-3) TaskList integration - implement/enhance JSF specific editor hints and task list items
  • (P2-3) refactoring - implement/enhance refactoring for JSF (for example rename of a getter of managed Java bean should rename references to that method in JSF pages; find usages should report usages from JSF pages, etc.)
  • DONE (P2, Alexey, M2)) fix basic editor features, for example code completion or goto source does not work on a variable defined in JSF page for list iteration; references to non-existent manage bean methods should be underlined in JSF pages
  • (P3) consider dropping/improving visual page navigation - it would be more useful if navigation could be modified through it; on JSF pages which are not using <navigation-case> it is pretty much useless

Other tasks currently not planned:

  • provide some examples/demo/wizards for AJAX in JSF
  • provide some examples/demo/wizards for composite components in JSF
  • Bean Validation (JSR 303) - support for validation.xml editing etc.

Java Persistence 2.0


Relevant changes:

  • new XML schema

Open issues:

  • one more item to plan: update all existing wizards to take advantage of new JPA features wherever possible. This should include all wizards in Persistence category (New File wizards); actions like Use Entity Manager, Use Database (editor contextual actions); and Java Desktop Application project wizard for Database Application Shell.

Milestones:

  • M1 - supports new XML schema for persistence.xml
  • M2 - general improvements

Tasks:

  • JPA.1, DONE (P1, Sergey, M1, 2D) use new schema for persistence.xml
  • JPA.2, DONE (P1, Sergey, M1, 3-5D) update persistence.xml editor to support new schema
  • JPA.3, (P2-3, Sergey, M2, 3-5D) update 'Entity Classes from Database' wizard to use Derived Identities if appropriate
  • JPA.4, DONE (currently is supported for eclipselink 2.0 only) (P2, Sergey, M2, 3-5D), 2D) use newly defined constants for username, password, url, etc. in persistence unit
  • Sessions Beans from Entity classes:
  • JPA.5.1, DONE (P2, Sergey, M1, 1-3D) update for JEE6 (no local business interface by default)
  • JPA.5.2, DONE (P3-2, Sergey, M1) consider moving (if easy) this wizard from persistence module to ejbcore module
  • JPA.5.3, DONE (P2, Sergey, M1, 1-3D) in web project generate Session Bean instead of JPA Controller class
  • JPA.6, DONE (P2, Sergey, M2) use Criteria API in generated code instead of SQL (session bean from entity classes, jpa controller classes)
  • JPA.7, DONE (lib is added, toplink is alive yet) (P2, Sergey, M2) bundle EclipseLink instead of TopLink Essentials

Non-JEE6 Tasks:

  • (P1) lower bug count
  • (P2-3) TaskList integration - implement/enhance JPA specific editor hints and task list items
  • (P2-3) refactoring - implement/enhance refactoring for JPA
  • (P2) resolve inconsistency: there is contextual editor action Persistence->Use Entity Manager but there is also Insert Code item Use Database. Could they be unified?
  • (P2) 'JPA Controller Classes from Entity Classes' wizard - could name be more self descriptive? provide better wizard description what it is actually good for (eg. generates controller (or DAO?) with methods for manipulation of your entities, eg. methods for lookup, removal, creation, etc.). Generated class should have one more constructor allowing creation of controller for a named persistence unit (eg. for unit testing).
  • (P2) enable persistence unit wizard in EAR Project
  • (P2) check for presence of persistence unit in associated EAR or on project's classpath in wizards like "Session Beans from Entity Classes" (see also issues 101556, 76797)
  • (P3) differentiate unidirectional versus bidirectional relationships (issue 84105)
  • (P3-2) add Java Entity classes regeneration after a DB change
  • (P3-2) allow RESOURCE_LOCAL type of transactions (in persistence unit) be created even in container based projects; perhaps could be useful for unit testing; btw. detection whether project is run within container (based on presence of application server in project) does not work for Maven JEE projects where deployment server is optional
  • (P3) generated NamedQueries should be created on separate lines otherwise you easilly end up with single line long more than 1000 characters

Other tasks currently not planned:

  • orm.xml editor
  • JPQL editor

Contexts and Dependency Injection for Java 1.0 (Web Beans)


New specification with no previous support. Areas relevant for IDE support are:

  • beans descriptor creation and editing support

Milestones:

  • M1 - no work planned
  • M2 - provides basic editing support

Links:

Tasks:

  • WB.1 DROPPED (P1, Denis, M2, 1-2W) create readonly metadata model for beans.xml (relevant information is: bean names, new biding types, new stereotypes, and perhaps enabled deployment types)
  • WB.2 DROPPED (P1, Denis, M2, 1-5D) enhance Java code completion based on Web Beans metadata model
  • WB.3 DROPPED (P2-3, TBD, M2, 1-2W) editor support for beans.xml editing and creation
  • WB.4 DROPPED(P3, TBD, M2) advanced editing support for beans.xml (refactorings, error hints, etc.)
  • WB.5 DONE (P1, Denis, M2) create readonly metadata model for accessing to injectables from injection point ( annotation based ).
  • WB.6 DONE (P2, Denis, M2) implement "Go To Injectable" (or Go To Injected) which opens class which will be injected to a field under caret in editor. While this fits into category of editor refactorings this would be highly useful feature worth to implement.

Non-JEE6 Tasks:

  • (P2-3) TaskList integration - implement WebBeans specific editor hints and task list items
  • (P2-3) refactoring - implement refactoring for WebBeans

Other tasks currently not planned:

  • GUI editor for beans.xml

Maven

Maven integration with JEE6 will be done by different team: Maven plan.

Related areas

GlassFish Server Plugin

See Integration document.

Spring

Update and reuse following documents:

Hibernate

Update and reuse following documents:

Struts

Update and reuse following documents:

JavaScript

tbd (bundle new JS libraries, ...)

Third party components

The list of 3rd party (mainly GlassFish) components bundled in the IDE is tracked on a separate wiki page.

UI Changes

All UI changes should be listed here. Later we can decide which of them are desirable to be reviewed/helped with/designed by a UI designer.

Project's logical view changes

Enterprise Beans node in Web project or EJB project now lists all EJBs defined in project and all EJBs which are available on project's classpath (see issue 168819 for some background). The reason is that user should be able to see what all is going to be deployed to a server by deploying given project. Without this feature user would have to scan all classes on classpath for certain annotations and read all ejb-jar.xml files on classpath to get the idea what are they deploying. Similar case is Configuration Files node which should list all relevant configuration files which affect deployment. These are again all ejb-jar.xml, web.xml and web-fragment.xml files from project sources and from project's classpath. All files which are not part of project sources (that is they are on project's classpath) should have project/jar file name of their origin appended to them.

Other UI changes:

Will require UI designer assistence:

  • JAXRS.2 - if we decide to implement this we will need UI assistence; at the moment P3

All other UI changes:

  • showing EJB nodes, wizards in Web project
  • UI changes related to optional Local Business interface (wizard, chooser) and Singleton session
  • Embeddable container UI - TBD
  • JSF.1.2 - merging JSF and Facelets frameworks
  • misc wizards for new files: web.xml, web-fragments.xml, beans.xml, etc.
  • JPA 2.0 - persistence.xml editor got two new radio button groups for new elements
  • wizards (new Servlet, Filter) has checkbox to generate records to web.xml instead of using annotations
  • New Persistence Unit wizard have progress bar now (see issue 172930)
  • Session Beans For Entity Classes have progress bar now (see issue 113874), may need to review messages

User documentation and blogs

UI Review

Jan Rojcek conducted a UI review of the Java EE 6 functionality - the review document is File:Java-ee-6-ui-review JEE6Integration.pdf available here.

The defects from this review are tracked under umbrella issue 171069.

Quality

Here are the bug dashboard categories to watch:

Quality criteria will be checked at M1, Feature Readiness Check milestone, Beta and Code Freeze. Detailed information on quality criteria is here: NB68QualityCriteria.

Java EE Testing Blitz

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo