Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Mark Little on Oct 01, 2008 06:56 AM
As someone remarked elsewhere, there's a strange phenomenon regarding buses: you wait ages for one, then three come along at once! The same seems to be true for JAX-RS implementations. At the moment we have:I'm interested in comparing the following aspects of the JAX-RS implementations that extend beyond "pure" JAX-RS.Which amongst others include:
RESTEasy is not just a playground for new ideas. We're actually going to be supporting it within JBoss very soon (as soon as I can get my hands on the TCK!) and have a number of large customers who already use RESTEasy breathing down our necks to do so.In terms of ease of use, Solomon has this to say so far:
The problem you face is deciding an implementation. I found Jersey really easy to start with, although Bill [Burke] would argue that RESTEasy is just as simple. They both are meant to work with EJB.Folks at Sun are keen to distance Jersey from the traditional thoughts people have about "reference implementations":Still, play around with Jersey... It shouldn't take you too long to get a HelloWorldService up and running, especially if you download NetBeans. I used Jersey and NetBeans for the first time, and was up and running within a half an hour, and that included downloads, installations and code surfing.
When you get to "Product Purpose", make sure you consider Jersey as a "production-ready" product (bundled in GlassFish v3 "Prelude" shipping next month as a matter of fact). The team has just spent way too much time testing and improving the code to have it be dismissed as the "reference implementation" ! :)Solomon's plan is to research each of those aspects and post updates in subsequent blog entries. A JAX-RS Spring Integration entry has already appeared.
The four current JAX-RS implementations provide Spring integration, even JBoss's RESTEasy.He goes on to give a fairly brief description of the integration and in the case of Jersey references old material as Paul points out. It's a shame because there is a need for an in-depth comparison. Solomon concludes that:
There are really fantastic Spring/JAX-RS capabilities through out the four implementations, but I think that CXF takes my vote for "Best Spring integration in a JAX-RS product."But obviously this is his opinion and others disagree. For example, Bill Burke asks:
I don't see how CXF Spring integration is any better than the rest. I don't see the need/reason for all the extra CXF-specific XML within a Spring XML file. The Spring integration provided by both RESTEasy and Jersey seam less intrusive than what is required by CXF. Or am I wrong?To which Solomon replies:
annotation driven approaches work well if there is a single configuration being used per class which is pretty much what you need 90%+ of the time. The other 10%- requires multiple configurations of the same Resource in multiple contexts. I know that I'll need that 10%- type solution based on the requirements and current deployments of the functionality that I'm updating. [...] CXF gives you the additional ability to deploy the same Resource, configured differently (different JDBC sources, different service implementations and etc) through the same spring.XML file. Basically, annotations work great most of the time, but sometimes you have to fall back to external configuration alternatives for the decoupling benefits. The XML alternatives aren't as sexy as annotations, but they work for more complex configuration cases."Maybe something that could have been brought out in a more detailed comparison?
Comprehensive Threat Protection for REST, SOA, and Web 2.0 Applications
The Agile Business Analyst: Skills and Techniques needed for Agile
The Role of Open Source in Data Integration
Would you enroll in an India Forex Group i.e http://www.indiaforex.com Groups?
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
2 comments
Watch Thread Reply