Hello Marcel,
On 17.9.2010 10:24, Marcel Offermans wrote:
This effectively ensures version-implementation consistency across
all bundles managed
by the given ACE repo instance, in other words, no nasty runtime
errors / exceptions due
to type mismatches in wired bundles obtained from such a repository.
Also, it means
the bundle programmer can be lazy and leave versioning chores to the
repository ;-)
You rightfully put a smiley there, as not all semantic changes can be
automatically detected by tooling of course. However, I do like the
idea a lot.
That's correct, the versioning algorithm -> API -> tool handles
syntactic changes on public class elements only; OTOH, that is in line
with the semantic versioning whitepaper which deals mainly with the
interface/type/syntactic changes and reserves the micro and qualifier
parts of the version identifier for semantic and internal changes.
(Leaving aside the issue that detecting, classifying and versioning
semantic changes properly is a lot more difficult task.)
- [if yes] How would you imagine/suggest such a thing should be
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. Any suggestions? I haven't yet tried
the web UI properly, will explore that and try to come up with ideas.
We of course have an implementation, it extends the plain
org.apache.ace.obr.storage.BundleStore interface to include versioning --
see the attached pieces of code to get an idea how it works (there is
about 0.5MB of libraries hidden behind this small interface). However,
this is our first cut and by no means an ideal solution.
Would you consider donating and supporting this?
In principle, yes. We however first need to sort out intellectual
property stuff and get rid of some of the bugs we know about.
PS: A sort of advertisement: we have a bundle versioning service at
http://osgi.kiv.zcu.cz/obvs/ <http://osgi.kiv.zcu.cz/obvs/index.html>
- 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?
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 kiv.zcu.cz | www.kiv.zcu.cz/~brada/ | +420-377-63-2435>>