[jira] [Resolved] (FELIX-3400) Nullpointer in autoconfprocessor for invalid metatype files
[ https://issues.apache.org/jira/browse/FELIX-3400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3400. - Resolution: Fixed Applied the patch. Nullpointer in autoconfprocessor for invalid metatype files --- Key: FELIX-3400 URL: https://issues.apache.org/jira/browse/FELIX-3400 Project: Felix Issue Type: Bug Components: Deployment Admin Affects Versions: autoconf-rp-0.1.0 Reporter: Bram de Kruijff Assignee: Marcel Offermans Priority: Minor Attachments: FELIX-3400-validate.patch Ran into trouble when I was feeding autoconf some, according to spec, invalid metatype files. MetadataReader does not catch them and AutoconfProcessor subsequently runs into nullpointers. Patch with basic additional validation checks attached for reference. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3338) Add support for optional attributes in the MetaDataReader as defined in the XML schema for metatype
[ https://issues.apache.org/jira/browse/FELIX-3338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3338. - Resolution: Fixed Fix Version/s: metatype-1.0.6 Implemented support in the relevant objects. You can now get a list of optional attributes for such objects. Add support for optional attributes in the MetaDataReader as defined in the XML schema for metatype --- Key: FELIX-3338 URL: https://issues.apache.org/jira/browse/FELIX-3338 Project: Felix Issue Type: Improvement Components: Metatype Service Affects Versions: metatype-1.0.4 Reporter: Marcel Offermans Assignee: Marcel Offermans Fix For: metatype-1.0.6 If you look at the metatype spec, 105.8 shows the XML schema for metatype. We have a parser for it called MetaDataReader, and it basically converts the XML file into a tree of Java objects (MetaData and related). The schema, in several locations, allows you to use optional attributes (scan the schema for anyAttribute /). Our parser currently does not have a way to read such attributes though, but it should! :) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3243) Autoconf does not recognize non-local non-factory OCDs
[ https://issues.apache.org/jira/browse/FELIX-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3243. - Resolution: Fixed Patch applied, thanks Bram. Autoconf does not recognize non-local non-factory OCDs -- Key: FELIX-3243 URL: https://issues.apache.org/jira/browse/FELIX-3243 Project: Felix Issue Type: Bug Components: Deployment Admin Affects Versions: autoconf-rp-0.1.0 Reporter: Bram de Kruijff Assignee: Marcel Offermans Attachments: autoconf_isFactoryConfig.patch Small bug means this this never worked: {code} private boolean isFactoryConfig(Designate designate) { String factoryPid = designate.getFactoryPid(); return (factoryPid != null || !.equals(factoryPid)); } {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3272) Add property to allow foreign resource processors
[ https://issues.apache.org/jira/browse/FELIX-3272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3272. - Resolution: Fixed Makes sense to provide this as an option. Thanks for the patch, I just applied it. Add property to allow foreign resource processors - Key: FELIX-3272 URL: https://issues.apache.org/jira/browse/FELIX-3272 Project: Felix Issue Type: Improvement Components: Deployment Admin Affects Versions: deploymentadmin-0.9.0 Reporter: Angelo van der Sijpt Assignee: Marcel Offermans Attachments: FELIX-3272.patch DeploymentAdmin is built in such a way, that a deployment package is self-contained. However, in my case, I want to use a ResourceProcessor that is already on the system to process a configuration resource; if I do this, this will give me a DeploymentException.CODE_FOREIGN_CUSTOMIZER. Just like system property org.apache.felix.deploymentadmin.stopunaffectedbundle can customize the behavior of deployment admin, I propose a new property: org.apache.felix.deploymentadmin.allowforeigncustomizers , which allows ResourceProcessors that are already on the system to process resources in a deployment package. This should not be default behavior, so a system property should be in order. I will attach a patch for this shortly. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3292) Allow passing of resource properties to a resource handler for use with resource adapters.
[ https://issues.apache.org/jira/browse/FELIX-3292?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3292. - Resolution: Fixed Resolving the issue after committing the patch. Xander, please review if you agree with the small changes I made while applying the patch. Allow passing of resource properties to a resource handler for use with resource adapters. -- Key: FELIX-3292 URL: https://issues.apache.org/jira/browse/FELIX-3292 Project: Felix Issue Type: Improvement Components: Dependency Manager Reporter: Xander Uiterlinden Assignee: Marcel Offermans Labels: patch Attachments: resourceadapterpatch2.patch, resourcepatch.patch Currently we're using the dependency manager in our project. A feature we extensively use is the resource adapter. The resource adapter service gets access to a resource through the abstraction of a URL. This is a nice abstraction but raises challenges whenever an implementation requires more properties of the resource, e.g. the last modification date or the encoding. At the moment we're working our way around it by creating implementing a custom URLHandler. It would be nicer if the resource adapter could be provided with a set of optional properties. My suggestion would be to extend the added(URL resource) method of the ResourceHandler with an additional argument holding a untyped set of properties. When provided these will be injected into the resource adapter implementation. I'll attach a patch to this issue with the implementation of this feature. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3186) Adapter services do not get their adapted services transparently replaced when an aspect is added to them.
[ https://issues.apache.org/jira/browse/FELIX-3186?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3186. - Resolution: Fixed Thanks for this extensive patch, Xander. As you can see from the commit log, I applied the patches with some changes, so it probably makes sense that you review my changes. Adapter services do not get their adapted services transparently replaced when an aspect is added to them. -- Key: FELIX-3186 URL: https://issues.apache.org/jira/browse/FELIX-3186 Project: Felix Issue Type: Bug Components: Dependency Manager Affects Versions: dependencymanager-3.0.0 Environment: mac-osx Reporter: Xander Uiterlinden Assignee: Marcel Offermans Labels: bug Fix For: dependencymanager-3.0.0 Attachments: AspectAdapterTest.java, adapteronsomethingwithaspectpatch.patch, adapteronsomethingwithaspecttestpatch.patch A service consumer consumes an adapter service. The adapter service adapts a service provider. An aspect is added to the service provider. This should not impact the service consumer. Expected behavior is transparent replacement of the service the adapter adapts with the aspect service. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3245) Autoconf handles metatype 1.1 cardinalty wrong
[ https://issues.apache.org/jira/browse/FELIX-3245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3245. - Resolution: Fixed Patch applied. Autoconf handles metatype 1.1 cardinalty wrong -- Key: FELIX-3245 URL: https://issues.apache.org/jira/browse/FELIX-3245 Project: Felix Issue Type: Bug Components: Deployment Admin Affects Versions: autoconf-rp-0.1.0 Reporter: Bram de Kruijff Assignee: Marcel Offermans Attachments: autoconf_Cardinality.patch According to 105.13.2.12 in the R42 compendium spec cardinality is interpreted as: x = Integer.MIN_VALUE no limit, but use Vector x 0 -x = max occurrences, store in Vector x 0 x = max occurrences, store in array [] x = Integer.MAX_VALUE no limit, but use array [] x = 0 1 occurrence required This is not what happens in autoconf 0.1. I'll attach a small patch that should be self-expl. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3270) Deployment admin incorrectly takes snapshots of bundle data areas
[ https://issues.apache.org/jira/browse/FELIX-3270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3270. - Resolution: Fixed Fixed. Deployment admin incorrectly takes snapshots of bundle data areas - Key: FELIX-3270 URL: https://issues.apache.org/jira/browse/FELIX-3270 Project: Felix Issue Type: Bug Components: Deployment Admin Affects Versions: deploymentadmin-0.9.0 Reporter: Marcel Offermans Assignee: Marcel Offermans The deployment admin implementation relies on a SnapshotCommand to make snapshots of bundle data areas. However, dus to a mistake in the store() method, these snapshots don't work. The method incorrectly invokes storeRecursive(). We actually ran into this issue because we saw an update deployment fail (hanging in this method because it managed to create an infinity copy). storeRecursive(target, ... - storeRecursive(source, ... -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3264) Dependency manager shell should not print the state of optional dependencies when not all required ones are available
[ https://issues.apache.org/jira/browse/FELIX-3264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3264. - Resolution: Fixed Committed a fix for this. Dependency manager shell should not print the state of optional dependencies when not all required ones are available - Key: FELIX-3264 URL: https://issues.apache.org/jira/browse/FELIX-3264 Project: Felix Issue Type: Improvement Components: Dependency Manager Affects Versions: dependencymanager-3.0.0 Reporter: Marcel Offermans Assignee: Marcel Offermans Internally, the dependency manager only starts listening to optional dependencies once all required ones are available. That means that optional dependencies will always be listed as unavailable in that scenario. That looks somewhat funny though: a required dependency to A that is available might also be shown as an optional one to A in a different component, and it might seem unavailable there. The fix is to not print the state of (optional) dependencies if they have not been started yet. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3218) ServiceTracker performance is not optimal with a service dependency that results in n-thousands of injected services.
[ https://issues.apache.org/jira/browse/FELIX-3218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3218. - Resolution: Fixed Patch applied. ServiceTracker performance is not optimal with a service dependency that results in n-thousands of injected services. - Key: FELIX-3218 URL: https://issues.apache.org/jira/browse/FELIX-3218 Project: Felix Issue Type: Improvement Components: Dependency Manager Environment: MacOS Snow Leopard. Reporter: Xander Uiterlinden Assignee: Marcel Offermans Attachments: ServiceTracker.patch ServiceTracker performance is not optimal with a service dependency that results in n-thousands of injected services. The ServiceTracker.setInitial() implementation has a nested loop causing performance issues, e.g. quatratic lookup of service properties. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3042) [PATCH] Add a convenience clear() method on DependencyManager
[ https://issues.apache.org/jira/browse/FELIX-3042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3042. - Resolution: Fixed I agree that this patch is an improvement. Moving the method makes a lot of sense and improves the use case of directly working with a DependencyManager. [PATCH] Add a convenience clear() method on DependencyManager - Key: FELIX-3042 URL: https://issues.apache.org/jira/browse/FELIX-3042 Project: Felix Issue Type: Improvement Components: Dependency Manager Reporter: Jeremias Maerki Assignee: Marcel Offermans Priority: Minor Labels: patch Attachments: dependencymanager-clear-patch.diff I recently stumbled over DependencyManager and immediately found it very nice to work with. I have some cases where I instantiate my own DependencyManagers (ex. one per monitored bundle in a SynchronousBundleListener). Now that I found myself copy/pasting a method that removes all components from a DependencyManager, I modified DM to add a clear() method on DependencyManager. Basically I moved the code from DependencyActivatorBase. I hope you find this patch useful. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3201) Offer more functional callback methods for services that have aspects on them.
[ https://issues.apache.org/jira/browse/FELIX-3201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3201. - Resolution: Fixed Reviewed and committed both patches. Offer more functional callback methods for services that have aspects on them. -- Key: FELIX-3201 URL: https://issues.apache.org/jira/browse/FELIX-3201 Project: Felix Issue Type: Improvement Components: Dependency Manager Environment: n/a Reporter: Xander Uiterlinden Assignee: Marcel Offermans Labels: features Attachments: dm-core-patch.txt, dm-test-patch.txt When programmatically adding service dependencies using the Apache felix dependency manager there are two ways to have the component brought its dependencies when they come available. These are the following: - have the service injected in the component; this is usually sufficient for cases where there's only one service expected to satisfy the dependency (1-to-1) . - explicitly specify callback methods; callbacks can be used when there might be more than one service satisfying the dependency (1-to-n). When a dependency is marked optional, the callback method also helps to determine when the dependency actually became satisfied. When using callback methods with the dependency manager you can specify the following callbacks: - added; gets called when the service required has become available. - changed; gets called when the service properties of a added required service have changed. - removed; gets called when the service required has become unavailable. At first these callbacks seem pretty simple. Just add the service to the component's internal administration on the added callback and remove it from the administration whenever the removed callback is called. But, the dependency manager also supports the concept of aspect services which make using the callback method in a correct way a bit more difficult. Aspect services are services that are put on top of another service while still implementing the original service's interface. They allow you to implement cross-cutting functional requirements. In the OSGi service registry aspect services are individual services just like 'regular' singleton services. When using callback methods for dependencies a component is informed of the add/remove of an aspect service, just like it is when a 'regular' service is added/removed. When using injection for dependencies the aspect is transparently injected. The callbacks also handling aspect services the same way as 'regular' services makes it difficult for a component developer to correctly implement these callbacks. For example take the following scenario: Component A expresses a service dependency to Service B. Without any aspects in the container the following callbacks would be added on Component A. added(Service B) But whenever there's an aspect running on top of Service B, the order of callbacks would be as follows: added(Service B) added(Service B aspect) removed(Service B) When backed by a typical HashMap administration this would result in: put(B.id, B) put(B.id, B) remove(B.id) This sequence would result in an empty Map, which is not a desirable situation. In order to ease the dependency handling an additional callback method is needed which hides the complexity as described above and translates the callbacks to the following more functional callbacks: added; called when the service required has become available. swapped; called when the service required needs to be replaced due to add or removal of an aspect. This to be sure the component uses the aspect that's on top of the aspect chain for the required service. changed; called when the service properties of an added required service have changed. removed; called when the service required has become unavailable. With these callbacks a developer does not have to worry about the possible sequences in which added/removed can occur. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-1828) Mistake in code of the class UpdateCommand
[ https://issues.apache.org/jira/browse/FELIX-1828?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-1828. - Resolution: Fixed Mistake in code of the class UpdateCommand -- Key: FELIX-1828 URL: https://issues.apache.org/jira/browse/FELIX-1828 Project: Felix Issue Type: Bug Components: Deployment Admin Reporter: Pavel Kodl Assignee: Marcel Offermans Priority: Critical On row 70 should be : Bundle bundle = targetPackage.getBundle(bundleInfo.getSymbolicName()); instead of: Bundle bundle = source.getBundle(bundleInfo.getSymbolicName()); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3072) Bad manifest content on Import-package part
[ https://issues.apache.org/jira/browse/FELIX-3072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Offermans resolved FELIX-3072. - Resolution: Not A Problem See comment. Bad manifest content on Import-package part --- Key: FELIX-3072 URL: https://issues.apache.org/jira/browse/FELIX-3072 Project: Felix Issue Type: Bug Components: Deployment Admin Affects Versions: deploymentadmin-0.9.0 Environment: linux (archlinux Reporter: Thierry D. Priority: Minor Labels: build The Import-Package parameter of the bundle's manifest file should not contain org.osgi.service.deploymentadmin packages classes because it embeds these classes. this bug generates ClassNotFound exception when you use the webconsole bundle felix plugin. original parameter value : Import-Package: org.apache.felix.dm;version=[3.0,4),org.osgi.framework;version=[1.5,2),org.osgi.service.deploymentadmin;version=1.1,2),org.osgi.service.deploymentadmin.spi;version=[1.0,2),org.osgi.service.event;version=[1.2,2),org.osgi.service.log;version=1.3,2),org.osgi.service.packageadmin;version=[1.2,2) suggested parameter value (fix ?): Import-Package: org.apache.felix.dm;version=[3.0,4),org.osgi.framework;version=[1.5,2),org.osgi.service.event;version=[1.2,2), org.osgi.service.log;version=[1.3,2),org.osgi.service.packageadmin;version=[1.2,2) unfortunatelly I am not able to provide a fix because I dont know how the osgi bunble maven plugin work exactly. I hope this will help you regards -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira