Saturday Aug 25, 2007

NetBeans has introduced a Web Service designer, as you may have seen in Geertjan's blog. In addition to the ability to graphically view and modify operations for implementation first web services (WSDL is generated based on the JAXWS annotations), the web service designer provides the ability to work incrementally starting from a WSDL document. This represents a significant enhancement to the development experience as the WSDL document can become a first class source artifact, while the developer experience remains the same as the Web service designer provides the same implementation view. The add operation feature has also been extended to support the direct addition of XML schema. Direct addition of schema elements will perform an on demand generation of JAXB to provide a Java binding.

Having the WSDL generated as part of deployment presents makes it difficult for composite application assembly tools, such as the NetBeans CASA editor, to take advantage of the abstract WSDL binding capability of the openESB runtime. A composite application provides code composition based on well defined WSDL based interfaces. Since all the modules are deployed together and each WSDL interface is exposed on the service bus, developers can rely on bus endpoints instead of the concrete endpoints exposed in WSDL, thus achieving loose coupling as only the abstract WSDL is needed. The WSDL document can also be modified using the NetBeans WSDL editor to enhance the generated information such as adding documentation.

You will also notice the ability to see sample input and output messages. This is useful when working from Java types to see how changes to the structure of Java classes will affect the XML messages.

Friday May 04, 2007

Given that Java One begins next week, I wanted to mention some really interesting technology which is available in NetBeans 6.0 (milestone 9 build). This preview release provides the ability to generate REST services based on a set of JPA entity beans, which you can also generate using NetBeans. The REST services are annotated using the annotations proposed in JSR-311 (so this will change by the time the JSR is finalized). JSR 311 removes the need for service developers to use the Servlet or JAX-WS and instead provides a runtime and a set of annotations to handle dispatching of requests to your REST enabled resources. This feature also requires installation of the Sun Web Developer Pack which contains Phobos (JavaScript application server), JMaki, and of course the RESTful web services supported.

The wizard determines the set of entity beans available in a project and allows a set of beans to be selected and exposed as resources. In addition to generating the rest resource code, the wizard generates a converter layer which provides the ability to marshal and unmarshal to and from the wire protocol. Currently, the converters are using custom XML to serialize data; however, JSON and ATOM publishing protocol are also being considered. Finally, the converter layer translates object references (such as JPA references) into URI references. All the code generated by NetBeans is freely editable (no guarded blocks) and only relies on the JSR-311 annotations.

Accompanying the wizard is the ability to generate a test client to exercise the generated resources. The test client supports interaction with resource collections as well as individual resources through GET, PUT, POST, and DELETE (depending on the options available via the resources). The test client is generated locall and uses XHR for communicating with the resources, which should mimic most common architectures.

Thursday Nov 30, 2006

We have started working on the next version of the NetBeans Enterprise Pack using a "Bug Driven Development" process that I thought others may find interesting. This process relies on the fact that most bug tracking systems provide interactive reporting capabilities, the ability to track dependencies, history as well as providing easy to use interfaces.
Bug Driven Development begins by entering a umbrella bug (a bug which describes an release to track). The actual category doesn't have to be bug (or defect in fact in NetBeans issuezilla we use tasks or features), but needs to have a dependency on the features (or tasks) which will comprise the release. There are several potential variations which can be used to decompose the release cycle. For example, the direct blocking issues for the release can be milestones or iterations. The hierarchy would look something like this:

Next Release
Milestone 1
Tasks for this milestone
Milestone 2
Tasks for this milestone

Indentation in this case is a dependency from parent to child. Each milestone can be considered complete when all the tasks comprising the milestone are completed. A feature can be broken down into tasks which are assigned to a developer. Thus this structure provides something like a Gantt chart with existing infrastructure. Most bug tracking systems also provide some form of notification when state changes, so the passing from development to QE can be done in a fairly straightforward manner (waiting until the task is resolved).
In NetBeans, using this system also provides the ability to get community input as the tasks are described in the issue (or linked to) and issues provide the ability to add comments. The comments are persisted and thus won't get lost in the e-mail void.
If you would like to see this in action, check out the umbrella issue for the next Enterprise Pack release. You can see the dependencies using the show dependency tree feature of issuezilla.

Monday Oct 30, 2006

NetBeans 5.5 released today, along with that is the release of NetBeans Enterprise Pack targeting SOA development. There are extensive tutorials and videos so if you are interested is seeing the tools Sun is working on for SOA, take a look at http://www.netbeans.org/products/enterprise/.
Peter Coffee from e-Week has a writeup on Enterprise Pack and NetBeans 5.5, see the review.

Saturday Aug 12, 2006

There is a new mailing list for NetBeans enterprise pack, nbentpack-AT-netbeans-DOT-org.
This list will unify the different sub-projects comprising the enterprise pack such as XML Schema, WSDL, and BPEL tooling, UML, and the composite application features. Sending an empty message to the subscription address will start the process.

Friday Aug 04, 2006

The NetBeans Enterprise Pack, which consists of tools for building composite applications and UML modeling has been recently updated. This page now reflects the direction of the Enterprise Pack and not only the enterprise project. The new site is worth a look: http://enterprise.netbeans.org/

Friday May 19, 2006

The enterprise pack has the features shown at JavaOne like XML schema authoring tools, BPEL designer, JBI support using the composite application project, as well as support for access manager. If you saw the enterprise pack features at netbeans day or Java One and are interested in participating, you can by trying the latests bits and participating in the mailing lists (of course we also welcome code contributions
There is not yet a public nightly build (but hopefully soon) for enterprise pack but it is pretty easy to build this yourself (see http://nbbuild.netbeans.org/entpack/build_ep55.html).
The feedback loop is accessible through the mailing lists:
schema tools and the underlying models - xml.netbeans.org
BPEL designer and JBI composite project - enterprise.netbeans.org
Access Manager / Identity - identity.netbeans.org
UML - uml.netbeans.org.

The preview release of the NetBeans Enterprise Pack was just released. This release has JBI composite application support. A BPEL service unit can be created and deployed. This release also offers XML Schema tools which include a where used preview as well as a preview of an author by example feature. The author by example feature lets a developer design an abstract instance document (which represents what the instance document would look like). This feature is not just a one time generation feature but instead allows interactive editing. The download can be found here:
http://java.sun.com/javaee/downloads/index.jsp