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

        

Reply via email to