Generating custom bundle including "disruptor" in startup.properties...

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Generating custom bundle including "disruptor" in startup.properties...

James Carman
I'm trying to automatically enable asynchronous logging by default and the
config file says:

# uncomment to use asynchronous loggers, which require
mvn:com.lmax/disruptor/3.3.2 library
log4j2.rootLogger.type = asyncRoot


So, I uncommented it (as you can see), but "disruptor" isn't visible at
boot time, because it's not in the startup.properties. So, I figured I'd
try to add it:

<startupBundles>
  <startupBundle>mvn:com.lmax/disruptor/3.3.2</startupBundle>
</startupBundles>

Now, I get a funky features.cfg file:

#
# Comma separated list of features repositories to register by default
#
featuresRepositories =
file:${karaf.home}/etc/8dbd154a-fce6-435a-a7cd-67dc546b2ddf.xml

#
# Comma separated list of features to install at startup
#
featuresBoot = 9088a7fb-b327-44eb-ba3f-24382526981b

With a new feature repository file in etc:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0"
name="8dbd154a-fce6-435a-a7cd-67dc546b2ddf">

<repository>mvn:org.apache.karaf.features/framework/4.1.1/xml/features</repository>

<repository>mvn:org.apache.karaf.features/spring/4.1.1/xml/features</repository>

<repository>mvn:org.apache.karaf.features/standard/4.1.1/xml/features</repository>

<repository>mvn:org.apache.karaf.features/enterprise/4.1.1/xml/features</repository>

<repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.11/xml/features</repository>

<repository>mvn:org.apache.camel.karaf/apache-camel/2.19.0/xml/features</repository>

<repository>mvn:org.apache.activemq/activemq-karaf/5.14.5/xml/features</repository>

<repository>mvn:com.savoirtech.aetos/features/4.1.1.0-SNAPSHOT/xml/features</repository>
    <feature name="9088a7fb-b327-44eb-ba3f-24382526981b" version="0.0.0">
        <feature prerequisite="false" dependency="false">framework</feature>
        <feature prerequisite="false"
dependency="false">aries-blueprint</feature>
        <feature prerequisite="false" dependency="false">bundle</feature>
        <feature prerequisite="false" dependency="false">config</feature>
        <feature prerequisite="false" dependency="false">deployer</feature>
        <feature prerequisite="false"
dependency="false">diagnostic</feature>
        <feature prerequisite="false" dependency="false">feature</feature>
        <feature prerequisite="false" dependency="false">instance</feature>
        <feature prerequisite="false" dependency="false">jaas</feature>
        <feature prerequisite="false" dependency="false">kar</feature>
        <feature prerequisite="false" dependency="false">log</feature>
        <feature prerequisite="false"
dependency="false">management</feature>
        <feature prerequisite="false" dependency="false">package</feature>
        <feature prerequisite="false" dependency="false">service</feature>
        <feature prerequisite="false" dependency="false">shell</feature>
        <feature prerequisite="false"
dependency="false">shell-compat</feature>
        <feature prerequisite="false" dependency="false">ssh</feature>
        <feature prerequisite="false" dependency="false">system</feature>
        <feature prerequisite="false" dependency="false">wrap</feature>
        <feature prerequisite="false"
dependency="false">aetos-core</feature>
        <bundle>mvn:com.lmax/disruptor/3.3.2</bundle>
    </feature>
</features>

Notice it added "disruptor" to the bottom of that feature.  However, I
didn't want it in a boot feature.  I wanted it in the startup.properties,
so let's take a look there:

# Bundles to be started on startup, with startlevel
mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.1.1 = 1
mvn\:org.ops4j.pax.url/pax-url-aether/2.5.2 = 5
mvn\:org.ops4j.pax.logging/pax-logging-api/1.9.1 = 8
mvn\:org.ops4j.pax.logging/pax-logging-log4j2/1.9.1 = 8
mvn\:org.apache.felix/org.apache.felix.configadmin/1.8.14 = 10
mvn\:org.apache.felix/org.apache.felix.fileinstall/3.5.8 = 11
mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.1.1 = 15
mvn\:com.lmax/disruptor/3.3.2 = 50

It added it!  So, why is it adding it in both places?  Everything seems to
start up just fine in this case, but I really don't like this crazy
auto-generated features file.  Is there a way to avoid it and just add that
bundle to startup.properties?

Thanks,

James
Reply | Threaded
Open this post in threaded view
|

Re: Generating custom assembly including "disruptor" in startup.properties ...

James Carman
Renaming subject.  By the way, I tried adding disruptor as a compile-scoped
dependency (after looking at the AssemblyMojo code) and it appears to do
the same thing.

On Thu, May 18, 2017 at 12:24 PM James Carman <[hidden email]>
wrote:

> I'm trying to automatically enable asynchronous logging by default and the
> config file says:
>
> # uncomment to use asynchronous loggers, which require
> mvn:com.lmax/disruptor/3.3.2 library
> log4j2.rootLogger.type = asyncRoot
>
>
> So, I uncommented it (as you can see), but "disruptor" isn't visible at
> boot time, because it's not in the startup.properties. So, I figured I'd
> try to add it:
>
> <startupBundles>
>   <startupBundle>mvn:com.lmax/disruptor/3.3.2</startupBundle>
> </startupBundles>
>
> Now, I get a funky features.cfg file:
>
> #
> # Comma separated list of features repositories to register by default
> #
> featuresRepositories =
> file:${karaf.home}/etc/8dbd154a-fce6-435a-a7cd-67dc546b2ddf.xml
>
> #
> # Comma separated list of features to install at startup
> #
> featuresBoot = 9088a7fb-b327-44eb-ba3f-24382526981b
>
> With a new feature repository file in etc:
>
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0"
> name="8dbd154a-fce6-435a-a7cd-67dc546b2ddf">
>
> <repository>mvn:org.apache.karaf.features/framework/4.1.1/xml/features</repository>
>
> <repository>mvn:org.apache.karaf.features/spring/4.1.1/xml/features</repository>
>
> <repository>mvn:org.apache.karaf.features/standard/4.1.1/xml/features</repository>
>
> <repository>mvn:org.apache.karaf.features/enterprise/4.1.1/xml/features</repository>
>
> <repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.11/xml/features</repository>
>
> <repository>mvn:org.apache.camel.karaf/apache-camel/2.19.0/xml/features</repository>
>
> <repository>mvn:org.apache.activemq/activemq-karaf/5.14.5/xml/features</repository>
>
> <repository>mvn:com.savoirtech.aetos/features/4.1.1.0-SNAPSHOT/xml/features</repository>
>     <feature name="9088a7fb-b327-44eb-ba3f-24382526981b" version="0.0.0">
>         <feature prerequisite="false"
> dependency="false">framework</feature>
>         <feature prerequisite="false"
> dependency="false">aries-blueprint</feature>
>         <feature prerequisite="false" dependency="false">bundle</feature>
>         <feature prerequisite="false" dependency="false">config</feature>
>         <feature prerequisite="false" dependency="false">deployer</feature>
>         <feature prerequisite="false"
> dependency="false">diagnostic</feature>
>         <feature prerequisite="false" dependency="false">feature</feature>
>         <feature prerequisite="false" dependency="false">instance</feature>
>         <feature prerequisite="false" dependency="false">jaas</feature>
>         <feature prerequisite="false" dependency="false">kar</feature>
>         <feature prerequisite="false" dependency="false">log</feature>
>         <feature prerequisite="false"
> dependency="false">management</feature>
>         <feature prerequisite="false" dependency="false">package</feature>
>         <feature prerequisite="false" dependency="false">service</feature>
>         <feature prerequisite="false" dependency="false">shell</feature>
>         <feature prerequisite="false"
> dependency="false">shell-compat</feature>
>         <feature prerequisite="false" dependency="false">ssh</feature>
>         <feature prerequisite="false" dependency="false">system</feature>
>         <feature prerequisite="false" dependency="false">wrap</feature>
>         <feature prerequisite="false"
> dependency="false">aetos-core</feature>
>         <bundle>mvn:com.lmax/disruptor/3.3.2</bundle>
>     </feature>
> </features>
>
> Notice it added "disruptor" to the bottom of that feature.  However, I
> didn't want it in a boot feature.  I wanted it in the startup.properties,
> so let's take a look there:
>
> # Bundles to be started on startup, with startlevel
> mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.1.1 =
> 1
> mvn\:org.ops4j.pax.url/pax-url-aether/2.5.2 = 5
> mvn\:org.ops4j.pax.logging/pax-logging-api/1.9.1 = 8
> mvn\:org.ops4j.pax.logging/pax-logging-log4j2/1.9.1 = 8
> mvn\:org.apache.felix/org.apache.felix.configadmin/1.8.14 = 10
> mvn\:org.apache.felix/org.apache.felix.fileinstall/3.5.8 = 11
> mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.1.1 = 15
> mvn\:com.lmax/disruptor/3.3.2 = 50
>
> It added it!  So, why is it adding it in both places?  Everything seems to
> start up just fine in this case, but I really don't like this crazy
> auto-generated features file.  Is there a way to avoid it and just add that
> bundle to startup.properties?
>
> Thanks,
>
> James
>
Reply | Threaded
Open this post in threaded view
|

Re: Generating custom assembly including "disruptor" in startup.properties ...

Guillaume Nodet-2
The behavior of adding bundles in both startup.properties and boot features
is a side effect of the way the assembly plugin works : it computes
profiles, the boot profiles being laid on top of the startup profile, thus
including all the bundles / features from the startup stage.

Is that causing a problem ?


2017-05-18 18:35 GMT+02:00 James Carman <[hidden email]>:

> Renaming subject.  By the way, I tried adding disruptor as a compile-scoped
> dependency (after looking at the AssemblyMojo code) and it appears to do
> the same thing.
>
> On Thu, May 18, 2017 at 12:24 PM James Carman <[hidden email]>
> wrote:
>
> > I'm trying to automatically enable asynchronous logging by default and
> the
> > config file says:
> >
> > # uncomment to use asynchronous loggers, which require
> > mvn:com.lmax/disruptor/3.3.2 library
> > log4j2.rootLogger.type = asyncRoot
> >
> >
> > So, I uncommented it (as you can see), but "disruptor" isn't visible at
> > boot time, because it's not in the startup.properties. So, I figured I'd
> > try to add it:
> >
> > <startupBundles>
> >   <startupBundle>mvn:com.lmax/disruptor/3.3.2</startupBundle>
> > </startupBundles>
> >
> > Now, I get a funky features.cfg file:
> >
> > #
> > # Comma separated list of features repositories to register by default
> > #
> > featuresRepositories =
> > file:${karaf.home}/etc/8dbd154a-fce6-435a-a7cd-67dc546b2ddf.xml
> >
> > #
> > # Comma separated list of features to install at startup
> > #
> > featuresBoot = 9088a7fb-b327-44eb-ba3f-24382526981b
> >
> > With a new feature repository file in etc:
> >
> > <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> > <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0"
> > name="8dbd154a-fce6-435a-a7cd-67dc546b2ddf">
> >
> > <repository>mvn:org.apache.karaf.features/framework/4.1.
> 1/xml/features</repository>
> >
> > <repository>mvn:org.apache.karaf.features/spring/4.1.1/
> xml/features</repository>
> >
> > <repository>mvn:org.apache.karaf.features/standard/4.1.1/
> xml/features</repository>
> >
> > <repository>mvn:org.apache.karaf.features/enterprise/4.1.
> 1/xml/features</repository>
> >
> > <repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.11/
> xml/features</repository>
> >
> > <repository>mvn:org.apache.camel.karaf/apache-camel/2.19.
> 0/xml/features</repository>
> >
> > <repository>mvn:org.apache.activemq/activemq-karaf/5.14.
> 5/xml/features</repository>
> >
> > <repository>mvn:com.savoirtech.aetos/features/4.1.
> 1.0-SNAPSHOT/xml/features</repository>
> >     <feature name="9088a7fb-b327-44eb-ba3f-24382526981b"
> version="0.0.0">
> >         <feature prerequisite="false"
> > dependency="false">framework</feature>
> >         <feature prerequisite="false"
> > dependency="false">aries-blueprint</feature>
> >         <feature prerequisite="false" dependency="false">bundle</
> feature>
> >         <feature prerequisite="false" dependency="false">config</
> feature>
> >         <feature prerequisite="false" dependency="false">deployer</
> feature>
> >         <feature prerequisite="false"
> > dependency="false">diagnostic</feature>
> >         <feature prerequisite="false" dependency="false">feature</
> feature>
> >         <feature prerequisite="false" dependency="false">instance</
> feature>
> >         <feature prerequisite="false" dependency="false">jaas</feature>
> >         <feature prerequisite="false" dependency="false">kar</feature>
> >         <feature prerequisite="false" dependency="false">log</feature>
> >         <feature prerequisite="false"
> > dependency="false">management</feature>
> >         <feature prerequisite="false" dependency="false">package</
> feature>
> >         <feature prerequisite="false" dependency="false">service</
> feature>
> >         <feature prerequisite="false" dependency="false">shell</feature>
> >         <feature prerequisite="false"
> > dependency="false">shell-compat</feature>
> >         <feature prerequisite="false" dependency="false">ssh</feature>
> >         <feature prerequisite="false" dependency="false">system</
> feature>
> >         <feature prerequisite="false" dependency="false">wrap</feature>
> >         <feature prerequisite="false"
> > dependency="false">aetos-core</feature>
> >         <bundle>mvn:com.lmax/disruptor/3.3.2</bundle>
> >     </feature>
> > </features>
> >
> > Notice it added "disruptor" to the bottom of that feature.  However, I
> > didn't want it in a boot feature.  I wanted it in the startup.properties,
> > so let's take a look there:
> >
> > # Bundles to be started on startup, with startlevel
> > mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.1.1
> =
> > 1
> > mvn\:org.ops4j.pax.url/pax-url-aether/2.5.2 = 5
> > mvn\:org.ops4j.pax.logging/pax-logging-api/1.9.1 = 8
> > mvn\:org.ops4j.pax.logging/pax-logging-log4j2/1.9.1 = 8
> > mvn\:org.apache.felix/org.apache.felix.configadmin/1.8.14 = 10
> > mvn\:org.apache.felix/org.apache.felix.fileinstall/3.5.8 = 11
> > mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.1.1 = 15
> > mvn\:com.lmax/disruptor/3.3.2 = 50
> >
> > It added it!  So, why is it adding it in both places?  Everything seems
> to
> > start up just fine in this case, but I really don't like this crazy
> > auto-generated features file.  Is there a way to avoid it and just add
> that
> > bundle to startup.properties?
> >
> > Thanks,
> >
> > James
> >
>



--
------------------------
Guillaume Nodet