Hi,
See comments below
Regards,
Minto
Op 8-9-2013 16:03, Reto Bachmann-Gmür schreef:
> Hi
>
> Currently we create our launchers using the maven assembly plugin.
>
> I see the following advantages of our approach:
> - Version of artifacts using maven mechanism (dependency management, IDE
> support)
> - Mvn URIs for bundle allowing easy updates from maven repo
I am not sure if I fully understand this one. Karaf features also use
mvn URIs. Karaf's features.xml can also be used in conjuction with
resource filtering. Like this the dependency management can still be
done in maven pom files.
>
> And disadvantages:
> - It's not possible to have list of the bundles for particular features
> - configuration quite hard
>
> An alternative would be the sling launchpad plugin
> Advantages:
> - Partial bundle lists to group features
> - Used in Stanbol and Sling allowing to mix and match partial bundlelists
> with these projects
>
> Disadvantages
> - unresolvable sling-uris for bundles
> - propertary bundlelist format not offering the same comfort as maven
> dependencies
>
> Yet another approach would be to create a launcher using Karaf
> Advantages:
> - Integrates with many karaf based applications
> - Karaf feature sets can be created from maven dependencies
> - Features can be added at runtime
>
> Disadvantages:
> - A Karaf distribution is not a self-executable jar
Is this really that important? In my case it is not.
For my project I created a karaf distributions that needs to be
configured after deployment. The most important configuration item is
the location of the triplestore. I wouldn't want this to be the default
value since it would make upgrading forget about the contents of the
triplestore.
> - Compatibility issues to investigate, notably with regards of
> authentication/JAAS policy and the clerezza shell
My Karaf distribution also partly uses Clerezza. Attached you can find
the Clerezza features.xml that I have created.
I have to admit that I like the Karaf eco-system with support for
clustering (Karaf Cellar) that I will most probably be using in the
coming weeks.
>
> Just what came to my mind, thoughts would be greatly appreciated.
>
> Cheers,
> Reto
<?xml version="1.0" encoding="UTF-8"?>
<features name="clerezza-${pom.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
<feature name="clerezza-common" version="${pom.version}" description="Common components" resolver="(obr)">
<bundle start-level="31">mvn:org.apache.felix/org.apache.felix.scr/1.6.2</bundle>
<bundle start-level="31">mvn:commons-codec/commons-codec/1.7</bundle>
<bundle start-level="31">mvn:commons-io/commons-io/2.4</bundle>
<bundle start-level="31">mvn:org.apache.httpcomponents/httpcore-osgi/4.2.1</bundle>
<bundle start-level="31">mvn:org.apache.httpcomponents/httpclient-osgi/4.2.1</bundle>
<bundle start-level="31">mvn:com.google.guava/guava/14.0</bundle>
</feature>
<feature name="clerezza-core" version="${pom.version}" description="Clarezza components" resolver="(obr)">
<feature version="${pom.version}">clerezza-common</feature>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.core/0.14-SNAPSHOT</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.utils/0.14-SNAPSHOT</bundle>
<bundle start-level="36">mvn:org.apache.clerezza.ext/com.ibm.icu/0.6-SNAPSHOT</bundle>
<bundle start-level="36">mvn:org.wymiwyg/wymiwyg-commons-core/0.7.5</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/utils/0.2-SNAPSHOT</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.ontologies/0.12-SNAPSHOT</bundle>
<bundle start-level="36">mvn:org.apache.clerezza.ext/javax.mail/0.5-SNAPSHOT</bundle>
</feature>
<feature name="clerezza-jena" version="${pom.version}" description="Clarezza Jena components" resolver="(obr)">
<feature version="${pom.version}">clerezza-core</feature>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.jena.sparql/0.6</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.jena.commons/0.6</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.jena.facade/0.13</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.jena.storage/0.6</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.jena.serializer/0.10</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.jena.parser/0.11</bundle>
</feature>
<feature name="clerezza-jena-tdb" version="${pom.version}" description="Clarezza Jena TDB components" resolver="(obr)">
<feature version="${pom.version}">clerezza-jena</feature>
<!-- bundle start-level="36">mvn:org.apache.clerezza.ext/org.apache.jena/0.7-SNAPSHOT</bundle -->
<!-- bundle start-level="36">mvn:org.apache.clerezza.ext/com.hp.hpl.jena.tdb/0.4-SNAPSHOT</bundle -->
<bundle start-level="36">mvn:org.apache.clerezza.ext/org.apache.jena.tdb/0.4-SNAPSHOT</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.jena.tdb.storage/0.7-SNAPSHOT</bundle>
</feature>
<feature name="clerezza-json" version="${pom.version}" description="Clarezza JSON components" resolver="(obr)">
<bundle start-level="36">mvn:org.apache.clerezza.ext/org.json.simple/0.4-SNAPSHOT</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/rdf.rdfjson/0.4-SNAPSHOT</bundle>
</feature>
<feature name="clerezza-jaxrs" version="${pom.version}" description="Clarezza Jax-RS components" resolver="(obr)">
<feature version="${pom.version}">clerezza-json</feature>
<bundle start-level="36">mvn:org.apache.clerezza/jaxrs.utils/0.8</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/jaxrs.extensions/0.6-SNAPSHOT</bundle>
<bundle start-level="36">mvn:org.apache.clerezza/jaxrs.rdf.providers/0.14</bundle>
</feature>
<feature name="clerezza-web" version="${pom.version}" description="Clarezza Web components" resolver="(obr)">
<bundle start-level="36">mvn:org.apache.clerezza/web.fileserver/0.10-SNAPSHOT</bundle>
</feature>
<feature name="clerezza" version="${pom.version}" description="Clarezza components" resolver="(obr)">
<feature version="${pom.version}">clerezza-common</feature>
<feature version="${pom.version}">clerezza-core</feature>
<feature version="${pom.version}">clerezza-jaxrs</feature>
<feature version="${pom.version}">clerezza-jena</feature>
<feature version="${pom.version}">clerezza-jena-tdb</feature>
<feature version="${pom.version}">clerezza-web</feature>
</feature>
</features>