You pointed me at where it is documented in the OSGi Javadoc:

http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Constants.html#IMPORT_SERVICE

Alasdair

On 11 March 2010 11:48, Guillaume Nodet <[email protected]> wrote:
> On Thu, Mar 11, 2010 at 12:35, Alasdair Nottingham <[email protected]> wrote:
>> As I have explained before I am -1 for this for the following reason:
>>
>> 1. I hate any type of double definition. It just results in errors
>> when they get out of sync.
>
> I don't understand.  What i've done is exactly to remove double
> definitions which were in obr.xml files.
>
>> 2. The Import-Service and Export-Service headers are not expressive
>> enough. They only allow you to specify a comma separated list of
>> service classes. You cannot specify service properties or service
>> filters for publishing or consuming services.
>>
>> I think it is a reasonable fall back to use these headers, but not as
>> a primary thing.
>
> Nobody has ever said they consist in a comma separated list of service 
> classes.
> The way I've implemented the generation is exactly what you're asking for.
>
> Export-Service:  foo.bar.Interface;availability:=optional;x=v
>
> You're right about the filters, I haven't put those on the header, but
> I'll fix that asap.
>
> Unless you can prove that there are some informations that can't be
> put on those headers,
> I think it really simplifies the role of the tooling to not have to
> dig into multiple different formats.
>
>> Alasdair
>>
>> On 11 March 2010 09:47, Guillaume Nodet <[email protected]> wrote:
>>> On Thu, Mar 11, 2010 at 10:07, Jeremy Hughes <[email protected]> wrote:
>>>> I was wondering about this change. AIUI the Export-Service and
>>>> Import-Service are deprecated and adding them means a duplication of
>>>> meta-data. I haven't yet seen what is making use of them - I guess
>>>> it's to populate an OBR repository.xml. Because it's non-standard (not
>>>> in the blueprint spec) whatever is expecting those exports/imports to
>>>> be there, if it didn't find any, it would need to look for
>>>> blueprint.xml files and services imported/exported there just in case
>>>> the tool that generated the bundle didn't include export/import
>>>> service headers.
>>>
>>> I don't think this would be a good idea to have a generic osgi tool do that.
>>> I think the real problem would be that it would not catch pure osgi
>>> bundle (those who don't
>>> use blueprint at all, such as the aries-transaction-manager for example).
>>> In such cases, the only way is to rely on those headers, so it makes
>>> sense to not bloat
>>> all osgi tools and instead leverage those headers imho.
>>>
>>> I'm not sure in which way the metadata in those headers is limited.
>>> And if it is, we should
>>> extend it imho.  And there will always be cases where you can't know
>>> the whole data
>>> unless in the real environment (imagine if one of the service property
>>> is computed at runtime,
>>> or if the exact class exported isn't easily determined and you export
>>> all its interfaces ...).
>>> So I think you can know the intent, but not always the end result.
>>>
>>> Anyway, if you prefer enhancing OBR, maven-bundle-plugin, bnd and
>>> bindex to natively support
>>> introspecting blueprint bundles, declarative services, iPojo in
>>> addition to those headers (which are
>>> still the only way if you use the plain OSGI api), you're welcome to
>>> do so.  Once your patches
>>> are in, I'll happily remove those bits ;-)
>>>
>>>> I'm more -0 for this change, because it doesn't hurt, but a consumer
>>>> of the gen'd headers can't be guaranteed that they fully represent
>>>> what's in the blueprint.xml files.
>>>>
>>>> Cheers,
>>>> Jeremy
>>>>
>>>> On 10 March 2010 21:18,  <[email protected]> wrote:
>>>>> Author: gnodet
>>>>> Date: Wed Mar 10 21:18:42 2010
>>>>> New Revision: 921573
>>>>>
>>>>> URL: http://svn.apache.org/viewvc?rev=921573&view=rev
>>>>> Log:
>>>>> ARIES-197: remove the obr.xml files and use the latest plugin snapshot 
>>>>> which is able to introspect the blueprint bundles
>>>>>
>>>>> Removed:
>>>>>    incubator/aries/trunk/application/application-converters/obr.xml
>>>>>    incubator/aries/trunk/application/application-install/obr.xml
>>>>>    incubator/aries/trunk/application/application-management/obr.xml
>>>>>    incubator/aries/trunk/application/application-obr-resolver/obr.xml
>>>>>    incubator/aries/trunk/application/application-runtime/obr.xml
>>>>>    incubator/aries/trunk/application/application-utils/obr.xml
>>>>>    incubator/aries/trunk/blueprint/blueprint-bundle/obr.xml
>>>>>    incubator/aries/trunk/transaction/transaction-blueprint/obr.xml
>>>>>    incubator/aries/trunk/transaction/transaction-manager/obr.xml
>>>>>    incubator/aries/trunk/web/web-urlhandler/obr.xml
>>>>> Modified:
>>>>>    incubator/aries/trunk/application/application-management/pom.xml
>>>>>    incubator/aries/trunk/application/application-obr-resolver/pom.xml
>>>>>    incubator/aries/trunk/application/application-runtime/pom.xml
>>>>>    incubator/aries/trunk/application/application-utils/pom.xml
>>>>>    incubator/aries/trunk/blueprint/blueprint-bundle/pom.xml
>>>>>    incubator/aries/trunk/blueprint/blueprint-core/pom.xml
>>>>>    incubator/aries/trunk/parent/default-parent/pom.xml
>>>>>    incubator/aries/trunk/transaction/transaction-blueprint/pom.xml
>>>>>    incubator/aries/trunk/transaction/transaction-testbundle/pom.xml
>>>>>    incubator/aries/trunk/web/web-urlhandler/pom.xml
>>>>>
>>>>> Modified: incubator/aries/trunk/application/application-management/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-management/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/application/application-management/pom.xml 
>>>>> (original)
>>>>> +++ incubator/aries/trunk/application/application-management/pom.xml Wed 
>>>>> Mar 10 21:18:42 2010
>>>>> @@ -77,16 +77,6 @@
>>>>>                 <configuration>
>>>>>                     <instructions>
>>>>>                         
>>>>> <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
>>>>> -                        <Import-Service>
>>>>> -                            
>>>>> org.apache.aries.application.ApplicationMetadataFactory,
>>>>> -                            
>>>>> org.apache.aries.application.DeploymentMetadataFactory,
>>>>> -                            
>>>>> org.apache.aries.application.management.AriesApplicationResolver,
>>>>> -                            
>>>>> org.apache.aries.application.management.LocalPlatform,
>>>>> -                            
>>>>> org.apache.aries.application.management.ApplicationContextManager
>>>>> -                        </Import-Service>
>>>>> -                        <Export-Service>
>>>>> -                            
>>>>> org.apache.aries.application.management.AriesApplicationManager
>>>>> -                        </Export-Service>
>>>>>                         
>>>>> <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
>>>>>                         
>>>>> <_removeheaders>Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL</_removeheaders>
>>>>>                     </instructions>
>>>>>
>>>>> Modified: 
>>>>> incubator/aries/trunk/application/application-obr-resolver/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-obr-resolver/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/application/application-obr-resolver/pom.xml 
>>>>> (original)
>>>>> +++ incubator/aries/trunk/application/application-obr-resolver/pom.xml 
>>>>> Wed Mar 10 21:18:42 2010
>>>>> @@ -56,12 +56,6 @@
>>>>>                 <configuration>
>>>>>                     <instructions>
>>>>>                         
>>>>> <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
>>>>> -                        <Import-Service>
>>>>> -                            org.osgi.service.obr.RepositoryAdmin
>>>>> -                        </Import-Service>
>>>>> -                        <Export-Service>
>>>>> -                            
>>>>> org.apache.aries.application.management.AriesApplicationResolver
>>>>> -                        </Export-Service>
>>>>>                         
>>>>> <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
>>>>>                         
>>>>> <_removeheaders>Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL</_removeheaders>
>>>>>                     </instructions>
>>>>>
>>>>> Modified: incubator/aries/trunk/application/application-runtime/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-runtime/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/application/application-runtime/pom.xml 
>>>>> (original)
>>>>> +++ incubator/aries/trunk/application/application-runtime/pom.xml Wed Mar 
>>>>> 10 21:18:42 2010
>>>>> @@ -77,11 +77,6 @@
>>>>>                 <configuration>
>>>>>                     <instructions>
>>>>>                         
>>>>> <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
>>>>> -                        <Export-Service>
>>>>> -                            
>>>>> org.apache.aries.application.management.ApplicationContextManager,
>>>>> -                            
>>>>> org.apache.aries.application.management.LocalPlatform,
>>>>> -                            
>>>>> org.apache.aries.application.management.AriesApplicationResolver
>>>>> -                        </Export-Service>
>>>>>                         
>>>>> <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
>>>>>                         
>>>>> <_removeheaders>Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL</_removeheaders>
>>>>>                     </instructions>
>>>>>
>>>>> Modified: incubator/aries/trunk/application/application-utils/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-utils/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/application/application-utils/pom.xml (original)
>>>>> +++ incubator/aries/trunk/application/application-utils/pom.xml Wed Mar 
>>>>> 10 21:18:42 2010
>>>>> @@ -68,12 +68,6 @@
>>>>>     <build>
>>>>>         <resources>
>>>>>             <resource>
>>>>> -                <directory>${basedir}</directory>
>>>>> -                <includes>
>>>>> -                    <include>obr.xml</include>
>>>>> -                </includes>
>>>>> -            </resource>
>>>>> -            <resource>
>>>>>                 <targetPath>OSGI-INF/blueprint</targetPath>
>>>>>                 <filtering>false</filtering>
>>>>>                 
>>>>> <directory>${basedir}/src/main/resources/OSGI-INF/blueprint</directory>
>>>>> @@ -101,10 +95,6 @@
>>>>>                             
>>>>> org.apache.aries.application.utils.manifest;version="${pom.version}",
>>>>>                             
>>>>> org.apache.aries.application.utils.management;version="${pom.version}"
>>>>>                         </Export-Package>
>>>>> -                        <Export-Service>
>>>>> -                            
>>>>> org.apache.aries.application.ApplicationMetadataFactory,
>>>>> -                            
>>>>> org.apache.aries.application.DeploymentMetadataFactory
>>>>> -                        </Export-Service>
>>>>>                         
>>>>> <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
>>>>>                         
>>>>> <_removeheaders>Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL</_removeheaders>
>>>>>                     </instructions>
>>>>>
>>>>> Modified: incubator/aries/trunk/blueprint/blueprint-bundle/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-bundle/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/blueprint/blueprint-bundle/pom.xml (original)
>>>>> +++ incubator/aries/trunk/blueprint/blueprint-bundle/pom.xml Wed Mar 10 
>>>>> 21:18:42 2010
>>>>> @@ -69,7 +69,7 @@
>>>>>                 <artifactId>maven-bundle-plugin</artifactId>
>>>>>                 <configuration>
>>>>>                     <instructions>
>>>>> -                        
>>>>> <Bundle-SymbolicName>${pom.groupId}</Bundle-SymbolicName>
>>>>> +                        
>>>>> <Bundle-SymbolicName>${pom.groupId};blueprint.graceperiod:=false</Bundle-SymbolicName>
>>>>>                         
>>>>> <Bundle-Activator>org.apache.aries.blueprint.container.BlueprintExtender</Bundle-Activator>
>>>>>                         <Import-Package>
>>>>>                             !org.apache.aries.blueprint*,
>>>>> @@ -102,10 +102,11 @@
>>>>>                             OSGI-INF*
>>>>>                         </Private-Package>
>>>>>                         <Export-Service>
>>>>> -                            org.apache.aries.blueprint.ParserService,
>>>>> -                            
>>>>> org.apache.aries.blueprint.NamespaceHandler;osgi.service.blueprint.namespace=http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0,
>>>>> -                            
>>>>> org.apache.aries.blueprint.NamespaceHandler;osgi.service.blueprint.namespace=http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0
>>>>> +                            org.apache.aries.blueprint.ParserService
>>>>>                         </Export-Service>
>>>>> +                        <Import-Service>
>>>>> +                            
>>>>> org.osgi.service.cm.ConfigurationAdmin;availability:=optional
>>>>> +                        </Import-Service>
>>>>>                         <!-- include the right NOTICE with attribution to 
>>>>> the OSGi alliance -->
>>>>>                         
>>>>> <Include-Resource>{maven-resources},META-INF/NOTICE=../NOTICE</Include-Resource>
>>>>>                         
>>>>> <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
>>>>>
>>>>> Modified: incubator/aries/trunk/blueprint/blueprint-core/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/blueprint/blueprint-core/pom.xml (original)
>>>>> +++ incubator/aries/trunk/blueprint/blueprint-core/pom.xml Wed Mar 10 
>>>>> 21:18:42 2010
>>>>> @@ -105,7 +105,11 @@
>>>>>                           
>>>>> org.apache.aries.util.tracker;resolution:=optional,
>>>>>                           org.osgi.service.event*;resolution:=optional,
>>>>>                           org.osgi.service.framework;resolution:=optional,
>>>>> -                          *</Import-Package>
>>>>> +                          *
>>>>> +                        </Import-Package>
>>>>> +                        <Export-Service>
>>>>> +                            org.apache.aries.blueprint.ParserService
>>>>> +                        </Export-Service>
>>>>>                         
>>>>> <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
>>>>>                         
>>>>> <_removeheaders>Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL</_removeheaders>
>>>>>                     </instructions>
>>>>>
>>>>> Modified: incubator/aries/trunk/parent/default-parent/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/parent/default-parent/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/parent/default-parent/pom.xml (original)
>>>>> +++ incubator/aries/trunk/parent/default-parent/pom.xml Wed Mar 10 
>>>>> 21:18:42 2010
>>>>> @@ -151,14 +151,6 @@
>>>>>     <build>
>>>>>         <resources>
>>>>>             <resource>
>>>>> -                <directory>${project.basedir}</directory>
>>>>> -                <filtering>false</filtering>
>>>>> -                <includes>
>>>>> -                    <include>obr.xml</include>
>>>>> -                </includes>
>>>>> -            </resource>
>>>>> -
>>>>> -            <resource>
>>>>>                 
>>>>> <directory>${project.basedir}/src/main/resources</directory>
>>>>>                 <filtering>false</filtering>
>>>>>                 <includes>
>>>>> @@ -231,7 +223,7 @@
>>>>>                 <plugin>
>>>>>                     <groupId>org.apache.felix</groupId>
>>>>>                     <artifactId>maven-bundle-plugin</artifactId>
>>>>> -                    <version>2.0.1</version>
>>>>> +                    <version>2.1.0-SNAPSHOT</version>
>>>>>                     <extensions>true</extensions>
>>>>>                 </plugin>
>>>>>
>>>>>
>>>>> Modified: incubator/aries/trunk/transaction/transaction-blueprint/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/transaction/transaction-blueprint/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/transaction/transaction-blueprint/pom.xml 
>>>>> (original)
>>>>> +++ incubator/aries/trunk/transaction/transaction-blueprint/pom.xml Wed 
>>>>> Mar 10 21:18:42 2010
>>>>> @@ -92,13 +92,6 @@
>>>>>                             org.apache.aries.transaction.parsing
>>>>>                         </Private-Package>
>>>>>                         
>>>>> <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
>>>>> -                        <Import-Service>
>>>>> -                           javax.transaction.TransactionManager
>>>>> -                        </Import-Service>
>>>>> -                        <Export-Service>
>>>>> -                            org.apache.aries.blueprint.Interceptor,
>>>>> -                            org.apache.aries.blueprint.NamespaceHandler
>>>>> -                        </Export-Service>
>>>>>                     </instructions>
>>>>>                 </configuration>
>>>>>             </plugin>
>>>>>
>>>>> Modified: incubator/aries/trunk/transaction/transaction-testbundle/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/transaction/transaction-testbundle/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/transaction/transaction-testbundle/pom.xml 
>>>>> (original)
>>>>> +++ incubator/aries/trunk/transaction/transaction-testbundle/pom.xml Wed 
>>>>> Mar 10 21:18:42 2010
>>>>> @@ -44,11 +44,13 @@
>>>>>             <plugin>
>>>>>                 <groupId>org.apache.felix</groupId>
>>>>>                 <artifactId>maven-bundle-plugin</artifactId>
>>>>> -                <version>2.0.1</version>
>>>>>                 <extensions>true</extensions>
>>>>>                 <configuration>
>>>>>                     <instructions>
>>>>>                          
>>>>> <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
>>>>> +
>>>>> +                                               
>>>>> <nsh_interface>org.apache.aries.blueprint.NamespaceHandler</nsh_interface>
>>>>> +                                               
>>>>> <nsh_namespace>osgi.service.blueprint.namespace</nsh_namespace>
>>>>>                     </instructions>
>>>>>                 </configuration>
>>>>>             </plugin>
>>>>>
>>>>> Modified: incubator/aries/trunk/web/web-urlhandler/pom.xml
>>>>> URL: 
>>>>> http://svn.apache.org/viewvc/incubator/aries/trunk/web/web-urlhandler/pom.xml?rev=921573&r1=921572&r2=921573&view=diff
>>>>> ==============================================================================
>>>>> --- incubator/aries/trunk/web/web-urlhandler/pom.xml (original)
>>>>> +++ incubator/aries/trunk/web/web-urlhandler/pom.xml Wed Mar 10 21:18:42 
>>>>> 2010
>>>>> @@ -61,10 +61,6 @@
>>>>>                         <Export-Package>
>>>>>                             
>>>>> org.apache.aries.web.converter;version="${pom.version}",
>>>>>                         </Export-Package>
>>>>> -                        <Export-Service>
>>>>> -                            
>>>>> org.apache.aries.web.converter.WarToWabConverter,
>>>>> -                            
>>>>> org.osgi.service.url.URLStreamHandlerService;url.handler.protocol=webbundle
>>>>> -                        </Export-Service>
>>>>>                         
>>>>> <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
>>>>>                         
>>>>> <_removeheaders>Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL</_removeheaders>
>>>>>                     </instructions>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Cheers,
>>> Guillaume Nodet
>>> ------------------------
>>> Blog: http://gnodet.blogspot.com/
>>> ------------------------
>>> Open Source SOA
>>> http://fusesource.com
>>>
>>
>>
>>
>> --
>> Alasdair Nottingham
>> [email protected]
>>
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>



-- 
Alasdair Nottingham
[email protected]

Reply via email to