Chapter 3. What is new?

While a relatively young project, each version of Spring Dynamic Modules (even minor ones) offers new functionality. This chapter is a guide to the new and improved feature and intended as a high-level, short summary. Please follow the appropriate links for more in-depth information.

3.1. 1.1.x

3.1.1. Web Support

The biggest feature in Spring Dynamic Modules 1.1.x is the transparent support for web applications on OSGi platforms. By integrating directly with web containers (such as Apache Tomcat and Jetty), Spring DM allows WARs using Servlet, JSP and taglib technologies to be used with little or no effort at all. Please see Chapter 8, Web Support for details. Spring-MVC Integration

Additionally, with 1.1.x it is possible to run Spring-MVC applications inside OSGi environments. See Section 8.7, “Spring-MVC Integration” for more information.

3.1.2. Classpath Resource Abstraction

1.1.x adds support for classpath: and classpath*: prefixes to the OSGi Resource abstraction. This allows the discovery of classpath resources (such as Spring's component scanning) to work out-of-the-box across multiple bundles on the supported OSGi platforms. See Section 4.4, “The Resource abstraction” for more information.

3.1.3. Pluggable Extender Configuration

1.1.x makes it easy to change the default configuration for the various extenders used by Spring DM. By using fragments, users can customize the way application contexts are started, the web container used for web deployment or the thread-pool for running Spring applications. Additionally, it is possible to receive events regarding the OSGi Spring application contexts lifecycle. Section 4.1, “The Spring Dynamic Modules Extender bundle” lists the available options and explains them in detail.

3.1.4. Improved class loading

In 1.1.x, the proxy creation has been improved, leading to better package wiring for the managed bundles. See the FAQ for more information.

3.2. 1.2.x

3.2.1. Java 2 Security Integration

Since 1.2.x, Spring Dynamic Modules is aware of secured environments by making use of dedicated privileged blocks for executing security sensitive code. Thus, Spring DM can run as a trusted library without requiring escalated permissions for its managed bundles. See Appendix B, Security Integration for more information.

3.2.2. Compendium Services Support

1.2.x provides integration with the Configuration Admin, part of the OSGi compendium services. Chapter 9, Compendium Services provides more details on the topic.

3.2.3. Changed Spring DM symbolic names

Since 1.2.0 M2, the Spring DM bundles symbolic names have been aligned with Spring's 2.5.6+. Thus the prefix org.springframework.bundle.osgi has been changed to org.springframework.osgi; for example Spring DM extender symbolic name was changed from org.springframework.bundle.osgi.extender to org.springframework.osgi.extender (notice the missing bundle word). Additionally, the documentation has been updated to reflect Spring 2.5.6+ symbolic names.