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:54:04 UTC
[jira] [Updated] (KARAF-6181) ManagedServiceFactory does not work
reliably anymore
[ https://issues.apache.org/jira/browse/KARAF-6181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Markus von Rüden updated KARAF-6181:
------------------------------------
Description:
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:java}
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 logged. In my case 2 of 5 were logged. However if I do a {{config:list}} all configs are listed, but only a few (the logged 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|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|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|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|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|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.
was:
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.
> 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.2, 4.2.3
> Environment: Mac OS X, Apache Karaf 4.2.2/4.2.3, Java 8
> Reporter: Markus von Rüden
> Priority: Major
>
> 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:java}
> 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 logged. In my case 2 of 5 were logged. However if I do a {{config:list}} all configs are listed, but only a few (the logged 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|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|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|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|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|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)