Make CM allow hierarchical values --------------------------------- Key: FELIX-1603 URL: https://issues.apache.org/jira/browse/FELIX-1603 Project: Felix Issue Type: Wish Components: Configuration Admin Reporter: Bulat Nigmatullin Priority: Minor
We need some extended features in ConfigurationAdmin: submaps in configuration dictionaries, which will be read by my PersistenceManager. I have idea, how to do it: Create an interface: interface ConfigurationDictionary extends Dictionary { public ConfigurationDictionary copy(boolean deepCopy); } Lets CaseInsenstiveDictionary implements it: public ConfigurationDictionary copy(boolean deepCopy) { return new CaseInsensitveDictionary(this, deepCopy); } And rewrite some members ConfigurationImpl: private volatile ConfigurationDictionary properties; ... public Dictionary getProperties( boolean deepCopy ) { // no properties yet if ( properties == null ) { return null; } ConfigurationDictionary props = properties.copy( deepCopy ); // fix special properties (pid, factory PID, bundle location) setAutoProperties( props, false ); return props; } ... private void configure( final Dictionary properties ) { final ConfigurationDictionary newProperties; if ( properties == null ) { newProperties = null; } else { // remove predefined properties clearAutoProperties( properties ); // ensure ConfigurationDictionary if ( properties instanceof ConfigurationDictionary ) { newProperties = ( ConfigurationDictionary ) properties; } else { newProperties = new CaseInsensitiveDictionary( properties ); } } synchronized ( this ) { this.properties = newProperties; this.lastModificationTime = System.currentTimeMillis(); } } After this changes we will have possibility to create complex structures of properties. For example, nested maps or somesing else - depends on developer's wishes. Or, if it is not possible, just add nested maps in CaseInsensitiveDictionary implementation. But it will involve much more code changes. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.