Tag Archive for 'release'

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

Spring IDE 2.0.2 RC1 released

We are pleased to announce that Spring IDE 2.0.2 RC1 has been released! This is the first and only release candidate for Spring IDE 2.0.2, introducing various feature refinements (new content assist and hyperlink architecture) as well as fixes for bugs that have been reported against 2.0.1.

See the JIRA roadmap for a complete list of bugs fixes and new features. The release candidate is available from the development update site at http://springide.org/updatesite-dev.

The 2.0.2 final release is scheduled for December 2nd.

Spring IDE 2.0 is Final

We have just released the final version of Spring IDE 2.0.

After fixing approximately 250 bugs and working uncountable hours on adding support for Spring 2.0, Spring Web Flow, Spring AOP and Spring JavaConfig, we are proud to announce the immediate availability of Spring IDE 2.0.

The progress we’ve made since version 1.3.6 was only possible because of constant community feedback; it is the community feedback that kept us going. Therefore we would like to take the chance to thank everybody who submitted a ticket, provided feedback and helped spreading the word about Spring IDE in the past.

Download | Installation | Change Log

The release is available from our release update site. Spring IDE 2.0 is licensed under the terms of the Eclipse Public License - v1.0.

New Features

Spring IDE 2.0 contains lots of new features and a bunch of bug fixes. A list of all closed tickets is available in our ticketing system. For those of you that are not familiar with recent development of Spring IDE here is a short list of features included:

  • Support for Spring 2.0 namespace-based configurations. We have put lots of work into that to make the support as extensible as possible. You can read more about that in another post.
  • Support for Spring Web Flow, including an extension to WTP’s XML editor for content assist and hyperlinking as well as validation and graphical editing. More information is available here.
  • Tools for Spring AOP based development. This includes support for validating configurations (parsing of pointcut expressions) and visualization of cross cutting references based on <aop:config> and @AspectJ-style aspects.
  • Support for Spring JavaConfig M2. This serves as sandbox for testing the extension points of Spring IDE’s core. Read more about that here and here.
  • Usability and UI improvements: A new Spring Explorer that replaces the Beans View, Content contribution to the Eclipse’s Project Explorer, a Spring Working Set type to reduce cluttering in the Project and Spring Explorer, Refactoring participants for rename and move refactorings of Java Packages and Classes as well as Bean names, New Project and Spring Bean configuration file wizard.

Spring IDE 2.0 is compatible with upcoming Eclipse 3.3 (aka Eclipse Europa).
Support for Spring 2.1 Features

Spring IDE’s AOP feature supports Spring 2.1’s new bean(<name pattern>) pointcut primitive that enables you to specify a certain bean or a set of beans for pointcut matching. For example the pointcut definition

<aop:pointcut expression="bean(serviceBean)"/>

would only match on a bean named serviceBean. Certainly you can combine the bean pointcut primitive with any other primitive that is supported by Spring. It even works for @AspectJ-style aspects.

Furthermore Spring IDE 2.0 supports the <context:component-scan/> facility. Beans created by the class path scanning infrastructure are recognized by Spring IDE and handled as normal beans; though they are visually marked with an @ icon decoration.

Once the new Spring 2.1 configuration namespaces are finalized we will add support for them asap.

Enjoy…