Hi,

I think this falls into the category of a build problem, therefore I would solve it with additions to the maven plugin (your second option).

I'm not sure which maven plugin adds the current OSGi bundle to the feature. But that functionality could maybe be extended to create the repository like structure in the target directory. Then the launcher just needs to be configured to use that additional directory as a repository.

Regards
Carsten

On 04.07.2023 14:52, Robert Munteanu wrote:
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

--
Carsten Ziegeler
Adobe
[email protected]

Reply via email to