The logs should contain an explanation. pax-logging-log4j2 (or your fragment) may contain some optional (resolution:=optional) imports which are satisfied by some bundles from Camel features... This makes Karaf's FeatureService include Pax Logging in the set of "bundles to refresh". The details should be in the logs.
regards Grzegorz wt., 21 maj 2024 o 15:25 Matthias Leinweber <[email protected]> napisał(a): > Hi, > > > >> compile scopeby default goes to "startup" phase of "profile > management". > Ah ok this is working now too.. > > Then it is also added to the boot features. >> >> >> Hmm, I'm not sure why's that... Even if it's true (I can't check now), it >> shouldn't affect the process and cause extra refreshes. >> In extreme case, where all the features are "startup", you should get all >> the bundles installed (and active if not fragments) the moment Karaf's >> FeatureService kicks in... >> > > The thing is when i install e.g. feature camel, pax-logging gets restarted > for idk why. If i remove rahla.logging from > > featuresBoot = \ > instance/4.4.6, \ > package/4.4.6, \ > log/4.4.6, \ > rahla.logging/1.0.16.SNAPSHOT, \ > ssh/4.4.6, \ > pax-url-wrap/2.6.14, \ > framework/4.4.6, \ > system/4.4.6, \ > feature/4.4.6, \ > shell/4.4.6, \ > management/4.4.6, \ > service/4.4.6, \ > jaas/4.4.6, \ > shell-compat/4.4.6, \ > deployer/4.4.6, \ > diagnostic/4.4.6, \ > bundle/4.4.6, \ > config/4.4.6, \ > kar/4.4.6 > > then it does not get restarted when I install camel. This drives me crazy. > > > Maven build says: > [INFO] Loading boot repositories > ... > [INFO] adding feature repository: > mvn:rahla.feature/rahla.logging/1.0.16-SNAPSHOT/xml/features > ... > [INFO] Feature rahla.logging/1.0.16.SNAPSHOT is defined as a boot > feature > [INFO] adding maven artifact: > mvn:com.fasterxml.jackson.core/jackson-annotations/2.15.2 > [INFO] adding maven artifact: mvn:rahla/loki-appender/1.0.16-SNAPSHOT > [INFO] adding maven artifact: > mvn:com.fasterxml.jackson.core/jackson-databind/2.15.2 > [INFO] adding maven artifact: > mvn:org.ops4j.pax.logging/pax-logging-log4j2-extra/2.2.7 > [INFO] adding maven artifact: > mvn:com.fasterxml.jackson.core/jackson-core/2.15.2 > ... > > Boot and installed looks like: > > /home/mleinweber/projects/rahla/assembly/pom.xml > > All dependency features are scope runtime except rahla.logging which is > compile > <bootFeatures> > <feature>pax-url-wrap</feature> > <feature>shell</feature> > <feature>shell-compat</feature> > <feature>feature</feature> > <feature>jaas</feature> > <feature>ssh</feature> > <feature>management</feature> > <feature>bundle</feature> > <feature>config</feature> > <feature>deployer</feature> > <feature>diagnostic</feature> > <feature>feature</feature> > <feature>instance</feature> > <feature>kar</feature> > <feature>log</feature> > <feature>package</feature> > <feature>service</feature> > <feature>system</feature> > </bootFeatures> > <installedFeatures> > <feature>fradi</feature> > </installedFeatures> > > > Startup works fine > mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.4.6 = > 1 > mvn\:org.ops4j.pax.url/pax-url-aether/2.6.14 = 5 > mvn\:org.ops4j.pax.logging/pax-logging-api/2.2.7 = 8 > mvn\:com.fasterxml.jackson.core/jackson-annotations/2.15.2 = 8 > mvn\:org.ops4j.pax.logging/pax-logging-log4j2/2.2.7 = 8 > mvn\:org.ops4j.pax.logging/pax-logging-log4j2-extra/2.2.7 = 8 > mvn\:rahla/loki-appender/1.0.16-SNAPSHOT = 8 > mvn\:com.fasterxml.jackson.core/jackson-core/2.15.2 = 8 > > I debugged a bit during build process: > > Profile bootOverlay = Profiles.getOverlay(bootProfile, allProfiles, > environment); > adds the startup features (my library + "framework") before > Profile bootEffective = Profiles.getEffective(bootOverlay, false); .. and > bootEffective.getFeatures() is used > > br, > Matthias > > On Tue, 21 May 2024 at 13:29, Grzegorz Grzybek <[email protected]> > wrote: > >> Hi >> >> compile scopeby default goes to "startup" phase of "profile management". >> See some comments I've added to Fuse Karaf with karaf-maven-plugin: >> https://github.com/jboss-fuse/fuse-karaf/blob/7.x.redhat-7-x/assemblies/fuse-karaf/pom.xml#L208-L225 >> (it's a public repo). >> >> So in practice there's no such thing as "startup feature" - simply the >> bundles from such feature go to etc/startup.properties, preserving >> start-level attribute of a <bundle> within such <feature>. This should be >> the way you add a fragment bundle for Pax Logging - as early as possible. >> >> Then it is also added to the boot features. >> >> >> Hmm, I'm not sure why's that... Even if it's true (I can't check now), it >> shouldn't affect the process and cause extra refreshes. >> In extreme case, where all the features are "startup", you should get all >> the bundles installed (and active if not fragments) the moment Karaf's >> FeatureService kicks in... >> >> regards >> Grzegorz Grzybek >> >> wt., 21 maj 2024 o 13:15 Matthias Leinweber <[email protected]> >> napisał(a): >> >>> Hello Grzegorz, >>> >>> now connecting the dots which jboss fuse and your expert knowledge ;) >>> >>> Anyway I shaded the additional library and didn't add the import. >>> Anyway, a new problem when I add a feature with scope compile to the >>> startupFeature config. Then it is also added to the boot features. This >>> causes a restart of pax-logging-log4j2 which causes some trouble with the >>> appender code. >>> >>> I currently try to see if something like: >>> >>> <startupBundles> >>> <bundle >>> start-level="8">mvn:org.ops4j.pax.logging/pax-logging-log4j2-extra/${pax-logging.version}</bundle> >>> <!--mor bundles--> >>> </startupBundles> >>> is possible and get rid of the extra feature. But it seems that >>> start-level is always 30. >>> >>> Any ideas? >>> >>> On Tue, 21 May 2024 at 11:41, Grzegorz Grzybek <[email protected]> >>> wrote: >>> >>>> Hi >>>> >>>> `org.osgi.framework.system.packages.extra` can be changed in >>>> karaf-maven-plugin when building custom Karaf distro. You can also provide >>>> your own config.properties - that's what we do in Fuse Karaf. >>>> >>>> But I think the easiest solution for you is to exclude generation of >>>> such import clause by adding `!sun.nio.ch` if you're not really using >>>> it in your fragment. >>>> >>>> regards >>>> Grzegorz Grzybek >>>> >>>> >>>> >>>> wt., 21 maj 2024 o 10:58 Matthias Leinweber <[email protected]> >>>> napisał(a): >>>> >>>>> I figured out that i added my logging stuff too late.: As a bundle >>>>> dependency in the assembly with a startup level which is too high (30) >>>>> which results in a restart of the logging system. Anyway after creating an >>>>> additional feature with start level 8 and adding it to startupFeatures i >>>>> am >>>>> pretty close to a solution. >>>>> >>>>> But i get >>>>> [ERROR] Failed to execute goal >>>>> org.apache.karaf.tooling:karaf-maven-plugin:4.4.6:assembly >>>>> (default-assembly) on project rahla: Unable to build assembly: Unable to >>>>> resolve root: missing requirement [root] osgi.identity; >>>>> osgi.identity=rahla.logging; type=karaf.feature; version=1.0.16.SNAPSHOT; >>>>> filter:="(&(osgi.identity=rahla.logging)(type=karaf.feature)(version>=1.0.16.SNAPSHOT))" >>>>> [caused by: Unable to resolve rahla.logging/1.0.16.SNAPSHOT: missing >>>>> requirement [rahla.logging/1.0.16.SNAPSHOT] osgi.identity; >>>>> osgi.identity=org.agrona.core; type=osgi.bundle; >>>>> version="[1.12.0,1.12.0]"; >>>>> resolution:=mandatory [caused by: Unable to resolve >>>>> org.agrona.core/1.12.0: >>>>> missing requirement [org.agrona.core/1.12.0] osgi.wiring.package; >>>>> filter:="(osgi.wiring.package=sun.nio.ch)"]] >>>>> >>>>> I am currently digging through the source code to see if I can >>>>> change org.osgi.framework.system.packages.extra during execution of the >>>>> plugin? Or does anyone know a better solution? >>>>> >>>>> br, >>>>> Matthias >>>>> >>>>> >>>>> >>>>> >>>>> On Sat, 18 May 2024 at 10:33, Matthias Leinweber < >>>>> [email protected]> wrote: >>>>> >>>>>> Thank you for the support. Worked like a charm. >>>>>> >>>>>> Grzegorz Grzybek <[email protected]> schrieb am Sa., 18. Mai >>>>>> 2024, 08:47: >>>>>> >>>>>>> Hi >>>>>>> >>>>>>> You should not get this file from original jar - it has to be >>>>>>> generated using Maven configuration of two Maven plugins: >>>>>>> >>>>>>> - maven-compiler-plugin to configure >>>>>>> >>>>>>> org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor >>>>>>> - maven-bundle-plugin to ensure resource mapping: >>>>>>> >>>>>>> META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat=target/classes/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat >>>>>>> >>>>>>> See: >>>>>>> https://github.com/ops4j/org.ops4j.pax.logging/blob/main/pax-logging-samples/fragment-log4j2/pom.xml#L41-L77 >>>>>>> >>>>>>> regards >>>>>>> Grzegorz Grzybek >>>>>>> >>>>>>> pt., 17 maj 2024 o 19:28 Matthias Leinweber < >>>>>>> [email protected]> napisał(a): >>>>>>> >>>>>>>> Ok, it doesn't seem so complicated.. Anyway, my java skills are a >>>>>>>> bit outdated. Working with private-package looks good in the first >>>>>>>> place. >>>>>>>> But how do I get the Log4j2Plugins.dat out of the original jar into my >>>>>>>> bundle? >>>>>>>> >>>>>>>> On Fri, 17 May 2024 at 16:55, Grzegorz Grzybek < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hello >>>>>>>>> >>>>>>>>> You can find a sample fragment here: >>>>>>>>> https://github.com/ops4j/org.ops4j.pax.logging/tree/main/pax-logging-samples/fragment-log4j2 >>>>>>>>> That's all there is ;( >>>>>>>>> >>>>>>>>> regards >>>>>>>>> Grzegorz Grzybek >>>>>>>>> >>>>>>>>> pt., 17 maj 2024 o 16:26 Matthias Leinweber < >>>>>>>>> [email protected]> napisał(a): >>>>>>>>> >>>>>>>>>> Hello Karaf Team, >>>>>>>>>> >>>>>>>>>> is it possible to directly add a custom log4j2 appender via wrap >>>>>>>>>> protocol? >>>>>>>>>> >>>>>>>>>> I added log4j2.packages = pl.tkowalcz.tjahzi.log4j2 to >>>>>>>>>> org.ops4j.pax.logging.cfg but i get ERROR : Unable to locate plugin >>>>>>>>>> for Loki >>>>>>>>>> >>>>>>>>>> I fear that i have to build a fragment bundle for pax logging .. >>>>>>>>>> if yes where can i find some doc? >>>>>>>>>> >>>>>>>>>> br. >>>>>>>>>> Matthias >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>> >>>>> >>>>> >>> >>> >>> > > >
