The Spring Web Flow 1.0.3 has been released. This is a bugfix release addressing four issues in the Java Server Faces (JSF) and Portlet integration reported against the 1.0.2 release. Work on Spring Web Flow 1.1 has begun with the first milestone release scheduled for JavaOne. Spring Web Flow is a next generation Java web application controller framework. The framework provides a powerful system for implementing navigation logic and managing application state consistently across a variety of environments.
Spring Web Flow(SWF)
Integrating Struts With Spring
Restlet is a lightweight REST framework for Java. It helps you build Web applications that blur the lines between Web sites and Web services by embracing REST, the architectural style of the Web. As every major REST concept has a corresponding Java class, the mental mapping between your RESTful Web design and your code is straightforward.
EJB 3.0 Articles
Integrating Struts With Spring
Xfire vs. Axis2, Hibernate vs. iBatis, Spring vs. Plexus, Ant vs. Maven….. as James Turner blogs in The Virtues of Monoculture, this abundance of choice is both our strong point and our achilles heel. He writes:
We celebrate the diversity of choices available to solve a problem and call it freedom. IT managers and CIOs look at it and call it chaos, confusion and uncertainty.
Part of the problem is that we look at a collection of projects like Sourceforge, ASF, Codehaus, Tigris, JBoss, Java.net, and about a million other open source communities, and there is no central directory to compare project adoption or rate these components. To the uninitiated middle manager, open source is “chaos, confusion and uncertainty”. If you are not familiar with the personalities and the communities, how do you sift through the noise without joining a million development mailing lists?
Ohloh.net: Bringing Order to this Free-for-all
I’ve been using this service for a few days, and IMO it is part of the solution to this problem. If we all agreed to start using it right now, and to vote for the software that is currently in our stack, we’re going to provide adoption numbers. If we encourage ongoing ohloh usage, we’ll be able to see emerging trends and shifts. I encourage you to sign up….
Not everyone has enough time to figure out the difference between Hibernate and iBatis. Not everyone has the time to sift through the marketing, hype, blogs that surround every corporate sponsored open source project in Javaland. Not everyone adopting open source wants to “participate”, or ever wants to be told to “look at the source” on a mailing list. Not every adopting open source is a “developer” capable of understanding the source code. So, we need some tool for people interested in comparing relative adoption and reading reviews. We need a tool that a working developer can use to distill the rocket science into real community data. I think that ohloh.net can provide this insight, but only if we start to use it.
Now, Stack These:
What if you held a book signing and nobody came?
Red Hat and Exadel Partner to Bring Rich Developer Tools to Red Hat’s JBoss Platform
Red Hat the world’s leading provider of open source solutions, and Exadel, the leader in providing rich application components for creating a new generation of enterprise solutions, announced a strategic partnership that will add mature, Eclipse-based developer tools for building service-oriented architecture (SOA) and rich, Web 2.0 applications to Red Hat’s integrated platform, including Red Hat Enterprise Linux and JBoss Enterprise Middleware. This move marks the first time that a high caliber set of Eclipse-based developer tools will be available in open source. Marcelo Giorgi explains how to build JSF application using exadel here.
Building JSF application with Exadel.
Integrating Struts With Spring
ACEGI Now Has OpenID Support
On the ACEGI developer list this morning, Ray Krueger announces OpenID support in ACEGI thanks to the efforts of Robin Bramley. If you don’t know what OpenID is yet, learn more about it over at http://openid.net. Also, some analysis of OpenID from Tim Bray (from Feb).
Wicket Status and Roadmap
Martijn Dashorst just created a Wicket Roadmap that shows the plans for the release of Wicket 1.3.0 and beyond. In case you haven’t been following the development of Wicket, it appears that Wicket 2.0’s constructor change has been voted down. It appears that Wicket team decided to take less of revolutionary approach and more of an evolutionary approach to the next release. For more explanation of the now abandoned constructor change, read this blog entry.
Via this An excerpt from today’s LinuxPlanet article…you no longer need to jump through hoops to get up and running with Java on the desktop. It is available in Ubuntu Feisty Fawn (7.04) multiverse repository.
Where do I get started?
Download, install Ubuntu from the Ubuntu site. Here’s a link to the Unofficial Ubuntu 7.04 (Feisty Fawn) Starter Guide. Make sure you uncomment the multiverse lines in /etc/apt/sources.list. Then this *should* work:
sudo aptitude install sun-java6-jdk sun-java6-javadb glassfish netbeans5.5
Finally…a real JDK on Linux :-)
This is much more than just another marketing release from Canonical and Sun, making Java a part of the distribution means that you’ll see more people adopting and moving towards Java in the future for other application.
Also, it is going to mean that more and more Java open source projects are going to have to start thinking about real packaging issues. I would like to be able to just say “apt-get install continuum” on an Ubuntu box (or “yum install continuum” on Fedora), because what I’m doing right now is getting as far as the distro can take me and then writing 10 page playbook recipes for sysadmins who don’t know anything about Java. Getting Sun’s JDK in the distro is the bridge we’ve needed for years.
Steve Loughran’s Ant in Action is an upcoming book to pay attention to. Why? I don’t have numbers, but i wouldn’t be surprised if a majority of Java programmers still use Ant every single day. Steve blogged about the upcoming book 4 days ago, but a few things caught my attention:
- “Libraries are managed with Ivy 1.4.1. Pulling down artifacts, sharing across projects.”
- “I’ve chosen Luntbuild over CruiseControl for the continous integration server. CruiseControl is a very high-touch tool, and it doesn’t let me chain work across projects the way Luntbuild, Bamboo and the like can do.”
- “Deployment with SmartFrog. We look at how to do do a complete deployment of database, app server and applications, with JDBC driver installation and all the other details needed to bring up a full functional application server.”
- “imports, macros, and presets”
New Stuff: Some links
- Luntbuild - automates builds, used to achieve continuous integration. an alternative to CruiseControl and Continuum. There is a free version, but there is also a professional version.
- SmartFrog - A project from Hewlett Packard Labs in Bristol, UK. configuration, distribution, and ignition (see below)
- Ivy (now in the Apache Incubator) - Ivy is a “dependency manager”. It will bring something like Maven’s dependency management to an Ant build (but it also isn’t Ant specific). you define your There is also an Ivy Repository which contains Ivy XML files that describe a software artifact and its dependencies (example Commons HttpClient 3.0)
Sun’s initial response to the Open Letter from Apache. Here is an excerpt:
- Sun is working with as many communities as possible to create an open source implementation of the Java platform under GPL v2 that mainstream open source communities can work with - this includes TCKs.
- Java technology has many stakeholders, and we recognize that we will not be able to please everyone as we move through this process. In some cases, we’ll have to agree to disagree on some points.
- Our current priority is to make the Java platform accessible to the GNU/Linux community as quickly as possible.
- As you’ll note from Apache’s letter, this is a dispute over specific terms, not over Sun providing a TCK.
- We know that the open source process is a journey and we will continue to work with the open source communities and the licensees to determine how Java technology evolves.
A few quick observations that jump out. First, GNU/Linux and GPLv2 are mentioned twice, (possibly) Sun has determined that it doesn’t want to see a JDK under a BSD-style license? This just happens to be the lever that will prevent that?
Second, No one @ Sun has told me this, but from the response it appears that they are digging in “we’ll have to agree to disagree on some points”. We’ll see what the next few weeks bring, but I’m not holding my breath for a response (positive or negative) before JavaOne.
Java Persistence API (JPA) provides POJO (Plain Old Java Object) standard and object relational mapping (OR mapping) for data persistence among applications. Persistence, which deals with storing and retrieving of application data, can now be programmed with Java Persistence API starting from EJB 3.0 as a result of JSR 220. This API has borrowed many of the concepts and standards from leading persistence frameworks like Toplink (from Oracle) and Hibernate (from JBoss). One of the great benefits of JPA is that it is an independent API and can nicely integrate with J2EE as well as J2SE applications.Shunmuga Raja writes about JPA here.
Java Persistence API(JPA) in EJB 3.0.
Spring Framework v2.0.4 was released earlier this week with bug fixes few enhancements and some performance improvements. Take a look at the change log for more details or just go ahead and download it.
Give up some love for the spring framework team.
If you haven’t already checked out the restlet project then it’s definitely worth a gander. It is a lightweight framework that captures the principles of REST as outlined in Roy Fielding’s dissertation. For me the REST architectural style is the superior choice for all client facing web applications.
The restlet framework comes packaged with everything you need to develop the server and client dimensions of your web applications although in my instance i was more interested in integrating it with Spring 2.0 and the Tomcat Servlet Container.
Initial experience with the framework has been both positive and beneficial.
Seam adoption rate
Gavin King notices an uptick in Seam adoption rates:
Until recently, they had been tracking pretty much level - Seam downloads had been growing slightly slower than Hibernate downloads did, about one month behind. But recently, the downloads jumped up, and Seam after 18 months is now where Hibernate was after almost 2 years. So, for now, we are doing better than Hibernate did.
One programmer’s Velocity vs. FreeMarker comparison
In (older news), also on the Hibernate team blog, read this interesting comparison of Velocity vs. FreeMarker, while this is from last February, it’s a summary comparison of one programmer’s experience with Velocity and FreeMarker.
JRuby News: ActiveRecord Fully Supported, JRuby nearing 1.0
Charles Nutter updates us on the progress toward a JRuby 1.0 release expected “within the next several weeks”.
Also over at Charles Nutter’s blog is a status update on JRuby ActiveRecord support, and performance. Summary, ActiveRecord is 100% implemented and there are zero test failures against MySQL. The JRuby folks have seen a doubling of performance benchmarks in the last month.
One of the main problem in software development is related to the maintenance task, and the capacity of a software component to be resilient to changes among time. It is important to keep our code clean. We will be able to change the code without the need to spend hours understanding exisiting code. Marcelo Giorgi writes about Refactoring in Eclipse 3.2 and how to use the clean up wizard in Eclipse 3.2.
Refactoring in Eclipse 3.2
Dave just released the first version of ROME Propono. This is an abstraction on top of publishing APIs not unlike how ROME itself is an abstraction on top of syndication APIs. Currently it supports Atom Publishing and MetaWeblog API and includes a server harness for APP.
I haven’t spent but a couple of hours with it, but so far I am very impressed. The APP Server harness is really quite handy.
It appears that the JCK licensing terms are holding an open source VM implementtion back - Apache Harmony.
Apache Harmony was started back in 2005 by a group of developers who were committed to implementing a JDK under the Apache License 2.0. Harmony has made good progress with heavy participation from Intel, IBM, and independent developers. If you look at the project roadmap, the plan was to start testing with the TCK (compatibility kit) right now (Q1 2007). Unfortunately, the Apache Software Foundation can’t agree to the licensing terms that the specification lead (Sun) licenses the Java Compatibility Kit under. Specifically, Sun has “field of use” restrictions in the JCK license that would add licensing restrictions to JDK and JVM released by the Harmony project. Here’s more explanation from the explanatory FAQ which accompanied the Open letter to Sun:
Q : What is a “field of use” restriction?
A : A “field of use” restriction is a restriction that limits how a user can use a given piece of software, either directly or indirectly. To give a concrete example from the Sun / Apache dispute, if Apache accepted Sun’s terms, then users of a standard, tested build of Apache Harmony for Linux on a standard general purpose x86-based computer (for example, a Dell desktop) would be prevented from freely using that software and that hardware in any application where the computer was placed in an enclosed cabinet, like an information kiosk at a shopping mall, or an X-ray machine at an airport.
Read the Open letter to Sun from Geir Magnusson, JCP VP, Apache Software Foundation. Also read the FAQ that accompanies this letter.
It seems like a simple problem, you want to allow people to upload videos, and then you want to process those videos to Flash Video. (Admit it. Flash Video is the video format for the web at the moment.) Talk to the LAMP crowd (or the Rails crowd), and when you ask them the question: “How would you process media files on the web?” You’ll find two popular answers:
- FFMpeg for video processing
- ImageMagick for image processing
But, don’t we do everything in Java through the JMF and the JAI? How would one integrate these utilities into Java?
From InfoQ.com: See JBoss Seam and Hibernate founder/lead Gavin King’s wishlist for Java EE 6. There’s also a piece on the forthcoming JavaServer Faces (JSF) 2.0 in TheServerSide.com. What would you like to see in the forthcoming Java EE 6?
There was recently a post on TheServerSide that pointed to an article on DeveloperWorks titled, “Pure servlets: Rethink the view” by Jason Van Cleve. I read it, I read some of the reaction to the TSS thread. (read on..)
Filip Hanik of Covalent Technologies wrote an excellent article in which he describes his series of performance/scalability tests of the new NIO connector that has been added to Tomcat 6. In tests he also includes Jetty and Glassfish containers. The article contains very good explanation of challenges in adapting NIO environment to blocking IO requirements. The good news is that the answer to the question from the title is yes, servlet containers can scale, led by Tomcat 6 that handled 16000 concurrent connections without problems.
Do you remember Microsoft’s SPOT watch which debuted at 2004 CES? Sun is also experimenting Small Programmable Object Technology with project Sun SPOT, an ongoing research project at Sun Labs from late 2003. The result of the research is Sun SPOT device.
Starting today, the first limited-production run of Sun SPOT Java Development Kits is now available for U.S customers. The kit costs $550 as some hardware involved in it. The Sun SPOT development kit includes everything needed to start developing applications for your Sun SPOT. The kit is a bundle of:
-Two complete Sun SPOT devices with demo sensor boards
-A base station Sun SPOT to connect to your development machine
-Software development tools
The development tools are compatible with Windows XP with Java runtime, Mac OS X 10.4 or better and most common Linux distributions. You can order SPOT kit here. In addition, the API specification for the initial release of the Sun SPOT libraries is available for preview at http://www.sunspotworld.com/javadoc/index.html.