Hi JB,

I tried editing the generated file manually but for some strange reason it
doesn't seem to install my features, maybe I did a stupid mistake ? I did
all of this in the generated target/exam/*/ folder.

Here's the features.cfg contents:

#Modified by paxexam
#Sun Mar 04 07:50:26 CET 2018
featuresBootAsynchronous=false
featuresBoot=(instance,package,log,ssh,aries-blueprint,framework,system,eventadmin,feature,shell,management,service,jaas,shell-compat,deployer,diagnostic,wrap,bundle,config,kar,war,cxf,cellar),unomi-kar,unomi-router-karaf-feature,exam
featuresRepositories=mvn\:org.apache.karaf.features/framework/4.1.5/xml/features,
mvn\:org.apache.karaf.features/spring/4.1.5/xml/features,
mvn\:org.apache.karaf.features/standard/4.1.5/xml/features,
mvn\:org.apache.karaf.features/enterprise/4.1.5/xml/features,mvn\:org.ops4j.pax.web/pax-web-features/3.1.0/xml/features,mvn\:org.apache.cxf.karaf/apache-cxf/3.1.10/xml/features,mvn\:org.apache.karaf.cellar/apache-karaf-cellar/4.1.0/xml/features,mvn\:org.apache.unomi/unomi-kar/1.3.0-incubating-unomi_5_karaf4_1-SNAPSHOT/xml/features,mvn\:org.apache.unomi/unomi-router-karaf-feature/1.3.0-incubating-unomi_5_karaf4_1-SNAPSHOT/xml/features,mvn\:org.ops4j.pax.exam/pax-exam-features/4.11.0/xml

Here's the karaf.log:

Mar 04, 2018 8:28:05 AM org.apache.karaf.main.lock.SimpleFileLock lock

INFO: Trying to lock
/Users/loom/java/technologies/apache-git/incubator-unomi-karaf4/itests/target/exam/7874d4a8-c3b0-4850-b6d5-3029999cfe79/lock

Mar 04, 2018 8:28:05 AM org.apache.karaf.main.lock.SimpleFileLock lock

INFO: Lock acquired

Mar 04, 2018 8:28:05 AM org.apache.karaf.main.Main$KarafLockCallback
lockAquired

INFO: Lock acquired. Setting startlevel to 100

2018-03-04T08:28:08,059 | INFO  | pool-1-thread-2  | FeaturesServiceImpl
          | 10 - org.apache.karaf.features.core - 4.1.5 | Adding features:
instance/[4.1.5,4.1.5], package/[4.1.5,4.1.5], log/[4.1.5,4.1.5],
ssh/[4.1.5,4.1.5], aries-blueprint/[4.1.5,4.1.5], framework/[4.1.5,4.1.5],
system/[4.1.5,4.1.5], eventadmin/[4.1.5,4.1.5], feature/[4.1.5,4.1.5],
shell/[4.1.5,4.1.5], management/[4.1.5,4.1.5], service/[4.1.5,4.1.5],
jaas/[4.1.5,4.1.5], shell-compat/[4.1.5,4.1.5], deployer/[4.1.5,4.1.5],
diagnostic/[4.1.5,4.1.5], wrap/[0,0.0.0], bundle/[4.1.5,4.1.5],
config/[4.1.5,4.1.5], kar/[4.1.5,4.1.5], war/[4.1.5,4.1.5],
cxf/[3.1.10,3.1.10], cellar/[4.1.0,4.1.0]


Even if it did work, this file is generated by Pax Exam so it's not clear
to me the changes I need to make to the integration tests to set this up ?


Sorry about all the questions, but I'm really struggling with this.


Regards,

  Serge...


Serge Huber
CTO & Co-Founder
T +41 22 361 3424
9 route des Jeunes | 1227 Acacias | Switzerland
jahia.com <http://www.jahia.com/>
SKYPE | LINKEDIN <https://www.linkedin.com/in/sergehuber> | TWITTER
<https://twitter.com/sergehuber> | VCARD
<http://www.jahia.com/vcard/HuberSerge.vcf>


> JOIN OUR COMMUNITY <http://www.jahia.com/> to evaluate, get trained and
to discover why Jahia is a leading User Experience Platform (UXP) for
Digital Transformation.

On Sun, Mar 4, 2018 at 8:17 AM, Jean-Baptiste Onofré <j...@nanthrax.net>
wrote:

> As said, the featuresBoot doesn't seem good to me as wrap can be not yet
> installed (async) before your feature is installed.
>
> It should be:
>
> featuresBoot=(instance, package, log, ssh, aries-blueprint, framework,
> system,
>  eventadmin, feature, shell, management, service, jaas, shell-compat,
> deployer,
>  diagnostic, wrap, bundle, config,
>  kar,shell,war,cxf,cellar),unomi-kar,unomi-router-karaf-feature,exam
>
> Regards
> JB
>
> On 03/04/2018 08:02 AM, Serge Huber wrote:
> > Thanks Oliver & JB for your quick answers.
> >
> > I've checked the generated org.apache.karaf.features.cfg file and it has
> some
> > strange contents:
> >
> > *#Modified by paxexam*
> >
> > *#Fri Mar 02 16:59:52 CET 2018*
> >
> > *featuresBootAsynchronous=false*
> >
> > *featuresBoot=instance, package, log, ssh, aries-blueprint, framework,
> system,
> > eventadmin, feature, shell, management, service, jaas, shell-compat,
> deployer,
> > diagnostic, wrap, bundle, config,
> > kar,shell,wrap,war,cxf,cellar,unomi-kar,unomi-router-karaf-feature,exam*
> >
> > *featuresRepositories=mvn\:org.apache.karaf.features/
> framework/4.1.5/xml/features,
> > mvn\:org.apache.karaf.features/spring/4.1.5/xml/features,
> > mvn\:org.apache.karaf.features/standard/4.1.5/xml/features,
> > mvn\:org.apache.karaf.features/enterprise/4.1.5/xml/
> features,mvn\:org.ops4j.pax.web/pax-web-features/3.1.0/
> xml/features,mvn\:org.apache.karaf.features/standard/4.1.5/
> xml/features,mvn\:org.ops4j.pax.web/pax-web-features/3.1.
> 0/xml/features,mvn\:org.apache.cxf.karaf/apache-cxf/3.
> 1.10/xml/features,mvn\:org.apache.karaf.cellar/apache-
> karaf-cellar/4.1.0/xml/features,mvn\:org.apache.unomi/unomi-kar/1.3.0-
> incubating-unomi_5_karaf4_1-SNAPSHOT/xml/features,mvn\:
> org.apache.unomi/unomi-router-karaf-feature/1.3.0-
> incubating-unomi_5_karaf4_1-SNAPSHOT/xml/features,mvn\:
> org.ops4j.pax.exam/pax-exam-features/4.11.0/xml*
> >
> >
> > I seems the wrap feature is listed twice, not sure if that is a problem.
> >
> > I installed the unomi-kar and unomi-router-karaf-feature as boot features
> > because this is what is done in the Karaf package, but I don't have a
> problem
> > changing this for the integration tests. I'm just not sure how this can
> be
> > achieved ? Do you have an example or some documentation ? I checked the
> Karaf
> > documentation but I couldn't find anything related to injection or
> executeCommand.
> >
> > Regards,
> >   Serge...
> >
> >
> >   Serge Huber
> >   CTO & Co-Founder
> >
> >
> >   T +41 22 361 3424
> >   9 route des Jeunes | 1227 Acacias | Switzerland
> >   jahia.com <http://www.jahia.com/>
> >   SKYPE | LINKEDIN <https://www.linkedin.com/in/sergehuber> | TWITTER
> >   <https://twitter.com/sergehuber> | VCARD
> >   <http://www.jahia.com/vcard/HuberSerge.vcf>
> >
> >
> >   > JOIN OUR COMMUNITY <http://www.jahia.com/> to evaluate, get trained
> and to discover why Jahia is
> >   a leading User Experience Platform (UXP) for Digital Transformation.
> >
> >
> > On Sun, Mar 4, 2018 at 5:51 AM, Jean-Baptiste Onofré <j...@nanthrax.net
> > <mailto:j...@nanthrax.net>> wrote:
> >
> >     Hi Serge,
> >
> >     I think that the problem is that wrap should be a bootFeature in
> early stage
> >     compared to the Unomi router.
> >
> >     Can you check (in the @Config) the org.apache.karaf.feature.cfg (if
> wrap is at
> >     first stage) ?
> >
> >     More over, I would install unomi feature using executeCommand or
> feature service
> >     (with @Inject) to be sure to be "in" Karaf.
> >
> >     Regards
> >     JB
> >
> >     On 03/03/2018 04:31 PM, Serge Huber wrote:
> >     > Hello,
> >     >
> >     > I'm struggling getting Apache Unomi tests to work since I migrated
> from Karaf 3
> >     > to Karaf 4.
> >     >
> >     > Here is the error I am getting in the logs:
> >     >
> >     > *2018-03-02T17:01:54,018 | ERROR | pool-1-thread-2  |
> >     BootFeaturesInstaller
> >     >       | 10 - org.apache.karaf.features.core - 4.1.5 | Error
> installing boot
> >     > features*
> >     >
> >     > *org.apache.karaf.features.internal.util.MultiException: Error:*
> >     >
> >     > *        Error downloading
> >     >
> >     wrap:file:/Users/loom/.m2/repository/org/apache/kafka/kafka-clients/
> 0.10.1.0/kafka-clients-0.10.1.0.jar
> >     <http://0.10.1.0/kafka-clients-0.10.1.0.jar>
> >     > <http://0.10.1.0/kafka-clients-0.10.1.0.jar
> >     <http://0.10.1.0/kafka-clients-0.10.1.0.jar>>*
> >     >
> >     > *        Error downloading
> >     >
> >     wrap:file:/Users/loom/.m2/repository/org/apache/kafka/kafka-clients/
> 0.10.1.0/kafka-clients-0.10.1.0.jar
> >     <http://0.10.1.0/kafka-clients-0.10.1.0.jar>
> >     > <http://0.10.1.0/kafka-clients-0.10.1.0.jar
> >     <http://0.10.1.0/kafka-clients-0.10.1.0.jar>>*
> >     >
> >     > *        at
> >     >
> >     org.apache.karaf.features.internal.download.impl.
> MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:84)
> >     > ~[?:?]*
> >     >
> >     > *        at
> >     >
> >     org.apache.karaf.features.internal.download.impl.
> MavenDownloadManager.createDownloader(MavenDownloadManager.java:72)
> >     > ~[?:?]*
> >     >
> >     > *        at
> >     >
> >     org.apache.karaf.features.internal.region.Subsystem.
> downloadBundles(Subsystem.java:375)
> >     > ~[?:?]*
> >     >
> >     > *        at
> >     >
> >     org.apache.karaf.features.internal.region.Subsystem.
> downloadBundles(Subsystem.java:372)
> >     > ~[?:?]*
> >     >
> >     > *        at
> >     >
> >     org.apache.karaf.features.internal.region.SubsystemResolver.resolve(
> SubsystemResolver.java:187)
> >     > ~[?:?]*
> >     >
> >     > *        at
> >     > org.apache.karaf.features.internal.service.Deployer.
> deploy(Deployer.java:291)
> >     > ~[?:?]*
> >     >
> >     > *        at
> >     >
> >     org.apache.karaf.features.internal.service.FeaturesServiceImpl.
> doProvision(FeaturesServiceImpl.java:1248)
> >     > ~[?:?]*
> >     >
> >     > *        at
> >     >
> >     org.apache.karaf.features.internal.service.
> FeaturesServiceImpl.lambda$doProvisionInThread$1(
> FeaturesServiceImpl.java:1147)
> >     > ~[?:?]*
> >     >
> >     > *        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> [?:?]*
> >     >
> >     > *        at
> >     >
> >     java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1142)
> >     > [?:?]*
> >     >
> >     > *        at
> >     >
> >     java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:617)
> >     > [?:?]*
> >     >
> >     > *        at java.lang.Thread.run(Thread.java:745) [?:?]*
> >     >
> >     > *        Suppressed: java.io.IOException: Error downloading
> >     >
> >     wrap:file:/Users/loom/.m2/repository/org/apache/kafka/kafka-clients/
> 0.10.1.0/kafka-clients-0.10.1.0.jar
> >     <http://0.10.1.0/kafka-clients-0.10.1.0.jar>
> >     > <http://0.10.1.0/kafka-clients-0.10.1.0.jar
> >     <http://0.10.1.0/kafka-clients-0.10.1.0.jar>>*
> >     >
> >     > *                at
> >     >
> >     org.apache.karaf.features.internal.download.impl.
> AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77)
> >     > [10:org.apache.karaf.features.core:4.1.5]*
> >     >
> >     > *                at
> >     > 
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [?:?]*
> >     >
> >     > *                at
> >     java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]*
> >     >
> >     > *                at
> >     >
> >     java.util.concurrent.ScheduledThreadPoolExecutor$
> ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> >     > [?:?]*
> >     >
> >     > *                at
> >     >
> >     java.util.concurrent.ScheduledThreadPoolExecutor$
> ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> >     > [?:?]*
> >     >
> >     > *                at
> >     >
> >     java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1142)
> >     > [?:?]*
> >     >
> >     > *                at
> >     >
> >     java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:617)
> >     > [?:?]*
> >     >
> >     > *                at java.lang.Thread.run(Thread.java:745) [?:?]*
> >     >
> >     > *        Caused by: java.io.IOException: Could not download
> >     >
> >     [wrap:file:/Users/loom/.m2/repository/org/apache/kafka/
> kafka-clients/0.10.1.0/kafka-clients-0.10.1.0.jar
> >     <http://0.10.1.0/kafka-clients-0.10.1.0.jar>
> >     > <http://0.10.1.0/kafka-clients-0.10.1.0.jar
> >     <http://0.10.1.0/kafka-clients-0.10.1.0.jar>>]*
> >     >
> >     > *                at
> >     >
> >     org.apache.karaf.features.internal.download.impl.
> SimpleDownloadTask.download(SimpleDownloadTask.java:90)
> >     > ~[?:?]*
> >     >
> >     > *                at
> >     >
> >     org.apache.karaf.features.internal.download.impl.
> AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
> >     > ~[?:?]*
> >     >
> >     > *                ... 7 more*
> >     >
> >     > *        Caused by: java.net <http://java.net>.
> MalformedURLException:
> >     Unknown protocol: wrap*
> >     >
> >     > *                at java.net.URL.<init>(URL.java:627) ~[?:?]*
> >     >
> >     > *                at java.net.URL.<init>(URL.java:490) ~[?:?]*
> >     >
> >     > *                at java.net.URL.<init>(URL.java:439) ~[?:?]*
> >     >
> >     > *                at
> >     >
> >     org.apache.karaf.features.internal.download.impl.
> SimpleDownloadTask.download(SimpleDownloadTask.java:62)
> >     > ~[?:?]*
> >     >
> >     > *                at
> >     >
> >     org.apache.karaf.features.internal.download.impl.
> AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
> >     > ~[?:?]*
> >     >
> >     > *                ... 7 more*
> >     >
> >     > *        Caused by: java.lang.IllegalStateException: Unknown
> protocol: wrap*
> >     >
> >     > *                at
> >     >
> >     org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(
> URLHandlersStreamHandlerProxy.java:373)
> >     > ~[?:?]*
> >     >
> >     > *                at java.net.URL.<init>(URL.java:622) ~[?:?]*
> >     >
> >     > *                at java.net.URL.<init>(URL.java:490) ~[?:?]*
> >     >
> >     > *                at java.net.URL.<init>(URL.java:439) ~[?:?]*
> >     >
> >     > *                at
> >     >
> >     org.apache.karaf.features.internal.download.impl.
> SimpleDownloadTask.download(SimpleDownloadTask.java:62)
> >     > ~[?:?]*
> >     >
> >     > *                at
> >     >
> >     org.apache.karaf.features.internal.download.impl.
> AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
> >     > ~[?:?]*
> >     >
> >     > *                ... 7 more*
> >     >
> >     >
> >     > Here is the setup for the Test case:
> >     >
> >     >     protected static final String HTTP_PORT = "8181";
> >     >
> >     >     protected static final String URL = "http://localhost:"; +
> HTTP_PORT;
> >     >
> >     >     protected static final String KARAF_DIR = "target/exam";
> >     >
> >     >     @Configuration
> >     > public Option[] config() {
> >     >         MavenArtifactUrlReference karafUrl = maven()
> >     >                 .groupId("org.apache.karaf")
> >     >                 .artifactId("apache-karaf")
> >     >                 .version("4.1.5")
> >     >                 .type("tar.gz");
> >     >
> >     >         MavenUrlReference karafStandardRepo = maven()
> >     >                 .groupId("org.apache.karaf.features")
> >     >                 .artifactId("standard")
> >     >                 .classifier("features")
> >     >                 .type("xml")
> >     >                 .versionAsInProject();
> >     >         MavenUrlReference karafCellarRepo = maven()
> >     >                 .groupId("org.apache.karaf.cellar")
> >     >                 .artifactId("apache-karaf-cellar")
> >     >                 .classifier("features")
> >     >                 .type("xml")
> >     >                 .versionAsInProject();
> >     >         MavenUrlReference karafPaxWebRepo = maven()
> >     >                 .groupId("org.ops4j.pax.web")
> >     >                 .artifactId("pax-web-features")
> >     >                 .classifier("features")
> >     >                 .type("xml")
> >     >                 .versionAsInProject();
> >     >         MavenUrlReference karafCxfRepo = maven()
> >     >                 .groupId("org.apache.cxf.karaf")
> >     >                 .artifactId("apache-cxf")
> >     >                 .classifier("features")
> >     >                 .type("xml")
> >     >                 .versionAsInProject();
> >     >         MavenUrlReference contextServerRepo = maven()
> >     >                 .groupId("org.apache.unomi")
> >     >                 .artifactId("unomi-kar")
> >     >                 .classifier("features")
> >     >                 .type("xml")
> >     >                 .versionAsInProject();
> >     >         MavenUrlReference routerRepo = maven()
> >     >                 .groupId("org.apache.unomi")
> >     >                 .artifactId("unomi-router-karaf-feature")
> >     >                 .classifier("features")
> >     >                 .type("xml")
> >     >                 .versionAsInProject();
> >     >
> >     >         return new Option[]{
> >     >                 debugConfiguration("5005", false),
> >     >                 karafDistributionConfiguration()
> >     >                         .frameworkUrl(karafUrl)
> >     >                         .unpackDirectory(new File(KARAF_DIR))
> >     >                         .useDeployFolder(true),
> >     >
> >      replaceConfigurationFile("etc/org.apache.unomi.router.cfg", new
> File(
> >     >                         "src/test/resources/org.
> apache.unomi.router.cfg")),
> >     >
> >      replaceConfigurationFile("data/tmp/recurrent_import/2-
> surfers-test.csv",
> >     new File(
> >     >                         "src/test/resources/2-surfers-test.csv")),
> >     >
> >      replaceConfigurationFile("data/tmp/recurrent_import/3-
> surfers-overwrite-test.csv",
> >     new File(
> >     >                         "src/test/resources/3-
> surfers-overwrite-test.csv")),
> >     >
> >      replaceConfigurationFile("data/tmp/recurrent_import/4-
> surfers-delete-test.csv",
> >     new File(
> >     >                         "src/test/resources/4-
> surfers-delete-test.csv")),
> >     >
> >      replaceConfigurationFile("data/tmp/recurrent_import/5-
> ranking-test.csv",
> >     new File(
> >     >                         "src/test/resources/5-ranking-test.csv")),
> >     >
> >      replaceConfigurationFile("data/tmp/recurrent_import/6-actors-test.csv",
> new
> >     File(
> >     >                         "src/test/resources/6-actors-test.csv")),
> >     >                 keepRuntimeFolder(),
> >     >                 configureConsole().ignoreLocalConsole(),
> >     >                 logLevel(LogLevel.INFO),
> >     > // editConfigurationFilePut("etc/org.ops4j.pax.web.cfg",
> >     > "org.osgi.service.http.port", HTTP_PORT),
> >     > // systemProperty("org.osgi.service.http.port").value(HTTP_PORT),
> >     > systemProperty("org.ops4j.pax.exam.rbc.rmi.port").value("1199"),
> >     >
> >      systemProperty("org.apache.unomi.itests.elasticsearch.
> transport.port").value("9500"),
> >     >
> >      systemProperty("org.apache.unomi.itests.elasticsearch.cluster.name
> >     <http://org.apache.unomi.itests.elasticsearch.cluster.name>
> >     > <http://org.apache.unomi.itests.elasticsearch.cluster.name
> >     <http://org.apache.unomi.itests.elasticsearch.cluster.name
> >>").value("contextElasticSearchITests"),
> >     >
> >      systemProperty("org.apache.unomi.itests.elasticsearch.
> http.port").value("9400"),
> >     >
> >      systemProperty("org.apache.unomi.itests.elasticsearch.
> bootstrap.seccomp").value("false"),
> >     >                 systemProperty("unomi.autoStart").value("true"),
> >     >                 features(karafPaxWebRepo, "shell"),
> >     >                 features(karafStandardRepo, "wrap"),
> >     >                 features(karafPaxWebRepo, "war"),
> >     >                 features(karafCxfRepo, "cxf"),
> >     >                 features(karafCellarRepo, "cellar"),
> >     >                 features(contextServerRepo, "unomi-kar"),
> >     >                 features(routerRepo, "unomi-router-karaf-feature"),
> >     >                 // we need to wrap the HttpComponents libraries
> ourselves
> >     since the OSGi bundles
> >     > provided by the project are incorrect
> >     > wrappedBundle(mavenBundle("org.apache.httpcomponents",
> >     >                         "httpcore").versionAsInProject()),
> >     >                 wrappedBundle(mavenBundle("
> org.apache.httpcomponents",
> >     >                         "httpmime").versionAsInProject()),
> >     >                 wrappedBundle(mavenBundle("
> org.apache.httpcomponents",
> >     >                         "httpclient").versionAsInProject())
> >     >         };
> >     >
> >     > It seems the problem is that the "unomi-router-karaf-feature" uses
> the wrap
> >     > protocol but the resolver can't use it because it's also being
> deployed as a
> >     > feature. It seems I need to specifiy it as a startup feature but I
> don't know
> >     > how to achieve that.
> >     >
> >     > If you prefer to have a look at the repository, you can find the
> full
> >     > integration test here :
> >     >
> >     >
> >     https://github.com/apache/incubator-unomi/tree/feature-
> UNOMI-5-KARAF4-1/itests
> >     <https://github.com/apache/incubator-unomi/tree/feature-
> UNOMI-5-KARAF4-1/itests>
> >     >
> >     > I'm quite stuck with this, so any help would be greatly
> appreciated !
> >     >
> >     > cheers,
> >     >   Serge...
> >     >
> >     >
> >     >   Serge Huber
> >     >   CTO & Co-Founder
> >     >
> >     >
> >     >   T +41 22 361 3424 <tel:%2B41%2022%20361%203424>
> >     >   9 route des Jeunes | 1227 Acacias | Switzerland
> >     >   jahia.com <http://jahia.com> <http://www.jahia.com/>
> >     >   SKYPE | LINKEDIN <https://www.linkedin.com/in/sergehuber
> >     <https://www.linkedin.com/in/sergehuber>> | TWITTER
> >     >   <https://twitter.com/sergehuber <https://twitter.com/sergehuber
> >> | VCARD
> >     >   <http://www.jahia.com/vcard/HuberSerge.vcf
> >     <http://www.jahia.com/vcard/HuberSerge.vcf>>
> >     >
> >     >
> >     >   > JOIN OUR COMMUNITY <http://www.jahia.com/> to evaluate, get
> trained
> >     and to discover why Jahia is
> >     >   a leading User Experience Platform (UXP) for Digital
> Transformation.
> >     >
> >
> >     --
> >     Jean-Baptiste Onofré
> >     jbono...@apache.org <mailto:jbono...@apache.org>
> >     http://blog.nanthrax.net
> >     Talend - http://www.talend.com
> >
> >
>
> --
> Jean-Baptiste Onofré
> jbono...@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Reply via email to