Resteasy JAX-RS Beta 4 Released

1 Comment

I’m trying to release much earlier and more often. This release brings RESTEasy JAX-RS up to the current public draft of JAX-RS, JSR-311, minus a few methods that are being debated upon within specification. I didn’t want to implement something where the behavior is going to change. The RESTEasy JAX-RS documentation has also been updated to reflect changes and functionality updates.

Please see our main project page to learn how to download, post questions, etc.

Release Notes – Resteasy – Version Beta4

Bug

  • [RESTEASY-28] – if a class or super class is annotated, then ignore any interface’s annotations
  • [RESTEASY-34] – Locator method and resource method with same URI does not dispatch
  • [RESTEASY-45] – You should be able to use multiple path params per uri segment
  • [RESTEASY-46] – Subresource class annotated via its interface does not work

Task

  • [RESTEASY-3] – Implement UriInfo.getAncestorResources and UriInfo.getAncestorResourcesURIs
  • [RESTEASY-7] – Implement MessageBodyWorkers
  • [RESTEASY-21] – Support for @Path.encoded
  • [RESTEASY-22] – CacheControl marshalling/delegate
  • [RESTEASY-30] – Implement encoding in UriBuilder
  • [RESTEASY-32] – Implement @Encoded support
  • [RESTEASY-35] – Support for javax.security annotations
  • [RESTEASY-37] – Update API to Public Draft
  • [RESTEASY-38] – Implement UriBuilder.extension()
  • [RESTEASY-41] – Implement Httpheaders.getAcceptableLanguages() and getRequestHeader()
  • [RESTEASY-42] – Support for MediaType and Language file suffix extension mappings
  • [RESTEASY-43] – Test servlet init-param parsing of map extensions
  • [RESTEASY-44] – Support for ApplicationConfig

@See why I’d never develop at Apache

13 Comments

I was forwarded a pretty interesting (and funny) email thread on Apache MINA‘s mail list.  It seems a MINA developer was upset that a particular checkin did not have @See Javadoc comments.  So much so, he vetoed the commit.

“I’m on the project *management* committee.

I would like to see the code you commit adheres to some standard.

Until this is resolved my right to veto holds so please revert your commit until we figure out the best choice for Javadoc. If you won’t revert it, I can do it for you.”

A huge flamewar ensued thereafter.  This is why I would never, ever host an open source project at Apache.  Its not because a silly flamewar happened over a trivial issue.  We had a similar one errupt over Steve Ebersole putting in SL4J in Hibernate.  Poor Steve had a few of us flaming him.  In true JBossian fashion, Steve, the project lead, basically said, “bleep you.  I’ve researched the issue thoroughly and I’ll do what I want and think is right.”  No, the actual reason I’d never go to Apache is that anybody is allowed to veto your commit via the Apache rules:

“PS : for the record, here is the veto definition (http://www.apache.org/foundation/glossary.html) :

*Veto* According to the Apache methodology, a change which has been made or proposed may be made moot through the exercise of a veto by a committer to the codebase <http://www.apache.org/foundation/glossary.html#Codebase> in question. If the R-T-C <http://www.apache.org/foundation/glossary.html#ReviewThenCommit> commit policy is in effect, a veto prevents the change from being made. In either the R-T-C or C-T-R <http://www.apache.org/foundation/glossary.html#CommitThenReview> environments, a veto applied to a change that has already been made forces it to be reverted. Vetos may not be overridden nor voted down, and only cease to apply when the committer who issued the veto withdraws it. All vetos /must/ be accompanied by a valid technical justification; a veto without such a justification is invalid. Vetos only apply to code changes; they do not apply to procedural issues such as software releases.”

Imagine going to your boss or project lead at work and saying “I veto this commit.”  How hilarious would it be to see the look on their face?  Seriously though, democracy just doesn’t work in software development.  There are too many ways to skin a cat in software.  Its hard enough to get code released on budget and on time without some stupid random schmuck vetoing your work.

BTW, if you think this is funny, check out this old PMC complaint.  In this case, it wasn’t a developer vetoing a commit, it was some Apache bureaucrat putting down the hammer.

Media perception vs. reality

Leave a comment

Yesterday I read that Bill Belichick did an exclusive interview with CBS.  I first heard about the interview through  this Associated Press summary.  Reading the summary I was like “What the hell?  Belichick are you an idiot?”  From the format of the AP story, and the CBS preview, it sounded like Belichick was a bitter man not taking the high road and attacking his attacker.  I thought, damn, why the hell did the guy talk and make himself look worse?

I thought that until this morning when CBS News finally linked the whole interview on their website.  When you watch the whole interview, you see an even-keeled, forthright, sincere Belichick.  Not the raving madman portrayed in the AP summary.  Its amazing how as the media, if you want to portray somebody in a certain way, it is really really easy to take a few words from their statements to portray the image and story you want.  Facts, reality, be damned.   It is the way of things which is why I personally try to find out the facts themselves rather than reading any  one independent analysis or report.

One thing that I really pulled out of the article was that Belichick said they have video of Walsh taking video.  That he was in plain view and wearing patriots gear.  That they were being obvious and non-discrete.  That in even one video, a taped coach of another team waved to the camera.  Add this statement to the fact that stealing signals is not illegal in the NFL, and you start to get an entirely different picture of what the ESPN’s, Peter Kings, and Spectre’s of the world want you to think.

Spygate == Vaporgate

Leave a comment

I listened a lot to the Spygate controversy this week on the radio and TV. Yes, I’m a biased Patriots fan, but my opinion of the whole thing dramatically changed after listening to Goodell’s press conference, the Boston Herald retracting the walk-thru tape story, and John Tomase officially apologizing for printing the story. Let’s review some things I learned anew this week:

Fact #1: It is illegal to have cameras in unauthorized places. THAT’S IT! No more no less. Go re-read the rule.
Fact #2: It is NOT illegal to steal signals. Goodell said as much.

According to NFL policy, it is permissible to scout people’s coaching signals, and as you know, clubs go to great lengths to protect those.”

Fact #3: It was NOT illegal for Matt Walsh to see the walkthru or tell anybody about it. Again, re-read Goodell’s statements.

Until this week, I didn’t know Fact #2 and #3 were true. So, what the Patriots are *really* guilty of is using a camera in an un-authorized place. (They are actually allowed to use cameras in authroized places, again, go read the rules). When you put it in that perspective, how trivial is this whole thing? Pretty….

If the media hadn’t made such a big deal out of this, the Patriots would probably have lost at most a 3rd/4th round pick, about as stiff of a penalty as your Superbowl winning Broncos, who CHEATED on the salary cap, not once, but twice.

Resteasy JAX-RS Beta 3 Released

1 Comment

This is the thrid release of JBoss’s JSR-311, JAX-RS, Restful Web Services implementation. Nothing special in this release, just a lot of bug fixes the community found as well as more spec-feature complete. We have some more things coming down the pipe in the next month, so stay tuned!

Links to where to download, post user questions, and our documentation are all available on our WIKI.

Release Notes – Resteasy – Version Beta3

Bug

  • [RESTEASY-25] – mime property types ignored when matching resource methods to requests
  • [RESTEASY-26] – MessageBodyWriter matching should use the entity class, not the method’s reflected return type.
  • [RESTEASY-27] – Resource Locators should be dynamically processed

Task

  • [RESTEASY-6] – Implement all methods with decode parameter within UriInfo
  • [RESTEASY-20] – Suport for @Path.limited