JavaEE7NetBeans731

Version: 0.6
Author: David Konecny

This is the planning page for the initial Java EE 7 support in NetBeans 7.3.1, and should not be used for planning of subsequent releases. For planning the Java EE 7 support in the NetBeans 8.0 release, please use the JavaEENetBeans8 wiki.

NetBeans IDE 7.3.1 contains all the Java EE features described below. Download it from the main download page.

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
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.1 (P1, dkonecny) add JavaEE 7 Profile
  • EE.2 (P1, dkonecny) update Ant based Web/EJB/Ear/AppClient projects to handle JavaEE 7 profile
  • 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 in case of EE7 project
  • EE.7 (P1, dkonecny) update Ant based Web/EJB/Ear/AppClient projects to handle source level for JavaEE 7 profile
  • EE.8 (P2,dkonecny+mfousek) generate EJB scheme 3.2 and WEB scheme 3.1
  • EE.9 (P2, mjanicek) Java EE 7 samples
  • EE.10 (P2, phejl) Java EE 7 Javadoc (225554)
  • EE.11 (P2, anebuzelsky) After merging javaee7 branch to trunk, need to increase spec versions in trunk

JAX-RS

  • RS.1 (P1, denis) enable JAX-RS in EE7 WebProfile
  • RS.2 (P2, denis) add wizard for Filter/Interceptors
  • RS.3 (P2, denis) update Cross-Origin Sharing filter wizard for JEE7
  • RS.4 (P2, denis) update Client wizard to use EE7 APIs
  • 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.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-3, 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.
  • JSF.9 (P3, Martin) Create wizard for @FacesComponent creation.

JPA

  • JPA.1 (P2, Sergey) schema generation support - make it easy to generate create and drop db schema scripts (current implementation: new file wizard item in Persistence category, use first pu only, generate create script and have the same restrictions as jpql editor), note: need some more testing
  • JPA.2 (P2, Sergey) recognize new annotations and provide code completion; for example table columns in @Index annotation (status: implemented for columnList in javaee7/default)
  • JPA.3 (P2, Sergey) bundle milestone build of EclipseLink for JPA 2.1 (status: 2.5 m11 with nb daily)

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
  • EJB.3 (P3, Martin) provide editor hint warning user if @Asynchronous is used in EE6 EJB Lite

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?) scan code for @JMSDestinationDefinition to populate list of Project Destinations
  • JMS.6 (P3-4, Martin) Add hint which complains about not valid characters in the 'destinationName' (like a '/') of the @JMSDestinationDefinition. Such destinations are not valid and are not created then. Some details [1]
  • JMS.7 (P3, Martin) Read jms-destination from web.xml (ejb-jar.xml etc.) and populate them to list of Project Destinations
  • JMS.8 (P3, Martin) New project destination panel could ask also for ResourceAdapter and PhysicalName of the topic or queue.
  • JMS.9 (P3, Martin) Connection Factories of the "Send JMS Message" wizard could list all factories of the server (new API) + default factory "java:comp/DefaultJMSConnectionFactory" + it would stay editable for references which were not found.
  • JMS.10 (P4, Martin) "Send JMS Message" wizard in ee7 project could offer which type of data to send - can be a String, byte[], Map, Message or Serializable.

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.
    • The base should be completed. New statements should not cause errors in pages, embeddings work well for nested curly, keywords registered, some initial completion for operators.

JSP

  • JSP.1 (P1-2, ??) Upgrade JSP parser JARs to the latest versions. It probably impacts at least: web.jspparser, web.jstl, servletapi, servletjspapi, anything else?

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:

  • WS.1 (P2, denis) add wizard for WebSocket stock endpoints
  • 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.

Batch Applications for the Java Platform

Preliminary list of tasks:

  • Wizard for creating Reader/Writer/Listener for a specific type
  • (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
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