Core Java

No, being wary doesn’t hurt Java. A comment about Java licensing.

So. Oracle want’s to make money from Java. And The Register published a very polarising piece with a super catchy title about it. According to their sources, “Oracle is massively ramping up audits of Java customers it claims are in breach of its licences”. While the Twitter-verse went ballistic about people criticising Oracle’s behaviour, I want to take a minute to recap, why I am against this method and clarify, that the normal developer and user have nothing to fear!

Screenshot from the Oracle Website

People complaining about Oracle are hurting the community

You know me in and around the Oracle-sphere since many years. And tweeting at the moment is probably the most important part of how you can get the lastest news about me. I rarely post on this blog lately, because there is so much to do and I do a bunch of posts for my employer already.

The tweet I send was basically the title of The Register article and replies and reactions implied that just by spreading a FUD article, I am hurting the community. Let’s look into the details.

Are Java developers affected?

NOTE: First of all, I am not a lawyer. This isn’t mean to be a legal advice! If you are in doubt over your compliance to the BCL, contact a licensing lawyer, your local Oracle User Group or Oracle.

NO. We are covered. The Binary Code License (BCL) explicitly mentions:

“Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce internally and use internally the Software complete and unmodified for the purpose of designing, developing, and testing your Programs.”
(BCL, April 2013)

There are some cases you should be aware of.

“You may not use the Commercial Features for running Programs, Java applets or applications in your internal business operations or for any commercial or production purpose, or for any purpose other than as set forth in Sections B, C, D and E of these Supplemental Terms.”
(BCL, April 2013)

– If you use a commercial feature in your local environment and stage it to test, you might not be covered.

– If you are accessing any of the  JMX MBeans under oracle.jrockit.management and bea.jrockit.management to enable observation of a running JVM, independently of the monitoring solutions, you are not covered.

– Flight Recorder, Mission Control and everything mentioned in the below linked PDF are commercial and you can only use them on your local machine.

A complete list of commercial features is listed in Table 1-1 on page 5 of the Java SE product edition description (PDF). As a general rule of thumb, make sure to NOT use the -XX:+UnlockCommercialFeatures option.

This mostly affects companies who are already Oracle customers and have access to the commercial features, that are most interesting (e.g. MSI Enterprise installer). Funny enough, WebLogic for example includes a Java SE license ( random product link).

I’m still afraid, what are the alternatives?

You can go with various alternatives. First of all, there is the OpenJDK itself. Windows builds are a little tricky, as they are not available directly from the project. Only latest development releases are available for Windows. But you can also get binaries from Azul (Zulu) andRed Hat. If you are a Red Hat customer of any JBoss Middleware product, you also get support from them.

Why do I dislike what Oracle does?

I do like, that Oracle is sponsoring the Java development and I acknowledge that they invest significant manpower into the project. But that doesn’t get them a carte blanche to get away with everything.

My main point of criticism is, that Oracle makes it easy to accidentally use commercial features. And yes, as people on Twitter pointed out, you should have just read the license and know about it. But as a matter of fact, I believe that separation of concerns is a good design decision. Instead of directing potential customers and users from the OpenJDK site to java.oracle.com with the comment “which are based largely on the same code” and not even distantly mentioning, that these do contain commercial features which you aren’t allowed to use, it would be easier to have separate commercial and open source builds.

If you click around on the Oracle Java website you have a couple of hints at Licenses. But they don’t get you the full picture.

Java SE Licenses overview page

My personal opinion is, that it can’t be healthy for the community to stop improving. And improvements don’t come from silence. Unfortunately, Oracle doesn’t have a great history in listening to their communities which also might lead to some catchy and inappropriate headlines from time to time.

Nevertheless, let’s stay wary and keep communicating things that could improve. It’ll help the community more than it hurts in the long run: Open communication is a sign of a healthy community and the way it deals with feedback and criticism is the gauge for their values.And there are plenty of more examples. The number one search result from (my personalized) Google for “Java License Business” leads to this page for example. Speaking of misleading information, I think, this is a good example. If license conditions aren’t well known, it’s also easier to change them. Which probably hasn’t been the case, since the BCL PDF linked was last updated 02 April 2013.

Markus Eisele

Markus is a Developer Advocate at Red Hat and focuses on JBoss Middleware. He is working with Java EE servers from different vendors since more than 14 years and talks about his favorite topics around Java EE on conferences all over the world. He has been a principle consultant and worked with different customers on all kinds of Java EE related applications and solutions. Beside that he has always been a prolific blogger, writer and tech editor for different Java EE related books. He is an active member of the German DOAG e.V. and it's representative on the iJUG e.V. As a Java Champion and former ACE Director he is well known in the community. Follow him on Twitter @myfear.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Java Developer since 2005
Java Developer since 2005
7 years ago

The parameter to enable this commercial features is ” -XX:+UnlockCommercialFeatures ”
This is not default enabled.
Thiis can’t be set by code programatically from code.
This need a extra JVM param which infrastructure/development/PerformanceTuning team watch.

Not understood what is it like using param like UnlockCommercialFeatures and say I do not know?

Now a days I am getting doubt that some of people are getting paid by G**GLE to let Java go down. Similar thing happened to OpenOffice and is in stagnated state.

Back to top button