Oracle still has no clue how to go on with Java EE 8

So here it is, the long awaited JavaOne announcement on the future of Java EE 8, and what it tells us can be summed up quite simply: Oracle still has no clue how to go on with Java EE 8, so they let us wait even more years, and again ask us dumb questions on whether MVC and JMS should be cancelled or whether multi-tenancy would be necessary. One could hardly see any difference to the original Java EE 8 plan in fact. An at-most content-free and meaningless roadmap: “We do V8 then V9. For V8 we do another survey hoping that you agree when we kill MVC and JMS. For V9 we have drawn a chaotic chart. And we ask eight companies what they want. Ain’t that cool, folks?”. Good grief! And that’s everything they come up with after all that long time of silence and absence and protests by the community? No updated content and time frame for the existing JSRs? No real plan how to get the community in the boat, for really-open open source? Nothing? Not even an apology to the JCP for breaking their rules over and over again? You dare to come here barehanded? Really? Just once more the same Oracle-self-adulation that nobody wants to hear anymore — I’m really sick of that!

Oracle, once more, hand out the TCKs and let the community take over. We know what we want, we can deliver it in time, so let us just do our work now as we asked for months ago!

Posted in Allgemein, Java, Open Source, Oracle, Politics, Standards | Tagged

Java EE Guardians Achieve Partial Success

Today The Register reports that Oracle committed itself to sustained maintenance of Java EE. This is clearly (but possibly not uniquely) a partial success to the Java EE Guardians initiative. Hooray!🙂 Nevertheless, as Oracle employees told me in private, this does not necessarily means to really develop Java EE any further, or in any particular direction… So the Guardians will keep up their Monitoring of Oracle’s actual next steps. Anyways I wonder how Oracle will be able to finish Java EE in time. They say they can deliver Java EE 8 early in 2017, but according to the rules of the JCP (number of steps and time Frames) and looking at the current state of some JSRs (like 370 / JAX-RS 2.1) I doubt that this will be possible in time without violating the rules of the JCP. My fear is that either Oracle will simply declare the current state (hence: rather zero) as “Java EE 8” or simply ignore other Stakeholders and declare their own products as “Java EE 8”. I shouldn’t wonder about the latter, as Oracle recently (possibly frequently) ignored JCP rules, e. g. by simply being unresponsive to EG members, dictating results without asking EG members about their opinion, or just ignoring the JCP timeframes without any shame.

Aside | Posted on by

JavaForum Stuttgart 2016 Slides Are Online

The slides of my talk “JavaFX in professionellen Anwendungen” (JavaForum Stuttgart 2016) can be found on Speaker Deck.

Aside | Posted on by | Tagged

Toolchains + Exec Maven Plugin = Swiss Army Knife

I am pretty excited about Karl Heinz Marbaise this week kindly releasing version 1.5.0 of Exec Maven Plugin, because it contains three additions which are really awesome (not only because I authored them, but because of their combined effect): Support for custom tool chains, an integrated and fully configurable toolchain, and finally a documentation how to use both together.

What makes this combination so great is that you now have a Swiss Army Knife which makes integration of native tools much easier. In my case, I had to provide POMs for projects written in ancient languages like Install Script (Install Shield), Power Script (Power Builder), MS Visual C++ 6, Borland C++ Builder 7, and other deprecated technology. It was hard to tell our Jenkins build nodes where all those tools are located on disk without cluttering the OS search PATH. Certainly the clean solution would have been writing a Maven plugin for each of those tools, and let that plugin find it on disk somehow magically (i. e. running a Windows registry query or checking product-specific environment variables). But the exec plugin was much cheaper to employ. The only pain point was that I had to put all the tools statically in the OS search PATH.

My contribution allows to get rid of that PATH: Just define the path to each tool using the new and now embedded Paths Maven Toolchain by locating a toolchains.xml file in the .m2 configuration file and we’re done. This keeps the PATH pristine, and is a 100% clean Maven solution. Not as sophisticated as custom plugins certainly, but getting the project days earlier finished!

Now, if you don’t know how to use this new cool stuff, just copy-and-paste the example I added to the docs: http://www.mojohaus.org/exec-maven-plugin/examples/example-exec-using-toolchains.html.

Posted in Allgemein, Java, Open Source, Programming, Projects | Tagged ,

How Immutables Speed Up Even Non-Parallel Software

Just learned one interesting aspect of immutables: Besides the fact that they help you to provide a lot of ugly threading problems, they potentially speed your your code by itself. The trick is that once you prevent the creation of two identical object instances (e. g. by using builders and caches) you can be sure that two references always point to distinct objects. As the objects are immutable, this is an invariant. Hence, you can reduce the equals() and hashCode() methods to fixed implementations: There is no more need to actually compare any state, but it is enough to compare the reference itself. This certainly speeds up the code, even in non-parallel situations. Also, you spare memory, as you will never have any copies, but only singletons. As a side effect, less GC pressure exists, which also will result in faster Overall execution.

Cool, this really is the tip of my day. Good that I had time to attend “parallel//2016” conference.🙂

Aside | Posted on by | Tagged ,

Maven Coordinates for Java EE’s Individual APIs

There are things on earth you search for again and again and again. One of these is the page where the Maven Coordinates (GAV) for all the individual APIs of Java EE (like JPA, JAX-RS, etc.) is found. Here it is: https://glassfish.java.net/wiki-archive/Java%20EE%207%20Maven%20Coordinates.html.

Aside | Posted on by | Tagged ,

Bash for Windows

One year ago I asked when Microsoft Linux will be done. After it learned docker, now bash was announced at build 2016. Mr Nadalla should simply announce Microsoft Linux finally.

Aside | Posted on by | Tagged , ,