J2EE

A few weeks ago, Ed Burns posted a link to a blog on the JSF expert group mailing list, commenting “A nice one, but it doesn't mention JSF 2”. Ever the curmudgeon, I pointed out that it wasn't so nice that the blog's sample code used the JSF API in beans when it wasn't necessary—as does in fact a lot of sample code, even in the official Sun tutorials. Ed's response: “Cay,...

As I happily wrote about new features of JSF 2.0, my coauthor David Geary kept asking me how to run the examples in Tomcat 6. I kept putting it off—hunting down all those JAR files and web.xml fragments is just too much like eating soup with a fork. I finally got around to doing the research and thought that others might benefit from the (unhappy) results, if only to realize that this may...

Databases

On last saturday I have run a few experimental benchmarks on the typical new generation technology stack (or part of it). What I exactly did was running iAnywhere 10.0.1 database and Sun Application Server 9 (aka "Glassfish" aka "Java EE 5 SDK") in a VMware Server 1.0.3 virtual machine on my private laptop (AMD Turion 64 X2, 2 GB RAM). The benchmark was done using a small test...

I used my free day to do some more performance benchmarking using EJB 3.0 and WebServices.
As I wrote in my last blog entry on this topic, I was astonished what performance is possible even in a VM on my cheat laptop. But now I invested some more time to tune my laptop (running JkDefrag gave its disk an amazing push) and do an optimization in the application itself: Using precompiled queries...

I did some experiments with JPA, which is a really cool and simple API for entity persistence. In fact, writing an entity bean is as simple as writing a pojo plus adding some single annotations like @Entity and @Id (to identify the PK fields). That's it. Cool. :-)
See this sample code:
@Entity public class MySample { @Id private int x; public int getX() { return this.x; } public...

JPA comes with a way of doing triggers, which is pretty cool: EntityListeners. It is a simple POJO that is annotated as EntityListener, and that gets linked to the triggering event by some outside glue. That outside glue can be an XML deployment descriptor (has nothing to do with the EJB 2.1 XML deployment descriptor; is nothing else but an override to the annotations found in the Java source...

One of the many cool new features in Java EE 6, is support for the DataSourceDefinition annotation.
The DataSourceDefinition annotation provides a way to define a DataSource and register it with JNDI. The annotation provided annotation elements for the commonly used DataSource properties. Additional standard and vendor specific properties may also be specified.
So let us look at an example:
@...

While speaking at the Globalcode Developer's
conference in Rio de Janeiro, I met a dynamic and intelligent
student by the name of Thiago
Diogo. Thiaogo presented his group's work on student project to
provide a real, mission critical distributed application for his
university, Universidade Federal
Fulminense. They chose JSF 1.2 and Seam as a part of their stack.
One idea Thiaogo shared with me...

Programming

Several APIs demand that the user is implementing the .hashCode() method. The reason is that these APIs are using hash based containers (like HashMap) to have a fast means of managing lots of objects (always comparing objects using .equals() would need endless time). There are lots of standard implementations on the web, so the question is, what performance impact the implemenation of .hashCode...

Java VM embodies
continuations now
(not in production, in a hacking mode :),
This post shows how to write a non-blocking server with continuations.
Why using continuation with non blocking IO
There are two models when you deals with IO:
the thread model: read and write calls block until they at least read one caracter or write the whole buffer,
so one use thread to be able to...

Security

After configuring Hudson to run in a Glassfish with security manager enabled I started to have problems in other applications, specially web applications using reflection to access private fields in Java classes. Over the web I noticed a lot of people struggling with the same issue (Seam, GWT, Vaadin, etc). The problem is caused because most of the modern frameworks tries to access Java...

Community

In November, Servlet 3.0
Specification Lead Rajiv Mordani, and I started providing technical
advice to the team at Sun developing the successor to the Sun
Certified Web Component (SCWD) certification exam. This new exam
covers Java EE 6, including JSF 2. All this week, the work will
continue in the form of an offsite workshop at the
mansion.
To help ensure the highest quality exam possible (and...

Over the past decade, OpenSource became a big hype. At the peak of the hype, big stakeholders like IBM, Oracle and Sun (and even Microsoft and SAP) turned a lot of their previously proprietary code into OpenSource. While they tell us that they do it because they are so noble and like to exploit the community's knowledge, typically the open sourced software is only for free in part or is still...

EJB

The long awaited and the most looked upon version of GlassFish released today. GlassFish v3 fully implements Java EE 6 specification which means EJB 3.1, Servlet 3, JAX-RS, JPA 2, Contexts and Dependency Injection for Java EE, Bean validation, Java EE profiles and so on.
GlassFish is not only the most up to date application server but it also benefits from a very good architecture. GlassFish...

NetBeans 6.8 released coordinated with GlassFish v3 today. NetBeans 6.8 can be considered a fine step ahead of NetBeans because Sun is officially supporting the NetBeans RCP platform as a product from now on.
NetBeans 6.8 features are as follow:
Java Enterprise Edition 6 support
Web Projects with JavaServer Faces 2.0 (Facelets)
JavaFX 1.2.1 support
Kenai.com: Connected Developer
Full support...

This is a very basic review of active and available open source Java EE Application servers and Servlet container (Web containers) to let the community know which active containers are available and what is the general status of each container. The article can simply act as a start point for anyone need to select one of them for later use in development or product. Detailed comparison of these...

Instant Messaging

CommunicationBean defined in SailFin CAFE act as the listener for any communication events. For example, in case of instant messaging between
two SIP clients, a CommunicationBean would intercept all the messages. These messages are available to the CommunicationBean implementation
as POJO. That also mean that, you can implement the business logic in the CommunicationBean.
This example...