karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Markus Rathgeb (JIRA)" <j...@apache.org>
Subject [jira] [Created] (KARAF-4124) feature config installer adds property to config
Date Wed, 18 Nov 2015 17:30:11 GMT
Markus Rathgeb created KARAF-4124:
-------------------------------------

             Summary: feature config installer adds property to config
                 Key: KARAF-4124
                 URL: https://issues.apache.org/jira/browse/KARAF-4124
             Project: Karaf
          Issue Type: Bug
          Components: karaf-feature
    Affects Versions: 4.0.3
            Reporter: Markus Rathgeb


The <config/> element in a feature XML allows a feature to create and/or populate a
configuration (identified by a configuration PID).

The "FeatureConfigInstaller" adds a custom property to the configuration.
key = "org.apache.karaf.features.configKey"
value = result of function call "createConfigurationKey(pid[0], pid[1])"

There are bundles that cannot handle additional properties in the configuration.

For example:
* using Aries JPA + Hiberante + h2
* the configuration is installed by a feature and a realted config entry
* this will result in a non working setup

Caused by: org.h2.jdbc.JdbcSQLException: Unsupported connection setting "ORG.APACHE.KARAF.FEATURES.CONFIGKEY"
[90113-172]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
        at org.h2.message.DbException.get(DbException.java:169)
        at org.h2.message.DbException.get(DbException.java:146)
        at org.h2.engine.ConnectionInfo.readSettingsFromURL(ConnectionInfo.java:266)
        at org.h2.engine.ConnectionInfo.<init>(ConnectionInfo.java:77)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:90)
        at org.h2.Driver.connect(Driver.java:73)
        at org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:187)
        at org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:323)
        at org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory.createConnection(DataSourceXAConnectionFactory.java:112)
        at org.apache.commons.dbcp2.managed.PoolableManagedConnectionFactory.makeObject(PoolableManagedConnectionFactory.java:66)
        at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868)
        at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
        at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
        at org.apache.commons.dbcp2.managed.ManagedConnection.updateTransactionStatus(ManagedConnection.java:127)
        ... 132 more


There is a conditional branch in the "findExistingConfiguration" function to filter (find)
the configuration using that property instead of the service.pid (this is another conditional
branch).

Is there any reason for using that property?

I changed the "FeatureConfigInstaller" to not append that property and the above example is
working now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message