Building on Java
By Tim Anderson
CodeGear has big plans for JBuilder. Tim Anderson finds out what’s in store for the future.
HardCopy Issue: 40 | Found In: Development | Published: 01/05/2008 | Last Revision: 07/07/2010
Once hugely popular, the old JBuilder product lost momentum when the open source Eclipse project took off. Eclipse is a tools platform, sponsored by IBM along with many other big industry names including Adobe, BEA, Compuware and Nokia. It is the closest thing to a standard IDE for the Java industry.
CodeGear’s answer was to move JBuilder to Eclipse, which it achieved with JBuilder 2007. This was a radical transition as it meant that JBuilder users had a new IDE to learn and lost some popular features from the old product, including the excellent Swing designer. However the move did bring JBuilder back into the mainstream of Java tools and integrated Eclipse with Borland/CodeGear technology such as Together modelling and OptimizeIt profiling. ProjectAssist and TeamInsight are features of the Enterprise edition which turn JBuilder into a team development platform by integrating open source projects, adding value by bundling and integrating them into a single, supported package.
The JBuilder roadmap
CodeGear has a JBuilder Roadmap which indicates a busy release schedule. Not everything is on the roadmap, and announced features are not set in stone, so do not rely too heavily on what is here. In addition, CodeGear’s Ravi Kumar, JBuilder’s Principal Architect, told us about features that are not listed on the official roadmap like richer metadata in an Application Factory, additional factory modules, and an active marketplace for commercial modules. A factory module can generate an entire application as a starting point for your project.
JBuilder 2008 for Eclipse 3.4: H2 2008
The Eclipse project consists of numerous sub-projects, each of which adds to the features of the Eclipse tools platform. There are obvious dependency issues, so to enable users to upgrade in a sane manner, Eclipse works to a cycle of annual simultaneous releases, formed by an updated core IDE together with a bundle of key sub-projects that work with it. JBuilder 2008 is based on Eclipse 3.3, part of the June 2007 release code-named ‘Europa’. The June 2008 Eclipse 3.4 release is code-named ‘Ganymede’. CodeGear is planning to update JBuilder 2008 for Eclipse 3.4, shortly after it is released.
JGear updates
The next JGear releases will come after the Eclipse 3.4 update for JBuilder and will include JGear Performance Monitoring, based on features of OptimizeIt for monitoring and tracing server performance, as well as JGear tools for lifecycle management and code visualisation. JGear products can be used standalone or added to an existing Eclipse installation.
JBuilder ‘Grasshopper’: H2 2009
This release will be based on Eclipse 3.5, expected in June 2009. We can expect significant updates to Application Factories, supporting new application types and frameworks, and enhancements to lifecycle management features. CodeGear is also talking about enabling custom update sites for JBuilder, which would make it easier to manage a team of developers and ensure that each member has exactly the same Eclipse setup.
JBuilder ‘Optimus’
CodeGear describes the theme of this future release as “Distributed Application Factories composition”.
JBuilder comes in three editions. The Turbo edition is free and is essentially a handy way to get a pre-configured Eclipse environment with some CodeGear extras. JBuilder Professional has visual designers for EJB, JPA (Java Persistence API) and Web Services, and UML modelling tools based on the Together technology which keeps the model synchronised with the Java source code. It also has profiling tools based on OptimizeIt.
New in JBuilder 2008 Professional is a visual Swing designer based on WindowBuilder from Instantiations. JBuilder 2007 used the Eclipse Visual Editor which is less mature and less capable. The new designer is a more credible replacement for the old JBuilder Swing tools.
The Enterprise edition adds more complete UML modelling tools, the new Application Factory feature (see below), and ProjectAssist and TeamInsight. These last are ideal for teams who wish to make use of open source application lifecycle management tools, but without dealing with the complexity of setup and configuration. All you need to get started is a machine you can use as a server, which can be running Windows XP or Windows Server 2003 (Vista and Server 2008 are not yet supported). Install ProjectAssist, and it will set up a suite of open source tools. This includes infrastructure such as the Apache Web server and the Tomcat application server.
ProjectAssist installs Subversion for code management and version control, integrating with the Subclipse plug-in on the JBuilder clients. For build management you get Continuum and Maven. Maven is a build tool which uses an XML file to define the build files, order and dependencies. Continuum lets you run scheduled builds and get reports on the outcome, according to the continuous integration model. Bugzilla handles defect management for tracking bugs and assigning them to specific developers. XPlanner is a project planning tool based on Agile methodology.
Finally, Liferay is a project portal which forms a kind of instant intranet for a software project, bringing together output from Bugzilla, XPlanner and Continuum. You can also configure ProjectAssist to use CVS instead of Subversion, or StarTeam instead of Subversion, Bugzilla and XPlanner. Although Star Team is a Borland product, the open source systems are the default choice.
When you install ProjectAssist, you can choose between open source products or Borland's StarTeam.
Once ProjectAssist is set up on the server, configuring JBuilder for team members is greatly simplified by a generated TeamInsight configuration file which you can download over the network. Importing this into JBuilder creates shortcuts to all the Web-based project applications, and sets up Subclipse for check-in and check-out of code from Subversion.
You can argue that ProjectAssist does nothing that developers can’t do for themselves with the free version of Eclipse or even JBuilder Turbo, and separate downloads of all the various open-source products. Although there is some truth in this, there is real value in having everything brought together in a pre-configured and supported form; and the actual products are of a consistently high standard. Purchasing equivalent functionality in proprietary products would cost substantially more.
These open source products are also well suited to a mixed-platform environment. JBuilder itself is supported on Windows, Mac OSX 10.4, and Red Hat Linux.
A key reason for JBuilder’s transition to Eclipse was to exploit the momentum behind the Eclipse platform. This includes offering plug-ins to Eclipse users who do not want to embrace the entire JBuilder product. The brand name for these plug-ins is JGear. Currently there is JGear Performance, which is essentially OptimizeIt; JGear LiveSource which offers Together UML diagramming plus the EJB, JPA and Web Services graphical designers; and JGear TeamServer and TeamClient which have ProjectAssist and TeamInsight.
The Application Factory
As the first Eclipse-based release, JBuilder 2007 was more about transition than innovation. Although it made a bunch of excellent open source tools easier to use, it was lacking in must-have features that were all its own. JBuilder 2008 aims to change that with a major new piece called Application Factory.
In software terms, a ‘factory’ implies code that generates code. It is a particular approach to the timeless puzzle of how to make code more reusable. There is inevitable duplication in software development, as independent teams solve similar problems. Software libraries and frameworks, wizards, object orientation and component programming are all ways to enable software reuse. The factory concept is simple: you tell the factory what functionality you require and the factory delivers your application. It is an idea that is often discussed, not least by the software architects at Microsoft who may build a feature like this into a future Visual Studio.
CodeGear’s Application Factory is arguably mis-named since it is as much about application metadata as it is about code generation. Each Eclipse workspace can contain one and only one Application Factory project, which becomes a tagging and navigation tool for other projects in that workspace. You can add tags which link to resources such as Java code, or notes which form diagram labels. Tags can have parent-child relationships. The tag browser lets you view the available tags and set focus on a tag, which means showing only its related items. An Application Factory project also has a preview pane which features images of the finished application in action.
The Application Factory diagrma is a new way to navigate code, based on tags and notes.
The idea behind the diagramming and tagging in an Application Factory goes beyond navigation. It is meant to capture the developer’s intent during the coding process so that newcomers to a project can quickly get up to speed. The documentation also refers to features which track changes and enable data mining of past actions, though not all the features are available in the first release. CodeGear intends to update JBuilder 2008 rapidly, and presumably new Application Factory features will be part of this.
The other aspect of the Application Factory is code generation. You can create scripts and templates which insert new code and resources into an application, or which generate a complete new project. The scripts are written in Javascript and make use of the open source Freemarker template engine. Whenever a script runs, the Application Factory records which files are generated or changed, and an archaeology pane lets you view this history at a later date. There is support for data-aware Web applications based on the open source AppFuse framework, or e-commerce applications based on Apache OFBiz which has pre-built features for enterprise automation, or you can build any type of project using templates.
CodeGear has big plans for Application Factory, which it hopes will significantly improve developer productivity, but it must be emphasised that what is on offer in the initial release of JBuilder 2008 falls far short of the long-term vision and looks rushed in places. That said, we understand that CodeGear expects to deliver fairly rapid updates. (If you buy it with Support and Maintenance then you will get new releases automatically - Ed.)