The Cost of SpringSource Enterprise Support
I'm in the early stages of combining several Java EE 5 projects into a single project (WAR, EJB, EAR, JARs, etc). To do that I needed to swap out EJB 3.0 for Spring 2.5. I'm trying really hard not to replace anything else by keeping the JNDI DataSources, JTA and JPA implementations provided by GlassFish V2. I'm using annotations such as @PersistenceContext and @Transactional to keep the code clean and lean like it was in EJB 3.0. I've encountered several challenges and found the Spring Forums helpful. There seems to be paid SpringSource staff on the forums helping people. From what I can tell, my most recent issue appears to be deficiencies in the design of Spring. Nobody has replied in a few days so I thought about purchasing per-incident support from SpringSource. I've done this with other products before and was hoping that they would offer the same.
I went to SpringSource's website and looked up the pricing. I had to fill out information about my company so that a sales rep could phone me back. A while later they phoned to ask a few more questions. My answers were:
- We're using Spring DI + transactions + JPA + unit testing features. Nothing else.
- Deploying to a single GlassFish V2 server with two CPUs
- The application that uses the Spring Framework is a custom application for a single customer
- The customer owns and maintains the server. We only install our application onto it and do upgrades.
- Our company has around 12 employees
He plugged all of this information into his computer and came up with a total: $22,500 per year. I must have sounded like an idiot because I had to ask him the same question three or four times: "You said twenty two thousand dollars, not two thousand five hundred, right?" Many things were going through my mind so his responses didn't register the first few times. I told him that we don't use the whole Spring Portfolio, and do not deploy on their application server. I'm only using a few jar files that probably add up to less than 1 MB and only want one support incident. The best he could offer is the Spring Forums which he said is staffed by the developers who maintain the actual source code. He also said that the level of support they will offer in the forums will deminish because of the new commercial support offering.
At first I wondered how they could come up with such a price. Then I realized they are positioning themselves up there with IBM WebSphere, BEA WebLogic, and Oracle Fusion. Those products cost around $20,000 - $30,000 per year as well, or more. SpringSource's support is for the entire portfolio, just like support for a Java EE application server covers all of the Java EE APIs. We purchased a GlassFish V2 support contract for $4,500 per year, and we get unlimited incidents for everything in Java EE 5. We've already had to use it once and they were helpful to find the solution.
When I think back to the original allure of Spring [to me], it was to have EJB like container managed transactions and dependency injection but in the .war file and in unit tests. When EJB 3.1 and WebBeans 1.0 come out I will be able to swap out Spring and can get the support I need from Sun since we're already paying for it.
From http://www.ryandelaplante.com/
- Login or register to post comments
- 5843 reads
- Printer-friendly version
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)










Comments
OtengiM replied on Fri, 2008/09/26 - 6:11am
Mark my words, Spring is KAPUT!!, Dead!!.
So long Spring.
Andrew McVeigh replied on Fri, 2008/09/26 - 8:06am
hmm, seems to be very high compared to something like glassfish support from sun...
Andrew
Alexander Shirkov replied on Fri, 2008/09/26 - 8:18am
Mark Nnnnn replied on Fri, 2008/09/26 - 8:58am
in response to: sgdread
Does Guice have AOP and Remoting too? Althought I am sure some do, I can't see but a few using just IoC.
[update: googled and found that Guice does have AOP]
Jacek replied on Fri, 2008/09/26 - 12:39pm
in response to: mknutty
Michael O'Keeffe replied on Fri, 2008/09/26 - 2:17pm
Funny, I was under the impression the whole advantage of IOC-type (yeah, I'm old style, the newly annointed name is Dependency Injection) frameworks like Spring was it makes stuff like your requirements as a whole (not just your example scenario) a snap, however, my impression from using Spring, is that there is too much complexity for the benefit, hence the backlash against these (born themselves in the backlash against the overly complex EJB world) and the popularity of keep-it-simple frameworks like Rails.
I'm sure there's a simple way to do what you require, but obviously this requires some advanced knowledge in Spring, heavy duty training courses, expert knowledge, and fancy XML footwork. Meanwhile, you could whip up a class to do the same thing in a few hours? Or why not use the built-in support of an App Server, BEA, WAS, etc?
Some of the comments/replies to your question from these "developers" are actually pretty funny:
" What are you doing? I've not read through all your posts, but...
Revert your latest changes, this works just fine."
He doesn't know what you're doing, hasn't read through all the posts, but it works.
Well, you get what you pay for I guess.
I do agree with the points about Guice, seems like it supports all the core stuff you need, very clearly and simply. The designers claim they intend to stick to the basics, so that seems like a good thing.
Steven Marcus replied on Sat, 2008/09/27 - 8:51pm
Springframework provides a lot of value for enterprise applications and is more than just an IOC container. Also, I think that the the principals involved have done a remarkable job over the years maintaining a stable and growing codebase and providing excellent documentation. Perhaps this is why the spring eco-system has grown, drawing in many independent consultants, like myself, and the framework has been widely adopted and displaced some alternatives.
However, recent moves seem ill-considered and are negating the tremendous "good will" that springframework has created over many years. The success of springframework has, in part, been driven by the fact that it was perceived as being truly open source with open development practices, an open source code repository, and an open bug database.
If I understand correctly, binary builds with bug fixes will not be available after 3 months of a major release, _but_ that major releases are still on a >3 month schedule. This, coupled with a 2nd class public source repository (no tags for versions considered "internal") means effectively that it will be impractical to gain access to bug fixes without a support contract.
But, as this article shows, support contracts are priced at a level that is hard to justify for small to medium size businesses.
Even if more reasonable $200 to $2000 pa minimal support contracts for maintenance only versions were available it means that anyone unwilling or unable to pay for a support contract must seriously consider whether springframework is the right foundation for their application. And this leads to the question of whether springframework will continue to be successful if it alienates the eco-system in which it has grown...
Perhaps the people managing the recent changes believe springframework has reached critical mass and can now afford to alienate the open source "free riders" that are a part of their success?
Alex(JAlexoid) replied on Sun, 2008/09/28 - 10:15am
Spring framework has grown to such proportions, that for a person that is starting to learn it it will take longer than learning EJB 3.
The official documentation is pretty horrible for newcomers, as it is structured as a reference for people that know SpringFramework already. A person needs to buy a book to learn Spring, witch for a framework(that is a technology) is pretty bad. I, personally, believe that a technology is not worth buying a book, since it just destroys trees for a few years of knowledge(to be fair, some technologies are fundamental enough, but application frameworks are not).
All above is stated as IMHO. And I am not going to learn Spring, since there is no need for me, nor is it fun and easy. And not all enterprises actually use Spring, and with this step more will think twice before adopting. Consider me the anti-Spring* guy :)
* - the actual product, not the ideas
rickcr replied on Sun, 2008/09/28 - 2:39pm
I concur with some of the others that mention the comlexity of using Spring relative to other things out there make it something to consider not using. I should qualify this though with the "set up," since you once you have everything in place and understand what is going on in your config file and have all your jars in place, things aren't that bad. But, Using EJB3 now is a complete snap and I can guarantee you it's easier to get up and running using EJB3 on JBoss than it is setting up Spring with JPA/Hibernate on Tomcat (I'm going through the exercise myself right now.) Now if the next argument is "Well I don't want the complexity of a full blown JEE server application," then I'd ask well then why not simplify things further by just using Rails?
When you decide on Spring you've just now added on more layer of complexity to your application (again, once it's all set up, it doesn't seem a big issue.) It's flexiblity is also its shortcoming. Spring takes the opposite trend of "convention over configuration." If I was gaining a lot from the extra complexity I'd be more impressed, but I don't really see what I'm gaining to make it worth the effort of having to have a Spring book or Spring docs quickly excessible. One area where Spring really does shine, though, is in testing. (I admit it is more difficult to set up tesing of EJB3 components than it is using a Spring configured application.)
Actually I found using guice's warp-persist easier to use than Spring for setting up a JPA/Hibernate example http://www.wideplay.com/guicewebextensions2 and http://code.google.com/p/warp-persist/wiki/Tutorials
Liam Knox replied on Sun, 2008/09/28 - 5:57pm
I think your main problem here is your first statement, I am working on a Java EE 5 project. Once you lose you security blanket and realise that you dont need this monolithic technology that has been missold and a mandated requirement to build a Java application, you will be ok. Spring was invented primarily to counter such a need, sure it integrates with the application servers but you are always better using in as the alternative. Time to delivery, unit testing and performance will all benefit.
On the strange idea that Spring is dead, I would advise you to look at the Job listings where Spring skills have overtaken J2EE requirements. J2EE , atleast in this manifestation, is the technology that is one its way out thankfully
rickcr replied on Sun, 2008/09/28 - 7:00pm
in response to: knoxl
[quote=knoxl]Once you lose you security blanket and realise that you dont need this monolithic technology that has been missold and a mandated requirement to build a Java application, you will be ok. Spring was invented primarily to counter such a need, [/quote]
I agree that Spring fit the niche you descibe above going back a few years, but I don't think that argument still holds weight. Give me examples how that applies at all to a JEE 5 project? In other words, show me how Spring makes things "Easier" (other than I agree for testing.) Also when you say "monolithic" - what exactly does that even mean? Ok so you might not need MDBs, JTA, or Stateful Session Beans - big deal, you just don't use some of the monolith features you don't need. You aren't forced to use everything the stack gives you, just like you don't have to use everything Spring has to offer.
Actually I think Java applications in general are overly complicated. I'm not at all a "Rails fanbois," but I have messed with it some and I completely see the alure. The interesting thing I'm realizing is that if you aren't going to need the features that come "out of the box" with the 'monolith' of JEE, you might as well not even bother with a "Spring/{insert persistence/hibernate/ibatis}/{insert web framework} technology" when you can use something simple like Rails? Grails is actually sort of cool as well (although it's tied deeply to all the underlying os tools - spring, hibernate, sitemesh etc.)
Ryan de Laplante replied on Sun, 2008/09/28 - 11:07pm
in response to: knoxl
[quote=knoxl]I think your main problem here is your first statement, I am working on a Java EE 5 project. Once you lose you security blanket and realise that you dont need this monolithic technology that has been missold and a mandated requirement to build a Java application, you will be ok.[/quote]
Well actually, no. Creating the Java EE 5 project was a breeze and I barely had any problems. When trying to use Spring I have spent literally weeks battling with load time weaver and classloader problems, JTA problems, its inability to support multiple JPA persistence units in the same persistence.xml, its inability to know which JPA persistence unit to use in @PersistenceContext(unitName="blah") when multiple entity manager factories are in the XML configuration file, its inability to have multiple JPA entity managers in XML file when multiple data sources are configured in XML even after I specifically tell them which to use, etc. I find Spring much more complicated than it needs to be and it feels like a step down from EJB 3.0 when working with JPA. Anyone who thinks it is easier to use than Java EE 5 has obviously not given Java EE 5 a serious look. Java EE's full featured and fully integrated stack is its greatest strength. When you need something, it's there for you already AND it just works. If you don't need some features today, then just don't use them. They don't bloat your .war files with megabytes of extra dependencies. Spring can learn a lesson or two from Java EE 5.
Tell me exactly what you mean when throwing words like "monolothic" around? It sounds like Spring fanboism to me. Spring is monolithic. It's time to open your eyes and see that Java EE has evolved thanks to Spring and Hibernate. Java EE 6, EJB 3.1, and WebBeans are going to change the industry, mark my words.
James Law replied on Mon, 2008/09/29 - 7:55am
That price doesn't sound right. My employer pays for SS support, and it is not anywhere near that much.
Was that 12 named contacts? Whats the incident turn around time you selected?
Thanks,
James
Ryan de Laplante replied on Mon, 2008/09/29 - 8:14am
in response to: jlawmi
Was that 12 named contacts? Whats the incident turn around time you selected?
Thanks,
James[/quote]
That is interesting. Maybe they changed the pricing since I phoned them, but at the time $22,500/year was the absolute best the salesman could do for me. His first quote was $24,500/year. I hope they dont charge for each employee of the company because I'm the only one using Spring. I thought they just wanted to know how big our company is for statistics.
Can youg give us an idea what your employer is paying? Which parts of Spring portfolio are you using?
David Lee replied on Mon, 2008/09/29 - 9:13am
I'm all for them making money, but it's simply not worth it.
If you have an a excellent product, how can you only sell support ? I just believed open source projects that attempt to only sell support have an obvious incentive to make the product, some how, some way less than easy to use.
If your goal is to make money, simply sell the product at a reasonable price.
Stop with the open source games.
OtengiM replied on Mon, 2008/09/29 - 12:43pm
You don't need to go to rails for a lightweight option, You can have a lightweight option in Java for example:
JPA->Guice->Wicket, simple as that. Or Another could be:
JPA->Tapestry5 (it includes own IoC based many ideas from Guice and you could use Groovy languge instead of Java).
Now for Enterprise projects JEE5 and Seam or the coming JEE 6, we don't need Spring anymore. Check also the coming EJB3.1 lite for a lightweight DI. After all Spring is JEE without EJB.
Spring fucked up, they should choose from the start to be open source and make money with services(support, maintenece) or go to the other way closed source and sell licenses but not change rules in the middle of the game.
JBoss is doing open source and they win money in the sametime without hurting the community.
My bet is in the "STANDARD" not in the "One vendor lock-in".
David Lee replied on Mon, 2008/09/29 - 1:26pm
in response to: rdelaplante
Mark Nnnnn replied on Mon, 2008/09/29 - 1:31pm
in response to: sybrix
David,
Is that per server? per Install? site license? etc?
David Lee replied on Mon, 2008/09/29 - 1:44pm
in response to: mknutty
I wasn't on the call, but I know they(spring) gave a per CPU quote, but I don't know what configuration we gave them. I do know the quote was for 1 server the server at most has 4 cpus. I don't know if it was cores or sockets or how spring priced it. I'll see if I can get the exact details.
OtengiM replied on Mon, 2008/09/29 - 2:00pm
Im not sure but I think at the TSS Rod said the price is per developer per year and for the customers per CPU per year.
The price is insane for small or medium business. This is just for Enterprises "Fortune 500" to up.
Sigh, many people(including me) didn't see this coming and they sold the idea that Spring was the "Holy Grail of Java Enterprise", Anyway the good stuff in life have an end.
So Long Spring!.
Alex(JAlexoid) replied on Mon, 2008/09/29 - 6:12pm
[quote=David Lee]have an obvious incentive to make the product, some how, some way less than easy to use.[/quote]
Well... We had a company that had a good product and were selling support mostly. MySQL. Unless you believe that MySQL is a hard to use DBMS?
Alex(JAlexoid) replied on Mon, 2008/09/29 - 6:16pm
[quote=OtengiM]sold the idea that Spring was the "Holy Grail of Java Enterprise"[/quote]
We have to have a fresh look at things once in a while, Spring was the fresh look at J2EE. And now we wil have to have a look at Spring without those pink glasses, so many people have on.
David Lee replied on Mon, 2008/09/29 - 7:34pm
in response to: jalexoid
There they go again...anytime anyone says anything critical about oss as a business model someone pulls mysql out of their @ss. There are a gazllion opensource projects and about 10 that make money. Clearly the model of making software and giving it away for free is a difficult model to make profitable. It's not impossible, but clearly it's vey, very difficult.
I use firebird. So that should tell you want I think of mysql. No really, mySQL is a great product I just think firebird is a better fit for my work.
For every 1 mysql or redhat you find, I can find 1000 other non-profitable projects.
For a for profit company, the oss model is broken.
Ryan de Laplante replied on Tue, 2008/09/30 - 7:58am
This blogger paints the picture that I was asking for Rod Johnson to hold my hand while coding and sing me a lullaby, which is why they quoted me $22,500. He said SpringSource offered him 10 developer support incidents for $900 US per CPU.
http://keyboardsamurais.de/2008/09/29/whats-all-the-fuss-about-spring-source-charging-big-money/
Thanks for making me a liar Toni. SpringSource has obviously changed their pricing since I spoke with them on the phone. They told me that I can't buy a developer support incidient without having to pay $22,500 per year. That is absolutely true. I was very clear that I want developer support for one incident, pointed to the forum thread and had done my research already. After thousands of readers, nobody has proven me wrong. Spring's JPA support is not properly implemented when you use multiple data sources -- something EJB 3.0 has no problem doing.
Toni, now that you can get affordable developer support you can put your rosy glasses back on and get back to using Spring.
Juan Antonio Agudo replied on Tue, 2008/09/30 - 10:27am
in response to: rdelaplante
Sorry you feel that way about my post Ryan. I wasn't calling you a liar. Obviosly you were being charged for a different product - hence the confusion. I was asking for the bare minmum - they were trying to sell you the cruise ship. Hence the different quotes. It would be unfair to SpringSource to make decisions based on incomplete information.
Now I'll be off to buy me some more of these rosy glasses you were talking about - they're the talk of the town in javaland these days I hear ;)
best regards,
Toni
Ryan de Laplante replied on Tue, 2008/09/30 - 11:03am
in response to: keyboardsamurai
[quote=keyboardsamurai]
Sorry you feel that way about my post Ryan. I wasn't calling you a liar. Obviosly you were being charged for a different product - hence the confusion. I was asking for the bare minmum - they were trying to sell you the cruise ship. Hence the different quotes. It would be unfair to SpringSource to make decisions based on incomplete information.
[/quote]
Your blog says "most bloggers usually make very bad fact checkers, but this is just absurd." I assure you that we were asking SpringSource for exactly the same thing. They were completely aware that I only use Spring core DI + JTA + JPA in GlassFish and do not use any of their other products. This article was 100% verified correct fact at the time of posting. The pricing has changed since I wrote it.
Here is another verified fact for you: Rod said on the TSS thread that they would be re-thinking their pricing for small businesses over the weekend and would implement the new pricing early this week. They must have had it in place by the time you contacted SpringSource.
http://www.theserverside.com/news/thread.tss?m=c.reply&thread_id=50727#270086
Anyway $900 for a block of ten incidents is reasonable.
Alex(JAlexoid) replied on Tue, 2008/09/30 - 3:48pm
in response to: sybrix
Actually I was pulling MySQL out of thin air, not out of my "@ass". And since it's everywhere, it's not that impossible. I am myself PostgreSQL proponent, so don't get me wrong on witch side I am.
In PostgreSQL land, we have EnterpriseDB and Command Prompt that make money off PostgreSQL support. So there not only MySQL managed to pull it. Compiere looks quite successful in ERP land for small businesses. Silverstripe company is also having a good time, so is 37signals. And let us not forget that there are countless other ways of making money off the project, and there are people that are not contributors taht make money as consultants.
And to be fair not even half of those 1000 F/OSS projects are there for the money.
In any case, the only way Spring was to be used in software development as widely as it is today, they had to go with F/OSS model. Now they have changed and who knows what will happen.
I know for sure, that is why the company I work for is a sceptic in case of Spring.
Liam Knox replied on Tue, 2008/09/30 - 8:27pm
in response to: rdelaplante
Spring has already changed the industry, see Job advertistments, has already proven by uptake, half of Fortune 500 hundred companies using it, I speak from experience in two of these who have dumped all EJB usage in favor of Spring. J2EE has always been monolithic from the original misnomer of having to define your remoting seperation upfront, the J2EE work arounds... sorry blueprints, that just skimmed over the inherent design problems, the untestability of deploying big ear files and proprientary to xml configuration per application server. For further detail please consult any talk from Rod Johnson regarding J2EE and Spring. What is EJB 3.1 , isnt it 3.1 'Lite' ?
Answer me one thing , what does it give you? If you are having so much issues with Spring I suggest you go one a course. By the way you write, you seem to be someone who buys into every technology going before really anaylsing what you are trying to solve or what the technology does. Personally we have chosen Spring for its ease of testing, its mature IoC and AOP and integration with JAX WS, JDBC,JMX and JMS. I cant comment on JPA as our work rarely has the liberty of having such a clean up OO to Relational relationship. Hence JPA in its own right is the wrong technology for us.
What I think you are seeing is the Java standards being driven by the open source community and specifically the J2EE environment by Spring.
Liam Knox replied on Tue, 2008/09/30 - 8:50pm
in response to: rickcr
Can you explain what Spring does not give you easier that what J2EE after N years of developement does now? I really cant see how you see Spring is complex, you have an applicationContext with a completely standard bean definition syntax and integrations with pratically any technology you require and in a standard and concise way. I think some of you guys must be very punch drunk in having got to use and deploy these clunky applications to app servers you dont really see the wood from the trees anymore.
That there is actual arguments about support costs for a free framework that is so mature and stable tha Blue chip companys are using it across 1000s of developer without even signing up to these is a bit strange. Do you not have the expertise to read their concise documentation?
It seems the developer here range from either the long term 'J2EE' is the only way to work brainwashed to the guys who have worked on a few small scale applications with license to go technology crazy without proper oversight, perhaps you need to spend a few more years working to understand you are trying to solve problems and not just play with the newest toy on the block.
I would never apply Spring the word 'niche' as it has done something much more fundamental and that is offer a sensible framework for the Enterpise. It has ( and is ) driving the the way J2EE is going forward. Rails is something that I would call a niche as it addresses a very small problem with very well understood boundarys, and as expected if you start to try and use it outside of these boundaries it falls down very quickly. I would closer compare Rails to Pearl that anything in the Java world.
Just a note one the people behind these technologys, the good Java technologies came from the likes of Golsing, Bloch , Leah etc, I cant really see that any of these heavy weights have ever had much input to the J2EE from the start. This is probably why it has lead such a headless evolution, from the peverse to now coming to mimic the opensource solution to the domain. I think it best they just give the new JSR to Rod Johson.
OtengiM replied on Tue, 2008/09/30 - 10:16pm
in response to: knoxl
Why bother to explain all over and over again, Try to make your own conclusions but We all know a sane person will not use Spring anymore and run far far away from it.
Spring made lots of contributions and it was cool the ride with Spring all this years but for me is over, JEE 6 will have all the features or more of what Spring brings to the table, The Expert Group it is working hard to bring a fresh air to the Java enterprise and it is a Standard, With it many folks can trust and with many implementation's free ones or commercial ones and you don't lock your self with one vendor and suffer all this mess.
I suggest to take a look at this projects:
OpenEJB, Glassfish, JBoss Seam and JEE6/EJB 3.1 spec.
Don't blind your self and think that now it is just Spring or Spring and only Spring. There are lots good options out there.