Radu Cotescu created SLING-8652:
-----------------------------------
Summary: Prototypes are not supported in multi-module builds
Key: SLING-8652
URL: https://issues.apache.org/jira/browse/SLING-8652
Project: Sling
Issue Type: Bug
Components: Feature Model
Affects Versions: slingfeature-maven-plugin 1.1.0,
slingfeature-maven-plugin 1.0.6
Reporter: Radu Cotescu
In a multi-module build, if a module A represents the prototype for a second
module B, the reactor build will fail with an error similar to:
{noformat}
[INFO] Scanning for projects...
[ERROR] Unable to get feature A:slingosgifeature:0.0.1-SNAPSHOT : Recursive
feature dependency list including project MavenProject: B:0.0.1-SNAPSHOT @
~/workspace/reactor/B/pom.xml
[ERROR] Internal error: java.lang.IllegalStateException: Unable to find
prototype feature A:slingosgifeature:0.0.1-SNAPSHOT -> [Help 1]
org.apache.maven.InternalErrorException: Internal error:
java.lang.IllegalStateException: Unable to find prototype feature
A:slingosgifeature:0.0.1-SNAPSHOT
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:120)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.IllegalStateException: Unable to find prototype feature
A:slingosgifeature:0.0.1-SNAPSHOT
at org.apache.sling.feature.builder.FeatureBuilder.internalAssemble
(FeatureBuilder.java:314)
at org.apache.sling.feature.builder.FeatureBuilder.assemble
(FeatureBuilder.java:59)
at org.apache.sling.feature.maven.Preprocessor.process
(Preprocessor.java:216)
at org.apache.sling.feature.maven.Preprocessor.process
(Preprocessor.java:118)
at
org.apache.sling.feature.maven.mojos.DependencyLifecycleParticipant.afterProjectsRead
(DependencyLifecycleParticipant.java:79)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:264)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
{noformat}
The workaround, when one wants to work with a multi-module setup, is to use
aggregates to compose feature B, instead of relying on A as a prototype.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)