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 User Groups
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
Robert Engels works for OptionsCity, which develops financial service platforms using Java. Their products include Freeway, a multi-asset algorithmic trading platform that won the 2012 Chicago Innovation Awards. Robert is the Chief Architect for Freeway development. If you're familiar with modern automated trading, you'll also be quite aware of the necessity to achieve maximal performance....
on May 3, 2013
Ahmed Ali leads the very active Egyptian Java User Group (EGJUG). EGJUG recently organized Java Developers Conference 2013, the largest Java conference in the Middle East. The conference was, once again, a huge success.
In this second Java.net "Lightning Interview" I asked Ahmed the same questions I asked London Java Community (LJC) co-leader Martijn Verburg (@karianna) in the first Lightning...
on Apr 21, 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
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
Servlet 3.1 Specification (JSR 340) and Java Authorization Contract for Containers (JSR 115) MR3 are almost ready for release. Besides "*", the role-name "**" is introduced in the above two specifications.
In a nutshell, "*" means any role defined in web.xml and "**" means any authenticated user.
Prior to Servlet 3.1, web containers use proprietary mechanisms to add security-constraints for any...
on Apr 19, 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
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
By default, all connections to the Oracle Cloud are encrypted:
Browsers automatically import the necessary certificates, however, trying to access these services from a Java client, you will not be so successful. Take this Java Client:
import com.sun.jersey.api.client.Client;import com.sun.jersey.api.client.WebResource;import com.sun.jersey.api.client.config.ClientConfig;import com....
on May 2, 2013
In this blog entry I outline the steps necessary to deploy JAX-RS (JSR 311) RESTful web services to the Oracle Cloud. We'll be using Jersey, which is the reference implementation for JAX-RS, and JDeveloper, which is my primary Java IDE.
Step 1. Create a Jersey Library in JDeveloper
Download the latest version of jersey-bundle.jar, which at the time of this writing is version 1.17.1.
on Apr 30, 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