Revision as of 13:03, 12 July 2010 by Sj-nb (Talk | contribs)

J2EE Development Simplified in NB 6.10

Author: DavidKonecny
Version: draft 0.0.5


Motto: Everything just works

Not according to feature coverage matrix but on real life usecases spanning several EE specifications. For example user is developing a service which can be used via web browser or REST API and the service stores some data in a database and communicates with some other web services and EJBs. The IDE modular architecture and fact that separate Java EE specification are implemented by different teams should not have any impact on user's experience. Features from different modules should seamlessly cooperate and complement each other.

Another aspect to pay attention to in this release is how well features work outside of compile-debug cycle of single user. For example an IDE feature can generate a unit test for an EJB and such test can be executed. But can such project be checked into versioning control system and just run if checked out by a continual builder or different team member? how will an embeddable EJB container be provided? Features should be look at in broader scope and wherever applicable they should just work.

Following chapters will discuss individual IDE areas in detail.


Priority is indicated as:

  • P1 (Must-Have) - essential in order to for a feature to work
  • P2 (Should-Have)
  • P3 (Nice-To-Have) - anything what would be nice to have but can be implemented/enhanced in future releases
  • P4 (Future) - would be nice for future releases, but definitely not something to pursue in this release

Maven and Ant

In theory Maven and Ant are just build harnesses and therefore user should not notice any difference during daily coding in IDE regardless of what build system is used.

On the other hand it is not practical nor desirable to abstract IDE user from build harness. Ant and Maven are different and have their own specific features that should stay accessible to user. There is also no practical need for example to enable interproject dependencies between Ant and Maven - possible but not a good practice IDE should suggest to users.

However, most of the IDE features should work regardless of underlying build system.


Owner: David Konecny

EE1.1.1: [P3] improve handling of server selection in EE Maven project types

EE1.1.2: [P1] resolve problem with running unit tests in Maven EE 6 project - stripped Java EE 6 jars are unusable

EE1.1.3: [P1] make sure packaging of EE Maven projects is correct (EJB jars are not packaged in WAR; libraries are stored in EAR/lib; etc.)

EE1.1.4: [P1] make sure deployment/debugging of EE Maven projects works as in Ant based projects (AppClient on GFv3; Weblogic; standalone EJB/AppClient modules deploytment; etc.)

EE1.1.5: [P2] EJB embeddable container support works (in different server scenarios) 187585

EE1.1.6: [P2] support for annotation processing and JPA annotation processor

EE1.1.7: [P1] Deploy on Save works in EAR project

EE1.1.8: [P3] misc small issues:

  • when server deployment fails Maven does not report it and stays in "deploying..." mode
  • remote interface project selector should not list Ant based projects for Maven project - Maven cannot have dependency on Ant based project
  • EAR Maven should not have sources, compilation, etc. (in project logical view, proj props, ...)
  • JSF wizard panel should pre-select JSF version according to server (if available)
  • sources panel in project properties should list web application folder if one is present
  • in proj properties I cannot see which fields are editable and which are readonly. Perhaps problem of look and feel. Eg. fields in General panel are editable, but fields in Sources are not


Owner: David Konecny

EE1.2.1: [P3] resolve sharability issues:

  • make option to refer to a server via single property available in UI (instead of making server sharable by copying its jars user can refer to a server installation via single property)
  • sharability is broken for jars which have dependency on other jars (via ClassPath attribute in manifest) - these required jars are never made sharable

GlassFish and Weblogic

Similar case like Ant and Maven. Most of the time the user should be abstracted from the underlying server and all IDE features should just work regardless of server. But there will always be differences between the servers and user should have access to these server specific features.


Owner: Vince Kraemer

See GlassFish 3.1 planning document


Owner: Petr Hejl

EE2.1: Weblogic server libraries:

EE2.1.1: [P1] deployment Done

EE2.1.2: [P1] classpath handling

EE2.1.3: [P2] sharability

EE2.2: Unit tests for Weblogic plugin

EE2.3: Enhance Weblogic support - high priority

EE2.3.1: [P1] directory-based deployment, deploy on save (i.e. fast redeploy without server restart)

EE2.3.2: [P2] FastSwap (need to clarify the exact meaning of this)

EE2.3.3: [P2] enable experimental EE 6 support for the upcoming preview release of Weblogic 11g R2

EE2.3.4: [P2] profiling Done

EE2.4: Enhance Weblogic support - medium priority

EE2.4.1: [P2] server properties configuration dialog

EE2.4.2: [P3] server resources viewer under the WebLogic node in the Services tab

EE2.4.3: [P2] link to source from output 186096

EE2.5: Enhance Weblogic support - low priority

EE2.5.1: [P4] support for authoring and using deployment plans

EE2.5.2: [P4] GUI editor for WebLogic deployment descriptors

EE2.6: Web Services support

  • [P3] support JSR109 for WebLogic 187597,187599 Done
  • [P3] support WS Tester for WebLogic 187598 Done
  • [P3] support JAX-WS Client for WebLogic 187931 Done
  • [P3] support WS from WSDL for WebLogic 187932 Done


Owners: David Konecny, Petr Hejl, Vince Kraemer

All common deployment scenarios must work. Regardless of target server - for example both Glassfish and Weblogic have their own proprietary deployment descriptor fiiles. Regardless of whether EE Application or EE Module is being deployed - for example each server is handling deployment of standalone EE modules and their required libraries differently. Regardless of EE technology being used - for example Weblogic requires Weblogic specific version of JSF libraries while GlassFish not. Files being deployed should follow EE specification requirements or best practice - automaticaly package required libraries which are not EE module into EAR's lib directory; place remote interfaces of EJBs into dedicated reusable library project.

EE3.1: [P2] fix standalone EE Module deployment

EE3.2: [P2] GlassFish vs Weblogic deployment (eg. appclient deployment to GlassFish is hardcoded in AC project type)

EE3.3: [P3] project sharability and server sharability (can it be improved?)

Richer EE/Web support


Owner: Alexey Butenko

EE4.1.1: ADF components???

EE4.1.2: Trinidad components vs PrimeFaces ?

  • [P1] Add library to Netbeans
  • [P3] Palette Items?
  • [P3] Facelets with Trinidad (wiki) -- It is about 1.2 (Trinidad for JSF 2.0 is in alpha stage), so probably will be skipped

EE4.1.3: [P2] JSF RI: Bundling the JSF implementation in WAR archive for Maven projects does not work on WebLogic 175130

EE4.1.4: Faces Config

  • [P3] Show configuration deprecated tags in faces-config.xml 177197

EE4.1.5: AJAX and JSF (TBD)

  • [P3] enable JavaScript code completion for scripts added with h:outputScript
  • [P3] f:ajax smart code completion


Owner: Alexey Butenko

EE4.1.6: : Spring 3.0: improvement for form controllers:

  • [P3] wizard for annotated controllers with different options
    • options like @RequestMapping,@RequestParam, @ModelAttribute
    • update config file with context:component-scan tag to detect annotated controllers

EE4.1.7: [P3] Spring Bean wizard


Owner: TBA

EE4.2.1: [P3] refactorings aware beans.xml

EE4.2.2: [P3] class code completion in beans.xml

EE4.2.3: [P2] add support for find Event Producer/find all Observers (similar to the current support "Go to Injectable/Inspect Injectables"; perhaps already available?)

EE4.2.4: [P3] support for portable extensions (wizards, ambiguous and unsatisfied dependencies checks, etc.)

EE4.2.5 [P3] dependency graph visualization

EE4.2.6 [P2] Hints for creating qualifier types (187946)

Web Services

Owner: Milan Kuchtiak

EE4.3.1 [P1] SOAP: unintrusive JAX-WS support 186299 (2 days) Done

EE4.3.2 [P3] SOAP: support for HTTP GET/POST bindings 174326 (5 days)

EE4.3.3 [P2] REST: JAXB annotations in Entity classes 181161 (5 days)

EE4.3.4 [P1] REST: unintrusive REST support 168154 (2 days)

EE4.3.5 [P2] REST: extend Test Resource capability 187945, 159073 (10-15 days)

Other ideas:

EE4.3.X merge Rest Services and Web Services project logical nodes together; in general make sure that the same UI is used regardless of service technology, for example replace 'Test Rest WS' in project's node with more generic "Test WS" action which works for in both service type cases

Bean Validation

Owner: Alexey Butenko

EE4.4.1: [P2] new wizard for creating constraint. Ask just for constrain package and class name and generate constraint for (METHOD, FIELD and ANNOTATION_TYPE). Message can be defaulted to package name and @Documented should be set. The wizard should have checkbox for "Generate Validator class" which if checked shows two editable fields: validator class name which is by default constraint class name + "Validator" and field for type which will be used to generate validator class. Both fields are mandatory. Wizard would generate constrain annotation and validator class.

EE4.4.2: [P2] add validation-configuration-1.0.xsd schema to catalogue and add file wizard for validation.xml

EE4.4.3: [P2] add validation-mapping-1.0.xsd schema to catalogue and add file wizard for mapping constrains file. Created file should be registered in validation.xml automatically.

EE4.4.5: [P3] add code template for "ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); validator = factory.getValidator();". Perhaps there should be a general template for the same pattern for different factories (XML parser, etc.)

EE4.4.6: [P2] add editor hints for common mistakes. See here for inspiration


  • for now do not implement any meta model for XML configuration files


Owner: Tomasz Slota

EE4.5.1: [P1] fix issue #158716 (possibly depends on EE4.5.2) EE4.5.2: [P3] architecture improvements: migrating the JSP parser to the Parsing API

EE4.5.2: [P3] architecture improvements: replacing the old syntax elements with a new model built on top of lexer

EE4.5.3: [P3] update the embedded JSP parser

EE4.5.4: [P3] improve maintainability by adding more stable tests

Expression Language

Owner: Erno Mononen

EE5.1: [P2] Expression Language editor infrastructure improvements. Needed to be able to provide refactorings and more reliable code completion/navigation. In other words, this needs be done before any of the following items.

  • new parser that produces AST for EL (use the impl from https://uel.dev.java.net/)
  • make EL a CSL language and use Parsing API for indexing

EE5.2: [P2] Refactoring support for Expression Language.

  • Find Usages, Rename the most important ones, others if time permits
  • JSF support P2, JSP P3 (although the same EL infrastructure can be used for both it requires work to integrate it, hence the focus on JSF first)

EE5.3: [P2] add intelligent hints/TODOs

  • syntax checking for EL
  • checks for invalid bean names
  • again, JSF first then JSP

EE5.4: [P2] Code completion / navigation improvements

  • utilize the aforementioned new EL infrastructure in CC and go to decl

Improve development of DB based Web Applications

Owner: Sergey B. Petrov

EE6.1: [P3] JPA wizards: faster reading of tables by filtering by name (or may be different layers for structure access (names first, information then)

EE6.2: [P2] Add support (recognize) for more jpa2.0 providers

  • EE6.2.1: Done openJPA
  • EE6.2.2: toplink (may not be done as it's almost same as eclipselink except some additional jars)

EE6.3: [P2] Improve update/recreate/new for entity from db (may be considered both a feature development and an issue fixing)

  • EE6.3.1: Better update support (fix issues and support update for more elements), currently only new columns creation works properly. Smart updates (i.e. without any merging/update ui if possible)
    • EE6.3.1.1: Update column type if necessary
    • EE6.3.1.2: Update Id Class (both if id name need to be changed and if columns in id class are changed)
    • EE6.3.1.5: Update mappings
    • EE6.3.1.4: Update JoinColums (type?,columns?)
    • EE6.3.1.5: Update JoinTable
    • EE6.3.1.6: Analyze if elements need to be removed and comment (if api allow), include removed from db columns and old setters/getters.
  • EE6.3.2: Usability - "recreate all", "update all", "new all" buttons, filter 'create new only' or 'updates only' in 'add all')

EE6.4: [P2-3] Recognize/support derived ids (181464), and may be as subtask add usage in entity from db generation.

EE6.X: [P3] Continue on work started in http://wiki.netbeans.org/EnterpriseJava69


Owner: TBA

EE7.1: [P2] embeddable EJB testing works in all scenarios

EE7.2: [P2] testing of CDI based code works out of box

More Helpful IDE

Owner: Erno Mononen

EE8.1: [P3] new EE samples

  • maybe something that demonstrates JSF/CDI/EJB together

EE8.2: [P3] Improved navigation between various application components, e.g. quick navigation between views/controllers/models.

EE8.3: [P3] warn user about usage of optional Java EE packages - issue 178757


EE9.1: [P2] WebLogic tutorial

EE9.2: [P2] publish some tutorial illustrating bean validation (task for DOC team; can be done even for NB 6.8 + 6.9)

EE9.x: [P2] new EE tutorials

Other ideas

  • OSGi webapps
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