If you missed JavaOne 2008 - the first aspects of the conference are now being made available. The Hands-On-Labs are also available. You can load them on your laptops and try them out. Also General Sessions are available for viewing. More...
A first draft of three JFrets modules installed into the JFugue Music Application Platform:

![]() |
NekoBean's NetBeans Travel
now on NetBeans.tv! Thank you very much Hibiki-san for preparing the
movie! The original flash movie is here. |
Hi all,
I experienced some weird behavior today when I was working on a tutorial for Hibernate. I wanted to generate some getters and setters, so I right-clicked in the Source Editor and chose Insert Code. Nothing happened. I mean nothing. Literally. It should have looked like this:

I tried it again and again. Still nothing. So I did what any other tech writer would do: I tried it another way. I right-clicked again in the Source Editor and choose Refactor > Encapsulate Fields.

Here I was able to get the IDE to generate my getter and setter methods, getting the result I desired.
From what I understand, the problems could have been caused by where the cursor is located in the Source Editor. Since hearing about this, however, I've gone back and tried it again. Sometimes I was able to insert code, other times not.
One great thing about NetBeans is that there is often an alternate way of getting something done.
Cheers!
--James
I know you all want to know about the latest buzz, and its been three weeks, since we mentioned about the latest contributions!
During that period, there's been rise in contributions, and we are glad to get a mixed bag of docs, i.e. there have been tutorials, screencasts and tips & tricks too! Also, new contributors were added to the community, namely John Muchow, Daniel Boekhoff and Tushar Joshi. Then, there were some who made a comeback like Kunal Modi, Arulazi Dhesiaseelan, Siegfried Bolz and even I made a contribution!
How about giving it back to the community, which has helped you whenever required. Great documentation support, which has helped you get started with NetBeans IDE, exploring new domains, etc. These people are just like you, helping each other by contributing!
Now, what you think? Feel like contributing, its so easy, get started with the Quick Start Guide, made for the community, to help new contributors get accustomed to the environment and be able to write the docs in Wiki format comfortably.
Thanks!
NetBeans has powered ahead in a number of areas. The latest was the arrival of NetBeans 6.1 with a number of new features. One area of particular interest to Web 2.0 types - is support for PHP. In addition, it is gaining really nice Scala support.
Many thanks to Caoyuan for all his great work. His Scala plug-in is starting to look impressive. Caoyuan, I wonder if you have the lastest NetBeans t-shirt and NetBeans USB stick... if not send me an e-mail and I'll ship them to you :)
If you want to give the Scala plug-in a try follow the instructions from NetBeans wiki.
Someone from the Czech Java community asked me recently if we could create a bundle of NetBeans + Glassfish + MySQL. Why? Because if we provide a pre-configured IDE with an application server and a great database we can make it even easier to get started for web / enterprise developers. And that is a Good ThingTM. So I'm happy to announce that you can get such bundle from netbeans.org.
I suddenly realized that instead of turning Matt Warman's whole JFrets application into a single NetBeans module, I could turn each of its parts into separate modules. The cool thing is that JFrets provides a number of different tools that help with learning to play the guitar, such as a scale selector and a metronome. Here's the JFrets metronome:
I've always wanted a metronome in the JFugue Music NotePad... and now I do:
I simply copied the metronome parts of JFrets into a separate NetBeans module (which makes sense since both the original application and the destination application use Swing) and then slightly reorganized the ui so that it would fit snugly into the explorer view. When you click Start, the JFugue API is used under the hood to start the audible tick-tocking of the metronome, using the settings you set for the tempo, until you press Stop (which is what the Start button turns into once started). This means that I am now treating the JFugue Music NotePad as an application platform. Simply download the binary and then register it as a NetBeans Platform (under the Tools menu in the IDE). All the modules in the JFugue Music NotePad are then available to your own modules. One of these modules is the module that wraps the JFugue API JAR. So in your own module, such as the one which provides the JFrets metronome, you'd simply declare a dependency on JFugue, which the application made available. Then you can deploy the modules you create in the IDE to the JFugue Music NotePad, from within the IDE, via a menu item that would then start up the JFugue Music NotePad and install your module into it.
Now that the JFrets metronome is a module, I can do the same with all the other JFrets tools, as well as the main window itself. Then I could set up an update center that contains these additional modules. The update center would be automatically registered in the JFugue Music NotePad. All its users would then be able to install additional features, such as a metronome and scale selector, which originally all came from the same JFrets application. Of course, anyone else would also be able to install these tools into their own NetBeans Platform applications, such as the IDE. Not necessarily useful to have a metronome in the IDE, but it is at least possible.

Hi all,
Another JavaOne has come and gone. Once again the world was awed at what Java can do. I had the chance to tune into several of the sessions online, however, one thing that really impressed me was Neil Young's presentation. The world "cool" comes nowhere close to describe this. You can find the video online if you google or it, and I suggest watching it. Every once in a while I hear somebody say that Java is dead. Now I know that it lives and thrives. And this is only the beginning.
Java is alive and kicking. Get used to it.
I wish I could have attended JavaOne, and maybe next year I'll be able to. Who knows, maybe I'll see you at JavaOne 2009.
Cheers!
--James
Livescribe has reinvented the pen. It is very cool and full of potential. I got one of them and I am intrigued and I'm naming it - my Java Gadget of the Year. More....
One of the cool encounters at JavaOne was with Maxim Zakharenkov, who is from Latvia, and his https://swingexplorer.dev.java.net/ project. The tool lets you introspect Swing applications and is discussed on Javalobby as well. Max told me that there's already an Eclipse plugin for his tool, but nothing for NetBeans IDE. We spent some time together yesterday and made quite some progress.
First, you need to be able to launch the Swing Explorer together with your own application. You can simply use Ant to do so:
<target name="swingexplorer-run" description="swingexplorer-run" depends="jar">
<property file="nbproject/project.properties"/>
<java classpath="${run.classpath}" classname="org.swingexplorer.Launcher" fork="true">
<arg value="${main.class}"/>
<jvmarg line="-Dswex.mport=1099 -Dcom.sun.management.jmxremote"/>
</java>
</target>
Put the swexpl.jar from the Swing Explorer project on your classpath and you're good to go. When you then run the above script, your own app will start as well as the Swing Explorer, where you can then inspect the insides of your application and play its creation back to you (which needs to be seen to be believed).
So, that's how it works from Ant. However, what do we need to do to create a plugin so that a menu item can be selected on the project which would then launch the above?
In addition, the Eclipse plugin lets you, when you play an application, jump from each played line to the line in the editor. So, as each method is played, you can click in the Swing Explorer and then the file that is being played is opened, with the cursor landing on the appropriate line. This is made possible via JMX. For diagnostics purposes, Max and I set up VisualVM and subscribed to notifications, so that we could see how this part of the application worked and to see the properties that are exposed:
(Would be nice if the columns in the table above could be resized and that a tooltip would appear displaying a column's content.)
Therefore, what the NetBeans plugin needs to do is listen for changes on the related JMX notifications and then open the editor when the "src" button is clicked in the Swing Explorer.
- First create an action on project nodes, from which you'll run the Swing Explorer in combination with your own applicaation:
<folder name="Projects"> <folder name="Actions"> <file name="org-netbeans-swingexplorerplugin-LaunchSE.instance"/> <attr name="position" intvalue="0"/> </folder> </folder>Open issue: How to make the action available only to Java applications, but no other project type? Currently, the menu item is displayed on all project types, which is inappropriate.
- In the above action's performAction, create and run the Ant script:
protected void performAction(Node[] activatedNodes) { Project project = activatedNodes[0].getLookup().lookup(Project.class); String script = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<project name=\"SwingExplorerRun\" default=\"swingexplorer-run\" basedir=\".\">" + "<import file=\"nbproject/build-impl.xml\"/>" + "<target name=\"swingexplorer-run\" description=\"swingexplorer-run\" depends=\"jar\">" + "<property file=\"nbproject/project.properties\"/>" + "<java classpath=\"${run.classpath}\" classname=\"org.swingexplorer.Launcher\" fork=\"true\">" + "<arg value=\"${main.class}\"/>" + "<jvmarg line=\"-Dswex.mport=1099 -Dcom.sun.management.jmxremote\"/>" + "</java>" + "</target>" + "</project>"; try { FileObject zfO = FileUtil.createData(project.getProjectDirectory(), "ant-swe.xml"); File zf = FileUtil.toFile(zfO); BufferedWriter out = new BufferedWriter(new FileWriter(zf.getAbsoluteFile())); out.write(script); out.close(); FileObject zfo = FileUtil.toFileObject(FileUtil.normalizeFile(zf)); ActionUtils.runTarget(zfo, new String[]{"swingexplorer-run"}, null); zf.deleteOnExit(); } catch (IOException e) { System.out.println("IO error: " + e); } }Open issue: Maybe use ContextualAwareAction instead of CookieAction, to somehow prevent the menu item from being shown when the current project is not a Java project? But what distinguishes Java projects from other projects?
Another open issue is that ideally the JAR files would be put on the classpath in the background. Currently I'm putting them there manually. They should be hidden from the user, though, so that they're not visible in the Libraries node and are definitely not packaged into the application's JAR.
- Implement an Ant logger that listens for the above target and then connects to JMX:
public class SwingExplorerListener extends org.apache.tools.ant.module.spi.AntLogger { @Override public boolean interestedInSession(AntSession session) { return true; } @Override public boolean interestedInAllScripts(AntSession session) { return true; } @Override public String[] interestedInTargets(AntSession session) { return AntLogger.ALL_TARGETS; } @Override public void targetStarted(AntEvent event) { String targetName = event.getTargetName(); if (targetName.equals("swingexplorer-run")) { Thread thread = new Thread() { @Override public void run() { try { Thread.sleep(5000); JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://:" + "1099" + "/server"); JMXConnector jmxc = JMXConnectorFactory.connect(url, null); MBeanServerConnection mbsc = jmxc.getMBeanServerConnection(); ObjectName name = new ObjectName("org.swingexplorer:name=IDESupport"); ActOpenSourceLine actOpenSourceLine = new ActOpenSourceLine(); mbsc.addNotificationListener(name, actOpenSourceLine, null, null); } catch (Exception ex) { Logger.getLogger(SwingExplorerListener.class.getName()).log(Level.SEVERE, null, ex); } } }; thread.start(); } } }For the above to work, you need a file called 'org.apache.tools.ant.module.spi.AntLogger' in META-INF/Services. In that file, simply put the FQN of the above class: 'org.netbeans.swingexplorerplugin.SwingExplorerListener'.
- Define the NotificationListener as follows:
public class ActOpenSourceLine implements NotificationListener { public void handleNotification(Notification notification, Object handback) { HashMap map = (HashMap) notification.getUserData(); String className = (String) map.get("className"); int lineNumber = (Integer) map.get("lineNumber"); OutputWriter writer; InputOutput io = IOProvider.getDefault().getIO("Hello Output", false); writer = io.getOut(); writer.println("Swing Explorer Output: " + className + " at " + lineNumber); } }Result:
Open issue: Now that I have the class name and the line number, how do I open the class into the IDE's Java editor?
Of course, once this is all working, it would be cool to get it to work for NetBeans Platform applications too. Then we'd be able to replay the creation of the entire NetBeans IDE...
As quickly as JavaOne 2008 was opened it was over.
I saw a couple of interesting sessions or BOFs, some of them were amazing, a few a little boring and I think it was good stuff. I can meet many of NetBeans platform users which the best one benefit such congresses.
Among other things, a lot amazing parties belong to JavaOne as well as technical sessions. In the end, the After Dark party with some Rock music on the stage. However it was over over very quickly too 
In short my top five remarks plus one more:
- to see several real application built on NetBeans platform in action
- to see that Autoupdate/Plugin Manager was taken as worthy and users have appropriated changes for NetBeans6
- showing of Being Shared Platform built on NetBeans platform: Creating Better Applications at Boeing with the NetBeans™ Platform Application Framework
- interesting comparison Eclipse RCP and NetBeans Platform
- very cool presentation Ten Ways to Destroy Your Community
from Josh Berkus - ... and my experience to contribute to JavaOne stuff with our introduction of Feature On Demand concept (more personals in A few words about my BOF)
I haven’t checked it in a while, but I recently saw that the NetBeans team has updated the official roadmap for version releases. I had previously seen a mention of NetBeans 7, but it seems the next release will be NetBeans 6.5.
As a quick follow-up to my previous post on the NetBeans Feature on Demand, I was thinking about how nice it would to further optimize the NetBeans startup time (via module unloading).
When NetBeans loads, it processes and loads each module that is active. To speed up this process I manually uninstall modules I know I will never use, as well as deactivating modules I use infrequently. It would be nice if the IDE could monitor and do this for me.
One of the dozens of interesting things I've picked up at JavaOne is... a very cool new keyboard shortcut that is in post-6.1 development builds. I.e., this is not in 6.1. You'd need to get a development build. Once you've done so, put your cursor on an identifier in your Java code, as shown below:
Great, all the occurrences of the selected identifier are marked, as in 6.0 and 6.1. Now how do you navigate between those marked occurrences? Wouldn't it be cool if you could hold down the Alt key and then use the Up arrow and Down arrow to navigate up and down the occurrences that have been marked? You can't do that in 6.1, but in development builds, that's exactly what you can do.
Vladimir Voskresensky from the NetBeans C/C++ development team in St. Petersburg told me about this on NetBeans Day. It's something he committed to the NetBeans sources, after having initially created it for the C++ editor. Thanks Vladimir. One thing I noticed is that the selected identifier suddenly changes while I am navigating, so that I can't navigate all the way down the list because the marked occurrence suddenly changes.
The band Smashmouth played a private concert at the JavaOne 2008 “After Dark” party held Thursday night in Yerba Buena Gardens outside the Moscone Center.
The evening was filled was some great music and food. Check out these pics and videos…
DAY ONE: COMMUNITYONE
I'm a few days behind in writing a blog or two about my experience at CommunityOne and JavaOne this year. Due to a dentist appointment, I missed the C1 opening session, and due to a concall, I missed the J1 opening! Thank goodness for webcasts. Oh, I forgot my camera too, so now I have to rely on others to send me the pictures we all posed for. I can't wait to see myself getting cozy with Juggy.
I spent most of the C1 day hanging out in the NetBeans sessions so I could meet colleagues, DreamTeamers, evangelists, and community people. All the what's new and cool stuff I had seen recently at the St. Petersburg Tech Days but it's fun to see the audience's positive reaction.
The Java Posse came by while some of us were at lunch. Love those cool hats! CEO Jonathan Schwartz wandered in and out of sessions and talked to the NetBeans crowd about the importance of community contributions, feedback, requirements and engagement.
In the afternoon, I attended the JUG leads session. They talked about growing their groups and keeping them alive and interesting. How to keep people joining and attending was a major issue for many of them. I spent my time trying to meet and greet the non-English speaking Java champions and leads. I finally got to meet Fabrizio from the NetBeans DreamTeam as well as others from Bulgaria, Brazil, Netherlands, Germany, the Philippines.
I also got to beef up my rusty Spanish by spending time with the "Chilean guys", former Sun Campus Ambassador Rodrigo Andueza and Sun Learning Services Juan Carlos Herrera. Hey! They brought me some fab Chilean wine and lapis lazuli gifts so I had to give them a plug!
Ruth Kusterer from the web team wrote a good article with some photos. Check them out. See if you can find me on this page: http://www.netbeans.org/community/articles/javaone/2008/netbeans-day-report.html.
DAY TWO: JAVAONE
I tried my best to get into any of the JavaFX sessions but they were filled to the gills. Sun employees cannot reserve places, so we had to stand in line for a long while, only to be rejected. I guess JFX was the hot topic this year. As I may be localizing it at some point, I wanted to get in on the scoop.
So, the rest of the day I hung out with the Java Champions and JUG guys at the java.net area. Daniel deOliveira informed me that the DF Brazil JUG had over 28 thousand members! I had NO idea. And, I found out about the project JEDI from the Philippine JUG members Rommel Feria and JP Petines, which creates free courseware for Philippine universities. Manfred Riem of the Utah JUG (and formerly of the NL JUG before relocating to the US) chatted with me again about our favorite topic: how to make the process for community contributed translations a piece of cake. I'll let you know if and when this problem is finally solved. 
The C1 beerfest started after 6 pm and lasted until 8. Those of us who stayed behind instead of going to the JUG and Java Champion get-together were rewarded with a bottle of OpenSolaris "reserve champagne".
JavaOne 2008 bat encore son plein, mais la quasi-totalité des annonces ont déjà été faites. En ce qui concerne GlassFish, le moisson est plutôt bonne.
Petit rappel, GlassFish v2 (ur2) est la version courante du serveur d'application Java EE 5 et Libre de Sun. Il intègre des fonctions d'administration, de clustering et de performance qui en font une alternative aux WebSphere, Tomcat, WebLogic et autres JBoss (sans ordre particulier).
GlassFish v3 est donc la prochaine version majeure dont il a été grandement question à cette JavaOne. La modularité et l'extensibilité en sont les deux caractéristiques principales.
GlassFish v3 TP2.
Tout d'abord la version TP2 (Technology Preview 2) est disponible en téléchargement (21Mo). Il propose un conteneur web pour applications JSP, Servlet, JSF, etc... et de nombreux compléments. Le serveur démarre en une seconde et ses services ne sont démarrés que sur demande. La console d'administration et l'outil de mise à jour sont téléchargés à la volée. Parmi les extensions disponibles on trouve également: EJB 3.1 (en preview), jRuby On Rails (sans packaging WAR nécessaire), Grails (aussi disponible pour GlassFish v2!), Jersey (Rest), Metro (Web Services), et jMaki (Ajax). Les plugins pour NetBeans 6.1 et Eclipse 3.3 sont également disponibles.
v3 en mode OSGi, HK2 ou embarqué.
Le gestionnaire de modules de GlassFish est HK2. Il assure à la fois les notions de modularité mais aussi d'extensibilité (indispensable pour proposer tous les services énumérés ci-dessus). HK2 utilise nativement OSGi (Apache Felix par défaut) tout en rajoutant une notion de référentiel et des services additionnels. Le mode par défaut reste pour l'instant HK2 (plus rapide, plus léger). Les implémentations OSGi Knopflerfish, Felix et Equinox sont toutes utilisables. Enfin, pour les nombreux cas d'usages orientés développeur (tests, outils, etc) GlassFish embedded permet de faire tourner le serveur dans la même JVM. Plus de hiérarchies ou étanchéité de classloaders. Démos à JavaOne d'intégration à Maven et Grails. Jetty est souvent utilisé pour ce genre d'exercice. GlassFish permet donc la même chose mais en proposant les fonctionnalités complètes d'un serveur Java EE 5 (EJB, Web Services, ...).
Trois modes de fonctionnement donc (HK2, OSGi, Embedded) pour un serveur unique.
GlassFish Enterprise + Unlimited.
GlassFish Enterprise fait désormais référence (selon un modèle calqué sur celui de MySQL) à la version commerciale et supportée du produit (anciennement Sun Java System Application Server). GlassFish unlimited est un mode de vente du produit basé sur le nombre d'employés dans l'entreprise. Le modèle plus classique est un abonnement (support, mises à jours) indexé sur le nombre de processeurs.
GlassFish Partner program.
En moins de deux semaines (beaucoup se fait au dernier moment avant JavaOne ;-), le nombre de partenaires GlassFish éditeurs de logiciels est aujourd'hui de 35, avant même l'annonce officielle du programme. On y retrouve Terracotta, ICEFaces, G2One, Nuxeo, XWiki, SpringSource, Zeus, etc... La demande est également forte pour un programme de partenariat similaire visant les intégrateurs et consultants. C'est l'affaire de quelques mois probablement.
GlassFish ESB.
GlassFish ESB est le nom de la communauté et du projet qui succède à OpenESB, le bus JBI qui intègre nombre de moteurs d'exécution (BPEL, JavaEE, ...) et de connecteurs (Fichier, FTP, HTTP, SOAP, etc.). L'architecture de ce produit s'appuie sans surprise sur JBI, GlassFish v3 et OSGi.
GlassFish Portal et Liferay (WebSynergy).
Il s'agit de l'annonce d'une collaboration technologique il y a 6 mois déjà entre les communautés Liferay (50 000 téléchargements par mois) et OpenPortal désormais regroupées sous le nom de WebSynergy. Mariage des standards (Portlet 2.0, WSRP), de la sécurité (OpenSSO), des widgets développés dans plusieurs langages (Java, PHP, Ruby), et du workflow (Liferay).
Basé sur GlassFish v2 aujourd'hui, v3 plus tard. Téléchargements disponibles aujourd'hui à l'adresse : http://glassfish.org/portal (110 Mb). Les deux sociétés collaborent sur le même projet pour en dériver chacun une offre qui lui est propre.
Sun GlassFish Communications Server.
Sailfin, l'extension SIP de GlassFish développée avec Ericsson a désormais un nom commercial: Sun GlassFish Communications Server. La beta est pour bientôt, dès que SIPServlet 1.1 (JSR 289) est finalisé.
RDV à Tours, Bruxelles, Vienne, Zurich, Mont de Marsan, pour plus de GlassFish.
One of the most interesting discoveries I made at JavaOne was a performance and monitoring tool called Jennifer. More...
Wednesday's Script Bowl was indeed what the caption promised, a rapid-fire comparison of scripting languages. Four developers took on the challenge to convince the audience of their language of choice -- in only three minutes per round. Guillaume LaForge represented Groovy, Charles Nutter represented JRuby, Frank Wierzbicki represented Jython, and Jorge Ortiz represented Scala.
All four languages compile to Java bytecode, but what distinguishes them? The jury, made up of Roberto Chinnici, Carol McDonald, and Ola Bini, made the four contestants compete in three categories: Each developer had prepared three demos, a desktop application, a web application, and one free-form app that shows off what the particular scripting language does best. After each round, the host Rags Srinivas encouraged the attendees to vote by sending text messages.
The rich client app demos were first. The task was to implement a desktop client that allows you to log on to Twitter and view your friends' feeds and status, and search for text in their postings. The ability to post was not required, but some of the demo'ed clients could.
The Groovy implementation clearly followed the MVC pattern and the language features made it very easy to parse the XML input; the GUI made a good impression. The JRuby implementation was designed using the NetBeans GUI builder (Matisse) and the Profligacy library, and therefor looked like a native app on MacOS; the users of this JRuby app will also appreciate that the build script generated native executables for different operating systems. The Jython app could save time by reusing an already existing model for accessing Twitter APIs; still the app was an odd one out, since it had to be started from the Terminal, and despite having a GUI with buttons to select Twitterers, the output was printed to the Terminal (frankly it looked as if he didn't have time to complete the UI). The Scala developer got started quickly by extending a SimpleGuiApplication class for desktop apps; Scala also made it easy to parse XML input, and the jury pointed out the clean error handling.
Next came the web applications. The application should access a MySQL database containing a world factbook, allow the user to browse facts about countries, and sort entries by criteria (language, population, etc). Additionally it should display the selected cities on a map.
The Groovy developer of course relied on the Grails framework together with Hibernate to access the database. The web application contributed by the JRuby community relied on the Rails framework and hooked up the components using the NetBeans IDE. The Jython web application relied on the Django framework with good-looking results. All three web applications made good use of their respective web frameworks and came with nice user-friendly web interfaces. Only the Scala team failed to produce the required web application and lost votes accordingly; instead, they demo'ed two other web apps, a chat client and a task list that use Ajax to keep the view up-to-date.
A quick look at the votes shows that JRuby and Groovy are presently the most popular choices in the audience... Will Scala and Jython catch up in the last round, where each team gets a chance to show off what their language can do best?
The Groovy representative decides not to show off demo apps, but instead he convinces the audience by talking about the seamless Java integration that Groovy is famous for. But then the JRuby submissions wow the audience with their smooth visual beauty: The first demo is a Star Wars-like scrolling Twitter client; the second demo is a 'Face For Steven Hawkins', a flock of colored dots that vibrate and change colors in response to audio input. Yes, admittedly, not very useful, but... pretty! The Jython representative chose to demo the Terminal-based Python help system that will soon be integrated into Jython too. The Scala demo was an application that searches and counts words in RSS feeds; it showed very well how Scala handles concurrency in minithreads.
Before the results were made public, the audience had a chance to pose questions to the experts. Asked about the relation of JavaFX to the other languages demonstrated today, Charles Nutter explained that each language was justified by its unique approach, so he does not see JavaFX as competition, but a powerful contribution to the variety of scripting languages. Another attendee asked how exactly languages such as Scala integrate with Java? All scripts written in these four languages compile to Java bytecode (war or jar files) that run on the standard JVM. Regarding Scala, Jorge Ortiz remarked that calling Java libraries from Scala apps is however easier than calling Scala from Java apps.
Finally, Rags announces the winner: JRuby! Groovy comes second, then Scala, and Jython (Check the final results in Rags' Blog, A=Groovy, B=JRuby, C=Jython, D=Scala). Jython had produced good results, but may have lost a few points for the terminal hacking required to start the applications, since all other contestants used IDEs. Although it felt a bit rushed and it was sometimes hard to pick up the details, this format of comparison is very suitable to get an overview of the "contestants".
NetBeans 6.1 is out!
I have updated the Code Template Tools module to work with NetBeans 6.1 FCS and trunk. Here are the NBMs"
NetBeans 6.1 FCS compatible Code Templates Tools NBM
post 6.1 main compatible Code Templates Tools NBM
I need to figure out how to publish multiple NBMs on Plugin Portal. In the mean time you will have to use these.
Two excellent Bird-of-a-feather last night. One on feature-on-demand applications and the other on rich internet applications.
I've been helping proctor the hands-on-labs, if you don't know about them - you should. They are wealth of information in tutorial form that you can download and try out. More....
Go to https://nbrichfacessupport.dev.java.net/index.html and you will be able to read all about this new project and check out the sources. Join the project and contribute, especially if you have cool snippets that should be added to the RichFaces palette.
I will start populating the Issue database with new requests for enhancements soon.
There is a preview version of the WebSynergy plug-in available at Portal Pack project site. This NetBeans plug-in supports portlet development and deployment on the new WebSynergy and also works with Liferay. For more details read here...
There is a preview version of the WebSynergy plug-in available at Portal Pack project site. This plug-in supports portlet development and deployment on the new WebSynergy and also works with Liferay.
Prerequisites:
You need to install other Portal Pack 2.0 plug-ins before installing this plug-in.
Using this plug-in :
- You can write portlets which can be deployed on the WebSynergy and Liferay.
- By selecting the target runtime server as "WebSynergy", it automatically creates all liferay specific xml/properties file to the project.
- Liferay specific files get updated whenever a new portlet is added to the project
- Single click portlet deployment on WebSynergy and Liferay.
- You can see a list of the deployed portlets in the Services tab under WebSynergy node inside your NetBeans IDE
- Undeploy a portlet directly from the NetBeans IDE
- Create PHP/Ruby Portlet which can be deployed on the WebSynergy. Ruby portlet development support is not currently available for download. But it will be available soon.
- Develop cross-platform inter-widget communication code using Eventing StoryBoard with simple drag and drop. To use this feature you need to download the latest nightly build of Generic Portlet Builder which is linked from the WebSynergy plug-in download location. Check these blog and screencast for more details.
The Portal Pack 2.0 final version for NetBeans 6.1 is now available for download. It supports the new JSR 286 portlet specification.There are many new features which will help developers to write portlets quickly using JSR 286(Portlet 2.0) features. These plug-ins are also available at NetBeans 6.1 Auto-Update Center and
with Java Tools Bundle Update 5 .
Some highlights of this release are :
- Support for New JSR 286(Portlet 2.0) specification
- Eventing StoryBoard for JSR-286 Eventing
- Visual Portlet Builder to build JSF portlet using WYSIWYG editor.
- Portlet 1.0/2.0 taglib code completion.
- Portlet Filter support
- Drag & Drop Support for Filter and Public Render Parameter.
- Deployment support on OpenPortal Portlet Container 2.0 and Portlet Container 2.0 bundled with Java Application Platform SDK U5
- Deployment support on Sun Java System Portal Server 7.2 .
- Support for new WebSynergy (Early Access)
To know how to develop portlet using Portal Pack 2.0 read this article.
In the next few days, I will be blogging about some specific features in Portal Pack 2.0 . So keep watching this space :)
Earlier tonight, I attended the NetBeans ‘Feature on Demand’ Birds of a Feather Session at JavaOne 2008 presented by Sun’s Geertjan Wielenga and Jiri Rechtacek.
NetBeans 5.5 contained a useful tool called the ‘Javadoc Auto Comment’ feature. With the heavy rewrite of the NetBeans internals in version 6.0, the auto comment tool as we knew it was stripped out. This was down with some howling and protests, but at least there was a good reason (and not simply for the heck of it).
Quoted from NetBeans Wiki:
‘We have intended to replace the AC tool for a long time due to its archaic UI and a weak linkage to the editor, where users usually want to edit source code. Changes in the Java model in NetBeans 6.0 forced us to drop the tool immediately and start to implement particular features that will replace the tool as resources permit. So NetBeans 6.0 contains basic editor hints to create or fix javadoc, and the long-awaited ability to generate javadoc skeleton on /** + <Enter> in the open editor as the first step. Of course, the Javadoc Search and the Show Javadoc were adapted to the new model as well.’
NetBeans 6 did contain Javadoc hints and warning so on a class by class basis you could see what was missing or incomplete. NetBeans 6.1 introduced Javadoc code completion. So far so good, but it wasn’t quite as useful as the old Auto Comment tool.
I recently checked the NetBeans 6.1 update center and discovered a plugin listed called Javadoc Analyzer. I had been following several related bug posts at the NetBeans site and knew they had been working on it, but had not had time to try it out.
Download it from the update center and you’re ready to use it with no configuration.

