The problem, really is that scope=compile on the utils bundle is the viral 
thing which cannot be undone by doing scope=provided in the consumer of the 
utils bundle … (unless you explicitly exclude the dependency or do the ordering 
trick)

Regards
Felix

> Am 28.02.2017 um 15:02 schrieb Guillaume Nodet <gno...@apache.org>:
> 
> I disagree.  Semantically, utils dependencies are actually at
> scope=compile.   However an osgi bundle should depend on utils with a
> scope=provided because it has to embed the packages it needs, so it makes
> sense to not convey this dependency.
> 
> 2017-02-28 14:49 GMT+01:00 Felix Meschberger <fmesc...@adobe.com>:
> 
>> Hi
>> 
>> The problem seems that utils actually declares its own dependencies with
>> scope=compile which pollutes the transitive dependency space.
>> 
>> The fix is for utils to declare the dependencies as scope=provided so that
>> these dependencies are not transitive.
>> 
>> Regards
>> Felix
>> 
>>> Am 28.02.2017 um 11:30 schrieb David Leangen (JIRA) <j...@apache.org>:
>>> 
>>> 
>>>   [ https://issues.apache.org/jira/browse/FELIX-5571?page=
>> com.atlassian.jira.plugin.system.issuetabpanels:comment-
>> tabpanel&focusedCommentId=15887753#comment-15887753 ]
>>> 
>>> David Leangen commented on FELIX-5571:
>>> --------------------------------------
>>> 
>>> It is in the Activator.
>>> 
>>> Actually, I did. I added the depdendency as:
>>> 
>>> {code}
>>>       <dependency>
>>>           <groupId>org.apache.felix</groupId>
>>>           <artifactId>org.apache.felix.utils</artifactId>
>>>           <version>1.9.1-SNAPSHOT</version>
>>>           <scope>provided</scope>
>>>       </dependency>
>>> {code}
>>> 
>>> It pulls in the old osgi core transitively, and causes this exception:
>>> 
>>> {code}
>>> [ERROR] Failed to execute goal org.apache.maven.plugins:
>> maven-compiler-plugin:3.2:compile (default-compile) on project
>> org.apache.felix.serializer: Compilation failure: Compilation failure:
>>> [ERROR] /Users/dleangen/libs/felix/converter/serializer/src/main/
>> java/org/apache/felix/serializer/impl/Activator.java:[35,16] no suitable
>> method found for registerService(java.lang.Class<org.osgi.service.
>> serializer.Serializer>,org.apache.felix.serializer.impl.
>> json.JsonSerializerImpl,java.util.Dictionary<java.lang.
>> String,java.lang.Object>)
>>> [ERROR] method org.osgi.framework.BundleContext.registerService(
>> java.lang.String[],java.lang.Object,java.util.Dictionary) is not
>> applicable
>>> [ERROR] (argument mismatch; 
>>> java.lang.Class<org.osgi.service.serializer.Serializer>
>> cannot be converted to java.lang.String[])
>>> {code}
>>> 
>>> R6 allows a class as a parameter to BundleContext.registerService(),
>> but R4 does not. I don't think it would be the right call to revert to the
>> older version of this method call.
>>> 
>>>> Replace JSONParser in Serializer with the new one from utils
>>>> ------------------------------------------------------------
>>>> 
>>>>               Key: FELIX-5571
>>>>               URL: https://issues.apache.org/jira/browse/FELIX-5571
>>>>           Project: Felix
>>>>        Issue Type: Bug
>>>>        Components: Converter
>>>>          Reporter: David Leangen
>>>>          Assignee: David Leangen
>>>> 
>>>> I can do this if there are no objections.
>>> 
>>> 
>>> 
>>> --
>>> This message was sent by Atlassian JIRA
>>> (v6.3.15#6346)
>> 
>> 
> 
> 
> -- 
> ------------------------
> Guillaume Nodet

Reply via email to