You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CHANGELOG.md 14KB

hace 8 años
hace 5 años
hace 5 años
hace 5 años
hace 5 años
hace 5 años
hace 5 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 7 años
hace 7 años
hace 7 años
hace 7 años
hace 7 años
hace 8 años
hace 6 años
hace 8 años
hace 5 años
hace 5 años
hace 6 años
hace 5 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 6 años
hace 7 años
hace 7 años
hace 8 años
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. ## Change Log
  2. All notable changes to this project will be documented in this file.
  3. This project adheres to [Semantic Versioning](http://semver.org/).
  4. ### [Unreleased][unreleased]
  5. #### Fixed
  6. #### Changed
  7. #### Added
  8. #### Removed
  9. ### [2.6.0] - 2019-02-01
  10. #### Fixed
  11. - [#273]: `ServiceProviderExtensionFinder` should scan the whole classpath
  12. - [#276]: The plugins in the demo did not load successfully
  13. - [#277]: Configures plugin manager to load "HowdyGreeting" using the services
  14. #### Changed
  15. - Improve run demo scripts
  16. - [#248]: Load extensions from plugin libraries
  17. - [#271]: Update `slf4j` dependency to version 1.7.25
  18. #### Added
  19. - [#265]: Explicitly configure extension points for an extension
  20. - [#270]: Optional plugin dependencies
  21. - [#275]: Add automatic module name to `pf4j.jar`
  22. #### Removed
  23. ### [2.5.0] - 2018-12-12
  24. #### Fixed
  25. - [#248]: Plugin upgrade version order not guaranteed
  26. - [#250]: Method `DependencyResolver.resolve` removes dependents in check version block
  27. - [#252]: `java.nio.file.FileSystemNotFoundException`
  28. #### Changed
  29. - [#209]: Why "plugin.properties" is required?
  30. #### Added
  31. - [#242]: Add delete hook method in `Plugin`
  32. - [#256]: Adds ability to configure plugin directory
  33. #### Removed
  34. ### [2.4.0] - 2018-08-01
  35. #### Fixed
  36. - [#222]: Correct the class passed to `DefaultPluginFactory's` logger
  37. - [#223]: A disabled plugin is automatically started by `pluginManager.startPlugins()`
  38. - [#229]: Can't find `plugin.properties` file inside `.jar`
  39. - Fix error in `FileUtils.getFileSystem`
  40. #### Changed
  41. #### Added
  42. - [#229]: Add `SingletonExtensionFactory`
  43. - [#229]: Allow a way to query all extension classes for a given plugin
  44. #### Removed
  45. ### [2.3.0] - 2018-06-04
  46. #### Fixed
  47. - [#202]: Spaces in name produce 'Illegal character in opaque part at index'
  48. - [#203]: File lock on plugin jar not released
  49. #### Changed
  50. - [#171]: Change the copyright text from the head of files
  51. - [#218]: It should not return null after it detects that the plugin has been loaded
  52. - [#219]: Improve support for Gradle and Kotlin
  53. #### Added
  54. - [#199]: Make optional the plugin class attribute of plugin manifest
  55. - [#206]: Support multiple plugin directories
  56. - Add aliases to the runtime modes (`dev` for `development` and `prod` for `deployment`)
  57. #### Removed
  58. ### [2.2.0] - 2018-02-11
  59. #### Fixed
  60. - [#197]: Close `JarFile` stream after `getManifest` in `ManifestPluginDescriptorFinder.find(Path pluginPath)`
  61. - Before start a plugin check if the plugin is resolved
  62. - [#200]: Compiling with Maven under Java9 breaks project
  63. #### Changed
  64. - [#194]: Changing packaging from ZIP to JAR for demo
  65. - Improve `VersionManager` (prepare a new `pf4j-update` release)
  66. #### Added
  67. - [#166]: Simplify main `README` (move the content to http://www.pf4j.org)
  68. - [#190]: Add methods to just get extension classes
  69. - Add `LoggingPluginStateListener` as listener in `DefaultPluginManager` (only for `development` mode)
  70. - Add new `RESOLVED` as plugin state
  71. - Add support for PARENT FIRST loading strategy
  72. #### Removed
  73. ### [2.1.0] - 2018-01-10
  74. #### Fixed
  75. - [#177]: Fix Gradle demo
  76. - [#178]: `@Override` should not change method signature
  77. - [#184]: Bug in FileUtils while creating URI on Windows
  78. #### Changed
  79. - [#180]: Refactoring to make `PluginDescriptor` more usable
  80. #### Added
  81. #### Removed
  82. ### [2.0.0] - 2017-10-17
  83. #### Fixed
  84. - [#156]: `FileSystemException` when I call `deletePlugin` after `getExtensions`
  85. - Fix Maven warnings
  86. #### Changed
  87. - [#149]: Updated gradle demo dependencies and switched from System.out.println to slf4j log
  88. - Update some code to Java 7
  89. - [#168]: Change root package from `ro.fortsoft.pf4j` to `org.pf4j`
  90. - Open a new extension (protected method) point in `PropertiesPluginDescriptorFinder`
  91. #### Added
  92. - [#146]: Kotlin plugin example added and README updated for Kotlin
  93. - [#150]: Enforce dependencies versions
  94. - [#155]: Add VersionManager abstractization (breaking change)
  95. - [#172]: Add `CompoundPluginDescriptorFinder`
  96. - Add `CompoundPluginLoader`
  97. #### Removed
  98. - Remove `JarPluginManager` (the logic is included in `DefaultPluginManager` via `CompoundXYZ` concept)
  99. ### [1.3.0] - 2017-05-03
  100. #### Fixed
  101. - [#129]: Properties Descriptor finder bug fixes and a test
  102. - [#131]: Fix bug in `loadJars()`, did not add `/lib` to classloader
  103. - [#134]: `getVersion()` use wrong class for calculating PF4J version
  104. - [#135]: `deletePlugin()` failed to delete plugin folder with contents
  105. - [#137]: The requires Expression does not print well
  106. - [#140]: Unzip plugin zip file in `loadPluginFromPath()`
  107. #### Changed
  108. - [#130]: Refactor validation of PluginDescriptors
  109. - [#138]: Refactor of requires in PluginDescriptor (breaking change)
  110. #### Added
  111. - [#133]: Support for adding license information to the plugins
  112. - [#136]: Delete plugin zip on uninstall
  113. - [#139]: Ability to get `pluginsRoot` from PluginManager
  114. - Add constructors with varargs in PippoException
  115. #### Removed
  116. ### [1.2.0] - 2017-03-03
  117. #### Fixed
  118. - [#125]: Fix possible NPE
  119. #### Changed
  120. - [#116]: Updated PF4J to newest version in Gradle demo
  121. - Reactivate protection against the issues similar with [#97]
  122. #### Added
  123. - [#128]: Add `JarPluginManager`, `PluginLoader`, `AbstractPluginManager`
  124. #### Removed
  125. ### [1.1.1] - 2016-11-17
  126. #### Fixed
  127. - [#116]: Default/System extensions are duplicated
  128. #### Changed
  129. #### Added
  130. - [#111]: Add inheritance support on Extension annotation
  131. #### Removed
  132. ### [1.1.0] - 2016-08-22
  133. #### Fixed
  134. #### Changed
  135. - [#107]: PluginDescriptor can't be extended
  136. #### Added
  137. - [#108]: Return a list of all extensions from a plugin and optional for an extension point
  138. #### Removed
  139. ### [1.0.0] - 2016-07-07
  140. #### Fixed
  141. - [#99]: NPE in `DefaultPluginManager.stopPlugin()`
  142. - [#100]: Gradle build in demo_gradle is broken
  143. - [#103]: Gradle demos don't build zip with libs
  144. - Fix logging issue in demo
  145. #### Changed
  146. - Rework defense against [#97]
  147. - Eliminate duplicate log messages from demo
  148. - Improve debugging for "no extensions found"
  149. #### Added
  150. #### Removed
  151. ### [0.13.1] - 2016-04-01
  152. #### Fixed
  153. - [#98]: WARN ro.fortsoft.pf4j.AbstractExtensionFinder (too many log lines)
  154. ### [0.13.0] - 2016-03-28
  155. #### Fixed
  156. - Fix issue with listing files from the jar file in `readPluginsStorages()`
  157. - [#89]: Fix "URI is not hierarchical" issue
  158. - [#91]: Using project lombok with pf4j causes javax.annotation.processing.FilerException
  159. #### Changed
  160. - Log with trace level on PluginClassLoader
  161. #### Added
  162. - Add `distributionManagement` section in `pom.xml`
  163. - Add defense to [#97]
  164. - Add helper `DefaultExtensionFinder.addServiceProviderExtensionFinder()`
  165. #### Removed
  166. - Disable `ServiceProviderExtensionFinder` from `DefaultExtensionFinder`
  167. ### [0.12.0] - 2016-01-29
  168. #### Fixed
  169. - [#83]: `stopPlugin()` throws NPE for dependents check
  170. - In development mode hide `plugins/target` folder (it' is not a plugin)
  171. #### Changed
  172. - Add constructor with vararg and make `addFileFilter()` fluent in `AndFileFilter`
  173. - [#84]: remove warn from `DefaultPluginManager.whichPlugin()`
  174. - Pull method `DefaultPluginManager.whichPlugin()` to PluginManager
  175. - Add `getExtensionFactory()` in PluginManager interface
  176. #### Added
  177. - Add constructor with vararg and make addFileFilter method fluent in `AndFileFilter`
  178. - Add `NameFileFilter` and `OrFileFilter`
  179. - [#85]: ExtensionStorage based on Java Service Provider (META-INf/services)
  180. #### Removed
  181. ### [0.11.0] - 2015-11-19
  182. #### Fixed
  183. - [#78]: `PluginManager.disablePlugin()` throws UnsupportedOperationExeption
  184. #### Changed
  185. - Make more fields protected in DefaultPluginManager
  186. - [#70]: Improve PluginDescriptorFinder implementations
  187. - Make PluginManager available in Plugin via PluginWrapper
  188. #### Added
  189. - [#66]: Add possibility to overwrite DefaultPluginManager (to create a JarPluginManager)
  190. - Added one more fail test to DefaultPluginFactory
  191. - Added one more fail test to DefaultExtensionFactory
  192. - Added ManifestPluginDescriptorFinder tests
  193. #### Removed
  194. ### [0.10.0] - 2015-08-11
  195. #### Fixed
  196. - [#39]: Fix build on JDK 1.8
  197. - [42]: Stop Plugin issue
  198. - [60]: Failed tests
  199. #### Changed
  200. - Improve logging for DefaultExtensionFinder
  201. - Add defense for [#21]: (not find META-INF/extensions.idx)
  202. - [#44]: Replace `Version` class with `semver` lib
  203. - [#55]: Stop plugin leafs first
  204. - [63]: Extended pf4j to allow custom class loaders to be created
  205. #### Added
  206. - [#33]: Add demo build configuration with Gradle
  207. - [#40]: Add Plugin status provider
  208. - [#41]: Added plugin archive source abstraction
  209. - Added test for DefaultPluginRepository
  210. #### Removed
  211. [unreleased]: https://github.com/decebals/pf4j/compare/release-2.6.0...HEAD
  212. [2.6.0]: https://github.com/decebals/pf4j/compare/release-2.5.0...release-2.6.0
  213. [2.5.0]: https://github.com/decebals/pf4j/compare/release-2.4.0...release-2.5.0
  214. [2.4.0]: https://github.com/decebals/pf4j/compare/release-2.3.0...release-2.4.0
  215. [2.3.0]: https://github.com/decebals/pf4j/compare/release-2.2.0...release-2.3.0
  216. [2.2.0]: https://github.com/decebals/pf4j/compare/release-2.1.0...release-2.2.0
  217. [2.1.0]: https://github.com/decebals/pf4j/compare/release-2.0.0...release-2.1.0
  218. [2.0.0]: https://github.com/decebals/pf4j/compare/release-1.3.0...release-2.0.0
  219. [1.3.0]: https://github.com/decebals/pf4j/compare/release-1.2.0...release-1.3.0
  220. [1.2.0]: https://github.com/decebals/pf4j/compare/release-1.1.1...release-1.2.0
  221. [1.1.1]: https://github.com/decebals/pf4j/compare/release-1.1.0...release-1.1.1
  222. [1.1.0]: https://github.com/decebals/pf4j/compare/release-1.0.0...release-1.1.0
  223. [1.0.0]: https://github.com/decebals/pf4j/compare/release-0.13.1...release-1.0.0
  224. [0.13.1]: https://github.com/decebals/pf4j/compare/release-0.13.0...release-0.13.1
  225. [0.13.0]: https://github.com/decebals/pf4j/compare/release-0.12.0...release-0.13.0
  226. [0.12.0]: https://github.com/decebals/pf4j/compare/release-0.11.0...release-0.12.0
  227. [0.11.0]: https://github.com/decebals/pf4j/compare/release-0.10.0...release-0.11.0
  228. [0.10.0]: https://github.com/decebals/pf4j/compare/release-0.9.0...release-0.10.0
  229. [#277]: https://github.com/pf4j/pf4j/pull/277
  230. [#276]: https://github.com/pf4j/pf4j/pull/276
  231. [#275]: https://github.com/pf4j/pf4j/pull/275
  232. [#273]: https://github.com/pf4j/pf4j/pull/273
  233. [#271]: https://github.com/pf4j/pf4j/pull/271
  234. [#270]: https://github.com/pf4j/pf4j/pull/270
  235. [#265]: https://github.com/pf4j/pf4j/pull/265
  236. [#262]: https://github.com/pf4j/pf4j/pull/262
  237. [#256]: https://github.com/pf4j/pf4j/pull/256
  238. [#252]: https://github.com/pf4j/pf4j/issues/252
  239. [#250]: https://github.com/pf4j/pf4j/issues/250
  240. [#248]: https://github.com/pf4j/pf4j/issues/248
  241. [#242]: https://github.com/pf4j/pf4j/issues/242
  242. [#233]: https://github.com/pf4j/pf4j/pull/233
  243. [#232]: https://github.com/pf4j/pf4j/issues/232
  244. [#229]: https://github.com/pf4j/pf4j/issues/229
  245. [#223]: https://github.com/pf4j/pf4j/issues/223
  246. [#222]: https://github.com/pf4j/pf4j/pull/222
  247. [#219]: https://github.com/pf4j/pf4j/pull/219
  248. [#218]: https://github.com/pf4j/pf4j/issues/218
  249. [#209]: https://github.com/pf4j/pf4j/issues/209
  250. [#206]: https://github.com/pf4j/pf4j/issues/206
  251. [#203]: https://github.com/pf4j/pf4j/issues/203
  252. [#202]: https://github.com/pf4j/pf4j/issues/202
  253. [#200]: https://github.com/decebals/pf4j/issues/200
  254. [#199]: https://github.com/pf4j/pf4j/issues/199
  255. [#197]: https://github.com/decebals/pf4j/pull/197
  256. [#194]: https://github.com/decebals/pf4j/pull/194
  257. [#190]: https://github.com/decebals/pf4j/issues/190
  258. [#184]: https://github.com/decebals/pf4j/issues/184
  259. [#180]: https://github.com/decebals/pf4j/pull/180
  260. [#178]: https://github.com/decebals/pf4j/pull/178
  261. [#177]: https://github.com/decebals/pf4j/pull/177
  262. [#172]: https://github.com/decebals/pf4j/pull/172
  263. [#171]: https://github.com/pf4j/pf4j/issues/171
  264. [#168]: https://github.com/decebals/pf4j/pull/168
  265. [#166]: https://github.com/decebals/pf4j/issues/166
  266. [#156]: https://github.com/decebals/pf4j/issues/156
  267. [#155]: https://github.com/decebals/pf4j/pull/155
  268. [#150]: https://github.com/decebals/pf4j/pull/150
  269. [#149]: https://github.com/decebals/pf4j/pull/149
  270. [#146]: https://github.com/decebals/pf4j/pull/146
  271. [#140]: https://github.com/decebals/pf4j/pull/140
  272. [#139]: https://github.com/decebals/pf4j/pull/139
  273. [#138]: https://github.com/decebals/pf4j/pull/138
  274. [#137]: https://github.com/decebals/pf4j/pull/137
  275. [#136]: https://github.com/decebals/pf4j/pull/136
  276. [#135]: https://github.com/decebals/pf4j/pull/135
  277. [#134]: https://github.com/decebals/pf4j/pull/134
  278. [#133]: https://github.com/decebals/pf4j/pull/133
  279. [#131]: https://github.com/decebals/pf4j/pull/131
  280. [#130]: https://github.com/decebals/pf4j/pull/130
  281. [#129]: https://github.com/decebals/pf4j/pull/129
  282. [#128]: https://github.com/decebals/pf4j/pull/128
  283. [#125]: https://github.com/decebals/pf4j/pull/125
  284. [#122]: https://github.com/decebals/pf4j/pull/122
  285. [#116]: https://github.com/decebals/pf4j/issues/116
  286. [#111]: https://github.com/decebals/pf4j/pull/111
  287. [#108]: https://github.com/decebals/pf4j/pull/108
  288. [#107]: https://github.com/decebals/pf4j/issues/107
  289. [#103]: https://github.com/decebals/pf4j/issues/103
  290. [#100]: https://github.com/decebals/pf4j/issues/100
  291. [#99]: https://github.com/decebals/pf4j/issues/99
  292. [#98]: https://github.com/decebals/pf4j/issues/98
  293. [#97]: https://github.com/decebals/pf4j/issues/97
  294. [#91]: https://github.com/decebals/pf4j/issues/91
  295. [#89]: https://github.com/decebals/pf4j/pull/89
  296. [#85]: https://github.com/decebals/pf4j/issues/85
  297. [#84]: https://github.com/decebals/pf4j/issues/84
  298. [#83]: https://github.com/decebals/pf4j/issues/83
  299. [#78]: https://github.com/decebals/pf4j/issues/78
  300. [#70]: https://github.com/decebals/pf4j/issues/70
  301. [#66]: https://github.com/decebals/pf4j/issues/66
  302. [#63]: https://github.com/decebals/pf4j/issues/63
  303. [#60]: https://github.com/decebals/pf4j/issues/60
  304. [#55]: https://github.com/decebals/pf4j/pull/55
  305. [#44]: https://github.com/decebals/pf4j/pull/44
  306. [#42]: https://github.com/decebals/pf4j/pull/42
  307. [#41]: https://github.com/decebals/pf4j/pull/41
  308. [#40]: https://github.com/decebals/pf4j/pull/40
  309. [#39]: https://github.com/decebals/pf4j/pull/39
  310. [#33]: https://github.com/decebals/pf4j/pull/33
  311. [#21]: https://github.com/decebals/pf4j/issues/21