Meet a NetBeans Module Writer: Andreas Andreou


Andreas Andreou
Andreas's Hot Links:

Andreas resides in Athens, in Greece, and is a big Tapestry enthusiast. Here, he shares his experiences creating a NetBeans module that provides tooling for Tapestry.

Hi, who are you and where are you from?

Hi, my name is Andreas Andreou, a Cypriot who was born and raised in Greece.

What do you do in your every day life?

Well, in theory I'm supposed to be trying to concentrate on my PhD studies at the National and Kapodistrian University of Athens. In practice though, I work as an independent Java consultant, specializing in web application development. I'm also a committer for Apache Tapestry (, which is a fascinating framework for web development. I am also the current lead developer of Tacos (, which deals with Ajax enabled components for Tapestry.

How long have you been using NetBeans and why?

Since Sep '06. Mostly started out of curiosity... I simply wanted to see how it now compares with Eclipse and IntelliJ Idea. I had also originally used NetBeans in 2002, but it didn't quite feel right for me back then. Anyway, I believe it was the screenshots on Geertjan's blog that motivated me to try it out again. The version I tried was NetBeans IDE 5.5 Beta 1. It was a fun experience, which I hadn't expected it to be, and it continues to be fun.

You've been working on a Tapestry support module. Why?

Oh, there are several reasons:

What are the main features that you created?

Well, without going into too much detail, here's what you normally deal with when using Tapestry:

So, all of these more or less constitute the target feature set that nbtapestrysupport ( aims to provide. Here's what's currently available:

Here's a screenshot to give you an idea:


And here's another one:


Which NetBeans APIs did you use?

The plugin uses many different NetBeans APIs but I'm currently investigating and trying to get familiar with even more parts of it. So, for starters, one should begin with the FileSystem API. It is nicely written, pretty easy to understand and you'll almost always need something from it. Web APIs is another important library, especially for web-related modules. It encapsulates and configures your web project and provides many utilities for common tasks like informing the location of the document base and of the WEB-INF folder, the configured classpath settings, etc. Both these APIs enable nbtapestrysupport to provide hyperlinks. They allow searching for the CTRL + clicked resource in many different places. Once the resource is found, you'll need to take a look at the Datasystems API and the Nodes API to find how to make the IDE open it.

All these can be studied at the NetBeans API List ( and I believe them to be a good starting point for getting to know how to interact with and utilize the powers of NetBeans.

What would you say to developers who use a framework but have no tooling support for it in NetBeans?

You mean apart from switching to Tapestry..? (LOL) Well...

What are you favorite/least favorite parts of the API's?

I can't really say that I have a favorite or a least favorite part of the API's, though there are some naming conventions I don't like... Try typing "Utilities" in a Java file and hit CTRL + Space... you'll get many many suggestions because most of the APIs include such a class. Having said that, I wouldn't mind suggesting one project-related utility method I'd like included... createLibrary(). It would assist in bundling several different JARs in a new library.

What do you think about the IDE?

As I previously mentioned, NetBeans has already made giant steps forward. It has become an IDE that I gladly recommend to my clients and partners. Additionally, I currently see it as the IDE that has the biggest momentum and potential in the Java world.

What are your favorite features?

What should be improved?

Firstly, in response to your last point, take a look at this FAQ: FaqSlowEditorReparsing. Secondly, do you plan on creating more modules? Or rich-client Swing applications?

Well, I'm not currently in the business of building rich-client Swing applications so I don't see this coming... On the other hand, if I do have to create such an application, I'd seriously consider the NetBeans Platform. As for modules, well if I see something missing or something I need, I now know how to start implementing it!

Thanks Andreas and continue having fun with NetBeans! And please keep us updated with developments in your Tapestry support module!

Further reading

For information about creating and developing plug-in modules and rich-client applications, see the following resources: