Sep 19

How Open Source is Spring?: An Analytical Investigation

Tag: java,opensource,opinion,random,springpmularien @ 8:29 am

This post is to expand on some of the thoughts I posted on the SpringSource Blog in response to Rod Johnson’s excellent description of the SpringSource business model and its commitment to development of open source software.

Now that SpringSource has shown an ability to crank out new product releases on a seemingly weekly basis, I wanted to reflect on where Spring is positioned in the Java open source community, and how open the Spring Core project is to work done by the public.

The hypothesis of my experiment occurred to me when I happened to be reviewing Spring JIRA assignments one day. I was curious whether, following the bug assignments, the majority of development on the “Spring Core” projects (including Spring MVC and what we would consider “classic Spring”) is performed solely by SpringSource employees.

I decided to go about verifying this and would like to present my findings. Note that this is a purely objective study of a particular widely used open source project, and shouldn’t be construed as an opinion on the findings.

Edit Sept 22, 2008 Please note that although the publishing of this post by freakish timing occurred less than 24 hours after the announcement by SpringSource, I want to be clear that this article was drafted and published before I was aware of this news. As such, please don’t misread this investigation as a “response” to the announcement.

Since SpringSource is obviously a private company, I determined the list of employees by consulting publicly available information sources. Anyone is welcome to refute the claims in this article.

I have no direct working relationship with anyone at SpringSource; however, to verify the facts cited in my study, I did email an advance copy of the article to Juergen Hoeller, Spring Project Lead. Juergen kindly took the time to review it and clarify a couple facts that I wasn’t able to discern through public information. Juergen has always been friendly and considerate in the dealings we’ve had through Spring JIRA or the Spring forums, and I appreciate the help!

Read on for the analysis…

Analysis: Spring Core JIRA Bugs

Let us review bugs currently assigned (as of mid-September, 2008):

Adrian Colyer 2
Ben Hale 1
Colin Sampaleanu 2
Costin Leau 6 [1%]
John Lewis 4
Juergen Hoeller 290 [33%]
Mark Fisher 2
Ramnivas Laddad 4
Rob Harrop 16 [2%]
Sam Brannen 3
Thomas Risberg 15 [2%]

The following are confirmed SpringSource employees (easily confirmed from the Technical Leadership page on the SpringSource corporate site):

  • Adrian Colyer
  • Ben Hale
  • Colin Sampaleanu
  • Costin Leau
  • Juergen Hoeller
  • Mark Fisher
  • Ramnivas Laddad
  • Rob Harrop
  • Thomas Risberg

This leaves us with the following folks, who are not disclosed on the “Technical Leadership” page.

  • John Lewis (Chief Software Architect, Unicon Inc.: Reference)
  • Sam Brannen (Senior Software Engineer, SpringSource: Reference)

Thus, of all bugs currently assigned in JIRA for Spring Core, there is only one non-Spring Source employee (John Lewis) responsible.

Juergen verified with me by email that John is an active contributor to the Spring Portlet project, both in providing code contributions and development direction, and is not employed by SpringSource.

Analysis: Spring Core Commit Activity

Simply having bug assignments doesn’t necessarily mean that outside contributions aren’t made. Let’s use the publicly available Atlassian FishEye site tracking commits to the Spring Core CVS repository.

If we use Fisheye to graph commits and LOC history by author, we get something like the following:
Commit History Chart

We see the major committers are:

  • jhoeller: Juergen Hoeller
  • trisberg: Thomas Risberg
  • johnsonr: Rod Johnson
  • robharrop: Rob Harrop
  • springboy: ??
  • sbrannen: Sam Brannen
  • colins: Colin Sampaleanu
  • mark-fisher: Mark Fisher
  • aarendsen: ??
  • “Other”

So, let’s track down the unknown folks in this list.

Referencing the “springboy” account in Spring JIRA (note: login required), we can see that “springboy” is Rick Evans. Rick Evans, does not currently work for SpringSource. Juergen confirmed for me by email that Rick was an Interface21 employee for some time, only recently leaving for other opportunities.

“aarendsen” is SpringSource VP and Principal Consultant Alef Arendsen (link to biography).

So, these are the top contributors over the lifetime of the Spring Core project. But if you review the chart, you can see that the contributions by “Other” drop off drastically after mid-2005. For historical reference, Interface21 (the commercial company behind Spring, now called SpringSource) was formed in August 2004 (reference).

Unfortunately, further narrowing in graphical format isn’t possible with Fisheye, so we need to go to searching by changesets. To make the results manageable, let’s search by changes made since Sept 1, 2007, and filter out the committers identified above. The goal is to see who the “other” committers are. The resulting search can be seen here.

Immediately, we see recognized SpringSource employees “nebhale” (Ben Hale), “costin_leau” (Costin Leau), “ramnivas” (Ramnivas Laddad). Let’s filter them out, too.

Alas, now we see (as of this writing) only 9 commits, 8 by “dupuisc” and 1 by “markpollack”. “dupuisc” is Christian Dupuis, a Senior Software Engineer at SpringSource (reference), and “markpollack” is Dr. Mark Pollack, founder of Spring.NET and also a SpringSource employee (reference).

Thus, in at least the past year, we have commits from no one outside of SpringSource.

Spring 3.0?

AppFuse author and Spring user Matt Raible recently inquired where the source code for Spring 3.0 is publicly available. Based on discussion at the SpringOne 2008 conference, Spring 3.0M1 is/was supposed to be released around September.

If work was being done currently on the Spring 3.0 project, the source code and pending changes should be visible to those outside of SpringSource. Alas, no code for Spring Core changes are visible in the SourceForge-hosted Spring CVS or Spring SVN repository.

It may in fact be that no work is being done on Spring 3.0. Looking at JIRA, there are a total of 97 issues assigned to Spring 3.0M1, with only 1 resolved (as WONTFIX ;) ).

Juergen confirmed this for me via email:

The good news is that Spring 3.0 development will start in its usual public form very soon. The first milestone won’t make the projected end of September goal that I outlined earlier this year; it’s rather going to be released some time in October. In any case, look forward to a first cut of REST and EL support in 3.0 M1 already!

Given this, I would assume that we will soon start to see Spring 3.0 development appear in the usual, publicly available repository – great news!

Conclusion

I believe that the analysis I’ve done vets my hypothesis — that the vast majority of development on Spring Core is performed by SpringSource employees — as a true statement. I presented this to Juergen, and he framed the discussion in this way:

Many of the present committers were contributors and even committers long before they became SpringSource employees. The present situation is simply a result of SpringSource offering those committers a job! I would count that as a good thing, since those guys are full-time open source developers now.

I know that should this article become widely read, the very vocal Java community will have a variety of opinions on the facts presented. I would prefer to remain neutral on the subject, as I can see arguments on both sides of the “Is Spring Open Enough?” debate. I would like to acknowledge that there has obviously been a lot of hard work by a significant number of people bringing the Spring Portfolio to market, and the fact that much of it is available for free use is a testament to the value and power of the open source model.

Once again, I appreciate Juergen’s assistance in reviewing this article prior to publication, and I’d appreciate any comments you readers might have.

16 Responses to “How Open Source is Spring?: An Analytical Investigation”

  1. Rusty Wright says:

    One problem I see with the Spring code worked on only or primarily by SpringSource employees is that the api could use better naming and Spring needs better documentation.

    I wish that the SpringSource people were more aggressive about asking for community input on the api and documentation and if it makes sense or could be improved.

    For example, the @RequestMapping annotation can be both used on a class (type) as well as on a method, and it has very different uses in those two cases. Similarly with @ModelAttribute on a method and @ModelAttribute on a method parameter. Very different uses but, confusingly, the same annotation.

    Similarly, in the old days (for me) of subclassing the SimpleFormController, the documentation and naming for that is extremely frustrating. All that stuff about “the bound object” the “command” object, “reference data”, and so on just gives me a headache, and I can’t believe that it needs to be so hard to understand.

    Along the same lines I think the standard response of “please open a Jira issue for that” is part of the problem. When someone brings up a problem on the forums and a SpringSource employee responds agreeing that it should be fixed, I think that employee should take the responsibility to open the jira issue, and work with the person who reported the problem to make sure they understand the scope of the problem and that it’s fixed. Telling people to use jira is just not good; jira is great but it’s ui is, frankly, very frustrating for me still, even after I’ve been using it for a few years now.

  2. Pascal Alberty says:

    May be we have to read this blog article on the light of this one from TSS
    http://www.theserverside.com/news/thread.tss?thread_id=50727

    It could be easy to say: “Hey guys, take a look to the code, it’s a SpringSource code … so now, please paid for our job!”

    I really, really, really hope this is only a bad dream !

  3. Pascal Alberty says:

    http://news.cnet.com/8301-13505_3-10046470-16.html to read … seems that bad dream is coming true …

  4. pmularien says:

    @Pascal,
    Wow, I missed that announcement last night as I was writing this article. Thanks for the heads-up.

  5. Changement de la stratégie de maintenance de Spring Framework - @Repository("djo") - Club d'entraide des développeurs francophones says:

    [...] Drôle de coïncidence, Peter Mularien vient de publier une étude sur la transparence de Spring Framework … Laisser un [...]

  6. Pascal Alberty’s Blog» Blog Archive » Spring … Open Source … ou comment mettre en place un modèle économique en faisant beaucoup de bruit says:

    [...] y a quelques jours, je tombais sur un article qui souhaitait objectivement montrer que la plupart (pour ne pas dire la totalité) des [...]

  7. … Ajax and NB, Mural and MDM, RESTful Comet, GF with Hibernate and MySQL, OpenSource Contributors, Grizzlies, Fast JavaScript and more iPhone Rejections | Integribase.com says:

    [...] Peter Mularien a look at Who is Contributing to SpringSource? using FishEye on SpringFrameworks Core. BTW, if you do the same with GlassFish (core) you will find [...]

  8. Blog Xebia France - Nouvelle politique de maintenance de Spring : La très périlleuse route de la monétisation de l’open source says:

    [...] les contributeurs des projets Spring sont quasiment tous employés par Spring Source (Cf. : “How Open Source is Spring?: An Analytical Investigation” par Patrick Mularien). Spring Framework n’est pas un projet Open Source à la [...]

  9. Is "open source" a matter of license or employment? | Integribase.com says:

    [...] Peter Mularien takes a look at the developers for Spring and comes up with an unsurprising conclusion: “the vast majority of development on Spring Core is performed by SpringSource employees.” [...]

  10. Stefan Hansel says:

    >> Thus, in at least the past year, we have commits from no one outside of SpringSource.

    I don’t think that just analyzing committer-names is useful at all ?
    I mean noone other than springsource employees have commit rights, have they ?

    I think to get a real impression about the open-source commitment would be to analyze how many people opened jira issues and how many of them
    - ‘just’ reported a bug and left all the work to spring employees.
    (but nevertheless found a bug, that the springsource employees didn’t)
    - took part in a good discussion leading to a good improvement of the spring-framework by a springsource employee
    (but nevertheless spent their time and enthusiams to improve the framework)
    - provided a patch in the jira issue, which a spring employee then commited under his name.

    I’m afraid such numbers can’t be calculated, maybe just the gut feeling of springsource employess can lead to some insight.

    Your numbers alone don’t give any useful insight to me. It’s like looking at committer names of our own company-CVS and wondering, why no name of any customer appears there.

  11. Tom says:

    With the announcement of the SS Enterprise Maintenance Policy it can be easily concluded that _none_ of the code in the current release was developed anywhere but SS as this would prevent them from distributing the code under anything but the ASL…

    …unless SS agreed separate licences with each owner of the patch.

    This of course means that going forward, no new patches from the community can be accepted either.

    It does seem that there will now be a need for a community maintained version and it will be interesting to see how active the Spring community really is willing to be.

  12. angus says:

    An open source project won’t let everyone commit. A more practical way is to check the issue tracking, see if there are any patch provided by non-committer

  13. pmularien says:

    All,

    Thanks for the comments, and I appreciate the feedback. If anyone does an follow-up analyzing JIRA data for attachments (although I don’t see how this is possible), I’d appreciate the information.

    Best
    Peter

  14. Changement de la stratégie de maintenance de Spring Framework « Jawher's Blog says:

    [...] Drôle de coïncidence, Peter Mularien vient de publier une étude sur la transparence de Spring Framework … P.S. 2 : Alexis MP vient de publier un billet sur ce thème. Billet original [...]

  15. Rohit says:

    Well, It is open source in technicality, but far far far from its spirit.

  16. Retrospective : JFall 2011 « Stefan Hendriks' Blog says:

    [...] a pitty, because the reason that Spring is propriety software is actually valid. However, it just won’t cut it when yelling “its the [...]

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>