Hi Minto Thanks.
Yes Clerezza offers no easy and documented way to create custom launchers. The disadvantage of Karaf I see is that one has no executable jar. I think a good approach would be to have a rather small executable jar and the ability to add features at runtime. That's whey I was experimenting in adding the karaf services for installing features. Reto On Mon, Mar 4, 2013 at 11:54 AM, Minto van der Sluis <[email protected]> wrote: > Hi Reto, > > Apologies for the delay, due to a vacation I have been offline for a while. > > I decided to go for karaf mainly because I was a newby for both the > karaf and sling way of building a distribution. At the time creating my > own distribution based on karaf seemed more simple. I also fancied the > commandline present in Karaf and the ability to brand it. > > Regards, > > Minto > > Op 22-2-2013 18:59, Reto Bachmann-Gmür schreef: > > Hi Minto > > > > I think checking and ensuring interoperability (in both directions) is a > > great sanity check of the architecture. But my concrete motivation was > > exploring way to have clerezza more modular, to have easy way to install > > optional components (like UIMA or CRIS) and maybe to make the launcher > > slimmer. > > > > On the Karaf list I was asked why we don't use a the Karaf framework in > > Clerezza. I'm not sure what advatages/disadvantatges this would bring. I > > think having an executable jar as launcher is quite important. Also I'm > not > > sure how well the security stuff would work together. > > > > What are the reasons for you to use Karaf? > > > > Cheers, > > Reto > > > > On Mon, Feb 11, 2013 at 11:03 PM, Minto van der Sluis <[email protected]> > wrote: > > > >> Hi, > >> > >> What I have done is the reverse (clerezza in karaf) and might be of > >> interest to others: > >> > >> I have created a custom karaf based distribution containing: > >> - clerezza components > >> - stanbol rulestore and ontology manager > >> - karaf cli commands to manipulate stanbol rulestore > >> - custom components of my own > >> > >> For both clerezza and stanbol I created karaf features to only contain > >> components used by me. This however can be easily extended to contain > >> all features. It is still up to the distribution to decide which > >> features to load on startup. > >> > >> If there is any interest please let me know. Then I will ask my client > >> if I can share details with the community. > >> > >> Regards, > >> > >> Minto > >> > >> Op 11-2-2013 21:56, Reto Bachmann-Gmür schreef: > >>> My experiments today. > >>> > >>> Goal: Be able to install Karaf features within clerezza > >>> > >>> Approach: use the service org.apache.karaf.features.FeaturesService > >> provided by > >>> the bundle Apache Karaf :: Features :: Core > >>> (org.apache.karaf.features.core) [1]. > >>> > >>> Unfortunately this bundle has quite some dependencies which need to be > >>> satisfied. I've chosen a brute force approach and installed the list > >>> of bundles of the karaf-framework feature. Because of chicken and egg > >>> I can't yet install features. So I needed the following scala on the > >>> command line: > >>> > >>> import java.net._ > >>> val url = new > >> > URL("mvn:org.apache.karaf.assemblies.features/standard/2.3.0/xml/features") > >>> val conn = url.openConnection > >>> import xml._ > >>> val doc = XML.load(conn.getInputStream) > >>> > >>> for (b <- doc\"feature"\"bundle") { > >>> val mvnUri = b.text > >>> try { > >>> val bundle = bundleContext.installBundle(mvnUri) > >>> bundle.start() > >>> } catch { > >>> case ex => out.println("Exception installing bundle", ex) > >>> } > >>> } > >>> > >>> The bundle org.apache.karaf.features.core is now satisfied but not > >>> exposing any service. For some reason the blueprint service bundle > >>> wasn't activated, activating it over the webconsole made the service > >>> available. As new packages aren't avaiable on already open shells I > >>> have to reconnect via ssh. > >>> > >>> Now I can access the service: > >>> > >>> zz>val fs = $[org.apache.karaf.features.FeaturesService] > >>> fs: org.apache.karaf.features.FeaturesService = > >>> org.apache.karaf.features.internal.FeaturesServiceImpl@9d8957d > >>> zz>fs.[TAB] > >>> addRepository asInstanceOf getFeature > >>> installFeature installFeatures isInstalled > >>> isInstanceOf listFeatures > >>> listInstalledFeatures listRepositories removeRepository > >>> restoreRepository toString uninstallFeature > >>> validateRepository > >>> zz>fs.listFeatures > >>> res0: Array[org.apache.karaf.features.Feature] = Array() > >>> zz>fs.listRepositories > >>> res1: Array[org.apache.karaf.features.Repository] = Array() > >>> > >>> The next step will be to add a repository. > >>> > >>> Reto > >>> > >>> 1. Thanks to Krzysztoffor pointing me to this: > >>> > >> > http://mail-archives.apache.org/mod_mbox/karaf-user/201302.mbox/%3C2960186.kKK1vM5F7L%40dracula%3E > >>> > >> > >> -- > >> ir. ing. Minto van der Sluis > >> Software innovator / renovator > >> Xup BV > >> > >> Mobiel: +31 (0) 626 014541 > >> > >> > > > -- > ir. ing. Minto van der Sluis > Software innovator / renovator > Xup BV > > Mobiel: +31 (0) 626 014541 > >
