Hi JB,

Thank you very much.
I look forward to dig in to it.

Best,

-- Jaap

|-----Oorspronkelijk bericht-----
|Van: Jean-Baptiste Onofré <j...@nanthrax.net>
|Verzonden: donderdag 30 september 2021 18:08
|Aan: user@karaf.apache.org
|Onderwerp: Re: Karaf 5
|
|Hi Jaap,
|
|let me rebase and polish a bit and I will push a first round (probably tomorrow
|night or during the weekend). I will keep you posted.
|
|Regards
|JB
|
|On 30/09/2021 14:40, jgfrm wrote:
|> Hi JB,
|>
|> That sounds interesting!
|> Is it possible to share what you developed?
|>
|> Best,
|>
|> -- Jaap
|>
|> |-----Oorspronkelijk bericht-----
|> |Van: Jean-Baptiste Onofré <j...@nanthrax.net>
|> |Verzonden: donderdag 30 september 2021 11:34
|> |Aan: user@karaf.apache.org
|> |Onderwerp: Re: Karaf 5
|> |
|> |Hi Jaap,
|> |
|> |so, yes, we are talking about the same thing ;)
|> |
|> |There are actually two parts:
|> |
|> |- registering Spring bean in the K5 service registry and use it in
|> |another apps running in K5
|> |- registering "generic" services (like the json-config-loader,
|> |extractor, etc) that provide shared resources (like HTTP handler)
|> |
|> |Regards
|> |JB
|> |
|> |On 29/09/2021 23:30, jgfrm wrote:
|> |> Perhaps.
|> |>
|> |> I want to be able to use a bean in other Spring module.
|> |>
|> |> What is also an issue it that two (or more) modules obviously
|> |> result in two
|> |sockets to be opened, in my case both 8400.
|> |> A solution could be to open a different socket per module, e.g.
|> |> negotiated
|> |with a module for that purpose that also routes traffic for a
|> |particular endpoint to the socket of the module handling that endpoint.
|> |>
|> |> In https://github.com/hank-cp/sbp (based on pf4j) they have a
|> |> different
|> |strategy; there they have one socket for REST calls, and specific
|> |endpoints are forwarded to the appropriate plugin.
|> |>
|> |> Best,
|> |>
|> |> -- Jaap
|> |>
|> |>
|> |> |-----Oorspronkelijk bericht-----
|> |> |Van: JB Onofré <j...@nanthrax.net>
|> |> |Verzonden: woensdag 29 september 2021 22:17
|> |> |Aan: user@karaf.apache.org
|> |> |Onderwerp: Re: Karaf 5
|> |> |
|> |> |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-bo
|> |> |> |ot-
|> |> |> |application-
|> |> |> |manager/src/main/java/org/apache/karaf/springboot/SpringBootApp
|> |> |> |lic
|> |> |> |ati
|> |> |> |on
|> |> |> |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/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
|> |> |> |> 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-ka
|> |> |> |> |raf
|> |> |> |> |-
|> |> |> |> |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.webresource
|> |> |> |> |> |> |s.T omc atU 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:t
|> |> |> |> |> |> |> arg
|> |> |> |> |> |> |> et/
|> |> |> |> |> |> |> e3w
|> |> |> |> |> |> |> eb-
|> |> |> |> |> |> |> tes
|> |> |> |> |> |> |> t-1
|> |> |> |> |> |> |> .0-SNAPSHOT.jar:../karaf5/services/spring-boot-appli
|> |> |> |> |> |> |> cat
|> |> |> |> |> |> |> ion
|> |> |> |> |> |> |> -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/1nDqd4oVbrggTDlwrzWc8zE
|d
|> |a
|> |> |h
|> |> |> |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