Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-20 Thread Jean-Baptiste Onofré
That's true, and that's why it's opinionated :)
The purpose is really to match 90% of the use cases. I think some
features are interesting but require a lot of effort/maintenance for
only a limited use.

Regards
JB

On Thu, Jun 20, 2024 at 9:47 AM Grzegorz Grzybek  wrote:
>
> Thanks for clarification JB!
>
> Just one more comment about:
>
> Tomcat for the Karaf Web service yes (not strong opinion here, it
> > would be Jetty). And as state earlier, only Servlet/Filter service
> > registration package will be supported.
>
>
> That's quite arbitrary distinction TBH :) You know - we rarely write
> servlets these days and rather have some kind of dispatcher servlet (yes,
> this is spring...) which delegates to different views/controllers/handlers
> etc.
> However the point is that even if you DO write servlets, then:
>
>- servlets have access to ServletContext
>- ServletContext gives you access to context attributes
>- context attributes are either taken from web.xml () or
>are setup in ServletContextListeners
>- ServletContextListeners are 3rd "big thing" (next to servlets and
>filters) that constitute web applications
>- so you have to allow them too
>- but ServletContextListeners allow you to dynamically register
>additional servlets (that's what most SCIs do too - JSF, JSP, ...)
>dynamically with dynamic mapping
>- also servlets and filters may be protected - in web.xml you can have
> and  elements...
>
> I could continue (I've already mentioned JSPs, SCIs, ...) getting closer
> and closer to full Servlet API specification...
>
> The point is that if you want servlets + filters only, you'd need full
> implementation based on particular runtime (whether Tomcat, Jetty or
> Undertow) to deal with its specifics (like Jetty's ServletContextHandler,
> Tomcat's StandardContext or Undertow's DeploymentInfo). You also have to
> deal with contexts (implementations of jakarta.servlet.ServletContext
> interface) to separate servlets. Though Felix-Http has one "dispatcher
> servlet" registered in single context and moves "context" concept from the
> runtime to this servlet...
>
> Anyway - a lot of work ;)
>
> regards
> Grzegorz Grzybek
>
> czw., 20 cze 2024 o 08:51 Jean-Baptiste Onofré  napisał(a):
>
> > Hi Grzegorz
> >
> > Thanks for your message, it's highly appreciated.
> >
> > See my comments inline:
> >
> > > 1. What exactly are "Karaf services"? Are these OSGi services?
> > (registered
> > > with BundleContext.registerService(iface, object, properties)?) If not
> > then
> > > what are the aspects that make them "services" - discoverability,
> > > interface, registration method (through annotations and build time
> > > processing? /META-INF/services? other?)?
> >
> > It's OSGi services.
> >
> > >
> > > 2. Removing Pax + hiding OSGi seems complementary, but is OSGi going to
> > be
> > > implementation detail of Karaf 5? or just deployment method (Minho /
> > Felix
> > > Atomos?) If you say that pax-web will still be available, it means it
> > needs
> > > full OSGi runtime (Felix, Equinox) underneath. Mind that the biggest
> > > obstacle when refactoring Pax Web 7 into Pax Web 8 was this entire
> > > "discoverability" mechanism, which allows you to scan
> > > bundles/fragments/wires looking for annotated web elements, SCIs and
> > > web-fragment.xml files... So if you hide OSGi under "Karaf services" and
> > at
> > > the same time keep OSGi for those who want it, it'd be (sorry for
> > analogy)
> > > like hiding an elephant under a napkin... :)
> >
> > Fair comment. The purpose of Karaf Services is to simplify and focus
> > only on what matters for the users in the Karaf context.
> > For instance, why not just supporting Servlet OSGi services listening,
> > not need to support annotation web elements or web-fragments.xml.
> > If a user wants these features, then it will use Pax Web.
> > But, if the user just need a simple webcontainer for servlet and Karaf
> > webconsole, then Karaf Web service would be enough.
> >
> > >
> > > 3. Pax URL and Pax Web accept configuration via ConfigAdmin. So again -
> > you
> > > can't remove, you have to hide it (see #2).
> >
> > I'm not too concerned about ConfigAdmin: it will stay there.
> >
> > >
> > > 4. Also for Pax Web - it required a lot of effort to make it
> > "restartable".
> > > I mean even Tomcat/Jetty/Undertow itself keep each webapp in separate
> > > classloader, so you can kind of get rid of the webapp (undeploy) if you
> > > like. Pax Web pushes this to the extreme with whiteboard, where you can
> > > have filters from different bundles filtering access to servlets from
> > > different bundles and sending events to listeners from yet different
> > > bundles and everything is (should be) classloader-safe. Hinding it under
> > > non-hierarchical classloader may not be possible...
> >
> > Same here: restartable could be Pax Web feature.
> >
> > >
> > > 5. You've mentioned "main focus on Tomcat", but roughly speaking, Tomcat

Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-20 Thread Grzegorz Grzybek
Thanks for clarification JB!

Just one more comment about:

Tomcat for the Karaf Web service yes (not strong opinion here, it
> would be Jetty). And as state earlier, only Servlet/Filter service
> registration package will be supported.


That's quite arbitrary distinction TBH :) You know - we rarely write
servlets these days and rather have some kind of dispatcher servlet (yes,
this is spring...) which delegates to different views/controllers/handlers
etc.
However the point is that even if you DO write servlets, then:

   - servlets have access to ServletContext
   - ServletContext gives you access to context attributes
   - context attributes are either taken from web.xml () or
   are setup in ServletContextListeners
   - ServletContextListeners are 3rd "big thing" (next to servlets and
   filters) that constitute web applications
   - so you have to allow them too
   - but ServletContextListeners allow you to dynamically register
   additional servlets (that's what most SCIs do too - JSF, JSP, ...)
   dynamically with dynamic mapping
   - also servlets and filters may be protected - in web.xml you can have
and  elements...

I could continue (I've already mentioned JSPs, SCIs, ...) getting closer
and closer to full Servlet API specification...

The point is that if you want servlets + filters only, you'd need full
implementation based on particular runtime (whether Tomcat, Jetty or
Undertow) to deal with its specifics (like Jetty's ServletContextHandler,
Tomcat's StandardContext or Undertow's DeploymentInfo). You also have to
deal with contexts (implementations of jakarta.servlet.ServletContext
interface) to separate servlets. Though Felix-Http has one "dispatcher
servlet" registered in single context and moves "context" concept from the
runtime to this servlet...

Anyway - a lot of work ;)

regards
Grzegorz Grzybek

czw., 20 cze 2024 o 08:51 Jean-Baptiste Onofré  napisał(a):

> Hi Grzegorz
>
> Thanks for your message, it's highly appreciated.
>
> See my comments inline:
>
> > 1. What exactly are "Karaf services"? Are these OSGi services?
> (registered
> > with BundleContext.registerService(iface, object, properties)?) If not
> then
> > what are the aspects that make them "services" - discoverability,
> > interface, registration method (through annotations and build time
> > processing? /META-INF/services? other?)?
>
> It's OSGi services.
>
> >
> > 2. Removing Pax + hiding OSGi seems complementary, but is OSGi going to
> be
> > implementation detail of Karaf 5? or just deployment method (Minho /
> Felix
> > Atomos?) If you say that pax-web will still be available, it means it
> needs
> > full OSGi runtime (Felix, Equinox) underneath. Mind that the biggest
> > obstacle when refactoring Pax Web 7 into Pax Web 8 was this entire
> > "discoverability" mechanism, which allows you to scan
> > bundles/fragments/wires looking for annotated web elements, SCIs and
> > web-fragment.xml files... So if you hide OSGi under "Karaf services" and
> at
> > the same time keep OSGi for those who want it, it'd be (sorry for
> analogy)
> > like hiding an elephant under a napkin... :)
>
> Fair comment. The purpose of Karaf Services is to simplify and focus
> only on what matters for the users in the Karaf context.
> For instance, why not just supporting Servlet OSGi services listening,
> not need to support annotation web elements or web-fragments.xml.
> If a user wants these features, then it will use Pax Web.
> But, if the user just need a simple webcontainer for servlet and Karaf
> webconsole, then Karaf Web service would be enough.
>
> >
> > 3. Pax URL and Pax Web accept configuration via ConfigAdmin. So again -
> you
> > can't remove, you have to hide it (see #2).
>
> I'm not too concerned about ConfigAdmin: it will stay there.
>
> >
> > 4. Also for Pax Web - it required a lot of effort to make it
> "restartable".
> > I mean even Tomcat/Jetty/Undertow itself keep each webapp in separate
> > classloader, so you can kind of get rid of the webapp (undeploy) if you
> > like. Pax Web pushes this to the extreme with whiteboard, where you can
> > have filters from different bundles filtering access to servlets from
> > different bundles and sending events to listeners from yet different
> > bundles and everything is (should be) classloader-safe. Hinding it under
> > non-hierarchical classloader may not be possible...
>
> Same here: restartable could be Pax Web feature.
>
> >
> > 5. You've mentioned "main focus on Tomcat", but roughly speaking, Tomcat
> > operates on entire webapps. It's only Pax Web (or Felix HTTP with Jetty)
> > that make it possible to operate on the level of single
> > servlet/filter/listener/SCI/... - how could such "Karaf web service for
> > Tomcat" look like if you, say, wanted to register a servlet + filter? How
> > would you package and register such servlet + filter?
>
> Tomcat for the Karaf Web service yes (not strong opinion here, it
> would be Jetty). And as state earlier, only Servlet/Filter 

Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-20 Thread Jean-Baptiste Onofré
Hi Grzegorz

Thanks for your message, it's highly appreciated.

See my comments inline:

> 1. What exactly are "Karaf services"? Are these OSGi services? (registered
> with BundleContext.registerService(iface, object, properties)?) If not then
> what are the aspects that make them "services" - discoverability,
> interface, registration method (through annotations and build time
> processing? /META-INF/services? other?)?

It's OSGi services.

>
> 2. Removing Pax + hiding OSGi seems complementary, but is OSGi going to be
> implementation detail of Karaf 5? or just deployment method (Minho / Felix
> Atomos?) If you say that pax-web will still be available, it means it needs
> full OSGi runtime (Felix, Equinox) underneath. Mind that the biggest
> obstacle when refactoring Pax Web 7 into Pax Web 8 was this entire
> "discoverability" mechanism, which allows you to scan
> bundles/fragments/wires looking for annotated web elements, SCIs and
> web-fragment.xml files... So if you hide OSGi under "Karaf services" and at
> the same time keep OSGi for those who want it, it'd be (sorry for analogy)
> like hiding an elephant under a napkin... :)

Fair comment. The purpose of Karaf Services is to simplify and focus
only on what matters for the users in the Karaf context.
For instance, why not just supporting Servlet OSGi services listening,
not need to support annotation web elements or web-fragments.xml.
If a user wants these features, then it will use Pax Web.
But, if the user just need a simple webcontainer for servlet and Karaf
webconsole, then Karaf Web service would be enough.

>
> 3. Pax URL and Pax Web accept configuration via ConfigAdmin. So again - you
> can't remove, you have to hide it (see #2).

I'm not too concerned about ConfigAdmin: it will stay there.

>
> 4. Also for Pax Web - it required a lot of effort to make it "restartable".
> I mean even Tomcat/Jetty/Undertow itself keep each webapp in separate
> classloader, so you can kind of get rid of the webapp (undeploy) if you
> like. Pax Web pushes this to the extreme with whiteboard, where you can
> have filters from different bundles filtering access to servlets from
> different bundles and sending events to listeners from yet different
> bundles and everything is (should be) classloader-safe. Hinding it under
> non-hierarchical classloader may not be possible...

Same here: restartable could be Pax Web feature.

>
> 5. You've mentioned "main focus on Tomcat", but roughly speaking, Tomcat
> operates on entire webapps. It's only Pax Web (or Felix HTTP with Jetty)
> that make it possible to operate on the level of single
> servlet/filter/listener/SCI/... - how could such "Karaf web service for
> Tomcat" look like if you, say, wanted to register a servlet + filter? How
> would you package and register such servlet + filter?

Tomcat for the Karaf Web service yes (not strong opinion here, it
would be Jetty). And as state earlier, only Servlet/Filter service
registration package will be supported.

The purpose is not to remove Pax * projects, it's more to have very
simple "native" Karaf services.

Regards
JB

>
> Not that I don't approve the plans (I like how you think about the future),
> or maybe simply my mind went numb after working for few weeks with
> rollup.js and typescript, but I don't feel like I can provide any
> constructive feedback besides asking for clarification...
>
> kind regards
> Grzegorz Grzybek
>
> wt., 11 cze 2024 o 16:20 Matt Pavlovich  napisał(a):
>
> > Hi JB-
> >
> > Makes sense, I figured I’d make the pitch for the pax-* merger in that
> > there is a lot of good use cases, stability and performance scenarios
> > already handled there.
> >
> > I look forward to assisting with the new karaf-* services.
> >
> > Thanks,
> > Matt Pavlovich
> >
> > > On Jun 11, 2024, at 3:45 AM, Jean-Baptiste Onofré 
> > wrote:
> > >
> > > Hi all,
> > >
> > > I would like to clarify the PAX * questions. It would be still
> > > possible to use PAX * projects in Karaf 5.x, via the features (as
> > > today), but optional (not boot features anymore).
> > >
> > > As an alternative, we will have opinionated Karaf services features.
> > >
> > > For instance, pax-web will still be available (if people want to use
> > > it), but Karaf will provide a web feature (as alternative).
> > >
> > > For URL and logging, Karaf will provide simplified mvn and wrap url
> > > handlers, and opinionated Karaf logging service (only supporting slf4j
> > > and log4j2). If users still want to use Pax URL and Pax Logging, they
> > > will still be able to do so via custom distribution.
> > >
> > > The reasons to provide Karaf opinionated services are:
> > > 1. Karaf services are governed by the ASF rule, as Karaf, which is not
> > > the case for Pax
> > > 2. Pax * projects are great as "generic" OSGi services. On the other
> > > hand, it brings some complexity to be abstract enough for OSGi use
> > > cases and compliant with the OSGi specs. Karaf services will really be
> > > Karaf 

Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-17 Thread Grzegorz Grzybek
Hello

Sorry for late response, I'm stuck in savage and obscure world of
JavaScript right now (webpack module federation). Looking back at OSGi,
it's seen as clear, pleasant and predictable environment ;)

anyway - here are my comments to JB's proposal:

Be opinionated means that I propose to remove PAX * dependencies,
> and provide Karaf services instead, very simple and opinionated (for
> instance, instead of PAX Web, a simple Tomcat based service, instead
> of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
> by JUnit 5 simple extensions, etc).
>

The main proposed change is to simplify the services in Karaf mostly for
> the pax * parts.
> There are two main reasons about that :
> - having Karaf provided services would simplify the releases, dependency
> management and security due diligence
> - some pax components are very complex and we can have a simpler impl (and
> maintainable) with Karaf opiniated service
>
> Specifically about pax web, it doesn’t mean necessary to not super OSGi web
> spec. It’s mainly to focus on tomcat and Karaf impl as part of the Karaf
> project.
>

For instance, pax-web will still be available (if people want to use
> it), but Karaf will provide a web feature (as alternative).
>
> For URL and logging, Karaf will provide simplified mvn and wrap url
> handlers, and opinionated Karaf logging service (only supporting slf4j
> and log4j2). If users still want to use Pax URL and Pax Logging, they
> will still be able to do so via custom distribution.
>

I have few questions, concerns about the above...

1. What exactly are "Karaf services"? Are these OSGi services? (registered
with BundleContext.registerService(iface, object, properties)?) If not then
what are the aspects that make them "services" - discoverability,
interface, registration method (through annotations and build time
processing? /META-INF/services? other?)?

2. Removing Pax + hiding OSGi seems complementary, but is OSGi going to be
implementation detail of Karaf 5? or just deployment method (Minho / Felix
Atomos?) If you say that pax-web will still be available, it means it needs
full OSGi runtime (Felix, Equinox) underneath. Mind that the biggest
obstacle when refactoring Pax Web 7 into Pax Web 8 was this entire
"discoverability" mechanism, which allows you to scan
bundles/fragments/wires looking for annotated web elements, SCIs and
web-fragment.xml files... So if you hide OSGi under "Karaf services" and at
the same time keep OSGi for those who want it, it'd be (sorry for analogy)
like hiding an elephant under a napkin... :)

3. Pax URL and Pax Web accept configuration via ConfigAdmin. So again - you
can't remove, you have to hide it (see #2).

4. Also for Pax Web - it required a lot of effort to make it "restartable".
I mean even Tomcat/Jetty/Undertow itself keep each webapp in separate
classloader, so you can kind of get rid of the webapp (undeploy) if you
like. Pax Web pushes this to the extreme with whiteboard, where you can
have filters from different bundles filtering access to servlets from
different bundles and sending events to listeners from yet different
bundles and everything is (should be) classloader-safe. Hinding it under
non-hierarchical classloader may not be possible...

5. You've mentioned "main focus on Tomcat", but roughly speaking, Tomcat
operates on entire webapps. It's only Pax Web (or Felix HTTP with Jetty)
that make it possible to operate on the level of single
servlet/filter/listener/SCI/... - how could such "Karaf web service for
Tomcat" look like if you, say, wanted to register a servlet + filter? How
would you package and register such servlet + filter?

Not that I don't approve the plans (I like how you think about the future),
or maybe simply my mind went numb after working for few weeks with
rollup.js and typescript, but I don't feel like I can provide any
constructive feedback besides asking for clarification...

kind regards
Grzegorz Grzybek

wt., 11 cze 2024 o 16:20 Matt Pavlovich  napisał(a):

> Hi JB-
>
> Makes sense, I figured I’d make the pitch for the pax-* merger in that
> there is a lot of good use cases, stability and performance scenarios
> already handled there.
>
> I look forward to assisting with the new karaf-* services.
>
> Thanks,
> Matt Pavlovich
>
> > On Jun 11, 2024, at 3:45 AM, Jean-Baptiste Onofré 
> wrote:
> >
> > Hi all,
> >
> > I would like to clarify the PAX * questions. It would be still
> > possible to use PAX * projects in Karaf 5.x, via the features (as
> > today), but optional (not boot features anymore).
> >
> > As an alternative, we will have opinionated Karaf services features.
> >
> > For instance, pax-web will still be available (if people want to use
> > it), but Karaf will provide a web feature (as alternative).
> >
> > For URL and logging, Karaf will provide simplified mvn and wrap url
> > handlers, and opinionated Karaf logging service (only supporting slf4j
> > and log4j2). If users still want to use Pax URL and Pax 

Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-11 Thread Matt Pavlovich
Hi JB-

Makes sense, I figured I’d make the pitch for the pax-* merger in that there is 
a lot of good use cases, stability and performance scenarios already handled 
there.

I look forward to assisting with the new karaf-* services.

Thanks,
Matt Pavlovich

> On Jun 11, 2024, at 3:45 AM, Jean-Baptiste Onofré  wrote:
> 
> Hi all,
> 
> I would like to clarify the PAX * questions. It would be still
> possible to use PAX * projects in Karaf 5.x, via the features (as
> today), but optional (not boot features anymore).
> 
> As an alternative, we will have opinionated Karaf services features.
> 
> For instance, pax-web will still be available (if people want to use
> it), but Karaf will provide a web feature (as alternative).
> 
> For URL and logging, Karaf will provide simplified mvn and wrap url
> handlers, and opinionated Karaf logging service (only supporting slf4j
> and log4j2). If users still want to use Pax URL and Pax Logging, they
> will still be able to do so via custom distribution.
> 
> The reasons to provide Karaf opinionated services are:
> 1. Karaf services are governed by the ASF rule, as Karaf, which is not
> the case for Pax
> 2. Pax * projects are great as "generic" OSGi services. On the other
> hand, it brings some complexity to be abstract enough for OSGi use
> cases and compliant with the OSGi specs. Karaf services will really be
> Karaf centric, not necessarily respecting the OSGi specs, but focusing
> on users' needs.
> 3. Facilitate Karaf tooling around to improve the developer experience.
> 
> Regards
> JB
> 
> On Tue, Jun 11, 2024 at 8:48 AM Francois Papon
>  wrote:
>> 
>> Hi Serge,
>> 
>> You can already build a static Karaf custom definition ready to start
>> without downloading all the dependencies at startup and create a docker
>> image with that.
>> 
>> The most complex part with GraalVM in our case is all the 3rd party
>> dependencies and the OSGi framework. I'm afraid that it will not be
>> possible to be GraalVM compatible.
>> 
>> I'm not sure to understand your thoughts about "full OSGi for dev", what
>> to you mean?
>> 
>> regards,
>> 
>> François
>> 
>> On 08/06/2024 08:31, Serge Huber wrote:
>>> Hi François,
>>> 
>>> I understand not everything has to be native, but for example for Apache
>>> Unomi the default deployment is now mostly in containers, and extensions
>>> are usually deployed mostly in development environments and then statically
>>> packaged for production deployments.
>>> 
>>> Having the option to then use Karaf 5 to leverage the benefits of GraalVM
>>> Native Image would be very interesting I believe. I think other
>>> applications might be interested in these types of scenarios: full OSGi for
>>> development, maybe pre-production and testing, and possibility to have a
>>> more « static » deployment for production that could be compatible with
>>> native image.
>>> 
>>> WDYT ?
>>> 
>>> Regards,
>>>Serge…
>>> 
>>> Le jeu. 6 juin 2024 à 11:09, Francois Papon 
>>> a écrit :
>>> 
 Hi Serge,
 
 I don't think there is a benefit about GraalVM for long running process
 like Karaf. All java things doesn't need to be GraalVM native :)
 
 Another problem is that the community edition of GraalVM doesn't bring
 all the improvement as the commercial one (GC, PGO...)
 
 regards,
 
 François
 
 On 05/06/2024 15:13, Serge Huber wrote:
> Hi JB thanks for the proposal,
> 
> Sounds great to me. For me Karaf 5 should really be a natural fit for
> containerized deployments, making it super easy to package applications
> that can then easily be scaled up (and down), so making it more
 predictable
> and possibly more static can be a good thing.
> 
> Is a goal also to make it compatible with GraalVM Native Image ?
> 
> Best regards,
>Serge.
> 
> On Tue, Jun 4, 2024 at 11:18 AM Jean-Baptiste Onofré 
> wrote:
> 
>> Hi folks,
>> 
>> I think it's time to prepare a new milestone for the project :)
>> 
>> Short term (and first step) is to prepare the coming release:
>> 
>> 1. Apache Karaf 4.4.7 will be submitted to vote next week. It will
 include:
>> * Improvement on the spring features repository (providing both
>> Spring 5 and Spring 6 features)
>> * Dependencies updates and minor fixes found on the 4.4.6 release
>> 
>> 2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
>> month. It will include (mainly):
>> * New spec features repository with Jakarta specs
>> * Bigger fixes for 4.5.0
>> 
>> 3. Apache Karaf 5.0.0
>>That's the big milestone, and I propose to have big and opinionated
>> changes here. OSGi is an implementation detail of the runtime, still
>> exposed to the experimented users.
>>Be opinionated means that I propose to remove PAX * dependencies,
>> and provide Karaf services instead, very simple and opinionated (for
>> 

Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-11 Thread Jean-Baptiste Onofré
Hi all,

I would like to clarify the PAX * questions. It would be still
possible to use PAX * projects in Karaf 5.x, via the features (as
today), but optional (not boot features anymore).

As an alternative, we will have opinionated Karaf services features.

For instance, pax-web will still be available (if people want to use
it), but Karaf will provide a web feature (as alternative).

For URL and logging, Karaf will provide simplified mvn and wrap url
handlers, and opinionated Karaf logging service (only supporting slf4j
and log4j2). If users still want to use Pax URL and Pax Logging, they
will still be able to do so via custom distribution.

The reasons to provide Karaf opinionated services are:
1. Karaf services are governed by the ASF rule, as Karaf, which is not
the case for Pax
2. Pax * projects are great as "generic" OSGi services. On the other
hand, it brings some complexity to be abstract enough for OSGi use
cases and compliant with the OSGi specs. Karaf services will really be
Karaf centric, not necessarily respecting the OSGi specs, but focusing
on users' needs.
3. Facilitate Karaf tooling around to improve the developer experience.

Regards
JB

On Tue, Jun 11, 2024 at 8:48 AM Francois Papon
 wrote:
>
> Hi Serge,
>
> You can already build a static Karaf custom definition ready to start
> without downloading all the dependencies at startup and create a docker
> image with that.
>
> The most complex part with GraalVM in our case is all the 3rd party
> dependencies and the OSGi framework. I'm afraid that it will not be
> possible to be GraalVM compatible.
>
> I'm not sure to understand your thoughts about "full OSGi for dev", what
> to you mean?
>
> regards,
>
> François
>
> On 08/06/2024 08:31, Serge Huber wrote:
> > Hi François,
> >
> > I understand not everything has to be native, but for example for Apache
> > Unomi the default deployment is now mostly in containers, and extensions
> > are usually deployed mostly in development environments and then statically
> > packaged for production deployments.
> >
> > Having the option to then use Karaf 5 to leverage the benefits of GraalVM
> > Native Image would be very interesting I believe. I think other
> > applications might be interested in these types of scenarios: full OSGi for
> > development, maybe pre-production and testing, and possibility to have a
> > more « static » deployment for production that could be compatible with
> > native image.
> >
> > WDYT ?
> >
> > Regards,
> > Serge…
> >
> > Le jeu. 6 juin 2024 à 11:09, Francois Papon 
> > a écrit :
> >
> >> Hi Serge,
> >>
> >> I don't think there is a benefit about GraalVM for long running process
> >> like Karaf. All java things doesn't need to be GraalVM native :)
> >>
> >> Another problem is that the community edition of GraalVM doesn't bring
> >> all the improvement as the commercial one (GC, PGO...)
> >>
> >> regards,
> >>
> >> François
> >>
> >> On 05/06/2024 15:13, Serge Huber wrote:
> >>> Hi JB thanks for the proposal,
> >>>
> >>> Sounds great to me. For me Karaf 5 should really be a natural fit for
> >>> containerized deployments, making it super easy to package applications
> >>> that can then easily be scaled up (and down), so making it more
> >> predictable
> >>> and possibly more static can be a good thing.
> >>>
> >>> Is a goal also to make it compatible with GraalVM Native Image ?
> >>>
> >>> Best regards,
> >>> Serge.
> >>>
> >>> On Tue, Jun 4, 2024 at 11:18 AM Jean-Baptiste Onofré 
> >>> wrote:
> >>>
>  Hi folks,
> 
>  I think it's time to prepare a new milestone for the project :)
> 
>  Short term (and first step) is to prepare the coming release:
> 
>  1. Apache Karaf 4.4.7 will be submitted to vote next week. It will
> >> include:
>   * Improvement on the spring features repository (providing both
>  Spring 5 and Spring 6 features)
>   * Dependencies updates and minor fixes found on the 4.4.6 release
> 
>  2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
>  month. It will include (mainly):
>   * New spec features repository with Jakarta specs
>   * Bigger fixes for 4.5.0
> 
>  3. Apache Karaf 5.0.0
>  That's the big milestone, and I propose to have big and opinionated
>  changes here. OSGi is an implementation detail of the runtime, still
>  exposed to the experimented users.
>  Be opinionated means that I propose to remove PAX * dependencies,
>  and provide Karaf services instead, very simple and opinionated (for
>  instance, instead of PAX Web, a simple Tomcat based service, instead
>  of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
>  by JUnit 5 simple extensions, etc).
>  Another goal of Karaf 5 is to bring new tooling to improve dev
>  experience (annotation based distributions generation, etc).
>  Also, users will be able to smoothly deploy Spring powered or
>  Servlet 

Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-11 Thread Francois Papon

Hi Serge,

You can already build a static Karaf custom definition ready to start 
without downloading all the dependencies at startup and create a docker 
image with that.


The most complex part with GraalVM in our case is all the 3rd party 
dependencies and the OSGi framework. I'm afraid that it will not be 
possible to be GraalVM compatible.


I'm not sure to understand your thoughts about "full OSGi for dev", what 
to you mean?


regards,

François

On 08/06/2024 08:31, Serge Huber wrote:

Hi François,

I understand not everything has to be native, but for example for Apache
Unomi the default deployment is now mostly in containers, and extensions
are usually deployed mostly in development environments and then statically
packaged for production deployments.

Having the option to then use Karaf 5 to leverage the benefits of GraalVM
Native Image would be very interesting I believe. I think other
applications might be interested in these types of scenarios: full OSGi for
development, maybe pre-production and testing, and possibility to have a
more « static » deployment for production that could be compatible with
native image.

WDYT ?

Regards,
Serge…

Le jeu. 6 juin 2024 à 11:09, Francois Papon 
a écrit :


Hi Serge,

I don't think there is a benefit about GraalVM for long running process
like Karaf. All java things doesn't need to be GraalVM native :)

Another problem is that the community edition of GraalVM doesn't bring
all the improvement as the commercial one (GC, PGO...)

regards,

François

On 05/06/2024 15:13, Serge Huber wrote:

Hi JB thanks for the proposal,

Sounds great to me. For me Karaf 5 should really be a natural fit for
containerized deployments, making it super easy to package applications
that can then easily be scaled up (and down), so making it more

predictable

and possibly more static can be a good thing.

Is a goal also to make it compatible with GraalVM Native Image ?

Best regards,
Serge.

On Tue, Jun 4, 2024 at 11:18 AM Jean-Baptiste Onofré 
wrote:


Hi folks,

I think it's time to prepare a new milestone for the project :)

Short term (and first step) is to prepare the coming release:

1. Apache Karaf 4.4.7 will be submitted to vote next week. It will

include:

 * Improvement on the spring features repository (providing both
Spring 5 and Spring 6 features)
 * Dependencies updates and minor fixes found on the 4.4.6 release

2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
month. It will include (mainly):
 * New spec features repository with Jakarta specs
 * Bigger fixes for 4.5.0

3. Apache Karaf 5.0.0
That's the big milestone, and I propose to have big and opinionated
changes here. OSGi is an implementation detail of the runtime, still
exposed to the experimented users.
Be opinionated means that I propose to remove PAX * dependencies,
and provide Karaf services instead, very simple and opinionated (for
instance, instead of PAX Web, a simple Tomcat based service, instead
of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
by JUnit 5 simple extensions, etc).
Another goal of Karaf 5 is to bring new tooling to improve dev
experience (annotation based distributions generation, etc).
Also, users will be able to smoothly deploy Spring powered or
Servlet applications without knowing/leveraging OSGi (especially the
import/export pattern).

Thoughts ?

Regards
JB



Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-10 Thread Grzegorz Grzybek
Hello

I'll try to comment in general topic a bit later, but for now, one inline
response (below):

niedz., 9 cze 2024 o 20:45 Matt Pavlovich  napisał(a):

> I think this summarizes a core maintenance issue with pax+karaf today
>
> > I am not sure how many people travel between PAX and Karaf and vice
> versa, but lets be honest - contribution criteria for PAX is lower than for
> Karaf.
>
> I suggest we take a look at migrating pax-* (pax-logging. pax-url,
> pax-web, etc) into karaf for a couple of practical benefits (perhaps for
> Karaf 4.5?):
>

We had such discussion in 2022:
https://lists.apache.org/thread/7oc4opjbplxps9gt8jnr5lxlmtwx0lzh

Some time ago, I've moved OPS4J Jira issues to GitHub and I think it
improved the release process and community feedback greatly (much easier to
create issues and link them with commits).
I don't want to sound like an "owner" of Pax Web or Pax Logging, because I
only maintain great projects standing on the shoulders of giants.


>
> 1. Less repositories to manage and preform releases
> 2. Artifacts (jars, configs, services) are less confusing to users (ie.
> org.apache.karaf.web makes more sense vs org.ops4j.pax.web .. etc)
>
> This would also give us an opportunity to see how this gels before
> finalizing what is supported in Karaf 5 (jetty, tomcat, etc).
>

Pax Web and Pax Logging would be direct "competitor" to Felix Web and Felix
Log and I'm not sure it's good for ASF... But I'm just a plain and simple
code maintainer ;)

regards
Grzegorz Grzybek


>
> Thoughts?
>
> Matt Pavlovich


Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-09 Thread Matt Pavlovich
I think this summarizes a core maintenance issue with pax+karaf today

> I am not sure how many people travel between PAX and Karaf and vice versa, 
> but lets be honest - contribution criteria for PAX is lower than for Karaf.

I suggest we take a look at migrating pax-* (pax-logging. pax-url, pax-web, 
etc) into karaf for a couple of practical benefits (perhaps for Karaf 4.5?):

1. Less repositories to manage and preform releases
2. Artifacts (jars, configs, services) are less confusing to users (ie.  
org.apache.karaf.web makes more sense vs org.ops4j.pax.web .. etc)

This would also give us an opportunity to see how this gels before finalizing 
what is supported in Karaf 5 (jetty, tomcat, etc).

Thoughts?

Matt Pavlovich

Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-08 Thread Łukasz Dywicki

Hello,
To be fair, I am a bit surprised by idea of dropping pax projects, 
because this is the area where Karaf as a project, have at least slight 
chance to share workload with other OSGi users.
I agree, that pax-exam is burden, and it doesn't fit very well to JUnit 
5. I've made an attempt to port some portions of its logic to junit 5 
extension, but many parts of its bootstrap logic is written in very 
specific way, which reflects junit 4 philosophy. For that reason I 
completely abandoned testing with pax-exam and switched to 
test-containers [1].
Coming back to pax issue - OSGi is not most popular stack, having even 
small amount of work shared with others helps to keep projects going. I 
am not sure how many people travel between PAX and Karaf and vice versa, 
but lets be honest - contribution criteria for PAX is lower than for Karaf.
I am really not sure what benefit we can bring to people, who prefer 
running other tech stacks. Given that other ecosystems are much bigger 
(spring / jee / servlet), often more complex, we will need to 
accommodate their complexities into Karaf. Making hibernate, spring-aop 
and so on load time waving is never ending source of troubles with OSGi 
class loaders. Can we make this complex issue less trouble with OSGi?
While we might pretend that we can, and that it will open window of 
opportunity to grow community, I personally doubt it will ever happen. 
OSGi is best suited for systems which needs plugins running within 
single JVM process. If someone's use case happens outside of these 
boundaries, costs caused by investment in OSGi often will outweigh final 
profits. I do believe that serving community we have is fair, cause what 
profit we could give people who wish to run a servlet? Will we make it 
simpler than Tomcat or Jetty? Or spring-boot?
Application development model shifted so much that even application 
servers struggle to keep their community. I am afraid, that staying 
inline with principles of OSGi, will make it even less probable. If 
someone insist to run other stack he can always pick a WAR which will 
get isolated from OSGi. Or Karaf Minho which promised to bring solution 
for modulith.
Without doubt, there are certain complexities embedded in pax projects 
(logging, web, jdbc), however many of these come from fairly basic 
assumptions, such as possibility to swap backing implementation 
(log4j/logback, jetty/tomcat/undertow), which (I can just suppose) often 
come out from people who used Karaf. Once we do karaf-logging-log4j, I 
am quite sure there will be one or two people who will ask about 
karaf-logging-logback. What we going to do then?
These who don't like pax way, might always pick simpler implementations 
for Apache Felix. All this without dropping osgi, and without our 
reinventing the wheel.


To summarize all above:
  Lets serve niche we have with tools we made.

Best,
Łukasz


[1] https://github.com/ConnectorIO/connectorio-testcontainers/

On 4.06.2024 11:17, Jean-Baptiste Onofré wrote:

Hi folks,

I think it's time to prepare a new milestone for the project :)

Short term (and first step) is to prepare the coming release:

1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
* Improvement on the spring features repository (providing both
Spring 5 and Spring 6 features)
* Dependencies updates and minor fixes found on the 4.4.6 release

2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
month. It will include (mainly):
* New spec features repository with Jakarta specs
* Bigger fixes for 4.5.0

3. Apache Karaf 5.0.0
   That's the big milestone, and I propose to have big and opinionated
changes here. OSGi is an implementation detail of the runtime, still
exposed to the experimented users.
   Be opinionated means that I propose to remove PAX * dependencies,
and provide Karaf services instead, very simple and opinionated (for
instance, instead of PAX Web, a simple Tomcat based service, instead
of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
by JUnit 5 simple extensions, etc).
   Another goal of Karaf 5 is to bring new tooling to improve dev
experience (annotation based distributions generation, etc).
   Also, users will be able to smoothly deploy Spring powered or
Servlet applications without knowing/leveraging OSGi (especially the
import/export pattern).

Thoughts ?

Regards
JB


Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-08 Thread Serge Huber
Hi François,

I understand not everything has to be native, but for example for Apache
Unomi the default deployment is now mostly in containers, and extensions
are usually deployed mostly in development environments and then statically
packaged for production deployments.

Having the option to then use Karaf 5 to leverage the benefits of GraalVM
Native Image would be very interesting I believe. I think other
applications might be interested in these types of scenarios: full OSGi for
development, maybe pre-production and testing, and possibility to have a
more « static » deployment for production that could be compatible with
native image.

WDYT ?

Regards,
   Serge…

Le jeu. 6 juin 2024 à 11:09, Francois Papon 
a écrit :

> Hi Serge,
>
> I don't think there is a benefit about GraalVM for long running process
> like Karaf. All java things doesn't need to be GraalVM native :)
>
> Another problem is that the community edition of GraalVM doesn't bring
> all the improvement as the commercial one (GC, PGO...)
>
> regards,
>
> François
>
> On 05/06/2024 15:13, Serge Huber wrote:
> > Hi JB thanks for the proposal,
> >
> > Sounds great to me. For me Karaf 5 should really be a natural fit for
> > containerized deployments, making it super easy to package applications
> > that can then easily be scaled up (and down), so making it more
> predictable
> > and possibly more static can be a good thing.
> >
> > Is a goal also to make it compatible with GraalVM Native Image ?
> >
> > Best regards,
> >Serge.
> >
> > On Tue, Jun 4, 2024 at 11:18 AM Jean-Baptiste Onofré 
> > wrote:
> >
> >> Hi folks,
> >>
> >> I think it's time to prepare a new milestone for the project :)
> >>
> >> Short term (and first step) is to prepare the coming release:
> >>
> >> 1. Apache Karaf 4.4.7 will be submitted to vote next week. It will
> include:
> >> * Improvement on the spring features repository (providing both
> >> Spring 5 and Spring 6 features)
> >> * Dependencies updates and minor fixes found on the 4.4.6 release
> >>
> >> 2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
> >> month. It will include (mainly):
> >> * New spec features repository with Jakarta specs
> >> * Bigger fixes for 4.5.0
> >>
> >> 3. Apache Karaf 5.0.0
> >>That's the big milestone, and I propose to have big and opinionated
> >> changes here. OSGi is an implementation detail of the runtime, still
> >> exposed to the experimented users.
> >>Be opinionated means that I propose to remove PAX * dependencies,
> >> and provide Karaf services instead, very simple and opinionated (for
> >> instance, instead of PAX Web, a simple Tomcat based service, instead
> >> of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
> >> by JUnit 5 simple extensions, etc).
> >>Another goal of Karaf 5 is to bring new tooling to improve dev
> >> experience (annotation based distributions generation, etc).
> >>Also, users will be able to smoothly deploy Spring powered or
> >> Servlet applications without knowing/leveraging OSGi (especially the
> >> import/export pattern).
> >>
> >> Thoughts ?
> >>
> >> Regards
> >> JB
> >>
>


Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-06 Thread Francois Papon

Hi Serge,

I don't think there is a benefit about GraalVM for long running process 
like Karaf. All java things doesn't need to be GraalVM native :)


Another problem is that the community edition of GraalVM doesn't bring 
all the improvement as the commercial one (GC, PGO...)


regards,

François

On 05/06/2024 15:13, Serge Huber wrote:

Hi JB thanks for the proposal,

Sounds great to me. For me Karaf 5 should really be a natural fit for
containerized deployments, making it super easy to package applications
that can then easily be scaled up (and down), so making it more predictable
and possibly more static can be a good thing.

Is a goal also to make it compatible with GraalVM Native Image ?

Best regards,
   Serge.

On Tue, Jun 4, 2024 at 11:18 AM Jean-Baptiste Onofré 
wrote:


Hi folks,

I think it's time to prepare a new milestone for the project :)

Short term (and first step) is to prepare the coming release:

1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
* Improvement on the spring features repository (providing both
Spring 5 and Spring 6 features)
* Dependencies updates and minor fixes found on the 4.4.6 release

2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
month. It will include (mainly):
* New spec features repository with Jakarta specs
* Bigger fixes for 4.5.0

3. Apache Karaf 5.0.0
   That's the big milestone, and I propose to have big and opinionated
changes here. OSGi is an implementation detail of the runtime, still
exposed to the experimented users.
   Be opinionated means that I propose to remove PAX * dependencies,
and provide Karaf services instead, very simple and opinionated (for
instance, instead of PAX Web, a simple Tomcat based service, instead
of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
by JUnit 5 simple extensions, etc).
   Another goal of Karaf 5 is to bring new tooling to improve dev
experience (annotation based distributions generation, etc).
   Also, users will be able to smoothly deploy Spring powered or
Servlet applications without knowing/leveraging OSGi (especially the
import/export pattern).

Thoughts ?

Regards
JB



Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-05 Thread Jean-Baptiste Onofré
Hi Serge,

GraalVM Native is interesting, but keeping the OSGi internals it will
be a bit challenging (especially regarding reflections). I don't say
it's impossible, but it's more work/challenges.

Regards
JB

On Wed, Jun 5, 2024 at 3:13 PM Serge Huber  wrote:
>
> Hi JB thanks for the proposal,
>
> Sounds great to me. For me Karaf 5 should really be a natural fit for
> containerized deployments, making it super easy to package applications
> that can then easily be scaled up (and down), so making it more predictable
> and possibly more static can be a good thing.
>
> Is a goal also to make it compatible with GraalVM Native Image ?
>
> Best regards,
>   Serge.
>
> On Tue, Jun 4, 2024 at 11:18 AM Jean-Baptiste Onofré 
> wrote:
>
> > Hi folks,
> >
> > I think it's time to prepare a new milestone for the project :)
> >
> > Short term (and first step) is to prepare the coming release:
> >
> > 1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
> >* Improvement on the spring features repository (providing both
> > Spring 5 and Spring 6 features)
> >* Dependencies updates and minor fixes found on the 4.4.6 release
> >
> > 2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
> > month. It will include (mainly):
> >* New spec features repository with Jakarta specs
> >* Bigger fixes for 4.5.0
> >
> > 3. Apache Karaf 5.0.0
> >   That's the big milestone, and I propose to have big and opinionated
> > changes here. OSGi is an implementation detail of the runtime, still
> > exposed to the experimented users.
> >   Be opinionated means that I propose to remove PAX * dependencies,
> > and provide Karaf services instead, very simple and opinionated (for
> > instance, instead of PAX Web, a simple Tomcat based service, instead
> > of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
> > by JUnit 5 simple extensions, etc).
> >   Another goal of Karaf 5 is to bring new tooling to improve dev
> > experience (annotation based distributions generation, etc).
> >   Also, users will be able to smoothly deploy Spring powered or
> > Servlet applications without knowing/leveraging OSGi (especially the
> > import/export pattern).
> >
> > Thoughts ?
> >
> > Regards
> > JB
> >


Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-05 Thread Serge Huber
Hi JB thanks for the proposal,

Sounds great to me. For me Karaf 5 should really be a natural fit for
containerized deployments, making it super easy to package applications
that can then easily be scaled up (and down), so making it more predictable
and possibly more static can be a good thing.

Is a goal also to make it compatible with GraalVM Native Image ?

Best regards,
  Serge.

On Tue, Jun 4, 2024 at 11:18 AM Jean-Baptiste Onofré 
wrote:

> Hi folks,
>
> I think it's time to prepare a new milestone for the project :)
>
> Short term (and first step) is to prepare the coming release:
>
> 1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
>* Improvement on the spring features repository (providing both
> Spring 5 and Spring 6 features)
>* Dependencies updates and minor fixes found on the 4.4.6 release
>
> 2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
> month. It will include (mainly):
>* New spec features repository with Jakarta specs
>* Bigger fixes for 4.5.0
>
> 3. Apache Karaf 5.0.0
>   That's the big milestone, and I propose to have big and opinionated
> changes here. OSGi is an implementation detail of the runtime, still
> exposed to the experimented users.
>   Be opinionated means that I propose to remove PAX * dependencies,
> and provide Karaf services instead, very simple and opinionated (for
> instance, instead of PAX Web, a simple Tomcat based service, instead
> of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
> by JUnit 5 simple extensions, etc).
>   Another goal of Karaf 5 is to bring new tooling to improve dev
> experience (annotation based distributions generation, etc).
>   Also, users will be able to smoothly deploy Spring powered or
> Servlet applications without knowing/leveraging OSGi (especially the
> import/export pattern).
>
> Thoughts ?
>
> Regards
> JB
>


Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-05 Thread Jean-Baptiste Onofré
Hi

To be clear about Karaf 4.5.0: the plan is not to change the internals. You
will still be able to use OSGi specs / services.

The main proposed change is to simplify the services in Karaf mostly for
the pax * parts.
There are two main reasons about that :
- having Karaf provided services would simplify the releases, dependency
management and security due diligence
- some pax components are very complex and we can have a simpler impl (and
maintainable) with Karaf opiniated service

Specifically about pax web, it doesn’t mean necessary to not super OSGi web
spec. It’s mainly to focus on tomcat and Karaf impl as part of the Karaf
project.

I hope it helps regards
JB

Le mer. 5 juin 2024 à 07:06, Bernd Eckenfels  a
écrit :

> I am looking forward to a lighter solution if it
> Brings us JakartaEE and less overhead.
>
> However there is a lot of flexibility and work in
> those PAX projects, you sure you can replicate
> them?
>
> (Things like providing and configuring all
> common logging Fassaden are just one of the
> perks we like about Karaf)
>
> Also when you say PAX Exam replacement, will you still provide the test
> APIs to setup framework and bundles and how does that affect the runtime.
> Or maybe the other way around - does that only affect how Karaf 5 is tested
> but not what users will use?
>
> (BTW I was not following closely, is this „karaf 5“ then the new named
> runtime or a step in between? I’d there still a Codename for it?
>
> Personally speaking I am not happy about
>  migrating to a new environment, If I would be I
> might as well consider spring boot or one of the
> micro service projects with big econsystens - especially if even the Felix
> and PAX Ecosystem
> no longer would be first class providers)
>
> The 447/45 plans sound great, though.
>
> Gruß
> Bernd
>
>
> fpapon wrote on 5. June 2024 06:46 (GMT +02:00):
>
> > Hi,
> >
> > I already discuss with JB (at community over code Bratislava) about
> > these points so I have nothing to add :)
> >
> > Just keeping in mind that we want to have a lighter project for the
> > maintainability and abstract the OSGi complexity.
> >
> > regards,
> >
> > François
> >
> > On 04/06/2024 11:17, Jean-Baptiste Onofré wrote:
> >> Hi folks,
> >>
> >> I think it's time to prepare a new milestone for the project :)
> >>
> >> Short term (and first step) is to prepare the coming release:
> >>
> >> 1. Apache Karaf 4.4.7 will be submitted to vote next week. It will
> >> include:
> >> * Improvement on the spring features repository (providing both
> >> Spring 5 and Spring 6 features)
> >> * Dependencies updates and minor fixes found on the 4.4.6 release
> >>
> >> 2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
> >> month. It will include (mainly):
> >> * New spec features repository with Jakarta specs
> >> * Bigger fixes for 4.5.0
> >>
> >> 3. Apache Karaf 5.0.0
> >>That's the big milestone, and I propose to have big and opinionated
> >> changes here. OSGi is an implementation detail of the runtime, still
> >> exposed to the experimented users.
> >>Be opinionated means that I propose to remove PAX * dependencies,
> >> and provide Karaf services instead, very simple and opinionated (for
> >> instance, instead of PAX Web, a simple Tomcat based service, instead
> >> of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
> >> by JUnit 5 simple extensions, etc).
> >>Another goal of Karaf 5 is to bring new tooling to improve dev
> >> experience (annotation based distributions generation, etc).
> >>Also, users will be able to smoothly deploy Spring powered or
> >> Servlet applications without knowing/leveraging OSGi (especially the
> >> import/export pattern).
> >>
> >> Thoughts ?
> >>
> >> Regards
> >> JB
> >
> > --
> > --
> > François
> >
> >
>
>
> Gruß
> Bernd
> —
> https://bernd.eckenfels.net
>


Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-04 Thread Bernd Eckenfels
I am looking forward to a lighter solution if it 
Brings us JakartaEE and less overhead. 

However there is a lot of flexibility and work in
those PAX projects, you sure you can replicate
them?

(Things like providing and configuring all
common logging Fassaden are just one of the
perks we like about Karaf)

Also when you say PAX Exam replacement, will you still provide the test APIs to 
setup framework and bundles and how does that affect the runtime. Or maybe the 
other way around - does that only affect how Karaf 5 is tested but not what 
users will use?

(BTW I was not following closely, is this „karaf 5“ then the new named runtime 
or a step in between? I’d there still a Codename for it?

Personally speaking I am not happy about
 migrating to a new environment, If I would be I
might as well consider spring boot or one of the
micro service projects with big econsystens - especially if even the Felix and 
PAX Ecosystem
no longer would be first class providers)

The 447/45 plans sound great, though.

Gruß
Bernd


fpapon wrote on 5. June 2024 06:46 (GMT +02:00):

> Hi,
> 
> I already discuss with JB (at community over code Bratislava) about 
> these points so I have nothing to add :)
> 
> Just keeping in mind that we want to have a lighter project for the 
> maintainability and abstract the OSGi complexity.
> 
> regards,
> 
> François
> 
> On 04/06/2024 11:17, Jean-Baptiste Onofré wrote:
>> Hi folks,
>>
>> I think it's time to prepare a new milestone for the project :)
>>
>> Short term (and first step) is to prepare the coming release:
>>
>> 1. Apache Karaf 4.4.7 will be submitted to vote next week. It will
>> include:
>> * Improvement on the spring features repository (providing both
>> Spring 5 and Spring 6 features)
>> * Dependencies updates and minor fixes found on the 4.4.6 release
>>
>> 2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
>> month. It will include (mainly):
>> * New spec features repository with Jakarta specs
>> * Bigger fixes for 4.5.0
>>
>> 3. Apache Karaf 5.0.0
>>That's the big milestone, and I propose to have big and opinionated
>> changes here. OSGi is an implementation detail of the runtime, still
>> exposed to the experimented users.
>>Be opinionated means that I propose to remove PAX * dependencies,
>> and provide Karaf services instead, very simple and opinionated (for
>> instance, instead of PAX Web, a simple Tomcat based service, instead
>> of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
>> by JUnit 5 simple extensions, etc).
>>Another goal of Karaf 5 is to bring new tooling to improve dev
>> experience (annotation based distributions generation, etc).
>>Also, users will be able to smoothly deploy Spring powered or
>> Servlet applications without knowing/leveraging OSGi (especially the
>> import/export pattern).
>>
>> Thoughts ?
>>
>> Regards
>> JB
> 
> -- 
> --
> François
> 
> 


Gruß
Bernd
— 
https://bernd.eckenfels.net


Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-04 Thread fpapon

Hi,

I already discuss with JB (at community over code Bratislava) about 
these points so I have nothing to add :)


Just keeping in mind that we want to have a lighter project for the 
maintainability and abstract the OSGi complexity.


regards,

François

On 04/06/2024 11:17, Jean-Baptiste Onofré wrote:

Hi folks,

I think it's time to prepare a new milestone for the project :)

Short term (and first step) is to prepare the coming release:

1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
* Improvement on the spring features repository (providing both
Spring 5 and Spring 6 features)
* Dependencies updates and minor fixes found on the 4.4.6 release

2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
month. It will include (mainly):
* New spec features repository with Jakarta specs
* Bigger fixes for 4.5.0

3. Apache Karaf 5.0.0
   That's the big milestone, and I propose to have big and opinionated
changes here. OSGi is an implementation detail of the runtime, still
exposed to the experimented users.
   Be opinionated means that I propose to remove PAX * dependencies,
and provide Karaf services instead, very simple and opinionated (for
instance, instead of PAX Web, a simple Tomcat based service, instead
of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
by JUnit 5 simple extensions, etc).
   Another goal of Karaf 5 is to bring new tooling to improve dev
experience (annotation based distributions generation, etc).
   Also, users will be able to smoothly deploy Spring powered or
Servlet applications without knowing/leveraging OSGi (especially the
import/export pattern).

Thoughts ?

Regards
JB


--
--
François



Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-04 Thread Robert Varga

On 04/06/2024 11.17 am, Jean-Baptiste Onofré wrote:

Hi folks,


Hey JB,


I think it's time to prepare a new milestone for the project :)

Short term (and first step) is to prepare the coming release:

1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
* Improvement on the spring features repository (providing both
Spring 5 and Spring 6 features)
* Dependencies updates and minor fixes found on the 4.4.6 release


Awesome. There seem to be a lot of upgrades which are missing in 4.4.6. 
Random picks from versions:display-dependency-updates show:



[INFO]   commons-logging:commons-logging ... 1.3.1 -> 1.3.2
[INFO]   org.apache.felix:org.apache.felix.cm.json . 1.0.6 -> 2.0.6
[INFO]   org.apache.felix:org.apache.felix.configurator .. 1.0.16 -> 1.0.18
[INFO]   org.apache.felix:org.apache.felix.http.jetty . 4.2.2 -> 5.1.14
[INFO]   org.apache.felix:org.apache.felix.inventory ... 1.1.0 -> 2.0.0
[INFO]   org.apache.felix:org.apache.felix.scr  2.2.6 -> 2.2.10
[INFO]   org.apache.felix:org.apache.felix.webconsole . 4.8.12 -> 5.0.2
[INFO]   org.apache.felix:org.apache.felix.webconsole.plugins.ds ...
[INFO]   2.2.0 -> 2.3.0
[INFO]   org.apache.felix:org.apache.felix.webconsole.plugins.event ...
[INFO]   1.1.8 -> 1.2.0
[INFO]   org.apache.felix:org.apache.felix.webconsole.plugins.memoryusage ...
[INFO]  1.0.10 -> 1.1.0
[INFO]   org.eclipse.platform:org.eclipse.equinox.coordinator ...
[INFO]   1.5.200 -> 1.5.300
[INFO]   org.eclipse.platform:org.eclipse.equinox.region ... 1.5.300 -> 1.5.500
[INFO]   org.eclipse.platform:org.eclipse.osgi ... 3.18.0 -> 3.19.0
[INFO]   org.jline:jline . 3.21.0 -> 3.26.1


There probably are a few others.



2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
month. It will include (mainly):
* New spec features repository with Jakarta specs
* Bigger fixes for 4.5.0


Cool.

I am sorry for lack of contributions lately, but there's a ton of stuff 
requiring my attention downstream.


I would hope for karaf-4.5.0 to be strongly opined in terms of:
- java-9+ way of doing things
- pax-web-9, i.e. servlet-api-4

The former will allow a lot of special-case code to be removed.
The latter is actually blocking downstreams from using things like 
Apache Shiro 2.0.0+.



3. Apache Karaf 5.0.0
   That's the big milestone, and I propose to have big and opinionated
changes here. OSGi is an implementation detail of the runtime, still
exposed to the experimented users.


Neat.


   Be opinionated means that I propose to remove PAX * dependencies,
and provide Karaf services instead, very simple and opinionated (for
instance, instead of PAX Web, a simple Tomcat based service, instead
of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
by JUnit 5 simple extensions, etc).


Now that you mention pax-exam, can anyone on this list spin a new 
release? There's a ton of updates which are not available in a release, 
like the 'pick a free port' changes, etc.


Also, OpenDaylight has a maven plugin to run pax-exam-based validation 
of a generated feature.xml (see 
https://github.com/opendaylight/odlparent/tree/master/features-test-plugin) 
-- would you be interested in having that in karaf.git?



   Another goal of Karaf 5 is to bring new tooling to improve dev
experience (annotation based distributions generation, etc).
   Also, users will be able to smoothly deploy Spring powered or
Servlet applications without knowing/leveraging OSGi (especially the
import/export pattern).


Sounds fine for others, but I must say we in OpenDaylight are quite 
invested in the convenience of dynamic services and their management as 
offered by Declarative Services (OSGi Compendium chapter 112) and its 
integration with Config Admin (chapter 104) and Metatype (chapter 105).


A sincere, uninformed question: is there anything out there which 
provides a comparable developer experience?


As I mentioned previously, we care about pax-web integration right now, 
but we expect to move away from it (and related OSGi standards) in very 
much immediate future (<18 months). I expect we will care about pax-jdbc 
integration for longer that, unless there is a compelling alternative.


Having said that, we are okay to integrate these ourselves, without 
reliance on Karaf providing them.


Regards,
Robert


OpenPGP_signature.asc
Description: OpenPGP digital signature


Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-04 Thread Steinar Bang
+1 (non-binding) on 1 and 2

Some questions/comments about 3 (still non-binding):

Unsure about what "no pax web" means for me (OSGi 8 web whiteboard
user)?

It also feels strange going back to tomcat after all of these years of
jetty... but as long as it works I have no strong opinions.  One servlet
container is as good as any servlet container, I guess...?

Also PAX JDBC isn't mentioned there? I'm pretty dependendent on PAX JDBC.




Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-04 Thread Matt Pavlovich
1. Sounds good 

2. I think Jetty 12 / pax-web support in v4.5.x is important. I started working 
on a PR for it, but there are significant Jetty API changes. (Jetty 12 support 
would provide a LTS-like support timeframe while Karaf 5.x gets going.)

3. +1 on JUnit 5 Extension / Runner instead of pax-exam
+1 on simplified default logger — One thing pax-logging’s wrapping provides 
reload of config. Is the thought here to drop runtime reload of logging 
configuration change?.

Regarding replacing pax-web — this seems like a large effort. There are a 
*ton* of unit tests of various use cases there and lots of value covering a ton 
of web-deployment scenarios. Are you thinking of dropping http whiteboard or 
other deploy scenarios in favor of servlet-only?  If the other scenarios are 
required, perhaps keep pax-web and only go wtih Jetty/Tomcat support? I don’t 
see a lot of demand / usage of Undertow.

4. Configuration and Encryption service (and encryption of config keys and 
values) as first-class services instead of jasypt add-on. (JDK crypto 
out-of-the-box).

My $0.02.

Thanks,
Matt Pavlovich

> On Jun 4, 2024, at 4:17 AM, Jean-Baptiste Onofré  wrote:
> 
> Hi folks,
> 
> I think it's time to prepare a new milestone for the project :)
> 
> Short term (and first step) is to prepare the coming release:
> 
> 1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
>   * Improvement on the spring features repository (providing both
> Spring 5 and Spring 6 features)
>   * Dependencies updates and minor fixes found on the 4.4.6 release
> 
> 2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
> month. It will include (mainly):
>   * New spec features repository with Jakarta specs
>   * Bigger fixes for 4.5.0
> 
> 3. Apache Karaf 5.0.0
>  That's the big milestone, and I propose to have big and opinionated
> changes here. OSGi is an implementation detail of the runtime, still
> exposed to the experimented users.
>  Be opinionated means that I propose to remove PAX * dependencies,
> and provide Karaf services instead, very simple and opinionated (for
> instance, instead of PAX Web, a simple Tomcat based service, instead
> of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
> by JUnit 5 simple extensions, etc).
>  Another goal of Karaf 5 is to bring new tooling to improve dev
> experience (annotation based distributions generation, etc).
>  Also, users will be able to smoothly deploy Spring powered or
> Servlet applications without knowing/leveraging OSGi (especially the
> import/export pattern).
> 
> Thoughts ?
> 
> Regards
> JB



Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-04 Thread Chaz Kettleson
On Tue, Jun 04, 2024 at 11:17:56AM +0200, Jean-Baptiste Onofré wrote:
> Hi folks,
> 
> I think it's time to prepare a new milestone for the project :)
> 
> Short term (and first step) is to prepare the coming release:
> 
> 1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
>* Improvement on the spring features repository (providing both
> Spring 5 and Spring 6 features)
>* Dependencies updates and minor fixes found on the 4.4.6 release
> 
> 2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
> month. It will include (mainly):
>* New spec features repository with Jakarta specs
>* Bigger fixes for 4.5.0
> 
> 3. Apache Karaf 5.0.0
>   That's the big milestone, and I propose to have big and opinionated
> changes here. OSGi is an implementation detail of the runtime, still
> exposed to the experimented users.
>   Be opinionated means that I propose to remove PAX * dependencies,
> and provide Karaf services instead, very simple and opinionated (for
> instance, instead of PAX Web, a simple Tomcat based service, instead
> of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
> by JUnit 5 simple extensions, etc).
>   Another goal of Karaf 5 is to bring new tooling to improve dev
> experience (annotation based distributions generation, etc).
>   Also, users will be able to smoothly deploy Spring powered or
> Servlet applications without knowing/leveraging OSGi (especially the
> import/export pattern).
> 
> Thoughts ?
> 
> Regards
> JB

Hello,

+1 for FIPS

Can we also consider the following:

1.) First-class support for Gradle. I have a template project I use for
doing custom distributions on top of Karaf I can make available if
interested.
2.) A solution/replacement for OSGi security. I'm not sure of the state
of things past JDK17.

-- 
Chaz


Re: [PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-04 Thread Jamie G.
+1 on points 1 and 2.

Point 3:

Simplifying developer/operator experience is certainly a great north
star for Karaf.

Would adding enhanced security such as FIPS mode support be something
the community would desire?

Cheers,
Jamie

On Tue, Jun 4, 2024 at 6:48 AM Jean-Baptiste Onofré  wrote:
>
> Hi folks,
>
> I think it's time to prepare a new milestone for the project :)
>
> Short term (and first step) is to prepare the coming release:
>
> 1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
>* Improvement on the spring features repository (providing both
> Spring 5 and Spring 6 features)
>* Dependencies updates and minor fixes found on the 4.4.6 release
>
> 2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
> month. It will include (mainly):
>* New spec features repository with Jakarta specs
>* Bigger fixes for 4.5.0
>
> 3. Apache Karaf 5.0.0
>   That's the big milestone, and I propose to have big and opinionated
> changes here. OSGi is an implementation detail of the runtime, still
> exposed to the experimented users.
>   Be opinionated means that I propose to remove PAX * dependencies,
> and provide Karaf services instead, very simple and opinionated (for
> instance, instead of PAX Web, a simple Tomcat based service, instead
> of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
> by JUnit 5 simple extensions, etc).
>   Another goal of Karaf 5 is to bring new tooling to improve dev
> experience (annotation based distributions generation, etc).
>   Also, users will be able to smoothly deploy Spring powered or
> Servlet applications without knowing/leveraging OSGi (especially the
> import/export pattern).
>
> Thoughts ?
>
> Regards
> JB


[PROPOSAL] Apache Karaf runtime releases and roadmap

2024-06-04 Thread Jean-Baptiste Onofré
Hi folks,

I think it's time to prepare a new milestone for the project :)

Short term (and first step) is to prepare the coming release:

1. Apache Karaf 4.4.7 will be submitted to vote next week. It will include:
   * Improvement on the spring features repository (providing both
Spring 5 and Spring 6 features)
   * Dependencies updates and minor fixes found on the 4.4.6 release

2. Apache Karaf 4.5.0 will be submitted to vote by the end of the
month. It will include (mainly):
   * New spec features repository with Jakarta specs
   * Bigger fixes for 4.5.0

3. Apache Karaf 5.0.0
  That's the big milestone, and I propose to have big and opinionated
changes here. OSGi is an implementation detail of the runtime, still
exposed to the experimented users.
  Be opinionated means that I propose to remove PAX * dependencies,
and provide Karaf services instead, very simple and opinionated (for
instance, instead of PAX Web, a simple Tomcat based service, instead
of PAX Logging, a simple slf4j/log4j only service, Pax Exam replaced
by JUnit 5 simple extensions, etc).
  Another goal of Karaf 5 is to bring new tooling to improve dev
experience (annotation based distributions generation, etc).
  Also, users will be able to smoothly deploy Spring powered or
Servlet applications without knowing/leveraging OSGi (especially the
import/export pattern).

Thoughts ?

Regards
JB