JavaOne - Day 2 Coming@U

by Sue Spielman

Day 2 at JavaOne started with the introduction of J2CE – that’s Java 2 Comedian Edition. Not only do we have a new edition, but everyone at the keynote was J2CE certified by Don McMillan an engineer/comedian. Isn’t an engineer that’s a comedian an oxymoron? Comedians abounded though as everyone kept their sense of humor through a couple of demos that went awry. As Rich Green, VP of developer Platforms put it, ‘we’re turning up the developer volume’.

Let’s see what else is happening today.

First, after all of yesterday’s talk about Microsoft pulling Java from all Windows platforms, the industry answered back with an announcement from HP and Dell saying that they will ship the latest versions of Java with all PC and personal systems for Windows and Linux. While technically you’d be able to download it anyway onto your system, it’s one less thing to have to do.

Tim O’Reilly threw his weight behind the focus on the corporate developer, chiming in with his support of the scripting support in Java JSR-223, tools plug-in JSR-198, and (for which O’Reilly is managing the content and site). Add the to your bookmarks as it is now the daily newspaper for the java community.

Why should we pay attention to the scripting languages? Well if we’re going to hit the goal of 10 million Java developers, here’s why:

1) Lower the barrier and entry point for the corporate developers

2) Internet paradigm shift. If you go back to sites like Amazon or like Google and take the programmers out, those sites stop working.

As Tim said ‘PHP are the stokers feeding the fire. Without the stokers, the fire goes out.’. For more info check out the JSR at

There’s also more about Sun’s Project Rave, a developers platform focused on the corporate developer. Its purpose is to create a visual environment that can be used to quickly create solutions. And quickly it does. The demo to build a travel web services based app that can talk to corporate database was going smoothly. Using Project Rave, standard HTML components that can be created by any web editor were added along with.some JSF components, providing server side components for GUI layout.

Next database support was wired to the JSF components. Point and click for Java. Finally.

Next SQL was visually manipulated back into the visual editor and locate web services using UDDI and standard JAX-RPC. Add the web service and it shows up just as any other datasource. Cool…well, except for the HTTP 404 error that came up on the screen. Live demos are fun for everyone, except for the person actually doing them. After a database crash, application rebuild, Project Rave showed that it truly is possible to whip an app together, under pressure, in no time flat. Check out Rave at www.sun/software/projectrave and take a look at the EA that will be coming this fall.

Project Rave incorporates JSF. As promised yesterday, here are some more JSF details for you. JSF attempts to solve the problem of the web app UI. It’s a server side user interface component framework that fits into the ‘get the corporate developers on java’ mode.

One of the JSF requirements is to suck up the VB corporate/IT programmers into the Java platform. JSF can be used with (or without) JSP and HTML based clients and sits on top of JSP 1.2 (or higher) and Servlet 2.3 (or higher). It provides JSF tags to talk to JSP and APIs that can talk directly to a Servlet. Using a component model, there is a UIComponentBase class that comes with standard components for things like forms, hyperlinks, input fields, layout management and handling parameter lists. You basically wire the components to model beans. Value references are an extension of JSP 2.0/JSTL and strongly typed events and listeners are possible. There is also a set of standard converters provided for data transformations data as well as validators for checking input values (string lengths, ranges, etc). There is a default rendering model, providing HTML, which is a library of renders in a RenderKit.

You can also write your own plug-ins. The EA2 allows for a pluggable navigation model. The navigation model decides which component tree is currently being processed, what application action was invoked, and what the outcome returned by the Action is. All of this is configured in a faces-config.xml file. In the next EA, Managed bean creation will be introduced that allows for the server to look for, and create if required, beans. If all of this sounds very Struts-like to you, it’s because it should. The spec lead is Craig McClannahan, the same of Struts fame.

We also got a look at Project Relator. Simplicity for mobility is what Project Relator is about. Exposing the same backend used in the Project Rave demo to mobile devices using a J2ME connection wizard and then selecting and exposing web service. Get this, a one button click generated J2ME and J2EE code. This code was then exported to build the GUI to match the app use cases, drag, dropped, and populate with appropriate relationships (hence the name project Relator). This app then ran in both the emulator as well as on a PDA and mobile phone. Project Relator is in EA now. Check it out, I know I will. It looks to be very cool.

Speaking of mobility, I sat in the Security and Trusted Services API for J2ME which covers the new JSR-177. This has to do with how all of the security protocols will be supported and defines how permissions are used to protect access when applications are deployed on MIDP 2.0 devices and on the JavaSmart card. It includes support for formatted digital signatures and user credential management which includes creating certificates, signing , adding and deleting user credentials. This also provides an access control model that allows security element (SE) control over the usage of its resources, providing fine-grained access control. This should make it a lot easier for developers to write secure mobile apps without having to worry about the actual implementation details. This is a JSR to take a look at if you’re working (or thinking of working) in the mobile space.

See you back again tomorrow.