Česky   |  Deutsch   |  English   |  Español   |  Français   |  Indonesia   |  日本語   |  한글   |  Polski   |  Português (BR)   |  Türkçe   |  中文   |  正體中文   |  Your Language  
Planet NetBeans is an aggregation of NetBeans related musings from all over the Blogosphere.
[RSS 1.0 Feed] [RSS 2.0 Feed]
[FOAF Subscriptions] [OPML Subscriptions]
Do you blog about NetBeans ? Add your blog to PlanetNetBeans.
Feed Subscriptions
NetBeans Zone - The social network for developers (feed)
APIDesign - Blogs (feed)
Pandaconstantin (feed)
David R. Heffelfinger (feed)
Winston Prakash's Weblog (feed)
Michael's blog » NetBeans (feed)
ProNetBeans (feed)
Carsten Zerbst's Weblog (feed)
Paulo Canedo » NetBeans English (feed)
Need to find a title (feed)
Category: NetBeans | Software and Science (feed)
Roger Searjeant's blog (feed)
Optonline Webmail (feed)
Allan Lykke Christensen » NetBeans (feed)
Inspiration and Expression » Netbeans (feed)
James Selvakumar's Blog » netbeans (feed)
open source. open mind. (feed)
John O'Conner » NetBeans (feed)
Koberoi Oracle (feed)
nB gUru » NetBeans (feed)
Newsintegrator Blog » netbeans (feed)
Praxis LIVE » NetBeans (feed)
TechAshram » NetBeans (feed)
There's no place like » Netbeans (feed)
Adam Bien (feed)
Ignacio Sánchez Ginés » NetBeans (feed)
Bernhard's Weblog (feed)
Michel Graciano's Weblog (feed)
Ramon.Ramos (feed)
Ozone and Programming » netbeans (feed)
NetBeans Ruminations » NetBeans (feed)
Tiplite » netbeans (feed)
Arun Gupta, Miles to go ... (feed)
Geertjan's Blog (feed)
.JARa's Bilingual Weblog (feed)
JavaFX Composer (feed)
The Java Jungle (feed)
Jesse Glick (feed)
Martin Grebac (feed)
The NetBeans Community Podcast (feed)
NetBeans Profiler (feed)
NetBeans for PHP (feed)
NetBeans Web Client (feed)
Rechtacek's (feed)
Virtual Steve (feed)
My First Blog - Satyajit Tripathi (feed)
The Aquarium (feed)
Tinuola Awopetu (feed)
Insert Witty Irony Here (feed)
mkleint (feed)
Anuradha (feed)
Netbeans6/6.5 my best practices (feed)
Java Evangelist John Yeary's Blog (feed)
Neil's Dev Stuff (feed)
Computer says null; (feed)
NetBeans Adventures, Java and more (feed)
Bistro! 2.0 (feed)
NetBeans Community Docs Blog (feed)
The Netbeans Experience (feed)
NbPython/ jpydbg / pymvs (feed)
Wade Chandler's Programming Blog (feed)
Big Al's Blog (feed)
Code Snakes (feed)
In perfect (spherical) shape (feed)
Van Couvering Is Not a Verb (feed)
Diego Torres Milano's blog (feed)
Vroom Framework (feed)
Messages from mrhaki (feed)
Jeff's Blog (feed)
Manikantan's Netbeans (feed)
Oliver Wahlen's Blog (feed)
Shuttle between Galaxies (feed)
Shanbag's Blog (ರಜತ ಲೋಕ) (feed)
Welcome to my live... (feed)
Netbeans IDE Blog by Tushar Joshi, Nagpur (feed)
Devel Blog (feed)
diamond-powder (feed)
Antonio's blog (feed)
Where's my Blog?!

Powered by:    Planet

Last updated:
December 20, 2014 03:05 PM
All times are UTC

Sponsored by
sponsored by Oracle

visit NetBeans website
Geertjan's Blog - December 19, 2014 10:19 PM
Integrating Cloud Providers into NetBeans IDE (Part 3)

Now that we (1) can register new Cloud providers under the Cloud node and (2) automatically enable the resources made available by our Cloud provider to be displayed under the Servers node, let's take the next logical step in the development of our generic Cloud provider plugin for NetBeans IDE.

And what is the next logical step? Well, when the user creates a new Java web application, whether Ant-based or Maven-based, they need to be able to choose the server made available by your Cloud provider, which is "Foo" in our case:

When they click Next above, assuming the user hasn't registered the Cloud provider already, the same dialog as shown when registering the Cloud provider from the Cloud node needs to be shown:

And then the user should be able to set the standard settings, such as the Java EE version and the context path, as shown below: 

When Finish is clicked, the project structure shown below, both Ant-based and Maven-based (depending on which of the wizards was selected) needs to be generated: 

In addition, since the Cloud provider has been registered in the New Web Application wizard, the Servers node and the Cloud node should now both display relevant child nodes: 

All of the above is made possible by means of the org.netbeans.modules.foo.j2ee package that you see below, which contains classes that are registered in the "J2EE/DeploymentPlugins/Foo" folder in the layer.xml file: 

The complete source code of the current state of the plugin is here: 


NetBeans Zone - The social network for developers - December 19, 2014 06:00 AM
How To Write a NetBeans Plugin

Want to add a feature or automate something in your NetBeans IDE? Follow along as we write your first plugin for NetBeans. Preview Text:  Want to add a feature or automate something in your NetBeans IDE? Follow along as we write your first plugin for NetBeans. Legacy Sponsored:  ...

Adam Bien - December 19, 2014 05:12 AM
Sassy NetBeans

NetBeans comes with "Compile On Save" and editing support for http://sass-lang.com and http://lessframework.com out-of-the-box. No plugins required.

See you at Java EE User Interfaces, HTML 5 or Virtual Dedicated Workshops / consulting!

Real World Java EE Workshops [Airport Munich]>

Adam Bien - December 18, 2014 11:07 AM
Why Standards Are Hot, Or Why I Still Like Java EE

I started with Java before the advent of EJB, Servlets and Java EE. And it was a huge mess. You had to implement business code agains (too) many, completely different, not even similar application servers. You didn't had any chance to take even a simplistic server side application from one product and install it on another. Some application servers were half "native" and half "pure Java". Also it was absolutely impossible to be knowledgable in more than two products.

The introduction of Servlets, JNDI, EJBs, JMS, JDBC, RMI simplified the development, but the portability still suffered. You could not rely on the availability of a give API on all servers.

The old J2EE brought ...simplicity. With the advent of J2EE in 1999 you knew what you could expect of a certified server. Ironically: J2EE was too simple and incomplete.

For me J2EE and later Java EE brought simplicity and productivity, and I always was puzzled by developers stating "J2EE is too complex" and implementing home-grown infrastructure instead.

In 2014 Java EE 7 is still the most productive, and simple platform:

  1. Java EE is probably the best documented platform. The documentation, specification, samples and even the reference implementation are free and available on the release day.
  2. You "only" have to learn the APIs. All the documentation is free.
  3. The core programming model is based on injection and dependency injection JSR-330 used by many other frameworks in the same way, even the exact same annotations (thanks to Rod Johnson and Bob Lee for this).
  4. You cannot escape JMS, JPA, Servlets sometimes JAX-RS and JCA. Even if you choose a Java EE alternative, you will have to learn these specs. At the same time you can learn Java EE programming model based on Convention over Configuration and Dependency Injection in few minutes.
  5. All modern Java EE Application Servers can be installed in seconds. IDE integration is also very good.
  6. Because the server comes already with all the "plumbing", your WARs are going to be skinny and the turn-around cycles very fast.
  7. The Java EE community is vibrant. JUGs and conference sessions are sold out and Java EE articles are very popular.
  8. After the commercial support for GlassFish was cancelled, many of my clients decided to move to WildFly or TomEE. The "migration" went surprisingly smooth.
  9. I don't have to discuss "best of breeds" technologies or constantly bundle APIs "à la carte". At the very first project day you can start implementing the business logic. Without any initial overhead. Java EE effectively prevents meetings and superfluous discussions.
  10. It is hard to find any other leaner platform. With Java EE you can build either complex applications, or simplistic CRUD use case with the minimal amount of code.
  11. It is good to know, that I'm not alone. Many startups this year chosen Java EE ...because of productivity.

[See also an in-depth discussion in the "Real World Java EE Patterns--Rethinking Best Practices" book (Second Iteration, "Green Book"), page 7 in, chapter "A Brief History of Java EE"]

See you at Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting

Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - December 18, 2014 08:00 AM
Integrating Cloud Providers into NetBeans IDE (Part 2)

The next step is to, whenever a new Cloud provider is registered and displayed under the Cloud node, automatically display a related node under the Servers node. In the example below, you see that the related node under the Servers node displays the resources deployed to the Cloud provider:

As with other Cloud providers integrated into NetBeans IDE, you want the node under the Cloud node to not have any children, while the node under the Servers node should be expandable, displaying resources that are made available by the Cloud provider.

When you look at the source code of similar plugins in the NetBeans source tree, i.e., for Oracle Cloud and for Amazon Beanstalk, you'll see how important it is to have clear naming conventions. After all, there are two nodes you need to provide and two of several other things, one for under the Cloud node and one for under the Servers node.

I also recommend keeping the Cloud-specific code as separated from the generic code as possible.

Above, you can see two ChildFactories right at the end, one implemented for OpenShift, the other empty for Cloud Foundry, where a connection is made to the Cloud and resources are retrieved. Right now, I have the OpenShiftChildFactory hooked into the FooServerInstanceImplementation, though if the other one were to be filled out it should be possible to directly swap it into the code.

All the code that you see above is found here:


As before, the entry point for understanding the code that registers the node under the Servers node is in the layer.xml file, where you will find FooServerInstanceProvider is registered in the Servers folder.

Geertjan's Blog - December 17, 2014 08:00 AM
Integrating Cloud Providers into NetBeans IDE (Part 1)

Many cloud providers exist (see here for some of them) and several have integration points via Java APIs. Some of these are Oracle Cloud, Jelastic, Amazon Beanstalk, Red Hat OpenShift, and Pivotal Cloud Foundry. And some of those are already integrated into NetBeans IDE, so that you can login, view the resources that have been deployed, and deploy new resources, together with the reverse activities, e.g., undeploying and unregistering. Others not (yet) and so let's give potential integrators a leg up by showing how to get started integrating their cloud offerings into NetBeans IDE.

Here's the applicable NetBeans API:


Now let's get a 'hello world' scenario up and running, for an imaginary Foo Cloud.

Here's the source code:


When you download and run that module, you'll be able to right-click on the Cloud node and choose Add Cloud...

...and then, in addition to the Amazon Beanstalk, which NetBeans provides by default, you'll see Foo:

When you click Next, above, you'll be able to enter a name:

When you click Finish, above, the name you entered will be the name of a new node that will appear automatically under the Cloud node:

When you close the IDE, after registering a Cloud provider like the above, and restart the IDE, you'll see the Cloud providers you registered automatically being displayed again under the Cloud node.

The file structure of the NetBeans module, shown in the first screenshot above, is as simple as it can be as a basic starting point for integrating your own Cloud provider. To understand the code, the starting point is to take a look at the layer.xml file, where you'll see that FooServerInstanceProvider and FooServerWizardProvider are registered.

In subsequent blog entries, we'll extend this example to provide less generic and more specific features for integrating various Cloud providers.

Adam Bien - December 17, 2014 04:01 AM
Java EE and HTML 5

NetBeans comes with HTML 5 project support. The project wizard accelerates the setup:

See you at Java EE Workshops at Munich Airport, Terminal 2, particularly at HTML 5 workshop or Virtual Dedicated Workshops / consulting.

Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - December 16, 2014 08:00 AM
MIT Lincoln Laboratory Network Activity Analysis with Java and NetBeans

"Analysts can glean much useful intelligence information from identifying relationships between individuals and groups, and tracking their activities. However, detecting networks of people and then investigating their activities are difficult tasks, especially in this era of information overload. Graph analysis has proven to be a useful tool for addressing these tasks, but it can be labor-intensive. To aid in this analysis, MIT Lincoln Laboratory researchers have developed a diffusion-based analytic that helps solve the problems of network discovery and prioritized exploration"

The above is directly from here: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=

In response, the BlueStreak Exploitation Tool has been developed, "to support data visualization, graph construction, algorithm services, and analyst collaboration within the network-discovery framework".

Tools and technologies used include the NetBeans Platform, NASA World Wind, JUNG, Apache Tomcat, and Apache ActiveMQ.

And here's the full PDF from the Lincoln Laboratory Journal, Volume 20, Number 1, 2013.

Adam Bien - December 16, 2014 05:10 AM
Pico Services with Java EE 7 on Java 8 and Docker: Devoxx 2014 Presentation

After introducing Nanoservices, now it is time for some Pico:

See you at:Java EE Microservices Workshop in MUC! or Dedicated Virtual Workshops.

Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - December 15, 2014 05:47 PM
Tiling of Editor Documents in NetBeans Platform Applications

A very exciting development for NetBeans users (and developers of applications based on the NetBeans Platform) everywhere.

Take a look at the screenshot below.

Take a look at it again, in particular the buttons within the red rectangle:

Right now, as you can see, those buttons are disabled. Now, however, because more than one document is open, those buttons are enabled:

The buttons are for tiling the editor documents. Here you can see the effect of clicking "Tile Evenly", which is the third of the four buttons:

And this is "Tile Vertically":

There's also "Tile Horizontally" and "Tile Single" (which untiles the tiled documents).

If you'd like this in NetBeans IDE, download the plugin here (restart NetBeans after installing the plugin), while this is also a plugin that is relevant to any other application on the NetBeans Platform that has editor documents. These documents can either be actual text editors or TopComponents of some other kind, e.g., GUI components where the user should be able to enter data of some kind.


The source code of the above is here, so that you can integrate it into your own NetBeans Platform application, and where you can also read more about it, including the implementation code, of course:


Many thanks to Norman Fomferra and others from Brockmann Consult in Germany, who created and open sourced this solution as part of the ESA Sentinel Toolbox, a NetBeans Platform application that is being created for the European Space Agency:


Here's the ESA home of the Sentinal Toolboxes:


They've extended the tiling idioms already, so that they now have tileable internal desktops, i.e., workspaces, with floating TopComponents.

They'll be separating out this solution, so that this will be pluggable, and the sources available separately, too. Pretty cool having rocket scientists (OK, they'll deny they're that, but they work in the space industry and are computer scientists, which to me means you're a rocket scientist) working on NetBeans code, isn't it? :-)

Geertjan's Blog - December 14, 2014 11:51 AM
NetBeans Tools for Teachers: Quick Runtime Properties Setter

Imagine you're a teacher. You're teaching a Java course and your students turn in their homework exercises in the form of NetBeans projects. Now you have thirty NetBeans projects, many of them open in NetBeans IDE. For each of them, you need to load an external file as an argument to the main class. Then that file is processed and you can then see whether the code works as expected.

To set the file as an argument for a project, you need to right-click the NetBeans project, choose Properties, and then go to the Run tab, where you can set the runtime argument. That's a lot of tedious work for 30 different projects, plus sometimes you need to change the argument because you want to run a different file or some other set of arguments against the code that your students have provided.

Precisely this problem was described to me at the Hanzehogeschool in Groningen some weeks ago by Michiel Noback, who is one of the teachers there. In the first implementation of the solution, I created a plugin that lets you type the runtime arguments of the current project in the status bar. But, of course, then new requirements came in, one of which was to have some kind of history of the entered arguments, so that the teacher can easily reuse previously used arguments. The status bar isn't a good place for this, since a drop-down list of some kind is needed, so I moved the feature into the toolbar:

Take note of the drop-down list in the toolbar above. How to use this feature? Firstly, make sure a file is open from the project where you want to set the runtime properties via the drop-down list in the toolbar. It can be any file from that project, most logically it would be a Java source file, since that's where you'll be focused on when examining a student's work. Then go to the drop-down list in the toolbar and type the arguments you'd like to pass into the constructor of the application. Then, importantly, press Enter. When you press Enter, a change is made to the project.properties file where the runtime arguments are defined. At the same time, the arguments you entered are added to the list in the drop-down, so that you can later look in that list, find the arguments you'd like to reuse, and then press Enter again to apply them to some other current project you're looking at.

Get the plugin here, works in NetBeans IDE 8.0.2:


Apparently there's a bug with this, related to setting breakpoints, but I haven't been able to reproduce that problem yet.

Geertjan's Blog - December 13, 2014 01:23 PM
YouTube: Integrate Code Templates into Code Completion

When you assign a code template to a context, the Code Completion box will show your code template in the context where you're working. Nice and powerful and hidden tip, watch it in action here:

Related discussion: https://netbeans.org/bugzilla/show_bug.cgi?id=212176

NetBeans Zone - The social network for developers - December 13, 2014 09:49 AM
Clement Levallois: My Five Favorite NetBeans IDE Features!

Continuing a series of articles focusing on NetBeans users and their five favorite NetBeans IDE features, here's the next part, by Clement Levallois. -- NetBeans team. Preview Text:  Robustness, code generation, hints, Java EE and more! Find out what Clement Levallois from Lyon, France, likes about NetBeans IDE. Legacy ...

Geertjan's Blog - December 12, 2014 11:10 PM
YouTube: Code Templates in NetBeans IDE

Everything you need to know about where and how to find, display, and configure code templates in NetBeans IDE!

Adam Bien - December 12, 2014 07:44 AM
Changing Working Directories In Nashorn Scripting

Assigning a directory name to the $ENV.PWD variable: $ENV.PWD="[DIR_NAME]" changes the working directory for the next command:

The ls command will print the contents for directory specified earlier:

#!/usr/bin/jjs -fv
print('Tmp Directory');
$EXEC('ls -al');
print('Root Directory');
$EXEC('ls -al');

Thanks to Jim Laskey for the hint

See you at Java EE Workshops at Munich Airport or dedicated / custom virtual workshops!

Real World Java EE Workshops [Airport Munich]>

NetBeans Zone - The social network for developers - December 11, 2014 09:20 AM
Java Antidecompiler for NetBeans IDE

Bis Guard & Co provides  code protection tools for Java, among other languages and technologies. Recently, Bis Guard has released the Java Antidecompiler plugin for NetBeans IDE. Get started with it as described below. Installation 1.  Download "1418138973_JavaAntidecompiler.zip" from this location:   http://plugins.netbeans.org/plugin/51308/javaantidecompiler ...

Geertjan's Blog - December 11, 2014 08:00 AM
YouTube: How to Find the Source of Icons from NetBeans IDE

When you're creating plugins for NetBeans and you want to reuse an icon that you see in NetBeans, what do you do to find that icon in the NetBeans sources? Tackling this challenge is described in this short YouTube clip:

Geertjan's Blog - December 10, 2014 08:01 AM
Python in NetBeans IDE 8.0.2

Let's get started with Python in NetBeans IDE 8.0.2.

Take the following steps:

  1. Prepare. Watch this YouTube movie:

    <span id="XinhaEditingPostion"></span> </p>

  2. Make Sure You're Prepared. Watch the movie again. It takes less than 5 minutes.

  3. Get the Correct Version of NetBeans IDE. Download NetBeans IDE 8.0.2, the "Java SE" distribution, which is the one where I've tried the scenario below. You're free to choose any other distribution, I'd recommend never using "All" except if you really need to do Java ME and C/C++ development, for pretty much all other scenarios, one of the other distributions is much better, i.e., smaller, faster. However, do make sure that you only continue with the next step if you have NetBeans IDE 8.0.2 installed. Note that there is a "2" in the previous sentence, i.e., it is not enough to have NetBeans IDE 8.0, nor to have NetBeans IDE 8.0.1. Instead, dowload and install NetBeans IDE 8.0.2.

  4. Get the Python Plugin for NetBeans IDE 8.0.2. Go here, click Download on the page, and then unzip the file that you have downloaded: http://plugins.netbeans.org/plugin/56795

  5. Go to the Plugin Manager in NetBeans IDE. In NetBeans IDE, go to Tools | Plugins. Click the "Downloaded" tab, which you see below. Click Add Plugins and browse to the folder where you unzipped the files in the previous step. Select them all. You now should see exactly this:

  6. Install the Python Plugin. Click Install. Click Next. Put a checkmark in "I accept the terms in all of the license agreements." Click Install. Click Continue. Click Finish. Click Close.

  7. Go to the New Project Dialog. Go to File | New Project or press Ctrl-Shift-N. You should now see this:

  8. Get Started Creating a Python Application. Click Next. If you have Python installed correctly on your system, you'll see the installations available (look in the "Python Platform" drop-down below), possibly after a moment while NetBeans searches for your installations:

  9. Step Through the Wizard. Pick the Python Platform of your choice, provide a name (e.g., "HelloPythonWorld") and a location to store the application, in the step above, and click Finish.

  10. Run the Python Application. The application opens, click the green Run arrow in the toolbar or right-click the application and choose Run. You now should see this:

Right now, the main missing feature is the set of well established smart editor features in NetBeans IDE, such as code completion, i.e., when you press Ctrl-Space, nothing happens. No error checking, i.e., no parsing is done, either. These are things being worked on right now. However, you can code and run and debug your Python applications, which is a lot more than nothing.

Feedback welcome, especially if you're planning to contribute code to this project.

Adam Bien - December 10, 2014 04:58 AM
JUG Tricity, Microservices and The History Repeats

During the sold-out NetBeans day in Munich with Toni Epple and Geertjan Wielenga, we remembered (Geertjan's Report (green dot on a purple line), my coverage) a NetBeans World Tour trip from Poznan to Gdansk in October 2008 with a rent car and with iPhone 1 as a navigation with a poor internet coverage.

Six years later I gave a session Building Reasonable JavaEE 7 Apps on Java8 called “Microservices" for the Tricity Java User Group. It was exactly the same location and I also used NetBeans.

My airplane was supposed to land in Gdansk, but the weather conditions were bad and the airport was closed. We landed in Poznan instead. Buses were supposed to bring us to Gdansk, but no one knew when they will arrive.

After a hard negotiation I took a taxi instead. The taxi driver was very nice and funny. However, he did not knew the route to Gdansk and was afraid to go fast. I used my phone to navigate him to Gdansk and the venue. At the same time I cranked some Java EE code on the back seat and concurrently watched the speed of the car. I reminded the driver to go fast at any attempt to slow down.

As the driver recognized, that >100 attendees are waiting for us in Gdansk, he became really nervous and begun to sweat.

We had a single stop (at a graveyard) to detach the taxi-light at the roof--to go faster.

Via email I kept Kuba Marchwicki informed about the progress. I came one hour later and Kuba delivered a prelude talk to keep the crowd entertained.

I enjoyed the session, got many interesting questions. The event was stopped by the security--they wanted to close venue for the night.

Next day the airport was still closed. I rent a car and went to Warsaw. But this is a different story :-)

I'm really looking forward to the next Trinity Java User Group meeting. I'm curious what happens then :-).

See you at Java EE Workshops at Munich Airport, Terminal 2 or dedicated virtual workshops!

Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - December 09, 2014 05:54 PM
Trip Report: DevFest Istanbul 2014

I had a fantastic time at DevFest Istanbul, Turkey, on Saturday 6 December. It was the first time I was in Turkey. However, over several months, even before knowing I'd be going to this conference, I'd been following a free on-line Yale course on medieval history and then, hey, there I was in Constantinople. Fortunately, Mark Stephens, from NetBeans partner IDRsolutions, and one of the new NetBeans Dream Team members, turns out to have studied medieval history for many years, so turned out to be a perfect tour guide, when we went with a small group to many historical sites, such as the Hagia Sophia.

The conference itself was excellent. Three thousand turned up, to the free conference, which is about twice as many as last year. Mark Stephens did a great session entitled "5 Reasons Why NetBeans Should Be In Every Developer's Toolkit" and I followed with a packed out room, i.e., 800 at least, since many were standing at the doors, "Coding for Desktop and Mobile with HTML5 and Java EE 7", which showed many features in NetBeans, such as the HTML5 tools, Chrome integration, AngularJS features, and Java EE code generators.

Also on the agenda were sessions by PrimeFaces and Vaadin, while Martijn Verburg, London JUG lead, Java champion, etc etc, and one of the new NetBeans Dream Team members did his "The Habits of Highly Effective Teams". But there was much more, in four tracks, most of which I missed because I was at the NetBeans booth answering heaps of questions about NetBeans. We also worked on the next NetBeans community podcast, which will again feature interviews done by NetBeans users with each other, all recorded during the conference.

Another highlight was that Dorine Flies from "Encouraging Programming in Kids" (together with Luke Mayell and others) did another Minecraft hacking session with kids and their parents. Of course, they started by setting up NetBeans and the JDK, after which they ran Minecraft from NetBeans and then hacked it.

It was great seeing heaps of little kids with NetBeans on their laptops!

And I'll be working a bit more on the NetBeans shisha integration soon, in gratitude to all the nargile I consumed.

All in all, a great few days, thanks everyone for making it possible, for being so enthusiastic, and I hope I'll be there again next year!

NetBeans Zone - The social network for developers - December 09, 2014 08:50 AM
16 New NetBeans Dream Team Members!

The NetBeans Dream Team has expanded massively over the past week! Sixteen new members have joined, from many corners of the world. Preview Text:  The NetBeans Dream Team has expanded massively over the past week! Sixteen new members have joined, from many corners of the world. Legacy Sponsored:  ...

Geertjan's Blog - December 08, 2014 01:53 PM
ERP System for the Printing Industry on the NetBeans Platform

One of the organizations present at NetBeans Day Germany last week was SSB Software Service und Beratung GmbH, based in Munich, a software company with more than 20 years of experience focused on integrated solutions for the printing industry.

Diso21 Client is a NetBeans Plattform application created by SSB to provide an ERP system for modern printing companies. It helps to manage and to automate enterprise processes. The application has a modular architecture and allows for a flexible arrangement of workplaces. The Diso21 Client has an integration API to embed third party systems to increase productivity.

Here's a screenshot, click to enlarge it:

It will be added to the NetBeans Platform Showcase soon.

NetBeans Zone - The social network for developers - December 08, 2014 05:46 AM
NetBeans at DevFest Istanbul

Over the weekend the second DevFest Istanbul conference took place. It is a sign of the growing uptake of NetBeans above and beyond its traditional users that there was also a big NetBeans element. It is the second time it has been run and about 3000 people attended. There were two talks on NetBeans, an introductory talk on reasons to use NetBeans... and a detailed tutorial on writing web...

Adam Bien - December 08, 2014 05:20 AM
9th Airhacks.tv Q & A Uploaded --OData, Logging, Fast Deployments, EntityManager Injection and The Giblets Of My Server

20+ questions answered in 50 mins: the 9th airhacks.tv.

See airhacks.tv for past episodes.

Any questions left? Then join the conversation at each first Monday of the month at 6 P.M. live, and ask questions commenting / pulling on github (hurry up, some questions are already asked) or write comments on this blog.

See you at Java EE Workshops at MUC Airport or on demand and in a location very near you: airhacks.io!

Real World Java EE Workshops [Airport Munich]>

APIDesign - Blogs - December 07, 2014 05:21 AM
Publish Bck2Brwsr Libraries as Maven Artifacts

Bck2BrwsrLibraries can now be published as Maven Artifacts which greatly reduces edit/compile/run time.

--JaroslavTulach 05:21, 7 December 2014 (UTC)

Geertjan's Blog - December 06, 2014 12:50 AM
AsciidoctorJ and NetBeans IDE

AsciidoctorJ is the official library for running Asciidoctor on the JVM.

Here's the start of support for AsciidoctorJ in NetBeans IDE. New AsciiDoc files can be created and you have a source editor where you can write AsciiDoc. Currently, no syntax coloring, etc, yet.

When you click the Visual togglebutton above, AsciidoctorJ is used to convert the AsciiDoc:

Right now, the conversion options are hardcoded, using CodeRay, a Ruby library for syntax highlighting. Thanks to AsciidoctorJ, no Ruby needs to be installed, since AsciidoctorJ wraps the gems. Notice the code below, which was as much fun to figure out as something really not fun and could still be wrong and looks problematic. But it works.

Asciidoctor doctor = Asciidoctor.Factory.create(Arrays.asList(
String html = doctor.convert(obj.getPrimaryFile().asText(), getInitialOptions());

Need to integrate the Progress API into the above so that the progress bar runs while the conversion is taking place.

The source code of the above is here, looking forward to clones and pull requests:


Adam Bien - December 05, 2014 09:55 AM
Setting Timeout For The JAX-RS 2.0 / Jersey Client

Timeouts are crucial for robustness of the communication between reasonable WARs (also known as micro services).

Timeout settings are not standardized and have to be passed as "proprietary" properties of the JAX-RS client:

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import org.glassfish.jersey.client.ClientProperties;

        Client client = ClientBuilder.newClient();
        client.property(ClientProperties.CONNECT_TIMEOUT, 100);
        client.property(ClientProperties.READ_TIMEOUT, 10);

The "provided" dependency highlighted above can be omitted by using the String representation of the constants:

        client.property("jersey.config.client.connectTimeout", 100);
        client.property("jersey.config.client.readTimeout", 10);

Timeouts will cause: java.net.SocketTimeoutException: Read timed out exception which can be easily handled. A few years ago we would talk about exception handling and robustness, in the age of micro services we can call it now "resilience" :-).

See you at Java EE Workshops at Munich Airport, Terminal 2 or at a virtual, dedicated workshop!

Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - December 04, 2014 12:21 PM
New NetBeans Power Tools: Key Promoter & Quick Member Search

Today I have two new/updated plugins for the price of one! One costs zero money and therefore two do, too.

Firstly, I find the concept of a key promoter very handy, but the initial version of the plugin provided too much noise. Now, instead of using the Notifications window, the keyboard shortcut, if there is one, that matches the action invoked from a menu item or toolbar button is shown in the status bar:

Get the above plugin here.

Secondly, I'm going to be using only the keyboard (and not the mouse) as much as possible and "Distraction Free Mode" as much as possible, from now onwards. That means I want the tools I need to use to be close at hand. Therefore, rather than all the clicking I need to do to undock the Navigator, bring it to where I want it to be, etc etc, I've created a new plugin that lets you press Alt-Q (the "q" is the "Q" in "Quick Member Search"), at which point the Navigator will undock itself and appear as a small dialog in the editor. Especially powerful when you're already in "Distraction Free Mode" (Ctrl-Shift-Enter).

The Navigator that you see above appeared in the editor when I pressed Alt-Q. I did not need to (1) open the Navigator via Ctrl-7 or a menu item in the Window menu and then (2) move my mouse to the Navigator in its docked position in the lower left and then (3) right-click in the tab of the Navigator with my mouse and then (4) choose Float in the popup menu with my mouse and then (5) drag the Navigator with my mouse into the editor. No, instead of all that, I simply pressed Alt-Q and automatically the Navigator was put where I wanted it.

Get the above plugin here.

Anyone have requests for other small and handy power tools for NetBeans IDE? Let me know, especially if you're interested in working on them together with me.

Adam Bien - December 04, 2014 05:50 AM
Introducing afterburner.fx TopGun Edition

afterburner.fx is the leanest possible MVP / MVVM "framework" for Java FX 8 / Java 8.

As afterburner.fx became more popular, I got many interesting community contributions. I rejected most of the pull requests, because I could not find the "killer use case" for most of them. afterburner.fx should remain lean and simple.

The solution to this unsatisfying situation is the branch topgun. Recent pull requests, like e.g. weld integration and support for @Named qualifiers are already merged.

In addition the "topgun" edition is also available from maven central:


There are no changes for coordinates of the default afterburner.fx:


Now all contributions are welcome. Use the branch: topgun as base for feature implementations and the default branch master for possible bug fixes.

See you at Java EE Workshops at Munich Airport!

Real World Java EE Workshops [Airport Munich]>

NetBeans Zone - The social network for developers - December 04, 2014 05:00 AM
Yes, NetBeans Can Do Polymer!

Last weekend I was training a small group of developers on Polymer during a local Google Developer Group DevFest here in Burkina Faso. Basically, Polymer is a new web UI framework that helps programmers to develop modularized web applications with cross-browser capabilities. Polymer is composed of four main layers: Preview Text:  Last...