At the JavaOne 2013 Java Technical Keynote, there was a series of demos of software that enables two people to play chess, using some of Java's latest features, including Java EE 7 Websockets, many variations of Java 8 (recent weekly builds), Lambda Expressions, Java ME, Embedded Java, ... It was an impressive demo of many of Java's recently-released and not-yet-finally-released capabilities,...
on Sep 23, 2013
Java User Groups
Looking Forward to JavaOne Sunday: JUG Forums, NetBeans Day, GlassFish, Technical Keynotes, Duke's Choice Awards
It used to be that Sunday was a fairly relaxing day for most. Not anymore! This year, Sunday is already overcrowded with many more events and sessions than one can possibly attend, as the JavaOne 2013 Content Catalog Sunday entries demonstrate.
Sunday's activity can be divided into...
on Sep 22, 2013
Toward the end of JavaOne 2012, the Java.net editorial team spent an hour or so in the very windy Taylor Street Cafe (a closed street block with umbrellas, tables and chairs, coffee, etc.) with Oracle Ace Director Markus Eisele (@myfear). Markus is a technology consultant, architect, developer, author, and conference speaker. He's also active in communities including Java User Groups, the JBoss...
on Jan 7, 2013
Java Web Services and XML
Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface. JAX-RS provides a standardized API for building RESTful web services in Java. This example will show how to...
on Sep 16, 2013
javax.servlet.http.HttpSession provides a way to identify an user across multiple HTTP requests and to store user specified information. In other words, it provides a support of stateful communications with the stateless HTTP protocol.
For security and memory management, sessions need to be invalidated at a certain time. There are two related methods in HttpSession.
on Aug 29, 2013
Java API for WebSocket is a new JSR to Java EE 7. It provides a stardard Java API for creating WebSocket applications. This gives web applications the ability to push data.
In Java EE 6 samples, we added a chat room sample to illustrate how to use of Servlet 3.0 asynchronous operation. In that sample, the servlet code did the following:
keep track of AsyncContext in a Queue
create a thread to...
on Aug 13, 2013
JSR 356: Java API for WebSocket provides a standard Java API for creating WebSocket Applications. The specification provides an API for...
on Aug 7, 2013
Expression Language (EL) was first introduced as part of JSTL 1.0, was then moved JSP 2.0 and was unified with JSF 1.2 in JSP 2.1. In Java EE 7, EL is a new separate JSR, JSR 341. Many new features are introduced in EL 3.0.
This blog shows how to use new following new features of EL 3.0:
Lambda expression (section 1.20 of EL 3.0 spec)
The new operator ; to separate...
on Jul 1, 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
Servlet 3.1 Specification (JSR 340) is almost ready for the release. Several new security features have been added in this version of Servlet specification.
In this blog, I will explain one of the security features, namely deny-uncovered-http-methods.
Let us take a look at a simple security-constraint in web.xml as follows:
<web-app xmlns="http://www.w3.org/2001/XMLSchema" ...
on Apr 19, 2013
Update: One should not use response in AsyncListener#onComplete. Only print debug in this example.
Servlet 3.1 (JSR 340) is almost ready for the release. One of the new features is the support for non-blocking IO. ReadListener and WriteListener are introduced to allow non-blocking processing in Servlet.
Non-blocking IO can only be used in async (defined in Servlet 3.0) or the upgrade mode. We can...
on Apr 16, 2013
Servlet 3.1 is in Public Review now.
New features in Servlet 3.1 and changes since the EDR are listed below:
support Non Blocking IO ReadListener, WriteListener are added to handle the non-blocking IO. And the corresponding setters are added to ServletInputStream and ServletOutputStream respectively. Futhermore, ServletInputStream#isFinished, #isReady and ServletOutputStream#isReady are added....
on Jan 11, 2013
Last week, JFrog's online software binaries repository Bintray was made available to the public. What's Bintray? JFrog's announcement calls it "the first social platform for developers to publish, download, store, promote, and share software libraries (binaries) across a unified community." One way of looking at Bintray is that it's a "GitHub for binaries."
Bintray already has some major...
on Apr 1, 2013
If you have wanted JSF not to store any state now is your chance to try out the stateless mode of JSF.
It is as easy as doing the following:
<f:view transient="true"> Your regular content</f:view>
And voila you are running stateless.
If you decide you do want some state to be kept at the server you can use the @xxxScoped annotations on your beans
Be aware that...
on Feb 8, 2013
GlassFish comes preconfigured with Apache Felix Gogo, which is an implementation of OSGi RFC 147, and is a proposed standard shell for OSGi environments.
For Glassfish 4.0 there is no longer need to open a separate port to access the shell. The OSGi shell commands are integrated with asadmin, so you can now access the OSGi shell
commands via asadmin tool.
There is a remote command called...
on Nov 20, 2012
Servlet 3.1 was in Public Review in Janurary 2013. And it is in Proposed Final Draft now. Most of the new features are related to security.
In this following, I will highlight features since Servlet 3.1 Public Review:
add new API javax.servlet.http.Part#getSubmittedFileName
add new API javax.servlet.ServletContext#getVirtualServerNameThis API allows a JASPIC module to be registered in a Servlet...
on Mar 18, 2013
I am glad our team and me ofcourse, part of the Support mySchool project in WorldBank for Indonesia's Ministery of Education and Culture (MoEC), the URL is http://bantusekolahku.kemdikbud.go.id
The first social media that linked with all the role in our govermental (from ministery directorate, province's education structure, district's educatio structure and schools structure). The public...
on Dec 13, 2012