JavaEE7NetBeans731

Revision as of 23:41, 28 January 2013 by Dkonecny (Talk | contribs)

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.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
  • 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.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, 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
  • 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?) 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:

  • 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.

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
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