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.