You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Charlie Mordant <cm...@gmail.com> on 2017/01/31 09:39:32 UTC

Bundle restart are hard to tackle

Hi users of the world's best application server ever ;-),

I'm struggling with feature resolution, and would like to have your POV.

This issue is concerning, the JDBC, the Blueprint and the transactional
feature.

Here's the issue with feature resolution in my pax-exam test:


* The jdbc-pool-aries feature starts first (+ the config one and the cfg
\o/).
* Then the transactional feature
* The third feature thats start is the aries jndi one, so the two
datasources (the XA and non-XA ones) are exposed (\o/\o/).
* But the third that starts is the blueprint one, which starts the
xbean-blueprint bundle.
That blueprint bundle restarts the 'optional' resolutions of aries
transaction manager, which then restarts aries-jdbc modules (optional res
again) & config, which stops the datasource and starts another one.
​Unfortunately, at this point, my 'daos' bundle is already linked with a
proxy to the 'old' datasource​.

A way to fix it is to reference the 'transaction' feature in the
'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but it
would then break some modularity.

Have you got an idea on how to properly handle it?

The actual xml of my features, they're slightly similar to the karaf ones,
with bundle versions aligned:
[code]

     <feature name="osgiliath-pax-jdbc-pool-aries"
description="Provides JDBC Pooling DataSourceFactory using Aries
Transaction JDBC"
version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}"
resolver="(obr)">
        <feature>osgiliath-pax-jdbc-spec</feature>
        <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.ops4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
        <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
        <conditional>
            <condition>osgiliath-aries-blueprint</condition>
            <bundle
dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
        </conditional>
        <conditional>
            <condition>osgiliath-transaction</condition>
            <bundle
dependency="true">mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/${org.apache.aries.transaction_org.apache.aries.transaction.jdbc.version}</bundle>
        </conditional>
    </feature>


    <feature name="osgiliath-transaction" description="OSGi
Transaction Manager"
version="${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}">
        <config name="org.apache.aries.transaction" append="false">
            aries.transaction.recoverable = true
            aries.transaction.timeout = 600
            aries.transaction.howl.logFileDir = ${karaf.data}/txlog
            aries.transaction.howl.maxLogFiles = 2
            aries.transaction.howl.maxBlocksPerFile = 512
            aries.transaction.howl.bufferSize = 4
        </config>
        <feature version="${transaction-api_feature.version}"
prerequisite="false"
dependency="false">osgiliath-transaction-api</feature>
        <bundle
dependency="true">mvn:org.apache.aries/org.apache.aries.util/${org.apache.aries_org.apache.aries.util.version}</bundle>
        <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}</bundle>
        <conditional>
            <condition>osgiliath-aries-blueprint</condition>
            <bundle
dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
            <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version1}</bundle>
            <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version}</bundle>
            <bundle
dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
        </conditional>
        <conditional>
            <condition>osgiliath-spring</condition>
            <feature
version="${org.apache.servicemix.bundles.spring.version}"
dependency="true">osgiliath-spring-tx</feature>
        </conditional>
    </feature>

********************************************************* Additional
informations ******************************************


<feature name="osgiliath-transaction-api"
version="${transaction-api_feature.version}">
        <bundle
dependency="true">mvn:javax.interceptor/javax.interceptor-api/${javax.interceptor_javax.interceptor-api.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.geronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
        <bundle
dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
        <bundle
dependency="true">mvn:javax.enterprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
        <bundle>mvn:javax.transaction/javax.transaction-api/${javax.transaction_javax.transaction-api.version}</bundle>
    </feature>
 <feature name="osgiliath-persistence-api" description="Persistence
API" version="${persistence-api_feature.version}">
        <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry/${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
    </feature>
 <feature name="osgiliath-jpa" description="OSGi Persistence
Container" version="${org.apache.aries.jpa.version}">
        <feature version="${transaction-api_feature.version}"
prerequisite="false"
dependency="false">osgiliath-transaction-api</feature>
        <feature version="${persistence-api_feature.version}"
prerequisite="false"
dependency="false">osgiliath-persistence-api</feature>
        <bundle
dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
        <bundle
dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
        <conditional>
            <condition>osgiliath-aries-blueprint</condition>
            <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
        </conditional>
    </feature>

     <feature name="osgiliath-openjpa" description="Apache OpenJPA
2.4.x persistence engine support"
version="${org.apache.openjpa.version}">
        <feature prerequisite="false"
dependency="false">osgiliath-jndi</feature>
        <feature version="${transaction-api_feature.version}"
prerequisite="false"
dependency="false">osgiliath-transaction-api</feature>
        <feature version="${persistence-api_feature.version}"
prerequisite="false"
dependency="false">osgiliath-persistence-api</feature>
        <bundle
dependency="true">mvn:javax.servlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
        <bundle
dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
        <bundle
dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
        <bundle
dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
        <bundle
dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
        <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
    </feature>
<feature name="osgiliath-connector"
version="${org.apache.geronimo.components_geronimo-connector.version}"
description="OSGi Support for JCA Connector 1.6" resolver="(obr)">
        <feature
version="${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}">osgiliath-transaction</feature>
        <bundle
dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apache.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
        <bundle
dependency="true">mvn:javax.validation/validation-api/${javax.validation_validation-api.version}</bundle>
        <bundle>mvn:org.apache.geronimo.components/geronimo-connector/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
    </feature>
 <feature name="osgiliath-jpa" description="OSGi Persistence
Container" version="${org.apache.aries.jpa.version}">
        <feature version="${transaction-api_feature.version}"
prerequisite="false"
dependency="false">osgiliath-transaction-api</feature>
        <feature version="${persistence-api_feature.version}"
prerequisite="false"
dependency="false">osgiliath-persistence-api</feature>
        <bundle
dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
        <bundle
dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
        <conditional>
            <condition>osgiliath-aries-blueprint</condition>
            <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
        </conditional>
    </feature>
     <feature name="osgiliath-openjpa" description="Apache OpenJPA
2.4.x persistence engine support"
version="${org.apache.openjpa.version}">
        <details>Enable Apache OpenJPA as persistence engine.</details>
        <feature prerequisite="false"
dependency="false">osgiliath-jndi</feature>
        <feature version="${transaction-api_feature.version}"
prerequisite="false"
dependency="false">osgiliath-transaction-api</feature>
        <feature version="${persistence-api_feature.version}"
prerequisite="false"
dependency="false">osgiliath-persistence-api</feature>
        <bundle
dependency="true">mvn:javax.servlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
        <bundle
dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
        <bundle
dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
        <bundle
dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
        <bundle
dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
        <bundle
dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
        <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
    </feature>



<feature name='osgiliath-persistence' version='${project.version}'
resolver="(obr)" start-level="41" description="Java persistence API
stack" >
		<bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
		<feature version="${project.version}">osgiliath-jdbc</feature>
		<feature version="${org.apache.geronimo.components_geronimo-connector.version}">osgiliath-connector</feature>
		<feature version="${org.apache.aries.jpa.version}">osgiliath-jpa</feature>
		<bundle dependency='true'>mvn:org.osgi/org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
		<feature version="${org.apache.openjpa.version}">osgiliath-openjpa</feature>
		<feature version="${org.apache.karaf.features_standard.version}">osgiliath-aries-blueprint</feature>
		<bundle>mvn:org.apache.xbean/xbean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
		<feature version="${project.version}">osgiliath-spring-data-jpa</feature>
		<conditional>
			<condition>osgiliath-rest-management</condition>
			<bundle start-level="35"
dependency="true">mvn:io.swagger/swagger-annotations/${io.swagger_swagger-annotations.version}</bundle>
		</conditional>	
    </feature>

[/code]


​Best regards,​ and keep up bringing the OSGI dream comes true ;-)


-- 
Charlie Mordant

Full OSGI/EE stack made with Karaf:
https://github.com/OsgiliathEnterprise/net.osgiliath.parent

Re: Bundle restart are hard to tackle

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Awesome !

In the mean time, I try to reproduce on my side.

Thanks !

Regards
JB

On 01/31/2017 10:48 AM, Charlie Mordant wrote:
> Hi J.B.,
>
> Sure, it's always reproducible, I'll send it tonight (or tomorrow if I
> haven't the time to do it).
> I'm not in front of my computer for now, but will do my best as reactive
> as possible.
>
> Best Regards,
>
> 2017-01-31 10:41 GMT+01:00 Jean-Baptiste Onofr� <jb@nanthrax.net
> <ma...@nanthrax.net>>:
>
>     Hi Charlie,
>
>     do you have the feature:install -v output ? It would help us to see
>     the cause of the refresh (optional import, or other).
>
>     Thanks !
>
>     Regards
>     JB
>
>
>     On 01/31/2017 10:39 AM, Charlie Mordant wrote:
>
>         Hi users of the world's best application server ever ;-),
>
>         I'm struggling with feature resolution, and would like to have
>         your POV.
>
>         This issue is concerning, the JDBC, the Blueprint and the
>         transactional
>         feature.
>
>         Here's the issue with feature resolution in my pax-exam test:
>
>
>         * The jdbc-pool-aries feature starts first (+ the config one and
>         the cfg
>         \o/).
>         * Then the transactional feature
>         * The third feature thats start is the aries jndi one, so the two
>         datasources (the XA and non-XA ones) are exposed (\o/\o/).
>         * But the third that starts is the blueprint one, which starts the
>         xbean-blueprint bundle.
>         That blueprint bundle restarts the 'optional' resolutions of aries
>         transaction manager, which then restarts aries-jdbc modules
>         (optional
>         res again) & config, which stops the datasource and starts
>         another one.
>         \u200bUnfortunately, at this point, my 'daos' bundle is already
>         linked with a
>         proxy to the 'old' datasource\u200b.
>
>         A way to fix it is to reference the 'transaction' feature in the
>         'pool-aries' one, and the 'blueprint' one in the 'transaction'
>         one, but
>         it would then break some modularity.
>
>         Have you got an idea on how to properly handle it?
>
>         The actual xml of my features, they're slightly similar to the karaf
>         ones, with bundle versions aligned:
>         [code]
>
>              <feature name="osgiliath-pax-jdbc-pool-aries"
>         description="Provides JDBC Pooling DataSourceFactory using Aries
>         Transaction JDBC"
>         version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}"
>         resolver="(obr)">
>                 <feature>osgiliath-pax-jdbc-spec</feature>
>
>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.ops4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
>
>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
>                 <conditional>
>                     <condition>osgiliath-aries-blueprint</condition>
>                     <bundle
>         dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>                 </conditional>
>                 <conditional>
>                     <condition>osgiliath-transaction</condition>
>                     <bundle
>         dependency="true">mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/${org.apache.aries.transaction_org.apache.aries.transaction.jdbc.version}</bundle>
>                 </conditional>
>             </feature>
>
>
>             <feature name="osgiliath-transaction" description="OSGi
>         Transaction Manager" version="${org.apache.aries.tr
>         <http://org.apache.aries.tr>ansaction_org.apache.aries.transaction.manager.version}">
>                 <config name="org.apache.aries.transaction" append="false">
>                     aries.transaction.recoverable = true
>                     aries.transaction.timeout = 600
>                     aries.transaction.howl.logFileDir = ${karaf.data}/txlog
>                     aries.transaction.howl.maxLogFiles = 2
>                     aries.transaction.howl.maxBlocksPerFile = 512
>                     aries.transaction.howl.bufferSize = 4
>                 </config>
>                 <feature version="${transaction-api_feature.version}"
>         prerequisite="false"
>         dependency="false">osgiliath-transaction-api</feature>
>                 <bundle
>         dependency="true">mvn:org.apache.aries/org.apache.aries.util/${org.apache.aries_org.apache.aries.util.version}</bundle>
>
>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>         <http://org.apache.aries.tr>ansaction.manager/${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}</bundle>
>                 <conditional>
>                     <condition>osgiliath-aries-blueprint</condition>
>                     <bundle
>         dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>
>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>         <http://org.apache.aries.tr>ansaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version1}</bundle>
>
>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>         <http://org.apache.aries.tr>ansaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version}</bundle>
>                     <bundle
>         dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>                 </conditional>
>                 <conditional>
>                     <condition>osgiliath-spring</condition>
>                     <feature
>         version="${org.apache.servicemix.bundles.spring.version}"
>         dependency="true">osgiliath-spring-tx</feature>
>                 </conditional>
>             </feature>
>
>         *********************************************************
>         Additional informations ******************************************
>
>
>         <feature name="osgiliath-transaction-api"
>         version="${transaction-api_feature.version}">
>                 <bundle dependency="true">mvn:javax.in
>         <http://javax.in>terceptor/javax.interceptor-api/${javax.interceptor_javax.in
>         <http://javax.interceptor_javax.in>terceptor-api.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.geronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
>                 <bundle
>         dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>                 <bundle
>         dependency="true">mvn:javax.enterprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
>
>         <bundle>mvn:javax.transaction/javax.transaction-api/${javax.transaction_javax.transaction-api.version}</bundle>
>             </feature>
>          <feature name="osgiliath-persistence-api"
>         description="Persistence API"
>         version="${persistence-api_feature.version}">
>
>         <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
>
>         <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry/${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
>             </feature>
>          <feature name="osgiliath-jpa" description="OSGi Persistence
>         Container" version="${org.apache.aries.jp
>         <http://org.apache.aries.jp>a.version}">
>                 <feature version="${transaction-api_feature.version}"
>         prerequisite="false"
>         dependency="false">osgiliath-transaction-api</feature>
>                 <feature version="${persistence-api_feature.version}"
>         prerequisite="false"
>         dependency="false">osgiliath-persistence-api</feature>
>                 <bundle
>         dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>                 <conditional>
>                     <condition>osgiliath-aries-blueprint</condition>
>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
>                 </conditional>
>             </feature>
>
>              <feature name="osgiliath-openjpa" description="Apache
>         OpenJPA 2.4.x persistence engine support"
>         version="${org.apache.openjpa.version}">
>                 <feature prerequisite="false"
>         dependency="false">osgiliath-jndi</feature>
>                 <feature version="${transaction-api_feature.version}"
>         prerequisite="false"
>         dependency="false">osgiliath-transaction-api</feature>
>                 <feature version="${persistence-api_feature.version}"
>         prerequisite="false"
>         dependency="false">osgiliath-persistence-api</feature>
>                 <bundle dependency="true">mvn:javax.se
>         <http://javax.se>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
>                 <bundle
>         dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>                 <bundle
>         dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>                 <bundle
>         dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>                 <bundle
>         dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>
>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>             </feature>
>         <feature name="osgiliath-connector"
>         version="${org.apache.geronimo.components_geronimo-connector.version}"
>         description="OSGi Support for JCA Connector 1.6" resolver="(obr)">
>                 <feature version="${org.apache.aries.tr
>         <http://org.apache.aries.tr>ansaction_org.apache.aries.transaction.manager.version}">osgiliath-transaction</feature>
>                 <bundle
>         dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apache.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
>                 <bundle dependency="true">mvn:javax.va
>         <http://javax.va>lidation/validation-api/${javax.validation_validation-api.version}</bundle>
>
>         <bundle>mvn:org.apache.geronimo.components/geronimo-connector/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
>             </feature>
>          <feature name="osgiliath-jpa" description="OSGi Persistence
>         Container" version="${org.apache.aries.jp
>         <http://org.apache.aries.jp>a.version}">
>                 <feature version="${transaction-api_feature.version}"
>         prerequisite="false"
>         dependency="false">osgiliath-transaction-api</feature>
>                 <feature version="${persistence-api_feature.version}"
>         prerequisite="false"
>         dependency="false">osgiliath-persistence-api</feature>
>                 <bundle
>         dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>                 <conditional>
>                     <condition>osgiliath-aries-blueprint</condition>
>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
>                 </conditional>
>             </feature>
>              <feature name="osgiliath-openjpa" description="Apache
>         OpenJPA 2.4.x persistence engine support"
>         version="${org.apache.openjpa.version}">
>                 <details>Enable Apache OpenJPA as persistence
>         engine.</details>
>                 <feature prerequisite="false"
>         dependency="false">osgiliath-jndi</feature>
>                 <feature version="${transaction-api_feature.version}"
>         prerequisite="false"
>         dependency="false">osgiliath-transaction-api</feature>
>                 <feature version="${persistence-api_feature.version}"
>         prerequisite="false"
>         dependency="false">osgiliath-persistence-api</feature>
>                 <bundle dependency="true">mvn:javax.se
>         <http://javax.se>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
>                 <bundle
>         dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>                 <bundle
>         dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>                 <bundle
>         dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>                 <bundle
>         dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>                 <bundle
>         dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>
>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>             </feature>
>
>
>
>         <feature name='osgiliath-persistence'
>         version='${project.version}' resolver="(obr)" start-level="41"
>         description="Java persistence API stack" >
>                         <bundle dependency='true'>mvn:javax.se
>         <http://javax.se>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
>                         <feature
>         version="${project.version}">osgiliath-jdbc</feature>
>                         <feature
>         version="${org.apache.geronimo.components_geronimo-connector.version}">osgiliath-connector</feature>
>                         <feature version="${org.apache.aries.jp
>         <http://org.apache.aries.jp>a.version}">osgiliath-jpa</feature>
>                         <bundle
>         dependency='true'>mvn:org.osgi/org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
>                         <feature
>         version="${org.apache.openjpa.version}">osgiliath-openjpa</feature>
>                         <feature
>         version="${org.apache.karaf.features_standard.version}">osgiliath-aries-blueprint</feature>
>
>         <bundle>mvn:org.apache.xbean/xbean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
>                         <feature
>         version="${project.version}">osgiliath-spring-data-jpa</feature>
>                         <conditional>
>
>         <condition>osgiliath-rest-management</condition>
>                                 <bundle start-level="35"
>         dependency="true">mvn:io.swagger/swagger-annotations/${io.swagger_swagger-annotations.version}</bundle>
>                         </conditional>
>             </feature>
>
>         [/code]
>
>
>         \u200bBest regards,\u200b and keep up bringing the OSGI dream comes true ;-)
>
>
>         --
>         Charlie Mordant
>
>         Full OSGI/EE stack made with Karaf:
>         https://github.com/OsgiliathEnterprise/net.osgiliath.parent
>         <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>
>
>
>     --
>     Jean-Baptiste Onofr�
>     jbonofre@apache.org <ma...@apache.org>
>     http://blog.nanthrax.net
>     Talend - http://www.talend.com
>
>
>
>
> --
> Charlie Mordant
>
> Full OSGI/EE stack made with Karaf:
> https://github.com/OsgiliathEnterprise/net.osgiliath.parent

-- 
Jean-Baptiste Onofr�
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Bundle restart are hard to tackle

Posted by Charlie Mordant <cm...@gmail.com>.
Back To Business...


Jean Baptiste, here's the log of my business module, if someone want to
try, the code of the project is on the master branch on Github.

The final issue occurs because at the end of the chain, the bundle '
org.ops4j.pax.jdbc.pool.aries' is refreshed, which causes the JDBC
datasource not to be exposed correctly.

2017-01-31 20:10:00,882 | INFO  | pool-1-thread-2  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Adding features:
instance/[4.0.8,4.0.8], package/[4.0.8,4.0.8], log/[4.0.8,4.0.8],
ssh/[4.0.8,4.0.8], aries-blueprint/[4.0.8,4.0.8], framework/[4.0.8,4.0.8],
system/[4.0.8,4.0.8], feature/[4.0.8,4.0.8], shell/[4.0.8,4.0.8],
management/[4.0.8,4.0.8], service/[4.0.8,4.0.8], jaas/[4.0.8,4.0.8],
shell-compat/[4.0.8,4.0.8], deployer/[4.0.8,4.0.8],
diagnostic/[4.0.8,4.0.8], wrap/[0,0.0.0], bundle/[4.0.8,4.0.8],
config/[4.0.8,4.0.8], kar/[4.0.8,4.0.8],
net.osgiliath.sample.webapp.business.itests/[0.3.8.SNAPSHOT,0.3.8.SNAPSHOT],
exam/[4.9.2,4.9.2], test-dependencies/[0,0.0.0]
2017-01-31 20:10:01,086 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Changes to
perform:
2017-01-31 20:10:01,086 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |   Region: root
2017-01-31 20:10:01,086 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |     Bundles to
install:
2017-01-31 20:10:01,087 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.servlet/javax.servlet-api/3.1.0
2017-01-31 20:10:01,087 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/1.9.2_1
2017-01-31 20:10:01,087 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.base/ops4j-base-spi/1.5.0
2017-01-31 20:10:01,087 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.jdbc/pax-jdbc/0.8.0
2017-01-31 20:10:01,088 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.jdbc/pax-jdbc-config/0.8.0
2017-01-31 20:10:01,088 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.osgi/org.osgi.service.jdbc/1.0.0
2017-01-31 20:10:01,089 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Installing
bundles:
2017-01-31 20:10:01,089 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.servlet/javax.servlet-api/3.1.0
2017-01-31 20:10:01,093 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/1.9.2_1
2017-01-31 20:10:01,097 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.base/ops4j-base-spi/1.5.0
2017-01-31 20:10:01,099 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.jdbc/pax-jdbc/0.8.0
2017-01-31 20:10:01,101 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.jdbc/pax-jdbc-config/0.8.0
2017-01-31 20:10:01,103 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.osgi/org.osgi.service.jdbc/1.0.0
2017-01-31 20:10:01,119 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Starting bundles:
2017-01-31 20:10:01,121 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.osgi.service.jdbc/1.0.0.201505202023
2017-01-31 20:10:01,122 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.base.spi/1.5.0
2017-01-31 20:10:01,123 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.jdbc/0.8.0
2017-01-31 20:10:01,129 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
javax.servlet-api/3.1.0
2017-01-31 20:10:01,129 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.jasypt/1.9.2.1
2017-01-31 20:10:01,130 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.jdbc.config/0.8.0
2017-01-31 20:10:01,134 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Done.
2017-01-31 20:10:01,532 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Changes to
perform:
2017-01-31 20:10:01,532 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |   Region: root
2017-01-31 20:10:01,533 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |     Bundles to
install:
2017-01-31 20:10:01,533 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.enterprise/cdi-api/1.2
2017-01-31 20:10:01,533 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.interceptor/javax.interceptor-api/1.2
2017-01-31 20:10:01,533 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.mail/mail/1.4.4
2017-01-31 20:10:01,533 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.transaction/javax.transaction-api/1.2
2017-01-31 20:10:01,534 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.validation/validation-api/1.1.0.Final
2017-01-31 20:10:01,534 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.websocket/javax.websocket-api/1.1
2017-01-31 20:10:01,534 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:jline/jline/2.14.1
2017-01-31 20:10:01,534 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:joda-time/joda-time/2.9.2
2017-01-31 20:10:01,534 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.derby/0.3.8-SNAPSHOT
2017-01-31 20:10:01,534 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.derby/0.3.8-SNAPSHOT
2017-01-31 20:10:01,535 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.api/1.0.1
2017-01-31 20:10:01,535 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.cm/1.0.9
2017-01-31 20:10:01,535 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core/1.7.1
2017-01-31 20:10:01,535 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0
2017-01-31 20:10:01,535 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.api/1.1.0
2017-01-31 20:10:01,535 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.core/1.0.2
2017-01-31 20:10:01,536 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.legacy.support/1.0.0
2017-01-31 20:10:01,536 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.rmi/1.0.0
2017-01-31 20:10:01,536 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.url/1.1.0
2017-01-31 20:10:01,536 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.proxy/org.apache.aries.proxy.api/1.0.1
2017-01-31 20:10:01,536 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.proxy/org.apache.aries.proxy.impl/1.0.5
2017-01-31 20:10:01,536 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/1.0.1
2017-01-31 20:10:01,537 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/2.1.0
2017-01-31 20:10:01,537 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/1.3.0
2017-01-31 20:10:01,537 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries/org.apache.aries.util/1.1.1
2017-01-31 20:10:01,537 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-codec/commons-codec/1.10
2017-01-31 20:10:01,537 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-pool/commons-pool/1.6
2017-01-31 20:10:01,538 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.components/geronimo-connector/3.1.1
2017-01-31 20:10:01,538 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/1.0
2017-01-31 20:10:01,538 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/1.0
2017-01-31 20:10:01,538 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-jaspic_1.0_spec/1.1
2017-01-31 20:10:01,538 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1
2017-01-31 20:10:01,538 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
2017-01-31 20:10:01,539 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-osgi-registry/1.1
2017-01-31 20:10:01,539 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.http/org.apache.karaf.http.core/4.0.8
2017-01-31 20:10:01,539 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.jdbc/org.apache.karaf.jdbc.core/4.0.8
2017-01-31 20:10:01,539 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.jndi/org.apache.karaf.jndi.core/4.0.8
2017-01-31 20:10:01,539 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.shell/org.apache.karaf.shell.commands/4.0.8
2017-01-31 20:10:01,539 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.shell/org.apache.karaf.shell.console/4.0.8
2017-01-31 20:10:01,540 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.shell/org.apache.karaf.shell.core/4.0.8
2017-01-31 20:10:01,540 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.shell/org.apache.karaf.shell.table/4.0.8
2017-01-31 20:10:01,540 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.web/org.apache.karaf.web.core/4.0.8
2017-01-31 20:10:01,540 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/1.8.2_2
2017-01-31 20:10:01,540 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6
2017-01-31 20:10:01,540 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.8.0_1
2017-01-31 20:10:01,541 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/3.0_1
2017-01-31 20:10:01,541 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/4.12_1
2017-01-31 20:10:01,541 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.1.9.RELEASE_1
2017-01-31 20:10:01,541 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.1.9.RELEASE_1
2017-01-31 20:10:01,541 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1
2017-01-31 20:10:01,541 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.1.9.RELEASE_1
2017-01-31 20:10:01,542 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.1.9.RELEASE_1
2017-01-31 20:10:01,542 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.1.9.RELEASE_1
2017-01-31 20:10:01,542 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.1.9.RELEASE_1
2017-01-31 20:10:01,542 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-bundleutils/4.5
2017-01-31 20:10:01,542 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-finder/4.5
2017-01-31 20:10:01,542 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-naming/3.18
2017-01-31 20:10:01,542 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jdt.core.compiler/ecj/4.4
2017-01-31 20:10:01,543 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-client/9.2.19.v20160908
2017-01-31 20:10:01,543 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-continuation/9.2.19.v20160908
2017-01-31 20:10:01,543 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-http/9.2.19.v20160908
2017-01-31 20:10:01,543 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-io/9.2.19.v20160908
2017-01-31 20:10:01,543 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-jaas/9.2.19.v20160908
2017-01-31 20:10:01,543 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-jaspi/9.2.19.v20160908
2017-01-31 20:10:01,544 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-jmx/9.2.19.v20160908
2017-01-31 20:10:01,544 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-jndi/9.2.19.v20160908
2017-01-31 20:10:01,544 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-plus/9.2.19.v20160908
2017-01-31 20:10:01,544 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-rewrite/9.2.19.v20160908
2017-01-31 20:10:01,544 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-security/9.2.19.v20160908
2017-01-31 20:10:01,544 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-server/9.2.19.v20160908
2017-01-31 20:10:01,545 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-servlet/9.2.19.v20160908
2017-01-31 20:10:01,545 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-servlets/9.2.19.v20160908
2017-01-31 20:10:01,545 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-util/9.2.19.v20160908
2017-01-31 20:10:01,545 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-util-ajax/9.2.19.v20160908
2017-01-31 20:10:01,545 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-webapp/9.2.19.v20160908
2017-01-31 20:10:01,545 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-api/9.2.19.v20160908
2017-01-31 20:10:01,546 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-client/9.2.19.v20160908
2017-01-31 20:10:01,546 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-common/9.2.19.v20160908
2017-01-31 20:10:01,546 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/javax-websocket-client-impl/9.2.19.v20160908
2017-01-31 20:10:01,546 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/javax-websocket-server-impl/9.2.19.v20160908
2017-01-31 20:10:01,546 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-server/9.2.19.v20160908
2017-01-31 20:10:01,546 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-servlet/9.2.19.v20160908
2017-01-31 20:10:01,546 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-xml/9.2.19.v20160908
2017-01-31 20:10:01,547 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.glassfish.web/javax.el/2.2.4
2017-01-31 20:10:01,547 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.jledit/core/0.2.1
2017-01-31 20:10:01,547 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ow2.asm/asm-all/5.0.4
2017-01-31 20:10:01,547 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/0.8.0
2017-01-31 20:10:01,547 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/0.8.0
2017-01-31 20:10:01,547 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.url/pax-url-war/2.5.2/jar/uber
2017-01-31 20:10:01,547 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.url/pax-url-wrap/2.5.2/jar/uber
2017-01-31 20:10:01,548 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-api/4.3.0
2017-01-31 20:10:01,548 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-deployer/4.3.0
2017-01-31 20:10:01,548 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-extender-war/4.3.0
2017-01-31 20:10:01,548 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/4.3.0
2017-01-31 20:10:01,548 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-jetty/4.3.0
2017-01-31 20:10:01,548 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-jsp/4.3.0
2017-01-31 20:10:01,549 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-runtime/4.3.0
2017-01-31 20:10:01,549 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-spi/4.3.0
2017-01-31 20:10:01,550 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Installing
bundles:
2017-01-31 20:10:01,550 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.enterprise/cdi-api/1.2
2017-01-31 20:10:01,553 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.interceptor/javax.interceptor-api/1.2
2017-01-31 20:10:01,555 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.mail/mail/1.4.4
2017-01-31 20:10:01,560 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.transaction/javax.transaction-api/1.2
2017-01-31 20:10:01,562 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.validation/validation-api/1.1.0.Final
2017-01-31 20:10:01,565 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.websocket/javax.websocket-api/1.1
2017-01-31 20:10:01,567 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:jline/jline/2.14.1
2017-01-31 20:10:01,570 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:joda-time/joda-time/2.9.2
2017-01-31 20:10:01,575 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.derby/0.3.8-SNAPSHOT
2017-01-31 20:10:01,578 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.derby/0.3.8-SNAPSHOT
2017-01-31 20:10:01,613 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.api/1.0.1
2017-01-31 20:10:01,615 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.cm/1.0.9
2017-01-31 20:10:01,618 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core/1.7.1
2017-01-31 20:10:01,622 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0
2017-01-31 20:10:01,624 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.api/1.1.0
2017-01-31 20:10:01,626 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.core/1.0.2
2017-01-31 20:10:01,629 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.legacy.support/1.0.0
2017-01-31 20:10:01,631 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.rmi/1.0.0
2017-01-31 20:10:01,633 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jndi/org.apache.aries.jndi.url/1.1.0
2017-01-31 20:10:01,636 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.proxy/org.apache.aries.proxy.api/1.0.1
2017-01-31 20:10:01,638 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.proxy/org.apache.aries.proxy.impl/1.0.5
2017-01-31 20:10:01,641 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/1.0.1
2017-01-31 20:10:01,643 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/2.1.0
2017-01-31 20:10:01,646 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/1.3.0
2017-01-31 20:10:01,650 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries/org.apache.aries.util/1.1.1
2017-01-31 20:10:01,654 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-codec/commons-codec/1.10
2017-01-31 20:10:01,661 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-pool/commons-pool/1.6
2017-01-31 20:10:01,664 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.components/geronimo-connector/3.1.1
2017-01-31 20:10:01,668 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/1.0
2017-01-31 20:10:01,670 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/1.0
2017-01-31 20:10:01,673 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-jaspic_1.0_spec/1.1
2017-01-31 20:10:01,676 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1
2017-01-31 20:10:01,678 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1
2017-01-31 20:10:01,681 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-osgi-registry/1.1
2017-01-31 20:10:01,683 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.http/org.apache.karaf.http.core/4.0.8
2017-01-31 20:10:01,686 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.jdbc/org.apache.karaf.jdbc.core/4.0.8
2017-01-31 20:10:01,689 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.jndi/org.apache.karaf.jndi.core/4.0.8
2017-01-31 20:10:01,692 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.shell/org.apache.karaf.shell.commands/4.0.8
2017-01-31 20:10:01,696 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.shell/org.apache.karaf.shell.console/4.0.8
2017-01-31 20:10:01,703 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.shell/org.apache.karaf.shell.core/4.0.8
2017-01-31 20:10:01,714 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.shell/org.apache.karaf.shell.table/4.0.8
2017-01-31 20:10:01,720 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.web/org.apache.karaf.web.core/4.0.8
2017-01-31 20:10:01,726 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/1.8.2_2
2017-01-31 20:10:01,739 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6
2017-01-31 20:10:01,741 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/1.8.0_1
2017-01-31 20:10:01,753 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/3.0_1
2017-01-31 20:10:01,757 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/4.12_1
2017-01-31 20:10:01,765 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.1.9.RELEASE_1
2017-01-31 20:10:01,779 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.1.9.RELEASE_1
2017-01-31 20:10:01,793 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1
2017-01-31 20:10:01,806 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.1.9.RELEASE_1
2017-01-31 20:10:01,811 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.1.9.RELEASE_1
2017-01-31 20:10:01,820 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.1.9.RELEASE_1
2017-01-31 20:10:01,826 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.1.9.RELEASE_1
2017-01-31 20:10:01,840 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-bundleutils/4.5
2017-01-31 20:10:01,848 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-finder/4.5
2017-01-31 20:10:01,858 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-naming/3.18
2017-01-31 20:10:01,861 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jdt.core.compiler/ecj/4.4
2017-01-31 20:10:01,882 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-client/9.2.19.v20160908
2017-01-31 20:10:01,890 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-continuation/9.2.19.v20160908
2017-01-31 20:10:01,896 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-http/9.2.19.v20160908
2017-01-31 20:10:01,908 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-io/9.2.19.v20160908
2017-01-31 20:10:01,923 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-jaas/9.2.19.v20160908
2017-01-31 20:10:01,926 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-jaspi/9.2.19.v20160908
2017-01-31 20:10:01,930 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-jmx/9.2.19.v20160908
2017-01-31 20:10:01,935 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-jndi/9.2.19.v20160908
2017-01-31 20:10:01,939 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-plus/9.2.19.v20160908
2017-01-31 20:10:01,941 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-rewrite/9.2.19.v20160908
2017-01-31 20:10:01,945 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-security/9.2.19.v20160908
2017-01-31 20:10:01,950 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-server/9.2.19.v20160908
2017-01-31 20:10:01,955 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-servlet/9.2.19.v20160908
2017-01-31 20:10:01,961 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-servlets/9.2.19.v20160908
2017-01-31 20:10:01,969 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-util/9.2.19.v20160908
2017-01-31 20:10:01,975 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-util-ajax/9.2.19.v20160908
2017-01-31 20:10:01,991 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-webapp/9.2.19.v20160908
2017-01-31 20:10:01,995 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-api/9.2.19.v20160908
2017-01-31 20:10:01,999 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-client/9.2.19.v20160908
2017-01-31 20:10:02,002 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-common/9.2.19.v20160908
2017-01-31 20:10:02,006 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/javax-websocket-client-impl/9.2.19.v20160908
2017-01-31 20:10:02,011 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/javax-websocket-server-impl/9.2.19.v20160908
2017-01-31 20:10:02,015 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-server/9.2.19.v20160908
2017-01-31 20:10:02,019 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty.websocket/websocket-servlet/9.2.19.v20160908
2017-01-31 20:10:02,022 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.eclipse.jetty/jetty-xml/9.2.19.v20160908
2017-01-31 20:10:02,025 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.glassfish.web/javax.el/2.2.4
2017-01-31 20:10:02,030 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.jledit/core/0.2.1
2017-01-31 20:10:02,036 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ow2.asm/asm-all/5.0.4
2017-01-31 20:10:02,040 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/0.8.0
2017-01-31 20:10:02,044 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/0.8.0
2017-01-31 20:10:02,046 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.url/pax-url-war/2.5.2/jar/uber
2017-01-31 20:10:02,058 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.url/pax-url-wrap/2.5.2/jar/uber
2017-01-31 20:10:02,065 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-api/4.3.0
2017-01-31 20:10:02,068 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-deployer/4.3.0
2017-01-31 20:10:02,070 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-extender-war/4.3.0
2017-01-31 20:10:02,075 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/4.3.0
2017-01-31 20:10:02,078 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-jetty/4.3.0
2017-01-31 20:10:02,087 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-jsp/4.3.0
2017-01-31 20:10:02,100 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-runtime/4.3.0
2017-01-31 20:10:02,105 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.web/pax-web-spi/4.3.0
2017-01-31 20:10:02,131 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Creating
configuration file
/Users/charliemordant/Documents/workspaces/osgiliathef/net.osgiliath.parent/net.osgiliath.samples/net.osgiliath.sample.webapp/net.osgiliath.sample.webapp.business/net.osgiliath.sample.webapp.business.impl/target/exam/unpack/7546823f-9c3b-4804-9385-111d74a7121c//etc/jetty.xml
2017-01-31 20:10:02,354 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Starting bundles:
2017-01-31 20:10:02,356 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.url.wrap/2.5.2
2017-01-31 20:10:02,363 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.specs.geronimo-osgi-registry/1.1.0
2017-01-31 20:10:02,372 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.util/1.1.1
2017-01-31 20:10:02,373 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.proxy.api/1.0.1
2017-01-31 20:10:02,373 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.objectweb.asm.all/5.0.4
2017-01-31 20:10:02,374 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.proxy.impl/1.0.5
2017-01-31 20:10:02,380 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.xbean.bundleutils/4.5.0
2017-01-31 20:10:02,381 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.blueprint.api/1.0.1
2017-01-31 20:10:02,381 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.blueprint.core/1.7.1
2017-01-31 20:10:02,512 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.blueprint.cm/1.0.9
2017-01-31 20:10:02,523 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.xbean.finder/4.5.0
2017-01-31 20:10:02,548 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.specs.geronimo-jaspic_1.0_spec/1.1.0
2017-01-31 20:10:02,551 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.util/9.2.19.v20160908
2017-01-31 20:10:02,552 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.http/9.2.19.v20160908
2017-01-31 20:10:02,553 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.io/9.2.19.v20160908
2017-01-31 20:10:02,554 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.jmx/9.2.19.v20160908
2017-01-31 20:10:02,555 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.server/9.2.19.v20160908
2017-01-31 20:10:02,555 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.security/9.2.19.v20160908
2017-01-31 20:10:02,556 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.jaspi/9.2.19.v20160908
2017-01-31 20:10:02,557 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.web.pax-web-spi/4.3.0
2017-01-31 20:10:02,559 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jdt.core.compiler.batch/3.10.0.v20140604-1726
2017-01-31 20:10:02,560 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.web.pax-web-jsp/4.3.0
2017-01-31 20:10:02,562 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.web.pax-web-runtime/4.3.0
2017-01-31 20:10:02,575 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.web.pax-web-api/4.3.0
2017-01-31 20:10:02,576 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.servlet/9.2.19.v20160908
2017-01-31 20:10:02,577 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.xml/9.2.19.v20160908
2017-01-31 20:10:02,578 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.jaas/9.2.19.v20160908
2017-01-31 20:10:02,579 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.websocket.api/9.2.19.v20160908
2017-01-31 20:10:02,580 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.websocket.common/9.2.19.v20160908
2017-01-31 20:10:02,582 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.websocket.client/9.2.19.v20160908
2017-01-31 20:10:02,582 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
javax.websocket-api/1.1.0
2017-01-31 20:10:02,583 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.websocket.javax.websocket/9.2.19.v20160908
2017-01-31 20:10:02,584 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.spifly.dynamic.bundle/1.0.1
2017-01-31 20:10:02,603 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.websocket.servlet/9.2.19.v20160908
2017-01-31 20:10:02,604 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.websocket.server/9.2.19.v20160908
2017-01-31 20:10:02,639 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.websocket.javax.websocket.server/9.2.19.v20160908
2017-01-31 20:10:02,643 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.client/9.2.19.v20160908
2017-01-31 20:10:02,645 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |   jline/2.14.1
2017-01-31 20:10:02,646 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.karaf.shell.table/4.0.8
2017-01-31 20:10:02,647 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.aopalliance/1.0.0.6
2017-01-31 20:10:02,647 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-core/4.1.9.RELEASE_1
2017-01-31 20:10:02,648 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-beans/4.1.9.RELEASE_1
2017-01-31 20:10:02,649 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-aop/4.1.9.RELEASE_1
2017-01-31 20:10:02,650 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-expression/4.1.9.RELEASE_1
2017-01-31 20:10:02,651 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1
2017-01-31 20:10:02,652 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.servlets/9.2.19.v20160908
2017-01-31 20:10:02,652 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-tx/4.1.9.RELEASE_1
2017-01-31 20:10:02,653 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.jledit.core/0.2.1
2017-01-31 20:10:02,656 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-context-support/4.1.9.RELEASE_1
2017-01-31 20:10:02,656 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.karaf.shell.core/4.0.8
2017-01-31 20:10:02,914 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.xbean.naming/3.18.0
2017-01-31 20:10:02,915 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.rewrite/9.2.19.v20160908
2017-01-31 20:10:02,916 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.url.war/2.5.2
2017-01-31 20:10:02,926 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.web.pax-web-extender-whiteboard/4.3.0
2017-01-31 20:10:02,940 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.util.ajax/9.2.19.v20160908
2017-01-31 20:10:02,941 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.jndi.api/1.1.0
2017-01-31 20:10:02,942 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.karaf.shell.commands/4.0.8
2017-01-31 20:10:03,000 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.webapp/9.2.19.v20160908
2017-01-31 20:10:03,002 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.jndi.url/1.1.0
2017-01-31 20:10:03,007 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.continuation/9.2.19.v20160908
2017-01-31 20:10:03,008 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.karaf.http.core/4.0.8
2017-01-31 20:10:03,018 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.karaf.web.core/4.0.8
2017-01-31 20:10:03,026 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.karaf.jndi.core/4.0.8
2017-01-31 20:10:03,053 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |   javax.mail/1.4.4
2017-01-31 20:10:03,054 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.jndi/9.2.19.v20160908
2017-01-31 20:10:03,055 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.eclipse.jetty.plus/9.2.19.v20160908
2017-01-31 20:10:03,056 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.web.pax-web-jetty/4.3.0
2017-01-31 20:10:03,060 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.jndi.rmi/1.0.0
2017-01-31 20:10:03,063 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.jndi.core/1.0.2
2017-01-31 20:10:03,073 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.jndi.legacy.support/1.0.0
2017-01-31 20:10:03,075 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.web.pax-web-deployer/4.3.0
2017-01-31 20:10:03,080 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.web.pax-web-extender-war/4.3.0
2017-01-31 20:10:03,113 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.junit/4.12.0.1
2017-01-31 20:10:03,116 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.wrappers.net.osgiliath.wrapper.derby/0.3.8.SNAPSHOT
2017-01-31 20:10:03,264 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.modules.net.osgiliath.module.derby/0.3.8.SNAPSHOT
2017-01-31 20:10:03,312 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.specs.geronimo-jpa_2.0_spec/1.1.0
2017-01-31 20:10:03,317 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.specs.geronimo-atinject_1.0_spec/1.0.0
2017-01-31 20:10:03,318 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
javax.interceptor-api/1.2.0
2017-01-31 20:10:03,319 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
javax.enterprise.cdi-api/1.2.0
2017-01-31 20:10:03,320 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
javax.transaction-api/1.2.0
2017-01-31 20:10:03,320 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.specs.geronimo-j2ee-connector_1.6_spec/1.0.0
2017-01-31 20:10:03,321 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
javax.validation.api/1.1.0.Final
2017-01-31 20:10:03,322 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.jdbc.pool.common/0.8.0
2017-01-31 20:10:03,323 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.commons.pool/1.6.0
2017-01-31 20:10:03,324 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.specs.geronimo-jms_1.1_spec/1.1.1
2017-01-31 20:10:03,325 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.manager/1.3.0
2017-01-31 20:10:03,457 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.components.geronimo-connector/3.1.1
2017-01-31 20:10:03,459 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.ant/1.8.2.2
2017-01-31 20:10:03,462 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.cglib/3.0.0.1
2017-01-31 20:10:03,463 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.karaf.jdbc.core/4.0.8
2017-01-31 20:10:03,480 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |   joda-time/2.9.2
2017-01-31 20:10:03,481 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.jdbc/2.1.0
2017-01-31 20:10:03,484 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.jdbc.pool.aries/0.8.0
2017-01-31 20:10:03,493 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.commons.codec/1.10.0
2017-01-31 20:10:03,494 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.aspectj/1.8.0.1
2017-01-31 20:10:03,495 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.glassfish.web.javax.el/2.2.4
2017-01-31 20:10:03,496 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Done.
2017-01-31 20:10:05,188 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Changes to
perform:
2017-01-31 20:10:05,189 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |   Region: root
2017-01-31 20:10:05,189 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |     Bundles to
install:
2017-01-31 20:10:05,189 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml/classmate/1.1.0
2017-01-31 20:10:05,190 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.core/jackson-annotations/2.7.2
2017-01-31 20:10:05,190 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.core/jackson-core/2.7.2
2017-01-31 20:10:05,190 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.core/jackson-databind/2.7.2
2017-01-31 20:10:05,190 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.7.2
2017-01-31 20:10:05,190 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.7.2
2017-01-31 20:10:05,191 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.google.guava/guava/18.0
2017-01-31 20:10:05,191 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.mysema.commons/mysema-commons-lang/0.2.4
2017-01-31 20:10:05,191 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.mysema.querydsl/querydsl-core/3.6.6
2017-01-31 20:10:05,191 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.mysema.querydsl/querydsl-jpa/3.6.6
2017-01-31 20:10:05,192 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.thoughtworks.paranamer/paranamer/2.8
2017-01-31 20:10:05,192 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:io.swagger/swagger-annotations/1.5.8
2017-01-31 20:10:05,192 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:io.swagger/swagger-core/1.5.8
2017-01-31 20:10:05,192 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:io.swagger/swagger-jaxrs/1.5.8
2017-01-31 20:10:05,193 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:io.swagger/swagger-models/1.5.8
2017-01-31 20:10:05,193 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.javassist/javassist/3.19.0-GA
2017-01-31 20:10:05,193 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.jmdns/jmdns/3.4.1
2017-01-31 20:10:05,194 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.json/javax.json-api/1.0
2017-01-31 20:10:05,194 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.activemq.jms.broker/0.3.8-SNAPSHOT
2017-01-31 20:10:05,194 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.camel.activemq/0.3.8-SNAPSHOT
2017-01-31 20:10:05,194 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.cdi.eager/0.3.8-SNAPSHOT
2017-01-31 20:10:05,194 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.cdi.tx/0.3.8-SNAPSHOT
2017-01-31 20:10:05,194 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.cxf.exception.handling/0.3.8-SNAPSHOT
2017-01-31 20:10:05,195 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.deltaspike.configadmin/0.3.8-SNAPSHOT
2017-01-31 20:10:05,195 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.jms.connectionfactories/0.3.8-SNAPSHOT
2017-01-31 20:10:05,195 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.spring-data-jpa/0.3.8-SNAPSHOT
2017-01-31 20:10:05,195 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.validation.osgi.services/0.3.8-SNAPSHOT
2017-01-31 20:10:05,196 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.cxf-integration-cdi/0.3.8-SNAPSHOT
2017-01-31 20:10:05,196 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:xom/xom/1.2.5
2017-01-31 20:10:05,196 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.activemq/activemq-blueprint/5.14.3
2017-01-31 20:10:05,196 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.activemq/0.3.8-SNAPSHOT
2017-01-31 20:10:05,196 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/2.3.0
2017-01-31 20:10:05,197 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/2.3.0
2017-01-31 20:10:05,197 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/2.3.0
2017-01-31 20:10:05,197 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/2.3.0
2017-01-31 20:10:05,197 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/1.1.1
2017-01-31 20:10:05,198 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/2.1.0
2017-01-31 20:10:05,198 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-blueprint/2.18.1
2017-01-31 20:10:05,198 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-catalog/2.18.1
2017-01-31 20:10:05,198 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-cdi/2.18.1
2017-01-31 20:10:05,198 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-commands-core/2.18.1
2017-01-31 20:10:05,199 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-core/2.18.1
2017-01-31 20:10:05,199 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-http/2.18.1
2017-01-31 20:10:05,199 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-http-common/2.18.1
2017-01-31 20:10:05,199 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-jackson/2.18.1
2017-01-31 20:10:05,200 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-jaxb/2.18.1
2017-01-31 20:10:05,200 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-jms/2.18.1
2017-01-31 20:10:05,200 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.camel-websocket/0.3.8-SNAPSHOT
2017-01-31 20:10:05,200 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-xmljson/2.18.1
2017-01-31 20:10:05,200 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-xstream/2.18.1
2017-01-31 20:10:05,200 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel.karaf/camel-karaf-commands/2.18.1
2017-01-31 20:10:05,201 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-collections/commons-collections/3.2.2
2017-01-31 20:10:05,201 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-daemon/commons-daemon/1.0.15
2017-01-31 20:10:05,201 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.commons/commons-jexl/2.0.1
2017-01-31 20:10:05,201 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-lang/commons-lang/2.6
2017-01-31 20:10:05,201 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.commons/commons-lang3/3.4
2017-01-31 20:10:05,201 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-net/commons-net/3.5
2017-01-31 20:10:05,202 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.commons/commons-pool2/2.4.2
2017-01-31 20:10:05,202 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-core/3.1.6
2017-01-31 20:10:05,202 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-databinding-jaxb/3.1.6
2017-01-31 20:10:05,202 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-frontend-jaxrs/3.1.6
2017-01-31 20:10:05,202 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-management/3.1.6
2017-01-31 20:10:05,202 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-rs-client/3.1.6
2017-01-31 20:10:05,203 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-rs-extension-providers/3.1.6
2017-01-31 20:10:05,203 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-rs-extension-search/3.1.6
2017-01-31 20:10:05,203 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-rs-service-description/3.1.6
2017-01-31 20:10:05,203 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-transports-http/3.1.6
2017-01-31 20:10:05,203 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-transports-http-jetty/3.1.6
2017-01-31 20:10:05,204 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf.karaf/cxf-karaf-commands/3.1.6
2017-01-31 20:10:05,204 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.deltaspike.core/deltaspike-core-api/1.5.2
2017-01-31 20:10:05,204 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.deltaspike.core/deltaspike-core-impl/1.5.2
2017-01-31 20:10:05,204 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.felix/org.apache.felix.coordinator/1.0.2
2017-01-31 20:10:05,205 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.felix/org.apache.felix.scr/2.0.2
2017-01-31 20:10:05,205 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.felix/org.apache.felix.scr.compat/1.0.4
2017-01-31 20:10:05,205 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1
2017-01-31 20:10:05,205 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.jms/org.apache.karaf.jms.core/4.0.8
2017-01-31 20:10:05,205 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.scr/org.apache.karaf.scr.command/4.0.8
2017-01-31 20:10:05,206 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.neethi/neethi/3.0.3
2017-01-31 20:10:05,206 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.openjpa/openjpa/2.4.2
2017-01-31 20:10:05,206 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-beanutils/1.8.3_1
2017-01-31 20:10:05,207 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/1.4_3
2017-01-31 20:10:05,207 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/3.1_7
2017-01-31 20:10:05,207 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5
2017-01-31 20:10:05,208 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ezmorph/1.0.6_1
2017-01-31 20:10:05,208 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.fastinfoset/1.2.13_1
2017-01-31 20:10:05,208 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.httpcore/4.0-alpha6_1
2017-01-31 20:10:05,209 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.2.11_1
2017-01-31 20:10:05,209 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/2.2.11_1
2017-01-31 20:10:05,209 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/1.1_4
2017-01-31 20:10:05,209 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/2.0.2_1
2017-01-31 20:10:05,209 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.json-lib/2.4_1
2017-01-31 20:10:05,210 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsoup/1.5.2_2
2017-01-31 20:10:05,210 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kxml2/2.3.0_2
2017-01-31 20:10:05,210 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oro/2.0.8_6
2017-01-31 20:10:05,210 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/0.9.9_2
2017-01-31 20:10:05,210 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.15.1_1
2017-01-31 20:10:05,211 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/4.1.9.RELEASE_1
2017-01-31 20:10:05,211 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/4.1.9.RELEASE_1
2017-01-31 20:10:05,211 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.1.9.RELEASE_1
2017-01-31 20:10:05,211 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/4.1.9.RELEASE_1
2017-01-31 20:10:05,211 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.velocity/1.7_6
2017-01-31 20:10:05,211 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/1.2_5
2017-01-31 20:10:05,212 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/1.1.4c_5
2017-01-31 20:10:05,212 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/1.4.8_1
2017-01-31 20:10:05,212 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr339-api-2.0.1/2.7.0
2017-01-31 20:10:05,212 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.ws.xmlschema/xmlschema-core/2.2.1
2017-01-31 20:10:05,212 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-asm5-shaded/4.5
2017-01-31 20:10:05,212 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-blueprint/3.18
2017-01-31 20:10:05,212 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-reflect/4.1
2017-01-31 20:10:05,213 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.xbean-spring/0.3.8-SNAPSHOT
2017-01-31 20:10:05,213 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.jettison/jettison/1.3.8
2017-01-31 20:10:05,213 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.hawtbuf/hawtbuf/1.11
2017-01-31 20:10:05,213 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.hawtbuf/hawtbuf-proto/1.11
2017-01-31 20:10:05,213 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.hawtdispatch/hawtdispatch/1.22
2017-01-31 20:10:05,213 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.hawtdispatch/hawtdispatch-transport/1.22
2017-01-31 20:10:05,213 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.mqtt-client/mqtt-client/1.12
2017-01-31 20:10:05,214 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.hibernate/hibernate-validator/5.2.4.Final
2017-01-31 20:10:05,214 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.hibernate.validator.cdi/0.3.8-SNAPSHOT
2017-01-31 20:10:05,214 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.jboss.logging/jboss-logging/3.1.4.GA
2017-01-31 20:10:05,214 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.jboss.weld/weld-osgi-bundle/2.2.11.Final
2017-01-31 20:10:05,214 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.base/ops4j-base-lang/1.5.0
2017-01-31 20:10:05,214 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-api/0.12.0
2017-01-31 20:10:05,215 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-extender/0.12.0
2017-01-31 20:10:05,215 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-extension/0.12.0
2017-01-31 20:10:05,215 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-spi/0.12.0
2017-01-31 20:10:05,215 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-web/0.12.0
2017-01-31 20:10:05,215 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-web-weld/0.12.0
2017-01-31 20:10:05,215 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-weld/0.12.0
2017-01-31 20:10:05,216 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.swissbox/pax-swissbox-core/1.8.2
2017-01-31 20:10:05,216 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.swissbox/pax-swissbox-lifecycle/1.8.2
2017-01-31 20:10:05,216 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.swissbox/pax-swissbox-tracker/1.8.2
2017-01-31 20:10:05,216 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.osgi/org.osgi.service.jpa/1.0.0
2017-01-31 20:10:05,216 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.springframework.data/spring-data-commons/1.9.0.RELEASE
2017-01-31 20:10:05,217 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.spring-data-jpa/0.3.8-SNAPSHOT
2017-01-31 20:10:05,217 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.woodstox/stax2-api/3.1.4
2017-01-31 20:10:05,217 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.woodstox/stax2-api/3.1.4
2017-01-31 20:10:05,217 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1
2017-01-31 20:10:05,217 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1
2017-01-31 20:10:05,218 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
wrap:mvn:org.apache.activemq/activemq-ra/5.14.3
2017-01-31 20:10:05,218 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
wrap:mvn:org.apache.httpcomponents/httpclient/4.5.2
2017-01-31 20:10:05,222 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Installing
bundles:
2017-01-31 20:10:05,223 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml/classmate/1.1.0
2017-01-31 20:10:05,234 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.core/jackson-annotations/2.7.2
2017-01-31 20:10:05,239 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.core/jackson-core/2.7.2
2017-01-31 20:10:05,245 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.core/jackson-databind/2.7.2
2017-01-31 20:10:05,264 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.7.2
2017-01-31 20:10:05,269 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.7.2
2017-01-31 20:10:05,273 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.google.guava/guava/18.0
2017-01-31 20:10:05,291 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.mysema.commons/mysema-commons-lang/0.2.4
2017-01-31 20:10:05,294 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.mysema.querydsl/querydsl-core/3.6.6
2017-01-31 20:10:05,300 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.mysema.querydsl/querydsl-jpa/3.6.6
2017-01-31 20:10:05,303 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:com.thoughtworks.paranamer/paranamer/2.8
2017-01-31 20:10:05,308 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:io.swagger/swagger-annotations/1.5.8
2017-01-31 20:10:05,310 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:io.swagger/swagger-core/1.5.8
2017-01-31 20:10:05,314 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:io.swagger/swagger-jaxrs/1.5.8
2017-01-31 20:10:05,316 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:io.swagger/swagger-models/1.5.8
2017-01-31 20:10:05,323 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.javassist/javassist/3.19.0-GA
2017-01-31 20:10:05,330 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.jmdns/jmdns/3.4.1
2017-01-31 20:10:05,333 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:javax.json/javax.json-api/1.0
2017-01-31 20:10:05,336 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.activemq.jms.broker/0.3.8-SNAPSHOT
2017-01-31 20:10:05,338 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.camel.activemq/0.3.8-SNAPSHOT
2017-01-31 20:10:05,342 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.cdi.eager/0.3.8-SNAPSHOT
2017-01-31 20:10:05,345 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.cdi.tx/0.3.8-SNAPSHOT
2017-01-31 20:10:05,348 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.cxf.exception.handling/0.3.8-SNAPSHOT
2017-01-31 20:10:05,351 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.deltaspike.configadmin/0.3.8-SNAPSHOT
2017-01-31 20:10:05,354 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.jms.connectionfactories/0.3.8-SNAPSHOT
2017-01-31 20:10:05,356 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.spring-data-jpa/0.3.8-SNAPSHOT
2017-01-31 20:10:05,360 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.modules/net.osgiliath.module.validation.osgi.services/0.3.8-SNAPSHOT
2017-01-31 20:10:05,363 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.cxf-integration-cdi/0.3.8-SNAPSHOT
2017-01-31 20:10:05,371 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:xom/xom/1.2.5
2017-01-31 20:10:05,376 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.activemq/activemq-blueprint/5.14.3
2017-01-31 20:10:05,381 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.activemq/0.3.8-SNAPSHOT
2017-01-31 20:10:05,416 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/2.3.0
2017-01-31 20:10:05,419 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/2.3.0
2017-01-31 20:10:05,421 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/2.3.0
2017-01-31 20:10:05,424 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/2.3.0
2017-01-31 20:10:05,427 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/1.1.1
2017-01-31 20:10:05,433 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/2.1.0
2017-01-31 20:10:05,436 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-blueprint/2.18.1
2017-01-31 20:10:05,444 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-catalog/2.18.1
2017-01-31 20:10:05,455 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-cdi/2.18.1
2017-01-31 20:10:05,461 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-commands-core/2.18.1
2017-01-31 20:10:05,464 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-core/2.18.1
2017-01-31 20:10:05,486 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-http/2.18.1
2017-01-31 20:10:05,488 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-http-common/2.18.1
2017-01-31 20:10:05,492 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-jackson/2.18.1
2017-01-31 20:10:05,495 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-jaxb/2.18.1
2017-01-31 20:10:05,502 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-jms/2.18.1
2017-01-31 20:10:05,509 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.camel-websocket/0.3.8-SNAPSHOT
2017-01-31 20:10:05,512 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-xmljson/2.18.1
2017-01-31 20:10:05,515 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel/camel-xstream/2.18.1
2017-01-31 20:10:05,518 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.camel.karaf/camel-karaf-commands/2.18.1
2017-01-31 20:10:05,523 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-collections/commons-collections/3.2.2
2017-01-31 20:10:05,533 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-daemon/commons-daemon/1.0.15
2017-01-31 20:10:05,535 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.commons/commons-jexl/2.0.1
2017-01-31 20:10:05,538 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-lang/commons-lang/2.6
2017-01-31 20:10:05,542 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.commons/commons-lang3/3.4
2017-01-31 20:10:05,546 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:commons-net/commons-net/3.5
2017-01-31 20:10:05,550 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.commons/commons-pool2/2.4.2
2017-01-31 20:10:05,552 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-core/3.1.6
2017-01-31 20:10:05,563 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-databinding-jaxb/3.1.6
2017-01-31 20:10:05,566 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-frontend-jaxrs/3.1.6
2017-01-31 20:10:05,573 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-management/3.1.6
2017-01-31 20:10:05,576 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-rs-client/3.1.6
2017-01-31 20:10:05,579 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-rs-extension-providers/3.1.6
2017-01-31 20:10:05,582 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-rs-extension-search/3.1.6
2017-01-31 20:10:05,585 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-rs-service-description/3.1.6
2017-01-31 20:10:05,589 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-transports-http/3.1.6
2017-01-31 20:10:05,594 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf/cxf-rt-transports-http-jetty/3.1.6
2017-01-31 20:10:05,599 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.cxf.karaf/cxf-karaf-commands/3.1.6
2017-01-31 20:10:05,601 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.deltaspike.core/deltaspike-core-api/1.5.2
2017-01-31 20:10:05,605 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.deltaspike.core/deltaspike-core-impl/1.5.2
2017-01-31 20:10:05,611 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.felix/org.apache.felix.coordinator/1.0.2
2017-01-31 20:10:05,613 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.felix/org.apache.felix.scr/2.0.2
2017-01-31 20:10:05,617 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.felix/org.apache.felix.scr.compat/1.0.4
2017-01-31 20:10:05,619 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1
2017-01-31 20:10:05,621 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.jms/org.apache.karaf.jms.core/4.0.8
2017-01-31 20:10:05,624 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.karaf.scr/org.apache.karaf.scr.command/4.0.8
2017-01-31 20:10:05,626 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.neethi/neethi/3.0.3
2017-01-31 20:10:05,628 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.openjpa/openjpa/2.4.2
2017-01-31 20:10:05,650 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-beanutils/1.8.3_1
2017-01-31 20:10:05,654 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/1.4_3
2017-01-31 20:10:05,658 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/3.1_7
2017-01-31 20:10:05,663 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6.1_5
2017-01-31 20:10:05,667 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ezmorph/1.0.6_1
2017-01-31 20:10:05,670 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.fastinfoset/1.2.13_1
2017-01-31 20:10:05,674 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.httpcore/4.0-alpha6_1
2017-01-31 20:10:05,678 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.2.11_1
2017-01-31 20:10:05,686 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/2.2.11_1
2017-01-31 20:10:05,707 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/1.1_4
2017-01-31 20:10:05,709 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/2.0.2_1
2017-01-31 20:10:05,714 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.json-lib/2.4_1
2017-01-31 20:10:05,717 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsoup/1.5.2_2
2017-01-31 20:10:05,720 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kxml2/2.3.0_2
2017-01-31 20:10:05,732 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oro/2.0.8_6
2017-01-31 20:10:05,735 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/0.9.9_2
2017-01-31 20:10:05,744 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.15.1_1
2017-01-31 20:10:05,746 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/4.1.9.RELEASE_1
2017-01-31 20:10:05,750 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/4.1.9.RELEASE_1
2017-01-31 20:10:05,754 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.1.9.RELEASE_1
2017-01-31 20:10:05,761 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/4.1.9.RELEASE_1
2017-01-31 20:10:05,766 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.velocity/1.7_6
2017-01-31 20:10:05,773 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/1.2_5
2017-01-31 20:10:05,776 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/1.1.4c_5
2017-01-31 20:10:05,780 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/1.4.8_1
2017-01-31 20:10:05,786 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr339-api-2.0.1/2.7.0
2017-01-31 20:10:05,791 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.ws.xmlschema/xmlschema-core/2.2.1
2017-01-31 20:10:05,794 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-asm5-shaded/4.5
2017-01-31 20:10:05,797 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-blueprint/3.18
2017-01-31 20:10:05,800 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.apache.xbean/xbean-reflect/4.1
2017-01-31 20:10:05,803 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.xbean-spring/0.3.8-SNAPSHOT
2017-01-31 20:10:05,807 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.jettison/jettison/1.3.8
2017-01-31 20:10:05,810 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.hawtbuf/hawtbuf/1.11
2017-01-31 20:10:05,812 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.hawtbuf/hawtbuf-proto/1.11
2017-01-31 20:10:05,814 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.hawtdispatch/hawtdispatch/1.22
2017-01-31 20:10:05,817 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.hawtdispatch/hawtdispatch-transport/1.22
2017-01-31 20:10:05,822 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.fusesource.mqtt-client/mqtt-client/1.12
2017-01-31 20:10:05,826 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.hibernate/hibernate-validator/5.2.4.Final
2017-01-31 20:10:05,833 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.hibernate.validator.cdi/0.3.8-SNAPSHOT
2017-01-31 20:10:05,838 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.jboss.logging/jboss-logging/3.1.4.GA
2017-01-31 20:10:05,842 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.jboss.weld/weld-osgi-bundle/2.2.11.Final
2017-01-31 20:10:05,862 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.base/ops4j-base-lang/1.5.0
2017-01-31 20:10:05,864 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-api/0.12.0
2017-01-31 20:10:05,866 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-extender/0.12.0
2017-01-31 20:10:05,868 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-extension/0.12.0
2017-01-31 20:10:05,872 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-spi/0.12.0
2017-01-31 20:10:05,874 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-web/0.12.0
2017-01-31 20:10:05,878 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-web-weld/0.12.0
2017-01-31 20:10:05,880 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.cdi/pax-cdi-weld/0.12.0
2017-01-31 20:10:05,884 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.swissbox/pax-swissbox-core/1.8.2
2017-01-31 20:10:05,887 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.swissbox/pax-swissbox-lifecycle/1.8.2
2017-01-31 20:10:05,890 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.ops4j.pax.swissbox/pax-swissbox-tracker/1.8.2
2017-01-31 20:10:05,893 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.osgi/org.osgi.service.jpa/1.0.0
2017-01-31 20:10:05,896 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.springframework.data/spring-data-commons/1.9.0.RELEASE
2017-01-31 20:10:05,902 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:net.osgiliath.wrappers/net.osgiliath.wrapper.spring-data-jpa/0.3.8-SNAPSHOT
2017-01-31 20:10:05,908 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.woodstox/stax2-api/3.1.4
2017-01-31 20:10:05,912 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.woodstox/stax2-api/3.1.4
2017-01-31 20:10:05,913 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1
2017-01-31 20:10:05,923 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1
2017-01-31 20:10:05,924 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
wrap:mvn:org.apache.activemq/activemq-ra/5.14.3
2017-01-31 20:10:05,926 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
wrap:mvn:org.apache.httpcomponents/httpclient/4.5.2
2017-01-31 20:10:05,962 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Creating
configuration file
/Users/charliemordant/Documents/workspaces/osgiliathef/net.osgiliath.parent/net.osgiliath.samples/net.osgiliath.sample.webapp/net.osgiliath.sample.webapp.business/net.osgiliath.sample.webapp.business.impl/target/exam/unpack/7546823f-9c3b-4804-9385-111d74a7121c//etc/net.osgiliath.feature.webservices.cfg
2017-01-31 20:10:05,965 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Creating
configuration file
/Users/charliemordant/Documents/workspaces/osgiliathef/net.osgiliath.parent/net.osgiliath.samples/net.osgiliath.sample.webapp/net.osgiliath.sample.webapp.business/net.osgiliath.sample.webapp.business.impl/target/exam/unpack/7546823f-9c3b-4804-9385-111d74a7121c/etc/org.ops4j.datasource-net.osgiliath.sample.webapp.cfg
2017-01-31 20:10:05,968 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Stopping bundles:
2017-01-31 20:10:05,969 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.jdbc.pool.aries/0.8.0
2017-01-31 20:10:05,972 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.components.geronimo-connector/3.1.1
2017-01-31 20:10:05,973 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.jdbc/2.1.0
2017-01-31 20:10:05,973 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.manager/1.3.0
2017-01-31 20:10:05,982 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-tx/4.1.9.RELEASE_1
2017-01-31 20:10:05,986 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-context-support/4.1.9.RELEASE_1
2017-01-31 20:10:05,987 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1
2017-01-31 20:10:05,987 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Refreshing
bundles:
2017-01-31 20:10:05,987 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.jdbc/2.1.0 (Should be wired to:
org.apache.xbean.blueprint/3.18.0 (through
[org.apache.aries.transaction.jdbc/2.1.0] osgi.wiring.package;
filter:="(&(osgi.wiring.package=org.apache.xbean.blueprint.context.impl)(version>=3.7.0)(!(version>=4.0.0)))";
resolution:=optional))
2017-01-31 20:10:05,987 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.manager/1.3.0 (Wired to
org.apache.servicemix.bundles.spring-tx/4.1.9.RELEASE_1 which is being
refreshed)
2017-01-31 20:10:05,987 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.components.geronimo-connector/3.1.1 (Wired to
org.apache.aries.transaction.manager/1.3.0 which is being refreshed)
2017-01-31 20:10:05,987 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1 (Should be
wired to: org.apache.servicemix.bundles.spring-orm/4.1.9.RELEASE_1 (through
[org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1]
osgi.wiring.package;
filter:="(&(osgi.wiring.package=org.springframework.orm.jpa.support)(version>=4.1.9.RELEASE)(!(version>=4.2.0)))";
resolution:=optional))
2017-01-31 20:10:05,988 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-context-support/4.1.9.RELEASE_1 (Wired
to org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1 which is
being refreshed)
2017-01-31 20:10:05,988 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-tx/4.1.9.RELEASE_1 (Wired to
org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1 which is being
refreshed)
2017-01-31 20:10:05,988 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.jdbc.pool.aries/0.8.0 (Wired to
org.apache.aries.transaction.jdbc/2.1.0 which is being refreshed)
2017-01-31 20:10:06,327 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Starting bundles:
2017-01-31 20:10:06,328 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.specs.jsr339-api-2.0.1/2.7.0
2017-01-31 20:10:06,343 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |   stax2-api/3.1.4
2017-01-31 20:10:06,344 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.jaxb-impl/2.2.11.1
2017-01-31 20:10:06,346 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.jaxb-xjc/2.2.11.1
2017-01-31 20:10:06,347 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
woodstox-core-asl/4.4.1
2017-01-31 20:10:06,364 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.base.lang/1.5.0
2017-01-31 20:10:06,366 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.xmlresolver/1.2.0.5
2017-01-31 20:10:06,370 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-tx/4.1.9.RELEASE_1
2017-01-31 20:10:06,371 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-orm/4.1.9.RELEASE_1
2017-01-31 20:10:06,372 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-context/4.1.9.RELEASE_1
2017-01-31 20:10:06,373 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-jdbc/4.1.9.RELEASE_1
2017-01-31 20:10:06,375 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.felix.scr/2.0.2
2017-01-31 20:10:06,413 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.felix.scr.compat/1.0.4
2017-01-31 20:10:06,417 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.fastinfoset/1.2.13.1
2017-01-31 20:10:06,418 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-context-support/4.1.9.RELEASE_1
2017-01-31 20:10:06,419 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-aspects/4.1.9.RELEASE_1
2017-01-31 20:10:06,420 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |   javassist/
3.19.0.GA
2017-01-31 20:10:06,422 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.karaf.scr.command/4.0.8
2017-01-31 20:10:06,430 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.codehaus.jettison.jettison/1.3.8
2017-01-31 20:10:06,432 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.reflections/0.9.9.2
2017-01-31 20:10:06,433 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.spring-jms/4.1.9.RELEASE_1
2017-01-31 20:10:06,434 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.ws.xmlschema.core/2.2.1
2017-01-31 20:10:06,436 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.fasterxml.jackson.core.jackson-annotations/2.7.2
2017-01-31 20:10:06,437 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
io.swagger.models/1.5.8
2017-01-31 20:10:06,438 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.commons.lang3/3.4.0
2017-01-31 20:10:06,439 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.fasterxml.jackson.core.jackson-core/2.7.2
2017-01-31 20:10:06,441 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.fasterxml.jackson.core.jackson-databind/2.7.2
2017-01-31 20:10:06,442 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.fasterxml.jackson.dataformat.jackson-dataformat-yaml/2.7.2
2017-01-31 20:10:06,444 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
io.swagger.annotations/1.5.8
2017-01-31 20:10:06,444 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
io.swagger.core/1.5.8
2017-01-31 20:10:06,446 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
io.swagger.jaxrs/1.5.8
2017-01-31 20:10:06,446 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.neethi/3.0.3
2017-01-31 20:10:06,450 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-rt-transports-http/3.1.6
2017-01-31 20:10:06,531 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-rt-frontend-jaxrs/3.1.6
2017-01-31 20:10:06,538 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-rt-transports-http-jetty/3.1.6
2017-01-31 20:10:06,554 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-rt-rs-extension-providers/3.1.6
2017-01-31 20:10:06,555 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-rt-rs-extension-search/3.1.6
2017-01-31 20:10:06,556 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-rt-databinding-jaxb/3.1.6
2017-01-31 20:10:06,557 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-rt-rs-client/3.1.6
2017-01-31 20:10:06,559 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-rt-rs-service-description/3.1.6
2017-01-31 20:10:06,560 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.karaf.cxf-karaf-commands/3.1.6
2017-01-31 20:10:06,626 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-core/3.1.6
2017-01-31 20:10:06,648 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.cxf.cxf-rt-management/3.1.6
2017-01-31 20:10:06,650 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.mysema.commons.lang/0.2.4
2017-01-31 20:10:06,651 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.mysema.querydsl.core/3.6.6
2017-01-31 20:10:06,652 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.mysema.querydsl.jpa/3.6.6
2017-01-31 20:10:06,653 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.xbean.reflect/4.1.0
2017-01-31 20:10:06,654 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.modules.net.osgiliath.module.spring-data-jpa/0.3.8.SNAPSHOT
2017-01-31 20:10:06,659 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.springframework.data.core/1.9.0.RELEASE
2017-01-31 20:10:06,664 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.springframework.data.jpa/1.7.0.RELEASE
2017-01-31 20:10:06,673 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.jdom/1.1.0.4
2017-01-31 20:10:06,674 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-core/2.18.1
2017-01-31 20:10:06,702 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-cdi/2.18.1
2017-01-31 20:10:06,703 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.xpp3/1.1.0.4c_5
2017-01-31 20:10:06,704 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.dom4j/1.6.1.5
2017-01-31 20:10:06,705 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.commons.lang/2.6.0
2017-01-31 20:10:06,706 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.jdom/2.0.2.1
2017-01-31 20:10:06,707 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.modules.net.osgiliath.module.cxf.exception.handling/0.3.8.SNAPSHOT
2017-01-31 20:10:06,708 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.commons.collections/3.2.2
2017-01-31 20:10:06,709 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.commons-beanutils/1.8.3.1
2017-01-31 20:10:06,710 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.jsoup/1.5.2.2
2017-01-31 20:10:06,711 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-catalog/2.18.1
2017-01-31 20:10:06,713 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.oro/2.0.8.6
2017-01-31 20:10:06,714 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.httpcore/4.0.0.alpha6_1
2017-01-31 20:10:06,715 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
javax.jmdns/3.4.1
2017-01-31 20:10:06,716 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.commons.net/3.5.0
2017-01-31 20:10:06,717 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.kxml2/2.3.0.2
2017-01-31 20:10:06,718 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.xstream/1.4.8.1
2017-01-31 20:10:06,719 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.specs.geronimo-j2ee-management_1.1_spec/1.0.1
2017-01-31 20:10:06,720 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-jms/2.18.1
2017-01-31 20:10:06,722 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.commons.daemon/1.0.15
2017-01-31 20:10:06,724 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.commons.pool2/2.4.2
2017-01-31 20:10:06,725 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
wrap_file__Users_charliemordant_.m2_repository_org_apache_httpcomponents_httpclient_4.5.2_httpclient-4.5.2.jar/0.0.0
2017-01-31 20:10:06,726 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.fusesource.hawtdispatch.hawtdispatch/1.22.0
2017-01-31 20:10:06,750 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.fusesource.hawtdispatch.hawtdispatch-transport/1.22.0
2017-01-31 20:10:06,751 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-http-common/2.18.1
2017-01-31 20:10:06,753 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.commons-httpclient/3.1.0.7
2017-01-31 20:10:06,754 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-http/2.18.1
2017-01-31 20:10:06,756 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-jaxb/2.18.1
2017-01-31 20:10:06,758 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.fusesource.mqtt-client.mqtt-client/1.12.0
2017-01-31 20:10:06,759 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.ezmorph/1.0.6.1
2017-01-31 20:10:06,760 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
nu.xom/1.2.5.osgi
2017-01-31 20:10:06,761 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.json-lib/2.4.0.1
2017-01-31 20:10:06,762 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-blueprint/2.18.1
2017-01-31 20:10:06,772 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.commons.jexl/2.0.1
2017-01-31 20:10:06,773 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-xstream/2.18.1
2017-01-31 20:10:06,774 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-xmljson/2.18.1
2017-01-31 20:10:06,776 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.wrappers.net.osgiliath.wrapper.cxf-integration-cdi/0.3.8.SNAPSHOT
2017-01-31 20:10:06,778 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
wrap_file__Users_charliemordant_.m2_repository_org_apache_activemq_activemq-ra_5.14.3_activemq-ra-5.14.3.jar/0.0.0
2017-01-31 20:10:06,779 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.fasterxml.jackson.module.jackson-module-jaxb-annotations/2.7.2
2017-01-31 20:10:06,780 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-jackson/2.18.1
2017-01-31 20:10:06,782 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-websocket/2.18.1
2017-01-31 20:10:06,783 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.fusesource.hawtbuf.hawtbuf-proto/1.11.0
2017-01-31 20:10:06,784 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.modules.net.osgiliath.module.activemq.jms.broker/0.3.8.SNAPSHOT
2017-01-31 20:10:07,682 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.modules.net.osgiliath.module.validation.osgi.services/0.3.8.SNAPSHOT
2017-01-31 20:10:07,818 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.fusesource.hawtbuf.hawtbuf/1.11.0
2017-01-31 20:10:07,820 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.activemq.activemq-osgi/5.14.3
2017-01-31 20:10:07,820 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.velocity/1.7.0.6
2017-01-31 20:10:07,824 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.modules.net.osgiliath.module.jms.connectionfactories/0.3.8.SNAPSHOT
2017-01-31 20:10:07,836 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
javax.json-api/1.0.0
2017-01-31 20:10:07,866 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.serp/1.15.1.1
2017-01-31 20:10:07,868 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.cdi.api/0.12.0
2017-01-31 20:10:07,869 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.swissbox.core/1.8.2
2017-01-31 20:10:07,871 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.cdi.spi/0.12.0
2017-01-31 20:10:07,872 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.cdi.extender/0.12.0
2017-01-31 20:10:07,941 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.deltaspike.core.deltaspike-core-api/1.5.2
2017-01-31 20:10:07,969 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.deltaspike.core.deltaspike-core-impl/1.5.2
2017-01-31 20:10:07,971 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.manager/1.3.0
2017-01-31 20:10:08,010 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.geronimo.components.geronimo-connector/3.1.1
2017-01-31 20:10:08,012 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.xbean.blueprint/3.18.0
2017-01-31 20:10:08,025 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.jdbc/2.1.0
2017-01-31 20:10:08,036 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.google.guava/18.0.0
2017-01-31 20:10:08,038 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.jboss.logging.jboss-logging/3.1.4.GA
2017-01-31 20:10:08,039 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.jboss.weld.osgi-bundle/2.2.11.Final
2017-01-31 20:10:08,068 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.felix.coordinator/1.0.2
2017-01-31 20:10:08,076 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.blueprint/1.1.1
2017-01-31 20:10:08,112 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.xbean.spring/4.5.0
2017-01-31 20:10:08,113 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |   classmate/1.1.0
2017-01-31 20:10:08,114 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
com.thoughtworks.paranamer/2.8.0
2017-01-31 20:10:08,115 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.hibernate.validator/5.2.4.Final
2017-01-31 20:10:08,116 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.camel-commands-core/2.18.1
2017-01-31 20:10:08,118 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.camel.karaf.camel-karaf-commands/2.18.1
2017-01-31 20:10:08,201 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.jpa.api/2.3.0
2017-01-31 20:10:08,202 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.swissbox.lifecycle/1.8.2
2017-01-31 20:10:08,203 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.modules.net.osgiliath.module.cdi.eager/0.3.8.SNAPSHOT
2017-01-31 20:10:08,205 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.xbean.asm5-shaded/4.5.0
2017-01-31 20:10:08,206 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.cdi.web/0.12.0
2017-01-31 20:10:08,208 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.osgi.service.jpa/1.0.0.201505202024
2017-01-31 20:10:08,209 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.swissbox.tracker/1.8.2
2017-01-31 20:10:08,211 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.karaf.jms.core/4.0.8
2017-01-31 20:10:08,272 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.servicemix.bundles.commons-dbcp/1.4.0.3
2017-01-31 20:10:08,275 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.openjpa/2.4.2
2017-01-31 20:10:08,289 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.cdi.extension/0.12.0
2017-01-31 20:10:08,291 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.jpa.blueprint/2.3.0
2017-01-31 20:10:08,293 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.jpa.support/2.3.0
2017-01-31 20:10:08,297 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.jpa.container/2.3.0
2017-01-31 20:10:08,304 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.jdbc.pool.aries/0.8.0
2017-01-31 20:10:08,311 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.apache.aries.transaction.blueprint/2.1.0
2017-01-31 20:10:08,331 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.cdi.web.weld/0.12.0
2017-01-31 20:10:08,338 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
org.ops4j.pax.cdi.weld/0.12.0
2017-01-31 20:10:10,041 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 |
net.osgiliath.modules.net.osgiliath.module.camel.activemq/0.3.8.SNAPSHOT
2017-01-31 20:10:10,075 | INFO  | pool-2-thread-1  | FeaturesServiceImpl
           | 8 - org.apache.karaf.features.core - 4.0.8 | Done.
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1176)[8:org.apache.karaf.features.core:4.0.8]
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:1074)[8:org.apache.karaf.features.core:4.0.8]



Best regards, and thank you for your attention


2017-01-31 17:55 GMT+01:00 Timothy Ward <ti...@paremus.com>:

> Hi Charlie,
>
> The problem with:
>
> [code]
> @Transactional (propagation=REQUIRED)
> private int txGet() {
> return 42;
> }
> [/code]
>
>
> Is that it requires either proxying or bytecode enhancement to happen,
> both of these techniques impose constraints on bundle startup and/or
> container choice. Neither of these things are very OSGi friendly,
> particularly if you’re trying to get hot-deployment of changes working.
> Whilst blueprint does offer some proxying, that behaviour isn’t available
> when using most of the other OSGi technologies that exist. Transaction
> Control was created to provide a clean, technology independent, mechanism
> for doing this.
>
> Another problem (not visible in your example, but one of the original
> reasons for this mail chain) is that in a modular system it can be very
> hard to identify which resources (DataSources, EntityManagers etc) will
> automatically enlist in an ongoing transaction. Also it can be incredibly
> hard to deal with these resources changing underneath you. Making mistakes
> here is very dangerous, as it looks like things are working, right up until
> you actually need the transaction! This is another way in which Transaction
> Control helps, by providing a clean, simple way to add/replace resources at
> runtime.
>
> All in all, I would recommend Transaction Control over other methods, but
> it’s definitely not essential to use it. If you have the right setup then
> then combining the JDBC Service, JTA Service and JPA Service will let you
> do pretty much the same things, just with more moving parts.
>
> Finally, I want to personally thank you for your book that has a place of
> choice in my library and brought me an unconditional love and interest for
> the OSGI technology!
>
>
> It’s always nice to hear when someone enjoys it, thank you :)
>
> Best Regards,
>
> Tim
>
> On 31 Jan 2017, at 15:35, Charlie Mordant <cm...@gmail.com> wrote:
>
> Hi Serge (sorry, I forgot to mention you in my last mail), hi Nick,
>
> Thanks for the tips Nick, I did not thought about putting breakpoints into
> Felix to see which bundle refresh what, will try it for sure.
>
> Tim, I personally see the proxy issue with @Transactional as only a
> technical/implementation issue: as a user, I really can't see the point
> that using:
>
> [code]
>
> private int txGet() {
>
> txControl.required(() -> {
>
> return 42;
>
> }
>
> }
> [/code]
>
> is more modularity-friendly than
>
> [code]
> @Transactional (propagation=REQUIRED)
> private int txGet() {
> return 42;
> }
> [/code]
>
> Finally, I want to personally thank you for your book that has a place of
> choice in my library and brought me an unconditional love and interest for
> the OSGI technology!
>
>
>
> Best regards to all :),
>
>
>
> 2017-01-31 15:35 GMT+01:00 Timothy Ward <ti...@paremus.com>:
>
>> Hi,
>>
>> Just to confirm, Tx Control doesn’t do @Transactional, but it does do JPA
>> without the JPATemplate (i.e. you can just do normal JPA access within a
>> managed block). As for bringing in Java EE guys, that’s great, but at least
>> some of their usage patterns have to change if you want hot-swap and start
>> up order independence to work!
>>
>> Regards,
>>
>> Tim Ward
>>
>> Enterprise OSGi in Action (http://www.manning.com/cummins)
>> Apache Aries PMC
>>
>>
>> On 31 Jan 2017, at 10:53, Charlie Mordant <cm...@gmail.com> wrote:
>>
>> Hi Timothy,
>>
>> Thank you for all your questions and interest.
>>
>> Concerning graphql, why not. I had in mind to provide a way to easily
>> bring HATEOAS (via spring-hateoas, or implementing some cxf interceptors),
>> but Graphql looks also promising, so why not, it'll be discussed...
>>
>> About the Aries Tx Control, it is a deliberate choice to not use it
>> (sorry :-S): the goal of Osgiliath is mainly to bring JavaEE guys into the
>> OSGi world without disturbing (most of) their habits, giving them
>> modularity, scalability and hot swap for free.
>> So in an ideal world, every service injection would be done with CDI
>> annotations (that's why we're using pax-cdi), persistence with JPA
>> annotations (without blueprint neither JPA template), transaction with
>> @Transactional ones (without blueprint too), and if we could have web
>> sessions/security context distributed accross bundles <3.
>>
>> Of course, life is made of tradeof, so if DS, Tx Control and JpaTemplate
>> are the only way to go the right way, Osgiliath will too.
>>
>> Best regards,
>>
>> 2017-01-31 10:50 GMT+01:00 Timothy Ward <ti...@paremus.com>:
>>
>>> Hi Charlie,
>>>
>>> One other question, have you tried using Aries Transaction Control? The
>>> big drivers for creating the Transaction Control Service were to simplify
>>> the service model and to handle dynamics better when performing
>>> transactional access to resources. The Aries implementation supports XA and
>>> is fully recoverable, so it should be very simple to use in your project.
>>>
>>> Regards,
>>>
>>> Tim
>>>
>>> On 31 Jan 2017, at 09:48, Charlie Mordant <cm...@gmail.com> wrote:
>>>
>>> Hi J.B.,
>>>
>>> Sure, it's always reproducible, I'll send it tonight (or tomorrow if I
>>> haven't the time to do it).
>>> I'm not in front of my computer for now, but will do my best as reactive
>>> as possible.
>>>
>>> Best Regards,
>>>
>>> 2017-01-31 10:41 GMT+01:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>>>
>>>> Hi Charlie,
>>>>
>>>> do you have the feature:install -v output ? It would help us to see the
>>>> cause of the refresh (optional import, or other).
>>>>
>>>> Thanks !
>>>>
>>>> Regards
>>>> JB
>>>>
>>>>
>>>> On 01/31/2017 10:39 AM, Charlie Mordant wrote:
>>>>
>>>>> Hi users of the world's best application server ever ;-),
>>>>>
>>>>> I'm struggling with feature resolution, and would like to have your
>>>>> POV.
>>>>>
>>>>> This issue is concerning, the JDBC, the Blueprint and the transactional
>>>>> feature.
>>>>>
>>>>> Here's the issue with feature resolution in my pax-exam test:
>>>>>
>>>>>
>>>>> * The jdbc-pool-aries feature starts first (+ the config one and the
>>>>> cfg
>>>>> \o/).
>>>>> * Then the transactional feature
>>>>> * The third feature thats start is the aries jndi one, so the two
>>>>> datasources (the XA and non-XA ones) are exposed (\o/\o/).
>>>>> * But the third that starts is the blueprint one, which starts the
>>>>> xbean-blueprint bundle.
>>>>> That blueprint bundle restarts the 'optional' resolutions of aries
>>>>> transaction manager, which then restarts aries-jdbc modules (optional
>>>>> res again) & config, which stops the datasource and starts another one.
>>>>> ​Unfortunately, at this point, my 'daos' bundle is already linked with
>>>>> a
>>>>> proxy to the 'old' datasource​.
>>>>>
>>>>> A way to fix it is to reference the 'transaction' feature in the
>>>>> 'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but
>>>>> it would then break some modularity.
>>>>>
>>>>> Have you got an idea on how to properly handle it?
>>>>>
>>>>> The actual xml of my features, they're slightly similar to the karaf
>>>>> ones, with bundle versions aligned:
>>>>> [code]
>>>>>
>>>>>      <feature name="osgiliath-pax-jdbc-pool-aries"
>>>>> description="Provides JDBC Pooling DataSourceFactory using Aries
>>>>> Transaction JDBC" version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}"
>>>>> resolver="(obr)">
>>>>>         <feature>osgiliath-pax-jdbc-spec</feature>
>>>>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.op
>>>>> s4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
>>>>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops
>>>>> 4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
>>>>>         <conditional>
>>>>>             <condition>osgiliath-aries-blueprint</condition>
>>>>>             <bundle dependency="true">mvn:org.apac
>>>>> he.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.
>>>>> version}</bundle>
>>>>>         </conditional>
>>>>>         <conditional>
>>>>>             <condition>osgiliath-transaction</condition>
>>>>>             <bundle dependency="true">mvn:org.apac
>>>>> he.aries.transaction/org.apache.aries.transaction.jdbc/${org
>>>>> .apache.aries.transaction_org.apache.aries.transaction.jdbc.
>>>>> version}</bundle>
>>>>>         </conditional>
>>>>>     </feature>
>>>>>
>>>>>
>>>>>     <feature name="osgiliath-transaction" description="OSGi
>>>>> Transaction Manager" version="${org.apache.aries.tr
>>>>> ansaction_org.apache.aries.transaction.manager.version}">
>>>>>         <config name="org.apache.aries.transaction" append="false">
>>>>>             aries.transaction.recoverable = true
>>>>>             aries.transaction.timeout = 600
>>>>>             aries.transaction.howl.logFileDir = ${karaf.data}/txlog
>>>>>             aries.transaction.howl.maxLogFiles = 2
>>>>>             aries.transaction.howl.maxBlocksPerFile = 512
>>>>>             aries.transaction.howl.bufferSize = 4
>>>>>         </config>
>>>>>         <feature version="${transaction-api_feature.version}"
>>>>> prerequisite="false" dependency="false">osgiliath-t
>>>>> ransaction-api</feature>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.aries/org.apache.aries.util/${org.apache.aries_org.apache
>>>>> .aries.util.version}</bundle>
>>>>>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>>>>> ansaction.manager/${org.apache.aries.transaction_org.apache.
>>>>> aries.transaction.manager.version}</bundle>
>>>>>         <conditional>
>>>>>             <condition>osgiliath-aries-blueprint</condition>
>>>>>             <bundle dependency="true">mvn:org.apac
>>>>> he.felix/org.apache.felix.coordinator/${org.apache.felix_org
>>>>> .apache.felix.coordinator.version}</bundle>
>>>>>             <bundle>mvn:org.apache.aries.transaction/
>>>>> org.apache.aries.transaction.blueprint/${org.apac
>>>>> he.aries.transaction_org.apache.aries.transaction.blueprint.
>>>>> version1}</bundle>
>>>>>             <bundle>mvn:org.apache.aries.transaction/
>>>>> org.apache.aries.transaction.blueprint/${org.apac
>>>>> he.aries.transaction_org.apache.aries.transaction.blueprint.
>>>>> version}</bundle>
>>>>>             <bundle dependency="true">mvn:org.apac
>>>>> he.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.
>>>>> version}</bundle>
>>>>>         </conditional>
>>>>>         <conditional>
>>>>>             <condition>osgiliath-spring</condition>
>>>>>             <feature version="${org.apache.servicemix.bundles.spring.version}"
>>>>> dependency="true">osgiliath-spring-tx</feature>
>>>>>         </conditional>
>>>>>     </feature>
>>>>>
>>>>> ********************************************************* Additional
>>>>> informations ******************************************
>>>>>
>>>>>
>>>>> <feature name="osgiliath-transaction-api"
>>>>> version="${transaction-api_feature.version}">
>>>>>         <bundle dependency="true">mvn:javax.in
>>>>> terceptor/javax.interceptor-api/${javax.interceptor_javax.in
>>>>> terceptor-api.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.ge
>>>>> ronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
>>>>>         <bundle dependency="true">mvn:javax.el
>>>>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>>>         <bundle dependency="true">mvn:javax.en
>>>>> terprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
>>>>>         <bundle>mvn:javax.transaction/javax.transaction-api/${javax.
>>>>> transaction_javax.transaction-api.version}</bundle>
>>>>>     </feature>
>>>>>  <feature name="osgiliath-persistence-api" description="Persistence
>>>>> API" version="${persistence-api_feature.version}">
>>>>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/
>>>>> ${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
>>>>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry
>>>>> /${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
>>>>>     </feature>
>>>>>  <feature name="osgiliath-jpa" description="OSGi Persistence
>>>>> Container" version="${org.apache.aries.jpa.version}">
>>>>>         <feature version="${transaction-api_feature.version}"
>>>>> prerequisite="false" dependency="false">osgiliath-t
>>>>> ransaction-api</feature>
>>>>>         <feature version="${persistence-api_feature.version}"
>>>>> prerequisite="false" dependency="false">osgiliath-p
>>>>> ersistence-api</feature>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.felix/org.apache.felix.coordinator/${org.apache.felix_org
>>>>> .apache.felix.coordinator.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.osgi
>>>>> /org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.vers
>>>>> ion}</bundle>
>>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${
>>>>> org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.contai
>>>>> ner/${org.apache.aries.jpa_org.apache.aries.jpa.container.ve
>>>>> rsion}</bundle>
>>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.suppor
>>>>> t/${org.apache.aries.jpa_org.apache.aries.jpa.support.versio
>>>>> n}</bundle>
>>>>>         <conditional>
>>>>>             <condition>osgiliath-aries-blueprint</condition>
>>>>>             <bundle>mvn:org.apache.aries.j
>>>>> pa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.
>>>>> apache.aries.jpa.blueprint.version}</bundle>
>>>>>         </conditional>
>>>>>     </feature>
>>>>>
>>>>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA
>>>>> 2.4.x persistence engine support" version="${org.apache.openjpa.
>>>>> version}">
>>>>>         <feature prerequisite="false" dependency="false">osgiliath-j
>>>>> ndi</feature>
>>>>>         <feature version="${transaction-api_feature.version}"
>>>>> prerequisite="false" dependency="false">osgiliath-t
>>>>> ransaction-api</feature>
>>>>>         <feature version="${persistence-api_feature.version}"
>>>>> prerequisite="false" dependency="false">osgiliath-p
>>>>> ersistence-api</feature>
>>>>>         <bundle dependency="true">mvn:javax.se
>>>>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve
>>>>> rsion}</bundle>
>>>>>         <bundle dependency="true">mvn:javax.el
>>>>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>>>         <bundle dependency="true">mvn:commons-
>>>>> lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>>>>         <bundle dependency="true">mvn:commons-
>>>>> collections/commons-collections/${commons-collections_common
>>>>> s-collections.version}</bundle>
>>>>>         <bundle dependency="true">mvn:commons-
>>>>> pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.servicemix.bundles/org.apache.servicemix.bundles.commons-
>>>>> dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.b
>>>>> undles.commons-dbcp.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.servicemix.bundles/org.apache.servicemix.bundles.ant/${or
>>>>> g.apache.servicemix.bundles_org.apache.servicemix.bundles.an
>>>>> t.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.servicemix.bundles/org.apache.servicemix.bundles.serp/${o
>>>>> rg.apache.servicemix.bundles_org.apache.servicemix.bundles.s
>>>>> erp.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronim
>>>>> o.specs_geronimo-jms_1.1_spec.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-sha
>>>>> ded.version}</bundle>
>>>>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_
>>>>> openjpa.version}</bundle>
>>>>>     </feature>
>>>>> <feature name="osgiliath-connector" version="${org.apache.geronimo
>>>>> .components_geronimo-connector.version}" description="OSGi Support
>>>>> for JCA Connector 1.6" resolver="(obr)">
>>>>>         <feature version="${org.apache.aries.tr
>>>>> ansaction_org.apache.aries.transaction.manager.version}">osg
>>>>> iliath-transaction</feature>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apa
>>>>> che.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
>>>>>         <bundle dependency="true">mvn:javax.va
>>>>> lidation/validation-api/${javax.validation_validation-api.ve
>>>>> rsion}</bundle>
>>>>>         <bundle>mvn:org.apache.geronimo.components/geronimo-connecto
>>>>> r/${org.apache.geronimo.components_geronimo-connector.versio
>>>>> n}</bundle>
>>>>>     </feature>
>>>>>  <feature name="osgiliath-jpa" description="OSGi Persistence
>>>>> Container" version="${org.apache.aries.jpa.version}">
>>>>>         <feature version="${transaction-api_feature.version}"
>>>>> prerequisite="false" dependency="false">osgiliath-t
>>>>> ransaction-api</feature>
>>>>>         <feature version="${persistence-api_feature.version}"
>>>>> prerequisite="false" dependency="false">osgiliath-p
>>>>> ersistence-api</feature>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.felix/org.apache.felix.coordinator/${org.apache.felix_org
>>>>> .apache.felix.coordinator.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.osgi
>>>>> /org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.vers
>>>>> ion}</bundle>
>>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${
>>>>> org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.contai
>>>>> ner/${org.apache.aries.jpa_org.apache.aries.jpa.container.ve
>>>>> rsion}</bundle>
>>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.suppor
>>>>> t/${org.apache.aries.jpa_org.apache.aries.jpa.support.versio
>>>>> n}</bundle>
>>>>>         <conditional>
>>>>>             <condition>osgiliath-aries-blueprint</condition>
>>>>>             <bundle>mvn:org.apache.aries.j
>>>>> pa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.
>>>>> apache.aries.jpa.blueprint.version}</bundle>
>>>>>         </conditional>
>>>>>     </feature>
>>>>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA
>>>>> 2.4.x persistence engine support" version="${org.apache.openjpa.
>>>>> version}">
>>>>>         <details>Enable Apache OpenJPA as persistence engine.</details>
>>>>>         <feature prerequisite="false" dependency="false">osgiliath-j
>>>>> ndi</feature>
>>>>>         <feature version="${transaction-api_feature.version}"
>>>>> prerequisite="false" dependency="false">osgiliath-t
>>>>> ransaction-api</feature>
>>>>>         <feature version="${persistence-api_feature.version}"
>>>>> prerequisite="false" dependency="false">osgiliath-p
>>>>> ersistence-api</feature>
>>>>>         <bundle dependency="true">mvn:javax.se
>>>>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve
>>>>> rsion}</bundle>
>>>>>         <bundle dependency="true">mvn:javax.el
>>>>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>>>         <bundle dependency="true">mvn:commons-
>>>>> lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>>>>         <bundle dependency="true">mvn:commons-
>>>>> collections/commons-collections/${commons-collections_common
>>>>> s-collections.version}</bundle>
>>>>>         <bundle dependency="true">mvn:commons-
>>>>> pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.servicemix.bundles/org.apache.servicemix.bundles.commons-
>>>>> dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.b
>>>>> undles.commons-dbcp.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.servicemix.bundles/org.apache.servicemix.bundles.ant/${or
>>>>> g.apache.servicemix.bundles_org.apache.servicemix.bundles.an
>>>>> t.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.servicemix.bundles/org.apache.servicemix.bundles.serp/${o
>>>>> rg.apache.servicemix.bundles_org.apache.servicemix.bundles.s
>>>>> erp.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronim
>>>>> o.specs_geronimo-jms_1.1_spec.version}</bundle>
>>>>>         <bundle dependency="true">mvn:org.apac
>>>>> he.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-sha
>>>>> ded.version}</bundle>
>>>>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_
>>>>> openjpa.version}</bundle>
>>>>>     </feature>
>>>>>
>>>>>
>>>>>
>>>>> <feature name='osgiliath-persistence' version='${project.version}'
>>>>> resolver="(obr)" start-level="41" description="Java persistence API stack" >
>>>>>                 <bundle dependency='true'>mvn:javax.se
>>>>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve
>>>>> rsion}</bundle>
>>>>>                 <feature version="${project.version}">o
>>>>> sgiliath-jdbc</feature>
>>>>>                 <feature version="${org.apache.geronimo
>>>>> .components_geronimo-connector.version}">osgiliath-connector</feature>
>>>>>                 <feature version="${org.apache.aries.jp
>>>>> a.version}">osgiliath-jpa</feature>
>>>>>                 <bundle dependency='true'>mvn:org.osgi
>>>>> /org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.versio
>>>>> n}</bundle>
>>>>>                 <feature version="${org.apache.openjpa.
>>>>> version}">osgiliath-openjpa</feature>
>>>>>                 <feature version="${org.apache.karaf.fe
>>>>> atures_standard.version}">osgiliath-aries-blueprint</feature>
>>>>>                 <bundle>mvn:org.apache.xbean/x
>>>>> bean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
>>>>>                 <feature version="${project.version}">o
>>>>> sgiliath-spring-data-jpa</feature>
>>>>>                 <conditional>
>>>>>                         <condition>osgiliath-rest-mana
>>>>> gement</condition>
>>>>>                         <bundle start-level="35"
>>>>> dependency="true">mvn:io.swagger/swagger-annotations/${io.sw
>>>>> agger_swagger-annotations.version}</bundle>
>>>>>                 </conditional>
>>>>>     </feature>
>>>>>
>>>>> [/code]
>>>>>
>>>>>
>>>>> ​Best regards,​ and keep up bringing the OSGI dream comes true ;-)
>>>>>
>>>>>
>>>>> --
>>>>> Charlie Mordant
>>>>>
>>>>> Full OSGI/EE stack made with Karaf:
>>>>> https://github.com/OsgiliathEnterprise/net.osgiliath.parent
>>>>>
>>>>
>>>> --
>>>> Jean-Baptiste Onofré
>>>> jbonofre@apache.org
>>>> http://blog.nanthrax.net
>>>> Talend - http://www.talend.com
>>>>
>>>
>>>
>>>
>>> --
>>> Charlie Mordant
>>>
>>> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEn
>>> terprise/net.osgiliath.parent
>>>
>>>
>>>
>>
>>
>> --
>> Charlie Mordant
>>
>> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEn
>> terprise/net.osgiliath.parent
>>
>>
>>
>
>
> --
> Charlie Mordant
>
> Full OSGI/EE stack made with Karaf: https://github.com/
> OsgiliathEnterprise/net.osgiliath.parent
>
>
>


-- 
Charlie Mordant

Full OSGI/EE stack made with Karaf:
https://github.com/OsgiliathEnterprise/net.osgiliath.parent

Re: Bundle restart are hard to tackle

Posted by Timothy Ward <ti...@paremus.com>.
Hi Charlie,

The problem with:

> [code]
> @Transactional (propagation=REQUIRED)
> private int txGet() {
> return 42;
> }
> [/code]


Is that it requires either proxying or bytecode enhancement to happen, both of these techniques impose constraints on bundle startup and/or container choice. Neither of these things are very OSGi friendly, particularly if you’re trying to get hot-deployment of changes working. Whilst blueprint does offer some proxying, that behaviour isn’t available when using most of the other OSGi technologies that exist. Transaction Control was created to provide a clean, technology independent, mechanism for doing this.

Another problem (not visible in your example, but one of the original reasons for this mail chain) is that in a modular system it can be very hard to identify which resources (DataSources, EntityManagers etc) will automatically enlist in an ongoing transaction. Also it can be incredibly hard to deal with these resources changing underneath you. Making mistakes here is very dangerous, as it looks like things are working, right up until you actually need the transaction! This is another way in which Transaction Control helps, by providing a clean, simple way to add/replace resources at runtime.

All in all, I would recommend Transaction Control over other methods, but it’s definitely not essential to use it. If you have the right setup then then combining the JDBC Service, JTA Service and JPA Service will let you do pretty much the same things, just with more moving parts.

> Finally, I want to personally thank you for your book that has a place of choice in my library and brought me an unconditional love and interest for the OSGI technology!


It’s always nice to hear when someone enjoys it, thank you :)

Best Regards,

Tim

> On 31 Jan 2017, at 15:35, Charlie Mordant <cm...@gmail.com> wrote:
> 
> Hi Serge (sorry, I forgot to mention you in my last mail), hi Nick,
> 
> Thanks for the tips Nick, I did not thought about putting breakpoints into Felix to see which bundle refresh what, will try it for sure.
> 
> Tim, I personally see the proxy issue with @Transactional as only a technical/implementation issue: as a user, I really can't see the point that using:
> 
> [code]
> 
> private int txGet() {
> txControl.required(() -> {
> return 42;
> }
> }
> [/code]
> 
> is more modularity-friendly than 
> 
> [code]
> @Transactional (propagation=REQUIRED)
> private int txGet() {
> return 42;
> }
> [/code]
> 
> Finally, I want to personally thank you for your book that has a place of choice in my library and brought me an unconditional love and interest for the OSGI technology!
> 
> 
> 
> Best regards to all :),
> 
> 
> 
> 2017-01-31 15:35 GMT+01:00 Timothy Ward <tim.ward@paremus.com <ma...@paremus.com>>:
> Hi,
> 
> Just to confirm, Tx Control doesn’t do @Transactional, but it does do JPA without the JPATemplate (i.e. you can just do normal JPA access within a managed block). As for bringing in Java EE guys, that’s great, but at least some of their usage patterns have to change if you want hot-swap and start up order independence to work!
> 
> Regards,
> 
> Tim Ward
> 
> Enterprise OSGi in Action (http://www.manning.com/cummins <http://www.manning.com/cummins>)
> Apache Aries PMC
> 
> 
>> On 31 Jan 2017, at 10:53, Charlie Mordant <cmordant1@gmail.com <ma...@gmail.com>> wrote:
>> 
>> Hi Timothy,
>> 
>> Thank you for all your questions and interest.
>> 
>> Concerning graphql, why not. I had in mind to provide a way to easily bring HATEOAS (via spring-hateoas, or implementing some cxf interceptors), but Graphql looks also promising, so why not, it'll be discussed...
>> 
>> About the Aries Tx Control, it is a deliberate choice to not use it (sorry :-S): the goal of Osgiliath is mainly to bring JavaEE guys into the OSGi world without disturbing (most of) their habits, giving them modularity, scalability and hot swap for free.
>> So in an ideal world, every service injection would be done with CDI annotations (that's why we're using pax-cdi), persistence with JPA annotations (without blueprint neither JPA template), transaction with @Transactional ones (without blueprint too), and if we could have web sessions/security context distributed accross bundles <3.
>> 
>> Of course, life is made of tradeof, so if DS, Tx Control and JpaTemplate are the only way to go the right way, Osgiliath will too.
>> 
>> Best regards,
>> 
>> 2017-01-31 10:50 GMT+01:00 Timothy Ward <tim.ward@paremus.com <ma...@paremus.com>>:
>> Hi Charlie,
>> 
>> One other question, have you tried using Aries Transaction Control? The big drivers for creating the Transaction Control Service were to simplify the service model and to handle dynamics better when performing transactional access to resources. The Aries implementation supports XA and is fully recoverable, so it should be very simple to use in your project.
>> 
>> Regards,
>> 
>> Tim
>> 
>>> On 31 Jan 2017, at 09:48, Charlie Mordant <cmordant1@gmail.com <ma...@gmail.com>> wrote:
>>> 
>>> Hi J.B.,
>>> 
>>> Sure, it's always reproducible, I'll send it tonight (or tomorrow if I haven't the time to do it).
>>> I'm not in front of my computer for now, but will do my best as reactive as possible.
>>> 
>>> Best Regards,
>>> 
>>> 2017-01-31 10:41 GMT+01:00 Jean-Baptiste Onofré <jb@nanthrax.net <ma...@nanthrax.net>>:
>>> Hi Charlie,
>>> 
>>> do you have the feature:install -v output ? It would help us to see the cause of the refresh (optional import, or other).
>>> 
>>> Thanks !
>>> 
>>> Regards
>>> JB
>>> 
>>> 
>>> On 01/31/2017 10:39 AM, Charlie Mordant wrote:
>>> Hi users of the world's best application server ever ;-),
>>> 
>>> I'm struggling with feature resolution, and would like to have your POV.
>>> 
>>> This issue is concerning, the JDBC, the Blueprint and the transactional
>>> feature.
>>> 
>>> Here's the issue with feature resolution in my pax-exam test:
>>> 
>>> 
>>> * The jdbc-pool-aries feature starts first (+ the config one and the cfg
>>> \o/).
>>> * Then the transactional feature
>>> * The third feature thats start is the aries jndi one, so the two
>>> datasources (the XA and non-XA ones) are exposed (\o/\o/).
>>> * But the third that starts is the blueprint one, which starts the
>>> xbean-blueprint bundle.
>>> That blueprint bundle restarts the 'optional' resolutions of aries
>>> transaction manager, which then restarts aries-jdbc modules (optional
>>> res again) & config, which stops the datasource and starts another one.
>>> ​Unfortunately, at this point, my 'daos' bundle is already linked with a
>>> proxy to the 'old' datasource​.
>>> 
>>> A way to fix it is to reference the 'transaction' feature in the
>>> 'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but
>>> it would then break some modularity.
>>> 
>>> Have you got an idea on how to properly handle it?
>>> 
>>> The actual xml of my features, they're slightly similar to the karaf
>>> ones, with bundle versions aligned:
>>> [code]
>>> 
>>>      <feature name="osgiliath-pax-jdbc-pool-aries" description="Provides JDBC Pooling DataSourceFactory using Aries Transaction JDBC" version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}" resolver="(obr)">
>>>         <feature>osgiliath-pax-jdbc-spec</feature>
>>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.ops4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
>>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
>>>         <conditional>
>>>             <condition>osgiliath-aries-blueprint</condition>
>>>             <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>>>         </conditional>
>>>         <conditional>
>>>             <condition>osgiliath-transaction</condition>
>>>             <bundle dependency="true">mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/${org.apache.aries.transaction_org.apache.aries.transaction.jdbc.version}</bundle>
>>>         </conditional>
>>>     </feature>
>>> 
>>> 
>>>     <feature name="osgiliath-transaction" description="OSGi Transaction Manager" version="${org.apache.aries.tr <http://org.apache.aries.tr/>ansaction_org.apache.aries.transaction.manager.version}">
>>>         <config name="org.apache.aries.transaction" append="false">
>>>             aries.transaction.recoverable = true
>>>             aries.transaction.timeout = 600
>>>             aries.transaction.howl.logFileDir = ${karaf.data}/txlog
>>>             aries.transaction.howl.maxLogFiles = 2
>>>             aries.transaction.howl.maxBlocksPerFile = 512
>>>             aries.transaction.howl.bufferSize = 4
>>>         </config>
>>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>>         <bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/${org.apache.aries_org.apache.aries.util.version}</bundle>
>>>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr <http://org.apache.aries.tr/>ansaction.manager/${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}</bundle>
>>>         <conditional>
>>>             <condition>osgiliath-aries-blueprint</condition>
>>>             <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>>>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr <http://org.apache.aries.tr/>ansaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version1}</bundle>
>>>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr <http://org.apache.aries.tr/>ansaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version}</bundle>
>>>             <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>>>         </conditional>
>>>         <conditional>
>>>             <condition>osgiliath-spring</condition>
>>>             <feature version="${org.apache.servicemix.bundles.spring.version}" dependency="true">osgiliath-spring-tx</feature>
>>>         </conditional>
>>>     </feature>
>>> 
>>> ********************************************************* Additional informations ******************************************
>>> 
>>> 
>>> <feature name="osgiliath-transaction-api" version="${transaction-api_feature.version}">
>>>         <bundle dependency="true">mvn:javax.in <http://javax.in/>terceptor/javax.interceptor-api/${javax.interceptor_javax.in <http://javax.interceptor_javax.in/>terceptor-api.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.ge <http://org.apache.ge/>ronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
>>>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>         <bundle dependency="true">mvn:javax.enterprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
>>>         <bundle>mvn:javax.transaction/javax.transaction-api/${javax.transaction_javax.transaction-api.version}</bundle>
>>>     </feature>
>>>  <feature name="osgiliath-persistence-api" description="Persistence API" version="${persistence-api_feature.version}">
>>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
>>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry/${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
>>>     </feature>
>>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jp <http://org.apache.aries.jp/>a.version}">
>>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>>>         <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>>>         <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.ve <http://apache.aries.jpa.container.ve/>rsion}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>>         <conditional>
>>>             <condition>osgiliath-aries-blueprint</condition>
>>>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.ve <http://apache.aries.jpa.blueprint.ve/>rsion}</bundle>
>>>         </conditional>
>>>     </feature>
>>> 
>>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
>>>         <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
>>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>>>         <bundle dependency="true">mvn:javax.se <http://javax.se/>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve <http://x.servlet_javax.servlet-api.ve/>rsion}</bundle>
>>>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.an <http://g.apache.servicemix.bundles.an/>t.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>>>     </feature>
>>> <feature name="osgiliath-connector" version="${org.apache.geronimo.components_geronimo-connector.version}" description="OSGi Support for JCA Connector 1.6" resolver="(obr)">
>>>         <feature version="${org.apache.aries.tr <http://org.apache.aries.tr/>ansaction_org.apache.aries.transaction.manager.version}">osgiliath-transaction</feature>
>>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apache.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
>>>         <bundle dependency="true">mvn:javax.va <http://javax.va/>lidation/validation-api/${javax.validation_validation-api.ve <http://x.validation_validation-api.ve/>rsion}</bundle>
>>>         <bundle>mvn:org.apache.geronimo.components/geronimo-connector/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
>>>     </feature>
>>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jp <http://org.apache.aries.jp/>a.version}">
>>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>>>         <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>>>         <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.ve <http://apache.aries.jpa.container.ve/>rsion}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>>         <conditional>
>>>             <condition>osgiliath-aries-blueprint</condition>
>>>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.ve <http://apache.aries.jpa.blueprint.ve/>rsion}</bundle>
>>>         </conditional>
>>>     </feature>
>>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
>>>         <details>Enable Apache OpenJPA as persistence engine.</details>
>>>         <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
>>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>>>         <bundle dependency="true">mvn:javax.se <http://javax.se/>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve <http://x.servlet_javax.servlet-api.ve/>rsion}</bundle>
>>>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.an <http://g.apache.servicemix.bundles.an/>t.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>>>     </feature>
>>> 
>>> 
>>> 
>>> <feature name='osgiliath-persistence' version='${project.version}' resolver="(obr)" start-level="41" description="Java persistence API stack" >
>>>                 <bundle dependency='true'>mvn:javax.se <http://javax.se/>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve <http://x.servlet_javax.servlet-api.ve/>rsion}</bundle>
>>>                 <feature version="${project.version}">osgiliath-jdbc</feature>
>>>                 <feature version="${org.apache.geronimo.components_geronimo-connector.version}">osgiliath-connector</feature>
>>>                 <feature version="${org.apache.aries.jp <http://org.apache.aries.jp/>a.version}">osgiliath-jpa</feature>
>>>                 <bundle dependency='true'>mvn:org.osgi/org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
>>>                 <feature version="${org.apache.openjpa.version}">osgiliath-openjpa</feature>
>>>                 <feature version="${org.apache.karaf.features_standard.version}">osgiliath-aries-blueprint</feature>
>>>                 <bundle>mvn:org.apache.xbean/xbean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
>>>                 <feature version="${project.version}">osgiliath-spring-data-jpa</feature>
>>>                 <conditional>
>>>                         <condition>osgiliath-rest-management</condition>
>>>                         <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-annotations/${io.swagger_swagger-annotations.version}</bundle>
>>>                 </conditional>  
>>>     </feature>
>>> 
>>> [/code]
>>> 
>>> 
>>> ​Best regards,​ and keep up bringing the OSGI dream comes true ;-)
>>> 
>>> 
>>> --
>>> Charlie Mordant
>>> 
>>> Full OSGI/EE stack made with Karaf:
>>> https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>
>>> 
>>> -- 
>>> Jean-Baptiste Onofré
>>> jbonofre@apache.org <ma...@apache.org>
>>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>> Talend - http://www.talend.com <http://www.talend.com/>
>>> 
>>> 
>>> 
>>> -- 
>>> Charlie Mordant
>>> 
>>> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>
>> 
>> 
>> 
>> 
>> -- 
>> Charlie Mordant
>> 
>> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>
> 
> 
> 
> 
> -- 
> Charlie Mordant
> 
> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>


Re: Bundle restart are hard to tackle

Posted by Charlie Mordant <cm...@gmail.com>.
Hi Serge (sorry, I forgot to mention you in my last mail), hi Nick,

Thanks for the tips Nick, I did not thought about putting breakpoints into
Felix to see which bundle refresh what, will try it for sure.

Tim, I personally see the proxy issue with @Transactional as only a
technical/implementation issue: as a user, I really can't see the point
that using:

[code]

private int txGet() {

txControl.required(() -> {

return 42;

}

}
[/code]

is more modularity-friendly than

[code]
@Transactional (propagation=REQUIRED)
private int txGet() {
return 42;
}
[/code]

Finally, I want to personally thank you for your book that has a place of
choice in my library and brought me an unconditional love and interest for
the OSGI technology!



Best regards to all :),



2017-01-31 15:35 GMT+01:00 Timothy Ward <ti...@paremus.com>:

> Hi,
>
> Just to confirm, Tx Control doesn’t do @Transactional, but it does do JPA
> without the JPATemplate (i.e. you can just do normal JPA access within a
> managed block). As for bringing in Java EE guys, that’s great, but at least
> some of their usage patterns have to change if you want hot-swap and start
> up order independence to work!
>
> Regards,
>
> Tim Ward
>
> Enterprise OSGi in Action (http://www.manning.com/cummins)
> Apache Aries PMC
>
>
> On 31 Jan 2017, at 10:53, Charlie Mordant <cm...@gmail.com> wrote:
>
> Hi Timothy,
>
> Thank you for all your questions and interest.
>
> Concerning graphql, why not. I had in mind to provide a way to easily
> bring HATEOAS (via spring-hateoas, or implementing some cxf interceptors),
> but Graphql looks also promising, so why not, it'll be discussed...
>
> About the Aries Tx Control, it is a deliberate choice to not use it (sorry
> :-S): the goal of Osgiliath is mainly to bring JavaEE guys into the OSGi
> world without disturbing (most of) their habits, giving them modularity,
> scalability and hot swap for free.
> So in an ideal world, every service injection would be done with CDI
> annotations (that's why we're using pax-cdi), persistence with JPA
> annotations (without blueprint neither JPA template), transaction with
> @Transactional ones (without blueprint too), and if we could have web
> sessions/security context distributed accross bundles <3.
>
> Of course, life is made of tradeof, so if DS, Tx Control and JpaTemplate
> are the only way to go the right way, Osgiliath will too.
>
> Best regards,
>
> 2017-01-31 10:50 GMT+01:00 Timothy Ward <ti...@paremus.com>:
>
>> Hi Charlie,
>>
>> One other question, have you tried using Aries Transaction Control? The
>> big drivers for creating the Transaction Control Service were to simplify
>> the service model and to handle dynamics better when performing
>> transactional access to resources. The Aries implementation supports XA and
>> is fully recoverable, so it should be very simple to use in your project.
>>
>> Regards,
>>
>> Tim
>>
>> On 31 Jan 2017, at 09:48, Charlie Mordant <cm...@gmail.com> wrote:
>>
>> Hi J.B.,
>>
>> Sure, it's always reproducible, I'll send it tonight (or tomorrow if I
>> haven't the time to do it).
>> I'm not in front of my computer for now, but will do my best as reactive
>> as possible.
>>
>> Best Regards,
>>
>> 2017-01-31 10:41 GMT+01:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>>
>>> Hi Charlie,
>>>
>>> do you have the feature:install -v output ? It would help us to see the
>>> cause of the refresh (optional import, or other).
>>>
>>> Thanks !
>>>
>>> Regards
>>> JB
>>>
>>>
>>> On 01/31/2017 10:39 AM, Charlie Mordant wrote:
>>>
>>>> Hi users of the world's best application server ever ;-),
>>>>
>>>> I'm struggling with feature resolution, and would like to have your POV.
>>>>
>>>> This issue is concerning, the JDBC, the Blueprint and the transactional
>>>> feature.
>>>>
>>>> Here's the issue with feature resolution in my pax-exam test:
>>>>
>>>>
>>>> * The jdbc-pool-aries feature starts first (+ the config one and the cfg
>>>> \o/).
>>>> * Then the transactional feature
>>>> * The third feature thats start is the aries jndi one, so the two
>>>> datasources (the XA and non-XA ones) are exposed (\o/\o/).
>>>> * But the third that starts is the blueprint one, which starts the
>>>> xbean-blueprint bundle.
>>>> That blueprint bundle restarts the 'optional' resolutions of aries
>>>> transaction manager, which then restarts aries-jdbc modules (optional
>>>> res again) & config, which stops the datasource and starts another one.
>>>> ​Unfortunately, at this point, my 'daos' bundle is already linked with a
>>>> proxy to the 'old' datasource​.
>>>>
>>>> A way to fix it is to reference the 'transaction' feature in the
>>>> 'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but
>>>> it would then break some modularity.
>>>>
>>>> Have you got an idea on how to properly handle it?
>>>>
>>>> The actual xml of my features, they're slightly similar to the karaf
>>>> ones, with bundle versions aligned:
>>>> [code]
>>>>
>>>>      <feature name="osgiliath-pax-jdbc-pool-aries"
>>>> description="Provides JDBC Pooling DataSourceFactory using Aries
>>>> Transaction JDBC" version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}"
>>>> resolver="(obr)">
>>>>         <feature>osgiliath-pax-jdbc-spec</feature>
>>>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.op
>>>> s4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
>>>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops
>>>> 4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
>>>>         <conditional>
>>>>             <condition>osgiliath-aries-blueprint</condition>
>>>>             <bundle dependency="true">mvn:org.apac
>>>> he.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.
>>>> version}</bundle>
>>>>         </conditional>
>>>>         <conditional>
>>>>             <condition>osgiliath-transaction</condition>
>>>>             <bundle dependency="true">mvn:org.apac
>>>> he.aries.transaction/org.apache.aries.transaction.jdbc/${org
>>>> .apache.aries.transaction_org.apache.aries.transaction.jdbc.
>>>> version}</bundle>
>>>>         </conditional>
>>>>     </feature>
>>>>
>>>>
>>>>     <feature name="osgiliath-transaction" description="OSGi Transaction
>>>> Manager" version="${org.apache.aries.transaction_org.apache.aries.tra
>>>> nsaction.manager.version}">
>>>>         <config name="org.apache.aries.transaction" append="false">
>>>>             aries.transaction.recoverable = true
>>>>             aries.transaction.timeout = 600
>>>>             aries.transaction.howl.logFileDir = ${karaf.data}/txlog
>>>>             aries.transaction.howl.maxLogFiles = 2
>>>>             aries.transaction.howl.maxBlocksPerFile = 512
>>>>             aries.transaction.howl.bufferSize = 4
>>>>         </config>
>>>>         <feature version="${transaction-api_feature.version}"
>>>> prerequisite="false" dependency="false">osgiliath-t
>>>> ransaction-api</feature>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.aries/org.apache.aries.util/${org.apache.aries_org.apache
>>>> .aries.util.version}</bundle>
>>>>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>>>> ansaction.manager/${org.apache.aries.transaction_org.apache.
>>>> aries.transaction.manager.version}</bundle>
>>>>         <conditional>
>>>>             <condition>osgiliath-aries-blueprint</condition>
>>>>             <bundle dependency="true">mvn:org.apac
>>>> he.felix/org.apache.felix.coordinator/${org.apache.felix_org
>>>> .apache.felix.coordinator.version}</bundle>
>>>>             <bundle>mvn:org.apache.aries.transaction/
>>>> org.apache.aries.transaction.blueprint/${org.apac
>>>> he.aries.transaction_org.apache.aries.transaction.blueprint.
>>>> version1}</bundle>
>>>>             <bundle>mvn:org.apache.aries.transaction/
>>>> org.apache.aries.transaction.blueprint/${org.apac
>>>> he.aries.transaction_org.apache.aries.transaction.blueprint.
>>>> version}</bundle>
>>>>             <bundle dependency="true">mvn:org.apac
>>>> he.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.
>>>> version}</bundle>
>>>>         </conditional>
>>>>         <conditional>
>>>>             <condition>osgiliath-spring</condition>
>>>>             <feature version="${org.apache.servicemix.bundles.spring.version}"
>>>> dependency="true">osgiliath-spring-tx</feature>
>>>>         </conditional>
>>>>     </feature>
>>>>
>>>> ********************************************************* Additional
>>>> informations ******************************************
>>>>
>>>>
>>>> <feature name="osgiliath-transaction-api"
>>>> version="${transaction-api_feature.version}">
>>>>         <bundle dependency="true">mvn:javax.in
>>>> terceptor/javax.interceptor-api/${javax.interceptor_javax.in
>>>> terceptor-api.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.ge
>>>> ronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
>>>>         <bundle dependency="true">mvn:javax.el
>>>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>>         <bundle dependency="true">mvn:javax.en
>>>> terprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
>>>>         <bundle>mvn:javax.transaction/javax.transaction-api/${javax.
>>>> transaction_javax.transaction-api.version}</bundle>
>>>>     </feature>
>>>>  <feature name="osgiliath-persistence-api" description="Persistence
>>>> API" version="${persistence-api_feature.version}">
>>>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/
>>>> ${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
>>>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry
>>>> /${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
>>>>     </feature>
>>>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container"
>>>> version="${org.apache.aries.jpa.version}">
>>>>         <feature version="${transaction-api_feature.version}"
>>>> prerequisite="false" dependency="false">osgiliath-t
>>>> ransaction-api</feature>
>>>>         <feature version="${persistence-api_feature.version}"
>>>> prerequisite="false" dependency="false">osgiliath-p
>>>> ersistence-api</feature>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.felix/org.apache.felix.coordinator/${org.apache.felix_org
>>>> .apache.felix.coordinator.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.osgi
>>>> /org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.vers
>>>> ion}</bundle>
>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${
>>>> org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.contai
>>>> ner/${org.apache.aries.jpa_org.apache.aries.jpa.container.ve
>>>> rsion}</bundle>
>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.suppor
>>>> t/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>>>         <conditional>
>>>>             <condition>osgiliath-aries-blueprint</condition>
>>>>             <bundle>mvn:org.apache.aries.j
>>>> pa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.
>>>> apache.aries.jpa.blueprint.version}</bundle>
>>>>         </conditional>
>>>>     </feature>
>>>>
>>>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA
>>>> 2.4.x persistence engine support" version="${org.apache.openjpa.
>>>> version}">
>>>>         <feature prerequisite="false" dependency="false">osgiliath-j
>>>> ndi</feature>
>>>>         <feature version="${transaction-api_feature.version}"
>>>> prerequisite="false" dependency="false">osgiliath-t
>>>> ransaction-api</feature>
>>>>         <feature version="${persistence-api_feature.version}"
>>>> prerequisite="false" dependency="false">osgiliath-p
>>>> ersistence-api</feature>
>>>>         <bundle dependency="true">mvn:javax.se
>>>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve
>>>> rsion}</bundle>
>>>>         <bundle dependency="true">mvn:javax.el
>>>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>>         <bundle dependency="true">mvn:commons-
>>>> lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>>>         <bundle dependency="true">mvn:commons-
>>>> collections/commons-collections/${commons-collections_common
>>>> s-collections.version}</bundle>
>>>>         <bundle dependency="true">mvn:commons-
>>>> pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.servicemix.bundles/org.apache.servicemix.bundles.commons-
>>>> dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.b
>>>> undles.commons-dbcp.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.servicemix.bundles/org.apache.servicemix.bundles.ant/${or
>>>> g.apache.servicemix.bundles_org.apache.servicemix.bundles.an
>>>> t.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.servicemix.bundles/org.apache.servicemix.bundles.serp/${o
>>>> rg.apache.servicemix.bundles_org.apache.servicemix.bundles.s
>>>> erp.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronim
>>>> o.specs_geronimo-jms_1.1_spec.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-sha
>>>> ded.version}</bundle>
>>>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_
>>>> openjpa.version}</bundle>
>>>>     </feature>
>>>> <feature name="osgiliath-connector" version="${org.apache.geronimo
>>>> .components_geronimo-connector.version}" description="OSGi Support for
>>>> JCA Connector 1.6" resolver="(obr)">
>>>>         <feature version="${org.apache.aries.tr
>>>> ansaction_org.apache.aries.transaction.manager.version}">osg
>>>> iliath-transaction</feature>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apa
>>>> che.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
>>>>         <bundle dependency="true">mvn:javax.va
>>>> lidation/validation-api/${javax.validation_validation-api.ve
>>>> rsion}</bundle>
>>>>         <bundle>mvn:org.apache.geronimo.components/geronimo-connecto
>>>> r/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
>>>>     </feature>
>>>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container"
>>>> version="${org.apache.aries.jpa.version}">
>>>>         <feature version="${transaction-api_feature.version}"
>>>> prerequisite="false" dependency="false">osgiliath-t
>>>> ransaction-api</feature>
>>>>         <feature version="${persistence-api_feature.version}"
>>>> prerequisite="false" dependency="false">osgiliath-p
>>>> ersistence-api</feature>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.felix/org.apache.felix.coordinator/${org.apache.felix_org
>>>> .apache.felix.coordinator.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.osgi
>>>> /org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.vers
>>>> ion}</bundle>
>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${
>>>> org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.contai
>>>> ner/${org.apache.aries.jpa_org.apache.aries.jpa.container.ve
>>>> rsion}</bundle>
>>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.suppor
>>>> t/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>>>         <conditional>
>>>>             <condition>osgiliath-aries-blueprint</condition>
>>>>             <bundle>mvn:org.apache.aries.j
>>>> pa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.
>>>> apache.aries.jpa.blueprint.version}</bundle>
>>>>         </conditional>
>>>>     </feature>
>>>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA
>>>> 2.4.x persistence engine support" version="${org.apache.openjpa.
>>>> version}">
>>>>         <details>Enable Apache OpenJPA as persistence engine.</details>
>>>>         <feature prerequisite="false" dependency="false">osgiliath-j
>>>> ndi</feature>
>>>>         <feature version="${transaction-api_feature.version}"
>>>> prerequisite="false" dependency="false">osgiliath-t
>>>> ransaction-api</feature>
>>>>         <feature version="${persistence-api_feature.version}"
>>>> prerequisite="false" dependency="false">osgiliath-p
>>>> ersistence-api</feature>
>>>>         <bundle dependency="true">mvn:javax.se
>>>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve
>>>> rsion}</bundle>
>>>>         <bundle dependency="true">mvn:javax.el
>>>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>>         <bundle dependency="true">mvn:commons-
>>>> lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>>>         <bundle dependency="true">mvn:commons-
>>>> collections/commons-collections/${commons-collections_common
>>>> s-collections.version}</bundle>
>>>>         <bundle dependency="true">mvn:commons-
>>>> pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.servicemix.bundles/org.apache.servicemix.bundles.commons-
>>>> dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.b
>>>> undles.commons-dbcp.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.servicemix.bundles/org.apache.servicemix.bundles.ant/${or
>>>> g.apache.servicemix.bundles_org.apache.servicemix.bundles.an
>>>> t.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.servicemix.bundles/org.apache.servicemix.bundles.serp/${o
>>>> rg.apache.servicemix.bundles_org.apache.servicemix.bundles.s
>>>> erp.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronim
>>>> o.specs_geronimo-jms_1.1_spec.version}</bundle>
>>>>         <bundle dependency="true">mvn:org.apac
>>>> he.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-sha
>>>> ded.version}</bundle>
>>>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_
>>>> openjpa.version}</bundle>
>>>>     </feature>
>>>>
>>>>
>>>>
>>>> <feature name='osgiliath-persistence' version='${project.version}'
>>>> resolver="(obr)" start-level="41" description="Java persistence API stack" >
>>>>                 <bundle dependency='true'>mvn:javax.se
>>>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve
>>>> rsion}</bundle>
>>>>                 <feature version="${project.version}">o
>>>> sgiliath-jdbc</feature>
>>>>                 <feature version="${org.apache.geronimo
>>>> .components_geronimo-connector.version}">osgiliath-connector</feature>
>>>>                 <feature version="${org.apache.aries.jp
>>>> a.version}">osgiliath-jpa</feature>
>>>>                 <bundle dependency='true'>mvn:org.osgi
>>>> /org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
>>>>                 <feature version="${org.apache.openjpa.
>>>> version}">osgiliath-openjpa</feature>
>>>>                 <feature version="${org.apache.karaf.fe
>>>> atures_standard.version}">osgiliath-aries-blueprint</feature>
>>>>                 <bundle>mvn:org.apache.xbean/x
>>>> bean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
>>>>                 <feature version="${project.version}">o
>>>> sgiliath-spring-data-jpa</feature>
>>>>                 <conditional>
>>>>                         <condition>osgiliath-rest-mana
>>>> gement</condition>
>>>>                         <bundle start-level="35"
>>>> dependency="true">mvn:io.swagger/swagger-annotations/${io.sw
>>>> agger_swagger-annotations.version}</bundle>
>>>>                 </conditional>
>>>>     </feature>
>>>>
>>>> [/code]
>>>>
>>>>
>>>> ​Best regards,​ and keep up bringing the OSGI dream comes true ;-)
>>>>
>>>>
>>>> --
>>>> Charlie Mordant
>>>>
>>>> Full OSGI/EE stack made with Karaf:
>>>> https://github.com/OsgiliathEnterprise/net.osgiliath.parent
>>>>
>>>
>>> --
>>> Jean-Baptiste Onofré
>>> jbonofre@apache.org
>>> http://blog.nanthrax.net
>>> Talend - http://www.talend.com
>>>
>>
>>
>>
>> --
>> Charlie Mordant
>>
>> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEn
>> terprise/net.osgiliath.parent
>>
>>
>>
>
>
> --
> Charlie Mordant
>
> Full OSGI/EE stack made with Karaf: https://github.com/
> OsgiliathEnterprise/net.osgiliath.parent
>
>
>


-- 
Charlie Mordant

Full OSGI/EE stack made with Karaf:
https://github.com/OsgiliathEnterprise/net.osgiliath.parent

Re: Bundle restart are hard to tackle

Posted by Timothy Ward <ti...@paremus.com>.
Hi,

Just to confirm, Tx Control doesn’t do @Transactional, but it does do JPA without the JPATemplate (i.e. you can just do normal JPA access within a managed block). As for bringing in Java EE guys, that’s great, but at least some of their usage patterns have to change if you want hot-swap and start up order independence to work!

Regards,

Tim Ward

Enterprise OSGi in Action (http://www.manning.com/cummins <http://www.manning.com/cummins>)
Apache Aries PMC


> On 31 Jan 2017, at 10:53, Charlie Mordant <cm...@gmail.com> wrote:
> 
> Hi Timothy,
> 
> Thank you for all your questions and interest.
> 
> Concerning graphql, why not. I had in mind to provide a way to easily bring HATEOAS (via spring-hateoas, or implementing some cxf interceptors), but Graphql looks also promising, so why not, it'll be discussed...
> 
> About the Aries Tx Control, it is a deliberate choice to not use it (sorry :-S): the goal of Osgiliath is mainly to bring JavaEE guys into the OSGi world without disturbing (most of) their habits, giving them modularity, scalability and hot swap for free.
> So in an ideal world, every service injection would be done with CDI annotations (that's why we're using pax-cdi), persistence with JPA annotations (without blueprint neither JPA template), transaction with @Transactional ones (without blueprint too), and if we could have web sessions/security context distributed accross bundles <3.
> 
> Of course, life is made of tradeof, so if DS, Tx Control and JpaTemplate are the only way to go the right way, Osgiliath will too.
> 
> Best regards,
> 
> 2017-01-31 10:50 GMT+01:00 Timothy Ward <tim.ward@paremus.com <ma...@paremus.com>>:
> Hi Charlie,
> 
> One other question, have you tried using Aries Transaction Control? The big drivers for creating the Transaction Control Service were to simplify the service model and to handle dynamics better when performing transactional access to resources. The Aries implementation supports XA and is fully recoverable, so it should be very simple to use in your project.
> 
> Regards,
> 
> Tim
> 
>> On 31 Jan 2017, at 09:48, Charlie Mordant <cmordant1@gmail.com <ma...@gmail.com>> wrote:
>> 
>> Hi J.B.,
>> 
>> Sure, it's always reproducible, I'll send it tonight (or tomorrow if I haven't the time to do it).
>> I'm not in front of my computer for now, but will do my best as reactive as possible.
>> 
>> Best Regards,
>> 
>> 2017-01-31 10:41 GMT+01:00 Jean-Baptiste Onofré <jb@nanthrax.net <ma...@nanthrax.net>>:
>> Hi Charlie,
>> 
>> do you have the feature:install -v output ? It would help us to see the cause of the refresh (optional import, or other).
>> 
>> Thanks !
>> 
>> Regards
>> JB
>> 
>> 
>> On 01/31/2017 10:39 AM, Charlie Mordant wrote:
>> Hi users of the world's best application server ever ;-),
>> 
>> I'm struggling with feature resolution, and would like to have your POV.
>> 
>> This issue is concerning, the JDBC, the Blueprint and the transactional
>> feature.
>> 
>> Here's the issue with feature resolution in my pax-exam test:
>> 
>> 
>> * The jdbc-pool-aries feature starts first (+ the config one and the cfg
>> \o/).
>> * Then the transactional feature
>> * The third feature thats start is the aries jndi one, so the two
>> datasources (the XA and non-XA ones) are exposed (\o/\o/).
>> * But the third that starts is the blueprint one, which starts the
>> xbean-blueprint bundle.
>> That blueprint bundle restarts the 'optional' resolutions of aries
>> transaction manager, which then restarts aries-jdbc modules (optional
>> res again) & config, which stops the datasource and starts another one.
>> ​Unfortunately, at this point, my 'daos' bundle is already linked with a
>> proxy to the 'old' datasource​.
>> 
>> A way to fix it is to reference the 'transaction' feature in the
>> 'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but
>> it would then break some modularity.
>> 
>> Have you got an idea on how to properly handle it?
>> 
>> The actual xml of my features, they're slightly similar to the karaf
>> ones, with bundle versions aligned:
>> [code]
>> 
>>      <feature name="osgiliath-pax-jdbc-pool-aries" description="Provides JDBC Pooling DataSourceFactory using Aries Transaction JDBC" version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}" resolver="(obr)">
>>         <feature>osgiliath-pax-jdbc-spec</feature>
>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.ops4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
>>         <conditional>
>>             <condition>osgiliath-aries-blueprint</condition>
>>             <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>>         </conditional>
>>         <conditional>
>>             <condition>osgiliath-transaction</condition>
>>             <bundle dependency="true">mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/${org.apache.aries.transaction_org.apache.aries.transaction.jdbc.version}</bundle>
>>         </conditional>
>>     </feature>
>> 
>> 
>>     <feature name="osgiliath-transaction" description="OSGi Transaction Manager" version="${org.apache.aries.tr <http://org.apache.aries.tr/>ansaction_org.apache.aries.transaction.manager.version}">
>>         <config name="org.apache.aries.transaction" append="false">
>>             aries.transaction.recoverable = true
>>             aries.transaction.timeout = 600
>>             aries.transaction.howl.logFileDir = ${karaf.data}/txlog
>>             aries.transaction.howl.maxLogFiles = 2
>>             aries.transaction.howl.maxBlocksPerFile = 512
>>             aries.transaction.howl.bufferSize = 4
>>         </config>
>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>         <bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/${org.apache.aries_org.apache.aries.util.version}</bundle>
>>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr <http://org.apache.aries.tr/>ansaction.manager/${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}</bundle>
>>         <conditional>
>>             <condition>osgiliath-aries-blueprint</condition>
>>             <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr <http://org.apache.aries.tr/>ansaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version1}</bundle>
>>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr <http://org.apache.aries.tr/>ansaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version}</bundle>
>>             <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>>         </conditional>
>>         <conditional>
>>             <condition>osgiliath-spring</condition>
>>             <feature version="${org.apache.servicemix.bundles.spring.version}" dependency="true">osgiliath-spring-tx</feature>
>>         </conditional>
>>     </feature>
>> 
>> ********************************************************* Additional informations ******************************************
>> 
>> 
>> <feature name="osgiliath-transaction-api" version="${transaction-api_feature.version}">
>>         <bundle dependency="true">mvn:javax.in <http://javax.in/>terceptor/javax.interceptor-api/${javax.interceptor_javax.in <http://javax.interceptor_javax.in/>terceptor-api.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.geronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
>>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>         <bundle dependency="true">mvn:javax.enterprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
>>         <bundle>mvn:javax.transaction/javax.transaction-api/${javax.transaction_javax.transaction-api.version}</bundle>
>>     </feature>
>>  <feature name="osgiliath-persistence-api" description="Persistence API" version="${persistence-api_feature.version}">
>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry/${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
>>     </feature>
>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jp <http://org.apache.aries.jp/>a.version}">
>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>>         <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>>         <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>         <conditional>
>>             <condition>osgiliath-aries-blueprint</condition>
>>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
>>         </conditional>
>>     </feature>
>> 
>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
>>         <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>>         <bundle dependency="true">mvn:javax.se <http://javax.se/>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve <http://x.servlet_javax.servlet-api.ve/>rsion}</bundle>
>>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>         <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>         <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>>         <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.an <http://g.apache.servicemix.bundles.an/>t.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>>     </feature>
>> <feature name="osgiliath-connector" version="${org.apache.geronimo.components_geronimo-connector.version}" description="OSGi Support for JCA Connector 1.6" resolver="(obr)">
>>         <feature version="${org.apache.aries.tr <http://org.apache.aries.tr/>ansaction_org.apache.aries.transaction.manager.version}">osgiliath-transaction</feature>
>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apache.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
>>         <bundle dependency="true">mvn:javax.va <http://javax.va/>lidation/validation-api/${javax.validation_validation-api.ve <http://x.validation_validation-api.ve/>rsion}</bundle>
>>         <bundle>mvn:org.apache.geronimo.components/geronimo-connector/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
>>     </feature>
>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jp <http://org.apache.aries.jp/>a.version}">
>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>>         <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>>         <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>         <conditional>
>>             <condition>osgiliath-aries-blueprint</condition>
>>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
>>         </conditional>
>>     </feature>
>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
>>         <details>Enable Apache OpenJPA as persistence engine.</details>
>>         <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
>>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>>         <bundle dependency="true">mvn:javax.se <http://javax.se/>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve <http://x.servlet_javax.servlet-api.ve/>rsion}</bundle>
>>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>         <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>         <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>>         <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.an <http://g.apache.servicemix.bundles.an/>t.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>>     </feature>
>> 
>> 
>> 
>> <feature name='osgiliath-persistence' version='${project.version}' resolver="(obr)" start-level="41" description="Java persistence API stack" >
>>                 <bundle dependency='true'>mvn:javax.se <http://javax.se/>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve <http://x.servlet_javax.servlet-api.ve/>rsion}</bundle>
>>                 <feature version="${project.version}">osgiliath-jdbc</feature>
>>                 <feature version="${org.apache.geronimo.components_geronimo-connector.version}">osgiliath-connector</feature>
>>                 <feature version="${org.apache.aries.jp <http://org.apache.aries.jp/>a.version}">osgiliath-jpa</feature>
>>                 <bundle dependency='true'>mvn:org.osgi/org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
>>                 <feature version="${org.apache.openjpa.version}">osgiliath-openjpa</feature>
>>                 <feature version="${org.apache.karaf.features_standard.version}">osgiliath-aries-blueprint</feature>
>>                 <bundle>mvn:org.apache.xbean/xbean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
>>                 <feature version="${project.version}">osgiliath-spring-data-jpa</feature>
>>                 <conditional>
>>                         <condition>osgiliath-rest-management</condition>
>>                         <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-annotations/${io.swagger_swagger-annotations.version}</bundle>
>>                 </conditional>  
>>     </feature>
>> 
>> [/code]
>> 
>> 
>> ​Best regards,​ and keep up bringing the OSGI dream comes true ;-)
>> 
>> 
>> --
>> Charlie Mordant
>> 
>> Full OSGI/EE stack made with Karaf:
>> https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>
>> 
>> -- 
>> Jean-Baptiste Onofré
>> jbonofre@apache.org <ma...@apache.org>
>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>> Talend - http://www.talend.com <http://www.talend.com/>
>> 
>> 
>> 
>> -- 
>> Charlie Mordant
>> 
>> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>
> 
> 
> 
> 
> -- 
> Charlie Mordant
> 
> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>


Re: Bundle restart are hard to tackle

Posted by Charlie Mordant <cm...@gmail.com>.
Hi Timothy,

Thank you for all your questions and interest.

Concerning graphql, why not. I had in mind to provide a way to easily bring
HATEOAS (via spring-hateoas, or implementing some cxf interceptors), but
Graphql looks also promising, so why not, it'll be discussed...

About the Aries Tx Control, it is a deliberate choice to not use it (sorry
:-S): the goal of Osgiliath is mainly to bring JavaEE guys into the OSGi
world without disturbing (most of) their habits, giving them modularity,
scalability and hot swap for free.
So in an ideal world, every service injection would be done with CDI
annotations (that's why we're using pax-cdi), persistence with JPA
annotations (without blueprint neither JPA template), transaction with
@Transactional ones (without blueprint too), and if we could have web
sessions/security context distributed accross bundles <3.

Of course, life is made of tradeof, so if DS, Tx Control and JpaTemplate
are the only way to go the right way, Osgiliath will too.

Best regards,

2017-01-31 10:50 GMT+01:00 Timothy Ward <ti...@paremus.com>:

> Hi Charlie,
>
> One other question, have you tried using Aries Transaction Control? The
> big drivers for creating the Transaction Control Service were to simplify
> the service model and to handle dynamics better when performing
> transactional access to resources. The Aries implementation supports XA and
> is fully recoverable, so it should be very simple to use in your project.
>
> Regards,
>
> Tim
>
> On 31 Jan 2017, at 09:48, Charlie Mordant <cm...@gmail.com> wrote:
>
> Hi J.B.,
>
> Sure, it's always reproducible, I'll send it tonight (or tomorrow if I
> haven't the time to do it).
> I'm not in front of my computer for now, but will do my best as reactive
> as possible.
>
> Best Regards,
>
> 2017-01-31 10:41 GMT+01:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:
>
>> Hi Charlie,
>>
>> do you have the feature:install -v output ? It would help us to see the
>> cause of the refresh (optional import, or other).
>>
>> Thanks !
>>
>> Regards
>> JB
>>
>>
>> On 01/31/2017 10:39 AM, Charlie Mordant wrote:
>>
>>> Hi users of the world's best application server ever ;-),
>>>
>>> I'm struggling with feature resolution, and would like to have your POV.
>>>
>>> This issue is concerning, the JDBC, the Blueprint and the transactional
>>> feature.
>>>
>>> Here's the issue with feature resolution in my pax-exam test:
>>>
>>>
>>> * The jdbc-pool-aries feature starts first (+ the config one and the cfg
>>> \o/).
>>> * Then the transactional feature
>>> * The third feature thats start is the aries jndi one, so the two
>>> datasources (the XA and non-XA ones) are exposed (\o/\o/).
>>> * But the third that starts is the blueprint one, which starts the
>>> xbean-blueprint bundle.
>>> That blueprint bundle restarts the 'optional' resolutions of aries
>>> transaction manager, which then restarts aries-jdbc modules (optional
>>> res again) & config, which stops the datasource and starts another one.
>>> ​Unfortunately, at this point, my 'daos' bundle is already linked with a
>>> proxy to the 'old' datasource​.
>>>
>>> A way to fix it is to reference the 'transaction' feature in the
>>> 'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but
>>> it would then break some modularity.
>>>
>>> Have you got an idea on how to properly handle it?
>>>
>>> The actual xml of my features, they're slightly similar to the karaf
>>> ones, with bundle versions aligned:
>>> [code]
>>>
>>>      <feature name="osgiliath-pax-jdbc-pool-aries"
>>> description="Provides JDBC Pooling DataSourceFactory using Aries
>>> Transaction JDBC" version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}"
>>> resolver="(obr)">
>>>         <feature>osgiliath-pax-jdbc-spec</feature>
>>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.op
>>> s4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
>>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops
>>> 4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
>>>         <conditional>
>>>             <condition>osgiliath-aries-blueprint</condition>
>>>             <bundle dependency="true">mvn:org.apac
>>> he.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.
>>> version}</bundle>
>>>         </conditional>
>>>         <conditional>
>>>             <condition>osgiliath-transaction</condition>
>>>             <bundle dependency="true">mvn:org.apac
>>> he.aries.transaction/org.apache.aries.transaction.jdbc/${org
>>> .apache.aries.transaction_org.apache.aries.transaction.jdbc.
>>> version}</bundle>
>>>         </conditional>
>>>     </feature>
>>>
>>>
>>>     <feature name="osgiliath-transaction" description="OSGi Transaction
>>> Manager" version="${org.apache.aries.transaction_org.apache.aries.tra
>>> nsaction.manager.version}">
>>>         <config name="org.apache.aries.transaction" append="false">
>>>             aries.transaction.recoverable = true
>>>             aries.transaction.timeout = 600
>>>             aries.transaction.howl.logFileDir = ${karaf.data}/txlog
>>>             aries.transaction.howl.maxLogFiles = 2
>>>             aries.transaction.howl.maxBlocksPerFile = 512
>>>             aries.transaction.howl.bufferSize = 4
>>>         </config>
>>>         <feature version="${transaction-api_feature.version}"
>>> prerequisite="false" dependency="false">osgiliath-t
>>> ransaction-api</feature>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.aries/org.apache.aries.util/${org.apache.aries_org.apache
>>> .aries.util.version}</bundle>
>>>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>>> ansaction.manager/${org.apache.aries.transaction_org.apache.
>>> aries.transaction.manager.version}</bundle>
>>>         <conditional>
>>>             <condition>osgiliath-aries-blueprint</condition>
>>>             <bundle dependency="true">mvn:org.apac
>>> he.felix/org.apache.felix.coordinator/${org.apache.felix_org
>>> .apache.felix.coordinator.version}</bundle>
>>>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>>> ansaction.blueprint/${org.apache.aries.transaction_org.apach
>>> e.aries.transaction.blueprint.version1}</bundle>
>>>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>>> ansaction.blueprint/${org.apache.aries.transaction_org.apach
>>> e.aries.transaction.blueprint.version}</bundle>
>>>             <bundle dependency="true">mvn:org.apac
>>> he.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.
>>> version}</bundle>
>>>         </conditional>
>>>         <conditional>
>>>             <condition>osgiliath-spring</condition>
>>>             <feature version="${org.apache.servicemix.bundles.spring.version}"
>>> dependency="true">osgiliath-spring-tx</feature>
>>>         </conditional>
>>>     </feature>
>>>
>>> ********************************************************* Additional
>>> informations ******************************************
>>>
>>>
>>> <feature name="osgiliath-transaction-api" version="${transaction-api_fea
>>> ture.version}">
>>>         <bundle dependency="true">mvn:javax.in
>>> terceptor/javax.interceptor-api/${javax.interceptor_javax.in
>>> terceptor-api.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.
>>> geronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
>>>         <bundle dependency="true">mvn:javax.el
>>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>         <bundle dependency="true">mvn:javax.en
>>> terprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
>>>         <bundle>mvn:javax.transaction/javax.transaction-api/${javax.
>>> transaction_javax.transaction-api.version}</bundle>
>>>     </feature>
>>>  <feature name="osgiliath-persistence-api" description="Persistence
>>> API" version="${persistence-api_feature.version}">
>>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/
>>> ${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
>>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry
>>> /${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
>>>     </feature>
>>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container"
>>> version="${org.apache.aries.jpa.version}">
>>>         <feature version="${transaction-api_feature.version}"
>>> prerequisite="false" dependency="false">osgiliath-t
>>> ransaction-api</feature>
>>>         <feature version="${persistence-api_feature.version}"
>>> prerequisite="false" dependency="false">osgiliath-p
>>> ersistence-api</feature>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.felix/org.apache.felix.coordinator/${org.apache.felix_org
>>> .apache.felix.coordinator.version}</bundle>
>>>         <bundle dependency="true">mvn:org.osgi
>>> /org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.vers
>>> ion}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${
>>> org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.contai
>>> ner/${org.apache.aries.jpa_org.apache.aries.jpa.container.
>>> version}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.suppor
>>> t/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>>         <conditional>
>>>             <condition>osgiliath-aries-blueprint</condition>
>>>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.bluepr
>>> int/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.
>>> version}</bundle>
>>>         </conditional>
>>>     </feature>
>>>
>>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x
>>> persistence engine support" version="${org.apache.openjpa.version}">
>>>         <feature prerequisite="false" dependency="false">osgiliath-j
>>> ndi</feature>
>>>         <feature version="${transaction-api_feature.version}"
>>> prerequisite="false" dependency="false">osgiliath-t
>>> ransaction-api</feature>
>>>         <feature version="${persistence-api_feature.version}"
>>> prerequisite="false" dependency="false">osgiliath-p
>>> ersistence-api</feature>
>>>         <bundle dependency="true">mvn:javax.se
>>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve
>>> rsion}</bundle>
>>>         <bundle dependency="true">mvn:javax.el
>>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-
>>> lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-
>>> collections/commons-collections/${commons-collections_common
>>> s-collections.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-
>>> pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.servicemix.bundles/org.apache.servicemix.bundles.commons-
>>> dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.b
>>> undles.commons-dbcp.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.servicemix.bundles/org.apache.servicemix.bundles.ant/${or
>>> g.apache.servicemix.bundles_org.apache.servicemix.bundles.an
>>> t.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.servicemix.bundles/org.apache.servicemix.bundles.serp/${o
>>> rg.apache.servicemix.bundles_org.apache.servicemix.bundles.s
>>> erp.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronim
>>> o.specs_geronimo-jms_1.1_spec.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-sha
>>> ded.version}</bundle>
>>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_
>>> openjpa.version}</bundle>
>>>     </feature>
>>> <feature name="osgiliath-connector" version="${org.apache.geronimo
>>> .components_geronimo-connector.version}" description="OSGi Support for
>>> JCA Connector 1.6" resolver="(obr)">
>>>         <feature version="${org.apache.aries.tr
>>> ansaction_org.apache.aries.transaction.manager.version}">osg
>>> iliath-transaction</feature>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apa
>>> che.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
>>>         <bundle dependency="true">mvn:javax.va
>>> lidation/validation-api/${javax.validation_validation-api.ve
>>> rsion}</bundle>
>>>         <bundle>mvn:org.apache.geronimo.components/geronimo-connecto
>>> r/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
>>>     </feature>
>>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container"
>>> version="${org.apache.aries.jpa.version}">
>>>         <feature version="${transaction-api_feature.version}"
>>> prerequisite="false" dependency="false">osgiliath-t
>>> ransaction-api</feature>
>>>         <feature version="${persistence-api_feature.version}"
>>> prerequisite="false" dependency="false">osgiliath-p
>>> ersistence-api</feature>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.felix/org.apache.felix.coordinator/${org.apache.felix_org
>>> .apache.felix.coordinator.version}</bundle>
>>>         <bundle dependency="true">mvn:org.osgi
>>> /org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.vers
>>> ion}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${
>>> org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.contai
>>> ner/${org.apache.aries.jpa_org.apache.aries.jpa.container.
>>> version}</bundle>
>>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.suppor
>>> t/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>>         <conditional>
>>>             <condition>osgiliath-aries-blueprint</condition>
>>>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.bluepr
>>> int/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.
>>> version}</bundle>
>>>         </conditional>
>>>     </feature>
>>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x
>>> persistence engine support" version="${org.apache.openjpa.version}">
>>>         <details>Enable Apache OpenJPA as persistence engine.</details>
>>>         <feature prerequisite="false" dependency="false">osgiliath-j
>>> ndi</feature>
>>>         <feature version="${transaction-api_feature.version}"
>>> prerequisite="false" dependency="false">osgiliath-t
>>> ransaction-api</feature>
>>>         <feature version="${persistence-api_feature.version}"
>>> prerequisite="false" dependency="false">osgiliath-p
>>> ersistence-api</feature>
>>>         <bundle dependency="true">mvn:javax.se
>>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve
>>> rsion}</bundle>
>>>         <bundle dependency="true">mvn:javax.el
>>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-
>>> lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-
>>> collections/commons-collections/${commons-collections_common
>>> s-collections.version}</bundle>
>>>         <bundle dependency="true">mvn:commons-
>>> pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.servicemix.bundles/org.apache.servicemix.bundles.commons-
>>> dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.b
>>> undles.commons-dbcp.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.servicemix.bundles/org.apache.servicemix.bundles.ant/${or
>>> g.apache.servicemix.bundles_org.apache.servicemix.bundles.an
>>> t.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.servicemix.bundles/org.apache.servicemix.bundles.serp/${o
>>> rg.apache.servicemix.bundles_org.apache.servicemix.bundles.s
>>> erp.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronim
>>> o.specs_geronimo-jms_1.1_spec.version}</bundle>
>>>         <bundle dependency="true">mvn:org.apac
>>> he.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-sha
>>> ded.version}</bundle>
>>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_
>>> openjpa.version}</bundle>
>>>     </feature>
>>>
>>>
>>>
>>> <feature name='osgiliath-persistence' version='${project.version}'
>>> resolver="(obr)" start-level="41" description="Java persistence API stack" >
>>>                 <bundle dependency='true'>mvn:javax.se
>>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.ve
>>> rsion}</bundle>
>>>                 <feature version="${project.version}">o
>>> sgiliath-jdbc</feature>
>>>                 <feature version="${org.apache.geronimo
>>> .components_geronimo-connector.version}">osgiliath-connector</feature>
>>>                 <feature version="${org.apache.aries.jp
>>> a.version}">osgiliath-jpa</feature>
>>>                 <bundle dependency='true'>mvn:org.osgi
>>> /org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
>>>                 <feature version="${org.apache.openjpa.
>>> version}">osgiliath-openjpa</feature>
>>>                 <feature version="${org.apache.karaf.fe
>>> atures_standard.version}">osgiliath-aries-blueprint</feature>
>>>                 <bundle>mvn:org.apache.xbean/x
>>> bean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
>>>                 <feature version="${project.version}">o
>>> sgiliath-spring-data-jpa</feature>
>>>                 <conditional>
>>>                         <condition>osgiliath-rest-management</condition>
>>>                         <bundle start-level="35"
>>> dependency="true">mvn:io.swagger/swagger-annotations/${io.sw
>>> agger_swagger-annotations.version}</bundle>
>>>                 </conditional>
>>>     </feature>
>>>
>>> [/code]
>>>
>>>
>>> ​Best regards,​ and keep up bringing the OSGI dream comes true ;-)
>>>
>>>
>>> --
>>> Charlie Mordant
>>>
>>> Full OSGI/EE stack made with Karaf:
>>> https://github.com/OsgiliathEnterprise/net.osgiliath.parent
>>>
>>
>> --
>> Jean-Baptiste Onofré
>> jbonofre@apache.org
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com
>>
>
>
>
> --
> Charlie Mordant
>
> Full OSGI/EE stack made with Karaf: https://github.com/
> OsgiliathEnterprise/net.osgiliath.parent
>
>
>


-- 
Charlie Mordant

Full OSGI/EE stack made with Karaf:
https://github.com/OsgiliathEnterprise/net.osgiliath.parent

Re: Bundle restart are hard to tackle

Posted by Timothy Ward <ti...@paremus.com>.
Hi Charlie,

One other question, have you tried using Aries Transaction Control? The big drivers for creating the Transaction Control Service were to simplify the service model and to handle dynamics better when performing transactional access to resources. The Aries implementation supports XA and is fully recoverable, so it should be very simple to use in your project.

Regards,

Tim

> On 31 Jan 2017, at 09:48, Charlie Mordant <cm...@gmail.com> wrote:
> 
> Hi J.B.,
> 
> Sure, it's always reproducible, I'll send it tonight (or tomorrow if I haven't the time to do it).
> I'm not in front of my computer for now, but will do my best as reactive as possible.
> 
> Best Regards,
> 
> 2017-01-31 10:41 GMT+01:00 Jean-Baptiste Onofré <jb@nanthrax.net <ma...@nanthrax.net>>:
> Hi Charlie,
> 
> do you have the feature:install -v output ? It would help us to see the cause of the refresh (optional import, or other).
> 
> Thanks !
> 
> Regards
> JB
> 
> 
> On 01/31/2017 10:39 AM, Charlie Mordant wrote:
> Hi users of the world's best application server ever ;-),
> 
> I'm struggling with feature resolution, and would like to have your POV.
> 
> This issue is concerning, the JDBC, the Blueprint and the transactional
> feature.
> 
> Here's the issue with feature resolution in my pax-exam test:
> 
> 
> * The jdbc-pool-aries feature starts first (+ the config one and the cfg
> \o/).
> * Then the transactional feature
> * The third feature thats start is the aries jndi one, so the two
> datasources (the XA and non-XA ones) are exposed (\o/\o/).
> * But the third that starts is the blueprint one, which starts the
> xbean-blueprint bundle.
> That blueprint bundle restarts the 'optional' resolutions of aries
> transaction manager, which then restarts aries-jdbc modules (optional
> res again) & config, which stops the datasource and starts another one.
> ​Unfortunately, at this point, my 'daos' bundle is already linked with a
> proxy to the 'old' datasource​.
> 
> A way to fix it is to reference the 'transaction' feature in the
> 'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but
> it would then break some modularity.
> 
> Have you got an idea on how to properly handle it?
> 
> The actual xml of my features, they're slightly similar to the karaf
> ones, with bundle versions aligned:
> [code]
> 
>      <feature name="osgiliath-pax-jdbc-pool-aries" description="Provides JDBC Pooling DataSourceFactory using Aries Transaction JDBC" version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}" resolver="(obr)">
>         <feature>osgiliath-pax-jdbc-spec</feature>
>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.ops4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
>         <conditional>
>             <condition>osgiliath-aries-blueprint</condition>
>             <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>         </conditional>
>         <conditional>
>             <condition>osgiliath-transaction</condition>
>             <bundle dependency="true">mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/${org.apache.aries.transaction_org.apache.aries.transaction.jdbc.version}</bundle>
>         </conditional>
>     </feature>
> 
> 
>     <feature name="osgiliath-transaction" description="OSGi Transaction Manager" version="${org.apache.aries.tr <http://org.apache.aries.tr/>ansaction_org.apache.aries.transaction.manager.version}">
>         <config name="org.apache.aries.transaction" append="false">
>             aries.transaction.recoverable = true
>             aries.transaction.timeout = 600
>             aries.transaction.howl.logFileDir = ${karaf.data}/txlog
>             aries.transaction.howl.maxLogFiles = 2
>             aries.transaction.howl.maxBlocksPerFile = 512
>             aries.transaction.howl.bufferSize = 4
>         </config>
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/${org.apache.aries_org.apache.aries.util.version}</bundle>
>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr <http://org.apache.aries.tr/>ansaction.manager/${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}</bundle>
>         <conditional>
>             <condition>osgiliath-aries-blueprint</condition>
>             <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr <http://org.apache.aries.tr/>ansaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version1}</bundle>
>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr <http://org.apache.aries.tr/>ansaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version}</bundle>
>             <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>         </conditional>
>         <conditional>
>             <condition>osgiliath-spring</condition>
>             <feature version="${org.apache.servicemix.bundles.spring.version}" dependency="true">osgiliath-spring-tx</feature>
>         </conditional>
>     </feature>
> 
> ********************************************************* Additional informations ******************************************
> 
> 
> <feature name="osgiliath-transaction-api" version="${transaction-api_feature.version}">
>         <bundle dependency="true">mvn:javax.in <http://javax.in/>terceptor/javax.interceptor-api/${javax.interceptor_javax.in <http://javax.interceptor_javax.in/>terceptor-api.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.geronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>         <bundle dependency="true">mvn:javax.enterprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
>         <bundle>mvn:javax.transaction/javax.transaction-api/${javax.transaction_javax.transaction-api.version}</bundle>
>     </feature>
>  <feature name="osgiliath-persistence-api" description="Persistence API" version="${persistence-api_feature.version}">
>         <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
>         <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry/${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
>     </feature>
>  <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jp <http://org.apache.aries.jp/>a.version}">
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>         <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>         <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>         <conditional>
>             <condition>osgiliath-aries-blueprint</condition>
>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
>         </conditional>
>     </feature>
> 
>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
>         <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>         <bundle dependency="true">mvn:javax.se <http://javax.se/>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>         <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>         <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>         <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>     </feature>
> <feature name="osgiliath-connector" version="${org.apache.geronimo.components_geronimo-connector.version}" description="OSGi Support for JCA Connector 1.6" resolver="(obr)">
>         <feature version="${org.apache.aries.tr <http://org.apache.aries.tr/>ansaction_org.apache.aries.transaction.manager.version}">osgiliath-transaction</feature>
>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apache.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
>         <bundle dependency="true">mvn:javax.va <http://javax.va/>lidation/validation-api/${javax.validation_validation-api.version}</bundle>
>         <bundle>mvn:org.apache.geronimo.components/geronimo-connector/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
>     </feature>
>  <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jp <http://org.apache.aries.jp/>a.version}">
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>         <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>         <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>         <conditional>
>             <condition>osgiliath-aries-blueprint</condition>
>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
>         </conditional>
>     </feature>
>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
>         <details>Enable Apache OpenJPA as persistence engine.</details>
>         <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>         <bundle dependency="true">mvn:javax.se <http://javax.se/>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>         <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>         <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>         <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>     </feature>
> 
> 
> 
> <feature name='osgiliath-persistence' version='${project.version}' resolver="(obr)" start-level="41" description="Java persistence API stack" >
>                 <bundle dependency='true'>mvn:javax.se <http://javax.se/>rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
>                 <feature version="${project.version}">osgiliath-jdbc</feature>
>                 <feature version="${org.apache.geronimo.components_geronimo-connector.version}">osgiliath-connector</feature>
>                 <feature version="${org.apache.aries.jp <http://org.apache.aries.jp/>a.version}">osgiliath-jpa</feature>
>                 <bundle dependency='true'>mvn:org.osgi/org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
>                 <feature version="${org.apache.openjpa.version}">osgiliath-openjpa</feature>
>                 <feature version="${org.apache.karaf.features_standard.version}">osgiliath-aries-blueprint</feature>
>                 <bundle>mvn:org.apache.xbean/xbean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
>                 <feature version="${project.version}">osgiliath-spring-data-jpa</feature>
>                 <conditional>
>                         <condition>osgiliath-rest-management</condition>
>                         <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-annotations/${io.swagger_swagger-annotations.version}</bundle>
>                 </conditional>  
>     </feature>
> 
> [/code]
> 
> 
> ​Best regards,​ and keep up bringing the OSGI dream comes true ;-)
> 
> 
> --
> Charlie Mordant
> 
> Full OSGI/EE stack made with Karaf:
> https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>
> 
> -- 
> Jean-Baptiste Onofré
> jbonofre@apache.org <ma...@apache.org>
> http://blog.nanthrax.net <http://blog.nanthrax.net/>
> Talend - http://www.talend.com <http://www.talend.com/>
> 
> 
> 
> -- 
> Charlie Mordant
> 
> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>


Re: Bundle restart are hard to tackle

Posted by Charlie Mordant <cm...@gmail.com>.
Hi J.B.,

Sure, it's always reproducible, I'll send it tonight (or tomorrow if I
haven't the time to do it).
I'm not in front of my computer for now, but will do my best as reactive as
possible.

Best Regards,

2017-01-31 10:41 GMT+01:00 Jean-Baptiste Onofré <jb...@nanthrax.net>:

> Hi Charlie,
>
> do you have the feature:install -v output ? It would help us to see the
> cause of the refresh (optional import, or other).
>
> Thanks !
>
> Regards
> JB
>
>
> On 01/31/2017 10:39 AM, Charlie Mordant wrote:
>
>> Hi users of the world's best application server ever ;-),
>>
>> I'm struggling with feature resolution, and would like to have your POV.
>>
>> This issue is concerning, the JDBC, the Blueprint and the transactional
>> feature.
>>
>> Here's the issue with feature resolution in my pax-exam test:
>>
>>
>> * The jdbc-pool-aries feature starts first (+ the config one and the cfg
>> \o/).
>> * Then the transactional feature
>> * The third feature thats start is the aries jndi one, so the two
>> datasources (the XA and non-XA ones) are exposed (\o/\o/).
>> * But the third that starts is the blueprint one, which starts the
>> xbean-blueprint bundle.
>> That blueprint bundle restarts the 'optional' resolutions of aries
>> transaction manager, which then restarts aries-jdbc modules (optional
>> res again) & config, which stops the datasource and starts another one.
>> ​Unfortunately, at this point, my 'daos' bundle is already linked with a
>> proxy to the 'old' datasource​.
>>
>> A way to fix it is to reference the 'transaction' feature in the
>> 'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but
>> it would then break some modularity.
>>
>> Have you got an idea on how to properly handle it?
>>
>> The actual xml of my features, they're slightly similar to the karaf
>> ones, with bundle versions aligned:
>> [code]
>>
>>      <feature name="osgiliath-pax-jdbc-pool-aries" description="Provides
>> JDBC Pooling DataSourceFactory using Aries Transaction JDBC"
>> version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}"
>> resolver="(obr)">
>>         <feature>osgiliath-pax-jdbc-spec</feature>
>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.
>> ops4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
>>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.
>> ops4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
>>         <conditional>
>>             <condition>osgiliath-aries-blueprint</condition>
>>             <bundle dependency="true">mvn:org.apac
>> he.xbean/xbean-blueprint/${org.apache.xbean_xbean-bluepri
>> nt.version}</bundle>
>>         </conditional>
>>         <conditional>
>>             <condition>osgiliath-transaction</condition>
>>             <bundle dependency="true">mvn:org.apac
>> he.aries.transaction/org.apache.aries.transaction.jdbc/${
>> org.apache.aries.transaction_org.apache.aries.transaction.
>> jdbc.version}</bundle>
>>         </conditional>
>>     </feature>
>>
>>
>>     <feature name="osgiliath-transaction" description="OSGi Transaction
>> Manager" version="${org.apache.aries.transaction_org.apache.aries.tra
>> nsaction.manager.version}">
>>         <config name="org.apache.aries.transaction" append="false">
>>             aries.transaction.recoverable = true
>>             aries.transaction.timeout = 600
>>             aries.transaction.howl.logFileDir = ${karaf.data}/txlog
>>             aries.transaction.howl.maxLogFiles = 2
>>             aries.transaction.howl.maxBlocksPerFile = 512
>>             aries.transaction.howl.bufferSize = 4
>>         </config>
>>         <feature version="${transaction-api_feature.version}"
>> prerequisite="false" dependency="false">osgiliath-t
>> ransaction-api</feature>
>>         <bundle dependency="true">mvn:org.apac
>> he.aries/org.apache.aries.util/${org.apache.aries_org.apache
>> .aries.util.version}</bundle>
>>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>> ansaction.manager/${org.apache.aries.transaction_org.apache.
>> aries.transaction.manager.version}</bundle>
>>         <conditional>
>>             <condition>osgiliath-aries-blueprint</condition>
>>             <bundle dependency="true">mvn:org.apac
>> he.felix/org.apache.felix.coordinator/${org.apache.felix_
>> org.apache.felix.coordinator.version}</bundle>
>>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>> ansaction.blueprint/${org.apache.aries.transaction_org.apach
>> e.aries.transaction.blueprint.version1}</bundle>
>>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.tr
>> ansaction.blueprint/${org.apache.aries.transaction_org.apach
>> e.aries.transaction.blueprint.version}</bundle>
>>             <bundle dependency="true">mvn:org.apac
>> he.xbean/xbean-blueprint/${org.apache.xbean_xbean-bluepri
>> nt.version}</bundle>
>>         </conditional>
>>         <conditional>
>>             <condition>osgiliath-spring</condition>
>>             <feature version="${org.apache.servicemix.bundles.spring.version}"
>> dependency="true">osgiliath-spring-tx</feature>
>>         </conditional>
>>     </feature>
>>
>> ********************************************************* Additional
>> informations ******************************************
>>
>>
>> <feature name="osgiliath-transaction-api" version="${transaction-api_fea
>> ture.version}">
>>         <bundle dependency="true">mvn:javax.in
>> terceptor/javax.interceptor-api/${javax.interceptor_javax.in
>> terceptor-api.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-
>> atinject_1.0_spec/${org.apache.geronimo.specs_geronimo
>> -atinject_1.0_spec.version}</bundle>
>>         <bundle dependency="true">mvn:javax.el
>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>         <bundle dependency="true">mvn:javax.en
>> terprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
>>         <bundle>mvn:javax.transaction/javax.transaction-api/${javax.
>> transaction_javax.transaction-api.version}</bundle>
>>     </feature>
>>  <feature name="osgiliath-persistence-api" description="Persistence API"
>> version="${persistence-api_feature.version}">
>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/
>> ${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
>>         <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry
>> /${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
>>     </feature>
>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container"
>> version="${org.apache.aries.jpa.version}">
>>         <feature version="${transaction-api_feature.version}"
>> prerequisite="false" dependency="false">osgiliath-t
>> ransaction-api</feature>
>>         <feature version="${persistence-api_feature.version}"
>> prerequisite="false" dependency="false">osgiliath-p
>> ersistence-api</feature>
>>         <bundle dependency="true">mvn:org.apac
>> he.felix/org.apache.felix.coordinator/${org.apache.felix_
>> org.apache.felix.coordinator.version}</bundle>
>>         <bundle dependency="true">mvn:org.osgi
>> /org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${
>> org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.contai
>> ner/${org.apache.aries.jpa_org.apache.aries.jpa.container
>> .version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.suppor
>> t/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>         <conditional>
>>             <condition>osgiliath-aries-blueprint</condition>
>>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.bluepr
>> int/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint
>> .version}</bundle>
>>         </conditional>
>>     </feature>
>>
>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x
>> persistence engine support" version="${org.apache.openjpa.version}">
>>         <feature prerequisite="false" dependency="false">osgiliath-j
>> ndi</feature>
>>         <feature version="${transaction-api_feature.version}"
>> prerequisite="false" dependency="false">osgiliath-t
>> ransaction-api</feature>
>>         <feature version="${persistence-api_feature.version}"
>> prerequisite="false" dependency="false">osgiliath-p
>> ersistence-api</feature>
>>         <bundle dependency="true">mvn:javax.se
>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.
>> version}</bundle>
>>         <bundle dependency="true">mvn:javax.el
>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>         <bundle dependency="true">mvn:commons-
>> lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>         <bundle dependency="true">mvn:commons-
>> collections/commons-collections/${commons-collections_
>> commons-collections.version}</bundle>
>>         <bundle dependency="true">mvn:commons-
>> pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>         <bundle dependency="true">mvn:org.apac
>> he.servicemix.bundles/org.apache.servicemix.bundles.commons-
>> dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.
>> bundles.commons-dbcp.version}</bundle>
>>         <bundle dependency="true">mvn:org.apac
>> he.servicemix.bundles/org.apache.servicemix.bundles.ant/${
>> org.apache.servicemix.bundles_org.apache.servicemix.bundles.
>> ant.version}</bundle>
>>         <bundle dependency="true">mvn:org.apac
>> he.servicemix.bundles/org.apache.servicemix.bundles.serp/${
>> org.apache.servicemix.bundles_org.apache.servicemix.bundles.
>> serp.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-
>> jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.
>> 1_spec.version}</bundle>
>>         <bundle dependency="true">mvn:org.apac
>> he.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-
>> shaded.version}</bundle>
>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_
>> openjpa.version}</bundle>
>>     </feature>
>> <feature name="osgiliath-connector" version="${org.apache.geronimo
>> .components_geronimo-connector.version}" description="OSGi Support for
>> JCA Connector 1.6" resolver="(obr)">
>>         <feature version="${org.apache.aries.tr
>> ansaction_org.apache.aries.transaction.manager.version}">osg
>> iliath-transaction</feature>
>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-
>> j2ee-connector_1.6_spec/${org.apache.geronimo.specs_
>> geronimo-j2ee-connector_1.6_spec.version}</bundle>
>>         <bundle dependency="true">mvn:javax.va
>> lidation/validation-api/${javax.validation_validation-api.
>> version}</bundle>
>>         <bundle>mvn:org.apache.geronimo.components/geronimo-connecto
>> r/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
>>     </feature>
>>  <feature name="osgiliath-jpa" description="OSGi Persistence Container"
>> version="${org.apache.aries.jpa.version}">
>>         <feature version="${transaction-api_feature.version}"
>> prerequisite="false" dependency="false">osgiliath-t
>> ransaction-api</feature>
>>         <feature version="${persistence-api_feature.version}"
>> prerequisite="false" dependency="false">osgiliath-p
>> ersistence-api</feature>
>>         <bundle dependency="true">mvn:org.apac
>> he.felix/org.apache.felix.coordinator/${org.apache.felix_
>> org.apache.felix.coordinator.version}</bundle>
>>         <bundle dependency="true">mvn:org.osgi
>> /org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${
>> org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.contai
>> ner/${org.apache.aries.jpa_org.apache.aries.jpa.container
>> .version}</bundle>
>>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.suppor
>> t/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>>         <conditional>
>>             <condition>osgiliath-aries-blueprint</condition>
>>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.bluepr
>> int/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint
>> .version}</bundle>
>>         </conditional>
>>     </feature>
>>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x
>> persistence engine support" version="${org.apache.openjpa.version}">
>>         <details>Enable Apache OpenJPA as persistence engine.</details>
>>         <feature prerequisite="false" dependency="false">osgiliath-j
>> ndi</feature>
>>         <feature version="${transaction-api_feature.version}"
>> prerequisite="false" dependency="false">osgiliath-t
>> ransaction-api</feature>
>>         <feature version="${persistence-api_feature.version}"
>> prerequisite="false" dependency="false">osgiliath-p
>> ersistence-api</feature>
>>         <bundle dependency="true">mvn:javax.se
>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.
>> version}</bundle>
>>         <bundle dependency="true">mvn:javax.el
>> /javax.el-api/${javax.el_javax.el-api.version}</bundle>
>>         <bundle dependency="true">mvn:commons-
>> lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>>         <bundle dependency="true">mvn:commons-
>> collections/commons-collections/${commons-collections_
>> commons-collections.version}</bundle>
>>         <bundle dependency="true">mvn:commons-
>> pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>>         <bundle dependency="true">mvn:org.apac
>> he.servicemix.bundles/org.apache.servicemix.bundles.commons-
>> dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.
>> bundles.commons-dbcp.version}</bundle>
>>         <bundle dependency="true">mvn:org.apac
>> he.servicemix.bundles/org.apache.servicemix.bundles.ant/${
>> org.apache.servicemix.bundles_org.apache.servicemix.bundles.
>> ant.version}</bundle>
>>         <bundle dependency="true">mvn:org.apac
>> he.servicemix.bundles/org.apache.servicemix.bundles.serp/${
>> org.apache.servicemix.bundles_org.apache.servicemix.bundles.
>> serp.version}</bundle>
>>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-
>> jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.
>> 1_spec.version}</bundle>
>>         <bundle dependency="true">mvn:org.apac
>> he.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-
>> shaded.version}</bundle>
>>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_
>> openjpa.version}</bundle>
>>     </feature>
>>
>>
>>
>> <feature name='osgiliath-persistence' version='${project.version}'
>> resolver="(obr)" start-level="41" description="Java persistence API stack" >
>>                 <bundle dependency='true'>mvn:javax.se
>> rvlet/javax.servlet-api/${javax.servlet_javax.servlet-api.
>> version}</bundle>
>>                 <feature version="${project.version}">o
>> sgiliath-jdbc</feature>
>>                 <feature version="${org.apache.geronimo
>> .components_geronimo-connector.version}">osgiliath-connector</feature>
>>                 <feature version="${org.apache.aries.jp
>> a.version}">osgiliath-jpa</feature>
>>                 <bundle dependency='true'>mvn:org.osgi
>> /org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
>>                 <feature version="${org.apache.openjpa.
>> version}">osgiliath-openjpa</feature>
>>                 <feature version="${org.apache.karaf.fe
>> atures_standard.version}">osgiliath-aries-blueprint</feature>
>>                 <bundle>mvn:org.apache.xbean/x
>> bean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
>>                 <feature version="${project.version}">o
>> sgiliath-spring-data-jpa</feature>
>>                 <conditional>
>>                         <condition>osgiliath-rest-management</condition>
>>                         <bundle start-level="35"
>> dependency="true">mvn:io.swagger/swagger-annotations/${io.
>> swagger_swagger-annotations.version}</bundle>
>>                 </conditional>
>>     </feature>
>>
>> [/code]
>>
>>
>> ​Best regards,​ and keep up bringing the OSGI dream comes true ;-)
>>
>>
>> --
>> Charlie Mordant
>>
>> Full OSGI/EE stack made with Karaf:
>> https://github.com/OsgiliathEnterprise/net.osgiliath.parent
>>
>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>



-- 
Charlie Mordant

Full OSGI/EE stack made with Karaf:
https://github.com/OsgiliathEnterprise/net.osgiliath.parent

Re: Bundle restart are hard to tackle

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Charlie,

do you have the feature:install -v output ? It would help us to see the 
cause of the refresh (optional import, or other).

Thanks !

Regards
JB

On 01/31/2017 10:39 AM, Charlie Mordant wrote:
> Hi users of the world's best application server ever ;-),
>
> I'm struggling with feature resolution, and would like to have your POV.
>
> This issue is concerning, the JDBC, the Blueprint and the transactional
> feature.
>
> Here's the issue with feature resolution in my pax-exam test:
>
>
> * The jdbc-pool-aries feature starts first (+ the config one and the cfg
> \o/).
> * Then the transactional feature
> * The third feature thats start is the aries jndi one, so the two
> datasources (the XA and non-XA ones) are exposed (\o/\o/).
> * But the third that starts is the blueprint one, which starts the
> xbean-blueprint bundle.
> That blueprint bundle restarts the 'optional' resolutions of aries
> transaction manager, which then restarts aries-jdbc modules (optional
> res again) & config, which stops the datasource and starts another one.
> \u200bUnfortunately, at this point, my 'daos' bundle is already linked with a
> proxy to the 'old' datasource\u200b.
>
> A way to fix it is to reference the 'transaction' feature in the
> 'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but
> it would then break some modularity.
>
> Have you got an idea on how to properly handle it?
>
> The actual xml of my features, they're slightly similar to the karaf
> ones, with bundle versions aligned:
> [code]
>
>      <feature name="osgiliath-pax-jdbc-pool-aries" description="Provides JDBC Pooling DataSourceFactory using Aries Transaction JDBC" version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}" resolver="(obr)">
>         <feature>osgiliath-pax-jdbc-spec</feature>
>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.ops4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
>         <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
>         <conditional>
>             <condition>osgiliath-aries-blueprint</condition>
>             <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>         </conditional>
>         <conditional>
>             <condition>osgiliath-transaction</condition>
>             <bundle dependency="true">mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/${org.apache.aries.transaction_org.apache.aries.transaction.jdbc.version}</bundle>
>         </conditional>
>     </feature>
>
>
>     <feature name="osgiliath-transaction" description="OSGi Transaction Manager" version="${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}">
>         <config name="org.apache.aries.transaction" append="false">
>             aries.transaction.recoverable = true
>             aries.transaction.timeout = 600
>             aries.transaction.howl.logFileDir = ${karaf.data}/txlog
>             aries.transaction.howl.maxLogFiles = 2
>             aries.transaction.howl.maxBlocksPerFile = 512
>             aries.transaction.howl.bufferSize = 4
>         </config>
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/${org.apache.aries_org.apache.aries.util.version}</bundle>
>         <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}</bundle>
>         <conditional>
>             <condition>osgiliath-aries-blueprint</condition>
>             <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version1}</bundle>
>             <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version}</bundle>
>             <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
>         </conditional>
>         <conditional>
>             <condition>osgiliath-spring</condition>
>             <feature version="${org.apache.servicemix.bundles.spring.version}" dependency="true">osgiliath-spring-tx</feature>
>         </conditional>
>     </feature>
>
> ********************************************************* Additional informations ******************************************
>
>
> <feature name="osgiliath-transaction-api" version="${transaction-api_feature.version}">
>         <bundle dependency="true">mvn:javax.interceptor/javax.interceptor-api/${javax.interceptor_javax.interceptor-api.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.geronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>         <bundle dependency="true">mvn:javax.enterprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
>         <bundle>mvn:javax.transaction/javax.transaction-api/${javax.transaction_javax.transaction-api.version}</bundle>
>     </feature>
>  <feature name="osgiliath-persistence-api" description="Persistence API" version="${persistence-api_feature.version}">
>         <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
>         <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry/${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
>     </feature>
>  <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jpa.version}">
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>         <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>         <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>         <conditional>
>             <condition>osgiliath-aries-blueprint</condition>
>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
>         </conditional>
>     </feature>
>
>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
>         <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>         <bundle dependency="true">mvn:javax.servlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>         <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>         <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>         <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>     </feature>
> <feature name="osgiliath-connector" version="${org.apache.geronimo.components_geronimo-connector.version}" description="OSGi Support for JCA Connector 1.6" resolver="(obr)">
>         <feature version="${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}">osgiliath-transaction</feature>
>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apache.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
>         <bundle dependency="true">mvn:javax.validation/validation-api/${javax.validation_validation-api.version}</bundle>
>         <bundle>mvn:org.apache.geronimo.components/geronimo-connector/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
>     </feature>
>  <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jpa.version}">
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>         <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
>         <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
>         <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
>         <conditional>
>             <condition>osgiliath-aries-blueprint</condition>
>             <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
>         </conditional>
>     </feature>
>      <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
>         <details>Enable Apache OpenJPA as persistence engine.</details>
>         <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
>         <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
>         <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
>         <bundle dependency="true">mvn:javax.servlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
>         <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
>         <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
>         <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
>         <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
>         <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
>         <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
>     </feature>
>
>
>
> <feature name='osgiliath-persistence' version='${project.version}' resolver="(obr)" start-level="41" description="Java persistence API stack" >
> 		<bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
> 		<feature version="${project.version}">osgiliath-jdbc</feature>
> 		<feature version="${org.apache.geronimo.components_geronimo-connector.version}">osgiliath-connector</feature>
> 		<feature version="${org.apache.aries.jpa.version}">osgiliath-jpa</feature>
> 		<bundle dependency='true'>mvn:org.osgi/org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
> 		<feature version="${org.apache.openjpa.version}">osgiliath-openjpa</feature>
> 		<feature version="${org.apache.karaf.features_standard.version}">osgiliath-aries-blueprint</feature>
> 		<bundle>mvn:org.apache.xbean/xbean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
> 		<feature version="${project.version}">osgiliath-spring-data-jpa</feature>
> 		<conditional>
> 			<condition>osgiliath-rest-management</condition>
> 			<bundle start-level="35" dependency="true">mvn:io.swagger/swagger-annotations/${io.swagger_swagger-annotations.version}</bundle>
> 		</conditional>	
>     </feature>
>
> [/code]
>
>
> \u200bBest regards,\u200b and keep up bringing the OSGI dream comes true ;-)
>
>
> --
> Charlie Mordant
>
> Full OSGI/EE stack made with Karaf:
> https://github.com/OsgiliathEnterprise/net.osgiliath.parent

-- 
Jean-Baptiste Onofr�
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Bundle restart are hard to tackle

Posted by Serge Huber <sh...@jahia.com>.
Sorry I can’t really help much about this topic but just wanted to react to one thing :


> On 31 Jan 2017, at 10:39, Charlie Mordant <cm...@gmail.com> wrote:
> 
> Hi users of the world's best application server ever ;-),

fully agree here ! Karaf is a (hidden) gem of the Apache community, it needs a lot more exposure.

> 
> ​Best regards,​ and keep up bringing the OSGI dream comes true ;-)
> 
> 
> -- 
> Charlie Mordant
> 
> Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEnterprise/net.osgiliath.parent <https://github.com/OsgiliathEnterprise/net.osgiliath.parent>

A little off-topic I just looked at your project and was wondering if you were considering adding GraphQL to it ? 

cheers,
  Serge… 

Re: Bundle restart are hard to tackle

Posted by Nick Baker <nb...@pentaho.com>.
I do agree that Felix can be very opaque when restarts occur. We usually end up sprinkling breakpoints around or attaching BTrace to log framework internals. refreshOptionalPackages() is often the cause. Some better logging about the trigger and cause of the refresh would be great. I know that we lose visibility to the root trigger as the events propagate across different threads, but someone ambitious/crafty should be able to handle it.


-Nick Baker

________________________________
From: Charlie Mordant <cm...@gmail.com>
Sent: Tuesday, January 31, 2017 4:39:32 AM
To: user@karaf.apache.org
Subject: Bundle restart are hard to tackle

Hi users of the world's best application server ever ;-),

I'm struggling with feature resolution, and would like to have your POV.

This issue is concerning, the JDBC, the Blueprint and the transactional feature.

Here's the issue with feature resolution in my pax-exam test:


* The jdbc-pool-aries feature starts first (+ the config one and the cfg \o/).
* Then the transactional feature
* The third feature thats start is the aries jndi one, so the two datasources (the XA and non-XA ones) are exposed (\o/\o/).
* But the third that starts is the blueprint one, which starts the xbean-blueprint bundle.
That blueprint bundle restarts the 'optional' resolutions of aries transaction manager, which then restarts aries-jdbc modules (optional res again) & config, which stops the datasource and starts another one.
​Unfortunately, at this point, my 'daos' bundle is already linked with a proxy to the 'old' datasource​.

A way to fix it is to reference the 'transaction' feature in the 'pool-aries' one, and the 'blueprint' one in the 'transaction' one, but it would then break some modularity.

Have you got an idea on how to properly handle it?

The actual xml of my features, they're slightly similar to the karaf ones, with bundle versions aligned:
[code]

     <feature name="osgiliath-pax-jdbc-pool-aries" description="Provides JDBC Pooling DataSourceFactory using Aries Transaction JDBC" version="${org.ops4j.pax.jdbc_pax-jdbc-features.version}" resolver="(obr)">
        <feature>osgiliath-pax-jdbc-spec</feature>
        <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-common/${org.ops4j.pax.jdbc_pax-jdbc-pool-common.version}</bundle>
        <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-aries/${org.ops4j.pax.jdbc_pax-jdbc-pool-aries.version}</bundle>
        <conditional>
            <condition>osgiliath-aries-blueprint</condition>
            <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
        </conditional>
        <conditional>
            <condition>osgiliath-transaction</condition>
            <bundle dependency="true">mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/${org.apache.aries.transaction_org.apache.aries.transaction.jdbc.version}</bundle>
        </conditional>
    </feature>


    <feature name="osgiliath-transaction" description="OSGi Transaction Manager" version="${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}">
        <config name="org.apache.aries.transaction" append="false">
            aries.transaction.recoverable = true
            aries.transaction.timeout = 600
            aries.transaction.howl.logFileDir = ${karaf.data}/txlog
            aries.transaction.howl.maxLogFiles = 2
            aries.transaction.howl.maxBlocksPerFile = 512
            aries.transaction.howl.bufferSize = 4
        </config>
        <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
        <bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/${org.apache.aries_org.apache.aries.util.version}</bundle>
        <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}</bundle>
        <conditional>
            <condition>osgiliath-aries-blueprint</condition>
            <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
            <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version1}</bundle>
            <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/${org.apache.aries.transaction_org.apache.aries.transaction.blueprint.version}</bundle>
            <bundle dependency="true">mvn:org.apache.xbean/xbean-blueprint/${org.apache.xbean_xbean-blueprint.version}</bundle>
        </conditional>
        <conditional>
            <condition>osgiliath-spring</condition>
            <feature version="${org.apache.servicemix.bundles.spring.version}" dependency="true">osgiliath-spring-tx</feature>
        </conditional>
    </feature>


********************************************************* Additional informations ******************************************

<feature name="osgiliath-transaction-api" version="${transaction-api_feature.version}">
        <bundle dependency="true">mvn:javax.interceptor/javax.interceptor-api/${javax.interceptor_javax.interceptor-api.version}</bundle>
        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/${org.apache.geronimo.specs_geronimo-atinject_1.0_spec.version}</bundle>
        <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
        <bundle dependency="true">mvn:javax.enterprise/cdi-api/${javax.enterprise_cdi-api.version}</bundle>
        <bundle>mvn:javax.transaction/javax.transaction-api/${javax.transaction_javax.transaction-api.version}</bundle>
    </feature>
 <feature name="osgiliath-persistence-api" description="Persistence API" version="${persistence-api_feature.version}">
        <bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/${org.apache.geronimo.specs_geronimo-jpa_2.0_spec.version}</bundle>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-osgi-registry/${org.apache.geronimo.specs_geronimo-osgi-registry.version}</bundle>
    </feature>
 <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jpa.version}">
        <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
        <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
        <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
        <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
        <conditional>
            <condition>osgiliath-aries-blueprint</condition>
            <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
        </conditional>
    </feature>

     <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
        <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
        <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
        <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
        <bundle dependency="true">mvn:javax.servlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
        <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
        <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
        <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
        <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
        <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
        <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
    </feature>
<feature name="osgiliath-connector" version="${org.apache.geronimo.components_geronimo-connector.version}" description="OSGi Support for JCA Connector 1.6" resolver="(obr)">
        <feature version="${org.apache.aries.transaction_org.apache.aries.transaction.manager.version}">osgiliath-transaction</feature>
        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/${org.apache.geronimo.specs_geronimo-j2ee-connector_1.6_spec.version}</bundle>
        <bundle dependency="true">mvn:javax.validation/validation-api/${javax.validation_validation-api.version}</bundle>
        <bundle>mvn:org.apache.geronimo.components/geronimo-connector/${org.apache.geronimo.components_geronimo-connector.version}</bundle>
    </feature>
 <feature name="osgiliath-jpa" description="OSGi Persistence Container" version="${org.apache.aries.jpa.version}">
        <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
        <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
        <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.coordinator/${org.apache.felix_org.apache.felix.coordinator.version}</bundle>
        <bundle dependency="true">mvn:org.osgi/org.osgi.service.jdbc/${org.osgi_org.osgi.service.jdbc.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${org.apache.aries.jpa_org.apache.aries.jpa.api.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${org.apache.aries.jpa_org.apache.aries.jpa.container.version}</bundle>
        <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.support/${org.apache.aries.jpa_org.apache.aries.jpa.support.version}</bundle>
        <conditional>
            <condition>osgiliath-aries-blueprint</condition>
            <bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint/${org.apache.aries.jpa_org.apache.aries.jpa.blueprint.version}</bundle>
        </conditional>
    </feature>
     <feature name="osgiliath-openjpa" description="Apache OpenJPA 2.4.x persistence engine support" version="${org.apache.openjpa.version}">
        <details>Enable Apache OpenJPA as persistence engine.</details>
        <feature prerequisite="false" dependency="false">osgiliath-jndi</feature>
        <feature version="${transaction-api_feature.version}" prerequisite="false" dependency="false">osgiliath-transaction-api</feature>
        <feature version="${persistence-api_feature.version}" prerequisite="false" dependency="false">osgiliath-persistence-api</feature>
        <bundle dependency="true">mvn:javax.servlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
        <bundle dependency="true">mvn:javax.el/javax.el-api/${javax.el_javax.el-api.version}</bundle>
        <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang_commons-lang.version}</bundle>
        <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections_commons-collections.version}</bundle>
        <bundle dependency="true">mvn:commons-pool/commons-pool/${commons-pool_commons-pool.version}</bundle>
        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.commons-dbcp.version}</bundle>
        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.ant.version}</bundle>
        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${org.apache.servicemix.bundles_org.apache.servicemix.bundles.serp.version}</bundle>
        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${org.apache.geronimo.specs_geronimo-jms_1.1_spec.version}</bundle>
        <bundle dependency="true">mvn:org.apache.xbean/xbean-asm5-shaded/${org.apache.xbean_xbean-asm5-shaded.version}</bundle>
        <bundle>mvn:org.apache.openjpa/openjpa/${org.apache.openjpa_openjpa.version}</bundle>
    </feature>



<feature name='osgiliath-persistence' version='${project.version}' resolver="(obr)" start-level="41" description="Java persistence API stack" >
                <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax.servlet_javax.servlet-api.version}</bundle>
                <feature version="${project.version}">osgiliath-jdbc</feature>
                <feature version="${org.apache.geronimo.components_geronimo-connector.version}">osgiliath-connector</feature>
                <feature version="${org.apache.aries.jpa.version}">osgiliath-jpa</feature>
                <bundle dependency='true'>mvn:org.osgi/org.osgi.service.jpa/${org.osgi_org.osgi.service.jpa.version}</bundle>
                <feature version="${org.apache.openjpa.version}">osgiliath-openjpa</feature>
                <feature version="${org.apache.karaf.features_standard.version}">osgiliath-aries-blueprint</feature>
                <bundle>mvn:org.apache.xbean/xbean-reflect/${org.apache.xbean_xbean-reflect.version}</bundle>
                <feature version="${project.version}">osgiliath-spring-data-jpa</feature>
                <conditional>
                        <condition>osgiliath-rest-management</condition>
                        <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-annotations/${io.swagger_swagger-annotations.version}</bundle>
                </conditional>
    </feature>

[/code]


​Best regards,​ and keep up bringing the OSGI dream comes true ;-)


--
Charlie Mordant

Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEnterprise/net.osgiliath.parent
________________________________


This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed to. If you are not the named addressee you should not disseminate, distribute, copy or alter this email. Please notify the sender immediately by e-mail if you have received this email by mistake and delete this email from your systems. If you are not the intended addressee, please note that disclosing, copying, distributing or taking any action in reliance on the contents of such an email is strictly prohibited.

Any views or opinions presented in this email are solely those of the author and might not represent those of Pentaho Corporation and its affiliates. Please be aware that emails are not a secure mode of communication and may be intercepted by third parties.

WARNING: Computer viruses and other malicious codes can be transmitted by email and its attachments. You or your organization are advised to scan this email and its attachments for the presence of any computer viruses and malicious codes. Although Pentaho Corporation has taken reasonable precautions to ensure no viruses and other malicious codes are present in this email, Pentaho Corporation cannot accept responsibility for any loss or damage arising from the use of this email or its attachments.

Pentaho Corporation is a company incorporated in the State of Delaware in the USA and its principal place of business is at Suite 460, 5950 Hazeltine National Drive, Orlando, FL32822, USA.