[
https://issues.apache.org/jira/browse/ARIES-1033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christian Schneider closed ARIES-1033.
--------------------------------------
Resolution: Won't Fix
Assignee: Christian Schneider
I would like to close this issue as it seems we agree that the blueprint spec
mandates that beans using a removed service are not stopped.
> Blueprint does not destroy dependent bean 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, blueprint-core-1.1.0
> 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
> Assignee: Christian Schneider
>
> 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 was sent by Atlassian JIRA
(v6.2#6252)