In this podcast interview, Max Rydahl Andersen looks at the newest enhancements in JBoss Developer Studio 1.1, including better support for Seam and Hibernate development. He also looks at what's new in JBoss Tools 2.1, including SOA tooling, BIRT integration and various performance improvements in Seam.
A complete transcript of the interview has been provided below:
DZone: We are sitting today with Max Rydahl Andersen, core developer and consultant on the JBoss platform. Max, can you tell us a little bit about yourself and what projects you're currently involved with?
Max Rydahl Andersen: Sure. I was part of the Hibernate team since the early days, working on the core and the tools. And it was because of this work with Hibernate I came to work at JBoss Incorporated as a consultant and a Hibernate core tools developer. And this has now transformed me into working as the lead for JBoss Developer Studio at JBoss, a division of Red Hat.
I'm also active on the Seam, but I'm primarily working on the JBoss Tools product, which are the Eclipse plug-ins we do for JBoss and related technologies. And this eventually will end up in the product called JBoss Developer Studio.
DZone: Great. Could you provide a bit of an overview, Max, on some of the key features in JBDS and how they differ from JBoss Tools?
Max: So, first off, JBoss Tools is the open source product that has all of the JBoss developer plug-ins, like Hibernate, Seam, jBPM, Drools, some of the visual editor things we have. And all these plug-ins, then, end up in the product called JBDS, or JBoss Developer Studio in the long version, which is a subscription-based product which we build around these plug-ins.
So, JBDS' key features, compared to just having JBoss Tools, is that it provides the whole bundle. So it's not just the plug-ins. It's Eclipse, some third-party plug-ins, like Spring IDE and TestNG, the JBoss Tool plug-ins, and finally, our actual runtimes, like JBoss EAP, and the Enterprise Application Platform. Furthermore, in the subscription is also an entitlement to Red Hat Enterprise Linux, if you want to install that and try and develop on it.
So the whole point of this is, by bringing these together, the user gets a certified, QA'd, and simple-to-install developer environment, and it all runs out of the box. And you know that if you develop with this IDE, with these bundled runtimes, and possibly even the OS, you get support for these exact same software apps at JBoss Red Hat, or at least you can get it.
DZone: Can you talk a little bit about some of the features in JBDS that support Seam development?
Max: Yes. For Seam, we have the whole deal. One of the primary goals of the first version of JBDS was to get good Seam support.
First off, we've got a Seam product wizard that creates either a WAR or EAR style product, which is ready to run immediately on the bundled runtime. And it's tuned for fast-turnaround development. So, if something's like incremental and high-deployment of both JSF pages and proto classes. So, when you do a change, you just press control-S, and it reloads and is ready to run. You don't have to wait for a long turnaround.
Yeah. So we also have a CRUD application generation wizard, or basically a wizard that allows you to point to an existing schema in a database and generate a full CRUD application, giving you edit screens, list screens, all the tables, allowing you to get running real fast.
But if you don't want the full CRUD application, or you just want to extend it a bit, we have a set of wizards for individually creating an entity, action, or conversation. And all of these don't just create a single bean or a single snippet of code. It creates also a JSF view, the actual code, and even, in some cases, a TestNG case, allowing you to get going real fast. You don't have to get up and read about everything to get going.
And when we talk about TestNG, it's important to realize that Seam development is not just about Seam itself. It's also the Red Hat-led technologies, such as TestNG, Hibernate, JPA, BPM, EJB3, and especially JSF, which we have a nice visual editor for. So the whole idea is, in the Seam environment, we added in support for all the technologies around Seam.
DZone: What if the user has their own Java classes? Can they still use the CRUD application generation?
Max: Yes. We have this option called "use existing entities." If you don't have an existing database, or your data model is more pure for some reason, you can generate an application, not just on the existing database, but on your existing JPA or Hibernate Java beans.
DZone: The editor is perhaps the place where developers spend most of their time, coding and testing their application. What unique features does the Visual Page Editor provide?
Max: Our Visual Page Editor, which is used for all the HTML and JSF pages that you have, gives you a source code and visual page view in the same editor. So one part is the visual part, and the other part is the source code part. And it gives you what I call "what you see is almost what you're going to get," because you can't do everything precisely, but it's very close.
And the unique thing about our JSF editor is that it uses Mozilla to render results, so it gets it a very close to possible rendering of it. And it allows you to work with Facelets, something I haven't seen other JSF/HTML editors do, at least not in open source.
DZone: And what if a user has their own custom tags? Will the Visual Page Editor support those as well?
Max: So, by default, our editor will just show a basic rendering. Basically, it just takes a DIV and puts the name of your tag, so you can see it's something we don't recognize. But all the rest of the page will work. So it's not like, if you have a custom tag, the whole thing will fall apart. It's just that this specific tag will stand out as something we don't understand.
But if you want to make it render more correctly and do something specific, it's actually very simple to create what we call a template file, and set it up so that when we bump into your custom tag, we will know, "Oh, this custom button tag should be an HTML button, or a table, or whatever. And actually our [indecipherable] allows you to edit any XML-/HTML-like file.
For example, Denis Golovin from Exadel, he used it to write a Docbook editor very quickly, in a matter of a few hours. I actually wrote a plug-in for him on it that explains the details. I can give you the link later.
DZone: How does JBDS allow you to work more easily with Hibernate?
Max: There's a set of features. The most Hibernate-specific feature is our query editor, which gives you HQL as a Hibernate Query Language. And the Criteria language we have support for. So you have an editor where you can type in the snippet of HQL or Criteria, and it will allow you to execute them and see the results.
So you can browse not just as a table but as a list of objects, and browse the object graph. The SQL part of it, this feature we call Dynamic Preview SQL, where as you type the HQL it will show you what SQL Hibernate will execute. Because sometimes when you execute SQL, it's not just one SQL (statement), but multiple.
But otherwise, it's just very nice to be able to see, oh, for this specific dialog, it's going to do this, or for another one it's going to do this.
DZone: Seam primarily uses annotations. What if users are using HBM.XML mapping files. Could they still use the tool?
Max: Yeah. So Hibernate's tools is just using Hibernate itself to load its data. So if Hibernate Core Entity Manager can load them, so can we. So that means we support Hibernate mapping files and annotations.
DZone: Max, what can users expect to see in the next version of JBDS?
Max: In the upcoming release this month, which is JBoss Tools 2.1 and JBoss Developer Studio 1.1. The highlights are that we relaxed the product structure. Before, we were very strict on the product structure for Seam. Now users can configure it as they want. So if they have Maven or Webtools products or any other structure, we should be able to support it.
We've worked a lot on performance in the Seam stuff. So there should be a faster startup. And there were some areas that were slow in the previous version, which have been improved. For Seam specifically there's been more work on integrating what we call find references for EL.
So if you have an EL expression in your JSF, in your component XML, or even Java, you can now use in Eclipse what's called a Control-Shift-G to find reference to it, allowing you to figure out, oh where did I actually reference to this expression or this class.
So after the release 2.1, we're going to work for the next quarter on JBoss Tools 3.0, which will become JBDS 2.0 at some point. One of the major highlights is we're going to be based on the Eclipse 3.4 called Ganymede.
The things we are working on at the moment is SOA tooling for ESB, Drools, and JBoss Web services. We also have a sort of list of improvements, to Seam about code refactoring and the find reference feature, improving that. We also look into BIRT integration, which is the reporting tool that is in the Eclipse family.
The TPTP integration, which is about profiling performance monitoring, is also something we are working on. And finally, JBoss Portal features will that also be extended in the 3.0 family, JBoss Tools 3.0. [inaudible]
DZone: So Max, a lot of our listeners are just starting to dabble with JBoss Tools and JBoss Developer Studio. What's the best thing, in your opinion, users can do to start learning JBoss Tools and JBDS?
Max: The best thing is to go to jboss.org/tools. There's links both to the open source and to the actual product. And if you go to product, you can directly go and buy it and download it. Or if you just have an existing Eclipse installation, you can try out the JBoss Tools plug-ins.
Together with reading [indecipherable], we have a long setup documentation for each specific feature. And we have the public forums where we are listening. And we're even on IRC. Again, all the links are on jboss.org/tools.
DZone: JBoss has been founded on a very strong open source business model that is very grassroots and community-driven. How can the community influence the development of JBoss Tools and JBDS? How do you get involved?
Max: The simplest one is use the software, and if you find something, like an issue, you go to our JIRA and report it. Because there's so many different ways of using an IDE that we basically need feedback to know if we're actually doing things wrong or even right.
We find support the many ways we do know, but we also know that every user has their own different scenario. So use the software and report issues to our JIRA. And the public forums. If you're not sure what something is about, go to public forums. We are there. We're definitely listening.
DZone: Max, thanks for taking the time to chat with us today.
Max: Thank you.