jeudi juin 10, 2010

Closing this blog

In a couple of weeks, I will be a Oracle employee.  Integration is planned for July, 1st in Belgium and Luxembourg.

As I have the perception that Oracle executives are not as encouraging as Sun was letting employees blog about their work, I decided to move this blog to a private space instead.

No new entries will be posted here.  I will use my personal blog at for new posts about the Java (and IT) world.

I guess these entries will stay here for later references.  But, just in case, I also moved all content to my personal web site. 

I am proud for having (modestly) contributed to Sun and Open Source communities and I will continue to do so on

dimanche mars 14, 2010

Hey Mark, we missed the point here !

I was recently watching Mark Reinhold's interview on Oracle Technology Network. Mark is Principal Engineer at Sun Oracle and works on OpenJDK and future Java SE releases.

The interview went over many different subjects around Java SE : projects coin (simplification), jigsaw (modularity), closures (...)  

Mark was also insisting on the many -ities of the Java platform : security, availability, scalability, readability, ...

One of my favorite is readability ! It is important to understand how a piece of code is expected to behave just by reading it.  This helps to reduce bugs when we write code and / or to easily catch bugs when reading code written by our peers.

Java SE 5, released about 5 years ago, introduced a feature called auto boxing, allowing to mix and match Java's primitive types (such as int, boolean, ...) with their Object counterpart (such as Integer, Boolean, ...)

The objective of autoboxing is to simplify code and increase readability and, as such, is a welcome addition. But the devil lies into the details.

The example of code below shows incoherent behavior introduced by auto boxing : 

Integer integer1 = 127;
Integer integer2 = 127;
System.out.println(integer1 == integer2); //true

Integer integer3 = 128;
Integer integer4 = 128;
System.out.println(integer3 == integer4); //false

You read it right : the first equality is true, while the second is false.

I would expect either both expressions to be false (Object references never must be compared for equality, my grand mother learned me) Or both expressions to be true (should auto boxing fullfil its promises). 

This weird behavior is caused by some compiler optimizations happening behind the scene.  When the compiler is auto boxing values between -127 and 127, it always reuse the same Object instance.  In our example, integer1 and integer2 are therefore references to the same Integer object, hence the first equality. 

For values outside of this (-127, 127) range, the compiler creates different Object instances for each reference, even when the values are identical.

We all learned that we should not use object references when comparing values, but auto boxing encourages us to write such code and when doing so, we end up with incoherent behaviors such as the one described above, which can make bugs very difficult to catch.

Hey Mark, if readability is really a concern : we missed the point with auto boxing !  

samedi févr. 06, 2010

Oracle + Kenai : clarifying the message ...

Last week, when publishing a serie of webcasts explaining the Oracle + Sun product strategy, Oracle clearly announced the end of Sun's sponsored source forge

Today, Oracle sent a very different message to the community and recognized they poorly communicated about this.  To summarize it : current plans are to reuse infrastructure to power another Sun's sponsored source forge : (hosting projects such as GlassFish, OpenSSO and OpenESB amongst others).

Communities and projects currently hosted on will be migrated to 

Is it really a poorly executed communication ?  Or does Oracle step back due to community feedback ?

Should the later be correct, this is a good sign that Oracle is (very) quickly learning how to deal with the many communities it inherits when acquiring Sun Microsystems. 

lundi févr. 01, 2010

Oracle + Sun : Java Developer Tools and Communities FAQ

Earlier today, Oracle posted a FAQ answering the most common questions regarding development tools and developer comunities.  It addresses questions about, Kenai, GlassFish, NetBeans, JavaONE etc ...

This complements the previous Java Development tools FAQ posted last week. 

For more details about Oracle+Sun product strategy, you might have a look at the many webcasts available.

vendredi janv. 29, 2010

Oracle + Sun IDM Strategy

Since Oracle's Sun acquisition completed on January 27th, Oracle started a massive communication campaign to detail product's roadmap and integration.

Regarding Identity Management (IDM) products and technologies strategy and integration, you can view the full web cast (18 minutes) or just read through my summary below.

Directory (LDAP)

Authorization and Access Management

As with other products, Oracle will extend OpenSSO support until 2014 (for premium support) and 2017 (for extended support).


  1. Oracle Identity Manager is strategic
  2. Oracle Identity Manager will be enhances with functionality of Sun Identity Manager (mainly SPML provisioning)
  3. Oracle plans to create migration tools from Sun Identity Manager to Oracle Identity Manager 
  4. Sun Identity Manager will be renamed Oracle WaveSet


Oracle + Sun SOA Strategy

Since Oracle's Sun acquisition completed on January 27th, Oracle started a massive communication campaign to detail product's roadmap and integration.

Regarding SOA products and technology strategy and integration, you can view the full web cast (17 minutes) or just read through my summary below.

Oracle will obviously continue to focus on it's Fusion Middleware offering, and more specifically, Oracle SOA Suite and Oracle Service Bus (formerly known as Aqualogic Service Bus from Bea).  This is the strategic SOA platform for the future.

  • Java CAPS will be maintained and improved for existing customers 
  • GlassFish ESB will continue as an open source project
  • Oracle plans to support collaboration between Java CAPS and Oracle SOA Suite through bridges technology, allowing to bring new features to Java CAPS such as SOA Governance, Workflow etc ...
  • Oracle expects to integrate key features of Java CAPS into Oracle SOA Suite 

Oracle also extends the End of Support dead line for SRE 5.0.5, eGate 4.5.3, GlassFish ESB 2.1 and Java CAPS 6.2  to January 2014 (premium support) or Jan 2017 (extended support) 

As always, Oracle also proposes a lifetime sustaining support.

By the way, for those of you wanted to start with Oracle's SOA Suite, my colleague Patrice just published an excellent three-parts tutorial in addition to the material published by Oracle.

jeudi janv. 21, 2010

Bye bye Sun

This is the end.  Let a new adventure begin ! 

I am looking forward new challenges, new adventures, new innovations  ....

(thanks jag for the artwork) 

mercredi janv. 13, 2010

Java European Roadshow

Java European Roadshow, coming to a city near you ....

Join us to get an insight into recent trends, strategies and applications in the areas of Java and Java for Business. Learn how to keep your Java applications safe, reliable and secure and how to get the best out of your current Java platform, be it embedded, standard or enterprise edition, or Real-Time Java.

Meet and discuss with Sun experts David Hofert, Simon Ritter, Steve Elliott, Alexis Moussine-Pouchkine and others.

Register today !

mardi janv. 12, 2010

Java EE 6 online code camp is starting today

The first online Java EE 6 code camp is starting today, it is not too late to register.

The objectives of this code camp is to let you practice and code, code, code using key Java EE 6 technologies.

Online mentors (top notches guys from the Java community) will be available online to answer your questions.

One more thing : this is entirely free, so do not hesitate and register today

mardi oct. 13, 2009

WS-Security with GlassFish ESB

When selling GlassFish ESB to partners, we (Sun) have to provide our partners with all the material allowing them a quick ramp-up on our technology.  That's the main reason why my group (Sales Engineers, Northern Europe) created a 3 days GlassFish ESB technical workshop.

My contribution to this workshop is a one hour module about WS-Security and GlassFish ESB (and OpenESB).  The idea is to demonstrate how easy it is to setup a WS-Security enabled channel between a web service provider and a web service client.

Specifically, the screencast tutorial shows how to establish mutual certificate authentication between an EJB based web service and a JBI service assembly, acting as web service client, in this case, a BPEL module.

The module is now released online, booth as PDF slides and as a screencast tutorial.

To learn more about WS-Security, I recommend this reading.

Enjoy ! 

lundi oct. 12, 2009

Do More with Less

Sun-Oracle TPC-C benchmark result announcement is loud and clear :

  • 8x less hardware
  • 4x less power


= 16x better performance 

lundi juil. 27, 2009

JavaFX presentations and demo during our last JUG meeting

A couple of days ago, the Luxembourg Java User Group - YaJuG - and the Lorraine JUG held a last meeting before the holiday season.  They invited Simon Ritter and myself to talk about ademo JavaFX.

The meeting was organized on a boat (une péniche) usually dedicated for theatre performances

The slides are now posted on YaJuG's web site while Lorraine JUG posted some pictures on Picassa.

French local newspaper "Le Républicain Lorrain" wrote a short paper about this and even sent a photograph for the occasion (lower left of the page, in french !). 

vendredi juil. 24, 2009

Java CAPS received Swift Certification 2009

Java CAPS, Sun's SOA platform has been certified by Swift for 2009.  We passed the very strict Swift test suite and received the much convoyed "Financial EAI 2009" Swift label.

Java CAPS has received this certification for eleven (11) years in a row ! 

lundi juin 15, 2009

Fun with JavaFX, how to subclass UI controls

While I was doing a JavaFX demo to a group of partners, someone asked the questions : "Does JavaFX provides more specialized UI controls, like SearchTextBox, Table etc ... ?"

As of today, JavaFX 1.2 proposes this list of controls and, of course, it is relatively easy to subclass these to get the behavior you want.

But I wondered how easy it really might be, so I tried.

My goal was to create a "Search Text Box", you know ?  These TextBoxes used in Apple's iTunes for example to clearly indicate that this control is to search.

It has a small glass in the front of the text area and a "cancel" button appears when text is typed to allow user to reset it's content in a click.

It took me a couple of hours to create it, here is the result on the right side. 

I basically extended JavaFX 1.2 TextBox control and added two groups :

  • One is the "Cancel" button, made of gray Circle and two Rectangles
  • The other is the glass, made of one Circle and one Rectangle

I positioned these inside the TextBox, relatively to the original control's size.

I added two callback functions to notify about possible events : new search text is available (onSearchItemAvailable) and search is reset (onResetSearch).

I finally struggled a little bit to find a way to prevent text to draw itself beneath these two icons.  It was solved using the skin's padding-left and padding-right CSS attributes (Thanks Philippe from Sun's Developpers Forum to point me in the right direction).

You can download the full source code here or you can start the test application directly from this page by clicking on the image below.

As usual, comments and remarks are welcome.

mercredi juin 03, 2009

21000 virtual desktops distributed at JavaONE

As every year, JavaONE attendees have access to a public set of SunRay thin clients for Internet access.

This year however, the user experience is different.  Attendees do receive access to a full, dedicated virtual machine with their OS of choice : OpenSolaris, Ubuntu or Windows Vista.

When the attendee inserts its conference card into the SunRay, he is prompted to choose a desktop, the desktop is booted in a virtual machine on one of our servers and delivered to the thin client in a couple of seconds.

When the attendee removes the smart card from the SunRay, the virtual machine is suspended and stored for later usage, the day after or later.

Each time the attendee reconnects the smart card in any of the 200 available SunRays thin clients, it receives back its very own personal virtual machine.

Wonder about the infrastructure we deployed to provide this service ?  Check out this article which goes pretty much into all the details. 


Sébastien Stormacq is a Senior Software Architect at Sun Microsystems. He uses his 15+ years of professional experience to design large scale, secured and highly transactional architectures based on Sun's middleware solutions.


« février 2017