So far, NetBeans IDE 6.10, Milestone 1, (download here) is quite impressive IMO.
Article Type:
Opinion/Editorial
Line wrap in Milestone 1 of NetBeans IDE 6.10.Do this: Then see this: Nice!
Here's a video of Ernest Lötter from ISS International (world leader in microseismological services and software for monitoring of mines) in Stellenbosch, sharing some info about the the NetBeans Platform Visual Library.
However, you need to learn Afrikaans first to understand it! In fact, this is (unless I am mistaken) the first screencast about the NetBeans Platform that is in Afrikaans! (German and Dutch speakers would probably understand the screencast though.)
The whole screencast is less than 5 minutes, it won't take much of your time, so take a quick look:
In summary, Ernest describes an extension to a homework exercise done during the NetBeans Platform Certified Training in Stellenbosch. He drags and drops a Node from a BeanTreeView into a Visual Library Scene (which the students learned to do during the course), shows how to extend that to a multi-drop scenario, talks about creating rules for ConnectionWidgets, and shows the zoom functionality in action.
By the way, the students in the Johannesburg training decided that "koeksister" is the Afrikaans equivalent of the NetBeans "cookie", while the students here in Stellenbosch have suggested "die NetBoontjie Fundament" as the equivalent name for "the NetBeans Platform"!
If you haven't seen Eduardo's post on the new faces in the GlassFish team, check it out. It's great to have more people working on the project and specifically on the 3.1 release which is going strong with Milestone 4 recently out and Milestone 5 set to be feature-complete by JavaOne (if all goes well).
Planning is documented on the GlassFish Wiki, milestones and promoted builds are available from download.java.net/glassfish/3.1/promoted.
IceCube is a complete integrated environment for the simple authoring and publishing of
complex and fully interactive 3D animations enriched by customizable and
dynamic 2D interfaces. The sequences can be easily composed with the IceCube
Builder, distributed with a standalone IceCube Player and directly projected on
the web with IceCube WebView. There is also a multi-touch enabled version of
the...
![]() |
Laird wrote this comment to my post on "Staying the Course" Thanks, guys; it's got to be hard producing a great application server on a skeleton crew. Your work is VERY much appreciated. Very nice comment, but I wanted to follow-up on the skeleton part. We can always use some extra recs (Steve?) and we miss some old friends and contributors that chose not to stay at Oracle, but GlassFish is one of Oracle's strategic projects and it's benefited from Oracle's focus. Here are four faces that you probably remember from previous projects at Sun that became key members of GlassFish in the last few months. They are all very senior Sun engineers with experience in many Sun projects. Clockwise from top left:
•
Chris Kasso - Previously in the Java Enterprise System and Update Center; currently the GlassFish 3.1 Engineering Lead.
|
There are many more contributors to GlassFish. Some contribute directly, some to subprojects. Many work at Oracle, but others, like Hervé Souchaud and Romain Grecourt at Serli folks, do not. I've tried a few times to get a full list of the contributors; at some point I had collected all the folks that had submitted bugs see GlassFish Poster Project and this (now out-of-date) list - maybe time to try again.
With recent versions of GlassFish 3.0 (and beyond), the asadmin syntax has been cleaned up a bit and you might find your old syntax not working anymore for instance for doing remote operations on a given server and port.
asadmin now has a well-defined set of "common" options such as --host, --port, --terse that are independent of the subcommand used (start-domain, deploy, etc.). The full list of such options is documented here.
For instance, here's how to redeploy hello.war to a GlassFish server running on myserver.mydomain with admin port set to 4848 while preserving sessions :
asadmin --host mymachine.myport --port 4848 redeploy --properties keepSessions=true hello.war
The three day NetBeans Platform Certified Training in Stellenbosch is over and here is a group pic:
In the background you should see a sunny view of the beautiful sunny Stellenbosch surroundings. But it's not so sunny today and we're all standing in front of the view...
Left to right: Gys (ISSI), Ernest (ISSI), Renoir (ISSI), Hendrik (ISSI), Ilana (ISSI), Cornel (ISSI), Matthew (Core Freight), Mark (Jumping Bean), Michael (UCT), Geertjan (NetBeans), Tim (Core Freight), Chris (PinkMatter), Renault (Traffic Management Technologies). Chris and Mark were in town for the day to do presentations to the group about open source (Mark) and Maltego (Chris).
If you were to remove all of the people from the above picture, you'd see this:
Now, the next two days begin—the advanced part of the course. Two days of porting a real application to the NetBeans Platform to get hands on experience of all that that entails.
A little bit late but here is it - TechCast Live: NetBeans IDE 6.9 - JavaFX Composer and OSGi. I did the demo of JavaFX Composer - it shows how to use Ai to adjust existing image, JavaFX Production Suite to export the image as fxd (vector graphics format which can be consumed by JavaFX) and NetBeans JavaFX Composer to make an animated application. Skip to about 6:10 for the demo.
NetBeans 6.10 M1 is available for download.
JavaFX Composer Data Sources have been significantly improved in
NetBeans 6.10 M1
- The API has been re-written (old API is still available for compatibility reason)
- Improved Query Language
- New Data-sources aware components based on original JavaFX 1.3.1 components. Use of new components makes the whole developer workflow more intuitive and faster
- Write support - it is possible to generate read-write forms and save the data back to the date provider
- Data validation support
- Updated samples

Read the full story here:
http://wiki.netbeans.org/JavaFXComposerNewInM8
8 Milestones of JavaFX Composer so far! Since M3 all public, M5 was the first milestone included in the official NetBeans distribution (6.9 Beta). Thank to all members of the team.
Tim's Validation API (which is in the "ide" cluster in your NetBeans IDE installation directory), in action in an OutlineView:
And in the Properties window:
To achieve the above, you need to create an InPlaceEditor for your Property. (In the example above, I use a JTextField.) Within the InPlaceEditor's constructor, I simply have this:
ValidationPanel panel = new ValidationPanel();
ValidationGroup group = panel.getValidationGroup();
group.add(
textField,
Validators.REQUIRE_NON_EMPTY_STRING,
Validators.NO_WHITESPACE,
Validators.URL_MUST_BE_VALID);
...which is copied from here:
http://netbeans.dzone.com/news/how-quickly-add-validation
By the way, thanks Henry Kleynhans in Johannesburg for the above idea!
Time to finish my SQL story. Today has been my last day in Sun. Tomorrow I'll sit at the same office and chair, but I'll be Oracle employee. Before that happens I can enjoy for the last time complete cluelessness about SQL. So here is it: follow this link to learn why SQL is not ready for internet age.
--JaroslavTulach 20:23, 31 August 2010 (UTC)
With the engineers cranking new milestones releases of GlassFish 3.1, the screencasts try to follow.
The latest one is discussed on TheAquarium. Here's a direct link to the video.
|
This short screencast demonstrates the new application-scoped resources feature available starting with Milestone 4 of GlassFish 3.1 (the demo used promoted build #17).
Such resources are bound to a module (war, ear, ejb) and as such they are created on deploy and destroyed when the module is undeployed. They are defined in a file called |
These resources are available only from the application they "belong" to which offers some level of security, more configuration flexibility (no resource name collision and different settings for different applications) as well as some level of performance isolation. They overall provide a single click/single deploy experience.
More details such as full demo description, application-scoped vs. module-scoped, location of glassfish-resources.xml and more are available from Feature one-pager (GlassFish Wiki) and Application Scoped Resources (Demo instructions).
I've been asked to review the NetBeans Platform 6.9 Developers Guide by Packt Publishing. This is a book which I was considering buying in any case, so it's nice to be given a copy, even if it is the PDF rather than the paper.
I've bought quite a few PDF e-books in the past, mostly from Manning, usually because I just wanted the information right now, but also because having the PDF on the laptop weighs nothing. Commuting and heavy technical books don't mix. However, I do prefer paper: as soon as a PDF book becomes important to me, I buy the physical book.
NetBeans is easily my preferred Java / Groovy IDE, and the NetBeans platform has become even more compelling recently with OSGi support and Maven archetypes for NB modules. I have had a copy of the original NetBeans Rich Client Programming book published by Sun for more than a year, but to be honest I found the online resources, sample projects and Geertjan's tutorial screencasts rather more helpful than the book! As I went through the Sun book, I remember thinking that I would probably get a lot more out of it once I knew how to create a NB platform application. I think it's one of those books.
So I am very much looking forward to getting stuck into the Packt book. From a first look at the Preface and chapter summaries it appears to take an API-focused approach, dealing with 'top-10' in much the way Geertjan's screencasts do, which is a good sign because I found they worked very well. The book essentially builds a complete platform application as it goes along, so I'm hoping to see the authors tie together the various ideas using the application as the binding context.
I'll post my review here, but I'm on vacation so it will be a week or two yet.
I was fortunate enough to visit Congo Brazzaville (just celebrating their 50 years of existence) to present at the jCertif conference, probably the biggest Java event in central Africa. I was expecting an adventure and an experience. I wasn't disappointed. So of course this is Africa and I probably shouldn't be surprised to see children cross the runway only seconds after the plane had landed. The food (fish, meat, chicken and bananas!) was great and the crowd welcoming. I had had a taste of what to expect when chatting with Max Bonbhel, the organizer of the conference, a leader of the CongoJUG (great logo btw), and overal an entrepreneur.
Max had arrived a week early (he lives in Canada) and had to find a venue, sponsors and take care of all the logistics. He did great with the event finally taking place in the National Center of Congress with the support of the ministry of New Technologies and major telcos as the sponsors. He also managed to get the two of us to appear for an interview on national TV the day I landed to promote the event (and our respective topics).
Congo Brazzaville seems to be, like other countries in this part of Africa, (finally) experiencing a shift to broadband with a fiber backbone coming up in 2011 and the younger generation starting to slowly take advantage of the new IT opportunities this will bring. Infrastructure is still a big concern with the capital city still experiencing unplanned and *planned* electricity outages (not a good idea to be in the elevator at that time). For anyone telling me that Internet access and bandwidth are no longer a problem anywhere in the world, I can now share that downloading a 50MB GlassFish archive will take a good 8 hours (download size does matter here, CDs are welcome), that SVN worked sporadically for me (if at all), and that watching streamed video is just not an option. Internet access is still very expensive and you are asked to think twice about bandwidth. This obviously makes it still a bit hard to do business on the Internet but with infrastructures improving by the day the country is waking up to the possibilities.
The conference itself was held in an impressively large room which I understand is where the parliament meets. Access to the conference wasn't free but costed only about the price of a softdrink. About 300 people participated, some coming from neighbor Congo (CDR), others flying from Togo, Kenya and other countries. Max kicked off the day with a talk about web 2.0 and the impact it will have from a social, technical and business point of view. Mike Levin (freelance consultant, Swampcast podcast, codetown.us, ...), straight from Florida and also a JUG-addict (he runs no less than 4 JUGs) then got down to some more details about the technical building blocks of web 2.0 development. It was great to meet Mike (we stayed in the same hotel) as I could help him with his French (the official language here) and he'd teach me the lingala (local dialect) words he had learned (Keetoko!). We also found out that we had a great deal of people in common. Check out his post about the conference.
The next speaker was Horacio from Togo talking about Talend. His talk was a great balance with a few slides to set the stage on ETL's and about a half an hour demo which is usually too long for people to follow along but this one progressed very nicely. I then presented on Java EE and GlassFish (slides), trying to start slow for the people that hadn't used it before but also covering Java EE 6 new features for the more advanced crowd (I got some pretty advanced questions during lunch). Finally Stanyslas from Kinshasa presented the NetBeans platform for building rich applications and in particular the RAMS (Refugee Assistance Management System) application he's building for the United Nations' HCR (refugee organization). A good didactic talk, NetBeans Platform extraordinaire Geertjan would have been proud!
The event continued for another 3 days of training and preparation for the Java Certification. This is free training and the deal is that if you attend (80 people showed up on the first day) you need to train others yourself in the next 6-9 months. This is just a moral obligation and training a couple of people over a few hours is good enough. I think this is a great initiative and a great way to build communities, something that feels pretty natural to the people I've talked to while in Congo Brazzaville.
While writing this it occurred to me that I've now traveled to all main continents (still working on Antartica) to talk about GlassFish!
(This entry was authored on Aug 28th but has been backdated to Aug 13th. It refers to stories between the two dates)
![]() |
Oracle said late Thursday that it had filed a patent and copyright infringement suit against Google. The lawsuit has been reported in a number of media outlets, including Infoworld, Forbes, LA Times, WSJ (one, two) and ElReg. Copy of the filed lawsuit is available from Scribd. Additional (geeky) lawyer news from Law.Com. Google later Posted a Respose which was carried in places like Infosyncworld, ElReg. Even later, Google pulled out of JavaOne. |
Not suprisingly, the lawsuit generated many reactions in blogs, tweets, bulleting boards and other public fora. As of this writing, many of them can be explored with a Twitter Search: "Oracle Google". Posts include those of Sacha, James, Steven O'Grady, Chris Wong, Venera7. SlashDot commented on this in several stories, including: Oracle Sues Google for Infringing Java Patents, The Case for Oracle, Google Back Out of JavaOne
Google has characterized Oracle's lawsuit as being "against Google and open source" but not everybody agrees - see here, here and here.
Added Links:
- At OpenSolaris.org, the thread on Oracle sues Google over Java! is surprisingly negative about Google.
- From the NYTimes: Software War Pits Oracle vs. Google; finally!
After last week's NetBeans Platform Certified Training in Johannesburg, the next one kicked off today, this time in Stellenbosch. (Tried some of the Spier wine yesterday, at the actual Spier wine farm. I recommend it.) The training is held at the offices of ISSI, which is world leader in providing services & software for microseismological monitoring of mines. In a discussion about the Visual Library (yesterday, with ISSI lead developer Ernest Lotter, who is organizing the training here in Stellenbosch), the connection between maps and the Visual Library was discussed, which could be useful in the context of seismological monitoring.
David Kaspar (Visual Library API architect) made the basis of an example and I extended it slightly with Properties window integration, as shown here:
If this is the kind of thing that anyone else might be interested in, download the sample here:
http://blogs.sun.com/geertjan/resource/Mapper.zip
I'd like to turn this scenario into a tutorial soon! (How often have I said that, but now at least the code is generally available.)
And tomorrow I'll try what I forgot to remember today—make a photo of the whole group (hopefully with the beautiful Stellenbosch view out the window included).
Interesting <a href="http://css.dzone.com/articles/netbeans-vs-vim-php" title="netbeans-vs-vim">article</a> comparing NetBeans PHP IDE and Vim for PHP development.
Project News
NetBeans
IDE 6.10 Milestone 1 Available for Download
Highlights focus on enhancements in the areas of Java EE,
GlassFish, WebLogic, Java, and PHP.
Debugging code can be the most vital task a developer required to do. Debugging makes it easy to find logical errors in code. NetBeans supports PHP debug using xdebug, but in CakePHP it is hard to make this work straight. This is due to custom, pretty, URL rewriting. However you can enable debugging even with pretty URLs and URL rewriting.
To make this works in simple few steps first make sure that xdebug is installed and working. To make sure it is installed open you php info file or create a new php file and fill it with:
<?php echo phpinfo(); ?>
and open it in your browser and make sure that xdebug appears like this:
If you found xdebug is not installed then you can find many resources on how to install xdebug on Google. If it is already installed then make sure that your xdebug is configured correctly in your php.ini. NetBeans requires xdebug to be configured as follows:
xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_host=0.0.0.0 #or your preferred hostname xdebug.remote_port=9000
Do you know that there is a standard Java API for extending any IDE with code completion? That you can easily, without writing any IDE plugin show list of SQL tables inside strings? Learn more, try out whether your favorite Java IDE comes with real support for Annotation Processors. If not, make a switch to the best IDE that does that!
--JaroslavTulach 18:56, 29 August 2010 (UTC)
![]() |
August is normally a slow month in (most of) the northern hemisphere, but this year it is proving to be anything but that for the GlassFish team. Some events were atypical but planned for (JavaOne 2010 not being in July, the big merge, the target schedules for GlassFish 3.1), while some others were unexpected. Sometimes it has felt like we are going between Charybdis and Scylla and we could use some help... Despite all these distractions, the releases continue for the GlassFish 2 and GlassFish 3 families. |
On the GlassFish v2 family, we continue to deliver patch releases for our commercial customers. The latest one is Patch 7 for GlassFish 2.1.1; as with previous patches, it is also Patch 13 for GlassFish 2.1 and Patch 19 for SJS AS 9.1 U2 (GF v2 U2). The patch addresses 51 new defects; cumulative, 190 bug fixes since GlassFish 2.1.1.
![]() |
The companion blog GlassFish For Business, records all Oracle (previously Sun) releases. In particular, check out the overview for the GlassFish v2 family, and look for details on GlassFish 2.1.1 patch 7. The ultimate source for the patches is SunSolve; and the entry at GFB has links into there. Note that patches are now also available at MyOracle Support. |
On the GlassFish 3 family, Milestone 4 has been completed and is very close to being promoted. The next release after that is Milestone 5, which is the JavaOne special... and, talking about that one, if you come to JavaOne, don't forget about our Community Event and Party, on Sun, Sept 19th, just before J1 starts.
I did 'hg pull' on my hg clone of the NetBeans sources, then built via ant, ran it, and used the New Action wizard, with the above result.
The best thing about giving NetBeans Platform Certified Trainings is the cool challenges that students leave you with. In the process, you learn about actual business needs and you teach yourself how to implement them on the NetBeans Platform.
A great example of this during the Johannesburg training (which is now complete, after 5 days, i.e., 3 days basic training, followed by 2 day advanced course) was posed by Marcel Auret and Kobus Botha from Saab. During the presentation about the NetBeans window system, they said they need a window that:
- is always on top
- opens undocked
- is modal
- cannot be closed
Why would such a window be needed? For warning messages, or notifications, as shown below:
So, maybe a JDialog could be used instead, you might wonder. However, an additional requirement was that the window should be dockable. I.e., integration with the NetBeans window system is needed.
So, here is the new mode I created:
<?xml version="1.0" encoding="UTF-8"?>
<mode version="2.3">
<name unique="warning" />
<kind type="view" />
<state type="separated" />
<constraints>
<path orientation="horizontal" number="100" weight="0.5"/>
</constraints>
<bounds x="713" y="150" width="467" height="217" />
<frame state="0"/>
<empty-behavior permanent="true"/>
</mode>
Note that "view" above will cause the window to be modal, while "separated" will cause it to be undocked.
Then I created a TopComponent and registered it in the layer in the above new position, which also needs to be registered in the layer.
I created an installer, with this "restored" method, which will be called when the module is installed:
@Override
public void restored() {
WindowManager.getDefault().invokeWhenUIReady(new Runnable() {
@Override
public void run() {
final TopComponent tc = WindowManager.getDefault().findTopComponent("WarningTopComponent");
tc.toFront();
JFrame frame = (JFrame) WindowManager.getDefault().getMainWindow();
frame.addWindowFocusListener(new WindowFocusListener() {
@Override
public void windowGainedFocus(WindowEvent e) {
tc.toFront();
}
@Override
public void windowLostFocus(WindowEvent e) {
tc.toFront();
}
});
}
});
}
The constructor of the TopComponent has this in its constructor:
putClientProperty(TopComponent.PROP_CLOSING_DISABLED, Boolean.TRUE);
As well as this:
@Override
public boolean canClose() {
return false;
}
And now everything works as expected. Right-clicking on the window's tab reveals the "Dock/Undock" menu item which, when invoked, causes the window to be docked when needed. Whatever happens (except when docked, of course), the window will stay on top and will not be closeable (even when the small red button is clicked, which can remain as decoration of the fact that this is a warning window).
Debugging code can be the most vital task a developer required to do. Debugging makes it easy to find logical errors in code. NetBeans supports PHP debug using xdebug, but in CakePHP it is hard to make this work straight. This is due to custom, pretty, URL rewriting. However you can enable debugging even with
![]() |
Shortly after I posted about Hudson Adoption and CloudBees this morning, Kohsuke used Indeed to compare job trends for several CI tools. Specifically he compared "X Engineer Jobs" for Hudson, Cruise Control, Bamboo and TeamCity. See the results for yourself: live query and cached result from a few minutes ago. Thanks to KK for the tweet. |
The adoption of Hudson continues in many (or should I say all?) fronts. At some point it seemed to be mostly just Sun, but now it is Oracle and a whole cast of other companies and groups.
![]() |
Today's addition to these movement is CloudBees a startup whose team includes a bunch of old friends, including Sacha, VivekP and BobB. As Bob and Sacha explain, CloudBees comes with two services DEV@cloud (SAAS for developers) and RUN@cloud (PAAS for production). The first piece - today's announcement - is about DEV@cloud, which is all around HaaS - Hudson As A Service. Very nice! Welcome aboard, CloudBees - you can follow them at @CloudBees. Added And here is KK's welcome. |
Hudson momentum is strong and wide. And does not show any significant negative impact from the Oracle acquisition of Sun, nor from Kohsuke's departure to his own start-up. If anything, the wider number of participants has energized the community (see Hudson-Labs) and seems to have solidified the role of Hudson as the leading CI product. Doing a quick recap...
![]() |
Andrew just wrote a note reporting on the (anonymous) data collected from Hudson via the Update Center (you can opt-out, see his post). The result shows a growing number of connected installations (~23K, see image at left), plus whatever is behind firewalls. Coincidentally, John has started a new (2010) poll on Build and CI tools, and Hudson currently shows >65% (although this is a self-selected poll, which has methodological issues, it is hard to argue with 65%). |
There are many other signs of increased adoption. Some of the non-Oracle companies are MikeCI, CollabNet (here and here), Sonatype (here), and JFrog (here). Hudson is also strong at Oracle - its internal use has continued to grow both at "Sun legacy" and at "Oracle classic", and Winston Prakash very recently joined the Hudson@Oracle team and has already started contributing as part of the Development Tool Offering at Oracle.
And Kohsuke continues to be fully engaged, now with his InfraDNA hat, where he was recently joined by Kedar.
As Sacha signs off... Onward!
PS - Add comments with links to other companies I missed and I'll rev the post. Now, or whenever you move out of stealth mode...
Yesterday was the final day of the 3-day NetBeans Platform Certified Training in Johannesburg. During the final day, two outsiders joined the course to present their work on the NetBeans Platform. But outsiders they are not really, of course. In fact, they're insiders! Chris Bohme from PinkMatter talked about Maltego, a very cool forensics application on the NetBeans Platform (used by "three-letter companies", among others), after which Hermien Pellissier from Saab Systems Grintek talked about KITT, the Saab platform used to deliver applications to the South African National Defense Force.
In the evening, Hermien and Chris turned up again, this time at a JUG event in a bar (is there a better place for a JUG event?), organized primarily by Mark Clarke (the extremely versatile organizer of the courses I am delivering in South Africa) from Jumping Bean. Here are some nice pics to evoke the feeling of the evening. (All you need to do is pretend there's semi-loud pumping disco type music in the background and you'll be very close to where we were in reality.)
Chris in action:
Hermien (author of On the NetBeans Platform Build System) in action:
Earlier in the day, during his presentation during the course, Chris announced the release of PinkMatter's Ribbon bar library for the NetBeans Platform. (Based on the work by Kirill and Gunnar and others, but this time independent of look and feel.)
And today the first day of the two day advanced training started. Of the original 16 in the basic course, 5 students remained in the advanced course, during which we're porting Robert Kelsey's AMSWin to the NetBeans Platform!
The same training is being held in Stellenbosch next week... and Chris will be there too to talk about Maltego, artificial intelligence, three-letter companies, and the NetBeans Platform. You can still join in!








