From d9213e7d3136cc7f0d63c6fd37c38c65c6d14fe4 Mon Sep 17 00:00:00 2001 From: Benjamin Kastelic Date: Tue, 3 Oct 2017 10:28:40 +0200 Subject: [PATCH 1/4] fire BeforeShutdown event to trigger @PreDestroy methods on CDI beans --- tools/loader/pom.xml | 7 +++++++ .../java/com/kumuluz/ee/loader/EeClassLoader.java | 12 +++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/tools/loader/pom.xml b/tools/loader/pom.xml index 1e3ea047..e79817a9 100644 --- a/tools/loader/pom.xml +++ b/tools/loader/pom.xml @@ -13,4 +13,11 @@ KumuluzEE custom class loader implementation kumuluzee-loader + + + + javax.enterprise + cdi-api + + \ No newline at end of file diff --git a/tools/loader/src/main/java/com/kumuluz/ee/loader/EeClassLoader.java b/tools/loader/src/main/java/com/kumuluz/ee/loader/EeClassLoader.java index 273a89dc..66c7d1d6 100644 --- a/tools/loader/src/main/java/com/kumuluz/ee/loader/EeClassLoader.java +++ b/tools/loader/src/main/java/com/kumuluz/ee/loader/EeClassLoader.java @@ -24,6 +24,8 @@ import com.kumuluz.ee.loader.jar.JarEntryInfo; import com.kumuluz.ee.loader.jar.JarFileInfo; +import javax.enterprise.inject.spi.BeforeShutdown; +import javax.enterprise.inject.spi.CDI; import java.io.*; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -137,6 +139,8 @@ public EeClassLoader(ClassLoader parent) { shutdown(); } catch (InterruptedException e) { LOG.severe("Failed to shutdown and clean up gracefully."); + } catch (NoClassDefFoundError e) { + } })); @@ -310,12 +314,18 @@ private Class findJarClass(String className) throws EeClassLoaderException { } /** - * Called on shutdown to cleanup temporary files. + * Called on shutdown to cleanup CDI beans and temporary files. */ private void shutdown() { debug("Shutting down and cleaning up ..."); + try { + CDI.current().getBeanManager().fireEvent(BeforeShutdown.class); + } catch (Exception e) { + // do nothing + } + for (JarFileInfo jarFileInfo : jarFiles) { try { jarFileInfo.getJarFile().close(); From bdd430a04cae86adde92e1d7e1365dfd521835ca Mon Sep 17 00:00:00 2001 From: Benjamin Kastelic Date: Mon, 16 Oct 2017 13:14:40 +0200 Subject: [PATCH 2/4] minor --- .../src/main/java/com/kumuluz/ee/loader/EeClassLoader.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/loader/src/main/java/com/kumuluz/ee/loader/EeClassLoader.java b/tools/loader/src/main/java/com/kumuluz/ee/loader/EeClassLoader.java index fae5b5a3..5650bada 100644 --- a/tools/loader/src/main/java/com/kumuluz/ee/loader/EeClassLoader.java +++ b/tools/loader/src/main/java/com/kumuluz/ee/loader/EeClassLoader.java @@ -37,7 +37,6 @@ import java.util.*; import java.util.jar.JarEntry; import java.util.jar.JarFile; -import java.util.logging.Logger; /** * @author Benjamin Kastelic @@ -136,9 +135,9 @@ public EeClassLoader(ClassLoader parent) { mainThread.join(); shutdown(); } catch (InterruptedException e) { - LOG.severe("Failed to shutdown and clean up gracefully."); + debug("Failed to shutdown and clean up gracefully."); } catch (NoClassDefFoundError e) { - + } })); From 4e0b551a6437d5173494b2a95dd4c801d218f176 Mon Sep 17 00:00:00 2001 From: Benjamin Kastelic Date: Mon, 16 Oct 2017 13:45:47 +0200 Subject: [PATCH 3/4] EeClassLoader CDI dependency should be provided --- tools/loader/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/loader/pom.xml b/tools/loader/pom.xml index e79817a9..924ccbc8 100644 --- a/tools/loader/pom.xml +++ b/tools/loader/pom.xml @@ -18,6 +18,7 @@ javax.enterprise cdi-api + provided \ No newline at end of file From 8569a56e8f55b13aa830f20a0fbe4f59b52b3bea Mon Sep 17 00:00:00 2001 From: Benjamin Kastelic Date: Wed, 17 Jun 2020 09:08:37 +0200 Subject: [PATCH 4/4] bumped jackson version due to security risk in jackson-databind < 2.9.10 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 197774bf..f8d78884 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ 2.4.4.Final 5.4.1.Final 2.25.1 - 2.8.10 + 2.9.10 2.3.1 5.2.10.Final 2.6.4