You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Markus von Rüden (JIRA)" <ji...@apache.org> on 2019/03/05 13:46:00 UTC
[jira] [Created] (KARAF-6181) ManagedServiceFactory does not work
reliably anymore
Markus von Rüden created KARAF-6181:
---------------------------------------
Summary: ManagedServiceFactory does not work reliably anymore
Key: KARAF-6181
URL: https://issues.apache.org/jira/browse/KARAF-6181
Project: Karaf
Issue Type: Bug
Affects Versions: 4.2.3, 4.2.2
Environment: Mac OS X, Apache Karaf 4.2.2/4.2.3, Java 8
Reporter: Markus von Rüden
It seems that the *ManagedServiceFactory* in combination with *service.pid* does not work reliably anymore with Apache Karaf 4.2.3.
*The Problem*
Registering a *ManagedServiceFactory* with a provided *service.pid* does no longer invoke the "updated(...)" method ** even when it should.
*How to Reproduce*
I created a simple example project, where a *ManagedServiceFactory* service is exposed with *service.pid=org.opennms.dummy.services*
The service simply prints out if a service with the pid managed by the factory was created/updated/deleted
In order to help narrowing down the problem, here is how to reproduce it
* Checkout the [example repository|https://github.com/mvrueden/karaf-managed-service-factory-example]
* Build the code with {{mvn clean install}}
* Download latest Apache Karaf 4.2.3 Distribution from [here|http://www.apache.org/dyn/closer.lua/karaf/4.2.3/apache-karaf-4.2.3.tar.gz].
* Extract the archive
* Start the container {{./bin/karaf}}
* Install {{aries-blueprint}}: {{feature:install aries-blueprint}}
* Install the bundle: {{install -s mvn:org.opennms.dummy/managed-service-factory/1.0-SNAPSHOT}}
* Verify via {{list}}
* Now add some configuration files, e.g.
{code}
config:edit org.opennms.dummy.services-1
config:property-set key value
config:update
{code}
If you check the logs via {{log:tail}} you can see, that only some or none are actually printed. In my case 2 of 5 were printed. However if I do a {{config:list}} all configs are listed, but only a few (the printed ones) have a factoryPid.
{quote}
karaf@root()> config:list "(service.pid=org.opennms*)"
----------------------------------------------------------------
Pid: org.opennms.dummy.services-3
BundleLocation: null
Properties:
a = b
felix.fileinstall.filename = file:/Users/mvrueden/Downloads/apache-karaf-4.2.3/etc/org.opennms.dummy.services-3.cfg
service.pid = org.opennms.dummy.services-3
----------------------------------------------------------------
Pid: org.opennms.dummy.services-asdf
BundleLocation: null
Properties:
a = b
bla = bla
felix.fileinstall.filename = file:/Users/mvrueden/Downloads/apache-karaf-4.2.3/etc/org.opennms.dummy.services-asdf.cfg
service.pid = org.opennms.dummy.services-asdf
----------------------------------------------------------------
Pid: org.opennms.dummy.services-xyz
BundleLocation: null
Properties:
felix.fileinstall.filename = file:/Users/mvrueden/Downloads/apache-karaf-4.2.3/etc/org.opennms.dummy.services-xyz.cfg
service.pid = org.opennms.dummy.services-xyz
----------------------------------------------------------------
Pid: org.opennms.dummy.services.30b34eda-96f1-4bd1-9e6e-396e3af9cd84
FactoryPid: org.opennms.dummy.services
BundleLocation: ?
Properties:
felix.fileinstall.filename = file:/Users/mvrueden/Downloads/apache-karaf-4.2.3/etc/org.opennms.dummy.services-2.cfg
service.factoryPid = org.opennms.dummy.services
service.pid = org.opennms.dummy.services.30b34eda-96f1-4bd1-9e6e-396e3af9cd84
----------------------------------------------------------------
Pid: org.opennms.dummy.services.e670d214-5eba-4086-9129-f79918542f8c
FactoryPid: org.opennms.dummy.services
BundleLocation: ?
Properties:
felix.fileinstall.filename = file:/Users/mvrueden/Downloads/apache-karaf-4.2.3/etc/org.opennms.dummy.services-1.cfg
service.factoryPid = org.opennms.dummy.services
service.pid = org.opennms.dummy.services.e670d214-5eba-4086-9129-f79918542f8c
x = z
{quote}
Restarting the container also did not work.
However, uninstalling the bundle and re-installing it, will work.
I was able to confirm this for 4.2.2 as well. In 4.1.5 it still works as expected.
Please let me know if there is anything I can do to help resolving this.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)