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