diff options
Diffstat (limited to 'vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppCoreProvider.java')
-rw-r--r-- | vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppCoreProvider.java | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppCoreProvider.java b/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppCoreProvider.java index 4945bb98e..609611252 100644 --- a/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppCoreProvider.java +++ b/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppCoreProvider.java @@ -18,11 +18,12 @@ package io.fd.hc2vpp.common.integration; import com.google.inject.Inject; import io.fd.honeycomb.binding.init.ProviderTrait; -import java.io.IOException; +import io.fd.honeycomb.data.init.ShutdownHandler; import io.fd.vpp.jvpp.JVppRegistry; import io.fd.vpp.jvpp.core.JVppCoreImpl; import io.fd.vpp.jvpp.core.future.FutureJVppCore; import io.fd.vpp.jvpp.core.future.FutureJVppCoreFacade; +import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,21 +38,15 @@ public final class JVppCoreProvider extends ProviderTrait<FutureJVppCore> { @Inject private JVppRegistry registry; + @Inject + private ShutdownHandler shutdownHandler; + @Override protected FutureJVppCoreFacade create() { try { final JVppCoreImpl jVpp = new JVppCoreImpl(); // Free jvpp-core plugin's resources on shutdown - Runtime.getRuntime().addShutdownHook(new Thread() { - - @Override - public void run() { - LOG.info("Unloading jvpp-core plugin"); - jVpp.close(); - LOG.info("Successfully unloaded jvpp-core plugin"); - } - }); - + shutdownHandler.register("jvpp-core", jVpp); LOG.info("Successfully loaded jvpp-core plugin"); return new FutureJVppCoreFacade(registry, jVpp); } catch (IOException e) { |