diff --git a/package.json b/package.json index b2f14826c5..8034538536 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "test": "lerna run --scope '@scm-manager/ui-*' test", "typecheck": "lerna run --scope '@scm-manager/ui-*' typecheck", "serve": "webpack-dev-server --mode=development --config=scm-ui/ui-scripts/src/webpack.config.js", - "deploy": "ui-scripts publish" + "deploy": "ui-scripts publish", + "version": "ui-scripts version" }, "devDependencies": { "babel-plugin-reflow": "^0.2.7", diff --git a/pom.xml b/pom.xml index 910287abf0..7a8e16b869 100644 --- a/pom.xml +++ b/pom.xml @@ -839,7 +839,7 @@ 2.3.0 - 1.5.1 + 1.6.0 9.4.22.v20191022 diff --git a/scm-ui/ui-scripts/bin/ui-scripts.js b/scm-ui/ui-scripts/bin/ui-scripts.js index 41549ac27a..28f5ef3315 100755 --- a/scm-ui/ui-scripts/bin/ui-scripts.js +++ b/scm-ui/ui-scripts/bin/ui-scripts.js @@ -1,7 +1,7 @@ #!/usr/bin/env node const { spawnSync } = require("child_process"); -const commands = ["plugin", "plugin-watch", "publish"]; +const commands = ["plugin", "plugin-watch", "publish", "version"]; const args = process.argv.slice(2); diff --git a/scm-ui/ui-scripts/src/commands/publish.js b/scm-ui/ui-scripts/src/commands/publish.js index d3cdc60724..2e5ad90440 100644 --- a/scm-ui/ui-scripts/src/commands/publish.js +++ b/scm-ui/ui-scripts/src/commands/publish.js @@ -4,7 +4,7 @@ const versions = require("../versions"); const args = process.argv.slice(2); if (args.length < 1) { - console.log("usage ui-scripts publish version"); + console.log("usage ui-scripts publish "); process.exit(1); } diff --git a/scm-ui/ui-scripts/src/commands/version.js b/scm-ui/ui-scripts/src/commands/version.js new file mode 100644 index 0000000000..c1feb85318 --- /dev/null +++ b/scm-ui/ui-scripts/src/commands/version.js @@ -0,0 +1,12 @@ +const lerna = require("../lerna"); + +const args = process.argv.slice(2); + +if (args.length < 1) { + console.log("usage ui-scripts version "); + process.exit(1); +} + +const version = args[0]; + +lerna.version(version); diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java index 24d1c239b4..de2480f563 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventor; import se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventorFactory; import se.jiderhamn.classloader.leak.prevention.cleanup.MBeanCleanUp; +import se.jiderhamn.classloader.leak.prevention.cleanup.StopThreadsCleanUp; import se.jiderhamn.classloader.leak.prevention.preinit.SunAwtAppContextInitiator; import sonia.scm.lifecycle.LifeCycle; import sonia.scm.plugin.ChildFirstPluginClassLoader; @@ -43,6 +44,9 @@ public final class ClassLoaderLifeCycle implements LifeCycle { classLoaderLeakPreventorFactory.removePreInitiator(SunAwtAppContextInitiator.class); // the MBeanCleanUp causes a Exception and we use no mbeans classLoaderLeakPreventorFactory.removeCleanUp(MBeanCleanUp.class); + // the StopThreadsCleanUp leads to timeouts on shutdown - we try to stop our threads on our own + classLoaderLeakPreventorFactory.removeCleanUp(StopThreadsCleanUp.class); + return new ClassLoaderLifeCycle(Thread.currentThread().getContextClassLoader(), classLoaderLeakPreventorFactory); }