I think that the mentioned metatype support in xml files isn't as mandatory as in the annotation API due to separation of implementation, blueprint model and related metadata. But when the blueprint model is already part of the implementation using annotations a separated metadata xml shouldn't be necessary. When there isn't any implementation yet, I will open a feature request.
Dirk Von: Christian Schneider [mailto:[email protected]] Im Auftrag von Christian Schneider Gesendet: Dienstag, 14. Mai 2013 11:32 An: [email protected] Betreff: Re: Some thoughts about Blueprint and MetaType I also think the metatype support could be improved. What I observed is that I often have to repeat the same defaults in the metatype xml and in blueprint. The reason to have the default values in metatype is to have them for e.g. webconsole. The reason to have the default values in blueprint in the default-properties tag is to make sure my application works when no config is present. I have added some snippets below to show how it looks like. I wonder if we could add some more metatype features to the default-properties tag and then use this meta data to create metatype informations like Dirk suggested. So for example we could add attributes for required and type. Christian --- Config in metatype: <?xml version="1.0" encoding="UTF-8"?> <MetaData xmlns="http://www.osgi.org/xmlns/metadata/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.osgi.org/xmlns/metadata/v1.0.0 http://www.osgi.org/xmlns/metatype/v1.1.0/metatype.xsd "> <OCD description="Configured Example Application" name="ConfigApp" id="ConfigApp"> <AD name="Title" id="title" required="true" type="String" default="Default Title" description="Title for the Application"/> </OCD> <Designate pid="ConfigApp"> <Object ocdref="ConfigApp"/> </Designate> </MetaData> Config in blueprint: <cm:property-placeholder persistent-id="ConfigApp" update-strategy="reload" > <cm:default-properties> <cm:property name="title" value="Default Title"/> </cm:default-properties> </cm:property-placeholder> On 14.05.2013 10:54, Rudolph, Dirk wrote: Hi all, currently we are migrating one of our projects from SCR to blueprint using Apache Aries. We defined our services using XML files and want to provide a proper configuration for them using Apache Felix Web Console. According to the OSGI specs we have to write MetaType information for that, what it is a little bit dirty in my eyes. Would it be possible to combine MetaType information and Blueprint definition? In my eyes the following possibilities would be nice to have: 1. Having a namespace that allows the user to add MetaType information to the blueprint definition XML files. This information could then be published using a MetaTypeProvider. 2. Adding the MetaType information to the Blueprint Annotation API and also publishing them using a MetaTypeProvider Additionally I had a look at the Blueprint Annotation implementation and mentioned that the Blueprint model is generated during runtime. Wouldn't it be better to generate the model during build (e.g using a maven plugin similar to Apache Felix SCR Plugin)? Thanks a lot, Dirk Rudolph T-Systems Multimedia Solutions GmbH Organisationseinheit CCS Dirk Rudolph Software-Entwicklung, OCJP Hausanschrift: Riesaer Straße 5, 01129 Dresden Postanschrift: Postfach 10 02 24, 01072 Dresden +49 351 2820-5363 (Tel) E-Mail: [email protected] <mailto:[email protected]> Internet: http://www.t-systems-mms.com <http://www.t-systems-mms.de/> T-Systems Multimedia Solutions GmbH Aufsichtsrat: Klaus Werner (Vorsitzender) Geschäftsführung: Peter Klingenburg, Dr. Jens Nebendahl Handelsregister: Amtsgericht Dresden HRB 11433 Sitz der Gesellschaft: Dresden Ust-IdNr.: DE 811 807 949 -- Christian Schneider http://www.liquid-reality.de Open Source Architect http://www.talend.com
