Last week I attended the JavaOne conference for the first time with IDR Solutions. It was a brilliant way to learn from the experts and find out what is new in the world of Java. In this article I will talk about just some of the things I learned at the conference, and the talks I found particularly informative. There is always more to learn about the things you think you already know, and attending talks about the tools we use at work, given by experts in those areas, were really useful.
Maven: Taming the Beast – Roberto Cortez
Maven is complex, verbose, difficult to learn, slow and unreliable. However it continues to grow in popularity. Roberto Cortez discussed this strange phenomenon and talked about the common problems people have. He gave some good advice on building projects, which included:
- Specifying versions
- Avoiding use of snapshots
- Using global properties
- Using modules
- Speeding up your builds by building only what you need, skipping tests and doing an offline build
Jenkins 2.0 – Kohsuke Kawaguchi
Kohsuke Kawaguchi spoke about Jenkins 2.0. This is reportedly a more secure update. He detailed the better visualisation of pipelines and the introduction of Blue Ocean, a user interface which is currently in the development stage but is already available as a plugin.
Java Mobile and Embedded Development with Gluon and NetBeans, – Johan Vos and Jose Perada
Jose Perada and Johan Vos did a nice demonstration of a NetBeans plugin by Gluon which allows you to create a mobile application which can run on either Android or an iPhone.
Java 9 and Jigsaw: Simple and Easy – Sven Reimers and Jens Deters
Sven Reimers and Jens Deters demonstrated the use of the Jigsaw module system on an application in NetBeans. There was a good background introduction about modules and a demonstration of how to see a graphic view of our dependencies. FontAwesomeFX 9 was used for demonstration purposes. There was also a demonstration of JShell from NetBeans. This was shown to be a useful way to demonstrate code to people learning for the first time.
Refactoring to Java 8 – Trisha Gee
Trisha Gee gave advice about refactoring to Java 8. My key takeaways were:
- Sometimes Java 8 code can improve the performance of your application, and sometimes it doesn’t. For example replacing for loops with forEach loops and lambda expressions doesn’t make much of a difference
- Refactoring can declutter the code and make it more readable. But mixing use of new features and old code can make it less readable
- IDEs normally have good tools for automatic refactoring. Some changes should not be applied to your whole code base. For example optionals can be a good replacement for methods that intentionally return null but shouldn’t be applied everywhere
Project Jigsaw: Under The Hood – Alex Buckley
Lots of the talks at the conference looked forwards to Java 9. In the keynote we learned about how Java is becoming modular with the introduction of Project Jigsaw. There are 85 new features being introduced in the release, which has been delayed. Alex Buckley’s talk went into more detail on Project Jigsaw, including changes to accessibility (‘public’ types are no longer ‘accessible’). The jdeps command was repeatedly mentioned in the Java 9 talks as a recommended way of checking for usages of JDK-internal APIs when upgrading code to Java 9.
These are just a handful of the talks I attended at my first JavaOne conference. There were many other great talks, but these stood out to me as being both useful for our work or of particular personal interest.
IDRsolutions develop a Java PDF library, a PDF forms to HTML5 converter, a PDF to HTML5 or SVG converter and a Java Image Library that doubles as an ImageIO replacement. On the blog our team post about anything interesting they learn about.