Archive for the 'Noteworthy' Category

SpringSource Tool Suite is now free

In his opening keynote at SpringOne, Rod announced - among Spring Roo and SpringSource tc Server GA - that we will make SpringSource Tool Suite available for free!

In case you wonder why you - as a Spring IDE user - should care about that, make sure that you check out STS and the extended features that it offers above and beyond Spring IDE.

The free downloads will be available by Thursday, May 7th. Stay tuned for more details. I hope that you are as excited as I: you can now get the best and most productive IDE environment for Spring-based application development for free.

From this point on you can follow me on twitter (#STS) to stay on top of all the new features and development around Spring-, OSGi- and Groovy/Grails-relating tooling.

SpringOne 2.2.1 Release Available

Just in time for this year’s SpringOne Americas I released Spring IDE 2.2.1 to the update site at Amazon S3. This version is mainly a bug fix and maintenance release, but there are three changes that I’d like to highlight in this post.

But before I go into detail here are the usual download links:

Support for Workspace external configuration files

Since early versions Spring IDE wasn’t able to recognize XML configuration files from workspace external resources like JARs from classpath containers. Only JARs that were sitting inside a project could be searched for configuration files. This limitation is due to the fact that the Eclipse resource abstraction has no knowledge of external resources and provides no access to those. But Spring IDE heavily relies on this abstraction like so many other Eclipse plug-ins.

I finally ended up implementing a thin layer to integrate JARs from external locations into the resource abstraction to make Spring IDE able to open and parse those files.

External Configuration Files

Ignore missing NamespaceHandler warning

Although Spring IDE can easily be extended to support custom namespaces, there are a lot of frameworks out there that don’t ship or provide an integration. Normally that would end up in a “Unable to locate Spring NamespaceHandler for element 'node name' of schema namespace 'uri'” warning in Eclipse or the SpringSource Tool Suite.

There is now a setting to disable this warning on the Project properties dialog.

namespacehandler-screenshot2.png

Refactoring of Content Assist Infrastructure

If you are already in the business of extending Spring IDE’s namespace support you might want to take a closer look at the work that has been done for making the implementations of the IContentAssistCalculator more reusable. This refactoring will most likely break your extension depending on the extension approach you choose.

Making your extension compatible with the new API is not hard and should not involve a lot of changes. Please let me know if you run into any problem or need advice on how to migrate.

Compatibility with SpringSource Tool Suite

SpringSource Tool Suite 1.1.1 is not yet compatible with the 2.2.1 release of Spring IDE. Please don’t update!. We will release an updated version of STS shortly after SpringOne that will come with recent Spring IDE and will also feature lots of new Spring-related tooling.

2.1 with Web Flow 2 support released

Just in time for the 2.0.3 release of Spring Web Flow we are proud to announce the availability of Spring IDE 2.1 bringing support for Web Flow 2 and Eclipse 3.4.

After the Ganymede release some users had problems installing Spring IDE 2.0.6 into their shiny new 3.4 packages. This was basically due to incompatibilities between Spring IDE’s Mylyn integration and the Mylyn 3.0 APIs which changed quite significantly. Thanks to a rapid pair programming session with Mik Kersten, lead of the Mylyn project at Eclipse, we were able to make Mylyn 3.0 support available just hours after the Ganymede launch from the Spring IDE nighty update site (It is so much fun sharing an office with the Tasktop crew. If you are ever in Vancouver make sure to drop by for a coffee). Obviously an nightly snapshot build is not everybody’s preferred installation source; therefore I’m more than happy to announce that version 2.1 is now officially compatible with Eclipse 3.4 and Mylyn 3.0.

Besides the usual bug fixing that goes into every release and the fore-mentioned Mylyn and Eclipse migration, 2.1 now supports Spring Web Flow 2. We have added support for visual editing using the graphical Web Flow Editor as well as support for validating and editing of the XML flow definition files based on the 2.0 XML schema. It is important to note that 2.1 does not break the Web Flow 1.x support. So all Web Flow 1.x users out there: it is safe to upgrade to Spring IDE 2.1.

Another feature, rather small but requested quite often, is the ability to display nested beans in the Beans Dependency Graph. See the following screenshot for an example.

Beans Graph with inner beans

As always the release is available from the update site hosted at Amazon S3. Here are the links:

In closing I would like to mention that Spring IDE 2.1 serves as the foundation for the upcoming SpringSource Tool Suite 1.1 and SpringSource Application Platform Tools 1.0 release (later next week). Over the last months we have added extension points and APIs to Spring IDE that provide some nice and supported ways of extending the Spring structure model provided by Spring IDE.

Eclipse Community Award Finalist

FinalistTorsten and I are feeling very honored by the announcement that Spring IDE is one of the finalist in the ‘Best Open Source Eclipse-Based Developer Tool’ category of this year’s Eclipse Community Awards. We really value the announcement and see this is as great recognition of the work we have put into Spring IDE during the last four years. Thanks to the Eclipse Foundation and the judges.

Additionally I’m very excited to see EclEmma as the other finalist in that category. EclEmma is one of those tools I use myself very frequently and I think it adds great value to the Eclipse Community. Therefore regardless what project takes the award at the end I’m looking forward to meeting with Marc R. Hoffmann, the creator of EclEmma, and the other nominees at EcliseCon and hope that we’ll find some time for a beer or two.

Speaking about EclipseCon I think it is going to be an amazing week; there’ll be lots of Spring-related stuff to see and unveil.

Update: The results are out. Congratulations to the EclEmma project for winning the Eclipse Community Award for Best Open Source Developer Tool.

Support for Imports and Tooling Annotations

With the imminent release of Spring IDE 2.0.3 we are going to introduce two new features that I’m going to outline in this post.

Support for the import Element

Probably the most requested feature to add to Spring IDE is supporting <import /> elements in Spring configuration files. Up to now imports have been ignored by Spring IDE’s internal parser due to some limitations we had with the way Spring Core handled the processing of imports and the non-trivial task of porting scanning facilities for the classpath*: protocol over to the Eclipse OSGi runtime.

Imports in the Spring Explorer

With Spring IDE 2.0.3 which will be released today we finally managed to add support for imports. So after upgrading to 2.0.3 you will eventually notice a new setting on the preference page that allows to explicitly enable the import support (see screenshot below).

Import enablement preference

After enabling the import support you might end up with error messages like: Overrides another bean ‘X’ in config set ‘Y’. That can occur if you are using an Beans Config Set to group configuration files in order to simulate the runtime behavior of imports. The error is due to the fact that one configuration file imports another file that is also part of the same config set and is now being added to the set multiple times: using an import and directly using the preference page.

To get rid of that you need to either ‘Enable Bean Override’ in the Config Set preference page or remove the configuration files from the config set. There might not even be the need for a config set any more.

Detection of Tooling Annotations in Namespace Schemas

Since the Introduction of the XSD-based configuration style in 2.0 of Spring a tooling specific namespace has been available. The <tool:* /> namespace defines meta data that can be used to annotate your own custom namespaces elements. These annotations are good to describe that a configuration element exposes a bean of a certain type or that an attribute takes class or interface names or bean references.
Spring IDE 2.0.3. will look for those annotations and automatically provide content assist and hyperlinking in the XML editor and create beans in the Spring structure model displayed in the Spring Explorer and used during validation. There is no need to implement a custom Eclipse plug-in to get support for an extension namespace.

You can see an example of tool annotation usage in the oxm namespace of Spring Web Services.

Content assist an annotated attribute

In order to read the annotations Spring IDE looks up XSD schema files from the Eclipse XML Catalog. Therefore it is important that the XSD is known in the catalog and recognized by the XML editor. You can easily test if the schema is correctly installed by using code completion on the custom namespace elements or attributes.

Eclipse XML Catalog