blob: 389e40a978f2ed859c6613cbb4c5acdc270a9e73 [file] [log] [blame]
Karl Paulsada98d32009-05-10 21:17:39 +00001Changes form 1.6.1 to 1.8.0
2---------------------------
3** Bug
4 * [FELIX-1034] - bootdelegation property seems to be matching more packages than desired
5 * [FELIX-1059] - DynamicImport-Package matches more packages than desired
6
7** Improvement
8 * [FELIX-1060] - URLHandlers doesn't support URLStreamHandler.openConnection(proxy,url) method
9
10** New Feature
11 * [FELIX-29] - Implement bundle fragments
12
Karl Pauls93445052009-04-26 20:36:08 +000013Changes from 1.6.0 to 1.6.1
14---------------------------
15** Bug
16 * [FELIX-1027] - deadlock with felix 1.6.0 ?
17 * [FELIX-1028] - NPE in configuration view when running webconsole with Equinox
18 * [FELIX-1033] - Exceptions when Felix is started with security manager
19 * [FELIX-1035] - deadlock observed while using fileinstall to monitor multiple directories
20 * [FELIX-1045] - Felix 1.6.0 fails with ClassCircularityError
21
Karl Paulsb3760352009-03-31 21:06:46 +000022Changes from 1.4.1 to 1.6.0
23---------------------------
24
25** Bug
26 * [FELIX-737] - Resolver does not correctly discard export when module imports the same package (part 2)
27 * [FELIX-852] - Fragment support is currently limited to directly resolved hosts
28 * [FELIX-869] - SCR throws exception on invalidating a component with a reference to a service that was already unregistered
29 * [FELIX-891] - Bundle lock acquisition should not record lock until it verifies the bundle is lockable
30 * [FELIX-892] - ServiceReferenceImpl improper implementation of equals and hashcode
31 * [FELIX-893] - Felix fails to start using J9 JVM
32 * [FELIX-897] - Empty system package is exported when a semicolon is present in "extra" configuration
33 * [FELIX-902] - Empty bundle.state file produces NPE
34 * [FELIX-910] - Framework may ignore framework startlevel on startup
35 * [FELIX-911] - Potential deadlock between Bundle.stop() and BundleContext.registerService()
36 * [FELIX-915] - PackageAdmin returns null on getBundle(...) with system classes
37 * [FELIX-934] - Bootdelegation bug
38 * [FELIX-947] - Behaviour of startlevel comman doesn't adhere to spec
39 * [FELIX-948] - ServiceReferenceImpl.compareTo should handle other types than integer for service ranking
40 * [FELIX-951] - Deadlock in iPojo when stopping Felix
41 * [FELIX-952] - Exception thrown when unregistering services because the bundle is stopped
42 * [FELIX-953] - Bundle#loadClass sometimes return null instead of throwing a CNFE
43 * [FELIX-961] - 100% CPU looping inside uses calculation
44 * [FELIX-962] - Erroneous class loading delegation to the application launcher classloader in some cases
45 * [FELIX-969] - system bundle does not correctly handle (export) package attributes
46 * [FELIX-971] - Exception thrown in ServiceTracker at shutdown
47 * [FELIX-978] - Resolver does not clean up properly on a failed recursive attempt to resolve
48 * [FELIX-1004] - Extensionmanager openConnection(URL) method should be public
49 * [FELIX-1005] - Strange list of imported packages returned by the package admin
50
51** Improvement
52 * [FELIX-681] - Modify daemon threads to catch all exceptions and log them to avoid premature thread death
53 * [FELIX-851] - Refactor the module abstraction layer to align more closely to OSGi concepts
54 * [FELIX-872] - JarContent swallows exception when opening manifest, it should log it
55 * [FELIX-883] - JarContent logs and then swallows exceptions when reading from JAR file, should probably throw an exception
56 * [FELIX-894] - Loosen locking when starting/stopping/uninstalling a bundle by firing event without holding a lock
57 * [FELIX-908] - Unsynchronize access to bundle state inside BundleInfo by making the variable volatile
58
Karl Paulsce873782008-12-20 16:27:49 +000059Changes from 1.4.0 to 1.4.1
60---------------------------
61
62* [2008-12-19] Refactor the URLHandlers implementation to fix a possible
63 Linkage-Error when running embedded inside tomcat. Furthermore, make it possible
64 to dynamically set a SecurityManager, change the url we add to the framework
65 classloader to fix issues with rmi and make sure we restore the previous URLStreamHandlerFactory
66 after stopping. (FELIX-842, FELIX-837, FELIX-844, FELIX-827)
67* [2008-12-19] Add missing javax.security.cert in JRE 1.4 and 1.5. (FELIX-854)
68* [2008-12-19] Improve framework internal locking protocol.
69* [2008-12-18] Fixed an issue where bundles with a non-existing native library
70 would not be removed correctly. (FELIX-835)
71* [2008-11-21] Throw an exception when there is an attempt to start or stop a
72 fragment, as per the spec. (FELIX-820)
73* [2008-11-20] Fixed a bug during shutdown where uninstalled fragments are not
74 properly closed. (FELIX-819)
75* [2008-11-14] Added partial support for new service registry hooks as proposed
76 for OSGi R4.2; currently, only listener hooks are supported. (FELIX-804)
77* [2008-11-08] Fixed Felix' delegation hack so that it correctly delegates to
78 the parent class loader for resources as appropriate; previously it was always
79 delegating for class loading, which was incorrect. (FELIX-808)
80
Karl Paulsc4c541d2008-11-06 16:17:00 +000081Changes from 1.2.2 to 1.4.0
82---------------------------
Karl Paulsce873782008-12-20 16:27:49 +000083
Karl Paulsc4c541d2008-11-06 16:17:00 +000084* [2008-11-05] URLStreamHandlerService and ContentHandlerService override
85 built-in handlers and make it possible to use URLHandlers when extending the
86 Felix class. (FELIX-756, FELIX-800)
87* [2008-11-04] Implement ServiceReference.compareTo() method. (FELIX-799)
88* [2008-10-31] Fix some visibility issues in the LDAP operators which could
89 result in incorrect toString values. (FELIX-765)
90* [2008-10-31] Fixed spec compliance issues around getting a service reference
91 from an invalid registration and throwing an exception when there are
92 duplicate property keys. (FELIX-798)
93* [2008-10-21] Fixed an issue with extension bundles which would be installed
94 as fragments and fail to install extension bundles if they have incomplete
95 metadata. (FELIX-770)
96* [2008-10-21] Fix a possible deadlock in URLHandlers. (FELIX-748)
97* [2008-10-16] Modified framework to have default values for the system
98 packages property, which also required modifying main to no longer expect to
99 set it. Now it is possible to start Felix with no configuration properties.
100 (FELIX-753)
101* [2008-10-16] Update felix to work with the 1.0.0-rc1 version of the android
102 sdk.
103* [2008-10-15] Implemented remaining PackageAdmin methods from R4. (FELIX-35)
104* [2008-10-15] Modified resolver to correctly mark fragment modules as resolved.
105 (FELIX-777)
106* [2008-10-15] Modified the resolver to longer consider uninstalled fragments
107 and hosts when resolving dependencies; this required a new "stale" flag on
108 modules that gets set when their associated bundle is uninstalled. (FELIX-776)
109* [2008-10-15] Modified the resolver to sort candidates when resolving
110 Require-Bundle dependencies. (FELIX-775)
111* [2008-10-14] Modified ExportedPackage.getImportingBundles() to include
112 bundles requiring the exporting bundle, in addition to those bundles
113 importing the package. Also tried to simplify dependency management code
114 by separating it out. (FELIX-764)
115* [2008-10-14] Fix a NullPointerException in SecureAction when a
116 SecurityManager is used by keeping pointers on the local stack. (FELIX-766)
117* [2008-10-13] Use System.gc to allow to update and uninstall bundles with
118 native libs on Windows. (FELIX-733)
119* [2008-10-10] Set the activator to null on Bundle.stop() to allow for earlier
120 garbage collection. (FELIX-762)
121* [2008-10-10] Implements support for flushing the cache on framework
122 initialization. (FELIX-755)
123* [2008-10-10] Improve exception messages. (FELIX-750)
124* [2008-10-09] Modified the bundle cache to no longer have profiles. (FELIX-754)
125* [2008-10-08] Modified the Felix API to aligned with the proposed standard
126 OSGi framework API. The framework instance can now be stopped and restarted.
127 (FELIX-753)
128* [2008-09-29] Support transiently starting/stopping bundles. (FELIX-713)
129* [2008-09-25] Correctly discard exported packages when a bundle is chosen to
130 import a package it exports. (FELIX-736)
131* [2008-09-24] Clearly distinguish between "resolved" and "unresolved"
132 capabilities, which is necessary since "resolved" capabilities have higher
133 priority than "unresolved" ones. (FELIX-730)
134* [2008-09-24] Do not bootdelegate in the case where Bundle.loadClass() has
135 been used. (FELIX-712)
136* [2008-09-23] Improve decoding of reference URLs. (FELIX-731)
137* [2008-09-23] For completeness, added symbolic names to framework and main.
138* [2008-09-17] Improve gc by fixing an issue with StartLevel and PackageAdmin.
139 (FELIX-728)
140* [2008-09-15] Fix an issue with Require-Bundle not aggregating packages
141 correctly. (FELIX-722)
142* [2008-09-15] Fixed a bug where class loader delegation for dynamic imports
143 was happening when it shouldn't. (FELIX-724)
144* [2008-09-12] Added a configuration property to determine whether installing a
145 fragment that uses unimplemented features throws an exception or logs a
146 warning. (FELIX-725)
147* [2008-09-12] Removed some experimental code for "implicit requirements",
148 since it was no longer needed.
149* [2008-09-12] Fix some visibility issues within the LDAP filter. (FELIX-721)
150
151Changes from 1.2.1 to 1.2.2
152---------------------------
Karl Paulsce873782008-12-20 16:27:49 +0000153
Karl Paulsc4c541d2008-11-06 16:17:00 +0000154* [2008-10-14] Fixed a NullPointer exception that could happen when
155 running with a SecurityManager as a backport of FELIX-766.
156
Karl Paulse212d9b2008-09-07 19:54:09 +0000157Changes from 1.2.0 to 1.2.1
158---------------------------
159
160* [2008-09-05] Fixed a performance regression that was caused by uncached
161 access to the bundle manifest headers. (FELIX-711)
162* [2008-09-03] Fixed a bug in calculating the system bundle's exported
163 packages which added a null export package.
164
Karl Pauls78ba3242008-08-31 22:15:39 +0000165Changes from 1.0.4 to 1.2.0
166---------------------------
167
168* [2008-08-29] Support JAR-wide manifest package metadata. (FELIX-682)
169* [2008-08-29] Throw an exception when installing a fragment that uses
170 features that we do not support.
171* [2008-08-20] Improve error reporting when loading bundle classes using
172 Bundle.loadClass.
173* [2008-08-16] Fix attribute checking when resolving dynamic imports.
174 (FELIX-676)
175* [2008-08-08] Implement singleton bundle support. (FELIX-102)
176* [2008-08-06] Default to current security policy if no security extension is
177 installed in order to make Subject.doAs work. (FELIX-654)
178* [2008-08-04] Return Bundle.getLastModified() for bundle URLs
179 lastModified(). (FELIX-582)
180* [2008-08-04] Improve handling of improper resource URLs. (FELIX-577)
181* [2008-08-01] Add necessary stub methods to implement new R4.1 methods.
182 (FELIX-595)
183* [2008-08-01] Applied patch to properly return symbolic name when it has
184 parameters. (FELIX-650)
185* [2008-07-25] Fix some rollback issues after a bundle update throws an
186 exception. (FELIX-647)
187* [2008-07-23] Modified manifest parser to be more lenient. (FELIX-641)
188* [2008-07-07] Add support for the standard symbolic name for the system
189 bundle. (FELIX-602)
190* [2008-06-01] Add initial fragment support for extending the host bundle
191 class path. (FELIX-29, FELIX-656)
192
Karl Pauls0eba9182008-04-21 23:32:57 +0000193Changes from 1.0.3 to 1.0.4
194___________________________
195
196* [2008-04-18] Check that the returned object from a service factory is an
197 instance of all classes named when the service was registered. (FELIX-540)
198* [2008-04-13] Fix an issue when logging messages while holding framework
199 internal locks that could lead to a deadlock. For now we just disable
200 logging to log services inside the framework. (FELIX-536)
201* [2008-04-13] Implemented various small performance improvments e.g.,
202 we now cache filters and create an index for objectclass to improve
203 service lookup performance and don't use the BundleInfo to get the
204 bundle id but the BundleImpl directly. Furthermore, we added an index to
205 get bundles by id.
206* [2008-04-04] Fix an NoClassDefFoundError when trying to query the
207 framework classloader for whether a class is available or not.
208* [2008-03-19] Don't try to resolve extension bundles and fix a
209 classcastexception that could happen if more then one framework is around
210 and both have extensions installed. Furthermore, make extension bundles
211 use the system bundle context.
212* [2008-03-07] Bundle.getResource does now check for AdminPermission.
213 (FELIX-150)
214* [2008-03-06] Make urlhandlers work when a handler factory is already set.
215 Furthermore, it is now possible to have more then one framework running
216 in more then one classloader. (FELIX-38).
217* [2008-03-05] Make LDAP filter reentrant.
218* [2008-02-29] Refactored the IContent abstraction from the module loader
219 layer to provide more generic access to the content of the module. This
220 makes it possible that a bundle's class path could span multiple module's,
221 which will be necessary for fragments. (FELIX-29)
222* [2008-02-27] Applied a patch to disable the class loading diagnostic message
223 when the logger is not at the DEBUG level. (FELIX-500)
224* [2008-02-15] Modified the service registry to use more fine-grained locking
225 to avoid callbacks to service factories while holding locks. (FELIX-489)
226
Karl Pauls7db0d882008-01-28 09:37:24 +0000227Changes from 1.0.1 to 1.0.3
Karl Paulsc0335862008-01-27 19:49:56 +0000228---------------------------
229
230* [2008-01-27] Moved framework docs to main, since the launcher examples now
231 depend on main for the auto-property handling.
232* [2008-01-25] Applied patches to improve how Felix finds resources when
233 getResources() is called. (FELIX-466, FELIX-467)
234* [2008-01-25] Make FilterImpl.toString() add escape characters where needed.
235 (FELIX-471)
236* [2008-01-16] Fix a NPE on framework restart when extension bundles are
237 installed.
238* [2008-01-15] Try to fix a potential visibility issue on loading a class
239 form a bundle where it seems to be possible that we create two classloaders
240 instead of one.
241* [2008-01-15] Modified boot delegation to not terminate when delegating to
242 parent class loader for non-java.* packages. (FELIX-463)
243* [2008-01-04] Fix some issues related to directories on the bundle class
244 path. Specifically, leading slashes created an issue and are now stripped
245 and entries were not being properly filtered when enumerating the contents
246 of a class path directory. (FELIX-426)
247* [2007-12-20] Modified logger to have all of its public methods be final to
248 avoid it from being extended in undesired ways via the constructor supplied
249 logger. (FELIX-428)
250* [2007-12-20] The TCK has changed to verify that bundles do not depend on
251 themselves, so we filter that case now.
252* [2007-12-20] Applied patch from Guillaume Nodet to properly fire a framework
253 error event only when a bundle cannot be resolved. (FELIX-441)
254* [2007-12-19] Modified framework to accept a Logger instance so that host
255 applications can do custom logging until the log service arrives. (FELIX-428)
256* [2007-12-19] Add support for loading bundles on Google Android (FELIX-440).
257* [2007-12-18] Improve native code loading - bundle installation will now
258 fail in case a native library is not in the jar and we only use the first
259 library of a given name. Furthermore, we now support .dylib extensions on
260 the mac as well as others; should make it possible to use .netmodules as
261 well. (FELIX-439)
262* [2007-12-17] Make the win32 alias match any version of windows for native
263 clauses. (FELIX-438)
264* [2007-12-14] Removed auto-property processing out of the framework and
265 into the default launcher, i.e, main. (FELIX-393)
266* [2007-12-13] Fix a StackOverflowError in URLHandlers.createStreamHandler()
267 when creating URL on jamvm and Mika. This patch resolves an unfortunate
268 interaction between our ExtensionManager and the URLHandlers by making the
269 URLHandlers aware of the extension protocol. Pretty much like we do already
270 for the bundle protocol. (FELIX-435)
271* [2007-11-26] Fix a small oversight in the extension manager that could lead
272 to a null pointer exception and save some memory by creating less objects.
273* [2007-11-26] Degrate to version 0.0.0 if we can not find the Felix.properties
274 for some reason and avoid a null pointer in this case.
275* [2007-11-08] Reorganized usage count methods to better handle null
276 reference checking in response to Karl Pauls seeing an NPE when trying to
277 get a service that was already unregistered while shutting down the
278 framework.
279* [2007-11-06] Added a simple check to detect and work around a bug in J9.
280 (FELIX-416)
281* [2007-10-30] Change how the extension manager url stream handler handles
282 request to the root path in order to make some tomcat issue go away.
283 (FELIX-414)
284* [2007-10-26] Added support for "/" bundle resources as requested. (FELIX-383)
285* [2007-10-24] Use system bundle when firing a framework error event when an
286 install error occurs.
287* [2007-10-22] Fix a NPE when getEntryPaths is called on the system bundle.
288 (FELIX-394)
289* [2007-10-16] Modifies bundle resource URL handling such that if a resource
290 URL points to a resource that does not exist, a bundle class path search
291 for the resource will be instigated and if any matching resource is found,
292 that one will be used instead. (FELIX-383)
293* [2007-10-10] Auto-property handling now installs bundles into the default
294 bundle start level if a start level is not specified. (FELIX-359)
295* [2007-10-08] Overwrite the URLStreamHandler.getHostAddress(URL) in the
296 ExtensionManager to immediately return null to prevent DNS lookup.
297 (FELIX-388)
298* [2007-09-30] Resolved a concurrency issue that could result in the same
299 bundle being resolved more than once; also tried to simplify locking in
300 the core search policy implementation. (FELIX-381)
301
Karl Pauls305c9642007-09-16 20:46:04 +0000302Changes from 1.0.0 to 1.0.1
303---------------------------
304
305* [2007-07-23] Fixed a bug in the framework shutdown process which was
306 causing threads calling Felix.stopAndWait() to not get notified that
307 the framework had shutdown. (FELIX-329)
308* [2007-08-15] Fixed a bug in the LDAP filter which was not thread safe
309 on execution. (FELIX-338)
310* [2007-08-17] Added support for persistent last used bundle ID to avoid
311 re-use of bundle identifiers. (FELIX-339)
312* [2007-08-23] Modified BundleImpl.getHeaders(Locale) to accept a null
313 locale. (FELIX-346)
314* [2007-09-11] Added support to handle external termination of Felix
315 which was not handled or detected and prevented a restart of future
316 Felix instances in the same VM. (FELIX-363)
317* [2007-09-12] Add support for Collection values in the LDAP filter to
318 match the 4.1 spec.
319* [2007-09-12] Fixed a bug in the LDAP filter where attributes where
320 limited to [a-zA-Z ] so didn't allow for e.g., numbers. (FELIX-361)
321* [2007-09-13] Enable support for exporting the same package more than
322 once (FELIX-101).
323* [2007-09-13] Returns the system bundle from a call to
324 PackageAdmin.getBundle(Class) in case the class comes from the
325 classloader (or one of its parents) that loaded Felix and the system
326 bundle exports the package.
327* [2007-09-16] Fixed a bug in class space filtering in the service registry
328 that could result in class cast exceptions for service clients.
329* [2007-09-16] Fixed a bug that prevented extension bundle exports to be
330 usable.
331
Richard S. Hall2cd5bed2007-07-16 20:32:41 +0000332Changes from 0.8.0-incubator to 1.0.0
333-------------------------------------
334
335* [2007-01-18] Added support for bundle header localization. (FELIX-27)
336* [2007-01-22] Modified framework resolver to support a generic
337 capability/requirement model.
338* [2007-01-22] Reorganized and centralized manifest parsing code and added
339 support for resolver's generic capability/requirement model. (FELIX-98)
340* [2007-01-22] Improved native library naming normalization. (FELIX-26)
341* [2007-01-23] No longer eagerly resolving classes loaded from modules
342 since this was causing verification errors with IBM J9.
343* [2007-01-25] Added some support for execution environment checking.
344 (FELIX-23)
345* [2007-01-29] Added support for getAllServiceReferences(). (FELIX-32)
346* [2007-01-31] Added Require-Bundle support to resolve using the generic
347 capability/requirement model of the resolver. (FELIX-28)
348* [2007-02-05] Fixed a bug in processor type normalization for x86-64
349 processors.
350* [2007-02-09] The resolver previously ignored packages that were pending
351 removal when resolving new bundles, now it does not.
352* [2007-02-09] Bundles are automatically refreshed when updated/uninstalled
353 if none of their exported packages are in use.
354* [2007-02-13] Added support for extension bundles. (FELIX-30)
355* [2007-03-02] Added a Bundle.getBundleContext() method until actual
356 support for OSGi R4.1.
357* [2007-04-26] Modified Bundle.findEntries() to return URLs to directory
358 entries as well as file entries.
359* [2007-05-06] Modified LDAP evaluator to special case the fact that
360 BigDecimal is not available in Foundation profile.
361* [2007-05-21] Made some performance improvements in LDAP evaluation.
362* [2007-05-22] Modified JAR file to include Service Tracker package.
363* [2007-05-22] Improved concurrency handling around checking for already
364 loaded classes and defining classes.
365* [2007-06-05] Modified resource URLs to use port number rather than
366 prepend information to the resource path.
367* [2007-06-13] Improved dynamic imports to cycle through all available
368 candidates when checking for class space consistency.
369* [2007-06-18] Improved service registry filtering based on class versions
370 to allow a bundle to register a service for a different version of class
371 that it can access.
372* [2007-06-21] Modified our "last ditch effort" to guess when to delegate
373 to the system bundle to make it a little more robust.
374* [2007-06-29] Fixed a bug in EventDispatcher that was causing asynchronous
375 events to not be fired after stopping the framework instance and creating
376 a new instance. (FELIX-314)
377* [2007-07-03] Fixed a bug in EventDispatcher that would not correctly
378 update a listener when it implemented multiple listener interfaces.
379* [2007-07-04] Modified Felix framework class to implement the Bundle
380 interface to improve the startup/shutdown sequence and to provide a
381 simplified API for creating framework instances.
382* [2007-07-11] Removed the PropertyResolver-related classes and now only
383 use Maps for configuration properties. (FELIX-324)