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.
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.
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
(notice the missing
bundle word). Additionally, the documentation has been updated to reflect Spring 2.5.6+ symbolic names.
To minimize the number of repositories used and the confusion caused by OSGified vs non-OSGified artifacts especially to users using Spring dm Server,
after 1.2.0 RC1, Spring Dynamic Modules aligned as many of its dependencies as possible with SpringSource EBR.
In practice this means that Spring framework artifacts, such as
spring-aop.jar can be now found as
We apologize for any inconvenience created to users relying on these naming conventions.
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 9, Web Support for details.
Additionally, with 1.1.x it is possible to run Spring-MVC applications inside OSGi environments. See Section 9.7, “Spring-MVC Integration” for more information.
1.1.x adds support for
classpath*: prefixes to the OSGi
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 5.4, “The Resource Abstraction” for more information.
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 5.1, “The Spring Dynamic Modules Extender bundle” lists the available options and explains them in detail.