Revision as of 02:15, 8 June 2010 by Dkonecny (Talk | contribs)

J2EE Development Simplified in NB 6.9.NEXT

Author: DavidKonecny
Version: draft 0.0.2


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.

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.

EE1.1: Compare features of Maven and Ant based projects and create list discrepancies to address (some candidates are: handling of embeddable EJB container; handling of JPA annotation processor; Maven Deploy on Save for EARs; etc.)

EE1.2: Reevaluate concept of Maven not having server association in the IDE. IDE purpose is edit-compile-debug cycle and a server is essential for it to work.

EE1.3: Maven 3

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.

EE2.1: Enhance Weblogic support (deploy on save, datasources, web services, profiling, EE 6, JSF 2, JPA 2, link to source from output, etc.)

EE2.2: NetBeans and WebLogic co-bundle

EE2.3: GlassFish 3.1 + WebLogic deployment descriptors


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: fix standalone EE Module deployment

EE3.2: Weblogic server libraries

EE3.3: GlassFish vs Weblogic deployment (eg. appclient deployment to GlassFish is hardcoded in AC project type)

EE3.4: project sharability and server sharability (can it be improved?)

Richer EE/Web support


EE4.1.1: ADF components

EE4.1.2: Trinidad components


EE4.2.1: refactorings aware beans.xml

EE4.2.2: class code completion in beans.xml

EE4.2.3: 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: support for portable extensions (wizards, ambiguous and unsatisfied dependencies checks, etc.)

EE4.2.5 dependency graph visualization

Other EE

EE4.3: Bean Validation support


EE4.4.1: CSS 3

EE4.4.2: HTML 5

EE4.4.3: JavaScript parser update

EE4.4.4: JSP editor architecture improvements

EE4.4.5: update Web frameworks

More helpful IDE

EE5.1: add intelligent hints/TODOs

EE5.2: EE refactorings

EE5.3: new EE samples/EE tutorials

Improve development of DB based Web Applications

Continue on work started in http://wiki.netbeans.org/EnterpriseJava69

EE6.1: JPA wizards: faster reading of tables by filtering by name


EE7.1: embeddable EJB testing works in all scenarios

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

Other ideas

EE99.1 improve performance (scanning, Go to Type, code completion, etc.)

EE99.2 Ivy integration

EE99.3 Code coverage for Java

EE99.4 git

EE99.5 line wrap

EE99.6 bundle Oracle DB driver

EE99.7 Visual JSF editor - http://netbeans.org/bugzilla/show_bug.cgi?id=169820

EE99.8 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