JavaEE7
Version: 0.6
Author: David Konecny
EARLY BUILDS OF JAVA EE 7 ENABLED NETBEANS ARE AVAILABLE
Download NetBeans Java EE 7 builds from the build job at http://bertram2.netbeans.org:8080/job/web-main-javaee7/.
Contents |
NetBeans support for Java Enterpise Edition 7
This is a planing document for integration of Java Enterpise Edition 7 into NetBeans IDE. Java EE7 Specification is being developed as JSR 342 and is currently at version "Early Draft 2- 10/25/12".
According to Table EE.6-1 from JavaEE 7 Platform Spec these specification have changed:
| Java EE7 | Java EE6 | Comment |
|---|---|---|
| EJB 3.2 | EJB 3.1 | no new features requiring IDE support |
| Servlet 3.1 | Servlet 3.0 | no new features requiring IDE support |
| JSP 2.2 | no change | |
| Expression Language 3.0 | Expression Language 1.1 | |
| JMS 2.0 | JMS 1.1 | |
| JTA 1.2 | JTA 1.1 | no new features requiring IDE support |
| JavaMail 1.4 | no change | |
| Connector 1.6 | no change | |
| Web Services 1.3 | no change | |
| JAX-RPC 1.1 | optional | |
| JAX-WS 2.2 | no change | |
| JAX-RS 2.0 | JAX-RS 1.1 | |
| JAXB 2.2 | no change | |
| JAXR 1.0 | optional | |
| Java EE Management 1.1 | no change | |
| Java EE Deployment 1.2 | optional | |
| JACC 1.4 | JACC 1.2 | no IDE support |
| JASPIC 1.0 | no change | |
| JSP Debugging 1.0 | no change | |
| JSTL 1.2 | no change | |
| Web Services Metadata 2.1 | Web Services Metadata 2.0 | |
| JSF 2.2 | JSF 2.0 | |
| Common Annotations 1.1 | no change | |
| Java Persistence 2.1 | Java Persistence 2.0 | |
| Bean Validation 1.1 | Bean Validation 1.0 | no new features requiring IDE support |
| Managed Beans 1.0 | ||
| Interceptors 1.1 | ||
| CDI 1.1 | CDI 1.0 | no new features requiring IDE support?? |
| Java API for WebSocket | New API | |
| Java API for JSON | New API | |
| Concurrency Utilities for Java EE | New API | |
| Java Caching API | New API | |
| Batch Applications for the Java Platform | New API |
Development Process
- Base support is targeted for the NetBeans 7.3.1
- Development will take place on the javaee7 branch, which will be merged to trunk and to release73 branch around 7.3.1 code freeze (to be confirmed)
- Builds of the Java EE 7 support are available here
Tasks
Java EE 7
- EE.3 (P1, mjanicek) update Maven based Web/EJB/Ear/AppClient projects to handle JavaEE 7 profile (ie. add new archetypes); EE7 option will be hidden in the new project wizard if user is using "no server selected" server or non-EE7 server
- EE.4 (P1, tkraus) update NetBeans GlassFish 4.0 plugin to indicate support for EE 7 Profile
- EE.5 (P3-2, ???) provide server configured JNDI resources in code completion, eg. @Resource(name="[jndi code completion here]"). Type of resource should be shown and filtered where appropriate, ie. code completion on a DataSource field should list only JNDI resources of the DataSource type
- EE.6 (P2-3, ???) remove "enable CDI" option from the wizards and always automatically enable CDI
- EE.7 (P1, dkonecny) update Ant based Web/EJB/Ear/AppClient projects to handle source level for JavaEE 7 profile
- EE.8 (P2, ???) generate EJB scheme 3.2 and WEB scheme 3.1
- EE.9 (P2, mjanicek) Java EE 7 samples
JAX-RS
- RS.5 (P3, denis) bundle milestone build of Jersey 2.0
- RS.6 (P2, denis) evaluate whether some wizards should/could generate code which utilizes asynchronous processing; or perhaps an editor feature allowing to turn synchronous handler into asynchrohous one and vice versa?
- See features details on page.
JSF
Detailed plan available at NetBeans_73_JSF22.
- JSF.1 (P2-3, Martin) add hints that package javax.faces.bean is going to be deprecated in next JSF release (223874)
- JSF.2 (P3, Martin) add hints to jsf editor complains about used http://java.sun.com/jsf tag argument in tag with another namespace than empty or xhtml, see TagDecorator JavaDoc
- JSF.3 (P1-2, Martin) made jsf editor JSF2.2 compatible, see blog, TagDecorator JavaDoc; html markup processed (with jsf: namespace tag), new jsf: and p: namespaces
-
JSF.4 (P2-3, Martin) update facelets template client wizard to be able to load templates from the Resource Libraries. See JAVASERVERFACES-2511 or chapter 10.1.3 of the JSF2.2 specification; libraries can be inside the web-inf/lib or web-root/contracts directories.
- JSF.5 (P3-4, Martin) create contract wizard; this wizard would create new folder in the '<web-root>/contracts' of the application or in 'META-INF/contracts' of the chosen j2se class library; there would be also possible to specify name of the contract (which equals to the name of the folder). Could it be also included into faces-config.xml?
-
JSF.6 (P2, Martin) JSF Managed Bean defined using CDI can be of the @FlowScoped scope. Also it could validate that user is using JSF2.2 framework and warn if not.
- JSF.7 (P2, Martin) Create wizard for new FacesFlow creation. This flow can be estabilished in the faces-config, inside the bean or as the facelet. Investigave what about the faces-config registration - is it necessary?
- JSF.8 (P1, Martin) Update web.jsf support to be able to handle JSF2.2 once the schema will be available and declaration files and manifest finalized.
JPA
- JPA.1 (P2, Sergey) schema generation support - make it easy to genarate create and drop db schema scripts
- JPA.2 (P2, Sergey) recognize new annotations and provide code completion; for example table columns in @Index annotation
- JPA.3 (P3, Sergey) bundle milestone build of EclipseLink for JPA 2.1
See NBJPANext for additional tasks
EJB
-
EJB.1 (P2, Martin) update internal model to reflect simplified requirements on declaration of local/remote views
-
EJB.2 (P2-3, Martin) Enable non-persistent EJB Timer wizard in EJB Lite case (wizard should automatically generate "persistent=false" for schedule annodation); disable EJB Timer wizard in EE6 EJB Lite case; consider an editor hint warning user of mistake
Servlet
- SRV.1 (P3, Martin?) add a Servlet wizard (or update the existing one?) to utilize non-blocking IO
JMS
-
JMS.1 (P3-2, Martin) revisit Message Driven Bean wizard; JMS spec defines list of property/value pairs for activationConfig attribute; anything else??
- JMS.2 (P2, ??) write a tutorial how to use JMS 2.0 in NetBeans
- JMS.3 (P2-3, Martin) update code generated by 'send JMS message' insert code action to use JMSContext; enable CDI if necessary
- JMS.4 (P3-2, Martin) EE7 project message resources can be defined using annotations @JMSConnectionFactoryDefinition, @JMSDestinationDefinition or inside the web.xml DD. "Add Message Destination" dialog should be updated to always use this annotation rather than server specific deployment descriptor.
- JMS.5 (P2, Martin?) read jms-destination from web.xml (ejb-jar.xml etc.) and scan code for @JMSDestinationDefinition to populate list of Project Destinations
Expression Language
- EL.1 (P1, ??) support for new language constructs, for example: Lambda Expressions, assignment operator, semi-colon operator, string concatenation operator, collection operations, new reserved words, etc.
CDI
No IDE changes required yet.
There is an open issue in the CDI spec which may turn into an ability to specify in beans.xml which classes to scan and which not - internal CDI metamodel in NetBeans would have to take that into account.
Bean Validation
No IDE changes required yet.
Java API for WebSocket
Preliminary list of tasks:
- See features details on the page.
Java API for JSON
No IDE changes required yet.
Concurrency Utilities for Java EE
No IDE changes required yet. It would benefit from EE.5 task for injection of managed executors.
Java Caching API
No IDE changes required yet.
Batch Applications for the Java Platform
Preliminary list of tasks:
- (P2) wizard for Job XML creation
- (P2) bundle Job XML XSD
- (P3) wizard for commonly subclassed classes like listeners etc.
- (P3) code completion for Job XML (beyond Job XSD based one), eg. provide available listeners etc.
- (P4) visualize Job XML inheritance and/or provide some tooling for it
