aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Achim Nierbeck (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARIES-1033) Blueprint does not stop bundle when a dependency service is gone
Date Mon, 18 Mar 2013 07:58:15 GMT

    [ https://issues.apache.org/jira/browse/ARIES-1033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13604927#comment-13604927
] 

Achim Nierbeck commented on ARIES-1033:
---------------------------------------

To my knowledge blueprint works like a service tracker, that one doesn't stop a bundle either,
depending services are stopped. You have to separate between bundles ans services.
                
> Blueprint does not stop bundle when a dependency service is gone
> ----------------------------------------------------------------
>
>                 Key: ARIES-1033
>                 URL: https://issues.apache.org/jira/browse/ARIES-1033
>             Project: Aries
>          Issue Type: Bug
>          Components: Blueprint
>    Affects Versions: blueprint-core-1.0.1
>         Environment: karaf@root> list -s -t 0 | grep bluepri
> [   7] [Active     ] [Created     ] [   20] org.apache.aries.blueprint.core (1.1.0)
> [   8] [Active     ] [Created     ] [   20] org.apache.aries.blueprint.cm (1.0.1)
> [  13] [Active     ] [            ] [   20] org.apache.aries.blueprint.api (1.0.0)
> [  16] [Active     ] [Created     ] [   28] org.apache.karaf.deployer.blueprint (2.3.1)
> [  35] [Active     ] [            ] [   30] org.apache.aries.jmx.blueprint.core (1.1.0)
> [  38] [Active     ] [            ] [   30] org.apache.aries.jmx.blueprint.api (1.1.0)
> Karaf
>   Karaf version               2.3.1
>   Karaf home                  /home/rudi/git/bippo-commerce5/karaf_mini
>   Karaf base                  /home/rudi/git/bippo-commerce5/karaf_mini
>   OSGi Framework              org.apache.felix.framework - 4.0.3
> JVM
>   Java Virtual Machine        OpenJDK 64-Bit Server VM version 23.7-b01
>   Version                     1.7.0_15
>   Vendor                      Oracle Corporation
>   Uptime                      12 minutes
>   Total compile time          3.927 seconds
> Threads
>   Live threads                32
>   Daemon threads              27
>   Peak                        35
>   Total started               47
> Memory
>   Current heap size           67,978 kbytes
>   Maximum heap size           466,048 kbytes
>   Committed heap size         158,400 kbytes
>   Pending objects             0
>   Garbage collector           Name = 'PS Scavenge', Collections = 4, Time = 0.025 seconds
>   Garbage collector           Name = 'PS MarkSweep', Collections = 1, Time = 0.023 seconds
> Classes
>   Current classes loaded      3,452
>   Total classes loaded        3,452
>   Total classes unloaded      0
> Operating system
>   Name                        Linux version 3.5.0-25-generic
>   Architecture                amd64
>   Processors                  8
>            Reporter: Hendy Irawan
>
> BTW the blueprint.core 1.1.0 is not available in the JIRA choices. It should be added.
> Here's the dependency:
> {code}
> <bean id="hello" class="com.hendyirawan.blueprintdep.dep.HelloImpl"
> 	init-method="init" destroy-method="destroy"/>
> <service ref="hello" auto-export="interfaces"/>
> {code}
> Here's the consumer: (note that adding `depends-on` has no effect on behavior)
> {code}
> <reference id="hello" interface="com.hendyirawan.blueprintdep.dep.HelloService"/>
> <bean id="consumer" class="com.hendyirawan.blueprintdep.consumer.Consumer"
> 		init-method="init" destroy-method="destroy">
> 	<argument ref="hello"/>
> </bean>
> {code}
> 1. Install the dependency, but don't start it. Then install the consumer and start it.
We'll get this which is correct behavior:
> {code}
> karaf@root> list
> START LEVEL 100 , List Threshold: 50
>    ID   State         Blueprint      Level  Name
> [  54] [Resolved   ] [            ] [   80] com.hendyirawan.blueprintdep.dep (0.0.1.SNAPSHOT)
> [  55] [Active     ] [GracePeriod ] [   80] com.hendyirawan.blueprintdep.consumer (0.0.1.SNAPSHOT)
> {code}
> 2. Start the dependency. The dependency is started and also the consumer, also correct
behavior:
> {code}
> karaf@root> start 54
> karaf@root> HelloService constructed
> HelloService inited
> Consumer created
>       
> karaf@root> list
> START LEVEL 100 , List Threshold: 50
>    ID   State         Blueprint      Level  Name
> [  54] [Active     ] [Created     ] [   80] com.hendyirawan.blueprintdep.dep (0.0.1.SNAPSHOT)
> [  55] [Active     ] [Created     ] [   80] com.hendyirawan.blueprintdep.consumer (0.0.1.SNAPSHOT)
> {code}
> 3. Stop the dependency. Here's unexpected behavior. The dependency is now in 'resolved'
state but the consumer stays in Active-Created state:
> {code}
> karaf@root> stop 54
> HelloService destroyed
> karaf@root> list
> START LEVEL 100 , List Threshold: 50
>    ID   State         Blueprint      Level  Name
> [  54] [Resolved   ] [            ] [   80] com.hendyirawan.blueprintdep.dep (0.0.1.SNAPSHOT)
> [  55] [Active     ] [Created     ] [   80] com.hendyirawan.blueprintdep.consumer (0.0.1.SNAPSHOT)
> {code}
> 4. If we restart the consumer, now the consumer is aware that dependency is gone, so
consumer is destroyed and goes to GracePeriod. But this should have happened in step 3 without
manual restart:
> {code}
> karaf@root> restart 55
> Consumer destroyed
> karaf@root> list
> START LEVEL 100 , List Threshold: 50
>    ID   State         Blueprint      Level  Name
> [  54] [Resolved   ] [            ] [   80] com.hendyirawan.blueprintdep.dep (0.0.1.SNAPSHOT)
> [  55] [Active     ] [GracePeriod ] [   80] com.hendyirawan.blueprintdep.consumer (0.0.1.SNAPSHOT)
> {code}
> Is this a bug or that there's a Blueprint trick I'm not aware yet?
> The sample project is available at https://github.com/ceefour/blueprintdep

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message