/ / Jak wykrywać podczas uruchamiania lub zatrzymywania węgla - wso2, wso2carbon, wso2greg

Jak wykryć podczas uruchamiania lub zatrzymywania węgla - wso2, wso2carbon, wso2greg

Użyłem Runtime.getRuntime ().exec (), aby uruchomić program zewnętrzny w module obsługi GREG i uzyskać jego pid. Ale jak mogę wykryć, kiedy GREG zatrzymuje się lub restartuje, że mogę zatrzymać lub ponownie uruchomić program zewnętrzny.

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli chcesz wykonać niestandardową logikę podczas fazy uruchamiania lub zamykania, możesz użyć programów obsługi zawartych w pakiecie org.wso2.carbon.core

na przykład

ServerStartupHandler - https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerStartupHandler.java

ServerShutdownHandler - https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerShutdownHandler.java

ServerRestartHandler - https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerRestartHandler.java

Możesz także użyć https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerStartupObserver.java słuchać zdarzeń startowych


1 dla odpowiedzi nr 2

Nie ma udokumentowanego mechanizmu tego. Istnieją pewne wewnętrzne mechanizmy w przestrzeni OSGi, w których komponenty mogą definiować zależności, które mają zniechęcać, jeśli zostaną uruchomione. Jednak nie sądzę, że są one narażone na API obsługi.

Jednym ze sposobów jest sprawdzenie, czy możesz uzyskać dostęp do zasobu z poziomu modułu obsługi, a jeśli tak, to uruchom program.