Hello Marco,

On 19 Dec 2013, at 17:05 , Marco Westermann <[email protected]> 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 ?!

Yes.

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

Reply via email to