2015-04-16



The Enterprise Java Newscast, hosted by Kito D. Mann, Ian Hlavats, and Daniel Hinojosa, is a monthly podcast that covers the latest headlines in the world of Enterprise Java development.

In this episode, Kito, Ian, and Daniel cover new releases from Oracle, PrimeFaces, RichFaces, Hibernate, Spring, Apache, and more. They also discuss AngularJS 2.0’s decision to use TypeScript, Microsoft dropping IE, and testing with Selenium and Geb.

You can find the latest show notes and episodes at enterprisejavanews.com.

Kito:

Hello and welcome to the Enterprise Java Newscast. This is episode 26 recorded in March 2015. You probably won’t hear this until April, but that is the way things work.Hello, my name is Kito. I am the host and I have two co-hosts, Daniel Hinojosa and Ian Hlavats. Hey guys.

Daniel:

Hi there.

Ian:

Hey, Kito. Hey, everyone.

Kito:

We have managed to actually do this the next month after our last newscast, not two months after, even though it may not really come out until a little bit later. But I’m very happy about that. So thanks, guys, for getting together on another Sunday.Just so you know, we record these things on Sundays, so everyone gives up part of our weekend.

Daniel:

Usually, unless we’re really desperate because we’re running so late, then we’ll typically do it—in that case we’ll do it on a Tuesday or a Wednesday.

Kito:

Yeah, exactly.

Ian:

Not bad for three guys in three different time zones.

Kito:

Yeah, that’s true. Yeah, we should mention that. So Ian, are you in Spain right now?

Ian:

Yeah, Central Europe time so 9 pm for me.

Kito:

Okay, oh, so that’s why you’re complaining about your weekend. It really is almost over. Now I get it.

Ian:

It really is almost over.

Kito:

I’m in the Eastern time zone, I’m actually in Richmond, Virginia now so it’s only 3:20 something for me.

Ian:

You lucky dog.

Kito:

My big concern is finishing the podcast before the kids wake up, so my wife can get some stuff done.

Ian:

So let’s hit the gas pedal, let’s get this done.

Kito:

Daniel, you’re in…

Daniel:

Mountain time.

Kito:

Yeah, mountain. Okay, so you’re home right now, right?

Daniel:

I am, correct.

Kito:

All right, cool. So any interesting stories you want to share, Ian, before we get started? We missed you last time so we don’t know what you’ve been…

Ian:

Yeah, sorry I missed you guys. I was run down and had a long week. I was feeling under the weather so thanks for carrying on without me and getting it done. No news, well, no personal news, but more of the same; just charging ahead with everything. Some interesting news, though, for the podcast today, for sure.

Kito:

Cool.

Daniel:

Well, Kito and I met at DevNexus.

Kito:

We did, indeed.

Daniel:

Two weeks ago, both of us did a workshop. You did your Web Components, and I did my Scala Akka Play and both of us gave some presentations as well.

Ian:

Very nice.

Kito:

Yeah, and Daniel’s presentation was all sold out, I mean your workshop.   What was the max? Like 30, 40 people, something like that?

Daniel:

I don’t know, but it was hot in there. Most of these workshops, if I get a good crowd, what tends to happen is even though the place is air-conditioned it gets really, really hot. I had 40 people in a very small room so it got kind if heated up in there. But it went really, really well.

Kito:

Yeah, and the thing about that was I had 20-something people, so I had fewer people and they gave me a much bigger room so I felt bad for Daniel. But mine ended a little early so I caught the tail end and it was pretty interesting stuff. I don’t know how you fit all that stuff in one day, but it was cool.

Daniel:

I don’t know, it was more like a challenge because Pratik—he and some others manage DevNexus—said, “Hey, Dan, how about you do a Scala, Play, and Akka workshop.” And what was going on in the back of my head was: it took me two years to learn Scala effectively and I’m going to do this in the course of a few hours. But I figured, why the hell not.

Kito:

That’s cool. I had a totally opposite end of the spectrum. I was talking about web components, which is totally new. It’s part of HTML5 and I could have gone a little bit deeper on a couple things, but if I was going to teach everything I possibly could, it probably would only take me a couple days. So I was on the other end of the spectrum there.

Daniel:

One thing I’ve learned from Ken Kousen is: for a workshop, people are going to be…and it’s very much like humans throughout the day, our brains work really well at the beginning. And so you give them the highly technical stuff at the beginning, but at the end…what I’m going to do from now on is have prepared things that they can run and see how they work, because their brains have already shut down by the end of the day.

Ian:

That’s a good idea. Yeah, I did have some completed labs that I gave them to do. Even though they got the labs to do, they only had a couple. But yeah, I like that idea: here’s something you can just play with for a bit, ask questions, etc. Well, I know Daniel’s doing a lot more traveling. I don’t have any more conferences probably until the fall so I’m going to be a homebody for a bit. I guess we should move on. Are you guys ready?

Ian:

Yeah, ready to go.

Kito:

Right, let’s start with the UI tier. I got an announcement from Oracle on their MAF framework, which I’m not sure sounds the best as a name. But it’s the Oracle Mobile Application Framework. They just released 2.1 in late January and it’s a major update to their framework. And MAF intrigues me because it’s basically Oracle taking a very JSF-like programming model, but allowing it to run on mobile devices using a Java VM.You still would usually make REST calls, etc., back to the server. It actually used Cordova internally. So you’re basically running an HTML5 app, but you can actually write client-side logic in Java, which is a fascinating thing.

Ian:

Oh.

Kito:

Yeah. But this version includes support for Java 8, which is awesome. So you can actually use Java 8 and all the Lambda and all this fun stuff in Java 8. With MAF, Cordova 3 is supported, a simpler Cordova plugin, and X-Code 6 and Android 5 are supported as well. So that’s Oracle MAF and that’s not open source. It’s actually a commercial product. It gives you the option to do HTML5 stuff if you want, but it’s not required so you can actually do Java and use components and stuff like that. So Oracle MAF 2.1.In PrimeFaces news, there is a fascinating new product from them.   It’s called the PrimeFaces Sentinel Theme. And it’s what they call a premium layout. It’s a theme featuring responsive layouts, awesome design, modern font and icons, pixel-perfect implementation, and cross-browser support.   And it doesn’t contain any third-party CSS frameworks like Bootstrap. It’s just basically a pure CSS framework with templates and it works with PrimeFaces components.I think this is a cool thing because it satisfies the needs of people working with PrimeFaces and other JSF component libraries. They want responsive mobile first UIs, and without something out of the box to do that for you, it’s a pain. And some of the PrimeFaces components are already pretty much responsive, but some of them aren’t.So this is a nice product and it’s a commercial product and it costs, let’s see, how much does it cost? Oh wait, there it is. Yes, the basic license is $79 and the extended license is $479. The basic license is non-commercial, so it’s actually pretty affordable if you think about the amount of time and effort it takes to do that stuff.

Ian:

Sounds like a promising product.

Kito:

Yeah, I think it’s really smart. They’re doing some good things. And again I’m biased, I’m a PrimeFaces partner, I do a lot of PrimeFaces work, but it’s a really smart move.

Ian:

Cool, cool, awesome. Yeah, in other PrimeFaces news, a couple of releases coming out from the project’s team: the PrimeFaces Elite 5.1.14 and 5.0.18. Sorry, Daniel I know they are patch releases or micro-releases, but news is news.

Daniel:

Just make sure the news is good.

Ian:

Yeah, the news is great if you’re a PrimeFaces 5.1 user. Some new features: screen reader support for the Tree component, a new addResize mode for the data table, widget API improvements, inline calendar validation issues have been fixed, a bunch of bug fixes, basically, and some new features. And the 5.0 branch—the 5.0.18 version of PrimeFaces Elite includes some keyboard accessibility improvements for the SelectBooleanButton, more screen reader support. It looks like some of the same features were back-ported so we can expect some of the same improvements, as well as a number of bug fixes.And according to PrimeFaces team, this marks the end of support for the 5.0.X branch of PrimeFaces Elite. 5.2 final is due next week so going forward, 5.0 will no longer be maintained, but 5.1 will be active until 5.3. So it looks like they’re maintaining one version and one previous version at the same time. So as 5.2 comes out, 5.0 stops being supported.So shifting from people who like to do UI on the server side to people who like to do UI in the browser, we have—I’m talking about development languages now—an AngularJS 2.0 news item built on TypeScript.So Angular, this is actually quite interesting. The AngularJS team announced that they’ve been partnering with Microsoft to develop…to enhance TypeScript. Basically the AngularJS team, which is a Google division, have been using their own superset of TypeScript called AtScript for a while. And what they’ve done is they’ve partnered with Microsoft to improve TypeScript to get some of those ideas into the TypeScript language.

So TypeScript 1.5 will show the first fruits of this collaboration and AngularJS 2.0 will be built on this new version of TypeScript. So it’s interesting to see collaboration between Google and Microsoft on anything, but in this case it’s good to see two big companies, with a lot of resources, putting their best R&D towards building state-of-the-art UI framework for clients and developers. So it’s pretty exciting news actually.

I’ve been using—on Kito’s advice actually, months ago—using TypeScript rather than working directly with JavaScript and doing Angular projects.   And that was some of the best advice I’ve got. It’s just like night and day, really, once you start using TypeScript for JavaScript development. It just makes so much more sense. You don’t have to give up all your years of hard earned object oriented programming experience, so I really enjoy that.

And TypeScript, the next news: TypeScript loves AngularJS 2, so just another blog post from the TypeScript team at Microsoft announcing the same news item.   That they’re working together with the Google Angular team to enhance the TypeScript language to better support Angular. So it’s some really cool developments coming from both Google and Microsoft on the Angular side.

Kito:

Yeah, I wanted to weigh in on this because I think it’s very fascinating too. There are a couple different things here. First of all, I’m actually very happy about some of the additions in ES6 or JavaScript 6. Actually that was my other talk at DevNexus, about what’s new in ES6. And so part of my desire is to really understand what are the new features in JavaScript and what’s the most you can get out of it.But the flip side is that the fact that Angular is looking to something like TypeScript, really validates the feeling that a lot of Java developers have, which is that large-scale JavaScript projects are a pain in the butt.

Ian:

Absolutely, absolutely.

Kito:

So I can imagine…I have no idea how large the Angular code base is, but I imagine it’s extremely large. And TypeScript gives you a lot of features that really help with the more complicated code bases.

Ian:

Yeah, exactly. Just the idea, absolutely, of TypeScript being able to create base classes and have a class hierarchy and have some inheritance between your controllers and doing basic things like that. And interfaces, for example, make it so much easier to use the language rather than just coding in JavaScript, which is a royal pain.

Kito:

The thing is, though, some of those things like the actual, more traditional class hierarchy support for that—that’s actually part of ES6.

Ian:

Oh, that’s great.

Kito:

And that’s what I like about TypeScript, is that it’s like a superset of ES6. So you’re still writing JavaScript you haven’t totally switched to something new.   So the class hierarchy stuff and some of the other things are ES6 features, but of course the type safety is not, right?

Ian:

Right, yes.

Kito:

Lots of other things in there, too, that are not in ES6. Just having a compiler do a step beforehand to keep you from shooting yourself in the foot is definitely a good thing.

Ian:

Yep, for sure.

Kito:

I’m excited to see this. And I’ve actually been meaning to look at more in AngularJS 2, just to get a better handle on where they’re going. Because I know they’re talking about doing stuff with the Web Components too, which is a big interest to me. So very cool stuff.

Ian:

For sure.

Daniel:

Definitely. AngularJS has grabbed a lot of mindshare in so little time.

Kito:

Yeah, it’s been pretty impressive, definitely.

Ian:

Cool. In other news the RichFaces team have released a new version of their framework, their UI library, which is RichFaces 4.5.3. This version includes a number of bug fixes, a couple of component upgrades, as well as third-party library upgrades and a few enhancements; particularly the Rich:chart component has some improvements and they’ve cleaned up their Maven POM file. So yeah, mostly a bug fix release from RichFaces 4.5.3 final.And a couple other items in the UI space: Facebook has recently open-sourced their React framework. I’m not sure if anyone’s heard of this or worked with this.

Kito:

I’ve heard of it. I haven’t worked with it though.

Daniel:

Yeah, I saw the news, but I don’t know the technical aspects.

Kito:

Pratik—one of the organizers of DevNexus—I think he was really into React.

Ian:

Oh, cool. Yeah, I know someone else who’s working on React lately, doing some prototyping and really enjoying it. According to the React project page, it says it’s a JavaScript library for building user interfaces, and it’s just the UI. So it’s the V in MVC, and React makes no assumptions about the rest of the technology stack, so it’s easy to try it out in any existing project.   So Facebook has open-sourced this as well as some other tools, including an IDE that they use for building, doing React development.And one last item in the UI news list today is something we’ve all been waiting for a long time, the announcement that Internet Explorer will one day cease to exist. That’s right, Internet Explorer 11 will most likely be the last version that Microsoft produces and supports.Basically they have forked the old Trident rendering engine and they’ve started doing new development on a new browser they’re calling, mysteriously, Project Spartan. Not too much has been revealed yet about this new browser, but it’s likely to be the successor to Internet Explorer. So Internet Explorer 11 will be basically fundamentally unchanged from Windows 8.1 onward and will become a legacy product alongside the new Project Spartan browsers.

Kito:

That’s cool. We talked about Spartan before, but I didn’t realize they’d officially announced the end of IE and that 11 was the last version. So that’s awesome. Unfortunately—I’ve been looking at Spartan and they haven’t announced some of the HTML5 specs that I want. But at the very least it’s supposed to be a non-sucky browser. So I’m looking forward to that.

Ian:

Right, we can only hope.

Kito:

We can only hope. All right, that’s cool. By the way, you can get the show notes at enterprisejavanews.com, and in the article that’s referenced for this story there’s a nice little graph of the browser wars. And you can see how IE has really gone down and down and down the last few years. It’s remarkable.

Ian:

Yeah, not soon enough.

Kito:

What’s also cool is to see Netscape go away. Remember Netscape?

Ian:

Yeah, I do.

Kito:

So those of you who are not old like us, there used to be this other browser called Netscape back in the day.

Ian:

Until it got bullied out of existence by Internet Explorer.

Kito:

Yep.

Ian:

Microsoft got embroiled in a three-year lawsuit with the U.S. Federal Government, over antitrust practices and monopoly and so on.

Kito:

Yep, yep.

Ian:

Oh, the glory days of the browser wars.

Kito:

Back in the day, back in the day. Let’s move on. Daniel are you still there? Did you say something?

Daniel:

Yeah, I was just thinking that Firefox was essentially the heir apparent to what Netscape was.

Kito:

Yeah, yeah, so for those younger people out there, that’s the story.

Daniel:

From Mosaic to Netscape to Firefox.

Kito:

Yes, and Firefox was totally awesome when it came out. It was as cool as Chrome was.

Daniel:

Yeah, it still is cool. My only problem is that it keeps switching me to the UK spelling dictionary and it’s always telling me my spelling of center is always wrong.

Kito:

That’s really weird. Yeah, I go on and off. Every few months I play with it again.

Daniel:

Yeah, and then the other thing is that we’ve had this US President for a while now, he’s on his last year and a half, and the dictionary still doesn’t recognize his name as a valid entry in the dictionary.

Kito:

Oh, that’s funny. Now we have some news in the persistence tier area. Hibernate Search 5.1 is out and for those who aren’t aware, Hibernate Search is basically a search engine based on Hibernate.It has some performance improvements, many usability improvements, bug fixes, multi-tenancy support, so this helps users who have been trying to use Hibernate Search combined with Hibernate ORM’s multi-tenancy features.   If you’re not aware, multi-tenancy basically means the ability to host multiple instances of an application or versions or views of an application for multiple clients. It has OSGi improvements and they dropped the optional serialization module based on plain standard Java serialization, which I think will not bother anybody. So that’s Hibernate Search 5.1.In related news: Hibernate Search 5.1.1 is out. And it’s just a quick patch release, but it’s fascinating because it’s actually a bug fix release with a patch supplied by someone from the community. So it’s a subtle bug in Null encoding two-way field bridge, whatever that is.   And this was a patch that was submitted by the community. And so it’s nice to see someone from the community step up, submit a patch, and then immediately create a new release. So very cool.And also, Hibernate JPQL is out and that is the JPA query language, right? .

Daniel:

Uh-huh.

Kito:

Thank you. I’ve been doing so much UI stuff now that I’m getting further and further away from the backend which is…

Daniel:

What is this data crap? [laughs]

Kito:

So Hibernate OGM 4.1.2 is a maintenance release that fixes several bugs around the JPQL implementation. It’s using Hibernate OGM and issues related to using Hibernate OGM in SaaS environments and mapping byte properties on CouchDB.   Also some clarification to the documentation as well, so that’s Hibernate OGM 4.1.2.

Daniel

Great. Apache Jena 2.13.0 has been released; it’s an open-source framework for building semantic web and linked data applications. A major release, 2.13, has been issued. It integrates Elaphas, which is a framework for working with RDF on Apache Hadoop. And Fuseki2, which has security and administration along with it and includes a OSGI bundle. So all those come together with Apache Jena. And again, this is version 2.13.0.Next item is Apache Camel 2.15.0 — that is another major release.   Apache Camel is an open-source integration framework based on enterprise integration patterns. It has concrete implementations of all of those widely used integration patterns. Connectivity to a great variety of transport APIs, and easy-to-use domain-specific languages to wire these enterprise integration patterns, then transports them together. So a major release, 2.15.0.

Kito:

All right, so let’s move on to services; services, middleware, micro-services, etc.. Spring Cloud 1.0 release is now available. And the description of Spring Cloud is that it provides tools for developers to quickly build some of the common patterns in distributed systems. This includes configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy control bus, one-time tokens, global locks, leadership election, distributed sessions, and cluster state.Wow. Coordination of distributed systems leads to boilerplate patterns in using Spring Cloud; developers can quickly stand up services and applications to implement those patterns. They work well in any distributed environment, including the developers own laptop, bare metal data centers, and managed platforms such as Cloud Foundry.So 1.0 includes a Config server with Git backend, the Config client’s refresh and encryption/decryption, common abstractions for load balance, service discovery, and circuit breaker, security integrations, declarative SSO and proxy authentication strategies, Eureka for service discovery, client and server, Eureka sidecar for non-JVM events, automatic reverse proxy using Zuul.   Spring configuration model for Zuul filters. Are you familiar with Zuul, Dano?

Daniel:

No, only from Ghostbusters… Remember that from the movie, it was Zuul?

Kito:

Yeah, right, he was the big bad, wasn’t he?

Daniel:

Zuul was, yeah, he was that main demon.

Kito:

Yeah, yeah, yeah.

Daniel:

That, and he possessed the woman and the nerd guy.

Kito:

Interesting. Well, there’s Spring configuration model for it now. There’s also the Spring configuration …

Ian:

Is there also one for the marshmallow man?

Kito:

I don’t see that. But there’s Spring configuration model for Ribbon load balancer. Feign declarative web service clients with Ribbon integration, RestTemplate integration with Ribbon, Hystrix for circuit breaker, Turbine for circuit breaker, aggregation pullover HTTP and push, AWS integration, and also the entire kitchen sink is in this product. So Spring Cloud 1.0.I have one bit of commentary. I’m not too familiar with this area, but one of the things that impresses me about Spring is it’s always coming out with new products to fit what people are actually doing. So I give them lots of credit. Probably in about ten years there will be a Java EE standard for this thing.

Daniel

Yeah, exactly.

Kito:

But this is very cool. So hats off.

Daniel

Oh, the gatekeeper, Dana, was Zuul. She says, “I am Zuul. I am the gatekeeper.”

Kito:

Oh, right, right. I remember.

Daniel

And Vince was the key master.

Kito:

Right, classic movie.

Daniel

That it is. I’m giggling now. All right, Spring Security 4.0.0 major release has just been released on March 26, 2015. Some interesting new items with this particular release is WebSocket support.   It is now possible to use Spring Security with Spring’s WebSockets. Spring data integration: it’s possible to refer to Spring Security’s user within Spring Data queries using SpEL, which is the Spring expression language.Test supports: Spring Security 4 has been added to the test support, now easier to write tests with Spring Security applications. I’m a big fan of testing so that gets a hooray from me. More secure by default, and it ensures Spring Security is more secure, minimizing information leakage and removing deprecated APIs. So again this is a major release, Spring Security 4.0.0

Kito:

Now that is a product I’m familiar with, I like Spring Security.   That’s my two-cents. I think it’s probably the best security framework out there as long as you’re willing to buy into the Spring world, I think it’s pretty cool.

Ian:

Yeah, and if you’re looking for other ideas of things to do in the Spring Security framework, there is another news item on the Spring website about building a single-page application with Spring Security and AngularJS.The abstract reads: Spring Security, Spring Boot, and AngularJS all have nice features for making it really easy to produce modern applications, so there’s potentially a lot of value in making them work together very smoothly. Things to consider are cookies, headers, native clients, various security vulnerabilities, and how modern browser technology can help us to avoid them. In this session, you’ll see how to use the different features of the component frameworks, integrate them together simply, and provide a pleasant and secure user experience. So that’s Spring Security with AngularJS on the Spring website.

Kito:

So Spring framework 4.1.6 is now out. This is basically a maintenance release of Spring 4.1.6. I am going to say exclusively a bug fix and, of course, they always recommend you upgrade. So even though we’re trying to focus more on major releases, it’s good to point out minor releases of major frameworks like Spring.They do point out, however, that Spring framework 4.2…they’re actually testing on early JDK9 builds, which is cool. So yeah, that’s nice to hear.Okay. Also, Spring Security Kerberos 1.0.0 RC1 is now out. And this, obviously, is a plugin into Spring Security to provide support for Kerberos. They did a lot of housekeeping to bring the whole project up to date. They updated the reference documentation and added a Kerberos REST template and they’ve re-written all of the samples. So it sounds like a good starting point for those who are looking at this. This is Spring Security Kerberos 1.0.0 RC1.All right, moving along, miscellaneous news: Dano, I gave you all these topics.

Daniel:

Oh, okay. By the way, I found out I have a new skill. During DevNexus the VGA cable didn’t work so without slides, I just went ahead and did a presentation for 20 minutes. Without breaking a sweat either, in front of hundreds of people just like, “eh, whatever. VGA doesn’t work. Let me just start talking.”

Kito:

Oh, that’s cool.

Daniel:

I got compliments afterward. They were like, “If that was me up there I’d probably crawl up in a ball and cry.”

Kito:

That would be hard if you didn’t know the material well.   Sometimes the first time I do a session, I would have crawled up into a ball too. After I’ve done it a while or if it’s something I’m doing every day, then I can handle it, but that’s impressive. That’s cool.

Daniel:

Right. So just to show you my ad hoc prowess I am going to talk to you about Java SE 7u75 and 76, which is now available. But you only have, let’s see I think you only have a few more days, around mid-April is when Oracle is going to be halting support on it, so time to move to Java 8, whether you like it or not. What’s that?

Kito:

I just said, wow.

Daniel:

Yeah, so Oracle is not going to have any more 7 releases; 7.5 and 7.6 are the latest releases. Let me just take a look at the release notes for Java SE 7. The version numbers are given for each update release and build number.   They’ve fixed a lot of bugs associated with that. You can take a look at the bug database behind it.And let’s see, some highlights with some new features and changes: SSLv3 was disabled by default, changes to the control panel, and in fact, it looks like everything about this latest release that is related to the fact that SSLv3 has been disabled [SSLv3 is considered obsolete, since it has a security vulnerability]. So those are the latest releases for Java 7. Again, you only have a few more days left and then it’s time to move on to Java 8 and start using functions whether you like it or not. All right, you had something?

Kito:

I was just going to say that I wish IntelliJ would support it because I actually just started using IntelliJ for a new client and I’m glad to use it because I’m sick of Eclipse. I think I had to go back to like JDK 6 or something to get it to run. It was ridiculous.

Daniel:

No, I’ve been using it for a while now.

Kito:

Maybe it’s just on the Mac. It might just be on the Mac, but yeah.

Daniel

Yeah, I don’t know. I mean we could talk about it afterwards and if I can show you a screencast of mine.   But I’ve been using it for a while because I’ve been—on my Test Driven Development presentations, I’ve been preaching the latest, my latest thing, is you can use fewer mocks if you use functions instead. And it changes the way you do a lot of testing.

Kito:

Yeah.

Daniel:

So I’ve been using it for a lot of presentations.

Kito:

Yeah, I can imagine.

Daniel:

Yeah, absolutely. All right.   Version 8u31 has also been released; just like the SE 7 update, SSLv3 has been disabled by default, including not only for the language itself but for the Java control panel as well.   And version 8u40…just when you thought there weren’t going to be any new updates, I think Kito put in our notes here that version 31 has been updated. And low and behold, just right when he did that, version 8u40 has been released. Dah-dah.   Okay, here it is. JRE will expire April 14, 2015.

Kito:

Did they just put that out now, as we’re talking?

Daniel:

Yeah, they just put that up right now.

Kito:

Breaking news!

Daniel:

Breaking news. Version 8u40: Java Packager tool enhancements.   Command-line arguments can be passed to self-contained applications. File associations can be set up when a self-contained application is installed so that the operating system automatically runs the application for registered file extensions or MIME types.User JVM Option Service API is available for altering JVM options in self-contained applications. And multiple entry points are supported for self-contained applications. They deprecated a few switches, check endorsed, and Ext Dirs.Multiple JRE launcher feature is deprecated, JJS tool differences are in effect, and a few heap settings have been done. And for all you JavaScript people, a new JDK Nashorn API scripting class filter interface enables you to restrict access to specified Java classes from Java scripts run by Nashorn script engine.

Kito:

Huh, that’s kind of cool.

Daniel:

Okay. And let me just pick and choose—there’s plenty of JavaFX enhancements and plenty of bug fixes as well. So just hot off the presses, hot off the stove, whatever you want to call it, Java 8u40 has been released.

Ian:

Cool. In other Java-related news, Oracle Java SE embedded version 8u33 has been released.   This version includes some new and changed features, and ABI Binaries no longer provided. It will still be supported, but there’s no Binary provided for the server VM. There are a bunch of ARM v5, v6, v7 related changes. Other changes include that, starting with the 8 update 33 release, Java SE embedded releases will no longer include power PC platforms.

Kito:

That makes sense.

Ian:

Both the 32-bit RPC platforms that were previously available are no longer offered. Additionally, starting with the 8 update 33 release SE embedded releases will no longer include JavaFX. So I guess JavaFX will not be available in an embedded mode. So, yeah, that’s the Oracle Java SE embedded 8 update 33.

Daniel:

So for the first time ever, a Clojure release. I’ve been wanting to mix things up by adding more Scala and Clojure and other goodness.   And of course on the JavaScript site we’ve been talking a lot about AngularJS and a lot of JavaScript libraries that we’re using as well. And we’ve been doing version control and other projects that affect our enterprise lives.So I’ve been trying to find Clojure releases and it’s always kind of hard to do.   I only have one: Metrics Clojure 250 has been released. It is a Clojure facade around Coda Hale’s metrics library, originally developed by Steve Losh, and that has been released. So again, I’d like to start talking about different libraries with Clojure. I think Clojure’s going to be a major player within the JVM, so be looking forward to some more release news when it comes to Clojure.

Kito:

Yeah, definitely. When it comes to any JVM language they’re all game; they’re all part of our ecosystem.

Daniel:

That’s right. That’s correct. One of my presentations was…I’m going to try to get people to learn all five major languages on the JVM, so that’s one of my new social manipulation goals.   I’m trying to get people to do Java 8, whether they like it or not. I’m trying to get people to use Groovy, I’m trying to get people to use Scala, Clojure, and JRuby. So those are the five languages I’m trying to get everyone to learn.

Kito:

Makes a lot of sense. I’ve actually been doing some front-end testing lately and it’s always a challenge because with web-based UIs, it’s just a pain in the butt. But the more you look around, you realize everything sort of points back to WebDriver, which is a Selenium WebDriver essentially.

Daniel:

Oh, right, right.

Kito:

But the Java API for WebDriver works fine. I used it. I got things done, but I wanted—in terms of getting people who don’t really write a lot of Java to work with it— I wanted a better API.   I was using Watir at first, so Ruby worked really great for that kind of stuff. But I had some issues with getting Watir to work with the native driver it had and everything. So I settled on something called Geb (pronounced J-E-B); have either of you guys heard of it?

Daniel:

Yes, it’s on Groovy, isn’t it?

Kito:

Yeah, it’s Groovy. Have you heard of it, Ian?

Ian:

Yes, just today, actually, while I was doing some research I came across that. Yeah, tell us more.

Kito:

Yeah, well I was pleased with it. It was cool. I had written a test because I’m trying to do some regression testing. I’m basically trying to reproduce a bug and then fix it and then verify that it’s fixed.   But I did a test in WebDriver and then I wrote another test in Geb and it was so much nicer. And what I loved was actually being able pass around closures, which you can do with Java 8 and the Java API for WebDriver. But we’re not using Java 8 so I didn’t really have access to closures for the Java version. But yeah, it’s real nice.

Daniel:

That brings up something interesting. So I know, Kito, that you work in a very large environment, and especially you work with WebSphere which tends to cost money—just by the mere act of upgrading from a major Java release to another one, it sometimes costs a lot of money. It’s a $50,000 ordeal at times. When are you going to migrate to 8?

Kito:

I have no idea. No one’s mentioned it at all and it’s not something I’ve been pushing because I’ve been pushing all these other things.

Daniel:

You’re not the only one. What you are stating is very typical where people are reluctantly not moving into 8, even though there are definitely more benefits to 8 than with 7. But most people are just trapped by their own licensing.

Kito:

Yeah, I think it’ll happen, but from an environment like this I’d say probably not for another…at least another year. It’s fairly fluid. I’m able to upgrade MyFaces releases—as long as we do basics testing—those are all minor releases, right. They don’t involve having to deal with WebSphere or anything like that. I don’t even know if WebSphere supports Java 8 yet. I haven’t really looked into it.

Daniel:

And then the other thing, too, is I did some presentations over…and I kind of saw this with DevNexus as well. I’m seeing still a large majority of Java programmers being reluctant about functions and higher-order functions and closures and things like that.   I think this is going to be a hard battle.

Kito:

I think it is, but I think it’s so—it’s going to be beneficial because there’s so many benefits to that. I know Bruce Tate was saying that he thought functional languages will be a norm in five years, I think that will probably be like ten years.

Daniel:

Yeah, I think so, but I would have agreed with him maybe a few months ago.   But knowing that I’ve been doing a lot of these functional talks, I see people’s faces filled with fear just like: I don’t get this, why do I need this? This is weird and confusing to me.

Kito:

Yeah, and even for me…I started out writing code when I was a kid and I wrote Pascal so it was fully procedural, right? And I knew to put stuff in modules or at least different files if I needed to. And then I learned different languages in college. I even learned some ML, but that was as close as I got. I loved SmallTalk though. SmallTalk was the one I liked the most in college.And so even for me, I understand a lot of the functional benefits, like I love being able to pass a function around, that’s one of the things I do like a lot about JavaScript. But if you told me tomorrow I had to not have any objects and just do everything functional it would be hard for me. So I think people are afraid that using functional constructs is going to erase all the stuff they know, that’s their basic fear.   It’s not necessarily true.

Daniel:

No. There’s always going to be an object-oriented language, you just have the ability now to plug in functions wherever you need to. And really it’s just an interface that you’re just passing.   There’s nothing mystical about it.

Kito:

Yeah, especially in Java, right?

Daniel:

Right, that’s right.

Kito:

I guess we should move on to events unless you had something else?

Daniel:

Wow, we actually had a discussion. We have ten minutes laid out for discussion and we didn’t have anything today. So we just had one.

Kito:

I actually I did that on purpose. Because I was like, what are we going to talk about and I was like, you know, I’ve been doing this testing stuff and I actually find it pretty interesting and went off on a tangent there.

Daniel:

Dah-dah! we had our discussion. And now future events. We have No Fluff Just Stuff, St. Louis, Missouri, April 10th or 11th. Reston, Virginia—I’ll be at that one—April 17th – 19th.   Columbus, Ohio—I’ll be at that one—May 1st – 3rd. Dallas, Texas—I’ll be there as well—May 29th – 31. I say that like people are looking forward to seeing me.

Kito:

Hey, if they listen to this newscast they might. They might be saying, “Hey, there’s that Dano guy.”

Daniel:

Holy crap, I get to see Dan, whoo. Salt Lake City, June 5th – 6th and finally for all you Gradle heads out there who love the Gradle build tool, there is a Gradle summit.   You get to see Hans Doctor, June 11th – 12th 2015.

Kito:

He’s a nice guy. I met him before Gradle started—actually when Gradle was just starting.

Daniel:

You know what, though? Yeah, I think I told you guys the story: when I first met him, he had no white hair whatsoever. He looked like a little kid, even though he was…I think he’s older than me or the same age as I am. He told me, “Oh, yeah, I’m making a build tool in Groovy.”   And I’m like, “Whatever. Good luck with that.” Here he comes out with Gradle and he’s full of white hair now. I know presidents get stressful because every time a president goes in with no white hair…

Kito:

Hey, I’ve got to give him props for creating a successful company out of a build tool.Ian, I gave you this next one if you didn’t see it.

Daniel:

Ian?

Kito:

Is Ian gone? Uh-oh.   I wondered why he was so quiet during the testing discussion.

Ian:

Hey guys, sorry about that. I got disconnected there.

Kito:

We thought you fell asleep.

Daniel:

Oh, okay. I thought you got bored with the other section. I’m always sticking around through the UI section without anything to say.

Ian:

No, no, I was paying attention, guys. I was very interested.

Daniel:

Clojure West, Portland, Oregon April 20th – 22nd. Everything you need to know about ClojureScript, macros, programming Clojure from the very beginning, a bunch of great talks, and that is going to be held at the Embassy Suites Portland in downtown Portland.DEVOXX UK 2015 will be held in London from June 17th – 19th 2015. I’m trying to see where this is located and I don’t know. So once you’re in London just take out a map or whatever and go find it.

Kito:

DEVOXX Poland is going to be in Krakow, Poland June 22nd – 24th. And this is cool because DEVOXX Poland is actually 33rd Degree, which I went to last year in Krakow. Krakow is a great city. And essentially DEVOXX is doing pretty well, so basically the folks that run 33rd Degree teamed up with the DEVOXX folks and now it’s rebranded at DEVOXX Poland. It’s at a new facility which holds more people. It’s another great Java, HTML5, all-things-related-to-Java conference.   So definitely if you’re in that part of the world you should check that out. So that’s on June 22nd – 24th.

Daniel:

Fantastic.

Kito:

OK, I think we’ve come to the end of another newscast. Woohoo!

Daniel:

All right.

Kito:

Remember if you want to check out the show notes visit enterprisejavanews.com, and you can also find us on iTunes. Feel free to give us a five-star rating on iTunes, or at least four stars, and let us know that you’re out there. We could use some more ratings on there because I think you need a certain amount to get your actual number of stars listed. I don’t know what amount that is, but it would be nice to get more of those. So if you listen through iTunes please drop us a rating. And we should hopefully see you in about a month or so.

Daniel:

Fantastic.

Ian:

Sounds good.

Kito:

All right, well, thank you very much for listening everybody.

Ian:

Thanks, everyone. Thanks, guys.

Kito:

Adios.

The post Java Enterprise Newscast – Oracle, PrimeFaces, and More appeared first on Voxxed.

Show more