private String start()

in services/minho-spring-boot/src/main/java/org/apache/karaf/minho/springboot/SpringBootApplicationManagerService.java [93:121]


    private String start(String url, String profile, ClassLoaderService classLoaderService, Map<String, String> properties) throws Exception {
        log.info("Starting Spring Boot module " + url);
        URLClassLoader classLoader = null;
        if (profile == null) {
            classLoader = new URLClassLoader(new URL[]{new URL(url)}, this.getClass().getClassLoader());
        } else {
            classLoader = new URLClassLoader(new URL[]{new URL(url)}, classLoaderService.getClassLoader(profile));
        }
        ClassLoader original = Thread.currentThread().getContextClassLoader();
        try {
            Thread.currentThread().setContextClassLoader(classLoader);

            // invoke spring boot main
            final Method main = classLoader.loadClass("org.springframework.boot.loader.JarLauncher").getMethod("main", String[].class);
            main.setAccessible(true);
            main.invoke(null, (Object)
                    Arrays.stream(Optional.ofNullable((String) properties.get("args")).orElse("").split(" ")).map(String::trim).toArray(String[]::new));
        } finally {
            Thread.currentThread().setContextClassLoader(original);
        }
        String id;
        try (JarInputStream jarInputStream = new JarInputStream(new URL(url).openStream())) {
            id = jarInputStream.getManifest().getMainAttributes().getValue("Start-Class");
        }
        if (id == null) {
            id = UUID.randomUUID().toString();
        }
        return id;
    }