Mar 28

Spring 1.2 RC1 Release

Java, Lightweight Containers, Tech No Comments »

The Spring Framework team has done it again ;) Their latest release (1.2 RC1) contains interesting enhancements.

The big guns are:

  • Hibernate 3 support
  • JMX: JMX support for export of Spring beans, annotations, and more.
  • AOP: improved AOP TargetSourceCreator mechanism
  • TX: transaction annotation support for JDK 1.5+

There are also some small items which I am excited about. For one, we now have a short-hand way of defining beans in properties:

<property name=”sessionFactory” ref=”sessionFactory”/>

There is also a lot of talk on using Spring with Jython:

Spring 1.2 RC1 Announcement

Dear Spring community,

It’s Spring time :-)

I’m pleased to announce that Spring 1.2 RC1 has just been released. This release introduces a number of major new features:

* finer-grained distribution jar files, alongside the full spring.jar
* AOP Alliance interfaces are now contained in spring-aop.jar and spring.jar

* XML bean definition improvements (”ref” and “value” shortcut attributes
etc)
* improved AOP TargetSourceCreator mechanism (supporting LazyInitTargetSource too)

* transaction annotation support for JDK 1.5+ (annotation called
“Transactional”)
* improved WebLogicJtaTransactionManager (transaction names, isolation
levels)

* SqlRowSet support for JDBC (in conjunction with JdbcTemplate’s
“queryForRowSet”)
* Hibernate3 support (in orm.hibernate3; Hibernate 2.1 support is still
available)

* JMX support for export of Spring beans as managed resources and for MBean access
* Commons Attributes and JDK 1.5+ annotations for JMX MBean export

This release also contains many minor enhancements, for example:

* factored out BindingErrorProcessor strategy for ServletRequestDataBinder
* improved ParameterMethodNameResolver for Web MVC MultiActionController

For a detailed list of enhancements and bug fixes, see the changelog.

This release candidate is already considered stable and recommended for development use. We expect Spring 1.2 final to be released in late April.

Watch out for the Spring Web Flow preview release to follow later this week (for use with Spring 1.2)! Web Flow will also become part of the nightly build at that time.

Cheers,

Juergen

Mar 28

Continuation on the Web explained

Tech, Web Frameworks 7 Comments »

Mikael has got an interesting perspective wrt Continuations on the Web.

He talks about his path, taking a simple command line app which takes response from a user, and seeing how it maps to the world of the web.

I have been interesting in this marriage for awhile. I do like thinking of the users session in this way.

There are some good frameworks out there that support this style, such as:

And many others dabble…

Mar 27

Rickard on his Startup

AOP, Tech No Comments »

Rickard has written up Thoughts on Senselogic and SiteVision.

He has been a lot quieter since starting Senselogic… and this explains why. It is a lot of work!

I know how that feels.

It is interesting to hear about his thoughts on AOP. I think everyone wants to see the great tools he has ;) Maybe he can help get them in New AspectJ.

Mar 25

Perspectives on the Shared Source Initiative at MSFT

Tech No Comments »

Stephen Walli used to work at Microsoft on their Shared Source Initiative for several years. Now he is vice president of open source development strategy at Optaros, Inc, and has come out to talk to us about the way of the shared source world at Microsoft.

He gets across the concept that Microsoft has a spectrum of code out there:

  • MCS (consulting) practice code
  • MSDN sample code
  • Software Development and Device Drive Kits
  • Internal-tool code
  • Experiments that may never see the light of day
  • Research from MSR

An interesting point is made about the WiX experiment.

Microsoft released WiX available to all interested parties on SourceForge under the Common Public License in April 2004. WiX is actually an awesome example of exactly what open source projects can bring to Microsoft. WiX is (as Time magazine called it) “ a relatively insignificant geekware tool.” It is a command-line tool set allowing developers to reliably and repeatably generate a Microsoft Windows Installer package for their software deployment needs. It fits the professional developer’s need for a recipe-driven, batch-oriented build tool. Many internal Microsoft teams used it.

After 328 days on SourceForge, the WiX project has on the order of 120,000 downloads. About two-thirds of the bugs logged have been fixed. A reasonable number of people have joined the project’s community and assigned their property rights for their contributions to Microsoft as the legal sponsor and defender of the project. (I designed the original assignment process along the lines of the FSF policy. If it worked for them, it would likely work for Microsoft.) There has been a steady stream of email from Windows developers in the community that are simply happy users of the technology because it allows them to deliver better Windows packages. The transparency of the code and examples means they can see exactly how to accomplish installation tasks that previously were mysterious.

The core of the WiX community however is Rob Mensching and a half a dozen developers working predominantly on their own time. Windows development customers are happy and directly involved in the conversation with Microsoft employees. One stunning submission came from a developer that built a considerable tutorial on WiX. I did a quick page estimate and it looks like this developer gave the WiX project at least a month of his life.

Mar 25

The Office: US Edition

TV / Movie 36 Comments »

I saw The Office: US Edition last night.

I love the UK version, and I am a fan of Steve Carell (it was good to see his cameo on The Daily Show the other night), and this one was OK.

I don’t know if the characters match up to the UK version, but maybe I just need time to see them in their own light. It is also hard as this episode is almost identical to the UK version (a few things changed of course). I think it will be better for them as they carve their own path.

Mar 25

Bloody Web Services :)

Tech 5 Comments »

Yup, a project that I am working on is having a bad time with Web services. The core problem is that interop is just not there.

Because of this, if I am a Web services consumer, I am going to:

Always give out a simple API set of stubs in various languages

As a user of a current Web services provider, I just want to have some bloody stubs which wrap their services and make sure all works well. The current stubs are Axis 1.1-ish, and are not working right.

Why not? due to multiRef. .NET Server doesn’t like multiRef too much (for simple types). When you make a call the .NET Server says something like this right?:

Error: Cannot understand multiref at line 3, element foo

Er no. We get back:

SOAP Error

NO INFORMATION. Fun to debug for sure. “Hmm, let me try this… or this… or this..”

So, I have to learn from this experience and if I am ever a consumer:

  • Give decent error messages back to my users
  • Have good documentation on the common problems
  • Have a lot of sample code showing the services working
  • Have an API that users can download which has been TESTED

Shoot, I would much rather be talking to some damn EJBs! :)

Grr…

proxySoap._getProperty(Call.OPERATION_STYLE_PROPERTY): ERROR

Mar 22

META-INF/context.xml

Java, Tech, Web Frameworks 21 Comments »

It is always frustrating if you have to munge a server.xml in Tomcat, or the equivilent in other servers. At that point, your nice deployable .war file requires a README that says “oh, and make sure your server.xml is setup like this…”.

At least now we have a feature that lets us put context information in the war file. I didn’t know that Tomcat supported this until recently:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
auth="Container"
description="DB Connection"
name="jdbc/ebackbay"
type="javax.sql.DataSource"
password=""
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
validationQuery="select * from testdata;"
username="root"
url="jdbc:mysql://localhost/ebackbay"
maxActive="4"/>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>META-INF/context.xml</WatchedResource>
</Context>
Mar 22

Microsoft could use AOP to help enforce their Security

AOP, Microsoft, Tech No Comments »

Michael Howard is on a security team at Microsoft. He is the author of Writing Secure Code, and he spoke to us about the security scene at Microsoft.

The #1 agenda at MSFT used to be “app compat” (NOTE: There seems to be a sub-culture at MSFT that uses different terms :), but now security has taken over the top spot.

To enforce this, Michael and his team came up with a new software development process. He detailed this in front of us all.

I asked him about AOP, and he said that he hasn’t thought about it.

To me, enforcing security policies is a perfect example of AOP. A lot of the AOP work that you can get into places, starts off with this style. You write some nice aspects which modularize your policy, and then developers aren’t able to trip up.

This should be the same way in MSFT. If I develop something which doesn’t meant the secure code guidelines, when I do a build, I should get a warning.

This is a much better idea than going through code at the end of the process.

Of course, these policies may not be able to 100% capture the cross-cutting security concern, but they can surely do some of it!

Come on Michael, take it to the next level ;)

Mar 22

The State of the Scripting Universe

Tech 5 Comments »

Scripting languages. Dynamic languages. Agile languages. Actually OO languages.

Whatever you want to call them, there is a lot of talk about them at the moment.

People get very religious about kind of thing, which is particularly strange. They are all tools, and if you use one of them, it doesn’t mean that you can not pick up another, or that you must hate all other tools.

Noone programs/expresses themselves in one language anyway! SQL/bash/*ML, …

So, some people are getting into a tissy arguing about Rails vs. “insert Java framework”, or Ruby vs. Java, etc. Let’s settle down, and try to work out how we can learn from eachother, and when it makes sense to use a given tool for the job at hand.

A bunch of leading scripting language experts were seperately interviewed via email in the article: The State of the Scripting Universe.

It is very interesting to see how much consensus there is on dynamic languages use.

This shows, that often, the leaders in the community mimic their silent users. They just want to get stuff done.

Mar 22

Ron Bodkin enters the blogging world with a lot of AOP content

Tech No Comments »

Ron Bodkin is one of the leaders in the AOP space. He has finally gotten off of his arse and created a blog.

He has also seeded it with a LOT of information from AOSD 2005 and such.

Good to have you on board Ron!