Dienstag Apr 22, 2008

Groovy, Grails & NetBeans talk @ University of Karlsruhe

Today I'm going to give a talk about Groovy, Grails and how NetBeans supports these two at the Java User Group Karlsruhe meeting.

... And here are the Slides.


 

Montag Mrz 31, 2008

Grails update.

I'm back from my Easter-vacation and just stunned about the feedback I've got for this blog.

Thanks so much to all of you!

I haven't figured out whether and how i could answer to individual comments, but i guess this isn't possible.

So here some answers and hints:

1. UNC path, @ChinaBoy:

This issue was once tracked by us here:

Dialog-box after creating a new Grails-project

After some testing I considered it fixed. Obviously it isn't. I'll look into it asap.

2. Netbeans 6.1 Beta or Development build, @Stefan:

Please take a look here:

http://deadlock.netbeans.org/hudson/job/javadoc-nbms/lastSuccessfulBuild/artifact/nbbuild/nbms/extra/

There you can find the always up-to-date NBM's from our continous-integration system.

Take the 6 modules prefixed "org-netbeans-modules-groovy\*":

org-netbeans-modules-groovy-editor.nbm

org-netbeans-modules-groovy-grails.nbm

org-netbeans-modules-groovy-grailsproject.nbm

org-netbeans-modules-groovy-gsp.nbm

org-netbeans-modules-groovy-kit.nbm

org-netbeans-modules-groovy-support.nbm


3. Stop App on Windows, @JS:

"stop application doesn't work"

That's right, this is an issue (only) under Windows since there is not the concept of process-groups under Windows.
Details can be found here:

Stop Application does not work anymore

I'm already working on a fix for this, so expect some relieve within the next one or two weeks.

"although the contextual menu is great, wouldn't it be great to have a small toolbar with 5 buttons (new [domain, controller, view, taglib, service]) and their keyboard shortcut?"

This is a great idea. I've created an issue to track this:

Adding Toolbar-buttons for common grails actions 

Thanks for your input!

"integration with servers inside the IDE: right-click on a grails project -> deploy to -> GFv3/JBoss/Tomcat"

This is definitely on our wish-list, but don't expect something in this area in the short-term.

4. CodeCompletion documentation, @baijianhua:

Hi - I feel really sorry to forget to mention that you have to have:

    1. JavaDoc enabled for the JDK: Tools/Java Platforms/J2SE "Javadoc"

    2. The "original" directory-layout from the groovy-docs-\* download-file unpacked right below the $GROOVY_HOME setting provided under Tools/Options/Groovy. For example if your groovy system is here:

      /opt/groovy 

      you need to have:

      /opt/groovy/html/[api|gapi|groovy-jdk]

      This is hardcoded at the moment which is bad for several reasons, I know. This might be better placed in the customizer dialog, right after the $GROOVY_HOME setting itself. What about that?

Donnerstag Mrz 20, 2008

News from Grailsland

The past

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 duties:

groovy.support

Collection of helper- and utility classes alongside the Customizers.

groovy.editor

Editing Groovy sourcecode files. All the bells and whistles like syntax-highlighting, folding resides here.

groovy.gsp

Support for editing Groovy server pages files (GSP).

groovy.grails

Here's all the code interfacing with an ex-process grails server. Architecture-specific execution of the "grails <target>".

groovy.grailsproject

Support for the new NetBeans project type "Grails-Project" together with all visual components like Wizards, Actions, Node-renderers and the like.

groovy.kit

Wrapper module for the ones above to show-up as a single entity in NetBeans PluginManager.

The present

Installation

NetBeans 6.1

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 minimum.

Binary

Please use the daily snapshots from the NetBeans source-repository continous integration system (Hudson), which can be found here:

deadlock.netbeans.org Builds

By using these builds, you are going to get all the pre-configured development UpdateCenter which include our modules. 

Source

... Or work with the NetBeans sources from the mercurial repository:

hg.netbeans.org

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 this:

 WorkingWithNetBeansSources

The Modules

Binary

The Plug-ins are available from the UpdateCenter, therefore just go to:

Tools > Plug-ins > "Available Plug-ins" > "Groovy and Grails"

and install them.

Source

The sourcecode for the Groovy/Grails modules lives in the "contrib" repository:

contrib repository webinterface 

there are six subdirectories starting with "groovy.\*".

If you build them in this order:

  1. groovy.support
  2. groovy.editor
  3. groovy.gsp
  4. groovy.grails
  5. groovy.grailsproject
  6. groovy.kit

using ant:

ant -f groovy.\*/build.xml

you have them automatically up and running the next time you start NetBeans.

Screenshots

So what are you getting by using these modules? Pictures entering the stage:

  1. Method-completion including JavaDoc display for Groovy and Java:



  2. Code Folding of Groovy sourcfiles:



  3. Starting, stopping of Grails-Server:



  4. Importing existing Grails projects. Well arranged display of project structure:



  5. Groovy/Grails module settings integrated into NetBeans options dialog:



  6. Marking of sourcecode errors:



  7. Easy navigation of Groovy sourcecode by using a navigator view:



  8. Customizing of Grails Environment and Serverport. Auto-deploy to Glassfish Appserver:



  9. Starting common grails-tasks from context menu:



  10. Status of running grails server displayed in status-line:



  11. Syntax Highlighting:



Participation

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 found here:

NetBeans Issuezilla 

The future

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:

  1. Debugging support. (yes - it's sad but true, that we have no debugging support at the moment)
  2. MultiView for easy navigation between corresponding Model-View-Controller files.
  3. Refactoring support.

Links:

About

schmidtm

Search

Archives
« April 2014
MoDiMiDoFrSaSo
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Heute