As a Java EE developer, I sometimes envy how fast it’s possible to see the result of a code change in a running application with interpreted languages like PHP or JavaScript. With Java, it’s always necessary to rebuild the source code in a bytecode, which can be then safely updated only by restarting the whole application. And all developers know that restoring the desired state of the application after a fresh restart takes time and is tedious.

Many developers know that JRebel can help a lot with updating the code on the fly. There’s been a lot of effort put into it to support all sorts of code and resource changes and refresh them with virtually any Java framework used by the application. But the downside is that it’s pretty expensive for a casual developer, doing just some hacking on his/her own or working on a non-commercial project. I have some experience with JRebel and I liked it a lot, but I was using it on a commercial project where I didn’t pay for the license. A while ago I’ve come across an opensource alternative called HotswapAgent, which has worked very well for me for my personal Java EE projects. I’m going to write up how I got it running in my IDE and my Java EE server of choice – Payara Server. (more…)

Last week, Oracle announced their intentions to open Java EE and transfer it to an open source foundation to continue its development in a more open way. I’ve been involved in some email discussions (here and here) and in a conference call organized by Oracle and I want to summarize what I know and expect in the future. I’m also a MicroProfile project member, so I’ll comment on its relation and future benefits to Java EE. (more…)

As a public presenter, I always wonder what kind of presentation should I submit for tech conferences. Knowing what people want to hear about is always important to submit a good talk, and to give a good presentation once the talk is accepted by the conference. Here are some insights which I’ve collected from public feedback on conferences in 2016, and also a summary of my impressions and most common topics I’ve seen. (more…)

A singleton pattern is probably the simplest well-known design pattern, but still people often implement it incorrectly in Java. (more…)

Well, not yet…but they announced to shutdown java.net and kenai by May 2017. I have been interviewed about this for an ADTmag article The ‘Sunsetting’ of Kenai and java.net

As Oracle provided little information to what will happen to critical projects that are already hosted on java.net, most of what was written in the article is still valid. Therefore I’m reposting my comments here again.

(more…)

In June, I had a public presentation at a Java User Group in Prague. It was the first time I gave my new talk about building reactive applications with Java EE. And as a bonus, I wanted to introduce Payara project and how it relates to the GlassFish project. (more…)

In March, I’ve started working for Payara and I’ve definitely enjoyed it since then. It’s been very refreshing. I really love all the new experience, including

  • the startup-like company culture (have a look at the courageous company web site)
  • being part of the Payara open-source project and community
  • helping customers directly instead of programming in an IT department several layers below
  • writing technical blogs and cooperating with our innovative marketing department
  • being the face of the Payara project and evangelist in Java EE community
  • and all this working remotely from home

I could write several posts about all this new experience. Hopefully another time. But now, I will just share the blog posts and screen casts about Payara Server features that I’ve authored and co-authored. (more…)

Anton Smutný is a software engineering manager at Muehlbauer Group, an international industrial company specializing in wide array of technologies. At the technology center located in Nitra, Slovakia, they are building a new agile Java team to fulfil growing internal needs for innovation and automation. Their team approached me to guide them in adopting new features and best practices in Java EE 7 effectively.

Anton, what were the reasons for choosing Java and Java EE, which alternatives did you consider?

This was not a question of creativity or technology. We knew that we have to build up the thin web based applications. We also wanted to avoid the necessity to build native mobile apps besides usual desktop applications. Why? It was a luxury for us. (more…)

Recently I made a small shift in my career, exchanging series of jobs and projects as a Java developer for a job to support and promote a great open-source product – Payara server. I made a leap from a developer who just enjoys the quality of lots of open-source software, to become a voice and face of one such product, for the community on github as well as for customers willing to pay for the support. I love that I may become active part of the Java and Java EE community, actively participate in shaping it, present new ideas and possibilities, and last but not least, help to modernize, support and shape the future of GlassFish server extended by the Payara server project. (more…)

Java EE 7 is around for a few years already, and provides several very useful and long-awaited features, like entity graphs and better support for stored procedures and results mapping. For an overview, have a look at Thorben Janssen’s blog post. The query capabilities were also enhanced, with 3 additional keywords. All of them are available in both JPQL and Criteria API:

  • ON keyword to specify conditions for JOINs
  • FUNCTION to call arbitrary database function
  • TREAT to downcast entities to their specific type

In this post, I’ll focus on the first of them – the ON keyword in JOINs. (more…)

This site uses cookies to improve your experience. By using this site you agree to these cookies being set. More in our cookies policy

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close