ace-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Premek Brada <>
Subject Re: proposal: a versioning repository
Date Thu, 17 Feb 2011 17:30:47 GMT

Hello all,

the promised versioning OBR proposal is a wrapper over ApacheFelix's 
BundleFileStore implementation + a separate servlet which provides a 
REST API.  The first part is a VersionedBundleStore interface which 
(currently) extends the (maybe it should 
actually be a separate interface alongside, or better instead-of, the 
plain BundleStore), see attached source which has the necessary javadoc.

The REST API looks as follows, working mostly with bundle data streams 
and some HTTP headers.

GET /obr/bundle-symbolic-name/version
=> get(symbolic-name, version)
GET /obr/bundle-symbolic-name
=> getLatest(symbolic-name), plus X-BundleVersion header set
GET /obr/bundle-symbolic-name?version-range
=> getLatest(symbolic-name, VersionRange), plus X-BundleVersion header set
PUT, POST /obr
=> put(), returns the resulting bundle metadata in X-BundleFileName, 
X-BundleVersion headers
DELETE /obr/symbolic-name/version
=> remove()
=> listBundles(), returns the list of bundle symbolic names delimited by 
newline in response body
OPTIONS /obr/bundle-symbolic-name
=> listVersions(), returns the list of bundle versions delimited by 
newline in response body

We opted for a bundle-aware, bundle-only interface instead of for just 
putting the versioning functionality underneath the OBR BundleStore -- 
we think this makes sense because the other resources which can be 
stored in OBR don't lend themselves easily to OSGi versioning policy & 
automated versioning; secondly, we think bundles as core elements 
deserve this special treatment, and last, it makes the versioning bundle 
repo much easier to work with.

Underneath the versioned file bundle store there is a bundle versioning 
service based on our type-based bundle compatibility comparator, see the 
second attached interface.  The complete implementation we have is split 
into several bundles, runs on Felix (I can provide it if anyone wants, 
currently it is in an internal subversion repo).

I am pretty curious what you think, so any feedback is welcome.


On 11.2.2011 16:13, Premek Brada wrote:
> On 11.2.2011 15:33, Jeremy Hughes wrote:
>> Hi, I was wondering if anything came of this. dev@aries.a.o we're
>> discussing the need for this kind of thing.
> Hi,
> we have a prototype implementation working and will be posting a 
> proposal to the ace-dev shortly (next week).  So stay tuned please :)
> Premek
>> Thanks,
>> Jeremy
>> On 23 September 2010 14:30, Premek Brada<>  wrote:
>>>   Hello Marcel,
>>> back to these emails again:
>>> On 17.9.2010 23:47, Marcel Offermans wrote:
>>>>>>> - [if yes] How would you imagine/suggest such a thing should
>>>>>>> integrated
>>>>>>>   into ACE?
>>>>>> As you know, currently ACE supports a REST like interface for 
>>>>>> OBR, so it
>>>>>> would be nice if we could integrate it at that level. Eventually

>>>>>> we need to
>>>>>> support adding bundles to the OBR from the web UI so integrating

>>>>>> it there
>>>>>> would also be nice.
>>>>> OK, that's a plan already; I would be interested in putting 
>>>>> together the
>>>>> signatures for the REST interface.
>>> I suggest that we have a look at this in London, time permitting.
>>>>> Any suggestions?  I haven't yet tried the web UI properly, will 
>>>>> explore
>>>>> that and try to come up with ideas.
>>>> The web UI as it is right now consists of 4 columns (artifacts, 
>>>> features,
>>>> distributions and targets). Dragging a local file into the artifact 
>>>> column
>>>> could trigger an upload of that file to the OBR, and go through your
>>>> versioning tooling.
>>> That looks like a good idea, I have added it to the feature 
>>> suggestions to
>>> consider. However, we probably do not have enough people currently 
>>> to work
>>> on this; so I would concentrate on the REST interface for the time 
>>> being.
>>>>>>> PS: A sort of advertisement: we have a bundle versioning service
>>>>>>> -
>>>>>>> you are invited to give it a try, I would be interested in any

>>>>>>> feedback.
>>>>>>  From the service on this website, I would like to get a bit more
>>>>>> feedback about the actual analysis. As a test I submitted 
>>>>>> different versions
>>>>>> of the compendium bundle, and that went well (in essence, the 
>>>>>> tool concluded
>>>>>> that the versions were correct).
>>>>> What kind of feedback would you like to get?
>>>> I would like to see some kind of side by side comparison of the 
>>>> older and
>>>> newer version and any changes that were made to the newer version:
>>> <snip>
>>> Sensible and interesting indeed, thanks for the idea. I am putting 
>>> it to the
>>> task list for the next version of the service.
>>> Best ,
>>> Premek
>>> -- 
>>> Premek Brada (Ing et MSc, PhD)
>>>   Lecturer in Software enginering, Erasmus coordinator, Webmaster
>>>   Department of Computer Science and Engineering
>>>   University of West Bohemia, Pilsen, CZ
>>> <<    brada at | | +420-377-63-2435>>

Premek Brada (Ing et MSc, PhD)
   Lecturer in Software enginering, Webmaster
   Department of Computer Science and Engineering
   University of West Bohemia, Pilsen, CZ
   <<  brada at | | +420-377-63-2435>>

View raw message