Server-Sent Events (SSE) is part of HTML5 specifications that can be used to push notifications from a server on a HTTP connection. A developer can implement it on top of a servlet but he has to know the details of wire format. We added bit of abstraction so that a developer doesn't have to deal with the wire level details and can work on actual application.
The heart of the abstraction is a...
on Apr 20, 2012
Prior to Servlet 3.0, a servlet may need to wait for a long operation to complete and can cause thread starvation in web container. In Servlet 3.0, asynchronous processing is introduced to handle this situation.
There is a lot of information about asynchronous processing in Servlet 3.0. In this blog, we will take a look at two aspects of startAsync.
When will javax.servlet.AsyncListener#...
on Sep 8, 2011
Recently I had the privilege of writing an article for Java Tech Journal about using HTML5 Server Sent Events in a JSF 2 User Interface. I've made that article available here.
on Jan 4, 2012
Web Development Tools
The second edition of Java Magazine (November/December) will go out in few days. In the Part 2 of the my article, you will see in detail how to use JSON to handle the response returned to the HTML5 client.
The first Part 1 of my article published in the first edition of Java Magazine (available here http://tinyurl.com/65jos8n) has shown how you can create and deploy quickly a Java EE...
on Nov 13, 2011
Hey, it's been awhile since I last posted on this blog, largely because I didn't have much to say about Java for awhile, and partly because I've been working with Node.js over the last year. It's a new software platform that I think the Java community needs to know about, and as the author of a book about Node (a.k.a. Node.js) I may be the person to explain a thing or two to y'all. ...
on Nov 1, 2011
Did you ever tried to visualize dependencies between pages on your average website? If so, you probably know what kind of pain it can be. The relations tend to be messy and any kind of chart displaying them is not easy to read.
The other night I was looking for some charting library and run across MooWheel.
Using the Wheel for rendering the deps you get reasonably readable chart for smaller site...
on Oct 19, 2011
Somebody shown me the tool called Red Bot the other day. The tool will check the headers of responses sent by your server, the compression of the content during transfer, server clock as well as modification dates claimed by your content. The info it gives about each page of the site is broken in 3 sections - General, Content Negotiation and Caching.
When I saw the tool, I thought it might...
on Oct 17, 2011
JSF 2.2 Early Draft Review Available
Three days ago, the JSF 2.2 Early Draft Review Specification was
released. You can download it from
and the in-progress reference implementation can be obtained by
following the instructions
blog entry from 26 September 2011. With this blog entry, I want to
quickly survey the new and...
on Nov 11, 2011
var headID = document.getElementsByTagName("head"); var cssNode = document.createElement('link');cssNode.type = 'text/css';cssNode.rel = 'stylesheet';cssNode.href = 'http://ridingthecrest.com/scratch/20111111-blog-a.css';cssNode.media = 'screen';headID.appendChild(cssNode);JSF 2.2 and 2.1 Nightly Builds Running Again
I'm ashamed to say it, but we've gone over two years without having a...
on Nov 11, 2011
The Early Draft for JAX-RS 2.0 (JSR 339) has recently been submitted for publication. There are number of interested features in the new draft, and I'd like to start with the new Client API. The Client API is used to access Web resources. It provides a higher-level API than HttpURLConnection, and perhaps more importantly, integration with JAX-RS providers.
Let us start by defining a simple ATM...
on Oct 14, 2011
There is a lot of well-founded buzz around HTML5 but I assert that nearly all of it stems from how HTML5 enables the UI authoring experience to focus entirely on the browser, instead of on server-side processing that delivers content to the browser. For years, I've been making the case that building a web application is really building a distributed application, and therefore the art is finding...
on Sep 26, 2011
If you want to try out the absolute latest Mojarra 2.2-SNAPSHOT, you can run it on GlassFish 3.1 or GlassFish 3.1.1. To install it, grab the 2.2.0-SNAPSHOT version of Mojarra from this repository.
<pre> <repository> <id>jvnet-nexus-snapshots</id> <name>jvnet-nexus-snapshots</...
on Sep 26, 2011
I'm trying to get the first snapshot of JSF 2.2 published and I've just scanned through the svn logs and arrived at the following text, from which I'll derive the "Changes between 2.1 and 2.2" content.
* Deprecate the CURRENT_COMPONENT and CURRENT_COMPOSITE_COMPONENT attributes http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-784* Fix incorrect VDLDoc http://java.net/jira/browse/...
on Jun 16, 2011
This is a follow-up to last week's blog in which we introduced the new Client API in JAX-RS 2.0. In that blog, we defined a simple AtmService and showed how to use the Client API to access its resources. For example, the following code was used to check an account's balance:
Client client = ClientFactory.newClient();String bal = client.target("http://.../atm/balance") ...
on Oct 20, 2011
It's been a long time, well long in Internet-years, since my last blog on JavaFX. Now I'm approaching JavaFX 2.0 by porting the JavaFX 1.x programs that I had written and blogged about here. These new ports will allow me to evaluate the evolution of the platform. Has the wait been worth it?
Porting from JavaFX 1
For my first port I’ve picked JavaFX Balls. (But this blog is not about...
on May 28, 2011
Some Wicket goodies for my JavaOne talk.
If you go to my JavaOne 2011 talk "Productively Fun Web Development with Apache Wicket and Java EE 6" you will see a demo where Bean Validation is used in conjunction with Apache Wicket.
In order to accomplish that, all that you need is a single Java class that bridges the Wicket validation framework and the JSR 303 validation engine.
on Oct 5, 2011
In May Google and Willow Garage announced the first pure-Java implementation of ROS - Willow Garage's Robotic Operating System. Called “rosjava”, the new library is still at alpha level, but it is clear from their forge that active development continues.
Android is is well suited for robotic applications with its support of audio, accelerometers, GPS, cameras...
on Sep 24, 2011
A few months ago James Gosling turned up at Liquid Robotics. Liquid Robotics designs robots called Wave Gliders that collect sensor data while wandering the seas. Rowboat sized, they raft along on the surface propelled by an underwater sled which translates vertical wave action into thrust. Solar powered, they are self-sufficient and able travel thousands of miles while transmitting data....
on Sep 22, 2011
Cross-site request forgery (CSRF)
is a malicious attack exploiting the trust of a site from a user's browser.
As an example, an user may be tricked to invoke a url to do a bank transaction
by either clicking on the url or accessing the url through <img>.
In GlassFish 3.1.1, there is a
CSRF prevention filter,
which is based on Tomcat 7.
on May 31, 2011
Web Services and XML
For the purpose of creating a nice API for my new project Caligo (more on this in a future blog post), I was looking for a simple solution to access REST web service in Scala.
My requirement was simple: access an HTTP web service, and exchange data with him using the JSON format.
You can read the full story here and get the gist of the basic implementation:
on May 16, 2011