OSGi Blueprint Depends-On

E

Elch1988

Gast
Tag liebe Community,

ich hätte eine Frage zum Ablauf in OSGi wie Service registriert und deregistriert werden.
Ich deklariere eine Bean und einen Service in Blueprint.
[XML]
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">

<bean id="bean" class="blabla.Mybean" init-method="activate"
destroy-method="deactivate" depends-on="service">
</bean>

<service interface="my.Service" id="service">
<bean class="my.ServiceImpl" init-method="activate">
</bean>
</service>
[/XML]

Java:
public class MyBean
    {

    public void activate()
        {
        doSomething();
        // Service ist vorhanden
        }

    public void deactivate()
        {
        doSomething();
        // Service ist NICHT vorhanden!!!
        }

    }

Warum wurde der Service beim deactivate schon deregistriert (steht auch in der Konsolenausgabe)?
Der Service sollte erst deregistriert werden, wenn die Bean zerstört wurde. Wie kann ich das hinbekommen?

Danke
 
M

maki

Gast
Warum wurde der Service beim deactivate schon deregistriert (steht auch in der Konsolenausgabe)?
Muss so sein, danach wäre ja schon zu spät.
Er muss vor deactivate deregistriert werden, stell dir mal vor deactivate wäre noch in der Abarbeitung und jemand wollte den Service immer noch nutzen..

Der Service sollte erst deregistriert werden, wenn die Bean zerstört wurde. Wie kann ich das hinbekommen?
Gar nicht?
 

Ähnliche Java Themen


Oben