Hi,

I have a single-module Maven project [1] where I do the following:

- build an OSGi bundle
- create an aggregated feature composed of the Sling Starter and the
local bundle + requirements [2]
- start the created aggregate for integration tests using the feature-
launcher-maven-plugin [3]

This breaks down because when starting the aggregate the bundle is not
yet installed in the local repository ( $HOME/.m2/repository ), but it
is present in the project directory ( target/$ARTIFACTID.jar ).

The feature-launcher-maven-plugin runs the feature-launcher as a child
process, so there can be no sharing of classpaths.

I'm looking for ideas on how to make this work. I have a couple, but
I'm not sure they're the best ones

1. extend the feature launcher to accept groupdId/artifactId/version →
URL mappings that will override the default lookup

This could be a new command line arguments

--artifactOverrides=org.apache.sling:org.apache.sling.servlets.oidc-
rp:0.1-SNAPSHOT=target/org.apache.sling.servlets.oidc-rp-0.1-
SNAPSHOT.jar

2. add a mechanism to the feature launcher maven plugin to install
selected artifacts in a dedicated repository

The Maven plugin could

- install the jar file in a Maven repository structure under
target/feature-launcher-maven-plugin/local-repository
- configure the feature launcher to additionally use this artifact url

Something I did rule out quite quickly is to install the artifact early
on in the local repository ( $HOME/.m2/repository ), because that be
inconsistent with the Maven lifecycle.

Ideas/comments welcome,

Thanks,
Robert

[1]:
https://github.com/apache/sling-whiteboard/blob/master/org.apache.sling.servlets.oidc-rp/pom.xml
[2]:
https://github.com/apache/sling-whiteboard/blob/e4f3c260813792f9f1d1e2262accdd50c35d6edb/org.apache.sling.servlets.oidc-rp/pom.xml#L84-L115
[3]:
https://github.com/apache/sling-whiteboard/blob/e4f3c260813792f9f1d1e2262accdd50c35d6edb/org.apache.sling.servlets.oidc-rp/pom.xml#L189-L203

Reply via email to