Thats a pit, because it is the no longer under the control of a feature, and then version updates cause a new bundle rather than replace the old.
Tricky. I will experiment some more, looking forward to a cleanup in pax logging! Thanks for all the interesting tips and tricks Fabian On Fri, Jan 18, 2019 at 1:49 PM Jean-Baptiste Onofré <j...@nanthrax.net> wrote: > > No in the case of pax-logging as it starts before the feature service > (iself in startup.properties). Featuresboot works fine for ActiveMQ for > instance. However, for the early staged bundles, you need to add in > etc/startup.properties (as said in my previous email: > > "In your case, just install commons-csv (via startup.properties for > instance)." > > Regards > JB > > On 18/01/2019 13:46, Fabian Lange wrote: > > It's not working as bootFeature, you mentioned that this should be possible > > JB. > > It looks like the bundle in startup.properties is started before > > bootFeatures is processed, and when thats done it refreshes the bundle > > nonetheless > > > > Fabian > > > > On Fri, Jan 18, 2019 at 1:23 PM Jean-Baptiste Onofré <j...@nanthrax.net> > > wrote: > >> > >> Yes, that's the purpose of custom distribution: install your > >> applications, and dependencies to avoid refresh. > >> > >> It's what I'm doing in my custom distro as well. > >> > >> Regards > >> JB > >> > >> On 18/01/2019 11:31, Fabian Lange wrote: > >>> featuresBoot doesnt seem to work, > >>> listing in etc/startup.properties does > >>> > >>> hooray, this saves me about 10% of native memory eaten up by the > >>> duplicate classloading. > >>> > >>> On Fri, Jan 18, 2019 at 10:33 AM Grzegorz Grzybek <gr.grzy...@gmail.com> > >>> wrote: > >>>> > >>>> Hello > >>>> > >>>> having commons-csv in etc/startup.properties is the best (for now) way to > >>>> resolve this unnecessary refresh problem (I did it many times with JBoss > >>>> Fuse). > >>>> > >>>> For pax-logging fix, I've created > >>>> https://ops4j1.jira.com/browse/PAXLOGGING-248 to track it. > >>>> > >>>> regards > >>>> Grzegorz Grzybek > >>>> > >>>> pt., 18 sty 2019 o 06:19 Jean-Baptiste Onofré <j...@nanthrax.net> > >>>> napisał(a): > >>>> > >>>>> A simple hack is to actually install the bundle causing the refresh as > >>>>> boot feature or startup.properties. If the optional imports are already > >>>>> resolved/provided, the refresh won't happen. > >>>>> > >>>>> In your case, just install commons-csv (via startup.properties for > >>>>> instance). > >>>>> > >>>>> Regards > >>>>> JB > >>>>> > >>>>> On 17/01/2019 21:12, Fabian Lange wrote: > >>>>>> Is there a hack with which I can prevent the bundle from refreshing? I > >>>>>> can of course monkeypatch the manifest :) > >>>>>> > >>>>>> Fabian > >>>>>> > >>>>>> On Thu, Jan 17, 2019 at 9:06 PM Jean-Baptiste Onofré > >>>>>> <j...@nanthrax.net> > >>>>> wrote: > >>>>>>> > >>>>>>> Yes, the purpose was to support extra appenders easily. > >>>>>>> > >>>>>>> An alternative to optional import would be to use fragment but it's > >>>>>>> less > >>>>>>> flexible. A discover/locator service would be easier indeed. > >>>>>>> > >>>>>>> Regards > >>>>>>> JB > >>>>>>> > >>>>>>> On 17/01/2019 19:46, Grzegorz Grzybek wrote: > >>>>>>>> I understand. I don't remember (wasn't there when pax-logging was > >>>>> founded), > >>>>>>>> but it's about those exotic appenders you can use. > >>>>>>>> But in OSGi, it'd be probably better to rewrite/adjust the > >>>>>>>> discover/extensibility part in pax-logging-log4j2, to use our beloved > >>>>> TCCL > >>>>>>>> instead or kind of service discovery / locator. > >>>>>>>> > >>>>>>>> regards > >>>>>>>> Grzegorz Grzybek > >>>>>>>> > >>>>>>>> czw., 17 sty 2019 o 19:37 Fabian Lange <lange.fab...@gmail.com> > >>>>> napisał(a): > >>>>>>>> > >>>>>>>>> I will have the same problem with jackson as well ;) > >>>>>>>>> > >>>>>>>>> pax-logging-log4j2 has really broad optional imports. probably for > >>>>>>>>> the > >>>>>>>>> other formatters that can be plugged. > >>>>>>>>> > >>>>>>>>> thats really inconvenient in my case :( > >>>>>>>>> > >>>>>>>>> Fabian > >>>>>>>>> > >>>>>>>>> On Thu, Jan 17, 2019 at 7:08 PM Jean-Baptiste Onofré > >>>>>>>>> <j...@nanthrax.net > >>>>>> > >>>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>> Yeah, I don't remember why pax-logging-log4j2 has this import. > >>>>>>>>>> > >>>>>>>>>> Let me check where the package could be used. > >>>>>>>>>> > >>>>>>>>>> Regards > >>>>>>>>>> JB > >>>>>>>>>> > >>>>>>>>>> On 17/01/2019 18:42, Fabian Lange wrote: > >>>>>>>>>>> Well, that does look like a wrong dependency in > >>>>>>>>>>> pax-logging-log4j2, > >>>>>>>>> doesnt it? > >>>>>>>>>>> or can a logic for that be found ;) > >>>>>>>>>>> > >>>>>>>>>>> Fabian > >>>>>>>>>>> > >>>>>>>>>>> On Thu, Jan 17, 2019 at 6:34 PM Grzegorz Grzybek < > >>>>> gr.grzy...@gmail.com> > >>>>>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> You don't have to find the source of WTF :) > >>>>>>>>>>>> > >>>>>>>>>>>> pax-logging-log4j2 has: Import-Package: > >>>>>>>>>>>> org.apache.commons.csv;resolution:=optional > >>>>>>>>>>>> > >>>>>>>>>>>> regards > >>>>>>>>>>>> Grzegorz Grzybek > >>>>>>>>>>>> > >>>>>>>>>>>> czw., 17 sty 2019 o 17:07 Fabian Lange <lange.fab...@gmail.com> > >>>>>>>>> napisał(a): > >>>>>>>>>>>> > >>>>>>>>>>>>> Hi, > >>>>>>>>>>>>> see its not a karaf problem. > >>>>>>>>>>>>> Grzegorz gave me really good hints off-list, and it turns out I > >>>>>>>>>>>>> do > >>>>>>>>>>>>> load a feature which contains this apache commons bundle: > >>>>>>>>>>>>> > >>>>>>>>>>>>> mvn:org.apache.commons/commons-csv/1.5 > >>>>>>>>>>>>> > >>>>>>>>>>>>> after I remove this bundle, the logging classes are no longer > >>>>> loaded > >>>>>>>>> twice. > >>>>>>>>>>>>> Now the next step is to find out WTF, but I leave that for > >>>>>>>>>>>>> another > >>>>>>>>> day > >>>>>>>>>>>>> > >>>>>>>>>>>>> Fabian > >>>>>>>>>>>>> > >>>>>>>>>>>>> On Thu, Jan 17, 2019 at 3:49 PM Grzegorz Grzybek < > >>>>>>>>> gr.grzy...@gmail.com> > >>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Hello > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> I suggest checking jansi - you have SL=8 for jansi bundle and > >>>>> SL=7 > >>>>>>>>> for > >>>>>>>>>>>>>> pax-logging-log4j2. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> pax-logging-log4j has optional import for org.fusesource.jansi > >>>>>>>>>>>>>> - > >>>>>>>>> and this > >>>>>>>>>>>>>> may be the cause of refresh. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> In my custom distro, my etc/startup.properties has: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> mvn\:org.fusesource.jansi/jansi/1.17 = 8 > >>>>>>>>>>>>>> mvn\:org.ops4j.pax.logging/pax-logging-api/1.10.1 = 8 > >>>>>>>>>>>>>> mvn\:org.ops4j.pax.logging/pax-logging-log4j2/1.10.1 = 8 > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> So I've already ensured that jansi starts/resolves before > >>>>>>>>>>>>>> pax-logging-log4j2. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> I hope this helps. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> regards > >>>>>>>>>>>>>> Grzegorz Grzybek > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> czw., 17 sty 2019 o 15:15 Jean-Baptiste Onofré > >>>>>>>>>>>>>> <j...@nanthrax.net> > >>>>>>>>>>>>> napisał(a): > >>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Not a problem, Jira should be used when we "suspect" > >>>>>>>>>>>>>>> something. > >>>>> I > >>>>>>>>> think > >>>>>>>>>>>>>>> it's good for the tracking and also for the history of faced > >>>>>>>>> problems. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Just my €0.01 ;) > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Regards > >>>>>>>>>>>>>>> JB > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On 17/01/2019 15:12, Fabian Lange wrote: > >>>>>>>>>>>>>>>> I already feel bad for asking such wide questions here. I > >>>>> usually > >>>>>>>>>>>>> only > >>>>>>>>>>>>>>>> file tickets once I kind-of know whats going on. > >>>>>>>>>>>>>>>> Could be a Felix or SCR issue as well ;) > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> Fabian > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> On Thu, Jan 17, 2019 at 3:10 PM Jean-Baptiste Onofré < > >>>>>>>>>>>>> j...@nanthrax.net> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Hi Fabian, > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> did you create a Jira about that ? It's for the tracking as > >>>>> I'm > >>>>>>>>>>>>>>>>> preparing Karaf 4.2.3 ;) > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Thanks ! > >>>>>>>>>>>>>>>>> Regards > >>>>>>>>>>>>>>>>> JB > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> On 17/01/2019 15:08, Fabian Lange wrote: > >>>>>>>>>>>>>>>>>> Quick update, this apparently is still the case with Karaf > >>>>> 4.2.2 > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> Would appreciate if somebody knows a workaround. I am able > >>>>>>>>>>>>>>>>>> to > >>>>>>>>> play > >>>>>>>>>>>>>>>>>> around with startlevels, but I cant seem to avoid this. > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> Fabian > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> On Mon, Nov 26, 2018 at 1:21 AM Fabian Lange < > >>>>>>>>>>>>> lange.fab...@gmail.com> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Hi, > >>>>>>>>>>>>>>>>>>> currently debugging an issue. Maybe the bits I came up so > >>>>> far > >>>>>>>>> are > >>>>>>>>>>>>>>>>>>> already sufficient for you guys to fix it, or you help me > >>>>> how > >>>>>>>>> to > >>>>>>>>>>>>> debug > >>>>>>>>>>>>>>>>>>> this better. > >>>>>>>>>>>>>>>>>>> In our distribution, we have these features > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> 0 │ Active │ 0 │ 5.6.10 │ System Bundle, > >>>>>>>>> Fragments: 1 > >>>>>>>>>>>>>>>>>>> 1 │ Resolved │ 1 │ 4.2.1 │ Apache Karaf :: > >>>>> Features > >>>>>>>>> :: > >>>>>>>>>>>>>>>>>>> Extension, Hosts: 0 > >>>>>>>>>>>>>>>>>>> 2 │ Active │ 5 │ 2.5.4 │ OPS4J Pax Url - > >>>>> aether: > >>>>>>>>>>>>>>>>>>> 3 │ Active │ 7 │ 1.10.1 │ OPS4J Pax Logging - > >>>>>>>>> Log4j v2 > >>>>>>>>>>>>>>>>>>> 4 │ Active │ 7 │ 1.10.1 │ OPS4J Pax Logging - > >>>>> API > >>>>>>>>>>>>>>>>>>> 5 │ Active │ 8 │ 1.17.1 │ jansi > >>>>>>>>>>>>>>>>>>> 6 │ Active │ 9 │ 1.0.2 │ Apache Felix > >>>>> Coordinator > >>>>>>>>>>>>> Service > >>>>>>>>>>>>>>>>>>> 7 │ Active │ 10 │ 1.9.4 │ Apache Felix > >>>>>>>>> Configuration > >>>>>>>>>>>>>>> Admin Service > >>>>>>>>>>>>>>>>>>> 8 │ Active │ 11 │ 3.6.4 │ Apache Felix File > >>>>> Install > >>>>>>>>>>>>>>>>>>> 9 │ Active │ 15 │ 4.2.1 │ Apache Karaf :: > >>>>> Features > >>>>>>>>> :: > >>>>>>>>>>>>> Core > >>>>>>>>>>>>>>>>>>> 10 │ Active │ 20 │ 2.2.11.1 │ Apache ServiceMix :: > >>>>>>>>>>>>> Bundles :: > >>>>>>>>>>>>>>> jaxb-impl > >>>>>>>>>>>>>>>>>>> 11 │ Active │ 30 │ 1.2.0 │ Apache Felix > >>>>>>>>>>>>>>>>>>> Metatype > >>>>>>>>>>>>> Service > >>>>>>>>>>>>>>>>>>> 12 │ Active │ 30 │ 2.1.2 │ Apache Felix > >>>>> Declarative > >>>>>>>>>>>>>>> Services > >>>>>>>>>>>>>>>>>>> 13 │ Active │ 30 │ 4.2.1 │ Apache Karaf :: > >>>>> Bundle :: > >>>>>>>>>>>>> Core > >>>>>>>>>>>>>>>>>>> 14 │ Active │ 30 │ 4.2.1 │ Apache Karaf :: > >>>>>>>>> ConfigAdmin > >>>>>>>>>>>>> :: > >>>>>>>>>>>>>>> Core > >>>>>>>>>>>>>>>>>>> 15 │ Active │ 30 │ 4.2.1 │ Apache Karaf :: > >>>>> Features > >>>>>>>>> :: > >>>>>>>>>>>>>>> Command > >>>>>>>>>>>>>>>>>>> 16 │ Active │ 30 │ 4.2.1 │ Apache Karaf :: Log > >>>>>>>>>>>>>>>>>>> :: > >>>>>>>>> Core > >>>>>>>>>>>>>>>>>>> 17 │ Active │ 30 │ 4.2.1 │ Apache Karaf :: SCR > >>>>>>>>>>>>>>>>>>> :: > >>>>>>>>>>>>> Bundle > >>>>>>>>>>>>>>> State > >>>>>>>>>>>>>>>>>>> 18 │ Active │ 30 │ 4.2.1 │ Apache Karaf :: > >>>>> Service > >>>>>>>>> :: > >>>>>>>>>>>>> Core > >>>>>>>>>>>>>>>>>>> 19 │ Active │ 30 │ 4.2.1 │ Apache Karaf :: > >>>>>>>>>>>>>>>>>>> Shell > >>>>> :: > >>>>>>>>>>>>>>> Various Commands > >>>>>>>>>>>>>>>>>>> 20 │ Active │ 30 │ 4.2.1 │ Apache Karaf :: > >>>>>>>>>>>>>>>>>>> Shell > >>>>> :: > >>>>>>>>>>>>> Core > >>>>>>>>>>>>>>>>>>> 21 │ Active │ 30 │ 4.2.1 │ Apache Karaf :: > >>>>> System :: > >>>>>>>>>>>>> Core > >>>>>>>>>>>>>>>>>>> 22 │ Active │ 30 │ 3.9.0 │ JLine Builtins > >>>>>>>>>>>>>>>>>>> 23 │ Active │ 30 │ 3.9.0 │ JLine Reader > >>>>>>>>>>>>>>>>>>> 24 │ Active │ 30 │ 3.9.0 │ JLine Terminal, > >>>>>>>>> Fragments: > >>>>>>>>>>>>> 25 > >>>>>>>>>>>>>>>>>>> 25 │ Resolved │ 30 │ 3.9.0 │ JLine JANSI > >>>>>>>>>>>>>>>>>>> Terminal, > >>>>>>>>>>>>> Hosts: 24 > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> What I noticed is that A LOT of apache LOG4J classes are > >>>>> loaded > >>>>>>>>>>>>> twice > >>>>>>>>>>>>>>>>>>> in the JVM. > >>>>>>>>>>>>>>>>>>> I turned on -verbose:class and saw this snippet: > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> [5.580s][info][class,load] > >>>>>>>>>>>>>>>>>>> org.apache.felix.scr.impl.logger.StdOutLogger source: > >>>>>>>>>>>>>>>>>>> jar:bundle://12.0:0/!/ > >>>>>>>>>>>>>>>>>>> [5.626s][info][class,load] > >>>>>>>>>>>>>>>>>>> org.apache.felix.framework.util.ImmutableMap$1 source: > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>> > >>>>> file:/Users/fabian/work/karaf-dist/system/org/apache/felix/org.apache.felix.framework/5.6.10/org.apache.felix.framework-5.6.10.jar > >>>>>>>>>>>>>>>>>>> [5.834s][info][class,load] > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>> > >>>>> org.apache.karaf.features.internal.service.BundleInstallSupportImpl$$Lambda$412/0x00000007fecd0c40 > >>>>>>>>>>>>>>>>>>> source: > >>>>>>>>>>>>>>> > >>>>> org.apache.karaf.features.internal.service.BundleInstallSupportImpl > >>>>>>>>>>>>>>>>>>> [5.834s][info][class,load] > >>>>>>>>>>>>>>>>>>> org.apache.felix.framework.Felix$RefreshHelper source: > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>> > >>>>> file:/Users/fabian/work/karaf-dist/system/org/apache/felix/org.apache.felix.framework/5.6.10/org.apache.felix.framework-5.6.10.jar > >>>>>>>>>>>>>>>>>>> [5.970s][info][class,load] > >>>>>>>>>>>>>>>>>>> org.ops4j.pax.logging.log4j2.internal.Activator source: > >>>>>>>>>>>>>>>>>>> jar:bundle://3.0:0/!/ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> So here is my suspicion: Whatever SCR does, it causes the > >>>>>>>>> Log4j2 > >>>>>>>>>>>>>>>>>>> bundle to reload all classes and activate again. This > >>>>>>>>>>>>>>>>>>> leads > >>>>> to > >>>>>>>>> all > >>>>>>>>>>>>>>>>>>> bundles before the SCR to reference the first loaded log4j > >>>>>>>>>>>>> classes, > >>>>>>>>>>>>>>>>>>> and all afterwards the refreshed bundle. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Can we prevent this somehow? Also curiously SCR uses its > >>>>>>>>>>>>> StdOutLogger, > >>>>>>>>>>>>>>>>>>> which it shouldnt do. > >>>>>>>>>>>>>>>>>>> Is this reload caused by the Service Tracker > >>>>>>>>>>>>>>>>>>> org.apache.felix.scr.impl.logger.LogServiceEnabledLogger > >>>>> uses? > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Ideas, suggestions how to prevent this refresh? I played > >>>>> with > >>>>>>>>> the > >>>>>>>>>>>>> load > >>>>>>>>>>>>>>>>>>> order but it does not seem possible to get it right > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Fabian > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> -- > >>>>>>>>>>>>>>>>> Jean-Baptiste Onofré > >>>>>>>>>>>>>>>>> jbono...@apache.org > >>>>>>>>>>>>>>>>> http://blog.nanthrax.net > >>>>>>>>>>>>>>>>> Talend - http://www.talend.com > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> -- > >>>>>>>>>>>>>>> Jean-Baptiste Onofré > >>>>>>>>>>>>>>> jbono...@apache.org > >>>>>>>>>>>>>>> http://blog.nanthrax.net > >>>>>>>>>>>>>>> Talend - http://www.talend.com > >>>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> -- > >>>>>>>>>> Jean-Baptiste Onofré > >>>>>>>>>> jbono...@apache.org > >>>>>>>>>> http://blog.nanthrax.net > >>>>>>>>>> Talend - http://www.talend.com > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>>> -- > >>>>>>> Jean-Baptiste Onofré > >>>>>>> jbono...@apache.org > >>>>>>> http://blog.nanthrax.net > >>>>>>> Talend - http://www.talend.com > >>>>> > >>>>> -- > >>>>> Jean-Baptiste Onofré > >>>>> jbono...@apache.org > >>>>> http://blog.nanthrax.net > >>>>> Talend - http://www.talend.com > >>>>> > >> > >> -- > >> Jean-Baptiste Onofré > >> jbono...@apache.org > >> http://blog.nanthrax.net > >> Talend - http://www.talend.com > > -- > Jean-Baptiste Onofré > jbono...@apache.org > http://blog.nanthrax.net > Talend - http://www.talend.com