Bind/Unbind and lifecycle
-------------------------
Key: FELIX-3030
URL: https://issues.apache.org/jira/browse/FELIX-3030
Project: Felix
Issue Type: Bug
Components: iPOJO
Affects Versions: iPOJO-1.8.0
Reporter: Yann Diorcet
According to my
post(http://old.nabble.com/iPojo-lifecycle-and-dependencies-p32003301.html).
It seems that there is a problem with the lifecycle and dependencies.
@Component
@Instantiate
public final class Abcd {
@Requires
private Efg efg;
@Validate
private void start() {
}
@Invalidate
private void stop() {
}
@Bind(aggregate = true, optional = true)
private void bindXyz(final Xyz service) {
}
@Unbind
private void unbindXyz(final Xyz service) {
}
}
Scenario 1:
-A new service(Efg1) provides Efg
-A new service(Xyz1) provides Xyz
-The component Abcd is instantiated
-The bind() is called with Xyz1
-The start() of the component is called
-The Efg1 is unregistered
-The component is invalidated (Efg1 is gone) stop() is called
-During the time that my component is invalidated, if a new Xyz service(Xyz2)
is registred (from an another bundle for example) bindXyz() is called
-After that, if i stop my bundle, my component will be stopped but unbindXyz()
will be not called(neither for Xyz1 nor Xyz2).
Scenario 2:
-A new service(Efg1) provides Efg
-A new service(Xyz1) provides Xyz
-The component Abcd is instantiated
-The bind() is called with Xyz1
-The start() of the component is called
-The Efg1 is unregistered
-The component is invalidated (Efg1 is gone) stop() is called
-A new service(Efg2) provides Efg
-The start() of the component is called
Why all the already existing services are bound at the creation of the
component and not unbound at the "destruction" of the component?
Another solution: Why don't bind the optional services at the validation of the
component and unbind them at the invalidation (like it seems to be done with
not optional service)?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira