Changes from 2.2.0 to 2.3.4
---------------------------

 * [2011-02-01] FELIX-2817: The maven-bundle-plugin manifest goal should honor the supportedProjectTypes configuration setting.
 * [2011-01-27] FELIX-2808: maven-bundle-plugin should scan for local packages by looking for *.class files instead of *.java so that all the JVM languages can be supported.
 * [2011-01-27] FELIX-2809: maven-bundle-plugin should automatically add "resolution:=optional" to imported packages that are in optional maven dependencies.
 * [2011-01-29] FELIX-2811: If <Private-Package>!*</Private-Package> is defined the all packages should be exported by {local-packages}
 * [2011-01-29] FELIX-2812: The <Embed-Dependency> filter can fail if your matching against multiple "*" artifact ids.

Changes from 2.1.0 to 2.2.0
---------------------------

 * [2010-11-17] FELIX-2701: Add {local-packages} macro, expands to local packages in <Export-Package> instruction
 * [2010-10-25] FELIX-2176: Update to latest bndlib (1.15.0)

Changes from 2.0.0 to 2.0.1
---------------------------

 * [2009-09-03] FELIX-1461: make local repository updates a bit more atomic
 * [2009-09-03] Temporary local bnd patch for Include-Resource bug on Windows
 * [2009-09-03] FELIX-1539: include additional source directories in local package calculation
 * [2009-09-03] FELIX-1439: add project organization name/url properties
 * [2009-09-03] FELIX-1501: use getProperty() instead of getProperties().getProperty()
 * [2009-09-03] FELIX-1552: add bnd support for blueprint and spring-dm declarations
 * [2009-09-03] FELIX-1148: apply local patch for MSHARED-101
 * [2009-09-03] FELIX-981: avoid spurious split package warnings
 * [2009-09-03] FELIX-1290: warn if Embed-Dependency doesn't match any dependencies
 * [2009-09-03] FELIX-1021: remove expression from classifier parameter (ie. same as jar plugin)
 * [2009-09-03] FELIX-1023: apply patch to add category information to OBR
 * [2009-09-03] Upgrade to bndlib 0.0.357
 * [2009-07-13] FELIX-1262: remove duplicate resource entries to avoid Bnd Tool error
 * [2009-04-24] FELIX-1054: when deploying a bundle, print computed uri on the console

Changes from 1.4.3 to 2.0.0
---------------------------

 * [2009-02-16] FELIX-807,FELIX-782,FELIX-660,FELIX-549,FELIX-546,FELIX-545: Use latest version of the Bnd Tool (0.0.311)
 * [2009-02-16] FELIX-941: store the generated default symbolicname in $(maven-symbolicname) property
 * [2009-02-16] FELIX-912: set default Export-Package based on local source files
 * [2009-02-16] FELIX-684: support filters in excludeDependencies, such as *;scope=runtime
 * [2009-02-16] FELIX-684: separate out dependency filtering code so we can re-use it when excluding
 * [2009-01-30] FELIX-806: pickup <archive> settings in bundleplugin configuration (otherwise fall back to the jarplugin settings) and enable support of the addMavenDescriptor setting
 * [2009-01-30] FELIX-850: local fix for MSHARED-86 (should use isFile instead of exists)
 * [2009-01-29] FELIX-899: update to latest editions of Bnd and Bindex
 * [2009-01-29] FELIX-899: first step, widen dependency resolution and pass everything except test dependencies onto BND
 * [2008-12-05] Additional debug to help with problem determination
 * [2008-12-03] FELIX-760: commit latest bindex code
 * [2008-12-03] FELIX-831,FELIX-677: update to version 0.0.295 of the Bnd tool
 * [2008-08-27] FELIX-699: set analyzer base before loading properties in manifest goal


Changes from 1.4.2 to 1.4.3
---------------------------

 * [2008-08-07] FELIX-661: maven bundle plugin does not close the accessed zip/jar streams

Changes from 1.4.1 to 1.4.2
---------------------------

 * [2008-08-03] FELIX-553: allow cleaning a remote OBR
 * [2008-08-03] FELIX-580: Allows maven-bunde-plugin to generate a repository file outide a maven repository with absolute url
 * [2008-07-09] FELIX-556: Filtering mechanims to <Embed-Dependency/>
 * [2008-07-08] FELIX-547: OBR portion of the plugin balks on singular version range of [1.0.0,1.0.0].
 * [2008-07-07] FELIX-620: manifest goal of maven-bundle-plugin ignores _include instruction
 * [2008-05-16] FELIX-560: bundle:install and bundle:deploy goals check artifact type is "bundle" instead of using the supportedProjectTypes list
 * [2008-05-16] FELIX-561: Use same level of Bnd in script generated by bundle:ant as in the bundleplugin itself

Changes from 1.4.0 to 1.4.1
---------------------------

 * [2008-04-30] FELIX-543: add switch to prevent classifier being appended to Bundle-Version
 * [2008-04-23] FELIX-541: allow repository.xml to reference to xsl file
 * [2008-04-23] FELIX-531: Allow the import package scope to be set for the bundleall goal in the maven-bundle-plugin
 * [2008-04-23] FELIX-523: Update bundleplugin to use BND 0.0.255
 * [2008-04-01] FELIX-526: Allow a mechanism to give preference to local resources over the ones from embedded jars
 * [2008-03-24] FELIX-519: maven-bundle-plugin should issue a WARNING for unsupported packaging types
 * [2008-03-16] FELIX-517: Replacement of {maven-dependencies} in Include-Resource and Bundle-ClassPath can strip Windows path separators
 * [2008-03-03] FELIX-505: maven-bundle-plugin:bundleall modifies dependencies that are already bundles

Changes from 1.2.1 to 1.4.0
---------------------------

 * [2008-02-20] FELIX-499: Enhance "excludeDependencies" configuration parameter to also support comma-separated list of artifactIds
 * [2008-02-20] FELIX-498: Enable javadoc deployment on OBR repository
 * [2008-02-19] FELIX-497: Genearated Source url is not a valid url
 * [2008-02-19] FELIX-493: maven-bundle-plugin bundle:install goal install too many artifact
 * [2008-02-19] FELIX-247: Add ant goal to maven-bundle-plugin which creates a build.xml and MANIFEST.MF with bundle headers
 * [2008-02-18] FELIX-492: Add support to classifier: enable bunlde:bundle goal to generate classified artifact
 * [2008-02-18] FELIX-491: Merge the maven-obr-plugin and the bundleplugin into a single plugin

Changes from 1.2.0 to 1.2.1
---------------------------

 * [2008-02-12] FELIX-477: BND: Versions with fourth section all numbers are truncated
 * [2008-02-06] FELIX-479: add supportedProjectTypes configuration option to install goal
 * [2008-02-02] FELIX-459: BND: allow customization of the "uses" clause in the generated Export-Package
 * [2008-01-30] FELIX-476: Improve default Export-Package (used when no Export-Package and Private-Package is set)
 * [2008-01-30] FELIX-462: Support removal of manifest headers added by the bundleplugin
 * [2008-01-30] FELIX-461: Ensure manifest goal creates same manifest as bundle goal when project packaging is "bundle"
 * [2008-01-29] FELIX-472: Embed-Dependency, Include-Resource and inline
 * [2008-01-29] FELIX-460: Remove "." from the Bundle-ClassPath when embedding dependencies in a bundle with no local classes
 * [2008-01-28] FELIX-457: remove PathFile class and use URIs instead
 * [2008-01-22] FELIX-458: BND: -split-package:=merge-first behaves like merge-last

Changes from 1.0.0 to 1.2.0
---------------------------

 * [2008-01-11] FELIX-455: need to use the Builder class instead of Analyzer, because it provides additional cleanup of version information
 * [2008-01-10] FELIX-451: remove Include-Resource header from final bundle manifest
 * [2008-01-10] FELIX-449: add 'excludeDependencies' option (disabled by default) to exclude all dependencies from the classpath passed to BND
 * [2008-01-09] FELIX-442: handle custom manifest sections and external manifest files
 * [2008-01-08] Update to bndlib 0.0.227 (disables spring xml parser by default)
 * [2007-12-27] FELIX-442: Add manifest entries from maven-jar-plugin configuration to final bundle
 * [2007-12-07] FELIX-433: add unpackBundle option that unpacks the bundle contents to the Maven output directory
 * [2007-11-18] FELIX-400: add resource code to properly handle Maven includes/excludes
 * [2007-11-01] Make Embed-StripGroup default to true, as it is much more useful than the current default
 * [2007-10-31] FELIX-417: fix project references
 * [2007-10-26] Better error messages (and detect difference between internal error and configuration error)
 * [2007-10-23] FELIX 406: fix Windows path entries in Bundle-ClassPath when embedding jars
 * [2007-10-22] FELIX-405: support custom obr repository filenames, such as foo.xml
 * [2007-10-21] FELIX-403: replace line-breaks with spaces when using Maven project description in Bundle manifest
 * [2007-10-19] FELIX-402: use correct manifest location when using reactor build
 * [2007-10-19] FELIX-400: fix array out of bounds exception when the resource directory is the same as the basedir
 * [2007-09-25] FELIX-360: various fixes to the bundleall goal
 * [2007-09-22] FELIX-370: OBR integration work
 * [2007-09-22] FELIX-306: be consistent and delegate all version mangling to BND library
 * [2007-09-21] FELIX-377: support -failok directive
 * [2007-09-21] FELIX-376: Support writing of manifest to the file system when using bundle goal
 * [2007-09-11] FELIX-352: provide informational error message when manifest goal is run before compile phase
 * [2007-08-26] FELIX-308: support embedding of artifacts with non-jar extension names
 * [2007-08-24] Workaround for MNG-1682 (incorrect extension used when installing to local repository)
 * [2007-08-23] FELIX-343: replace any instances of {maven-resources} in Include-Resource with the actual project's resource paths
 * [2007-08-23] FELIX-308: initial implementation to support embedding dependencies
 * [2007-08-22] FELIX-340: update classpath algorithm to match maven compilation classpath
 * [2007-08-14] FELIX-333: remove new-lines/form-feeds from property values.

Changes from 0.8.0-incubator to 1.0.0
-------------------------------------

* [2007-03-13] <Include-Resources> now supports JAR files in the class path,
  not just JAR files in the project directory.
* [2007-03-15] Fixed a bug in converting Maven version numbers to OSGi version
  numbers. (FELIX-256)
* [2007-03-28] Added support for using BND directives in the POM file.
  (FELIX-218)
* [2007-04-10] Added a recursive "bundleall" goal to generate OSGi bundles for
  all dependencies and a "manifest" goal to generate just the manifest.
  (FELIX-199)
* [2007-04-27] Modified the plugin so that it does not run on POM projects.
  (FELIX-269)
* [2007-05-17] Plugin now handles null property values better. (FELIX-281)
* [2007-05-20] Renamed project directory from maven-bundle-plugin to
  bundleplugin.
* [2007-05-20] Changed package naming.
* [2007-05-21] Improved handling of resource copying to copy the plugin's
  resources if specified or the standard Maven-specified resources. (FELIX-261)
* [2007-06-13] Factored out some common code. (FELIX-304)
* [2007-06-14] Enable output folder to be configured. (FELIX-305)
* [2007-07-05] Added support for overriding project type. (FELIX-309)
* [2007-07-09] Updated to BND version 0.0.160.
* [2007-07-11] Fix a possible NullPointerException in the manifest goal. (FELIX-326)

