You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/03/22 12:24:55 UTC

[isis] branch master updated: ISIS-2877: Demo: turn on there-can-be-only-one feature

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new c6c0ef2  ISIS-2877: Demo: turn on there-can-be-only-one feature
c6c0ef2 is described below

commit c6c0ef270a0cd4a656e403d27f84aa055c7069ca
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Mar 22 13:24:47 2022 +0100

    ISIS-2877: Demo: turn on there-can-be-only-one feature
---
 .../java/org/apache/isis/commons/internal/os/_OsUtil.java  | 14 ++++++++++++++
 .../java/demoapp/webapp/wicket/jdo/DemoAppWicketJdo.java   |  5 +++++
 .../java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java   |  6 +++++-
 3 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/commons/src/main/java/org/apache/isis/commons/internal/os/_OsUtil.java b/commons/src/main/java/org/apache/isis/commons/internal/os/_OsUtil.java
index f0c2799..e5a326a 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/os/_OsUtil.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/os/_OsUtil.java
@@ -105,6 +105,20 @@ public class _OsUtil {
         }
     }
 
+    /**
+     * Terminates an instance of this application,
+     * if there is an already running one found.
+     * <p>
+     * Use in conjunction with system environment variable
+     * {@code THERE_CAN_BE_ONLY_ONE=true}, in order to switch this feature on.
+     * @see #thereCanBeOnlyOne(File)
+     */
+    public void thereCanBeOnlyOne() {
+        if("true".equalsIgnoreCase(System.getenv("THERE_CAN_BE_ONLY_ONE"))) {
+            _OsUtil.thereCanBeOnlyOne(new File("pid.log"));
+        }
+    }
+
     @SneakyThrows
     public void terminateProcessByPid(final @Nullable String pid) {
         val pidTrimmed = _Strings.blankToNullOrTrim(pid);
diff --git a/examples/demo/wicket/jdo/src/main/java/demoapp/webapp/wicket/jdo/DemoAppWicketJdo.java b/examples/demo/wicket/jdo/src/main/java/demoapp/webapp/wicket/jdo/DemoAppWicketJdo.java
index 4dfec7a..70c5639 100644
--- a/examples/demo/wicket/jdo/src/main/java/demoapp/webapp/wicket/jdo/DemoAppWicketJdo.java
+++ b/examples/demo/wicket/jdo/src/main/java/demoapp/webapp/wicket/jdo/DemoAppWicketJdo.java
@@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 import org.springframework.context.annotation.Import;
 
+import org.apache.isis.commons.internal.os._OsUtil;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.extensions.viewer.wicket.pdfjs.ui.IsisModuleExtPdfjsUi;
 import org.apache.isis.valuetypes.asciidoc.metamodel.IsisModuleValAsciidocMetaModel;
@@ -75,6 +76,10 @@ public class DemoAppWicketJdo extends SpringBootServletInitializer {
      * entry point by searching for classes having a {@code main(...)}
      */
     public static void main(final String[] args) {
+
+        // activates when sys-env THERE_CAN_BE_ONLY_ONE=true
+        _OsUtil.thereCanBeOnlyOne();
+
     	IsisPresets.prototyping();
         //IsisPresets.logging(WebRequestCycleForIsis.class, "debug");
 
diff --git a/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java b/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java
index adad1d1..f02d81f 100644
--- a/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java
+++ b/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java
@@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 import org.springframework.context.annotation.Import;
 
+import org.apache.isis.commons.internal.os._OsUtil;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.extensions.viewer.wicket.pdfjs.ui.IsisModuleExtPdfjsUi;
 import org.apache.isis.valuetypes.asciidoc.metamodel.IsisModuleValAsciidocMetaModel;
@@ -33,7 +34,6 @@ import org.apache.isis.valuetypes.markdown.persistence.jpa.IsisModuleValMarkdown
 import org.apache.isis.valuetypes.markdown.ui.wkt.IsisModuleValMarkdownUiWkt;
 import org.apache.isis.valuetypes.sse.ui.wkt.IsisModuleValSseUiWkt;
 import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
-import org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault;
 
 import demoapp.web.DemoAppManifestJpa;
 import demoapp.webapp.wicket.common.ui.DemoAppWicketCommon;
@@ -76,6 +76,10 @@ public class DemoAppWicketJpa extends SpringBootServletInitializer {
      * entry point by searching for classes having a {@code main(...)}
      */
     public static void main(final String[] args) {
+
+        // activates when sys-env THERE_CAN_BE_ONLY_ONE=true
+        _OsUtil.thereCanBeOnlyOne();
+
     	IsisPresets.prototyping();
         //IsisPresets.logging(WebRequestCycleForIsis.class, "debug");
         //IsisPresets.logging(ComponentFactoryRegistryDefault.class, "debug");