ace-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcel Offermans <>
Subject Re: ace setup
Date Fri, 20 Dec 2013 07:38:01 GMT
Hello Marco,

On 19 Dec 2013, at 17:05 , Marco Westermann <> wrote:

> thank you for your answer. Yes, I already watched that video and liked the way you are
describing in the video. But as you said: there are still some questions. I will try to ask
concrete questions where I have problems.
> At the moment I think of the following scenario:
> I setup an OBR like karaf OBR on my server and configure my bundles so they are pushed
to the OBR.
> That leads me to my first question: what do I have to do to setup ace that it uses repository
on server xyz. Or in other words: where do I configure ace what repo to use.

> If I'm right pushing to my remote OBR wouldn't be enough as I also have to provide ace
with meta-informations about my bundle. So I would have to tell ace that there is a new artifact
available ?! This may be done about a gogo shell script ?!


Let me start by stating that for ACE, an artifact (bundle, configuration file, whatever) is
just an object with some metadata. For artifacts, the most important properties are the type
of artifact and its URL. The latter points to where the artifact is stored, and when a target
requests an update, such URLs are used to fetch the correct artifacts.

So, in theory, anything that provides artifacts via a URL can act as an “OBR” for ACE
(you can even use file:/// URLs but in general I would not recommend that).

To tell ACE about an artifact, you have to define it. Manipulating artifacts, features, etc.
in general is done by the ACE client, and for that client we provide three different interfaces:
a WebUI, a REST UI and a Gogo Shell UI. We tend to use the shell the most when automating
things, because the scripting language is quite powerful. If you, through any of these client
interfaces, fill out the URL and other metadata by hand, you don’t even need to configure
an OBR.

Now, the ACE client can be configured to work with an OBR. In the “conf” folder (of run-client,
if you’re running ACE from Eclipse, or your client distribution otherwise) you can configure
where this OBR is. Actually, within Eclipse, also look at the client.bndrun as it contains
a variable for the OBR location. If you do that, for example in the WebUI you can upload bundles
to such an OBR directly from your browser. There is one requirement though, since the OBR
specification does not specify any way of “uploading” artifacts to an OBR, in ACE we extended
that spec a bit by adding a REST interface for that. In other words, for uploading to work,
you need to use “our” OBR. Contributions in this area, to make such a feature work for
Nexus for example, would be welcome.

> If until here everything would work I would have my bundles in ace so I can configure
features, distributions and targets etc.
> Then my next problem would be:
> My OSGI bundles use other external bundles available in maven central ( my bundles use
camel, activemq, cxf etc )
> is it possible that ace can provide my target(s) with these bundles, too without manually
adding the bundles to ace. ( maybe by proxying maven central with my own obr ?!)

Yes, see above, as long as you can provide an URL to such bundles, you can use them.

> And the last question for today:
> I cannot find detailed instructions on how to tell ace where my targets are. I have some
instances of karaf running on different servers. How would I configure that ace knows how
to provide my karaf instance. I think I've read that I need to install an ace bundle to the
target container but I cannot figure out what bundle I need and how to configure it.

On the target you need to run a management agent bundle. This is an ordinary bundle. It can
be configured with, amongst other things, a “target ID” (which is the ID that shows up
in the target column of ACE) and a URL to the ACE server (these properties are called identification
and discovery and can be provided as system properties).

Technically, the ACE server does not need to know where the targets are, as the targets poll
the server for updates.

Greetings, Marcel

View raw message