blob: 79e58db65c43af7e61004b9e6bc27cad029244ca [file] [log] [blame]
Karl Paulse5ad9602011-10-10 20:28:23 +00001Changes from 4.0.0 to 4.0.1
2---------------------------
3
4** Bug
5 * [FELIX-3137] - [Framework] Capabilities from resolved singleton bundles are not indexed correctly
6 * [FELIX-3150] - Filter parameter is ignored at getServiceReferences
7 * [FELIX-3153] - [Framework] refreshPackages() should stop bundles in one pass and refresh them in a second pass
8
9** Improvement
10 * [FELIX-3138] - [Framework] Refactor some unnecessary code in the resolver
11 * [FELIX-3141] - [Framework] Framework should filter removal pending fragments not the resolver
12
Karl Pauls9c226952011-09-22 14:49:45 +000013Changes from 3.2.2 to 4.0.0
Karl Paulsa3ff2082011-09-22 13:29:22 +000014---------------------------
15
16** Bug
17 * [FELIX-2762] - Substring parser incorrectly disallowing use of parentheses characters
18 * [FELIX-2990] - [Framework] Bug introduced into handling of native libraries during a fresh
19 * [FELIX-3015] - [Framework] Provide org.osgi.util.tracker version 1.5
20 * [FELIX-3033] - [Framework] Service registry hooks are not correctly filtering bundle contexts for event hook
21 * [FELIX-3038] - Framework does not offer J2SE-1.2 Execution Environment
22 * [FELIX-3043] - [Framework] Resolver is not correctly resolving fragments in all cases
23 * [FELIX-3059] - Reexported packages are not calculate correctly leading to resolver and class loading bugs
24 * [FELIX-3062] - [Framework] Resolver gets into infinite loop in the face of a require-bundle cycle
25 * [FELIX-3082] - [Framework] Bundles not allowed to add listeners while in STOPPING state
26 * [FELIX-3085] - Importing/exporting "." should not be allowed
27 * [FELIX-3096] - Could not add FrameworkListener from ServiceListener
28
29** Improvement
30 * [FELIX-2467] - The framework extensions should be returned when invoking the method PackageAdmin#getFragments with the system bundle
31 * [FELIX-2572] - JRE system packages should include "uses" constraints
32 * [FELIX-2950] - [Framework] Adopt OSGi R4.3 API as framework internal API
33 * [FELIX-2998] - [Framework] OSGi R4.3 changed filter handling of exceptions when calling equals()/compare() to return false
34 * [FELIX-3000] - Move sending service registered event out of bundle lock
Karl Paulsa3ff2082011-09-22 13:29:22 +000035 * [FELIX-3071] - [Framework] It should be possible to limit number of open JAR files
36 * [FELIX-3125] - [Framework] Use single file per bundle in bundle cache by default
37
38** New Feature
39 * [FELIX-2959] - [Framework] Implement OSGi R4.3 class loader byte-code weaving hook
40 * [FELIX-2969] - [Framework] Implement OSGi R4.3 framework wiring object
41 * [FELIX-2973] - [Framework] Implement OSGi R4.3 generic capabilities and requirements
42 * [FELIX-2975] - [Framework] Implement OSGi R4.3 framework start level object
43 * [FELIX-2986] - [Framework] Implement OSGi R4.3 resolver hooks
44 * [FELIX-2999] - [Framework] OSGi R4.3 now specifies that number types should be trimmed when evaluating filters
45 * [FELIX-3032] - [Framework] Implement OSGi R4.3 bundle hooks
46 * [FELIX-3052] - [Framework] Implement OSGi R4.3 system bundle generic capabilities
47 * [FELIX-3056] - [Framework] Implement OSGi R4.3 event listener service registry hook
48 * [FELIX-3122] - [Framework] Implement OSGi R4.3 framework UUID
49 * [FELIX-3124] - [Framework] Implement OSGi R4.3 property to allow installing bundles with the same BSN and version
50
51** Task
52 * [FELIX-3110] - [Framework] Implement 4.3 security checks
53
54
Karl Pauls899feee2011-05-11 19:16:20 +000055Changes from 3.2.1 to 3.2.2
56---------------------------
57
58** Bug
59 * [FELIX-2935] - Bundle.getEntryPaths and findEntries are returning META-INF/ multiple times
60 * [FELIX-2941] - Felix Framework 3.2.0 and Framework Security 1.4.2 fails OSGI Conditional Permission Admin CT when running on IBM JVM 5 and 6.
61 * [FELIX-2942] - Bundles with higher start level get activated even before framework reaches that start level
62
63
Karl Paulse8bed862011-04-18 21:33:22 +000064Changes from 3.2.0 to 3.2.1
65---------------------------
66
67* Bug
68 * [FELIX-2901] - [Framework] NPE from a host bundle during framework shutdown
69 * [FELIX-2917] - Constructor of SecurityExceptino() which is incompatible to 1.4 is used
Karl Pauls3db058d2011-04-26 20:58:15 +000070 * [FELIX-2924] - bundle stop hangs for http-2.2.0 in felix-3.2.0
Karl Paulse8bed862011-04-18 21:33:22 +000071
72** Improvement
73 * [FELIX-2909] - [Framework] Resolver could be more efficient if it detected if fragments were present
74
75
Karl Pauls1c1e4352011-03-28 20:00:25 +000076Changes from 3.0.9 to 3.2.0
77---------------------------
78
79* Bug
80 * [FELIX-1816] - deadlock on SystemBundle.stop()
81 * [FELIX-2741] - NPE in ResolverImpl.calculatePackageSpaces
82 * [FELIX-2748] - Possible synchronization issue with BundleContext.getBundle()
83 * [FELIX-2877] - java6 update 24 breaks felix when used inside webstart
84
85
86** Improvement
87 * [FELIX-2858] - [Framework] Modify resolver to be self-contained with respect to fragment handling
88 * [FELIX-2859] - [Framework] Modify resolver to be self-contained with respect to singleton handling
89 * [FELIX-2864] - [Framework] Add package profile for JDK7 to default properties
90
Karl Pauls868c2e42011-02-21 21:48:19 +000091Changes from 3.0.8 to 3.0.9
92---------------------------
93
94** Bug
95 * [FELIX-1581] - Bundle#update, Bundle#uninstall and Bundle#stop should wait for a (configurable) timeout before throwing an exception if the bundle is starting or stopping
96 * [FELIX-2784] - When the framework try to grab the bundle lock, it ignores thread interruption
97 * [FELIX-2822] - [Framework] System bundle module's state not reset when framework restarted leading to NPE
98 * [FELIX-2832] - [Framework] It should not be possible to open an URLConnection to "/" for a bundle URL
99 * [FELIX-2840] - [Framework] Uninstalling an uninstalled bundle throws NoSuchElementException
100 * [FELIX-2849] - PackageAdmin is inconsistent between getFragments and getHosts
101 * [FELIX-2850] - PackageAdmin return fragments / hosts even if the host isn't resolved
102 * [FELIX-2851] - Resolution problems after a fragment can't be resolved
103
104** Improvement
105 * [FELIX-2841] - [Framework] Improve resolve exception messages
106
Richard S. Hall50ebb0b2011-02-21 14:38:03 +0000107Changes from 3.0.7 to 3.0.8
108---------------------------
109
110** Bug
111 * [FELIX-2749] - Boolean.parseBoolean() newly defined in Java5 should not be used.
112 * [FELIX-2789] - Native library matching is not correctly checking additional extensions
113 * [FELIX-2800] - Logging will throw an NPE if no bundle is specified
114 * [FELIX-2802] - A failed update doesn't rollback properly
115 * [FELIX-2805] - Cache PackageAdmin.getBundle() result for system bundle classes
116
Karl Paulsf1eb56e2010-12-26 21:09:17 +0000117Changes from 3.0.6 to 3.0.7
118---------------------------
119
120** Bug
121 * [FELIX-2456] - Framework no longer fires UNRESOLVED event when a bundle is explicitly refreshed
122 * [FELIX-2693] - [Framework] Service registry should throw a ServiceException for factories resulting in a cycle
123 * [FELIX-2700] - Framework uses java.nio package which is not supported by CDC VM
124 * [FELIX-2710] - [Framework] For exploded bundles Bundle.getEntry("a/b.jar/")==Bundle.getEntry("a/b.jar")
125 * [FELIX-2717] - [Framework] Resolver treats multiple exports of same package as conflicting for fragment imports
126 * [FELIX-2725] - [Framework] Resolver is not correctly calculating exported packages for already resolved modules
127 * [FELIX-2728] - JarRevision does not close URLConnections which are instances of HttpURLConnection
128 * [FELIX-2736] - [Framework] Resolver is not correctly verifying package space consistency for dynamic imports
129 * [FELIX-2738] - [Framework] DirectoryContent does not handle security correctly
130
131** Improvement
132 * [FELIX-2703] - [Framework] Include OSGi/Minimum EEs in default properties
133 * [FELIX-2721] - [Framework] Implement custom manifest parser and avoid JarFile
134 * [FELIX-2737] - [Framework] Optimize resolver algorithm by not re-calculating uses constraints for resolved modules
135
Karl Paulsdd3867e2010-11-03 21:03:40 +0000136Changes from 3.0.5 to 3.0.6
137---------------------------
138
139** Bug
140 * [FELIX-2670] - [Framework] Implicit boot delegation doesn't delegate for external code in all cases
141 * [FELIX-2683] - [Framework] Bundle last modified time is not persisted on deployment
142
143** Improvement
144 * [FELIX-2560] - Bundle URLs do not survive refreshes
145
146** New Feature
147 * [FELIX-2646] - [Framework] Locking could be used to prevent concurrent access to a single bundle cache
148
Karl Pauls21c1a4c2010-10-18 21:58:01 +0000149Changes from 3.0.4 to 3.0.5
150---------------------------
151
152** Bug
153 * [FELIX-2653] - LinkageError caused by duplicate class definition during implicit boot delegation
154
155** Improvement
156 * [FELIX-2645] - Add a (hidden) way to retrieve a local URL for a given bundle URL
157 * [FELIX-2654] - [Framework] Modify bundle cache to use a single file per bundle state
158
Karl Paulsefd1db82010-10-04 20:35:42 +0000159Changes from 3.0.3 to 3.0.4
160---------------------------
161
162** Bug
163 * [FELIX-2584] - No FrameworkEvent.ERROR on unchecked exception in event listener
164 * [FELIX-2629] - [Framework] Module class loader should return an empty enumeration for getResources()
165
166** Improvement
167 * [FELIX-2619] - [Framework] Bundle cache is rechecking nonexistent files again and again
168 * [FELIX-2626] - [Framework] Bundle cache is rewriting some files when restarting bundles
169
Karl Paulsbf24bc52010-09-22 20:37:21 +0000170Changes from 3.0.2 to 3.0.3
171---------------------------
172
173** Bug
174 * [FELIX-2548] - Resolver should use case sensitive indexing for capabilities
175 * [FELIX-2569] - Felix bundle classloader always delegates to parent loader in getResources()
176 * [FELIX-2589] - SecurityException "SecurityManager already installed" is thrown when calling Framework.init() multiple times with FRAMEWORK_SECURITY set
177 * [FELIX-2598] - Hang in Felix: thread owing a bundle lock waits for ever to lock it again
178 * [FELIX-2599] - When specifying the packages exported by the system bundle, attributes and directives on packages do not show up in the system bundle headers
179
180** Improvement
181 * [FELIX-1022] - Classloader Exceptions should be more informative
182 * [FELIX-2549] - Fix some synchronization issues in content handling
183 * [FELIX-2555] - Log messages should contain the bundle id, when available
184 * [FELIX-2597] - Deadlock during delivery of resolved event
185
Karl Paulsa07c44a2010-08-18 20:41:35 +0000186Changes from 3.0.1 to 3.0.2
187---------------------------
188
189** Bug
190 * [FELIX-2421] - Implicit bootdelegation doesn't ignore classloaders if they are inner classes
191 * [FELIX-2437] - Deadlock on refrsh Import and refresh
192 * [FELIX-2451] - Felix uses System.out to print debug messages related to resolver...
193 * [FELIX-2459] - Wrong error message on a missing package
194 * [FELIX-2466] - Unknown attributes are not stripped from Fragment-Host header
195 * [FELIX-2473] - Subtring matching is incorreclty matching against an empty string
196 * [FELIX-2479] - Required bundles not correctly re-exporting their substitutable exports
197
198** Improvement
199 * [FELIX-2528] - Potential performance issue in resolver when uses constraint conflict is detected
200 * [FELIX-2529] - In some scenarios the resolver will not backtrack on imported package decisions
201
Karl Paulscdc769a2010-06-14 20:13:54 +0000202Changes from 3.0.0 to 3.0.1
203---------------------------
204
205** Bug
206 * [FELIX-2401] - NPE in org.apache.felix.framework.FilterImpl.DictionaryCapability.getAttribute(String)
207
Karl Pauls08ff19b2010-06-06 21:55:08 +0000208Changes from 2.0.5 to 3.0.0
209---------------------------
210** Sub-task
211 * [FELIX-2036] - Improve resolver's generic capability/requirement model
212 * [FELIX-2037] - Improve resolver performance by making solution space searching smarter
213
214** Bug
215 * [FELIX-995] - JRE packages are exported with wrong version
216 * [FELIX-1967] - Freeze finding consistent class space
217 * [FELIX-2080] - Updating bundles when debugging switched on might result in a deadlock with 100% CPU usage
218 * [FELIX-2150] - URLStreamHandlerProxy.setURL may not set query component correctly
219 * [FELIX-2172] - Extremely long resolve stage when running CXF-DOSGi system test
220 * [FELIX-2177] - Fragment bundles not loaded after second start when using autodeploy
221 * [FELIX-2271] - CLONE -NPE "name can't be null" when trying to install a bundle in Felix 2.0.3
222 * [FELIX-2273] - getClassLoader-permission required accessing classes from dynamically loaded class
223 * [FELIX-2281] - Bundle id order affects fragment resolution success
224 * [FELIX-2317] - Possible NPE for jars with null Manifest
225 * [FELIX-2321] - BundleException type should be properly set when installing a duplicate bundle
226 * [FELIX-2332] - Lots of contention on ExtensionManager.openConnection(URL)
227 * [FELIX-2335] - Bundle.loadClass() for system bundle doesn't obey boot delegation
228 * [FELIX-2356] - extension bundle cannot load class from embed jar
229 * [FELIX-2383] - Bundles are restarted during start level change
230 * [FELIX-2392] - Felix framework uses a Java5 method
231
232** Improvement
233 * [FELIX-1210] - Allow jars with missing intermediate entries to be handled as if they were present in Bundle.getEntryPaths
234 * [FELIX-1797] - Customizable Framework startup message
235 * [FELIX-2035] - Reimplement framework resolver
236 * [FELIX-2039] - Reimplement standard OSGi LDAP filter to use new filter solution for resolver
237 * [FELIX-2040] - Modify framework service registry to use resolver's new capability/requirement model
238 * [FELIX-2041] - Look into using generics in framework code
239 * [FELIX-2042] - Use Gogo as the default shell for the framework distribution
240 * [FELIX-2324] - Support execution environment so that OBR works properly
241 * [FELIX-2336] - Variable substitution in configuration files should ignore mismatched delimiters
242
243Changes from 2.0.4 to 2.0.5
244---------------------------
245** Bug
246 * [FELIX-1753] - The start level should check that the bundle still exists before starting it to avoid an ugly exception
247 * [FELIX-2087] - NPE "name can't be null" when trying to install a bundle in Felix 2.0.3
248 * [FELIX-2107] - Bundle.findEntries() matches '*<filePattern>' instead of '<filePattern>'
249 * [FELIX-2195] - Using URLDecoder.decode on locations is wrong
250 * [FELIX-2222] - Failure to reinstall a cached bundle will corrupt the bundle cache
251
Karl Pauls78470432010-02-14 22:52:56 +0000252Changes from 2.0.3 to 2.0.4
253---------------------------
254
255** Bug
256 * [FELIX-2056] - URLHandlersStreamHandler not getting handlers from frameworks that are inside a different classloader
257 * [FELIX-2067] - Fragment bundle ignored silently when the host Bundle-SymbolicName equals import package name
258 * [FELIX-2073] - The System Bundle is not providing WS Addressing
259
260** Improvement
261 * [FELIX-2071] - Missing checks inside ModuleImpl (in Framework) which causes exceptions
262
263Changes from 2.0.2 to 2.0.3
264---------------------------
265
266** Bug
267 * [FELIX-1838] - PackageAdmin.getExportedPackages() duplicates output for packages with different version
268 * [FELIX-1867] - ModuleImpl diagnoseClassLoadError throw NullPointerException for empty package name in debug mode
269 * [FELIX-1917] - A few minor bugs in the framework found while embedding Felix
270 * [FELIX-1919] - Fragment bundle cannot be linked to its host
271 * [FELIX-1920] - RequiredBundle.getRequiringBundles() incorrectly calculates result
272 * [FELIX-1929] - getStartLevel() always reports requested start level, not active start level
273 * [FELIX-1982] - Documented but uninterpreted felix.cache.* properties
274 * [FELIX-1998] - Use UTF-8 when decoding reference location URLs
275 * [FELIX-2002] - Uninstalled fragments are not properly detached
276
277** Improvement
278 * [FELIX-37] - Implement security for bundle resource URLs
279 * [FELIX-325] - Factor out security checks from the framework/system bundle code
280 * [FELIX-1973] - Implement all required security checks
281
282** New Feature
283 * [FELIX-30] - Implement extension bundles
284 * [FELIX-1991] - Allow boot delegation class loader to be configurable per bundle
285
286
287Changes from 2.0.1 to 2.0.2
288---------------------------
289
290** Bug
291 * [FELIX-1754] - Usage of BundleContext.getServiceReferences results in failure to activate components
292 * [FELIX-1782] - Errors during start-up on gnu/classpath based VMs (jamvm, kaffe, cacao) and mika
293 * [FELIX-1795] - Bundle version ignored in Fragment-Host header
294 * [FELIX-1834] - java.io.IOException: No framework context found when embedding felix frameworks as bundles
295
296** Improvement
297 * [FELIX-1534] - Improve fragment merging
298 * [FELIX-1781] - Try to reduce object allocations/usage in resolver algorithm
299 * [FELIX-1783] - Eliminate contention on ServiceRegistry.getServiceReferences(String, Filter)
300
301Changes from 2.0.0 to 2.0.1
302---------------------------
303
304** Bug
305 * [FELIX-1565] - Deadlock UrlHandlers
306 * [FELIX-1573] - Occasional NPE in URLHandlersBundleStreamHandler
307 * [FELIX-1580] - Regression with native library handling
308 * [FELIX-1586] - Framework reports org.osgi.framework.version as 1.3
309 * [FELIX-1600] - ServiceReference.isAssignableTo() always returns true if requesting bundle has no wire
310 * [FELIX-1631] - Implicit bootdelegation causes hang on android
311 * [FELIX-1710] - Resolver still does not discard all partial results when a cyclical dependency fails
312 * [FELIX-1721] - Framework boot delegation has a bug due to extraneous code
313 * [FELIX-1731] - Native library extraction could be improved to help cases where there are dependencies among libraries
314
315** Improvement
316 * [FELIX-1619] - Change the default auto-deploy actions to be install and start only
317 * [FELIX-1625] - Refactor bundle cache to simplify management
318 * [FELIX-1679] - VersionRange class should use finals to be thread safe.
319 * [FELIX-1724] - Various module metadata should be cached
320
321** Task
322 * [FELIX-1617] - Modify framework, main, shell, shell.tui, and obr to depend on official OSGi JAR files
323
324Changes from 1.8.1 to 2.0.0
325---------------------------
326
327** Bug
328 * [FELIX-893] - Felix fails to start using J9 JVM
329 * [FELIX-905] - Felix needs an RFC 126 FindHook
330 * [FELIX-906] - Felix needs an RFC 126 EventHook
331 * [FELIX-1122] - Extension bundles are not being removed from the bundle list when uninstalled
332 * [FELIX-1123] - System bundle does still not correctly handle (export) package attributes
333 * [FELIX-1124] - ResourceNotFoundException too verbose
334 * [FELIX-1130] - Bundle.getHeaders() returns a Dictionary<java.util.jar.Attribute.Name,String>
335 * [FELIX-1138] - URL Handlers performance regression due to service lookups
336 * [FELIX-1170] - MemoryLeak when stopping and restarting Felix
337 * [FELIX-1187] - BundleContext.ungetService() should return false only if the usage count is zero when the method is invoked
338 * [FELIX-1197] - Bundle Fragments not resolved correctly
339 * [FELIX-1198] - config.properties still refers to old org.osgi.framework.startlevel property
340 * [FELIX-1247] - BundleEvent.UNRESOLVED should be fired during update/uninstall not refresh
341 * [FELIX-1249] - Bundle.findEntries() should search fragments as well as the bundle itself
342 * [FELIX-1254] - Bundle#findEntries does not return resources from fragments
343 * [FELIX-1271] - Improve manifest localization to handle special cases
344 * [FELIX-1272] - Need to special case getResource()/getResources()/loadClass() for fragment bundles
345 * [FELIX-1273] - Bundle.getResources() should return null for a non-existent resource
346 * [FELIX-1277] - Fix Service Hooks Tests failures in RFC 126 TCK
347 * [FELIX-1279] - Framework.waitForStop() does not obey timeout
348 * [FELIX-1280] - Package Admin - getExportedPackages must return null instead of an empty array
349 * [FELIX-1285] - SecureAction captures the calling context incorrectly
350 * [FELIX-1286] - Module class loader should use secure action instead of a privileged block
351 * [FELIX-1287] - System bundle operations from RFC-132 (e.g., init(), start(), stop(), waitForStop()) are using wrong lock object
352 * [FELIX-1288] - System bundle context should be null after stopping the framework
353 * [FELIX-1292] - PackageAdmin.getBundle(Class) should return null if the bundle associated with the passed in class is from another framework
354 * [FELIX-1293] - StringMap used for case insensitive properties does not respect ordering if case sensitivity is changed
355 * [FELIX-1295] - ServiceRegistry increments/decrements service use count after/before getService/ungetService() is called on ServiceFactory
356 * [FELIX-1371] - Automatic parent class loader delegation does not correctly filter calls to Bundle.loadClass()
357 * [FELIX-1397] - Required execution environment verification should happen at resolve time, not install time
358 * [FELIX-1400] - bootdelegation and dynamic-import-packages are accepting invalid patterns
359 * [FELIX-1401] - Manifest localization with fragments not handled correctly
360 * [FELIX-1422] - Resolver does not always discard partial results when a cyclically dependency fails
361 * [FELIX-1435] - Resolver does not always resolve a dynamic import to a fragment export
362 * [FELIX-1527] - R4.2 spec errata now specifies uninstalling a bundle must transition through INSTALLED on its way to UNINSTALLED
363 * [FELIX-1551] - Start level service must synchronously persist bundle start level changes
364 * [FELIX-1556] - Bundle.getResource/s is not able to find resources if the package is not alraedy wired when I use DynamicImport-Package: *
365
366** Improvement
367 * [FELIX-712] - Ability to disable automatic parent classloader delegation
368 * [FELIX-883] - JarContent logs and then swallows exceptions when reading from JAR file, should probably throw an exception
369 * [FELIX-1120] - Enable BundleCache customization
370 * [FELIX-1134] - Add support for native libraries in fragments
371 * [FELIX-1189] - Improve error message in main when there is an error processing auto-install/start bundles
372 * [FELIX-1246] - PackageAdmin.getBundle() is not implemented efficiently
373 * [FELIX-1260] - Make Bundle.findEntries() and Bundle.getEntryPaths() more thread safe
374 * [FELIX-1291] - Implement support for proper return type from Framework.waitForStop()
375 * [FELIX-1300] - Remove legacy bundle cache support when extracting embedded JAR files
376 * [FELIX-1360] - Improve native library matching algorithm (part 2)
377 * [FELIX-1404] - Use provided classes from OSGi R4.2 companion code
378 * [FELIX-1432] - Manifest parser doesn't return import package declarations in order of manifest
379 * [FELIX-1462] - Felix framework launcher should only use standard launching API
380
381** New Feature
382 * [FELIX-33] - Implement system bundle update
383 * [FELIX-749] - Add support for lazy activation of bundles
384 * [FELIX-1193] - Implement org.osgi.framework.bundle.parent from RFC 132
385 * [FELIX-1205] - Update to the latest OSGi R4.2 API
386 * [FELIX-1244] - Add support for ServiceEvent.MODIFIED_ENDMATCH
387 * [FELIX-1250] - Support service exceptions for service factories
388 * [FELIX-1289] - Support for FrameworkUtil.getBundle()
389 * [FELIX-1297] - Implement support for new org.osgi.framework.command.execpermission configuration property
390 * [FELIX-1298] - Implement support for new org.osgi.framework.library.extensions configuration property
391 * [FELIX-1446] - Framework launcher should automatically deploy bundles in bundle directory
392 * [FELIX-1478] - Add shutdown hook to launcher to cleanly shutdown the framework if the process is killed
393
394
395
396
397** Task
398 * [FELIX-1144] - The NOTICE file for Main subproject is not correctly copied into the source JAR
399
400
401** Test
402 * [FELIX-1208] - Need migrate the EventDispatcherTest to newer version of EasyMock
403
404Changes form 1.6.1 to 1.8.0
405---------------------------
406** Bug
407 * [FELIX-1034] - bootdelegation property seems to be matching more packages than desired
408 * [FELIX-1059] - DynamicImport-Package matches more packages than desired
409
410** Improvement
411 * [FELIX-1060] - URLHandlers doesn't support URLStreamHandler.openConnection(proxy,url) method
412
413** New Feature
414 * [FELIX-29] - Implement bundle fragments
415
416Changes from 1.6.0 to 1.6.1
417---------------------------
418** Bug
419 * [FELIX-1027] - deadlock with felix 1.6.0 ?
420 * [FELIX-1028] - NPE in configuration view when running webconsole with Equinox
421 * [FELIX-1033] - Exceptions when Felix is started with security manager
422 * [FELIX-1035] - deadlock observed while using fileinstall to monitor multiple directories
423 * [FELIX-1045] - Felix 1.6.0 fails with ClassCircularityError
424
425Changes from 1.4.1 to 1.6.0
426---------------------------
427
428** Bug
429 * [FELIX-737] - Resolver does not correctly discard export when module imports the same package (part 2)
430 * [FELIX-852] - Fragment support is currently limited to directly resolved hosts
431 * [FELIX-869] - SCR throws exception on invalidating a component with a reference to a service that was already unregistered
432 * [FELIX-891] - Bundle lock acquisition should not record lock until it verifies the bundle is lockable
433 * [FELIX-892] - ServiceReferenceImpl improper implementation of equals and hashcode
434 * [FELIX-893] - Felix fails to start using J9 JVM
435 * [FELIX-897] - Empty system package is exported when a semicolon is present in "extra" configuration
436 * [FELIX-902] - Empty bundle.state file produces NPE
437 * [FELIX-910] - Framework may ignore framework startlevel on startup
438 * [FELIX-911] - Potential deadlock between Bundle.stop() and BundleContext.registerService()
439 * [FELIX-915] - PackageAdmin returns null on getBundle(...) with system classes
440 * [FELIX-934] - Bootdelegation bug
441 * [FELIX-947] - Behaviour of startlevel comman doesn't adhere to spec
442 * [FELIX-948] - ServiceReferenceImpl.compareTo should handle other types than integer for service ranking
443 * [FELIX-951] - Deadlock in iPojo when stopping Felix
444 * [FELIX-952] - Exception thrown when unregistering services because the bundle is stopped
445 * [FELIX-953] - Bundle#loadClass sometimes return null instead of throwing a CNFE
446 * [FELIX-961] - 100% CPU looping inside uses calculation
447 * [FELIX-962] - Erroneous class loading delegation to the application launcher classloader in some cases
448 * [FELIX-969] - system bundle does not correctly handle (export) package attributes
449 * [FELIX-971] - Exception thrown in ServiceTracker at shutdown
450 * [FELIX-978] - Resolver does not clean up properly on a failed recursive attempt to resolve
451 * [FELIX-1004] - Extensionmanager openConnection(URL) method should be public
452 * [FELIX-1005] - Strange list of imported packages returned by the package admin
453
454** Improvement
455 * [FELIX-681] - Modify daemon threads to catch all exceptions and log them to avoid premature thread death
456 * [FELIX-851] - Refactor the module abstraction layer to align more closely to OSGi concepts
457 * [FELIX-872] - JarContent swallows exception when opening manifest, it should log it
458 * [FELIX-883] - JarContent logs and then swallows exceptions when reading from JAR file, should probably throw an exception
459 * [FELIX-894] - Loosen locking when starting/stopping/uninstalling a bundle by firing event without holding a lock
460 * [FELIX-908] - Unsynchronize access to bundle state inside BundleInfo by making the variable volatile
461
462Changes from 1.4.0 to 1.4.1
463---------------------------
464
465* [2008-12-19] Refactor the URLHandlers implementation to fix a possible
466 Linkage-Error when running embedded inside tomcat. Furthermore, make it possible
467 to dynamically set a SecurityManager, change the url we add to the framework
468 classloader to fix issues with rmi and make sure we restore the previous URLStreamHandlerFactory
469 after stopping. (FELIX-842, FELIX-837, FELIX-844, FELIX-827)
470* [2008-12-19] Add missing javax.security.cert in JRE 1.4 and 1.5. (FELIX-854)
471* [2008-12-19] Improve framework internal locking protocol.
472* [2008-12-18] Fixed an issue where bundles with a non-existing native library
473 would not be removed correctly. (FELIX-835)
474* [2008-11-21] Throw an exception when there is an attempt to start or stop a
475 fragment, as per the spec. (FELIX-820)
476* [2008-11-20] Fixed a bug during shutdown where uninstalled fragments are not
477 properly closed. (FELIX-819)
478* [2008-11-14] Added partial support for new service registry hooks as proposed
479 for OSGi R4.2; currently, only listener hooks are supported. (FELIX-804)
480* [2008-11-08] Fixed Felix' delegation hack so that it correctly delegates to
481 the parent class loader for resources as appropriate; previously it was always
482 delegating for class loading, which was incorrect. (FELIX-808)
483
484Changes from 1.2.2 to 1.4.0
485---------------------------
486
487* [2008-11-05] URLStreamHandlerService and ContentHandlerService override
488 built-in handlers and make it possible to use URLHandlers when extending the
489 Felix class. (FELIX-756, FELIX-800)
490* [2008-11-04] Implement ServiceReference.compareTo() method. (FELIX-799)
491* [2008-10-31] Fix some visibility issues in the LDAP operators which could
492 result in incorrect toString values. (FELIX-765)
493* [2008-10-31] Fixed spec compliance issues around getting a service reference
494 from an invalid registration and throwing an exception when there are
495 duplicate property keys. (FELIX-798)
496* [2008-10-21] Fixed an issue with extension bundles which would be installed
497 as fragments and fail to install extension bundles if they have incomplete
498 metadata. (FELIX-770)
499* [2008-10-21] Fix a possible deadlock in URLHandlers. (FELIX-748)
500* [2008-10-16] Modified framework to have default values for the system
501 packages property, which also required modifying main to no longer expect to
502 set it. Now it is possible to start Felix with no configuration properties.
503 (FELIX-753)
504* [2008-10-16] Update felix to work with the 1.0.0-rc1 version of the android
505 sdk.
506* [2008-10-15] Implemented remaining PackageAdmin methods from R4. (FELIX-35)
507* [2008-10-15] Modified resolver to correctly mark fragment modules as resolved.
508 (FELIX-777)
509* [2008-10-15] Modified the resolver to longer consider uninstalled fragments
510 and hosts when resolving dependencies; this required a new "stale" flag on
511 modules that gets set when their associated bundle is uninstalled. (FELIX-776)
512* [2008-10-15] Modified the resolver to sort candidates when resolving
513 Require-Bundle dependencies. (FELIX-775)
514* [2008-10-14] Modified ExportedPackage.getImportingBundles() to include
515 bundles requiring the exporting bundle, in addition to those bundles
516 importing the package. Also tried to simplify dependency management code
517 by separating it out. (FELIX-764)
518* [2008-10-14] Fix a NullPointerException in SecureAction when a
519 SecurityManager is used by keeping pointers on the local stack. (FELIX-766)
520* [2008-10-13] Use System.gc to allow to update and uninstall bundles with
521 native libs on Windows. (FELIX-733)
522* [2008-10-10] Set the activator to null on Bundle.stop() to allow for earlier
523 garbage collection. (FELIX-762)
524* [2008-10-10] Implements support for flushing the cache on framework
525 initialization. (FELIX-755)
526* [2008-10-10] Improve exception messages. (FELIX-750)
527* [2008-10-09] Modified the bundle cache to no longer have profiles. (FELIX-754)
528* [2008-10-08] Modified the Felix API to aligned with the proposed standard
529 OSGi framework API. The framework instance can now be stopped and restarted.
530 (FELIX-753)
531* [2008-09-29] Support transiently starting/stopping bundles. (FELIX-713)
532* [2008-09-25] Correctly discard exported packages when a bundle is chosen to
533 import a package it exports. (FELIX-736)
534* [2008-09-24] Clearly distinguish between "resolved" and "unresolved"
535 capabilities, which is necessary since "resolved" capabilities have higher
536 priority than "unresolved" ones. (FELIX-730)
537* [2008-09-24] Do not bootdelegate in the case where Bundle.loadClass() has
538 been used. (FELIX-712)
539* [2008-09-23] Improve decoding of reference URLs. (FELIX-731)
540* [2008-09-23] For completeness, added symbolic names to framework and main.
541* [2008-09-17] Improve gc by fixing an issue with StartLevel and PackageAdmin.
542 (FELIX-728)
543* [2008-09-15] Fix an issue with Require-Bundle not aggregating packages
544 correctly. (FELIX-722)
545* [2008-09-15] Fixed a bug where class loader delegation for dynamic imports
546 was happening when it shouldn't. (FELIX-724)
547* [2008-09-12] Added a configuration property to determine whether installing a
548 fragment that uses unimplemented features throws an exception or logs a
549 warning. (FELIX-725)
550* [2008-09-12] Removed some experimental code for "implicit requirements",
551 since it was no longer needed.
552* [2008-09-12] Fix some visibility issues within the LDAP filter. (FELIX-721)
553
554Changes from 1.2.1 to 1.2.2
555---------------------------
556
557* [2008-10-14] Fixed a NullPointer exception that could happen when
558 running with a SecurityManager as a backport of FELIX-766.
559
560Changes from 1.2.0 to 1.2.1
561---------------------------
562
563* [2008-09-05] Fixed a performance regression that was caused by uncached
564 access to the bundle manifest headers. (FELIX-711)
565* [2008-09-03] Fixed a bug in calculating the system bundle's exported
566 packages which added a null export package.
567
568Changes from 1.0.4 to 1.2.0
569---------------------------
570
571* [2008-08-29] Support JAR-wide manifest package metadata. (FELIX-682)
572* [2008-08-29] Throw an exception when installing a fragment that uses
573 features that we do not support.
574* [2008-08-20] Improve error reporting when loading bundle classes using
575 Bundle.loadClass.
576* [2008-08-16] Fix attribute checking when resolving dynamic imports.
577 (FELIX-676)
578* [2008-08-08] Implement singleton bundle support. (FELIX-102)
579* [2008-08-06] Default to current security policy if no security extension is
580 installed in order to make Subject.doAs work. (FELIX-654)
581* [2008-08-04] Return Bundle.getLastModified() for bundle URLs
582 lastModified(). (FELIX-582)
583* [2008-08-04] Improve handling of improper resource URLs. (FELIX-577)
584* [2008-08-01] Add necessary stub methods to implement new R4.1 methods.
585 (FELIX-595)
586* [2008-08-01] Applied patch to properly return symbolic name when it has
587 parameters. (FELIX-650)
588* [2008-07-25] Fix some rollback issues after a bundle update throws an
589 exception. (FELIX-647)
590* [2008-07-23] Modified manifest parser to be more lenient. (FELIX-641)
591* [2008-07-07] Add support for the standard symbolic name for the system
592 bundle. (FELIX-602)
593* [2008-06-01] Add initial fragment support for extending the host bundle
594 class path. (FELIX-29, FELIX-656)
595
596Changes from 1.0.3 to 1.0.4
597___________________________
598
599* [2008-04-18] Check that the returned object from a service factory is an
600 instance of all classes named when the service was registered. (FELIX-540)
601* [2008-04-13] Fix an issue when logging messages while holding framework
602 internal locks that could lead to a deadlock. For now we just disable
603 logging to log services inside the framework. (FELIX-536)
604* [2008-04-13] Implemented various small performance improvments e.g.,
605 we now cache filters and create an index for objectclass to improve
606 service lookup performance and don't use the BundleInfo to get the
607 bundle id but the BundleImpl directly. Furthermore, we added an index to
608 get bundles by id.
609* [2008-04-04] Fix an NoClassDefFoundError when trying to query the
610 framework classloader for whether a class is available or not.
611* [2008-03-19] Don't try to resolve extension bundles and fix a
612 classcastexception that could happen if more then one framework is around
613 and both have extensions installed. Furthermore, make extension bundles
614 use the system bundle context.
615* [2008-03-07] Bundle.getResource does now check for AdminPermission.
616 (FELIX-150)
617* [2008-03-06] Make urlhandlers work when a handler factory is already set.
618 Furthermore, it is now possible to have more then one framework running
619 in more then one classloader. (FELIX-38).
620* [2008-03-05] Make LDAP filter reentrant.
621* [2008-02-29] Refactored the IContent abstraction from the module loader
622 layer to provide more generic access to the content of the module. This
623 makes it possible that a bundle's class path could span multiple module's,
624 which will be necessary for fragments. (FELIX-29)
625* [2008-02-27] Applied a patch to disable the class loading diagnostic message
626 when the logger is not at the DEBUG level. (FELIX-500)
627* [2008-02-15] Modified the service registry to use more fine-grained locking
628 to avoid callbacks to service factories while holding locks. (FELIX-489)
629
630Changes from 1.0.1 to 1.0.3
631---------------------------
632
633* [2008-01-27] Moved framework docs to main, since the launcher examples now
634 depend on main for the auto-property handling.
635* [2008-01-25] Applied patches to improve how Felix finds resources when
636 getResources() is called. (FELIX-466, FELIX-467)
637* [2008-01-25] Make FilterImpl.toString() add escape characters where needed.
638 (FELIX-471)
639* [2008-01-16] Fix a NPE on framework restart when extension bundles are
640 installed.
641* [2008-01-15] Try to fix a potential visibility issue on loading a class
642 form a bundle where it seems to be possible that we create two classloaders
643 instead of one.
644* [2008-01-15] Modified boot delegation to not terminate when delegating to
645 parent class loader for non-java.* packages. (FELIX-463)
646* [2008-01-04] Fix some issues related to directories on the bundle class
647 path. Specifically, leading slashes created an issue and are now stripped
648 and entries were not being properly filtered when enumerating the contents
649 of a class path directory. (FELIX-426)
650* [2007-12-20] Modified logger to have all of its public methods be final to
651 avoid it from being extended in undesired ways via the constructor supplied
652 logger. (FELIX-428)
653* [2007-12-20] The TCK has changed to verify that bundles do not depend on
654 themselves, so we filter that case now.
655* [2007-12-20] Applied patch from Guillaume Nodet to properly fire a framework
656 error event only when a bundle cannot be resolved. (FELIX-441)
657* [2007-12-19] Modified framework to accept a Logger instance so that host
658 applications can do custom logging until the log service arrives. (FELIX-428)
659* [2007-12-19] Add support for loading bundles on Google Android (FELIX-440).
660* [2007-12-18] Improve native code loading - bundle installation will now
661 fail in case a native library is not in the jar and we only use the first
662 library of a given name. Furthermore, we now support .dylib extensions on
663 the mac as well as others; should make it possible to use .netmodules as
664 well. (FELIX-439)
665* [2007-12-17] Make the win32 alias match any version of windows for native
666 clauses. (FELIX-438)
667* [2007-12-14] Removed auto-property processing out of the framework and
668 into the default launcher, i.e, main. (FELIX-393)
669* [2007-12-13] Fix a StackOverflowError in URLHandlers.createStreamHandler()
670 when creating URL on jamvm and Mika. This patch resolves an unfortunate
671 interaction between our ExtensionManager and the URLHandlers by making the
672 URLHandlers aware of the extension protocol. Pretty much like we do already
673 for the bundle protocol. (FELIX-435)
674* [2007-11-26] Fix a small oversight in the extension manager that could lead
675 to a null pointer exception and save some memory by creating less objects.
676* [2007-11-26] Degrate to version 0.0.0 if we can not find the Felix.properties
677 for some reason and avoid a null pointer in this case.
678* [2007-11-08] Reorganized usage count methods to better handle null
679 reference checking in response to Karl Pauls seeing an NPE when trying to
680 get a service that was already unregistered while shutting down the
681 framework.
682* [2007-11-06] Added a simple check to detect and work around a bug in J9.
683 (FELIX-416)
684* [2007-10-30] Change how the extension manager url stream handler handles
685 request to the root path in order to make some tomcat issue go away.
686 (FELIX-414)
687* [2007-10-26] Added support for "/" bundle resources as requested. (FELIX-383)
688* [2007-10-24] Use system bundle when firing a framework error event when an
689 install error occurs.
690* [2007-10-22] Fix a NPE when getEntryPaths is called on the system bundle.
691 (FELIX-394)
692* [2007-10-16] Modifies bundle resource URL handling such that if a resource
693 URL points to a resource that does not exist, a bundle class path search
694 for the resource will be instigated and if any matching resource is found,
695 that one will be used instead. (FELIX-383)
696* [2007-10-10] Auto-property handling now installs bundles into the default
697 bundle start level if a start level is not specified. (FELIX-359)
698* [2007-10-08] Overwrite the URLStreamHandler.getHostAddress(URL) in the
699 ExtensionManager to immediately return null to prevent DNS lookup.
700 (FELIX-388)
701* [2007-09-30] Resolved a concurrency issue that could result in the same
702 bundle being resolved more than once; also tried to simplify locking in
703 the core search policy implementation. (FELIX-381)
704
705Changes from 1.0.0 to 1.0.1
706---------------------------
707
708* [2007-07-23] Fixed a bug in the framework shutdown process which was
709 causing threads calling Felix.stopAndWait() to not get notified that
710 the framework had shutdown. (FELIX-329)
711* [2007-08-15] Fixed a bug in the LDAP filter which was not thread safe
712 on execution. (FELIX-338)
713* [2007-08-17] Added support for persistent last used bundle ID to avoid
714 re-use of bundle identifiers. (FELIX-339)
715* [2007-08-23] Modified BundleImpl.getHeaders(Locale) to accept a null
716 locale. (FELIX-346)
717* [2007-09-11] Added support to handle external termination of Felix
718 which was not handled or detected and prevented a restart of future
719 Felix instances in the same VM. (FELIX-363)
720* [2007-09-12] Add support for Collection values in the LDAP filter to
721 match the 4.1 spec.
722* [2007-09-12] Fixed a bug in the LDAP filter where attributes where
723 limited to [a-zA-Z ] so didn't allow for e.g., numbers. (FELIX-361)
724* [2007-09-13] Enable support for exporting the same package more than
725 once (FELIX-101).
726* [2007-09-13] Returns the system bundle from a call to
727 PackageAdmin.getBundle(Class) in case the class comes from the
728 classloader (or one of its parents) that loaded Felix and the system
729 bundle exports the package.
730* [2007-09-16] Fixed a bug in class space filtering in the service registry
731 that could result in class cast exceptions for service clients.
732* [2007-09-16] Fixed a bug that prevented extension bundle exports to be
733 usable.
734
735Changes from 0.8.0-incubator to 1.0.0
736-------------------------------------
737
738* [2007-01-18] Added support for bundle header localization. (FELIX-27)
739* [2007-01-22] Modified framework resolver to support a generic
740 capability/requirement model.
741* [2007-01-22] Reorganized and centralized manifest parsing code and added
742 support for resolver's generic capability/requirement model. (FELIX-98)
743* [2007-01-22] Improved native library naming normalization. (FELIX-26)
744* [2007-01-23] No longer eagerly resolving classes loaded from modules
745 since this was causing verification errors with IBM J9.
746* [2007-01-25] Added some support for execution environment checking.
747 (FELIX-23)
748* [2007-01-29] Added support for getAllServiceReferences(). (FELIX-32)
749* [2007-01-31] Added Require-Bundle support to resolve using the generic
750 capability/requirement model of the resolver. (FELIX-28)
751* [2007-02-05] Fixed a bug in processor type normalization for x86-64
752 processors.
753* [2007-02-09] The resolver previously ignored packages that were pending
754 removal when resolving new bundles, now it does not.
755* [2007-02-09] Bundles are automatically refreshed when updated/uninstalled
756 if none of their exported packages are in use.
757* [2007-02-13] Added support for extension bundles. (FELIX-30)
758* [2007-03-02] Added a Bundle.getBundleContext() method until actual
759 support for OSGi R4.1.
760* [2007-04-26] Modified Bundle.findEntries() to return URLs to directory
761 entries as well as file entries.
762* [2007-05-06] Modified LDAP evaluator to special case the fact that
763 BigDecimal is not available in Foundation profile.
764* [2007-05-21] Made some performance improvements in LDAP evaluation.
765* [2007-05-22] Modified JAR file to include Service Tracker package.
766* [2007-05-22] Improved concurrency handling around checking for already
767 loaded classes and defining classes.
768* [2007-06-05] Modified resource URLs to use port number rather than
769 prepend information to the resource path.
770* [2007-06-13] Improved dynamic imports to cycle through all available
771 candidates when checking for class space consistency.
772* [2007-06-18] Improved service registry filtering based on class versions
773 to allow a bundle to register a service for a different version of class
774 that it can access.
775* [2007-06-21] Modified our "last ditch effort" to guess when to delegate
776 to the system bundle to make it a little more robust.
777* [2007-06-29] Fixed a bug in EventDispatcher that was causing asynchronous
778 events to not be fired after stopping the framework instance and creating
779 a new instance. (FELIX-314)
780* [2007-07-03] Fixed a bug in EventDispatcher that would not correctly
781 update a listener when it implemented multiple listener interfaces.
782* [2007-07-04] Modified Felix framework class to implement the Bundle
783 interface to improve the startup/shutdown sequence and to provide a
784 simplified API for creating framework instances.
785* [2007-07-11] Removed the PropertyResolver-related classes and now only
786 use Maps for configuration properties. (FELIX-324)