Hi, 

The build works fine for me in GitPod. You probably have corrupt things in your 
local repo, either delete them or force an update of snapshots (-U on the 
command line). Note that you also get a nice error message for the case that 
you claim didn’t work:

[ERROR] Failed to execute goal 
biz.aQute.bnd:bnd-maven-plugin:4.2.0-SNAPSHOT:bnd-process (default) on project 
impl: In component io.jatoms.osgi.refs.ComponentImpl, field tests policy is 
'dynamic' and field is not volatile. -> [Help 1]

Best Regards,

Tim

> On 18 Feb 2019, at 13:45, Thomas Driessen <thomas.driessen...@gmail.com> 
> wrote:
> 
> Hi Tim,
> 
> I added this plugin repository and change the bnd.version property to 
> 4.2.0-SNAPSHOT, but still get errors during the build with eroor message "No 
> plugin found for prefix 'bnd-indexer' ..." 
> Maven complains about several metadata being invalid, e.g.:
> 
> The metadata 
> /home/gitpod/.m2/repository/biz/aQute/bnd/bnd-maven-plugin/4.2.0-SNAPSHOT/maven-metadata-Bnd
>  Snapshots.xml is invalid
> The metadata 
> /home/gitpod/.m2/repository/biz/aQute/bnd/bnd-maven-plugin/4.2.0-SNAPSHOT/maven-metadata-Bnd
>  Snapshots.xml is invalid
> The POM for biz.aQute.bnd:bnd-maven-plugin:jar:4.2.0-20190215.224729-106 is 
> invalid
> ...
> 
> You can have a look at the workspace and try it for yourself if you want: 
> https://gitpod.io#snapshot/9f4e97ad-0dd3-4360-8702-de0fedf9e51f 
> <https://gitpod.io/#snapshot/9f4e97ad-0dd3-4360-8702-de0fedf9e51f> 
> 
> Just type "resolve app" in the command line.
> 
> Kind regards,
> Thomas
> 
> 
> 
> ------ Originalnachricht ------
> Von: "Tim Ward" <tim.w...@paremus.com <mailto:tim.w...@paremus.com>>
> An: "Thomas Driessen" <thomas.driessen...@gmail.com 
> <mailto:thomas.driessen...@gmail.com>>
> Cc: "Neil Bartlett" <njbartl...@gmail.com <mailto:njbartl...@gmail.com>>; 
> "OSGi Developer Mail List" <osgi-dev@mail.osgi.org 
> <mailto:osgi-dev@mail.osgi.org>>
> Gesendet: 18.02.2019 10:53:23
> Betreff: Re: [osgi-dev] Clarification on reference behavior regarding field 
> injection
> 
>>> When I change the version number of bnd to 4.2.0 in the standard enRoute 
>>> setup, then some of the bnd-plugins can not be found by maven.
>> 
>> That’s because and 4.2.0 isn’t released yet - you need to add a plugin 
>> repository containing 4.2.0-SNAPSHOT (which is also the version you should 
>> be using. If you look at the readme for the bnd repo on GitHub you can see 
>> the repo url is https://bndtools.jfrog.io/bndtools/libs-snapshot/ 
>> <https://bndtools.jfrog.io/bndtools/libs-snapshot/> 
>> 
>> Tim
>> 
>>> On 18 Feb 2019, at 10:51, Thomas Driessen <thomas.driessen...@gmail.com 
>>> <mailto:thomas.driessen...@gmail.com>> wrote:
>>> 
>>> Hi Neil,
>>> 
>>> thanks for this small history lesson on OSGi. You live, you learn. The why 
>>> is in most cases so much more interesting than the what  :)
>>> 
>>> I will open an issue on Github then for bnd. 
>>> 
>>> Kind regards,
>>> Thomas
>>> 
>>> ------ Originalnachricht ------
>>> Von: "Neil Bartlett" <njbartl...@gmail.com <mailto:njbartl...@gmail.com>>
>>> An: "Thomas Driessen" <thomas.driessen...@gmail.com 
>>> <mailto:thomas.driessen...@gmail.com>>; "OSGi Developer Mail List" 
>>> <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>>
>>> Cc: "Tim Ward" <tim.w...@paremus.com <mailto:tim.w...@paremus.com>>
>>> Gesendet: 18.02.2019 10:44:14
>>> Betreff: Re: [osgi-dev] Clarification on reference behavior regarding field 
>>> injection
>>> 
>>>> 
>>>> 
>>>> On Mon, Feb 18, 2019 at 9:39 AM Thomas Driessen via osgi-dev 
>>>> <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>> wrote:
>>>> Hi Tim,
>>>> 
>>>> as always thanks for your super detailed answer! 
>>>> 
>>>> Just two more questions on this topic:
>>>> 
>>>> 1) Out of curiosity: do you know why the decision was made to make the 
>>>> default for @Reference List<ITest> static, reluctant? For 0/1..1 this 
>>>> makes sense to me, but for me an expected default behavior for 0/1..n 
>>>> references would have been dynamic, greedy, so that I end up with some 
>>>> services isntead of probably none.
>>>> 
>>>> The default is reluctant because "greedy" did not exist until DS 1.2. If 
>>>> the default had been made greedy at that time, components coded before DS 
>>>> 1.2 would have seen a substantial change in behaviour that could be 
>>>> considered non-backwards-compatible.
>>>> 
>>>> Static has *always* been the default over dynamic, because dynamic forces 
>>>> the developer to understand thread safety and to code the component much 
>>>> more cautiously. Static is simple and safe.
>>>>  
>>>> 
>>>> 2) The observed Exception for optional/dynamic/reluctant: Is it intended? 
>>>> I tried to switch to bnd 4.2.0 to see if this exxception occurs there too, 
>>>> but was unable to do so. When I change the version number of bnd to 4.2.0 
>>>> in the standard enRoute setup, then some of the bnd-plugins can not be 
>>>> found by maven.
>>>> 
>>>> Probably not expected, this smells like a bug.
>>>>  
>>>> 
>>>> Kind regards,
>>>> Thomas
>>>> 
>>>> ------ Originalnachricht ------
>>>> Von: "Tim Ward" <tim.w...@paremus.com <mailto:tim.w...@paremus.com>>
>>>> An: "Thomas Driessen" <thomas.driessen...@gmail.com 
>>>> <mailto:thomas.driessen...@gmail.com>>; "OSGi Developer Mail List" 
>>>> <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>>
>>>> Cc: "Raymond Auge" <raymond.a...@liferay.com 
>>>> <mailto:raymond.a...@liferay.com>>
>>>> Gesendet: 18.02.2019 10:15:54
>>>> Betreff: Re: [osgi-dev] Clarification on reference behavior regarding 
>>>> field injection
>>>> 
>>>>> Hi Thomas,
>>>>> 
>>>>> Just to clarify, the behaviour that you see with static reluctant 
>>>>> services will always look “odd” for cardinalities other than mandatory, 
>>>>> and what you’ve recorded is 100% correct behaviour.
>>>>> 
>>>>> Static references force the component to be re-created if the value of 
>>>>> the reference changes
>>>>> Reluctant references avoid rebinding the service unless it is required
>>>>> 
>>>>> Therefore:
>>>>> 
>>>>> An optional reference bound to nothing will never bind to anything again 
>>>>> (unless the component is re-created for another reason) because having 
>>>>> zero references is valid and you are reluctant to re-create the component 
>>>>> instance
>>>>> An optional reference bound to a service will not change until that 
>>>>> service is unregistered (ignoring all new services), at which point it 
>>>>> will either:
>>>>> Pick up the highest ranked of any matching registered services
>>>>> Bind to nothing if no matching services are available
>>>>> A multiple reference bound to nothing will behave exactly like an 
>>>>> optional component
>>>>> A multiple reference bound to one or more services will not change until 
>>>>> any of the bound services are unregistered (ignoring all new services), 
>>>>> at which point it will either:
>>>>> Pick up all the available registered services
>>>>> Bind to nothing if no matching services are available
>>>>> An “at least one" reference bound to one or more services will not change 
>>>>> until any of the bound services are unregistered (ignoring all new 
>>>>> services), at which point it will either:
>>>>> Pick up all the available registered services
>>>>> Make the component unsatisfied
>>>>> 
>>>>> 
>>>>> The end result of this is that references that can accept zero will tend 
>>>>> to zero over time, and then tend to stay with zero bound references. At 
>>>>> least one references will tend to a small number of “stable” services 
>>>>> with new services ignored.
>>>>> 
>>>>> In general references of these types should be dynamic or greedy (or 
>>>>> both).
>>>>> 
>>>>> Best Regards,
>>>>> 
>>>>> Tim
>>>>> 
>>>>>> On 18 Feb 2019, at 09:38, Thomas Driessen via osgi-dev 
>>>>>> <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>> wrote:
>>>>>> 
>>>>>> Oh Sorry :/
>>>>>> 
>>>>>> Those combinations with cardinalities optional/mandatory have been 
>>>>>> assigned to ITest, those with multiple/at_least_one have been assigned 
>>>>>> to List<ITest>.
>>>>>> 
>>>>>> I didn't think it makes sense to assign them vice versa, e.g., ITest 
>>>>>> with multiple or List<ITest> with mandatory? Or am I wrong? If so, in 
>>>>>> what case would you use such a combination?
>>>>>> 
>>>>>> Kind regards,
>>>>>> Thomas
>>>>>> 
>>>>>> ------ Originalnachricht ------
>>>>>> Von: "Raymond Auge" <raymond.a...@liferay.com 
>>>>>> <mailto:raymond.a...@liferay.com>>
>>>>>> An: "Thomas Driessen" <thomas.driessen...@gmail.com 
>>>>>> <mailto:thomas.driessen...@gmail.com>>; "OSGi Developer Mail List" 
>>>>>> <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>>
>>>>>> Gesendet: 16.02.2019 17:42:19
>>>>>> Betreff: Re: [osgi-dev] Clarification on reference behavior regarding 
>>>>>> field injection
>>>>>> 
>>>>>>> You're chart doesn't appear to list _which_ field (Reference) was 
>>>>>>> associated with any given line (collection vs. scalar). It makes a 
>>>>>>> difference.
>>>>>>> 
>>>>>>> - Ray
>>>>>>> 
>>>>>>> On Sat, Feb 16, 2019 at 9:15 AM Thomas Driessen via osgi-dev 
>>>>>>> <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>> wrote:
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I'm trying to get an overview over the effects of different 
>>>>>>> combinations of cardinality, policy and policyOption within a 
>>>>>>> @Reference annotation for a field.
>>>>>>> 
>>>>>>> My Example looks like this:
>>>>>>> 
>>>>>>> @Component 
>>>>>>> public class MyComp{
>>>>>>>   @Reference(...)
>>>>>>>   ITest myTest;
>>>>>>> 
>>>>>>>   @Reference(...)
>>>>>>>   List<ITest> myTests;
>>>>>>> }
>>>>>>> 
>>>>>>> and the observed behavior for this setup with different combinations of 
>>>>>>> the above named properties is:
>>>>>>> <image.png>
>>>>>>> 
>>>>>>> I'm especially interested in the yellow marked cases: Is this an 
>>>>>>> intended behavior?
>>>>>>> 
>>>>>>> Kind regards,
>>>>>>> Thomas
>>>>>>> _______________________________________________
>>>>>>> OSGi Developer Mail List
>>>>>>> osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>
>>>>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev 
>>>>>>> <https://mail.osgi.org/mailman/listinfo/osgi-dev>
>>>>>>> 
>>>>>>> -- 
>>>>>>> Raymond Augé <http://www.liferay.com/web/raymond.auge/profile> 
>>>>>>> (@rotty3000)
>>>>>>> Senior Software Architect Liferay, Inc. <http://www.liferay.com/> 
>>>>>>> (@Liferay)
>>>>>>> Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org/> 
>>>>>>> (@OSGiAlliance)
>>>>>> _______________________________________________
>>>>>> OSGi Developer Mail List
>>>>>> osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>
>>>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev 
>>>>>> <https://mail.osgi.org/mailman/listinfo/osgi-dev>
>>>> _______________________________________________
>>>> OSGi Developer Mail List
>>>> osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>
>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev 
>>>> <https://mail.osgi.org/mailman/listinfo/osgi-dev>
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to