Last year November Martin Adamek and me
started to work on a full-featured set of modules to support the
Groovy programming language and the grails application server. After being quite
impressed (and a little bit depressed) about the feature-set of the
Intellij Groovy/Grails plug-in, we wanted to create something similar for NetBeans.
One key responsibility of all
OpenSource projects is to carefully look around what's already out in
the world. Re-use of existing sourcecode and/or leveraging existing libraries is a given in this
culture. Therefore we started off our work by using the existing, but
inactive coyote plug-in. Doing a language plug-in. with an extensive feature-set
comparable to the Intellij plug-in. goes way beyond the scope of the
otherwise very helpful Schliemann framework.
This left us with the cumbersome tasks
of coding everything from scratch against the NetBeans Editor API. Luckily we
soon discovered Tor Norby's GSF Framework. GSF's purpose is to help creating
exactly what we were about to create - A new scripting language support
module. GSF really achieves this goal and has been one of the reasons, why we are able to develop so many
features in such a short period of time.
Here are the modules and there main
Collection of helper- and utility
classes alongside the Customizers.
Editing Groovy sourcecode files. All
the bells and whistles like syntax-highlighting, folding resides
Support for editing Groovy server pages
Here's all the code interfacing with an
ex-process grails server. Architecture-specific execution of the
Support for the new NetBeans project
type "Grails-Project" together with all visual components
like Wizards, Actions, Node-renderers and the like.
Wrapper module for the ones above to
show-up as a single entity in NetBeans PluginManager.
Initially we started in NetBeans old
CVS trunk which soon became NetBeans 6.0. We soon realized, that we
need to use some new API's, therefore the suite of modules needs NetBeans 6.1 as a
Please use the daily snapshots from the
NetBeans source-repository continous integration system (Hudson), which can be found here:
By using these builds, you are going to get all the pre-configured development UpdateCenter which include our modules.
... Or work with the NetBeans sources from
the mercurial repository:
and build it yourself (it is easy!, No
really it is, no one forced me to write this.)
Here's a great description, how to do
The Plug-ins are available from the
UpdateCenter, therefore just go to:
Tools > Plug-ins > "Available
Plug-ins" > "Groovy and Grails"
and install them.
The sourcecode for the Groovy/Grails
modules lives in the "contrib" repository:
contrib repository webinterface
there are six subdirectories starting
If you build them in this order:
ant -f groovy.\*/build.xml
you have them automatically up and
running the next time you start NetBeans.
So what are you getting by using these
modules? Pictures entering the stage:
- Method-completion including JavaDoc
display for Groovy and Java:
- Code Folding of Groovy sourcfiles:
- Starting, stopping of Grails-Server:
- Importing existing Grails projects.
Well arranged display of project structure:
- Groovy/Grails module settings
integrated into NetBeans options dialog:
- Marking of sourcecode errors:
- Easy navigation of Groovy sourcecode
by using a navigator view:
- Customizing of Grails Environment and
Serverport. Auto-deploy to Glassfish Appserver:
- Starting common grails-tasks from
- Status of running grails server
displayed in status-line:
- Syntax Highlighting:
I would love to get feedback about this
project. No matter how much planning one is doing, at the end of the day the software
should be used and should be usable for real live users. Therefore I'm bleeding to get your
feedback. What you like, what you don't like, what you think we should implement. Ideally, you
file your bugs and wishes right where they will end-up anyway and that's the NetBeans
issue-tracking system Issuezilla.
We have our own Component-name which is
(you guessed it): "groovy".
The Issuezilla landing page could be
There are still many, many things
missing from the modules. Depending on the interest, people are showing for the initial release (
we won't make it into NetBeans 6.1 ), these are candidates
for features of the next release:
- Debugging support. (yes - it's sad
but true, that we have no debugging support at the moment)
- MultiView for easy navigation between
corresponding Model-View-Controller files.
- Refactoring support.