Java Development, Recruitment and Consultancy

Latest News

Java without the Palaver

This section lists some of the latest articles in the press and journals about Java and related subjects. It is built from many RSS feeds and is updated daily. The page can get quite large so if you are looking for a particular topic we suggest you use ctrl-F.

Today's Articles

(updated Fri May 09 07:00:02 BST 2008 )


JL Java Announcements : Mon, 28 Jan 2008 10:02:53 -0500
These forums have moved!
Please note that posting has been closed in this forum. To post your announcements, please visit http://java.dzone.com, the new home of Javalobby.

JL Java Announcements : Thu, 24 Jan 2008 07:26:05 -0500
FineReport6.1 enterprise reporting tool launched
A pure JAVA report tool, provide abundant, overall, the structure clear API connects. The cross-platform characteristic of JAVA report tool can support the demand of large system goodly .

JL Java Announcements : Thu, 24 Jan 2008 03:39:37 -0500
STAN - Structure Analysis for Java Public Beta 2
STAN 1.0 Public Beta 2 is now available. This release includes integrated help and lets you generate quality reports via Ant. STAN is available as a set of Eclipse plugins or as RCP application.

JL Java Announcements : Wed, 23 Jan 2008 17:43:39 -0500
JavaZone 2008 Conference Call For Presentations
javaBin, the Norwegian JavaUsers Group has announced a call for presentations for the 2008 edition of JavaZone. The event will take place in Oslo, Norway on September 17 and 18.

JL Java Announcements : Wed, 23 Jan 2008 12:33:32 -0500
Use Sametime and Lotus with Websphere Business Monitor
Use WebSphere Business Monitor's alerts, instances, and key performance indicators directly from Sametime or Notes with dashboard plug-in for Lotus Notes and Sametime.

JL Java Announcements : Wed, 23 Jan 2008 10:39:32 -0500
Crionics jPDF v7.06
New version of the popular 100% java API to view, print and manipulate PDF files. More at http://www.crionics.com

JL Java Announcements : Wed, 23 Jan 2008 05:28:57 -0500
KonaKart v2.2.2.0 Free Java Shopping Cart - JSR 168 Portlet Implementation
KonaKart v 2.2.2.0 is a new release of the free java shopping cart software which now includes a JSR 168 Portlet Implementation, Customer Notifications and UPS Shipping Module.

JL Java Announcements : Wed, 23 Jan 2008 04:23:23 -0500
eHour 0.7.2 - Time tracking
eHour is a free webbased time tracking tool for companies and organisations who need accurate information on how much time is spend on projects by their people.

JL Java Announcements : Tue, 22 Jan 2008 16:20:23 -0500
Super csv 1.30 released
We are very excited to present yet another release of Super CSV, version 1.30.Super CSV is a free CSV reader/writer with a wealth of features to suit all your CSV needs. The framework evolves around

JL Java Announcements : Tue, 22 Jan 2008 12:34:38 -0500
LAMEOnJ v1.0. The open source Java MP3 API based on LAME
LAMEOnJ is a 100% Java API wrapping the standard LAME API. Java methods call the exported lame_enc.dll (Windows), libmp3lame.so (Linux) and libmp3lame.dylib (MacOSX) methods. JNIEasy is used as bridge

Javalobby - The heart of the Java developer community : Thu, 08 May 2008 23:36:11 -0400
Web Frameworks: Comfort vs. Expediency?
Two nights ago I had a conversation with Craig McLanahan, among others, in a slightly dubious sports bar near the JavaOne conference site. When the subject of web frameworks came up, an interesting, and probably obvious, angle emerged.

Javalobby - The heart of the Java developer community : Thu, 08 May 2008 17:15:49 -0400
JavaOne: Intel Keynote
It is daythree of the JavaOne conference and the first session of the day sees DougFisher (VP) deliver Intels keynote. Hebegins by highlighting the fact that Intel is using what they call a tick-tockschedule for delivering new processors on a yearly basis. With each tick they shrink the currentarchitecture and deliver better energy efficiency and performance by putting...

Javalobby - The heart of the Java developer community : Thu, 08 May 2008 16:56:28 -0400
An Inconvenient Truth: A Global Software Crisis
Every project manager or project sponser would love to have a model that churned out the probability of a project succeeding or failing. We may never achieve such precise quantification of project success, but there are definitely some red flags that will alert you. I finally watched Al Gores documentary An Inconvenient Truth.Apart from the remarkable case put forward about the state of...

Javalobby - The heart of the Java developer community : Thu, 08 May 2008 15:22:38 -0400
JavaOne: AMD Keynote
AMD had atough slot towards the end of day two, by this point people have been standingin a lot of lines to take in lots of technical information so it was nosurprise that the General Session hall here was about one third full. The first part of this brief session wasreally just AMD enthusing about their love for Java technology and Javadevelopers but started to get more interesting when Dr...

Javalobby - The heart of the Java developer community : Thu, 08 May 2008 04:51:35 -0400
CommunityOne 2008 Impressions (Day 0 of JavaOne)
The CommunityOne conference this year was on Monday, May 5, 2008, the day before JavaOne "proper". It's easy to think of CommunityOne as a "pre-JavaOne", or "JavaOne, Day 0" because, like JavaOne, it's sponsored by Sun Microsystems, it's at the same venue, and it is logistically managed as sort-of an extension of JavaOne (your JavaOne conference pass is used, but...

Javalobby - The heart of the Java developer community : Thu, 08 May 2008 04:37:03 -0400
JavaFX Gets Video Capabilities
Get ready for high quality video on the screens of your life. Sun has entered into a multi-year agreement with On2 Technologies, to provide immersive media and content on your JavaFX applications.

Javalobby - The heart of the Java developer community : Thu, 08 May 2008 03:30:25 -0400
JavaOne Wednesday Morning Keynote: "Oracle Enterprise" - Oracle Corp.
Oracle believes Java is integral part of the upcoming transformation of the Enterprise to more Web-2.0-like -- to adopt the look and feel of Web 2.0 and fulfill the funtional expectations of the typical Web 2.0 user (creating informational mashups, creating new levels of integration between normally non-integrated modules of a web applicion, or at least data elements managed by those modules)....

Javalobby - The heart of the Java developer community : Thu, 08 May 2008 02:30:07 -0400
When Should You Jump? JSR 308. That's When.
One of the frequently asked questions at the No Fluff, Just Stuff expert panels boils down to, "When should I get off the Java train?" There may be good money out there for the last living COBOL programmer, but most of the Java developers we see still have a lot of years left in their careers, too many to plan on riding Java off into it's sunset.

Javalobby - The heart of the Java developer community : Wed, 07 May 2008 20:59:04 -0400
JavaOne: What's Next in Server Side Technology
My finalsession of day one here at JavaOne was presented by Larry Cable, VP andArchitect for WebLogic Server at BEA Systems (now part of Oracle). Larry deserves kudos for presenting a sessionthat was a wide look at the concepts of Server Side java and the direction itis heading in, instead of using the hour as an opportunity to flog someWebLogic features and licenses. Maybe heknew better...

Javalobby - The heart of the Java developer community : Wed, 07 May 2008 20:38:38 -0400
Interview: JFugue Goes Hip Hop
A new release of JFugue API was announced last week. Its author, Dave Koelle, is at JavaOne and here he talks about the API and some of its hidden treasures.

Javalobby - The heart of the Java developer community : Wed, 07 May 2008 15:30:04 -0400
Intro to Design Patterns: Prototype Pattern
Today we're going to look at the Prototype design pattern.  Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype. - Gof TypeObject Creational

Javalobby - The heart of the Java developer community : Wed, 07 May 2008 15:20:00 -0400
JavaOne: Brian Goetz on concurrency in Java 7
Brian's talk focused pretty much exclusively on the new fork-join framework that will be added as part of the JSR 166 extension in Java 7. There are a few other little goodies in the JSR update but this is the big one.

Javalobby - The heart of the Java developer community : Wed, 07 May 2008 14:23:46 -0400
Maven support 3.1 for NetBeans
This new major release includes:

Javalobby - The heart of the Java developer community : Wed, 07 May 2008 09:16:40 -0400
Embarcadero Buys CodeGear for $23M: New Life for JBuilder?
Embarcadero Technologies, a privately held database tools vendor, today announced a definitive agreement to purchase Borland's CodeGear division for $23 million. The deal is expected to close within 30-60 days and will propel Embarcadero into the league of the world's largest independent ISVs for developer tools.

Javalobby - The heart of the Java developer community : Wed, 07 May 2008 03:36:39 -0400
A Java Programmer's Guide to Random Numbers, Part 1: Beyond java.util.Random
This is the first in a series of articles about random numbers in Java programs. The series covers the following topics and also serves as an introduction to the random numbers package of the Uncommons Maths library.

Javalobby - The heart of the Java developer community : Wed, 07 May 2008 01:44:14 -0400
JavaOne 2008 Opening Keynote
The main theme of years conference is Java + You and it looks like that could be a big advertising play for Java for the next little while. What does it mean? Well, it is basically a way to highlight the ubiquity of Java technology because it is now running in billions of devices, computers, sensors and more around the world.There was a big push of JavaFX, a technology that Sun wants to...

Javalobby - The heart of the Java developer community : Tue, 06 May 2008 15:51:34 -0400
JFrets: Learning to Play Guitar with Java
Matt Warman, who created and open sourced JFrets, the Java-based guitar-teaching tool, is at JavaOne! He'll be delivering a technical session and BOF. I bumped into him in one of the speaker rooms and we moved his application to the NetBeans Platform. Then we discussed his project.

Javalobby - The heart of the Java developer community : Tue, 06 May 2008 14:18:57 -0400
Console applications with Java 6
In Java 6 a better way of interacting with the command prompt was introduced, the java.io.Console class. Together with the utility class java.util.Scanner introduced in Java 5 this new API can be used to develop more advanced Java console applications.

Javalobby - The heart of the Java developer community : Tue, 06 May 2008 12:12:08 -0400
JavaOne Coverage Begins
The earlynews from the 2008 JavaOne conference in San Francisco is all about the crowd that showed up. I arrived at the venue to find a line ofthousands that streamed along the South building, under the street to the Northbuilding and back up to street level, to give you an idea of the scale of this,the two main Moscone Center buildings cover

Javalobby - The heart of the Java developer community : Tue, 06 May 2008 12:04:59 -0400
OSGi & Spring
Its time to move on and show the simple elegance Spring brings to OSGi development using the HelloWorldSpec sample from the OSGi & Modularity post. But first, a little primer on Spring Dynamic Modules. Spring DM is not an OSGi implementation. Instead, Spring DM aims to make working with OSGi easier just as Spring makes the world of Enterprise Java simpler.

Javalobby - The heart of the Java developer community : Tue, 06 May 2008 07:14:11 -0400
Groovy / Grails Update from G2One at the No Fluff Just Stuff Meetup
This gathering was put on by the people who take the excellent NFJS series around the United States throughout the year. I was fortunate enough to attend my first one just a few weeks ago in Seattle and am happy to say that in the course of one weekend, the symposium reminded me of so many reasons why I got into developing software. With that kind of introduction you might think I would have high...

Javalobby - The heart of the Java developer community : Tue, 06 May 2008 07:07:55 -0400
CommunityOne Open Source Developer Conference - sponsored by Sun
CommunityOne is a gathering of many open source communities which precedes the JavaOne conference that begins Tuesday here at the Moscone Center in San Francisco, CA. This years event has 50% more attendees that last years, with double the number of sessions and triple the number of communities involved. Thats about 4000 attendees including several hundred students from 80 different...

Javalobby - The heart of the Java developer community : Tue, 06 May 2008 04:57:50 -0400
Developers Prefer Britney to Paris
So Britney Spears beats Paris Hilton in open source popularity, but neither can compete with Satan! That's the results of the latest trend analysis from code search company, Krugle.  While announcing the list of top Java queries that developers have submitted world wide, the company also listed the number of times celebrity names are included in the lines of open source code tracked by Krugle.

Javalobby - The heart of the Java developer community : Tue, 06 May 2008 03:41:09 -0400
Functional Web Services Testing Made Easy with SoapUI - Part 1
Service-oriented architecture (SOA) and web services are becoming more and more popular in many development projects. In Java or .NET, exposing your business logic component as a web service is as simple as adding a few metadata annotations. Likewise, once you have a web service, you can use any client to consume it, right?Before you make all your web services available to the public, however,...

Javalobby - The heart of the Java developer community : Mon, 05 May 2008 11:17:05 -0400
RationalPlan Now Running on Mac OS X
Stand By Soft has created Mac OS X distributions for all of their products. Minimum requirement: Mac OS X 10.4. All products integrate easily with Mac platform and provide the specific Mac look & feel.

Apache News Online : 2008-03-05T13:55:16+00:00
05 March 2008 - Apache Axis2/C 1.3.0 Released
Apache Axis2/C Team is pleased to announce the release of Apache Axis2/C version 1.3.0. You can download this release from http://ws.apache.org/axis2/c/download.cgi Key Features ------------ 1. Support for one-way messaging (In-Only) and request response messaging (In-Out) 2. Client APIs: Easy to use service client API and more advanced operation client API 3. Transports supported: HTTP * Inbuilt HTTP server called simple axis server * Apache2 httpd module called mod_axis2 for server side * IIS module for server side * Client transport with ability to enable SSL support * Basic HTTP Authentication * Digest HTTP Authentication * libcurl based client transport 4. Transports supported: HTTPS * HTTPS Transport implementation using OpenSSL 5. Transports supported: TCP * for both client and server side 6. Transport proxy support (HTTP) * Proxy Authentication (Basic/Digest) 7. Module architecture, mechanism to extend the SOAP processing model. 8. WS-Addressing support, both the submission (2004/08) and final (2005/08) versions, implemented as a module. 9. MTOM/XOP support. 10. AXIOM, an XML object model optimized for SOAP 1.1/1.2 messages; This has complete XML infoset support. 11. XML parser abstraction * Libxml2 wrapper * Guththila pull parser support 12. Both directory based and archive based deployment models for deploying services and modules 13. Description hierarchy providing access to static data of Axis2/C runtime (configuration, service groups, services, operations and messages) 14. Context hierarchy providing access to dynamic Axis2/C runtime information (corresponding contexts to map to each level of description hierarchy) 15. Message receiver abstraction * Inbuilt raw XML message receiver 16. Code generation tool for stub and skeleton generation for a given WSDL (based on Java tool) * Axis Data Binding (ADB) support 17. REST support (more POX like) using HTTP POST, GET, HEAD, PUT and DELETE * Support for RESTful Services 18. Comprehensive documentation * Axis2/C Manual 19. WS-Policy implementation...

Apache News Online : 2008-02-06T23:40:03+00:00
06 February 2008 - Apache Tuscany SCA Java 1.1 Now Available

Apache News Online : 2008-01-26T13:03:47+00:00
26 January 2008 - Apache Lucene Java 2.3.0 Released

Cafe au Lait Java News and Resources : Fri May 09 07:00:07 BST 2008
Sun has posted a public review draft of JSR 311 JAX-RS: The Java API for RESTful Web Services 1.0.
Sun has posted a public review draft of JSR 311 JAX-RS: The Java API for RESTful Web Services 1.0. This amounts to a moderately complex API for server side HTTP. There's some good stuff here, including support for URI templates, and the use of annotations to associate methods with paths. I still suspect it's more complex than it needs to be; and I'm not sure if Java code is really the right place to be mapping handlers to paths. The again maybe it is appropriate for some HTTP servers, even if not all of them. Comments are due by May 22.

DevX: Latest Java Articles : Tue, 22 Apr 2008 23:08:32 PST
Mobilize Your Java Applications with Java ME Technologies
Read this beginner's guide to extending an enterprise application to mobile devices with the Java ME technologies.

DevX: Latest Java Articles : Thu, 17 Apr 2008 21:15:07 PST
Grid Enable Your Java Applications with GridGain
Grid computing, the idea of executing code among various computers to solve complex time- and resource-intensive algorithms, has intrigued researchers for decades. GridGain lets Java developers tap into the grid.

JSF Central -- News : 21 Feb 2008 07:30:00 GMT
[fleXive] Community Preview Released: Rapid Java EE Development
Managing and operating on hierarchical data structures is an issue in many projects, alongside with security concerns, internationalization, versioning and querying. To date neither open nor closed source projects or frameworks offer possibilities to dyna...

JSF Central -- News : 01 Feb 2008 06:00:00 GMT
JSF 2.0 Faces Disjointed Components
The project, under the auspices of the Sun Microsystems-driven Java Community Process, already has five primary goals: make custom components much easier to develop, add first-class AJAX support, incorporate a page description language based on Facelet...

James Strachan's Weblog : Tue, 04 Jul 2006 06:49:50 GMT
London Java Meetup on Wed 5th @ 5pm
Thanks to Jez for arranging this we now have a place and location for Wednesday's geeky curry and beer night... Jason van Zyl, lead developer for Maven, Plexus, Continuum and Modello and also founder of Velocity is in town this week. This wednesday, after his free lunchtime seminar with JSIG at the Sun offices, why not join Jason van Zyl, James Strachan, and myself for a few beers and a great meal out... We will be in the pub from about 5pm onwards, and when we get hungry we'll move towards food, so if we are not in the pub, try the restauraunt, if you still can't find us email my blackberry on jeremy.rayner at interactivedata .com and I'll direct you. Sounds like a fantastic evening, I'll see you there, Background  'Jason van Zyl' -> http://tinyurl.com/kh97k  'JSIG seminar' -> http://tinyurl.com/ehdn6 Evening  'Pub: The Puzzle' -> http://tinyurl.com/gcgo5  'Food: The Gulshan' -> http://tinyurl.com/fjw7x See you all there! :)

James Strachan's Weblog : Mon, 03 Jul 2006 18:10:24 GMT
London Java Meetup 6 days early on Wed 5th?
Jason van Zyl (Mr Maven ) is over in blighty for almost 2 whole days so figured it'd only be fair to drink beer and go for a curry. I wondered if folks fancied a rapidly arranged early session of the London Java Meetup - or having an Xtc a day late :). Both Jason and I are up for beer, geeking out and eating curry in any order....

java.net Weblogs : 2008-05-08T20:14-08:00
JavaOne 2008 Day 2
Josh and Rachel explore the Pavilion floor and meet up with the guys at Sun Labs where they learn more about Hydrazine, Project Wonderland, The Lively Kernel, The Java Deployment Group, the Java Tools Community, and Sun Spots!

java.net Weblogs : 2008-05-08T17:52-08:00
JavaONE So Far
Hi everybody, as most of the people blogging on java.net, I am also going to dedicate my blog entry to the JavaONE conference. This year, is my first year on the conference, and I really have to say that it...

java.net Weblogs : 2008-05-08T17:41-08:00
And I made it
Now I can say, at last, that I'm a JavaOne speaker, really, not only a successful submitter. This year no headache, sore throat, cold, flu, pain in the ass prevented me from performing my talk. Not even the stinking MacBook...

java.net Weblogs : 2008-05-08T17:23-08:00
JavaOne 2008 - FindBugs is a great little tool, and it just keeps getting better!
There are a lot of static analysis tools out there, but Findbugs is unique. Where Checkstyle will raise 500 issues, and PMD 100, FindBugs will only raise 10 - but you damn well better look at them carefully!

java.net Weblogs : 2008-05-08T09:36-08:00
JavaOne Day Two - Personal Highlights
Helping a high school student get a Sun SPOT from Sun for his school computer club has to be number one. The Java Champions BOF was pretty interesting. I wonder how many people know you don't have to be a Java Champion to attend this BOF. Bob Brewin, the Sun CTO, was taking questions from the Java Champions for the first half of this session. I was also fortunate to receive an invite to attend the NLJUG meeting with James Gosling at noon. On the party front, The Eclipse party at the Thirsty Bear was my favorite. However, I only attended 3 of the many parties going on that night. =)

java.net Weblogs : 2008-05-08T09:08-08:00
JavaOne 2008: Day Three
A massively parallel brain-dump

java.net Weblogs : 2008-05-08T07:21-08:00
JavaOne 2008 - towards user interfaces that rock!
Enhanced user experience is a key theme coming out of this year's JavaOne. There are countless sessions on innovative technologies such as JavaFX, the Google Web Toolkit, Comet, and Android. All of these have in common that they are...

java.net Weblogs : 2008-05-08T00:56-08:00
Do we rely too much on XP?
You can create Java apps for a multitude of platforms as long as you're developing on Windows XP.

java.net Weblogs : 2008-05-07T23:30-08:00
Java One Day 2
Here is my report from day 2 of Java One. I continue to feel diffidentabout RIA and Java FX Script, the theme of this year's Java One, so I decided to make my own themes: Ease of development, and transparency.

java.net Weblogs : 2008-05-07T21:24-08:00
JavaOne 2008 - some brand new monitoring and profiling tools for your Java apps
Performance monitoring and profiling applications is one of my favorite pet topics. So I was keen to here today's talk on "Improving Application Performance with Monitoring and Profiling Tools".

IT-archiv : Fri May 09 07:00:14 BST 2008
NetBeans 6.0 released
New version of pure Java IDE has been released , with support for many new

IT-archiv : Fri May 09 07:00:14 BST 2008
Java SE 6 Performance White Paper
Java SE 6 Performance White Paper includes detailed

IT-archiv : Fri May 09 07:00:14 BST 2008
Sun phases out mobile Java
Sun will gradually phase out mobile Java (Java Micro Edition) and move respective services to Standard Edition. "We're trying to converge

IT-archiv : Fri May 09 07:00:14 BST 2008
Consumer JRE Early Access
Sun has started an early access program to Java SE 6 Update N (formerly known as the "Consumer

IT-archiv : Fri May 09 07:00:14 BST 2008
YourKit Java Profiler 7.0 released
The major update to YourKit Java Profiler has been released. Version 7.0 includes

ONJava.com : 2008-05-07T23:18:06-08:00
Neil Young at JavaOne
Participated in a Q+A session after yesterday's keynote. Sat down with Neil Young, Larry Johnson, some Sun executives, and a small group of reporters including Tim O'Reilly. Young and Johnson struck me as animated and excited about both the archive...

ONJava.com : 2008-05-07T13:48:26-08:00
JavaOne Impressions from Tuesday
My entries are a day behind. I'm not a reporter, I'm a blogger, and I think it is more important to spend time talking to people than it is to work to some deadline in the press room. There's a...

ONJava.com : 2008-05-07T11:48:10-08:00
Java One Day 0
So, the big kickoff for JavaOne. I guess there was news. Solaris on EC2, which is fine. More JavaFX demos. Expected that. Other than that, what? So one thing that really struck me: Project Hydrazine. Can someone tell me what...

ONJava.com : 2008-05-07T11:18:09-08:00
Neil Young & the cool stuff
Last year JavaOne got the UN guy and was trying to eradicate poverty; this year they got Neil Young and were showing off the cool stuff. CNET blogger Dan Farber has a good write-up and the video that tells you...

ONJava.com : 2008-05-07T08:48:11-08:00
JavaFX Showcase: Should you care to see it?
JavaFX.com is up and running! The problem is that it doesn't work well on most browsers. The small fonts are unreadable when viewed in FireFox or Safari. The site takes a long time to load up. The only thing notable...

ONJava.com : 2008-05-06T12:18:38-08:00
JavaOne Day -1
CommunityOne was huge. Having been to various what-use-to-be NetBeans Day at what-used-to-be the Argent, seeing the Moscone filled with people for C1 was actually quite strange. In real terms, the experience didn't seem that different, however. CommunityOne works the big...

ONJava.com : 2008-05-05T16:18:26-08:00
JavaOne: More than Java, More than 1 conference
Although JavaOne 2008 officially starts tomorrow, it commenced today with CommunityOne. Carrying on the trend that started a couple of years back JavaOne is continuing to emerge as an event for things more than just Java. For statistics sake at...

ONJava.com : 2008-05-05T00:47:34-08:00
JavaOne Day -2
So I am going to break rules here, I am pretty sure, six ways from Sun-day (haHA!). I am pretty sure I have never commented on this before, because, I agree with the 16,000 of you who will tell me...

ONJava.com : 2008-05-04T08:18:01-08:00
JavaOne => J1 | Nutter on JVM | Groovy Beta "Bytecode Diet"
If you are following JavaOne on Twitter, you should "track javaone". If you haven't already signed up, you should read Bob Lee's Going to JavaOne? Sign up for Twitter blog entry from two days ago. People were using Twitter last...

ONJava.com : 2008-05-01T07:17:44-08:00
Introducing [fleXive] - A Complementary Approach to Java EE 5 Web Development
This article is an introduction to Flexive, an open source Java EE 5 application development stack. The authors have extracted a complete application template and describe its use.

ONJava.com : 2008-04-30T20:47:36-08:00
Project Capuchin - Enhance your Java mobile application UI with Flash Lite
As Flash's strength is in fast UI deployment and Java's strength is in services, security and a well developed distribution infrastructure, lots of Java developers are adopting the Flash as their UI choice. When it comes Java ME development,...

ONJava.com : 2008-04-28T16:05:13-08:00
License Fake-out hits ExtJS and Java Service Wrapper: Communities Alienated
In Choosing an OSS License and the Ext-JS saga, Graeme Rocher (of Groovy on Grails fame) reacts to the recent ExtJS switch from LGPL to GPL. Here's a quote: What they have effectively done is built up a community, taking...

Planet Eclipse : Fri, 09 May 2008 03:42:42 +0000
Ian Skerrett: Thoughts on JavaOne 2008
Just finishing up this years edition on JavaOne.  Some thoughts& JavaFX was definitely the main message from Sun.  The Sun keynote was full of JavaFX demos showing spinning pictures.   It reminded me of 1998 spinning Java logos in applets.  Sun appears to want to go head to head with Adobe and Microsoft for the hearts and minds of designers and web programmers.  Unlike Cote , I think they are too late and I am not sure anyone really cares about JavaFX. JavaOne is usually full of announcements from the major vendors, this year was the exception.  In fact the Sun and Oracle keynotes were non-events; kind of boring. One thing that was very surprising to me is that there was little discussion about openJDK and open source Java.   Last year it was all about open source Java.   I know Sun is still committed to openJDK, it was just surprising the absents of discussion. OSGi did really well at JavaOne .  Lots of people were clearly interested but most people have no idea.   We still have a long way to go to educate people about Equinox and OSGi but things have started. The Eclipse party at the Thirsty Bear was a great success.  Thanks to everyone that came. I also went to the eBay party.   eBay is a huge Eclipse user and they are doing some neat things.  btw, eBay is looking to hire some Eclipse experts.   If you are interested send me an e-mail. Once again we gave out 750 t-shirts at the Eclipse booth.  Thanks to everyone that came by the booth.  It is great to hear from all the enthusiastic Eclipse users.  See you next year.

Planet Eclipse : Fri, 09 May 2008 02:35:56 +0000
Dave Carver: Docbook, Blocked by IP Concerns
No Docbook Stylesheet Plugin. To be more precise, the Docbook Stylesheets and their supporting Xalan java extensions didn't make it through Eclipse IP review. So unfortunately, this puts a partial damper on the requests we've had for some integrated support for Docbook in the XSL Tooling project. However, I don't think all is lost, as with other projects, one can still download and use the stylesheets with the XSL support we provide. It just means you'll have to work a bit harder, and I'll have to become more creative on designing an example project. I do plan on updating Chris's authoring article he wrote a while ago, so that it leverages the XSL Tooling project instead of old EclipseXSLT project. EclipseXSLT was one of the code bases that was used to start the XSL Tooling project, much of that code base has been rewritten since that initial contribution, but the same concepts still apply. So maybe I'll do that on my plane trip out to California next month. My question for the Docbook users are, do you want the XML Schemas for Docbook to be included in the XML Catalog so that editing and content assistance support is available out of the box? If so, what versions do you want: 4.5 or 5.0? For DITA, I think we can get the DITA open toolkit as an optional plugin configuration, but I'm not overly familiar with DITA or the open toolkit. So what would you need for us to support in the way of XSL support? Is there a standard set of DTDs or schemas for DITA? What do you want supported? Report your requirements here or in bugzilla. XSL Validation Settings. I've used many different XSL editing tools over the years. One of the items that has always puzzled me is that all of these tools lacked support for configurable Validation setting reporting. It's not uncommon to have XSL stylesheets that aren't completely runnable and pass validation by themselves. Many of these smaller stylesheets are included or imported into other styelsheets, and the whole is a valid stylesheet. With the latest release of XSL Tooling a user can now control the validation error reporting level for many pieces of the XSL validation. This is great, for getting rid of extraneous Error messages, that other XSL editing tools don't allow you to control. You can thank my fellow committer, Doug Satchwell, for his tireless effort on working on this validation scenario and configuration. Currently the above is workspace wide, however, Jesper Moeller has volunteered to try and get the project specific settings implemented as well. XPath Content Assistance. I didn't make as much progress on this as I had hoped. Mainly because I got caught in the standard architects dreaded trap. That of trying to over architect the current problem, and looking to far ahead. Eventually, I'm going to need an XPath model, to offer some of the functionality I would like to offer, but for now, I don't think I need it. So, to fix some of the problems with content assistance for XPath, I'm going back to the basics and start over. Mainly to fix the issues and design choices that I had originally made when learning to implement it, but also to hopefully provide a better implementation for content assistance going forward. Hopefully, I can get that worked out for 0.5M8 next month. XSL Tooling is moving right along, and the editor has advanced far enough along that for most my XSL editing needs, I have migrated to it. Where we are still lacking a bit is in the Debug support. Hopefully we can give that a bit more attention in the coming months. As always, we are looking for community feedback, if there is something missing or not working please let us know.

Planet Eclipse : Fri, 09 May 2008 01:00:49 +0000
BJ Hargrave: Hot off the press: my JavaOne presentation
You can now download the JavaOne 2008 presentation Converting (Large) Applications to OSGi I just delivered with Peter Kriens. The presentation went really well. There was around 700-800 people there and we had some really good questions asked during the 5 minutes we had left for questions. And then many more questions after we left the stage. I felt like a JavaOne Rock Star ! :-)

Planet Eclipse : Thu, 08 May 2008 13:35:17 +0000
Ralph Müller: Bug Report
We need do better in communicating and where to report bugs and issues. Why do I think so? Because I received the following 'Bug Report' today, from a developer (?) called Nagy: F *ING JAVA, and F *ING ECLIPSE!!!!!!!!!!!java.lang.OutOfMemoryError: PermGen spacejava.lang.OutOfMemoryError: PermGen spaceException in thread "Worker-7" java.lang.OutOfMemoryError: PermGen space 7965 mark 20 0 1540m 520m 23m S 99 13.2 1:48.24 java 8186 mark 20 0 1272m 78m 10m S 0 2.0 0:03.20 javaNICE JOB, CONTINUE F *ING GOOD JOB AND EAT ALL OF F *ING WORLD'SF***ING MEMORY! So Nagy, here is the idea: Please report the problem you have at https://bugs.eclipse.org/bugs/. You will have to go through the inconvenience of creating an account and answer some questions like what platform you use, what version you use and the likes, but this type of information would help the team tremendously to assess your problem. As a matter of fact, they might be really happy if you sent them some code example too that demonstrates the problem - please avoid f***ing comments to protect the minors in our community. The address you sent your report to cannot help to solve the issue. Hope this helps ... PS: Excuse me for slightly editing your original message. Ralph

Planet Eclipse : Thu, 08 May 2008 09:11:44 +0000
Eclipse MAT: The Power of Aggregation: Making sense of the Objects in a Heap Dump
The goal of this article is not to provide you with a step-by-step approach in finding memory problems, but to reveal several powerful features of the Memory Analyzer , which are irreplaceable in memory leak hunting. These features might be unified into one topic  aggregation. Memory Analyzer - is a powerful Java heap analyzer. It makes it possible to find a memory leak or reduce memory consumption by looking into the heap dump only. Our wiki page provides detailed information on how to acquire a heap dump. Sometimes you open a heap dump in Memory Analyzer and see nothing & but a pile of small objects: As overview pane shows, the majority of retained memory is more or less equally distributed among several objects, which makes it difficult to see a suspect for a memory leak at first sight. Grouping in Dominator Tree The pie in the overview pane is a graphical representation of the Dominator Tree, which you can open from the toolbar using the button The Dominator Tree is built out of an object graph. Each object in the tree is responsible for keeping its children alive. The tree is sorted in descending order according to the size an object retains in memory. Now, if we group the dominator tree by class (using the drop-down toolbar menu), we will see a different picture: We can see that 700 objects of class com.foo.bar.menu.MenuEntry retain 46 % of the total heap space. Suddenly we see an unequal distribution of the retained memory. How is it possible that we see it only now? The answer is that in this heap dump we do not have one single big object, but a group of leaking objects. Remember, the overview page of the heap dump only displays the distribution of retained memory heap on a per-object basis. So, when we group the dominator tree by class, we group our leaking objects to their origin class and thus get an accumulated retained heap. Lets find out who is referencing all those com.foo.bar.menu.MenuEntry objects. For this select List objects > with incoming references from the context menu. As a result we will get an object reference graph: If we drill down into the com.foo.bar.menu.MenuEntry , we can see the chain of objects referencing our suspect. Unfortunately, in this case it is not really helpful as we see only a LinkedList structure. Grouping referrers to the class level As we have seen looking at the incoming references graph for our suspect objects did not reveal a lot. Grouping referrers to class level might be more helpful. This operation is performed via a context menu. Back in the dominator tree grouped by class, right-click on our suspect com.foo.bar.menu.MenuEntry and select Show objects by class > by incoming references : Grouping referrers by class allows us to see a simple and easy to understand reference chain: We can now see, that class com.foo.bar.menu.MenuEntry is referenced by a LinkedListEntry , which we already knew. But as we continue we see that this entry is again referenced by a LinkedListEntry (this is the head of the LinkedList ) and by the LinkedList . LinkedList itself is referenced by two classes, one of which is of no interest as it is from the java.* package (which for now we assume to be unproblematic). The other one, however, is of interest. The easiest way to find out what keeps our memory leaking group of objects alive in the heap is to check the path to the garbage collection roots. However, paths to garbage collection roots can only be found for a single object but we are interested in finding a common chain of references to a group of objects. Well, this is also possible. Merging Paths to Garbage Collection Roots The Merged Paths to GC Roots view shows the shortest paths from the GC roots to each instance of the selected class. You can open this heap editor using the context menu Merge Shortest Paths to GC Roots on the com.foo.bar.menu.MenuEntry class instance: This operation explores all the paths from the different objects to their GC roots at once and finds a common chain of references for this group of objects. It is a common procedure to exclude weak and soft references from the result as they cannot be the main reason of keeping the objects of interest alive. There we got the reason: one instance of the class com.foo.bar.menu.FoodSupplies keeps in memory 700 instances of the class com.foo.bar.menu.MenuEntry . Now is the right time to check what is going on in the code and fix the problem. Conclusion Apparently, Memory Analyzer has more aggregation features to offer. Some of them will be covered in our future blogs.

Planet Eclipse : Thu, 08 May 2008 00:10:40 +0000
Ian Skerrett: New resource for Eclipse newbies
DZone has just released the first set of their Refcardz, including a  Getting Started with Eclipse .   It looks like a great resource for anyone starting in Eclipse. Nitan from Dzone was kind enough to drop off some of the Refcardz for the Eclipse booth at JavaOne; they proved to be very popular.  Lets hope they do more of these for other Eclipse projects.

Planet Eclipse : Wed, 07 May 2008 23:27:47 +0000
Wayne Beaton: More pictures from JavaOne

Planet Eclipse : Wed, 07 May 2008 16:48:29 +0000
Wayne Beaton: Some pictures from JavaOne
The Eclipse booth at JavaOne is being hosted this year (as it is normally hosted) by a broad cast of Eclipse committers, representatives from member companies, and other generally-knowledgeable people. Yesterday, some of the folks from nexB hung out at the booth, answering questions about Equinox and being all-around great ambassadors for Eclipse. Here are the nexB folks (along with Lynn and Donald) during a lull in the excitement (its hard for me to take shots when theres lots of activity at the booth, as I end up being one of the folks chatting with the visitors). A highlight of the show for me was meeting up with Luke Li, and old friend from university (back then we knew him as Danny Li). Heres Luke eating the fish after a great Sushi dinner. Hanging out with the nexB guys, and then later with Doug and Shaun from EclipseLink and Virgil from BIRT is the best part of the show for me. Today, be sure to drop by the Eclipse booth. Ill be there from 1130 to 1330 to chat about Equinox, runtimes, and everything else you want to know about Eclipse. Mik Kersten will be there from 1330 to 1500 to talk about Mylyn , and Oliver Wolf will be there from 1500 to 1630 to talk about Swordfish . FWIW, no real swordfish were injured during our sushi-fest last night&

Planet Eclipse : Wed, 07 May 2008 06:28:20 +0000
BJ Hargrave: An AJO is not a POJO
A POJO is a p lain o ld J ava o bject. Everyone talks POJOs these days. They are easy to compose and unit test. They are free of coupling to specific infrastructure details. So you can take your POJO to another infrastructure. For example, from JavaEE to Spring or OSGi. I like them and I think it is the right way to do things. However, people are also fascinated with annotations now. Things like Guice and EJB3 and Glassfish all want you to annotate your POJO. But once you do that, your POJO ceases to be plain . While the non-annotation part of your code is still the same, the annotations in your code mean that your source now has coupling to specific infrastructure details and it is wrong to call is a POJO anymore. You can't compile your code without the proper support for those annotations. If you want to deploy your code in another infrastructure that uses annotations to describe the infrastructure details, you have to add more annotations to your source. While I see the interest in putting the infrastructure information in the source near where it is used. We need to be honest. Your code is not a POJO anymore. It is now an AJO: an annotated Java object.

Planet Eclipse : Wed, 07 May 2008 05:07:44 +0000
Max Rydahl Andersen: JBoss Tools 2.1.0.CR1 Released
While everyone else is having fun at JavaOne we uploaded the candidate release of JBoss Tools 2.1.0 at sourceforge and via the development update site . This release is mainly 100+ bugfixes/enhancements based on QA and feedback from the last release . A few new features did make it into 2.1.x and you can see those at new and noteworthy . To upgrade safely to this release please read the following. Existing Seam projects Existing Seam projects will work fine in this new release, except EAR projects with an application.xml should be updated to have something like the following modules: <module> <web> <web-uri>myprj.war</web-uri> <context-root>/myprj</context-root> </web></module><module> <ejb>myprj-ejb.jar</ejb></module><module> <ejb>jboss-seam.jar</ejb></module> ..and nothing else. The <java> elements we generated previously are unnecessary and breaks WTP 2.0.2. The details about why that is are in the following. Less rigid WTP 2.0.2 We are now targeting WTP 2.0.2+Patches to get some of its important bugfixes. Unfortunately WTP 2.0.2 introduced a bad regression bug concerning deployment and another bug which makes WTP 2.0.2 very rigid about deploying jar's listed in application.xml via <java> or <ejb> tags unless they have xml descriptors (which is not required in JEE 5). This affects Seam 1.2 projects and any other projects using binary jars with EJB's in them and projects that uses <java> or <ejb> in application.xml for jars without descriptors which is the case for projects created with previous version of JBoss Tools To get around these various bugs/ features of WTP 2.0.2 we had to do two things: application.xml in new Seam projects no longer lists jar's in <java> elements to work with WTP 2.0.2. Besides being more correct and standard compliant it also makes the application.xml much smaller so in overall this is a Good thing. Unfortunately existing JBoss Seam projects that uses <java> in application.xml can run into files not being deployed thus we added a EAR validator that will put warnings/errors on offending elements we know can cause problems and with instructions on how to fix it. We provide a cumulative feature patch to WTP 2.0.2 which removes the rigidness in WTP with respect to JEE jars without descriptors. It is a hack, but it at least allows JEE 5 compliant jars to work instead of causing a exception stacktraces and random behavior in Eclipse. We had hoped this rigidness could be removed in an update to WTP 2.x, but that does not seem to happen within a decent time frame so we decided to release the patch on our own. Note: WTP 2.0.2+WTP provided patches will work for most users, but we do recommend running with our patch to avoid publishing issues. Feedback We plan on going GA within the next few weeks so we encourage you to provide feedback on our forum and jira in case you find something bad or good ;). p.s. This version of JBoss Tools (sans the experimental parts) will be available in a JBoss Developer Studio 1.1.0.CR1 for JBDS customers soon.

Planet Eclipse : Tue, 06 May 2008 18:18:45 +0000
Chris Aniszczyk: Eclipse Bloggers at JavaOne?
Are there any Eclipse bloggers attending JavaOne ? If so, can you please blog about what's going on? I can only hear rumors like "anything JavaFX touches breaks." It's kind of like the midas touch , but instead of turning things into gold, JavaFX breaks demos! I want to hear the inside scoop instead of rumors through the grapevine :) Also, for those there in San Francisco, here's a tip. My favorite pizza/brewery joint is located in San Francisco and its called Pizza Orgasmica . They are awesome, plus, who can say no to a restaurant whose motto is "we never fake it."

Planet Eclipse : Tue, 06 May 2008 16:58:54 +0000
David J. Orme: E4 and RCP4: Desktop and Web from one source
Back at EclipseCon, one of the big news items had to do with the proposed Eclipse 4 , or E4 feature set. But I think that the true story behind E4 isn't just in running Eclipse in a browser , but in something much more interesting than that. The real E4 story E4 isn't just a very cool AJAX frameworkit's the ability to write rich client applications that deploy to a desktop or a browser from the same code base. And this is interesting. Which is why I'm attending the upcoming E4 Summit . And why I've switched to a blikia cross between a blog and a Wikito make it easier to both blog and write about E4 . E4 is the Community's Platform I can't make RCP4 happen by myself. IBM can't make E4 happen by itself. Come and join us! Jump inthe coding's fun and the water's warm! Please add comments with your ideas, thoughts, and critiques. Read or add comments to this article

Planet Eclipse : Tue, 06 May 2008 13:17:16 +0000
Peter Friese: Eclipse Stammtisch Hamburg recap
Yesterday, the first Eclipse Stammtisch in Hamburg took place. We had about 30 registrations in advance and were quite surprised that even more people showed up. The location ( Bolero Bar in Hamburg Ottensen ) was well-suited: we had a nice room good enough for about 60 people with a looooong table set up for us. Although I planned to arrive early, I arrived late due to the catastrophic parking situation in Hamburg Ottensen (have to take this into account the next time...). We had some frosty beverages (a big thank-you to Ralph from all attendees!), nice tex-mex food and a lot of Eclipsy (and also non-Eclipsy) conversations. Networking opportunities were great - lots of well-known people like OSGi afficionados Martin Lippert and Gerd Wütherich , "The Modeling Guys (tm)" from itemis (Sven , Jan , Holger , Moritz and me) and Gentleware ( Stefan and André ), Stefan Reichert of WickedShell fame, Karsten Panier of StIXDB ,  Uwe   Petschke  of  The Way Out  ( ObjectFab ) and a whole bunch of people from companies like OTTO , Immonet , Lufthansa Systems , Kühne & Nagel . Academia was also present: Simon Zambrovski of the Technical University of Hamburg-Harburg brought some of his students. Last not least, Ralph Müller of the Eclipse Foundation , who tirelessly answered questions and connected people. Everybody Ralph and I talked to thought that the event was a big success and asked for more. As the term " Stammtisch " implies, this is a somewhat regular event, so there will most definitely be a follow-up event later this year. If there is enough interest (just leave a comment on this post), we will try to arrange an Eclipse Stammtisch each quarter, so stay tuned. Another excellent opportunity to network and exchange ideas concerning Eclipse is the upcoming Eclipse DemoCamp in Hamburg , which I happen to organize together with Martin Lippert of it-agile . After the Stammtisch, Martin and I went to check out a possible location for this event which looked quite promising. If you are interested in attending the Eclipse DemoCamp in Hamburg, add yourself to the list of attendees in the wiki . If you would like to give a demo, please add yourself to the list of presenters. If you cannot come to Hamburg to attend the DemoCamp, choose one of the DemoCamps in a city near you or organize your own DemoCamp. PS: thanks to  Simon  for allowing me to use a photo I took using his camera!

Planet Eclipse : Tue, 06 May 2008 12:09:36 +0000
Gorkem Ercan: Java ME CDC needs a new version
The final release of the JSR for Java ME Connected Device Configuration (CDC ) version 1.1 was 3 years ago. The early draft of the specification is almost 5 years old. The situation is indifferent with the smaller and more common Connected Limited Device Configuration (CLDC) version 1.1 . CDLC specification is also about 5 years old. In the past 5 years the development of the Java did not stop. Java SE had two major releases Java SE 5 and Java SE 6 , and these releases brought major changes to the java language. Today, the java language level of the Java ME remains at 1.4 level as defined by CDC and CLDC specifications. In the meantime. the mobile handset industry has been changing constantly. The devices nowadays have more resources. Devices like N95 have 330 MHz or larger CPUs, 3D accelerators, a good amount of memory, and this was last year. iPhone had made a very positive impact in the industry and convinced the consumers that smartphones are more than phones.  On the other hand, the rapid growth of the developer community around the Google's Android proven that the developers welcome an innovation platform that is closer to Java SE level, rich with APIs on the devices. I believe mobile industry had never been more ready for having CDC as the mainstream Java ME configuration. The richer APIs of CDC will allow the innovation juices of the mobile java developers flow rapidly. The ability to use JNI will enable software that is more integrated to the the device features without need for the platform providers to provide the APIs. This is all sounds good and desired but lately I started to wonder is that enough? The latest discussions on e4 made it more clear that there is a desire on the developers to use Java 5 features. This is not really news, there had been similar discussions on different Eclipse components concerning their use with eRCP , including the latest experience from Wayne Beaton. While with the current state of Java ME, it is a necessity for the components to keep the java language level at 1.4 level. I think it is really time to start with a new version of the CDC to move the the language level to Java SE 5 level and be prepared for the inevitable. Of course, it is some work and investment to do a new CDC specification and therefore the possibility to define a subset of the latest Java SE and calling it the new mobile java remains attractive to many.

Planet Eclipse : Mon, 05 May 2008 17:16:41 +0000
Prakash G.R.: Adding util methods to the generated EMF classes
We had EMF generated model classes and a Util class with lot of helper methods. Both were exposed to clients as an API. Most of the methods in the Util classes were like: //API - Util class Book getBook(Writer writer, String title); //Customer code Util.getBook(daveSteinberg, "Eclipse Modeling Framew ork"); These methods would have been more appropriate in the Writer class itself rather than in a Util class, and it will be more natural to code like: daveSteinberg.getBook("Eclipse Modeling Framework"); This tip is about how to add such methods in the generated code. The first way is simple. Just edit the generated java code and add these methods. EMF is smart enough to identify this method and keeps it safe during regeneration of code. But if you were like me, who consider the generated Java files are as good as class files and don't want them checked into the repository, you can follow the second way. In the eCore Editor for your model, right click the EClass and add a new child EOperation. Go to the Properties view and specify the name, this will be the name of your method. The EType represents the return type of the method. If your method has any parameters, then add EParameter children to the EOperation & specify their types and names. To add the code, add an EAnnotation to the EOperation. In the properties view, set the Source to "http://www.eclipse.org/emf/2002/GenModel". Add a details entry to the EAnnotation. In the properties view set the key to 'body' and value to the code that you want to be generated. Reload your .genmodel from .ecore and generate the code: From Eclipse Tips by Cypal Solutions Like the tip? Subscribe

Planet Eclipse : Mon, 05 May 2008 14:00:00 +0000
Brian Fitzpatrick: Enabling command-line applications for your Eclipse projects
Hi all...   Recently in DTP we came across an opportunity to provide admin-level support for some import/export type functionality within Connectivity. And it was discussed that this would be best done as a command-line application, since administrators may not have access to or wish to use the full blown Eclipse UI to handle this task.   So we started doing some digging and discovered that there's this very cool framework within the Eclipse platform to handle just this kind of thing. A bit of Googling turned up this presentation from EclipseCon 2006:  "Hello World" as a Headless Eclipse Plug-in by Jeffrey Fredrick ( http://www.eclipsecon.org/2006/Sub.do?id=293 )   Though the Eclipse platform has changed a bit since Jeffrey wrote his article, it got me going the right direction. So I thought we'd update it for Eclipse 3.3.2.   Here's the steps we did to create this sample project...   1) Create a new plug-in project.         2) Make sure to un-check the "This plug-in will make contributions to the UI" checkbox.   3) Uncheck any available plug-in templates.   And voila, you have a new plug-in. 4) Go to the Extensions tab of the Plug-in/Manifest Editor. Add a new Extension. Select the "org.eclipse.core.runtime.applications" extension point. Click Finish when you're done.     You have a new "application" node beneath your org.eclipse.core.runtime.application extension.   5) Select the actual extension point node in the tree and note the ID of the application. This is important (I learned this the hard way). You want to provide something unique here that's not too long. It gets prefaced by the ID of your plug-in when you try to run it later.     It defaults to "idX". Call it whatever you want. In this case, we'll call it "CoolApp". The full ID is then my.cool.application.CoolApp when we go to run this later.     6) Go back to the "application" node, right-click and click New->Run. This adds the node that specifies the class you're going to run in command-line mode when you invoke your plug-in application.   7) Click the class* link to create the application class. Our application class will implement the org.eclipse.equinox.app.IApplication interface. Give it a name ("CoolApplication" in our case) and click Finish.     So you end up with the beginnings of your application class:     8) In our case, we're just testing out this functionality, so we don't have to get too fancy. In the Start method, you get an IApplicationContext object, which gives you a whole lot of information about the command line parms that were passed in.   So we're going to add some code to check out those command line parms and just write them out intelligbly.   public Object start(IApplicationContext context) throws Exception {      // get the arguments    Map args = context.getArguments();      if (args.isEmpty()) {       // if there were no arguments, simply write "hello cool world"       System.out.println("hello cool world...");    } else {       // otherwise iterate through the arguments and print them as       // "key = value" pairs after "hello cool world"       Iterator iter = args.keySet().iterator();       while (iter.hasNext()) {          Object key = iter.next();          String output = new String();          if (key instanceof String) {             output = output + (String) key + "=";          }          Object value = args.get(key);          if (value instanceof String) {             output = output + (String) value;          }          System.out.println("hello cool world, " + output);       }    }      // And now we can attempt to get some input and respond from stdio    BufferedReader stdin = new BufferedReader      (new InputStreamReader(System.in));    String message; // Creates a variable called message for input      System.out.print ("Enter the message : ");    System.out.flush(); // empties buffer, before text is input    message = stdin.readLine();      System.out.print("You ");    System.out.println("entered : " + message);      // make sure to return an OK message    return EXIT_OK; }   So now we save our class, make sure everything compiles and builds.   9) Then we export it as a deployable plug-in.     Pick the directory where you want the jarred plug-in to be written to. In my case, I want it to be installed directly in my Eclipse plug-ins directory (the "plugins" directory is added after the directory you specify as the destination). If you put the exported plugin somewhere else, you'll have to copy it into your Eclipse/plugins directory manually. Click Finish and it will put the plug-in where you specified.     10) Now head out to a console window. Assuming you have your Java environment set up correctly, all you should have to do to run the application is go to your Eclipse directory and type:   eclipsec -nosplash -application my.cool.application.CoolApp     And that's all there is to it! I know we're going to look into using this sort of application in the future to provide some command-line import/export functionality when we get a chance.   Hope this helped you out. The Eclipse Platform has lots of cool bits that most of us User Interface people never see!   Until next time... Keep on programming! --Fitz

Planet Eclipse : Mon, 05 May 2008 07:09:03 +0000
Rafael Chaves: Why we write code and dont just draw diagrams
TextUML is a textual notation for UML. The TextUML Toolkit is an Eclipse-based IDE-like tool for creating UML models using the TextUML notation. Other tools follow the same approach. Emfatic (now an EMFT subproject) has been doing the same for EMF Ecore for a long time; the TMF project aims to be for textual modeling what GMF is for graphical modeling, and will be based on GMT s TCS and xText components. Still, people are often puzzled when I explain what the TextUML Toolkit is. A common question is:  if I am going to write code (sic), why do I need UML anyway? . Dean Wampler from Object Mentor wrote on his blog a while ago a post entitled  Why we write code and dont just draw diagrams . It is a short post, but he presents very good points on why a graphical notation is usually not suficient and is bound to be less productive than a textual one when it comes to modeling details. For instance, on the saying  a picture is worth a thousand words , Dean wrote:  What that phrase really means is that we get the gist or the gestalt of a situation when we look at a picture, but nothing expresses the intricate details like text, the 1000 words. Since computers are literal-minded and dont do gist, they require those details spelled out explicitly.  Couldnt have said it better. I strongly advise you to read the original post in its entirety, but I will leave you with another pearl from Deans post (emphasis is mine):  I came to this realization a few years ago when I worked for a Well Known Company developing UML -based tools for Java developers. The tools UI could have been more efficient, but there was no way to beat the speed of typing text .  Enough said.

Planet Eclipse : Sat, 03 May 2008 17:46:30 +0000
Buddhika Laknath: Another GSoC on the air
Ok, here is another post after a long desert - no excuses here, Ive forgoton that I even have a blog.  But now feel like writing something after seeing the new WordPress dashboard First thing on the agenda is GSoC 2008. As you all know Google Summer of Code 2008 is on the way this year too and in case you have been living under a rock, here is the event . GSoC is a good breeding ground for fresh FOSS developments and had been one for me last year when I tried GSoC for the first time. Even though initially I wasnt planning to try out for GSoC this year, after seeing some cool ideas from few organizations I felt like giving a try. I found 2 ideas from Eclipse foundation and Apache very exciting but finally had to leave out one because I hadnt enough energy nor time for 2 proposals. So I tried for Eclipse - creating a new plug-in for XQuery syntax editing which I found the idea is most appealing. One reason is I had been working with XML and Java stuff for a longest of my time and second one is Ive been using Eclipse for my python works, so felt like returning the favour.  So I prepared the proposal, submitted it and got accepted this year round too All thanks should go to my mentor David and congrats to my fellow Vesess colleague Sameera , who also got accepted for GSoC this year for Coppermine photo gallery . By the way, if this helps any future GSoCer, here is my complete proposal . But beyond my not-so-dramatic GSoC tale, I was able to give something else for GSoC. First thing is I submitted a translated Sinhala version of GSoC flyer this year. The second is I was able to put a small guiding doc for Gnome GSoCers, doing my things right as a responsible Gnome GSoCer last year.  Other than that, I was able to encourage few of my buddies to apply for GSoC rather than trying for evil MS Imagine Cup So the end of the line is that Im hoping for another nice, fruitful 3 months with GSoC working for Eclispe and hope the experience will be great as was in last year.

Planet Eclipse : Sat, 03 May 2008 15:25:27 +0000
Fred Grott: Where have the Eclispezone and javaLobby communities gone to?
Since not really visiting EclipseZone and javaLobby past its new incarnations you may be wondering where those communities moved to. I have found that you can find the members for those communities on FriendFeed and Twitter . I was surprised by the number of folks that I have conversed with over the years as a JavaLobby and EclipseZone member that are on both services.

Planet Eclipse : Thu, 01 May 2008 20:43:21 +0000
EclipseLive: Upcoming Event: Equinox Security
Event Date: August 6, 2008 4:00 pm GMT-8 Register Now Matt Flaherty (IBM)   Abstract: More information coming soon. About Equinox Security Equinox Security ensures Eclipse is a secure runtime, enabling users and administrators to confidently work with the Eclipse client in environments where not all users and/or code sources are friendly. It provides integrated security functionality that will allow Eclipse applications to protect their data, to authenticate and authorize valid users, and to protect against potentially malicious code packaged and distributed as plug-ins. Equinox Security protects by enabling Java's standard security mechanisms within the Eclipse platform and defining new functionality where there are gaps in the available standard interfaces. Using Java's core standard interfaces will enable wider integration with code available throughout the Java community. 9:00 am PDT / 12:00 pm EDT / 4:00 pm GMT - Convert to other time zones Total running time will be approximately 1 hour Thanks to Adobe for contributing their Adobe Acrobat Connect product to host this webinar. delicious | digg | dzone

Planet Eclipse : Thu, 01 May 2008 18:39:10 +0000
Mik Kersten: SpringSource Application Platform and IDE implications
Life is about to start getting a lot easier for enterprise application developers. Last October, my JDJ article concluded with the following statement: Eclipse plug-in developers are already spoiled with a dramatically easier way of building applications and are incapable of going back to a day in which the IDE support did not provide them with this high level of automation at both the language and component level. While the much more heterogeneous nature of JEE applications makes this kind of automation more challenging, the latest developments in the Eclipse WTP and Mylyn frameworks provide key enablers. It is high time that Java EE developers start feeling spoiled by their tool support as well. Todays announcement of the OSGi-based SpringSource Application Platform seals the deal. Consider the facts that Java is a great OO language, that OSGi is arguably the best component model to date and meshes perfectly with Java, and that Spring is the de facto programming model for reducing the complexity of enterprise applications. Whats clear from the announcement is that these three modularity technologies will work together seamlessly on the server side. The final thought to keep in mind is just how far this combination of Spring, Eclipse and Mylyn can go. The static nature of Java and the quality of the OSGi component model have made it possible for Eclipse to provide a remarkable set of productivity features such as consistent refactoring across Java and plug-in resources and easy launching and debugging of plug-in based desktop applications. The Spring Framework is building on the very same Java and OSGi technologies& The neat thing about good modularity is that it makes a tool builders life dramatically easier. Consider how Javas type system enabled content assist and the browsing of type hierarchies. Or how the use of OSGi by Eclipses plug-ins allows you to stay sane while dealing with hundreds of plug-in versions and dependencies. Modularity technologies make it easy to navigate and browse the entire structure of the system, enabling Mylyns Task-Focused Interface to ensure that you only see the parts relevant to the task-at-hand, no matter how large that system is. To date Eclipse developers have been spoiled by the PDEs plug-in and feature editors, which make it easy to evolve large Eclipse-based applications. Todays announcement means that the same component model will now be working on the server side. The IDE support is evolving alongside the Application Platform, and leverages WTP, Spring IDE and Mylyn. Here is a teaser of the Eclipse-based tools: Tasktop Technologies has been having a great time working on these tools with SpringSource , and you can expect a lot more Eclipse-based innovation coming from both the commercial SpringSource Tool Suite and the open source SpringSource Application Platform Tools . <=>

Planet Eclipse : Thu, 01 May 2008 15:28:26 +0000
Neil Bartlett: SpringSource App Platform is a Curates Egg
SpringSources announcement yesterday was not a big surprise  especially after they hired Glyn Normington, an OSGi heavy-hitter who previously worked on turning IBM WebSphere Application Server 6.1 (WAS) into an OSGi-based platform. Like the famous Curates Egg , the SpringSource Application Platform (S2AP) is excellent in parts, and I definitely recommend sampling the good bits. However, eating the whole thing might leave you feeling a little queasy. Here are the parts that I really like: SpringSource has made a strong statement in support of OSGi, not just as an internal implementation detail for a server platform, but as something that should be available to all developers. Most JEE application servers are moving to OSGi or have already done so, but at present they use it only for their internal implementation, i.e. I cant deploy a bundle to WAS and start consuming services published by the platform. In S2AP I will be able to do that. This is a huge advance because it opens up the benefits of modularity and dynamic deployment to ordinary developers. Rod explains these benefits in an interview with Geertjan Wielenga on JavaLobby. As part of the platform, they are providing a repository of common open source libraries with accurate OSGi metadata . One of the biggest hurdles to getting started in OSGi is in finding or creating bundleized versions of the libraries one needs to use. More and more open source projects supply OSGi metadata out of the box, but there are still many that dont. While there are existing repositories like this, SpringSources appears to be one of the most comprehensive and high quality. Incidentally SpringSource were recently criticized for not eating their own dogfood, i.e. for running the main Spring website on a PHP-based publishing platform. But this repository appears to be running on S2AP; take a look at the 404 page. In fact, might this be the first example of a production S2AP application? Spring Dynamic Modules (Spring-DM, formerly known as Spring-OSGi) is a great way to marry the traditional Spring Framework with OSGi services, substantially simplifying the programming model for services& although its not the only programming model in town for OSGi developers. For anybody already using Spring but not yet OSGi, Spring-DM offers modularity at the application context level with on-the-fly updates to beans. Spring-DM has been available for a little while now but is obviously an integral part of S2AP. Assembling all the bundles necessary to build an enterprise application in OSGi has previously been something of a chore. S2AP will contain all the commonly needed parts in a single download, along with (presumably) some management tools, installation process etc. This is great for getting over the initial Where do I start? problem. Now, here are the things Im less than thrilled about: There are two new bundle headers, Import-Bundle and Import-Library. As far as I can see, Import-Bundle has exactly the same problems as Require-Bundle. The new header simply provides indirection, i.e. you supply a logical bundle name rather than the actual Bundle-SymbolicName. This doesnt fix the issues with binding to the wrapper around a set of packages rather than the packages themselves. Import-Library appears to be even worse, as it performs an Import-Bundle over a whole set of bundles at once! The documentation even admits that, using this approach, you will end up dragging in far more imports than you actually need. But it adopts the attitute that convenience is more important than correctly expressing the dependencies of your bundles. Needless to say, I disagree. Now, I admit that Import-Packages can be burdensome, but to solve this I think we just need better tools. I think Eclipse PDE could offer more help, for example, and it has been gradually improving in this area. Peter Kriens bnd tool is an excellent alternative: it uses bytecode analysis to include all the dependencies, and ONLY those dependencies, that you actually use. Luckily, Import-Package is still available in S2AP if you wish to use it. I strongly recommend avoiding both Import-Bundle and Import-Library and sticking with the standard Import-Package header. One question regarding these new headers is how they are supported by the tooling. I assume that SpringSource are leveraging Eclipse PDE for their development tools, in which case it seems they must have extended PDE. In fact tooling in general was not mentioned at all in the S2AP announcement. I wonder if there will be any support for non-Eclipse users? The announcement makes it clear that a substantial amount of effort has been put into proprietary extensions to OSGi, in order to support some existing libraries, particularly ones that have issues running on vanilla OSGi (e.g. Hibernate), and provide Load Time Weaving. Its not clear what those extensions are or how they work, but it is clear that they only work on one OSGi implementation: Equinox. I have blogged previously about the risks involved in supporting only a single implementation of OSGi. Also, I feel that they may simply not be necessary for many users of OSGi: not everybody needs Hibernate, even in the Enterprise space. Also other people have clearly been able to use Hibernate in an OSGi context without SpringSources help. So it remains to be seen how valuable these extensions are. The best I can hope is that if these extensions really are necessary, then SpringSources work will be fed back into the OSGi standards process and appear in a future release of the specification, so that other frameworks can implement them too. In the meantime it feels risky to rely on them, in the same way as relying on Equinoxs extensions makes me uncomfortable. Anyway to summarize, I still think that yesterday was a great day for OSGi, and for SpringSource, and of course for enterprise developers. S2AP is not perfect, but I still hope it gains widespread use. Just stick to the OSGi specification and you wont get hurt!

Planet Eclipse : Wed, 30 Apr 2008 15:29:51 +0000
Dwight Deugo: Eclipse Lite Languages
As part of the Eclipse University Outreach initiative, I have developed plug-ins that allow students to evaluate Scheme and Prolog in Eclipse. A beta version of the Scheme plug-ins is now available. After resolving some licensing issues, the Prolog beta version should be available in June.  You can view the user guides here for both to get a feel for what they can do. You can also download the Scheme plug-ins from the same location. Next up will be a lite version for Java.

Planet Eclipse : Tue, 29 Apr 2008 20:37:11 +0000
Manuel Selva: Eclipse Selection Service Tip
As Eclipses plug-in developer I often ask my self: what is the current workbench selection ?? Developers may need such information for example when they want to update a given view according to an other view selection but dont know what the provided selection exactly is or when creating a new custom Selection provider. It can also be useful for simple debug purpose. To answer this question I wrote a simple plug-in adding a new view to my workbench showing the content of the current selection in a simple JFace TableViewer. The view is added to the PDE category : Here is what it looks like when two Java methods are selected in the outline view : May be I missed something and such information is already available somewhere in the PDE & ?? If Yes, please let me know.

Sylvain Wallez : Tue, 29 Apr 2008 23:54:29 +0100
Speeding up mobile web applications
It's been nearly one month since I started full speed at Goojet , and Ialready learned a lot on the mobile web and J2ME. One of the key issues in the mobile web is latency: connections arelong to establish, and data transfer rates are low. Not everybody has a3G phone nor an unlimited data plan. Connection establishment latency can be mitigated in two ways: Use persistent HTTP/1.1 connections. By reusing the sameTCP socket for several HTTP requests, you save the non-negligibleconnection setup overhead. To achieve this, every request and responsemust carry a Content-Length header. Open several connections in parallel when you have severalitems to load (e.g. images in a page). This might seem contradictory tothe above, but a single connection doesn't use all the availablebandwidth. There are lots of idle periods during connectionestablishement and data transfer, waiting for handshakepackets on the slow link. So by opening several connections andhandling them in parallel, more of the available bandwidth is actuallyused leading to shorter overall load time. Having responsive connections is good to speed-up transfer, but evenbetter is not to have to transfer data at all, both for response timeand user phone bill. So HTTP cache headers must be handled with greatcare, which also means that the J2ME application has to implement anHTTP cache. Cache headers for static resources like images or CSS files are mostoften handled by the web server itself, by means of Last-Modified and/or ETag headers. You have to be careful with ETags though in server farms, since some web servers includethe file inode in it , which essentially makes its valuedifferent on every server for the same replicated resource, thusbreaking the intented purpose. Static resources can also benefit from using the Expires header, or better the HTTP/1.1 Cache-Control header that avoids the date parsing and clock synchronizationissues associated to Expires . The use ofversioned URLs even allows to set an infinite expiration date. But cache headers for applications are way more tricky. There is oftenno concept of "last modified", and computing an etag that reflects thestate of all the elements that contribute to the response is not alwayspossible or would lead this concern to creep into all applicationlayers. So I've taken a different approach in the Goojet backend: whenreceiving the first byte of the response body, a servlet filter checksif the application has set cache headers. If not, the response isbuffered so that we can compute a hash code once the application hasfinished producing it. We could have used MD5 for the hash, but it's abit costly to compute and we don't need something cryptographicallysecure. So we use a 64 bit FNV-1hash that is very fast to compute and has a low collisionrate, even for small changes in the data. The result is that even for highly dynamic responses, we are able toprovide cache headers that allow the mobile application to issue conditionalrequests and download data only when actually needed. All these techniques combined really make a difference tohave a more responsive application and a lower phonebill!

Sylvain Wallez : Sat, 05 Apr 2008 12:49:32 +0100
Goodbye Joost, hello Goojet
I havebeen working at Joost for the lasttwo years as architect of backend systems and tech leader of the backenddevelopment team. I started there at a time when the architecture ofthe system was a blank paperboard. Exciting times, that allowed me touse my creative thinking and build amazing stuff with an amazing team.But also exhausting times, that got me quite burned. For the last 6 months or so, Joost has been undergoing many changes:organisational changes, stragegy changes (not yet publically visible),and geographical changes by concentrating the previously distributedteams and pushing west towards the US. So all things considered, it was time for me to move on, and I washelped in that by a startup in Toulouse that I've been knowing sinceits inception because Anyware was participating to the development team. And since their inception,they wanted to have me on board. So here it is: yesterday was my last day as a backend systems architectat Joost, and monday will me my first day as the CTO of Goojet . Goojet is awidget platform and social network targetting mobile phones. Contrarilyto other social networks, Goojet focuses on the collaboration betweenyou and your contacts rather than you exposing or broadcastinginformation to your contacts. The world is made of interactions, notonly of yelling at the masses. My role there will be what I do best and like most: being a think tank,architect stuff, use my synthetic mind and teaching abilities to helpthe business and dev team understand each other, develop someof the tricky parts and generally give technical guidance and advice tothe whole team. I also plan to participate in the nascent or ongoingstandardization efforts in the widgets and mobile web domains, but Iwill first be heads down pushing our first public release out. The really new technology for me at Goojet are mobile phones: I've beenplaying with J2ME on my free time for a few weeks, and it is kind ofrefreshing to work in a very constrained environment. Every line ofcode counts, no big framework, no high-level abstractions. And the devicefragmentation , which requires careful engineering and testing. But it's fun! So I'm pretty excited by this new job. I know it will be hard anddemanding, but well, it seems quiet and easy jobs are not for me.

Sylvain Wallez : Tue, 26 Feb 2008 15:31:16 +0100
A new Ant/Ivy committer!
My dear colleague and friend Nicolas Lalevée has been elected committer on Ant/Ivy , the dependency management tool that allows the use of Maven repositories without the pain of Maven, for his work on the Eclipse plugin for Ivy . I've been working with Nico for two years, and he's one of the main guys behind the Joost search engine , powered by Lucene , another popular Apache product. Congrats and welcome in the big Apache tribe!

Sylvain Wallez : Tue, 13 Nov 2007 10:57:29 +0100
Android: Google disrupts the mobile world
Google's annoucement of the Open HandsetAlliance a few days ago wasn't that exciting: an interestinggroup of partners and some interesting perspectives, but the meat wasmissing. It arrived yesterday with the actual release of the Android SDK .And... wow! This is a complete stack, from the kernel (Linux, of course) up to avery capable web browser ( Webkit ,also used on the iPhone and the Nokia's) up to the application layers.And the application development is done in Java... or is it? Google had an incredibly clever idea: Android doesn't run Java, but uses Java bytecodes as an input for a compiler targetting annon-Java virtual machine called Dalvik. Android doesn't claim to beJava compliant (and even less J2ME), and as such doesn't have to paylicence fees to Sun. Moreover, Android ships with a good subset of theJ2SE standard library they obtained from Apache Harmony (see also Stefano'spost ). So what does all this mean? Google has addressed the mobile market theother way around than Apple: the iPhone is gorgeous hardware with acompletely locked system that will eventually allow3rd party applications in February . Android is acompletely open platform, with nice development tools that doesn't yethave any hardware to run on. But we can expect that very quickly, a lotof asian companies which are so good a building hardware but so bad atwriting software will embrace Android and provide us with a tsunami ofnew cool devices, that thousands of Java developers will feed with coolapplications. So with Android, Google is pissing off a lot of people: Apple whoseiPhone will stay in a luxury niche, Sun who won't get big bucks from asuccessful mobile Java-ish platform, and of course Microsoft since wecan assume the clunky Windows Mobile will quickly vanish. OpenMoko is alsoprobably stillborn. Now what is Google's intent? Is it just aboutcommoditizing the mobile application market to expand the reach of itsadvertising platform, particularly with location-based ads? Is it aboutknowing all about us to increase the targetting and thus the ad selling price? After OpenSocial ,it looks like Google is taking over the platform market. But with opensource software, meaning the battle moves to another front, that of ourdata. This is not less dangerous since data is much more valuable thandumb software. But at least we can hope independent storage serviceswill exist for the privacy-conscious among us.

Sylvain Wallez : Fri, 09 Nov 2007 11:00:32 +0100
We want Java 6 on the Mac!
13949712720901ForOSX Yes, like many others, I want up to date Java support on the Mac! I don't care if it comes from Apple or Sun, but I want it. The Mac is very popular in the opensource Java development community, and these über geeks are very visible (just look at conference pictures) and are purchasing advisors in their work places in "business oriented" departments, i.e. not limited to the creative workers, and also in their families (my parents, sister and parents in law each have several Macs). So Apple, read this: if you neglect Java developers, you will loose marketshare.

TheServerSide.com: News : Thu, 08 May 2008 11:08:05 -0400
Urbancode Releases AnthillPro 3.5 Build and Release Server
Urbancode released AnthillPro 3.5 this week at JavaOne. AnthillPro supports teams who frequently release by proving application lifecycle automation to drastically reduce the time and risk involved in the build, deploy, test, and release cycles. New integrations include VMWare, agile project management tools, and testing tools.

TheServerSide.com: News : Thu, 08 May 2008 11:05:59 -0400
Data Transformation & Processing with Smooks v1.0
Version 1.0 of the Smooks Data Transformation & Processing Engine has been released. Smooks can go from java objects to different object structures, can bind text to an object model, can split messages or combine multiple messages into a single message, can manage huge messages (think "gigabytes"), can route messages and manage fragment-based transforms, and more.

TheServerSide.com: News : Wed, 07 May 2008 21:05:57 -0400
Early Bird discount expires this Friday - Save $100 now
This Friday is your last chance to save $100 off TheServerSide Java Symposium-Europe. This year's Java Symposium-Europe features over 40 can't miss keynotes, sessions, expert panels and fireside chats. Register now to lock in your spot at the discounted rate.

TheServerSide.com: News : Tue, 06 May 2008 18:31:18 -0400
JavaOne 2008: Day One (So Far)
JavaOne 2008 Day One has started, of course, and it's an interesting show, with a lot of undercurrents about JavaFX (as expected) and multimedia - and mobile applications. There's a lot more, of course, and this thread is meant for people to add comments at will...

TheServerSide.com: News : Mon, 05 May 2008 07:28:39 -0400
Intrannuity's iBilling Library 1.0 is released
iBilling is an SOA-based J2EE billing platform that provides recurring billing and subscription/account management functionality. iBilling provides specific functionality required by the majority of member and donor centric organizations, including a clean and simple way to process one-time (pos/retail) and batch credit card and bank account (ACH) transactions.

TheServerSide.com: News : Mon, 05 May 2008 01:29:03 -0400
TheServerSide returns to JavaOne
TSS has yet another booth on the JavaOne conference floor, where we'll be doing insane things like handing out goodies and ... *gasp* talking to people who talk to us. If you're interested, drop by booth 310 on the pavilion floor!

Junior developer: Java : 2008-02-25T12:15:27-05:00
TeaClipse and JavaCC
I recently came across Matthew Hind's TeaClipse project which he recently announced on his blog. TeaClipse is an open source compiler for the Tea programming language. You can read Matthew's thesis on the project here. Note that if you want...

Junior developer: Java : 2008-01-24T09:44:10-05:00
More JavaCC optimizations
Paul Cager has been improving JavaCC again - this time he reduced the amount of object allocation done by a JavaCC-generated lexer. This began with a nicely detailed bug filed by s_fuhrm that showed that a new StringBuffer is being...

Junior developer: Java : 2007-11-20T09:38:12-05:00
PMD 4.1 released!
Xavier Le Vourch has released PMD 4.1! PMD is a Java static code analysis utility - it finds unused code, design issues, duplicated code, and much more. I posted earlier about the release candidate, and the 4.1 final is pretty...

Junior developer: Java : 2007-11-08T10:11:11-05:00
PMD 4.1 rc1 - 14 new rules
Xavier Le Vourch has released PMD 4.1 rc1! PMD is a Java code analysis utility that includes a bunch of rules and makes it easy to write custom rules to meet your needs. This release has a whopping 14 new...

Junior developer: Java : 2007-11-05T09:53:24-05:00
JavaCC/JJTree file generation bug fix
For a long time there's been an annoying bug with JJTree and Windows. JJTree generates source files with the directory path in a comment header, and if one of the subdirectoy names starts with a "u" it ends up being...

Junior developer: Java : 2007-10-26T09:37:08-04:00
Better JJTree Visitors
JavaCC comes with a built in tree builder, JJTree. One of the nice bits about JJTree is that it will generate a visitor implementation so you can easily traverse the abstract syntax tree. However, the interface that JJTree generates looks...

Junior developer: Java : 2007-10-23T09:57:03-04:00
A JavaCC/JJTree bug fixed
Paul Cager has been working on various JavaCC and JJTree bugs lately. Just recently he fixed a rather annoying bug; in JavaCC 4.0, the OUTPUT_DIRECTORY option setting wasn't copied from the .jjt file into the .jj file. So you'd have...

Junior developer: Java : 2007-10-11T11:15:39-04:00
A new domain specific language book - with JavaCC
I came across a post on Warner Onstine's blog; he's working on a book on DSLs for the Pragmatic Programmers. Sounds like a great project; and I'm glad to see that they're including a chapter on what are usually known...

Junior developer: Java : 2007-10-02T09:15:30-04:00
Generating Parsers With JavaCC reviewed
I just noticed that Andy Glover has posted a nice review of my JavaCC book. He's got some kind words to say about the book, which is especially meaningful to me since I know that Andy travels all over the...

Junior developer: Java : 2007-09-29T22:33:06-04:00
An LOLCODE interpreter using JJTree
Here's something that's lingered in my blog TODO queue for far too long. Brian Egge, formerly of ThoughtWorks and now of Macquarie Bank Limited, wrote an LOLCODE interpreter with JavaCC and JJTree. Behold: $ bin/lol.sh test/samples/hello_world.LOL HAI WORLD! I salute...

Junior developer: Java : 2007-09-04T09:47:40-04:00
Get the JavaCC book and a free copy of the PMD book
My publisher, Centennial Books, is running a promotional deal - if you buy my JavaCC book you also get a copy - free! - of my PMD book. The two books should complement each other pretty well - the JavaCC...

Junior developer: Java : 2007-08-28T09:27:48-04:00
More JavaCC and Java 1.5
Last week I posted about some improvements to JavaCC's Java 1.5 code output. We've had some discussion on javacc-dev since then and now Sreenivasa has made the call - we're moving to Java 1.5 for JavaCC internally! This means, of...

Junior developer: Java : 2007-08-20T11:58:44-04:00
JavaCC, Java 1.5, and StringBuilder
I've just checked in a small patch to JavaCC - now it defaults to emitting Java 1.5 source code when generating a parser. You'll still be able to generate code for Java 1.4 (and earlier) via the JDK_VERSION option, but...

Junior developer: Java : 2007-08-14T10:19:33-04:00
JavaCC and fixed width data
Most JavaCC grammars are written to handle input that's variable-width - e.g., source code. But sometimes you need to be able to parse fixed width data, and JavaCC can be good for that too. I just wrote an example JJTree...

Junior developer: Java : 2007-08-03T14:29:50-04:00
Zoho Creator uses JavaCC
As a big fan of JavaCC, this is good to hear - the application builder Zoho Creator uses JavaCC internally! The JavaCC mention is near the end of this interview with lead architect Suganyas. There aren't any real details about...

Junior developer: Java : 2007-08-03T10:01:43-04:00
Back to JavaCC project work
Now that my JavaCC book is done I've been able to get back to doing some day to day JavaCC work. For example: Applying a little code cleanup patch from Brian Egge. Note that there's more work to be done...

Junior developer: Java : 2007-07-23T13:01:52-04:00
JavaCC example code posted
I've posted up the code examples for Generating Parsers with JavaCC; you can find a zip file containing everything on the example code page. Next up: getting nicely HTMLized example source code via another handy JavaCC utility - the Java...

Junior developer: Java : 2007-07-20T10:04:36-04:00
PMD 4.0 released!
PMD 4.0 is out! This release (our first major release since Dec 2006) includes a shift to Java 1.5 both internally and in terms of PMD's defaults; you can still process Java 1.4 code but you'll need to use the...

Junior developer: Java : 2007-07-17T06:43:47-04:00
"Generating Parsers With JavaCC" now available!
My JavaCC book, Generating Parsers With JavaCC is now in stock and available! Here's where to order it. It covers lots of stuff that I'm sure will be useful to those working with JavaCC grammars, including sections on: Installing and...

Junior developer: Java : 2007-07-13T09:46:54-04:00
PMD 4.0rc2 released - Java 1.5 by default
Just to shake out any more bugs we've released PMD 4.0rc2. The big change for this release is that PMD now expects to process Java 1.5 source code. You can still analyze Java 1.4 (and earlier) source code by using...

Junior developer: Java : 2007-07-09T10:30:09-04:00
A Java to HTML converter
Over on javacc-users we've been discussing syntax highlighting; I wrote a little highlighting app last week, and I've been thinking about this a bit since then. So, along a similar line of thought, here's a simple Java to HTML converter....

Junior developer: Java : 2007-07-05T09:29:38-04:00
Syntax highlighting and JavaCC
A recent post to the javacc-users list asked about using the token definitions in JavaCC for syntax highlighting language elements. In response I put together a small JNLP-launched example app that builds a little Map of colors to use for...

Junior developer: Java : 2007-07-02T09:57:16-04:00
A shortcut for PMD XPath rules
The normal path for experimenting with a PMD XPath rule is to run the rule designer, paste in some Java source code, paste in the XPath expression, and see what it returns. But if you just want to try out...

Junior developer: Java : 2007-06-23T21:54:30-04:00
PMD 4.0rc1 released!
PMD 4.0 rc1 is out! There are nine new rules, most of them in the J2EE ruleset thanks to Romain Pelisse. The XPath rules are much faster thanks to a "rule chaining" optimization implemented by Ryan Gustafson and Xavier Le...

Junior developer: Java : 2007-06-14T09:14:45-04:00
JavaCC book available for preorder!
The JavaCC book, "Generating Parsers With JavaCC", that I started way back when is done! It's available for preorder here and there's more information including the table of contents here. One of the reasons I wrote the book was to...

Junior developer: Java : 2007-04-18T09:46:09-04:00
Parsing binary data with JavaCC
A question came up on the JavaCC user's list about parsing binary data with JavaCC. In response I posted a little example grammar that parses the header section of a DOOM map data file (e.g., a WAD file). There's really...

Junior developer: Java : 2007-04-05T09:55:29-04:00
Java to Python converter using JJTree
I just came across this post which talks about a Java to Python converter that the author wrote and posted on Google code. It uses a Java 1.5 JJTree grammar and a Visitor that gets callbacks for pretty much all...

Junior developer: Java : 2007-02-22T08:58:07-05:00
PMD exam on javablackbelt
The friendly folks over at Java Black Belt have put together a PMD exam. It's a pretty good basic knowledge test; if someone were to be able to answer all these questions they'd have a solid grasp on how to...

Junior developer: Java : 2007-01-29T13:02:40-05:00
ANTLR book coming soon
I'm getting close to finishing up my JavaCC book... and it looks like there's going to be a great ANTLR book coming out around the same time. Yup, Dr. Parr is writing an ANTLR book for the Pragmatic Bookshelf; looks...

Junior developer: Java : 2007-01-22T09:55:37-05:00
A little JavaCC trick
This is another entry that explains why my JavaCC book is not quite yet done - I keep finding little sidetracks to travel down. Anyhow! Sometimes when you're working with a JavaCC/JJTree grammar it's helpful to see the abstract syntax...

Junior developer: Java : 2007-01-12T09:06:41-05:00
JavaLobby reviews my book "PMD Applied"
There's a nice review of PMD Applied up over at JavaLobby. They give It a 9/10 and as always, the appendix explaining all of the rules is a big hit: "I recommend reading this without fail". I'm glad folks are...

Junior developer: Java : 2006-12-19T10:23:43-05:00
PMD 3.9: Three times faster!
PMD 3.9 is out (download/changelog)! This release should be a good one. Here's what I like about it most: pmd-3.8/bin/ $ time ./pmd.sh /usr/local/java/src/java/ text basic [... lots of output ...] real 3m25.2s pmd-3.9/bin/ $ time ./pmd.sh /usr/local/java/src/java/ text basic...

Junior developer: Java : 2006-12-05T09:14:52-05:00
JavaCC license changed to BSD!
Check it out - JavaCC has been relicensed under BSD! And it's official, too; from the dev list: Sun has kindly offered to re-license the JavaCC code using a pure FreeBSD > license, which will avoid licensing problems in some...

Junior developer: Java : 2006-11-02T08:32:29-05:00
PMD book now a mere $20
To celebrate the one year anniversary of "PMD Applied" we're trimming the price to $20. A paltry twenty bucks! Order today and your copy will be lovingly hand picked and packed by our team of trained Java static analysis book...

Junior developer: Java : 2006-10-03T09:19:42-04:00
Java Expression Language JavaCC parser notes
The Glassfish project uses a JavaCC-generated parser to parse the JSP expression language. I grabbed the parser from the Glassfish CVS repo and here's a JJDoc'd version of it. This grammar is interested because all the productions return an Object...

Junior developer: Java : 2006-09-27T10:11:41-04:00
Jython/Pydev JavaCC grammar notes
I came across the Jython JavaCC grammar recently - actually, the grammar in the PyDev project, which I understand is a tweaked version of the Jython grammar. At any rate, I ran JJDoc on it which produced some nice HTML...

Junior developer: Java : 2006-09-14T09:47:12-04:00
NullPointerException waiting to happen
Wouter Zelle has written another fine new rule for PMD; this one is a NullPointerException finder. Consider the following code snippet (from the JBoss source code tree, SecurityFlushSessionListener.java): if(principals != null || !principals.isEmpty()) { // do stuff } Since it's...

Junior developer: Java : 2006-09-01T10:21:56-04:00
A new JavaCC grammar for EcmaScript
It looks like the Dojo folks (actually, some AOL people) have put together a new JavaCC grammar for EcmaScript; there's a blog entry, the grammar itself, and I generated a nicely linked HTML view of the grammar thanks to JavaCC's...

Junior developer: Java : 2006-07-13T09:29:17-04:00
JavaCC and early JDKs
One of the pitfalls of writing a JavaCC book is that since it's an open source project I'm tempted to fix any bugs that pop up. Case in point: I just fixed a small bug which was preventing JavaCC from...

Junior developer: Java : 2006-06-15T15:51:34-04:00
A JavaCC grammar for Cobol
While working on my JavaCC book I came across a JavaCC grammar for parsing Cobol programs. It's a pretty hefty grammar file - over 50 KB - with a ton of productions. I ran it through JJDoc and you can...

Junior developer: Java : 2006-05-31T09:43:22-04:00
PMD 3.7: cleaner and faster
PMD 3.7 is out! This release features several new rules, including the introduction of a J2EE ruleset with an initial UseProperClassLoader rule thanks to Olaf Heimburger. JSP integration continues to improve; thanks to Allan Caplan you can now experiment with...

Junior developer: Java : 2006-05-30T10:44:32-04:00
New "PMD Applied" book review on java-tips.org
Thanks to the nice folks over on java-tips.org for putting up a new book review of "PMD Applied"! It seems like a pretty nice review. I especially appreciate the way the reviewer noted that Appendix A is an important part...

Junior developer: Java : 2006-05-03T15:01:21-04:00
A nice nightly build display
The Chemistry Development Kit folks have set up a nice nightly build page; the PMD reports are especially nifty. PMD comes with a couple XSLT scripts that are good-looking, like this one with a "click to show details" Javascript thingy....

Junior developer: Java : 2006-04-19T09:54:52-04:00
Writing a book about JavaCC and JJTree
I'm working on another book! This one's on Sun's excellent open source parser generator JavaCC. Parser generators are interesting beasts, and JavaCC (and JJTree, its tree builder) has lots of features that folks working with it may not know about....

Junior developer: Java : 2006-04-11T10:01:37-04:00
Finding variables named 'enum'
I was going through the JavaCC and JJTree code this morning updating all the places where enum was used as an identifier - changing those variable names to "enumeration". At first I was using egrep to flail around, and was...

Junior developer: Java : 2006-03-02T23:26:48-05:00
JavaCC syntactic lookahead to the rescue
There's been a grammar bug in PMD for a while; it wouldn't parse non-static initializers that started with a reference to a field, i.e.: class Foo extends Bar { { // Bar declares x, and Foo uses it x =...

Junior developer: Java : 2006-01-30T09:17:23-05:00
Northern VA companies using PMD
Thanks to some suggestions from Andrew Glover and Levent Gurses, I've put up a small page on availability for presentations on Java code quality, PMD, and all that. It's a pretty simple