javax.ws.rest
That's big news. A standard Java API is coming for building REST based web services. If you're an expert in REST, you can participate in it's development by signing up for the expert group. Apache, BEA, Google and Jerome Louvel (the RESTlet guy) are on-board. Here's the intro from the JSR:
JSR 311: Java (TM) API for RESTful Web Services: This API will enable developers to rapidly build Web applications in Java that are characteristic of the best designed parts of the Web. This JSR will develop an API for providing REST(Representational State Transfer - See reference to Roy Fielding's dissertation in section 3.1) support in the Java Platform. Lightweight, RESTful approaches are emerging as a popular alternative to SOAP-based technologies for deployment of services on the internet. Currently, building RESTful Web services using the Java Platform is significantly more complex than building SOAP-based services and requires using low-level APIs like Servlets or the dynamic JAX-WS APIs. Correct implementation requires a high level of HTTP knowledge on the developer's part.This JSR will aim to provide a high level easy-to use API for developers to write RESTful web services independent of the underlying technology and will allow these services to run on top of the Java EE or the Java SE platforms. The expert group will investigate whether a subset of the API can be made used with Java ME. The goal of this JSR is to provide an easy to use, declarative style of programming using annotations for developers to write REST ful Web Services and also enable low level access in cases where needed by the application.
RESTful Web Services is a relatively new area in the industry and there are still a lot of unknowns in this space. For example, a key aspect of RESTful Web Services is for the service to be stateless. However, this often requires the developer to produce boiler-plate state restoration code that could be avoided with state-aware API help. We expect the expert group to be an active and engaged group of people participating to prioritize and help drive issues to achieve the end goal of a developer friendly API.
Here are a couple more links about the new JSR:
- Elliote Rusty Harold is not exactly positive, saying "this is like asking Karl Rove and Dick Cheney to write the Democratic Party platform" but concludes with a call for participation: "are there any JSR members here who might join the working group and bring some sanity and actual REST experience to the development of the eventual specification?"
- Jerome Louvel explains the idea of REST annotations and explains that implementations will be possible with JAX-WS, Servlet API or Restlet API.
- Dan Diephouse says "This is excellent news - Iâm glad to see people are thinking more seriously about RESTful services on Java" and "Expert group members may be interested in checking out the previous work Iâve done on Java REST annotations"
- Brian McAllister: says the JSR sounds like another case where "reasonably good developers trying to design software for
presumed-incompetent developers which will in fact be used unhappily by
basically competent developers."
- Mark Hadley addresses some of the concerns raised above and provides an interesting code example showing the REST annotations in action.
- Pete Lacey: "Initial thoughts: 1) Cool! 2) The servlet API is not ideal, this is needed. 3) I hope they donât screw it up (see JAX-WS)."
- Steve Loughran: "I don't have the faintest clue what a REST API should look like, except that it must not look like JAX-RPC/JAX-WS"
- InfoQ thread: summary of news and three comments as of Thursday
- Paul Sandoz: "I have been wanting to work on such an API and implementation for about 5 years! [...] Now the Web zeitgeist is back and so are we :-)"
JRuby on the JavaPosse
Interested in the JRuby project? Then you should check out the JavaPosse podcast interview with JRuby developers Charles Nutter and Thomas Enebo. They cover project status, JRuby vs. CRuby, Ruby on Rails on the JVM and their new jobs at Sun.
Open source ghetto at JavaOne?
JavaOne 2007 call for papers closes today
There's still time to get those proposals in. I ended up submitting three proposals for technical sessions related to RSS/Atom and one for a Roller birds-of-a-feather (BOF) session.
Here's the link to submit proposals: http://www.cplan.com/sun/javaone07/cfp.
Join the blogs.sun.com team
If you dig blogs, wikis, feeds, Java and Solaris then you might be interested in the fact that we're hiring. Linda Skrocki's got the scoop on the job opening in Sun's Community Software Engineering team.
JavaOne 2007 call for papers ends Friday
The 2007 JavaOne Conference is May 8th-May 11th and this is the perfect forum to share your technology expertise at Sun's Worldwide Developer Conference. This year, the conference is being expanded so that while Java is at the core, with a significant emphasis on Java ME, SE and EE, there will be ample opportunity to present your technology or ideas in such areas as open source & community development (which includes Java, OpenSolaris, OpenOffice and others), next generation web or "web 2.0" technologies, web services and platform integration, consumer technologies and how to leverage Java and other technologies for businesses (including start-ups).I've got a trio of proposals just about ready to go. Hopefully, at least one will be accepted and I'll be attending my 4th JavaOne next year and my 3rd one as a speaker.
So if you have a hot topic, specific tips or tricks that you believe will help developers, then please go to http://www.cplan.com/sun/javaone07/cfp and submit your session abstract.
Java SE 6 too
ROME 0.9 (beta) is available
Apache Abdera 0.2.0 (incubating) released
Abdera is an open source Atom parser, generator, client and server tool-kit for Java. James Snell announced a new version of Apache Abdera (incubating) the other day and the feature list is impressive, especially for a "0.2.0" release. Here's an excerpt:
The goal of the Apache Abdera project is to build a functionally-complete, high-performance implementation of the IETF Atom Syndication Format (RFC 4287) and Atom Publishing Protocol (in-progress) specifications. [... incubator blah blah blah ...]We might have to steal that IRI support for ROME. Actually, that's something that should be built right into the Java platform. Apparently IRI support was considered for Java SE 6 and something was implemented, but then rolled back.
- A reworked API that improves usability
- Decoupled extensions from the underlying parser implementation
- An Atom Publishing Protocol client implementation
- Updated support for the current Atom Publishing Protocol draft specification
- Added support for Internationalized Resource Identifiers (IRIs)
- Improved Thread Safety
- Fixed a number of Classloader issues that kept Abdera from working properly in application server environments.
- Improved Javadocs
- Added test cases and sample code
- Added experimental Bidirectional Text support
- Improved implementation of OpenSearch v1.0 and v1.1 extensions
- Implementation of MediaRSS extensions
- Implementation of Feed Paging and Archiving extensions
- GoogleLogin Authentication Support
Visual Web Pack is NOT for you if...
Roumen: Visual tools for web development are a double-edged sword. They have their advantages and disadvantages. Some users love Visual Web Pack for what it provides but some of them go crazy because by using visual tools they lose a bit of control or they don't fit their development environment. So I'd like to discuss this topic, so that you can decide whether Visual Web Pack is for you or it is not.
A very thoughtful and balanced post from Netbeans evangelist Roumen Strobl that examines some of the reasons you might or might not want to use the new Netbeans Visual Web Pack.
ROME v0.9 (beta) coming soon
In case you missed the mention in my Latest Links post yesterday, there's a new release of ROME coming out in the very near future. The last release was v0.8 and was made in February 2006. Since then then ROME team has made numerous small fixes and a couple of design changes, which I'll cover in a later email. I proposed the release, so I get the honor of acting as release manager.
Java Hotspot talk at the TriJUG tonight
I'm a bit late in blogging this. Tonight's talk at the TriJUG looks to be a very good one, presented by Sun blogger and JVM guru Steve Goldman who works from Sun's Cary, NC office.
New Compiler Optimizations in the Java HotSpot(tm) virtual machine.
Presented by Steve GoldmanThis talk covers recent work in the client and server compilers for the Java HotSpot(tm) virtual machine to achieve higher performance of Java(tm) programming language applications. Synchronization-related optimizations, escape analysis, multi-tier compilation, and other topics will be covered. This talk is targeted at users of the Java(tm) programming language interested in how their programs are dynamically compiled to high-performance machine code and what performance improvements to expect in various areas in the Java(tm) SE 6 release.
ROME progress
The ROME mailing list has been a little quiet lately. I'm hoping to change that. Roller's built-in planet aggregator uses ROME, Roller's Atom protocol implementation does too and I recommended ROME in my book, so I'd really like to see ROME continue to improve and grow. Now that I'm focusing on a standalone version of Roller-Planet, I've got some time to devote to those goals. Last week I cleared the bug list, this week I committed some improvements to ROME's summary/content handling and next I'd like to start pushing for a ROME 1.0 release. If you'd like to see ROME thrive, please join the fun.
Blogapps 2 progress
In my off-hours, I've started work on Blogapps 2. Blogapps is a collection of RSS/Atom utilities and applications based on the code from RSS and Atom in Action. You can read more about the project in my recent Blogapps article on on Java.net. Up until now, I've been working alone, but now the project now has a couple of committers. Ramesh Mandava (of the Java WSDP team) joined to help with the Blogapps 2 effort.
We're starting with some renaming. Instead of using chapters-oriented directories and package names, we're more logical and intuitive application names. We're also switching from package name com.manning.blogapps to org.blogapps. Later, I hope to update some dependencies (e.g. Apache XML-RPC 3.0), consolidate/streamline some of the utilities and explore alternatives to Tomcat/HSQLDB for the Blogapps server.
Java is free!
By now, everybody's heard the good news that Java[1] is being released under the General Public License (GPL v2), the same free software license used by Linux. A dual-license arrangement will allow Sun to continue to offer commercial licenses. Sun's Java EE implementation and developer tools, which had already been released as open source under Sun's MPL-based CDDL license are being relicensed under a triple license of GPL, CDDL and commercial licenses.
The usual "how's this good for Joe Java developer?" and "how's Sun gonna survive?" questions are coming up on the forums and blogs. The Open Source Java FAQ answers those questions very well, but here's my take. A truly free/open source Java is good for Java developers and what's good for Java developers is good for Sun. GPL is a good choice because it's truly and undeniably free/open source and the viral nature of GPL drives innovation back to the center, which prevents closed source forks of Sun's Java implementations.
So, how's this good for Java developers? Finally, Linux distros can bundle what is arguably most popular/well known, high-quality, high-performance, multi-platform and well-supported Virtual Machine there is. And that's not just good for Java developers, JRuby is starting to look pretty good too. That will result in more developers choosing the Java VM, more ISP/hosting providers supporting Java and more users using Java. That's good for Java developers. And and it's good for Sun -- if Sun, the ultimate experts in Java, can't make mo'money from mo'Java then I just don't know what to say.
Why is GPL a good choice? GPL and dual-licensing gives Sun the best of both worlds. GPL means Java is truly free/open source, which satisfies the free/open source community and the growing number of governments and orgs that are mandating open source. The viral nature of GPL guarantees that innovation is driven back to the center, i.e. you can modify the Java VM and redistribute it, but you must release your mods free for all under the GPL (and trademark law says you can't call it Java). And the other world I referred to? Licensees who don't want GPL can keep on licensing under commercial-friendly terms and most probably will.
So it's all good and big congratulations to all the folks who worked to make open source Java possible!
[1] By which I mean Java(TM) technology and include Java SE, ME, EE, etc.
Pundit's Monitor
Netbeans 5.5 themed Roller blog
History of Struts 2 post at OnJava.com
Don Brown has written an interesting history of Struts 2. In case you don't already know, Struts 2 is the result of the merger of two competing open source communities: Apache Struts and OpenSymphony WebWork.
Apache Derby 10.2
The announcement is not up on the Derby site yet, but I got the word from Rebecca Hansen (of the Java DB team) that Derby 10.2 (actually, it's 10.2.1.6) was released last week. I downloaded it and it seems to work fine with Roller. BTW, I've using Derby instead of MySQL for development work on my Mac now because it is so easy to deal with.
Struts Action 2.0.0
Roller's web UI is based on Struts 1.2, so you'd think Struts 2 would be the obvious upgrade path. But Struts 2.0 is really not an upgrade of Struts 1, its a whole new thing. In case you don't know, the Struts team took an entire different, and some say much better, framework called Webwork and rebranded it as Struts 2. So you can't really migrate a Struts 1 app to Struts 2; instead you're basically porting your app to an entirely different framework -- potentially a giant amount of work. We need to think carefully about what to do with the Roller UI.
« Previous page | Main | Next page »