Last week, I attended the global live launch of Java EE 7, a webcast I wrote about earlier, titled "Introducing Java EE 7." The live webcast happened twice (on at 17:00 GMT on June 12, and 12 hours later at 05:00 GMT on June 13), thus enabling every Java developer in the world to attend the live session at some point during non-sleeping hours.
The value of attending the live sessions was...
on Jun 19, 2013
Asynchronous operation was introduced in Servlet 3.0. ServletRequest#startAsync is used to put the request into asynchronous mode. A thread need to be created implicitly or explicitly (see here for an example).
Servlet 3.1, JSR 340 includes clarifications in asynchronous area. Besides Servlet 3,1, Concurreny Utilities for Java EE 1.0, JSR 236 is introduced in Java EE 7. JSR 236 provides a...
on Jun 6, 2013
Update: In Servlet 3.0, the behavior of using response is undefined after invoking #complete or #dispatch. In Servlet 3.1, it is clarified that AsyncContext#getResponse will throw IllegalStateException. The blog has been updated for this.
Asynchronous operation is supported in Servlet 3.0. I have discussed startAsync in my previous blog, startAsync in Servlet 3.0. In this blog, I will discuss...
on May 14, 2013
Update: Invoke WebConnection#close when there is an error.
Servlet 3.1 Specification (JSR 340) is almost ready for the release. One of the new features is the support for protocol upgrade.
HTTP protocol upgrade was introduced in HTTP 1.1 (RFC 2616):
The Upgrade general-header allows the client to specify what additional communication protocols it supports and would like to use if the server...
on May 7, 2013
Java User Groups
When we started building our first Java application, at my company Amway Corp, many years ago;
we learned our first lesson.
In spite of all the formal training we received, in spite of all the literature at our disposal;
we still needed help with our Java development on a regular basis.
Where would this assistance come from?
At the time, we had no in-house Java subject-matter experts.
on Jun 16, 2013
Using Throws and Throw Statements in Java
By Mala Gupta, author of OCP Java SE 7 Programmer II Certification Guide
In this article, based on chapter 1 of OCP Java SE 7 Programmer II Certification Guide, author Mala Gupta explains how to define methods that throw exceptions, the different combinations of defining overriding methods, and when the overridden or overriding methods...
on Jun 13, 2013
Learning Java (or any programming language) can be a great challenge.
Any group of developers, learning Java, will bring with them a variety of backgrounds and experiences.
In our case, our first Java project began with developers that had COBOL language experience.
Our second Java project, began with developers that had RPG language experience.
Even though COBOL and RPG don't "look" like Java,...
on Jun 11, 2013
Introducing Behavior Driven Development
By John Ferguson Smart, author of BDD in Action
Behavior Driven Development (BDD) is a software engineering practice designed to help teams build and deliver more valuable, higher quality software faster. In this article, based on chapter 1 of BDD in Action, author John Ferguson Smart explains how Backbone helps to solve this problem in a...
on Jun 10, 2013
by Samuel M. Breed, author of Backbone.js in Action
on Jun 6, 2013
Pig from a Bird's Eyeview
by M. Tim Jones, author of Pig in Action
Today, we are being inundated with data. So much so, that IBM estimates that in 2012, 2.5 quintillion bytes of information are generated every day. That's a million trillion bytes of data, more data than we can fathom and considerably more than we can easily process. Online, every web-page we visit, every link we click, every...
on May 20, 2013
The results of the most recently completed Java.net poll suggest that awareness of the Adopt-a-JSR effort within the Java developer community continues to increase, albeit at a perhaps modest pace. Still, growing awareness is a strong positive for any long-term effort. And the Adopt-a-JSR program is certainly intended as a long-term effort in promoting and guiding the future of Java.
on May 20, 2013
Your First Mikado Graph
by Ola Ellnestam and Daniel Brolund, authors of The Mikado Method
The Mikado Method is a structured way to make significant changes to complex code. What that means, is rather than getting caught up in the complexity of moving parts, analyzing the entire codebase and doing guess work, the Mikado Method removes the least amount of obstacles at a time in order to achieve...
on May 15, 2013
Frans Thamura is a leader of JUG Indonesia, a Java Champion, an entrepreneur, and the founder of Meruvian. He has implemented the JEDI program in Indonesia under the goverment's Java education services JENI Project.
In this fourth Java.net "Lightning Interview" I asked Frans about starting and leading a Java User Group.
1. Why did you decide to start JUG Indonesia?
on May 12, 2013
We thought we'd get to know a little more about the author!
I would say that a JS noob should use MVC, just because it’s widely spread pattern used across different programming languages. I think they would enjoy...
on Jun 14, 2013
Acteur is a pattern for pipelining work - a little DI functional goodness for Java. I might have been speaking Swahili when I wrote about Acteur last month. So here's a simple explanation of the design pattern behind it, with a simple sample project.
on Jun 5, 2013
Global Education and Learning
Test Driven Development (TDD) has become a cornerstone of modern software craftsmanship. Behaviour Driven Development (BDD) takes it to the next level; it provides easier to use and a more readable syntax as well as many other improvements. If you haven't used Test Driven Development before, start with BDD, you will reap the benefits much faster.
This book is a hands-on introduction on BDD. Using...
on Jun 12, 2013
Java 8 will introduce (or introduces it depends if you have already played with the betas or not) a new full featured feature, lambdas. Instead of explaining the syntax, the semantics, how it's integrated with java.util, yada yada.
Let's take an example and see how lambdas can be used by users and developers of APIs.
Let suppose I want to design a JUnit/TestNG replacement, basically these two...
on Jun 10, 2013
Java Web Services and XML
Following the development of Java EE 7 has required reading lots of different posts about the different JSRs that are part of Java EE 7. On Wednesday, June 12 (or Thursday, depending on where you live), you'll have an opportunity to familiarize yourself with Java EE 7 in one sitting, by attending Introducing Java EE 7, a live global interactive webcast that will happen twice: at 9 AM Pacific...
on May 31, 2013
There are a number of topics JSR 359 EG is working on. These are on a number of different categories. It includes improving the RFC coverage of SIP specification (SIP outbound), Modernizing programming (using POJOs), better alignment with Java EE (CDI, latest servlet spec), SIP over websockets, Extensibility, Better concurrency control, Updates to B2B etc. In this blog series, I am
on May 6, 2013