[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
Re: [ecf-dev] Running example timeservice in Apache Karaf.
 | 
On 3/7/2015 10:08 AM, Jan J. Roman wrote:
Hello All,
I am trying to familiarize myself with ECF and its capabilities.
I succeed in running com.mycorp.examples.timeservice.host and 
com.mycorp.examples.timeservice.consumer in Eclipse using projects from:
https://github.com/eclipse/ecf/
Now I would like to run host in karaf and consumer in eclipse to 
verify service can communicate trough network.
I was able to install ECF in karaf and start service 
"ecf.rs.examples.timeservice". I guess next step is to start host 
implementation service in karaf.
Yes.  I've done this myself in Karaf (just yesterday for smoke testing 
prior to ECF's 3.9.3 release).  The way that I do it is to just start 
the Timeservice Host bundle (com.mycorp.example.timeservice.host) via 
the webconsole.   If you do this also, before doing so you might want to 
turn on the following system property (i.e. set it to true)
-DverboseRemoteServiceAdmin=true
This will result in some more information about the export to the system 
console when the timeservice host bundle is started. BTW...just FYI, the 
use of this property is in the host bundle Activator class.
Here is my peoblem as I have no idea how to do that ;-) Project 
com.mycorp.examples.timeservice.host doesn't seem to have any build 
script (ant/maven/gradle) how I can actually produce artefact which 
can be used in Karaf runtime?
Assuming you are using Eclipse, you can do a couple of things locally 
via your workspace (as opposed to some sort of shared builder 
infrastructure):
1) If your service host is in a single or a few bundle, you could simply
    a) Select the project in your workspace
    b) Choose File->Export...->Plug-in Development->Deployable plug-ins 
and fragments
This will let you create a jar for each project, and these jars can be 
installed into Karaf directly (via Webconsole again would be my 
suggestion).  Note that you don't/wouldn't have to create any Karaf 
feature meta-data to do this...in Karaf's Web Console you can install 
individual bundles in addition to features.
2) You can create an Eclipse feature with as many bundles as you like, 
and then choose
   a) File->Export...->Plug-in Development->Deployable features
This will create a full p2 repository, which will have the bundle jars 
present in the <repository home>/plugins directory.  You can then 
install into Karaf via the individual bundle technique (as per above), 
OR you can could create a karaf feature.   For example/your reference I 
create a Karaf feature from this template [1].  This is what you used to 
install the ecf.rs.sdk Karaf feature and the ecf.rs.examples.timeservice 
examples into Karaf.
I tried fairly recently to use the Karaf Eclipse Integration plugins 
[2], but I couldn't get them to install into the version of Eclipse that 
I use, so I gave up.   I had thought that perhaps that tooling would 
generate Karaf features more easily that this 'template' approach that 
we are currently using for installing into Karaf. Also, you probably 
want to setup a target platform for Karaf, and I thought that the EI 
tooling might do that.  Perhaps it does, but I haven't gotten far enough 
with it to find out.
I raised a question about this tooling on the Karaf users mailing list, 
but there wasn't much response.   In short I don't know anything more 
about the Karaf Eclipse Integration.  I've contemplated engaging the 
Karaf team on fixing/updating the Karaf Eclipse Integration tooling 
and/or doing some work on it myself, but currently I don't have the 
resources to do.
I imagine that you could use easily the ECF maven repo to install the 
sdk  and/or your own bundles into Karaf as well [3].  I haven't done 
this myself though so I can't really say what's involved. There are 
other ECF committers and contributors that could respond here that know 
far more about maven and/or Tycho than I do.
>Could you please give me some hints how to build host service and run 
it in karaf?
Hopefully the above helps.  If I can answer any other questions I will 
try to do so, but I'm not one of the Karaf developers so am a little 
limited in that area.
Scott
[1] 
http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/releng/org.eclipse.ecf.releng.bm/karaf/templates/rssdk
[2] http://karaf.apache.org/index/subprojects/eik.html
[3] http://build.ecf-project.org/maven/3.9.3/