Yesterday, Joris and I gave a session at the Dutch Java Users Group. We did the session twice and had about 250 people in total attending the sessions. A lot of people asked for the code for the demos we did during the sessions. Attached you’ll find the code for the AOP and Dependency Injection demos. It shows a simple aspect flushing the Hibernate session before every JDBC operation (not as robust as you’d want it in production code, but it’s a start) and it also shows the CarPlant system (demo’d before in other sessions and previously attached to another blog entry) configured using the various to do Dependency Injection in Spring 2.1 (i.e. using <bean>, @Bean and @Autowired).
The Spring Blog
Yesterday GigaSpaces announced the latest release of their Space-Based Architecture, and it’s got a new name to go with it too: the GigaSpaces eXtreme Application Platform (XAP). To quote from their press release:
The new release provides a complete middleware platform for managing data, messaging and business logic for applications that require high performance and the ability to scale horizontally across hundreds of machines.
As part of the new product release, GigaSpaces has embraced a much simpler, non-intrusive programming model that allows developers to write their applications in Plain Old Java Objects (POJOs), plain .Net and plain C++ objects. For Java, GigaSpaces is achieving this by supporting the Spring Framework, which is rapidly becoming the de-facto standard in Enterprise Java programming.
We are proud to announce that the first release candidate of Spring IDE 2.0 has been released. Read the announcement on the Spring IDE blog.
Spring IDE 2.0 contains lots of new features and a bunch of bug fixes. Most noteably we have added comprehensive support for Spring 2.0 namespace-based configurations, Spring AOP including @AspectJ-style aspects, Spring Web Flow and Spring JavaConfig.
The release candidate is available immediately from our developer update site at http://springide.org/updatesite_dev. Please take some time for testing and provide feedback on any errors, bugs or problems you might find. Many thanks to all that already provided feedback and bug reports. The feedback is really valuable for us.
The production of nonsense on open source is a highly competitive field. However, I’ve just come across something that raises (lowers?) the bar: a post by an OpenLogic blogger entitled What’s your time worth?
It’s not a long piece, which is handy, as it makes it easier to deconstruct paragraph by paragraph. I’m focusing on enterprise Java, about which I can speak from experience.
The blogger gets to the point right away with a concise statement of why she doesn’t understand open source in the enterprise:
Last month I gave a Core Spring training in Turkey. At the end of the course I discussed the architecture for an application that some of the participants were going to build after completing the course. This application would consist of an ear file with several war files inside, and the question came up if it was possible to define a single ApplicationContext that could be used as a shared parent to the WebApplicationContexts of all war files. This context would hold bean definitions for services, DAOs and other beans that were not specific to a single web module.
I was working on Spring 2.1 stuff this week with Joris. We were preparing a sample using all three ways of doing dependency injection. The sample does not only highlight dependency injection, but also features a back-end based on Hibernate.
Several features in Spring 2.1 require the ASM byte code manipulation framework. Hibernate also uses ASM, through CGLIB. There is a binary incompatibility between ASM 1.5.3 and 2.2.3. The former is used by Hibernate, the latter is used by Spring in various scenarios; specifically in some of the AOP functionality and the new @Autowired features.
Doing it again
It’s already over 2 years since the idea to launch a European conference dedicated to the ever-growing Spring community was first discussed. After having announced the first (2006) edition of SpringOne at JavaPolis 2005, over 400 people signed up for the conference – over 20% more than we anticipated. SpringOne 2006 was a great success.
Due to the piles of positive feedback we have received after the 2006 edition, with many attendees reacting very positively to the strong focus on Spring and enterprise Java, we decided about 7 months ago to organize a 2007 edition. The conference takes place on June 20 – 22, in Antwerp, Belgium. These are some of the highlights.
You may have heard the announcement that Interface21, the company behind Spring, recently raised $10m dollars. Given that we've been around for almost 3 years, and have achieved a lot to date, you might wonder why.
Why did we raise money and what are we going to do with it?
Over the last two years, we've built a great team. Juergen Hoeller, Adrian Colyer, Keith Donald, Colin Sampaleanu, Mark Pollack, Ben Alex, Rob Harropâ¦ It's scary to to start typing that list because I know that I can't include all the talented technologists in this company, and I don't want to imply any ordering of merit… This team is amazing.
During a training last week, for the first time, I used the first Release Candidate of Spring Web Services. It’s hardly been two weeks since Arjen release RC1 of his precious, so it was very nice to show some of the attendees this new product.
Right before the web services part we did a little JMX and remoting, showing Spring’s exporter functionality. As you might know, this allows you to export any Spring-managed bean to a remote endpoint or JMX registry, with just a very little amount of declarative configuration:
As most of you already know by now, Spring is not just about XML as lately, a number of ‘official’ extensions to the core offer alternatives way for configuring the container.
- the root package has changed to org.springframework.config.java
- scoped beans are fully supported
- the bean name generation can be customized
- the distribution contains a 'transformed' sample (petclinic) which uses XML, JavaConfig and Groovy.