ace-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Versioned OBR proposal
Date Wed, 30 Nov 2011 23:05:58 GMT
as a member of a research group in Pilsen, that strives to create 
a tool for semantic version of OSGi bundles (,  
I have some questions to ask:

I don't think OBR from projects ace-obr-servlet and ace-obr-storage 
is accessed via the Vaadin UI interface. Instead of it, as deep 
as I've dug, it looks like it uses the ArtifactRepository from 
ace-client-repository-* projects. Does this mean, the projects ace-obr 
projects are obsolete? Or is the ace-obr-servlet really mapped to 
http://localhost:8080/obr only without the web interface? How can one 
then manage this OBR, e.g. put the bundles there?

Some time ago, our leader Premek Brada proposed adding our semantic 
versioning to the OBR of ACE. We would like to go on with this goal. Some 
changes were made and I'd like to present it to the you and ask for your 
opinion :

1. PUT
Our vision is that by putting a new resource to the OBR, there 
would be a decision, whether it is or it isn't a bundle. If it is another file, 
store it only in the OBR. If it is a bundle, perform the versioning according 
the last version of the bundle in the OBR first, then store it. This should
happen all the time and thus, we could have the consistent list of all the 
versions of the bundle, that were uploaded in time. Naturally, if there is no 
another version, no versioning is performed. 

The problem is, that only the method put(String fileName, InputStream 
data) is present so far, the client decides the filename. If there is a file with 
this name in the OBR (which is the case by different bundle versions) it would 
be overwritten. To let the OBR API backward compatible and still take advance 
from the versioning, the client have to manually add the the version suffix to the 
filename, but it doesn't know, whether the version in the manifest is really 
correct, since no semantic versioning was performed yet. 

We propose to add another method to the OBR servlet like 
dryRun(InputStream data), that perform the versioning on the uploaded bundle 
but doesn't store it to the OBR, only returns in the HTTP header the info, whether 
there is another version and if so, also the corrected version of the uploaded 
bundle. Then the client constructs the filename and calls the common put 

2. GET
Typically I like to get the latest version of the bundle, that is in the repository.
We can use the present get(filename) method, but we have to know the filename.
listBundles(String symbolicName) would do the work, possibly by inspecting
the repository.xml.

Best Regards

Jan Zeman
Department of Computer Science and Engineering
University of West Bohemia, Pilsen, CZ

View raw message