Java and Technology weblog
Java8 isn’t scheduled for for release until March 2014, but early release versions have been available for a while.
Some of the most interesting new features are:
- Functional interfaces
- Default methods
- Java Time
I started writing a blog post on what’s new in the upcoming Java8 release, and thought I would start by doing a quick look back at what Java7 brought to us.
Java7 was released back in July 2011, and was described as “more evolutionary than revolutionary”.
“There are some significant improvements, but no really earth-shattering or ground-breaking kinds of features.” – Oracle chief Java architect Mark Reinhold
It didn’t contain the much hyped lambda expressions for example. Still, it did bring a lot of other neat additions to the Java language. You can see the more at http://docs.oracle.com/javase/7/docs/, or read on for my summary.
I recently started trying out the early access version of Java8. When I tried using it with maven in IntelliJ however, I got the following error when I ran the maven install command:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project xyz:
Fatal error compiling: invalid target release: 1.8\
Although I saw some suggestions on stackoverflow here about hardcoded JAVA_HOME paths, the solution was just changing the maven specific version of Java that IntelliJ uses. This can be done via:
File > Settings > Project Settings > Maven > Runner
and selecting the 1.8 version of the JRE.
A while ago, I posted a simple HelloWorld Html->Servlet->JSP setup. Even though the html part is unnecessary (a JSP can obviously handle that alone), I deliberately included it as a template for Html/Servlet/JSP interaction. I have used it a bunch of times to get simple Proof of Concept projects up and running, or as a basis to create a simple browser interface to some server side process.
Most of the more recent projects I have used it on however have used straight JSP->Servlet, with no .html file involved. So I am now posting that setup, including some simple JSTL EL and conditional logic.
I am at the Silicon Valley Code Camp at the moment.
I will try to post some notes on the various talks I attend below…
- Session 2: Easing into Agile
- Session 3: Building Better Tests in Java
- Session 4: What is Python?
- Session 1: Basics of Threading
- Session 2: Introduction to Grails
The project I’m currently working on had a requirement for a workflow engine to manage the various process flow options for an order management system. For example, an order can be created, modified, submitted etc and we need to be able to persist and retrieve the process at any stage as we wait for human involvement to move to the next stage. I have been evaluating JBoss’s JBPM. It seems to meet our requirements but has been very difficult to get up and running. Overall it has been a frustrating process so far. The main JBoss JBPM site is at here and theServerSide has a good article on using it with Spring/Hibernate integration.
I have signed up for this code camp next weekend…
There are some interesting sessions on, amongst other things, Groovy, Grails, Java, Web Services, Testing, Agile development and more. And it’s all free and ran by volunteers…
I will post some feedback when the weekend is over.
My latest reading material is POJOs in Action – a good book about developing Enterprise Applications using Lightweight Frameworks such as Spring, Hibernate and JDO. It basically advocates an alternative approach to using heavyweight containers such as EJBs (although they seem have improved a lot since the release of EJB3).
I was also able to meet the author, Chris Richardson, after attending my first San Francisco Java User Group meeting.
So what exactly is Java Enterprise Edition?
Although I am a Sun Certified Enterprise Architect, and have worked with much of the J2EE family, I thought that with all the recent changes introduced in the latest version, JEE 5, it was worth writing a short article giving an overview of JEE to remind me of where it all stands.
Update: I just saw this posting on TheServerSide related to the upcoming JEE 6 release…
Just finished reading Effective Java by Joshua Bloch.
It is a great book that contains many nuggets of info, best practices and gotchas. Definitely the best Java book I have read in a while.
Next up, I have started on another book that Bloch contributed to: Java Concurrency in Practice.