Currently blogging at "In Relation To":
And the publicity that I've mentioned:
JBoss Application Server 5.0.0.CR1 has been released and is available for download from
Detailed Release Notes:
It's been great to finally see it come out.
Dimitris talks about it here:
And Sacha's blog:
OK, back to the usual - my Spring deployer. ;-)
Aha, not to forget, JBoss5 has a whole new forum dedicated just to the issues with the new CR1 (and future JBoss5) release.
OK, that's it from me.
For those more interested in the new kernel - JBoss Micocontainer - here's where you can now learn more: - JBoss Microcontainer 2.0 User Guide
Since all my previous blog posts included an update of Spring Deployer, this one is no exception.
And since it's almost holidays time, happy Xmas and successful year 2008 to you all. I know we're gonna have a blast, JBoss5 star is looking bright!
The changes weren't very drastic. Spring reworked their xml parsing stuff - lot less xml and (better) xsd support. They simply deprecated some XML parsing classes - which were easily replaceable - updating my slightly changed parser.
What's new with this release, else than compatibility? I added 'bean by type' support to @Spring annotation. What this means is, that you don't have to define bean's name if you are aware that there is exactly one bean which satisifies class type requirement. If there are multiple such beans - which satisfy class type requirement - we use default name. What is default name - in case of the field it is filed's name, in case of method it is a simple pojo setter/getter name. Since a code tells more than words, here it is :-)
Here I would like to thank c.vidal from the forum, for initializing the whole thing - also writing much of the code / patch. This has been a long time on my todo list, just needed a little kick. ;-)
private Object getObjectFromBeanFactory(Spring spring, String defaultBeanName, Class beanType) throws Exception
BeanFactory beanFactory = (BeanFactory) Util.lookup(spring.jndiName(), BeanFactory.class);
String beanName = spring.bean();
if (beanName != null && beanName.length() > 0)
return beanFactory.getBean(beanName, beanType);
// by type injection
if (beanFactory instanceof ListableBeanFactory)
ListableBeanFactory lbf = (ListableBeanFactory) beanFactory;
Map beans = lbf.getBeansOfType(beanType);
if (beans.size() > 1)
Object bean = beans.get(defaultBeanName);
if (bean == null)
throw new IllegalArgumentException("More than one bean of type: " + beanType);
else if (beans.size() == 1)
throw new IllegalArgumentException("No such bean by type: " + beanType);
// bean factory is not listable - use default bean name
return beanFactory.getBean(defaultBeanName, beanType);
Ok, we are slowly getting unnecessary definition info out of the @Spring annotation. Currently working on getting that jndiName attribute out too. Should be done something similar to EJB3 PersistenceContext default unit name - when there is just one persistence context in your deployment, you don't need to supply unit name.
As JBoss Microcontainer is getting more and more momentum - with new JBoss5 and its deployers - work in progress also involves rewriting SpringDeployer to new deployers concept - see JIRA JBMICROCONT-26.
Just like to invite everybody to my JBossWorld Berlin presentation - Microcontainer and contextual injection.
Have fun using compatible SpringDeployer :-).
ps: if somebody needs some examples redone / fixed - just let me know on the forum (didn't have time to test them ... but did test Deployer with my current job project - it works :-)
So here is the bug fix - forgot about new EJB3 JNDI naming :-( - JBoss-Spring.ear fix.
Thanks to the reporter - skedrf.
It's all about entertainment - gambling, shows, beautiful women, ...
I attended many different sessions. When looking back at the topics that they covered you really see how huge JBoss JEMS really is. And the stuff is keep on being implemented and integrated - new Messaging and Transactions, Drools, ESB, ...
The main attraction of the conference was definitely JBoss Seam and its founder Gavin King. Yep, he's a rock star :-).
My session was good - or probably you should ask the people that listened to what I had to say. I did cover everything that my JBoss Spring intergation involves in connection to JBoss AS and EJB3. Definitely my talking skills have to improve - practice practice practice. It definitely is not easy for non native speaker to talk about subject which is not totally trivial. There were some interesting questions at the end, and Dimitris pointed out an obvious solution / fix to my deployer implementation - it is already work in progress.
But the main point of JBW for me was to finally personally meet people I often communicate with (via MSN, forum topics, emails, ...) - Bill, Julien, Emmanuel, Gavin, Adrian, Dimitris, Thomas, Bela, Scott, Jason, Koen, ...
And [remember], shaking hands with Marc was cool too :-).
First there is update on the EJB3 compatible stuff with JBoss AS 4.0.4.GA.
The second release is update with EJB3 preview RC8.
Try it out. Report any bugz on the forum. :-)
How do I fit into this picture?
This is how I became a small part of JBoss family: Spring and EJB 3.0 in Harmony
One week from tomorrow I'm off to Las Vegas for JBoss World. Looking at the agenda one can see that it is going to be a great event - lots of interesting JEMS sessions, presented to you by the lead developers themself. There is also my session if you are interested - as you can see, it is a continuation of previously mentioned article.
Currently my interest is on JBoss Portal, Seam and of course EJB3 - since we are in the middle of developing a new enterprise application, using best of all three projects.
When you are using a lot of EJB3 stuff, embeddable EJB3 container comes real handy with unit testing - and I believe Bill just did a new release - check it out!
Just in case any JBoss/Spring user stumbles on this before Sunday - new release compatible with the latest EJB3 release in JBoss AS 4.0.4.GA is coming at the end of the weekend, in the worst case on Monday morning.