ECLIPSE GEMINI BLUEPRINT CHANGELOG
==================================
http://www.eclipse.org/gemini/blueprint

Changes in version 1.0.2.RELEASE (2012-08-31)
---------------------------------------------

General:
* Bug 384748 - ConcurrentModificationException in DependencyServiceManager
* Bug 388496 - ShutdownSorter produces IllegalStateException

Changes in version 1.0.1.RELEASE (2012-08-23)
---------------------------------------------

General:
* Bug 385307 - Substitutable exports
* Bug 381871 - Testcase pom error

Changes in version 1.0.1.M01 (2012-05-29)
-----------------------------------------

General
* Bug 375225: Support Spring 3.1.x.
* Bug 379384: Make optional imports of essential packages mandatory in extender


Changes in version 1.0.0 RELEASE (2011-08-22)
---------------------------------------------

General
* upgraded to Spring Framework 3.0.6
* Improved Javadoc documentation

Package org.eclipse.gemini.blueprint.extender
* fixed bug that prevented namespaces of bundles already resolved to be considered

Package org.eclipse.gemini.blueprint.service
* reintroduced Spring DM specific properties on imported services


Changes in version 1.0.0 RC1 (2011-06-20)
-----------------------------------------

General
* upgraded to Spring Framework 3.0.4
* upgraded to Equinox 3.6.2
* upgraded to Felix 2.0.5
* upgraded to Knopflerfish 3.1.0
* migrated Spring DM documentation to Eclipse Gemini Blueprint
* introduced Gemini Blueprint schemas (gemini-blueprint.xsd and gemini-blueprint-compendium.xsd)

Package org.eclipse.gemini.blueprint.context
* reintroduced Spring DM specific properties on exported services
* fixed bug occuring in context service publication when a Java security manager is enabled

Package org.eclipse.gemini.blueprint.extender
* introduced system property for filtering the state of namespace bundles scanned by the extender
* reverted the filtering of namespace bundles to RESOLVED (instead of STARTED - which can still be selected)
* fixed bug preventing custom timeouts to be configured on the extender

Package org.eclipse.gemini.blueprint.service
* reintroduced Spring DM specific properties on exported services


Changes in version 1.0.0 M1 (2010-06-30)
----------------------------------------

General
* renamed packages to reflect the move to Eclipse Gemini (org.springframework.osgi -> org.eclipse.gemini.blueprint)
* namespace definitions are still called spring-osgi.xsd/spring-osgi-compendium.xsd in this release
* upgraded to Felix 2.0.2
* upgraded to Knopflerfish 3.0.0.beta3
* upgraded to CGLib 2.2.0
* removed 'update-strategy' attribute (spring-osgi-compendium.xsd)
* improved timeout schema types to improve declaration validation
* introduced two extra attributes to 'cm-properties' element (spring-osgi-compendium.xsd)
* introduced service-properties to 'managed-service-factory' element (spring-osgi-compendium.xsd)

Package org.eclipse.gemini.blueprint.compendium
* improved configuration admin update handling by supporting both container and bean management on the same declaration
* introduced initialization timeout option to cm-properties
* introduced lazy initialization option to cm-properties
* introduced service properties option to managed-service-factory

Package org.eclipse.gemini.blueprint.io
* improved pattern matching against jar entries in the bundle classpath
* fixed pattern matching against packages imported from bundles with custom classpaths

Package org.eclipse.gemini.blueprint.test
* added check for unresolved fragments during test startup