Q&A with George Gastaldi on JBoss Forge

DZone 's Guide to

Q&A with George Gastaldi on JBoss Forge

George Gastaldi talks JBoss Forge, including development inspiration and community reactions.

· Integration Zone ·
Free Resource

Ever wanted to "make your work less like work?" JBoss Forge was created to do just that, as project lead George Gastaldi explains in this Q&A.

What was the inspiration for the development of JBoss Forge?

Development with Java EE can be dauting. There are so many technologies incorporated and so many ways to configure each of them (annotations, XML) that users normally need to Google for the answer and learn how to set it up from online forums, for example.  This is the same for any new framework or library that you want to use in your project. Forge allows you to create your own tooling to make your favorite library/framework easier to be installed/used.

The development of JBoss Forge started from the original project lead, Lincoln Baxter,III. About 2010-ish, JBoss Seam 3 was becoming popular and users needed a way to create apps using these libraries just as Seam-Gen (A tool oriented for Seam 2) was. Short story, Seam 3 was discontinued, but the idea remained. Forge focused on creating pure Java EE 6 applications (without depending on any specific library or framework besides Java EE) in a non-intrusive way.  

After I joined the team in 2012, I started working full-time on JBoss Forge, until recently becoming the Project lead.

What has the community reaction been like to JBoss Forge?

We have a great community around JBoss Forge. There are plenty of talks about it in the main Java conferences around the world made by our fellow community members (including JUGs from Bulgaria, Paris, etc). You can see some of their work in http://forge.jboss.org/addons and some videos of them in Youtube.

What benefits does JBoss Forge offer over integrated IDE tools and plugins?

Developing IDE plugins is not an easy task. It's not just a matter of learning a new technology, but also learning different APIs from different IDEs. Take SWT in Eclipse for example. In order to create a simple wizard, you need to be aware on how to create an Eclipse plugin, including some knowledge of OSGi. It gets worse when you when you have developers using other IDEs, so you need to invest some time to port your existing plugin to other languages. IntelliJ and Netbeans use Swing but with some proprietary APIs and so on. Then you most likely would need to distribute your plugin using the IDE's proprietary distribution mechanism. JBoss Forge allows you to create commands using the Forge API and we provide plugin implementations for the most used IDEs (Eclipse, NetBeans, Intellij IDEA) that understand this API and render these commands using the underlying IDE's technology. That eliminates the burden of dealing with proprietary IDE APIs and at the same time makes your code reusable among them. That's why we prefer to call Forge as a "Write Once, Run Anywhere For IDEs."

Where do you see JBoss Forge going over the next few years?

The release of Forge 2 was a huge breakthrough, as we provided a deeper IDE integration and native IDE wizards out-of-the box. In Forge 3 our codebase is maintained but compiled against JDK 8, making it easier for  addon developers to contribute and have fun developing extensions using the coolest JDK 8 features.

We are aiming in publishing the Forge API as a REST service. This will greatly improve the tooling range and allow any UI to consume this API. We have a roadmap with the next features (it's in our JIRA in http://issues.jboss.org/browse/FORGE

What are your favourite blog posts, tutorials, videos or books on the subject of JBoss Forge?

The best resource available is the JBoss Forge website itself (http://forge.jboss.org). There is an excellent hands-on-lab: http://forge.jboss.org/document/hands-on-lab 

We also have a YouTube channel where you can find the latest news around JBoss Forge: https://www.youtube.com/channel/UChnruRwagWHn16cNSOH_Atw

jboss ,forge ,interview

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}