You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Florian Pattke <ca...@web.de> on 2018/07/05 16:43:17 UTC
Dependency Manager - Service does not stop
Hello,
I am using a FactoryConfigurationAdapterServer and I have problems to
unregister the services, when I stop the bundle.
Here is my activator code:
public void init(BundleContext bundleContext, DependencyManager
dependencyManager) throws Exception {
dependencyManager.add(
createFactoryConfigurationAdapterService(
JavacordConnector.SERVICE_PID,
"configure",
true,
JavacordConnectorConfiguration.class
)
.setImplementation(JavacordConnector.class)
.setCallbacks(null, "connect", "disconnect", null)
.add(
createServiceDependency()
.setService(CommandRegistry.class)
.setRequired(false)
.setDefaultImplementation(NOPCommandRegistry.class)
)
);
}
Situation:
- bundle is active
- factory adapter is registered
- via config file and ConfigAdmin is a JavacordConnector registered as well
Now when I stop the bundle nothing happens. All services are still
available, up and running.
How can achieve that all these services will be stopped, once I stop the
bundle?
Regards
Florian
---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: Dependency Manager - Service does not stop
Posted by Florian Pattke <ca...@web.de>.
Hello Pierre,
your example worked fine. I got it working now, it was not related to
the Dependcy Manager directly. I messed because an Exception was
swallowed by a CompletableFuture.
Thanks a lot for your help.
Regards
Florian
On 06.07.2018 01:35, Pierre De Rop wrote:
> Hello Florian,
>
> I have tried to reproduce the problem, but it seems to work well; I have
> committed a sample code which reflects the usecase you are describing here
> [1].
> Can you please clone it and give it a try (the sample code is built using
> bndtools 3.4.0).
>
> To build the sample:
>
> git clone https://github.com/pderop/test.dm.factorypid.git
> cd test.dm.factorypid
> chmod a+x ./gradlew
> ./gradlew jar
> ./gradlew export.launch
>
> the last command generates a ubber jar in
> test.dm.factorypid/test/generated/distributions/executable/launch.jar
>
> just run it:
>
> cd test.dm.factorypid/test/generated/distributions/executable
> java -jar launch.jar
>
> you will see these logs:
>
> Configurator: creating conf
> JavacordConnector.configure: property=value
> JavacordConnector.start
> NOPCommandRegistry.run
>
> now, from gogo, stop the bundle:
>
> g! lb
> START LEVEL 1
> ID|State |Level|Name
> 0|Active | 0|System Bundle (5.6.10)|5.6.10
> 1|Active | 1|test (1.0.0.201807052324)|1.0.0.201807052324
> 2|Active | 1|Apache Felix Configuration Admin Service
> (1.8.8)|1.8.8
> 3|Active | 1|Apache Felix Dependency Manager (4.4.1)|4.4.1
> 4|Active | 1|Apache Felix Gogo Command (1.0.2)|1.0.2
> 5|Active | 1|Apache Felix Gogo Runtime (1.0.10)|1.0.10
> 6|Active | 1|Apache Felix Gogo Shell (1.0.0)|1.0.0
> 7|Active | 1|Apache Felix Metatype Service (1.1.2)|1.1.2
>
> stop 1
>
> and you will see this logs:
>
> JavacordConnector.stop
>
> so, I wonder why you are overriding the init/start/stop/destroy callbacks
> using :
>
> setCallbacks(null, "connect", "disconnect", null);
>
> This method is only used when you need to override the lifecycle
> init/start/stop/destroy callbacks.
> Maybe your component has "start"/"stop" callbacks, not
> "connect"/"disconnect" callbacks ?
>
> let me know if the sample works for you, maybe there is another thing I
> have missed ?
>
> regards
> Pierre
>
> [1] https://github.com/pderop/test.dm.factorypid
>
> On Thu, Jul 5, 2018 at 6:43 PM, Florian Pattke <ca...@web.de> wrote:
>
>> Hello,
>>
>> I am using a FactoryConfigurationAdapterServer and I have problems to
>> unregister the services, when I stop the bundle.
>>
>> Here is my activator code:
>>
>> public void init(BundleContext bundleContext, DependencyManager
>> dependencyManager) throws Exception {
>> dependencyManager.add(
>> createFactoryConfigurationAdapterService(
>> JavacordConnector.SERVICE_PID,
>> "configure",
>> true,
>> JavacordConnectorConfiguration.class
>> )
>> .setImplementation(JavacordConnector.class)
>> .setCallbacks(null, "connect", "disconnect", null)
>> .add(
>> createServiceDependency()
>> .setService(CommandRegistry.class)
>> .setRequired(false)
>> .setDefaultImplementation(NOPCommandRegistry.class)
>> )
>> );
>> }
>>
>> Situation:
>> - bundle is active
>> - factory adapter is registered
>> - via config file and ConfigAdmin is a JavacordConnector registered as well
>>
>> Now when I stop the bundle nothing happens. All services are still
>> available, up and running.
>> How can achieve that all these services will be stopped, once I stop the
>> bundle?
>>
>> Regards
>> Florian
>>
>> ---
>> Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
>> https://www.avast.com/antivirus
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: Dependency Manager - Service does not stop
Posted by Pierre De Rop <pi...@gmail.com>.
Hello Florian,
I have tried to reproduce the problem, but it seems to work well; I have
committed a sample code which reflects the usecase you are describing here
[1].
Can you please clone it and give it a try (the sample code is built using
bndtools 3.4.0).
To build the sample:
git clone https://github.com/pderop/test.dm.factorypid.git
cd test.dm.factorypid
chmod a+x ./gradlew
./gradlew jar
./gradlew export.launch
the last command generates a ubber jar in
test.dm.factorypid/test/generated/distributions/executable/launch.jar
just run it:
cd test.dm.factorypid/test/generated/distributions/executable
java -jar launch.jar
you will see these logs:
Configurator: creating conf
JavacordConnector.configure: property=value
JavacordConnector.start
NOPCommandRegistry.run
now, from gogo, stop the bundle:
g! lb
START LEVEL 1
ID|State |Level|Name
0|Active | 0|System Bundle (5.6.10)|5.6.10
1|Active | 1|test (1.0.0.201807052324)|1.0.0.201807052324
2|Active | 1|Apache Felix Configuration Admin Service
(1.8.8)|1.8.8
3|Active | 1|Apache Felix Dependency Manager (4.4.1)|4.4.1
4|Active | 1|Apache Felix Gogo Command (1.0.2)|1.0.2
5|Active | 1|Apache Felix Gogo Runtime (1.0.10)|1.0.10
6|Active | 1|Apache Felix Gogo Shell (1.0.0)|1.0.0
7|Active | 1|Apache Felix Metatype Service (1.1.2)|1.1.2
stop 1
and you will see this logs:
JavacordConnector.stop
so, I wonder why you are overriding the init/start/stop/destroy callbacks
using :
setCallbacks(null, "connect", "disconnect", null);
This method is only used when you need to override the lifecycle
init/start/stop/destroy callbacks.
Maybe your component has "start"/"stop" callbacks, not
"connect"/"disconnect" callbacks ?
let me know if the sample works for you, maybe there is another thing I
have missed ?
regards
Pierre
[1] https://github.com/pderop/test.dm.factorypid
On Thu, Jul 5, 2018 at 6:43 PM, Florian Pattke <ca...@web.de> wrote:
> Hello,
>
> I am using a FactoryConfigurationAdapterServer and I have problems to
> unregister the services, when I stop the bundle.
>
> Here is my activator code:
>
> public void init(BundleContext bundleContext, DependencyManager
> dependencyManager) throws Exception {
> dependencyManager.add(
> createFactoryConfigurationAdapterService(
> JavacordConnector.SERVICE_PID,
> "configure",
> true,
> JavacordConnectorConfiguration.class
> )
> .setImplementation(JavacordConnector.class)
> .setCallbacks(null, "connect", "disconnect", null)
> .add(
> createServiceDependency()
> .setService(CommandRegistry.class)
> .setRequired(false)
> .setDefaultImplementation(NOPCommandRegistry.class)
> )
> );
> }
>
> Situation:
> - bundle is active
> - factory adapter is registered
> - via config file and ConfigAdmin is a JavacordConnector registered as well
>
> Now when I stop the bundle nothing happens. All services are still
> available, up and running.
> How can achieve that all these services will be stopped, once I stop the
> bundle?
>
> Regards
> Florian
>
> ---
> Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
> https://www.avast.com/antivirus
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>