You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2022/11/17 09:19:53 UTC

[karaf-minho] branch main updated: [#33] Add Minho.getInstancec() convenient method to access Minho running instance

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

jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/karaf-minho.git


The following commit(s) were added to refs/heads/main by this push:
     new 7e7f72c  [#33] Add Minho.getInstancec() convenient method to access Minho running instance
     new 90f2a02  Merge pull request #34 from jbonofre/33
7e7f72c is described below

commit 7e7f72ca14e8997c8c75060d32b77d5372a7e066
Author: Jean-Baptiste Onofré <jb...@apache.org>
AuthorDate: Thu Nov 17 10:04:33 2022 +0100

    [#33] Add Minho.getInstancec() convenient method to access Minho running instance
---
 boot/src/main/java/org/apache/karaf/minho/boot/Main.java   |  8 ++++----
 boot/src/main/java/org/apache/karaf/minho/boot/Minho.java  | 14 +++++++++++++-
 .../test/java/org/apache/karaf/boot/minho/MinhoTest.java   | 13 +++++++++++++
 3 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/boot/src/main/java/org/apache/karaf/minho/boot/Main.java b/boot/src/main/java/org/apache/karaf/minho/boot/Main.java
index edb45fd..03efb62 100644
--- a/boot/src/main/java/org/apache/karaf/minho/boot/Main.java
+++ b/boot/src/main/java/org/apache/karaf/minho/boot/Main.java
@@ -30,11 +30,11 @@ import java.util.ArrayList;
 public class Main {
 
     public static final void main(String[] args) throws Exception {
-        boolean karafJar = false;
-        karafJar = (System.getenv("MINHO_JAR") != null) ? System.getenv("MINHO_JAR").equalsIgnoreCase("true") : karafJar;
-        karafJar = (System.getProperty("minho.jar") != null) ? System.getProperty("minho.jar").equalsIgnoreCase("true") : karafJar;
+        boolean minhoJar = false;
+        minhoJar = (System.getenv("MINHO_JAR") != null) ? System.getenv("MINHO_JAR").equalsIgnoreCase("true") : minhoJar;
+        minhoJar = (System.getProperty("minho.jar") != null) ? System.getProperty("minho.jar").equalsIgnoreCase("true") : minhoJar;
 
-        if (!karafJar) {
+        if (!minhoJar) {
             log.info("Starting runtime in exploded mode");
             // try to load classpath
             String minhoLib = (System.getProperty("minho.lib") != null) ? System.getProperty("minho.lib") : System.getProperty("user.dir");
diff --git a/boot/src/main/java/org/apache/karaf/minho/boot/Minho.java b/boot/src/main/java/org/apache/karaf/minho/boot/Minho.java
index b4344d6..e225169 100644
--- a/boot/src/main/java/org/apache/karaf/minho/boot/Minho.java
+++ b/boot/src/main/java/org/apache/karaf/minho/boot/Minho.java
@@ -35,6 +35,8 @@ import java.util.stream.Stream;
 @Data
 public class Minho implements AutoCloseable {
 
+    private static Minho instance;
+
     private final ServiceLoader loader;
     private final ServiceRegistry serviceRegistry = new ServiceRegistry();
 
@@ -55,7 +57,8 @@ public class Minho implements AutoCloseable {
         }
         (this.loader == null ? loadServices() : this.loader.load()).forEach(serviceRegistry::add);
         serviceRegistry.start();
-        return this;
+        instance = this;
+        return instance;
     }
 
     private Stream<Service> loadServices() {
@@ -71,4 +74,13 @@ public class Minho implements AutoCloseable {
         serviceRegistry.close();
     }
 
+    /**
+     * Retrieve the Minho instance.
+     *
+     * @return the Minho instance.
+     */
+    public static Minho getInstance() {
+        return instance;
+    }
+
 }
diff --git a/boot/src/test/java/org/apache/karaf/boot/minho/MinhoTest.java b/boot/src/test/java/org/apache/karaf/boot/minho/MinhoTest.java
index 5d8b19c..21e4755 100644
--- a/boot/src/test/java/org/apache/karaf/boot/minho/MinhoTest.java
+++ b/boot/src/test/java/org/apache/karaf/boot/minho/MinhoTest.java
@@ -21,6 +21,7 @@ import org.apache.karaf.minho.boot.Minho;
 import org.apache.karaf.minho.boot.config.Config;
 import org.apache.karaf.minho.boot.service.ConfigService;
 import org.apache.karaf.minho.boot.service.LifeCycleService;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 import java.util.stream.Stream;
@@ -51,4 +52,16 @@ class MinhoTest {
             assertEquals("world", configService.getProperty("hello"));
         }
     }
+
+    @Test
+    void getInstance() throws Exception {
+        Minho minho = Minho.builder().build().start();
+
+        Minho instance = Minho.getInstance();
+
+        Assertions.assertTrue(minho == instance);
+
+        Assertions.assertNotNull(instance.getServiceRegistry().get(ConfigService.class));
+    }
+
 }