I started a service bridge allowing to implicit push some spring bean to the k5 
registry and so that can be used from other modules running in k5. It’s a local 
branch for now but I can push it on main. 

Is it what you are looking for ?

Regards 
JB

> Le 29 sept. 2021 à 21:43, jgfrm <f...@gordijn.org> a écrit :
> 
> Is there already something working for exporting functionality of a Spring 
> modules to other modules?
> 
> |-----Oorspronkelijk bericht-----
> |Van: Jean-Baptiste Onofré <j...@nanthrax.net>
> |Verzonden: woensdag 29 september 2021 17:26
> |Aan: user@karaf.apache.org
> |Onderwerp: Re: Karaf 5
> |
> |Thanks for the update.
> |
> |I'm happy to say you are the first one to "use/launch" Karaf 5 ;)
> |
> |About the TomcatURLStreamHandlerFactory is known "issue":
> |
> |https://github.com/jbonofre/karaf5/blob/main/services/spring-boot-
> |application-
> |manager/src/main/java/org/apache/karaf/springboot/SpringBootApplication
> |ManagerService.java#L110
> |
> |I have to improve this ;)
> |
> |Regards
> |JB
> |
> |On 29/09/2021 17:19, jgfrm wrote:
> |> The following works:
> |>
> |> Karaf.json:
> |> ====
> |> {
> |>    "applications": [
> |>      {
> |>        "name": "e3web",
> |>        "url": "file:///home/jaap/Karaf5Test/e3web-dev.jar",
> |>        "type": "spring-boot",
> |>        "properties": {
> |>          "enableHttp": true,
> |>          "enablePrometheus": true
> |>        }
> |>      }
> |>    ]
> |> }
> |> ====
> |>
> |> Add to Spring boot application:
> |> ====
> |> @SpringBootApplication
> |> @ComponentScan
> |> public class E3webApplication {
> |>
> |>   ...
> |>      public static void main(String[] args) {
> |>          TomcatURLStreamHandlerFactory.disable();  // see
> |https://github.com/spring-projects/spring-boot/issues/21535
> |>          SpringApplication.run(E3webApplication.class, args);
> |>      }
> |> ====
> |>
> |> Start with
> |> java --add-modules jdk.security.jgss -cp
> |> ../karaf5/assemblies/k4/target/k4-5.0-SNAPSHOT.jar:target/e3web-test-1
> |> .0-SNAPSHOT.jar:../karaf5/services/spring-boot-application-manager/tar
> |> get/spring-boot-application-manager-5.0-SNAPSHOT.jar
> |> -Dkaraf.config=src/main/resources/karaf.json
> |> org.apache.karaf.boot.Main
> |>
> |> |-----Oorspronkelijk bericht-----
> |> |Van: JB Onofré <j...@nanthrax.net>
> |> |Verzonden: dinsdag 28 september 2021 06:34
> |> |Aan: user@karaf.apache.org
> |> |Onderwerp: Re: Karaf 5
> |> |
> |> |Hi
> |> |
> |> |No it’s not this because k5 don’t use OSGi for the spring boot
> |> |launcher. I still think it’s a missing add modules as Jvm arg. I will 
> check
> |today.
> |> |
> |> |Regards
> |> |JB
> |> |
> |> |> Le 27 sept. 2021 à 23:39, jgfrm <f...@gordijn.org> a écrit :
> |> |>
> |> |> While Googling, I came across on of your blogs
> |> |(http://nanthrax.blogspot.com/2021/04/whats-new-in-apache-karaf-
> |> |431.html) that one of the changes in Karaf was to export the java.*
> |packages.
> |> |Could that be the cause?
> |> |>
> |> |> |-----Oorspronkelijk bericht-----
> |> |> |Van: Jean-Baptiste Onofre <j...@nanthrax.net>
> |> |> |Verzonden: zondag 26 september 2021 18:02
> |> |> |Aan: user@karaf.apache.org
> |> |> |Onderwerp: Re: Karaf 5
> |> |> |
> |> |> |Hi
> |> |> |
> |> |> |No sure, it’s only class loader issue. I remember this issue in
> |> |> |pure spring boot with JDK11.
> |> |> |
> |> |> |Let me check.
> |> |> |
> |> |> |Regards
> |> |> |JB
> |> |> |
> |> |> |> Le 26 sept. 2021 à 17:59, jgfrm <f...@gordijn.org> a écrit :
> |> |> |>
> |> |> |> Hi JB,
> |> |> |>
> |> |> |> Fully understand that it is still work in progress.
> |> |> |>
> |> |> |> Regarding the .NoClassDefFoundError: org/ietf/jgss/GSSException
> |> |> |> --add-modules java.security.jgss does not solve it?
> |> |> |> Is it a class loader problem?
> |> |> |>
> |> |> |> Best,
> |> |> |>
> |> |> |> -- Jaap
> |> |> |>
> |> |> |>
> |> |> |> |-----Oorspronkelijk bericht-----
> |> |> |> |Van: Jean-Baptiste Onofre <j...@nanthrax.net>
> |> |> |> |Verzonden: zondag 26 september 2021 14:20
> |> |> |> |Aan: user@karaf.apache.org
> |> |> |> |Onderwerp: Re: Karaf 5
> |> |> |> |
> |> |> |> |Hi Jaap,
> |> |> |> |
> |> |> |> |First, maybe I was not clean in my presentation: Karaf 5 is
> |> |> |> |still under development and so, everything is not yet ready.
> |> |> |> |As said, I will “move” the code to Apache Karaf repo as soon as
> |> |> |> |I consider I have something clean and running.
> |> |> |> |
> |> |> |> |Anyway, about your email, I will check. Today my focus is on
> |> |> |> |the OsgiApplicationManager to be Karaf 4 compliant.
> |> |> |> |I also have to improve the Karaf Config service.
> |> |> |> |
> |> |> |> |By the way, you don’t need your own Main, just use the
> |> |> |> |repackage with regular provided Main (you can take a look on
> |> |> |> |the K4 assembly repackage as an example). I will create a
> |> |> |> |gradle/maven plugin with
> |> |> |repackage.
> |> |> |> |
> |> |> |> |Regarding your issue, as you are running with JDK11, I guess
> |> |> |> |you have to add -- add-modules java.security.jgss to avoid the
> |> |> |NoClassDefFoundException.
> |> |> |> |
> |> |> |> |Thanks anyway for your feedback, much appreciated.
> |> |> |> |
> |> |> |> |Regards
> |> |> |> |JB
> |> |> |> |
> |> |> |> |> Le 26 sept. 2021 à 12:00, jgfrm <f...@gordijn.org> a écrit :
> |> |> |> |>
> |> |> |> |> Hi Jean-Baptiste,
> |> |> |> |>
> |> |> |> |> I managed to start (well not completely) my spring application.
> |> |> |> |> However, while starting up, I get an exception:
> |> |> |> |>
> |> |> |> |> 11:43:03.148 [main] ERROR o.s.boot.SpringApplication:837 -
> |> |> |> |> Application run failed
> |> |> |> |> org.springframework.context.ApplicationContextException:
> |> |> |> |> Unable to start web server; nested exception is
> |> |java.lang.NoClassDefFoundError:
> |> |> |> |> org/ietf/jgss/GSSException
> |> |> |> |>
> |> |> |> |> Any ideas?
> |> |> |> |>
> |> |> |> |> Also, I had to make modifications in
> |> |> |> |SpringBootApplicationManagerService/start:
> |> |> |> |>
> |> |> |> |> try {
> |> |> |> |>            
> Thread.currentThread().setContextClassLoader(classLoader);
> |> |> |> |>            // disable tomcat stream handler
> |> |> |> |>            /* There is no TomcatURLStreamHandlerFactory in my 
> spring
> |jar
> |> |> |> |>            final Method tomcat =
> |> |> |> |classLoader.loadClass("org.apache.catalina.webresources.TomcatU
> |> |> |> |RLS tre am HandlerFactory").getMethod("disable");
> |> |> |> |>            if (!tomcat.isBridge()) {
> |> |> |> |>                tomcat.setAccessible(true);
> |> |> |> |>            }
> |> |> |> |>            tomcat.invoke(null, null);
> |> |> |> |>             */
> |> |> |> |>            // invoke spring boot main
> |> |> |> |>            final Method main =
> |> |> |>
> ||classLoader.loadClass("org.springframework.boot.loader.JarLauncher").
> |> |> |> |getM
> |> |> |> |ethod("main", String[].class);
> |> |> |> |>            main.setAccessible(true);
> |> |> |> |>            log.info("Call JarLauncher");
> |> |> |> |>            if (properties.get("args") != null) {
> |> |> |> |>                log.info("Call JarLauncher with args");
> |> |> |> |>                main.invoke(null, new Object[]{ 
> properties.get("args") });
> |> |> |> |>            } else {
> |> |> |> |>                log.info("Call JarLauncher without args");
> |> |> |> |>                main.invoke(null, new Object[]{new
> |> |> |> |> String[0]}); // the original invoke
> |> |> |> |did not work for me
> |> |> |> |>            }
> |> |> |> |>        } finally {
> |> |> |> |>            Thread.currentThread().setContextClassLoader(original);
> |> |> |> |>        }
> |> |> |> |>
> |> |> |> |> Further details:
> |> |> |> |> - openjdk version "11.0.12" 2021-07-20
> |> |> |> |> - invocation:
> |> |> |> |> java -cp
> |> |> |> |> ../karaf5/assemblies/k4/target/k4-5.0-SNAPSHOT.jar:target/e3w
> |> |> |> |> eb-
> |> |> |> |> tes
> |> |> |> |> t-1
> |> |> |> |> .0-SNAPSHOT.jar:../karaf5/services/spring-boot-application-ma
> |> |> |> |> nag er/ tar
> |> |> |> |> get/spring-boot-application-manager-5.0-SNAPSHOT.jar
> |> |> |> |> -Dkaraf.config=src/main/resources/karaf.json Main
> |> |> |> |>
> |> |> |> |> Main.java:
> |> |> |> |> ###
> |> |> |> |> public class Main {
> |> |> |> |>    public static void main(String[] args){
> |> |> |> |>        System.out.println("Starting Karaf");
> |> |> |> |>        Karaf karaf = Karaf.builder().build();
> |> |> |> |>        karaf.start();
> |> |> |> |>    }
> |> |> |> |> }
> |> |> |> |> ###
> |> |> |> |>
> |> |> |> |> Best,
> |> |> |> |>
> |> |> |> |> -- Jaap
> |> |> |> |>
> |> |> |> |> |-----Oorspronkelijk bericht-----
> |> |> |> |> |Van: Jean-Baptiste Onofré <j...@nanthrax.net>
> |> |> |> |> |Verzonden: vrijdag 24 september 2021 10:34
> |> |> |> |> |Aan: user@karaf.apache.org
> |> |> |> |> |Onderwerp: Re: Karaf 5
> |> |> |> |> |
> |> |> |> |> |Hi Jaap,
> |> |> |> |> |
> |> |> |> |> |The presentation is available here:
> |> |> |> |> |
> |> |> |> |>
> |> |> |>
> |> |>
> |>
> |||||https://docs.google.com/presentation/d/1nDqd4oVbrggTDlwrzWc8zEdah
> |K
> |> |h
> |> |> |c
> |> |> |> |S
> |> |> |> |> |VZJjlPk5FPxfBE/edit?usp=sharing
> |> |> |> |> |
> |> |> |> |> |Karaf 5 WIP is available here:
> |> |> |> |> |
> |> |> |> |> |https://github.com/jbonofre/karaf5
> |> |> |> |> |
> |> |> |> |> |I'm available on Slack or by email if you wanna chat about 
> Karaf5.
> |> |> |> |> |
> |> |> |> |> |Regards
> |> |> |> |> |JB
> |> |> |> |> |
> |> |> |> |> |On 24/09/2021 10:06, jgfrm wrote:
> |> |> |> |> |> Hi,
> |> |> |> |> |>
> |> |> |> |> |> I have two questions about Karaf 5:
> |> |> |> |> |> - is the presentation by Onofre at ApacheConf online
> |somewhere?
> |> |> |> |> |> - is it possible to explore Karaf 5 (or: what is there right 
> now)?
> |> |> |> |> |> I am in particular interested in the Spring Boot
> |> |> |> |> |> functionality, as I have a Spring Boot application that I
> |> |> |> |> |> want to port to Karaf to support dynamic loading of
> |> |> |> |> |> components. I have found the github repo of Onofre, but it
> |> |> |> |> |> is
> |> |unclear to me how e.g. to start Karaf.
> |> |> |> |> |>
> |> |> |> |> |> Best,
> |> |> |> |> |>
> |> |> |> |> |> -- Jaap
> |> |> |> |> |>
> |> |> |> |>
> |> |> |>
> |> |> |>
> |> |>
> |> |>
> |>
> |>
> 

Reply via email to