Author: bdelacretaz
Date: Tue Jun 16 09:09:59 2015
New Revision: 1685741
URL: http://svn.apache.org/r1685741
Log:
SLING-4728 - nested models work, but using nested.models variable so far
Modified:
sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/Launcher.java
sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/NestedModelsMerger.java
sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java
sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/CrankstartSetup.java
sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt
sling/trunk/contrib/crankstart/test-model/src/main/provisioning/bundles.txt
Modified:
sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/Launcher.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/Launcher.java?rev=1685741&r1=1685740&r2=1685741&view=diff
==============================================================================
---
sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/Launcher.java
(original)
+++
sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/Launcher.java
Tue Jun 16 09:09:59 2015
@@ -108,12 +108,11 @@ public class Launcher {
mergeModel(f);
}
- // And merge nested models (supporting one level of nesting only so
far)
- new NestedModelsMerger(model).visit();
computeEffectiveModel();
}
- public void computeEffectiveModel() {
+ public void computeEffectiveModel() throws Exception {
+ new NestedModelsMerger(model).visit();
model = ModelUtility.getEffectiveModel(model,
overridingVariableResolver);
}
Modified:
sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/NestedModelsMerger.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/NestedModelsMerger.java?rev=1685741&r1=1685740&r2=1685741&view=diff
==============================================================================
---
sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/NestedModelsMerger.java
(original)
+++
sling/trunk/contrib/crankstart/launcher/src/main/java/org/apache/sling/crankstart/launcher/NestedModelsMerger.java
Tue Jun 16 09:09:59 2015
@@ -37,6 +37,10 @@ public class NestedModelsMerger extends
private final Logger log = LoggerFactory.getLogger(getClass());
private List<Artifact> toMerge;
+ public static final String SLINGSTART = "slingstart";
+ public static final String SLINGFEATURE = "slingfeature";
+ public static final String NESTED_MODELS = "nested.models";
+
public NestedModelsMerger(Model m) {
super(m);
}
@@ -70,9 +74,18 @@ public class NestedModelsMerger extends
@Override
protected void visitArtifact(Feature f, RunMode rm, ArtifactGroup g,
Artifact a) throws Exception {
- final String classifier = a.getClassifier();
- if("slingstart".equals(classifier ) ||
"slingfeature".equals(classifier)) {
- toMerge.add(a);
+ // TODO how to identify a nested model when it's the main artifact of
a module,
+ // so doesn't have a slingfeature/slingstart type or classifier in its
artifact URL?
+ final String str = f.getVariables().get(NESTED_MODELS);
+ if(str == null || str.length() == 0) {
+ return;
+ }
+ final String [] nm = str.split(",");
+ for(String nested : nm) {
+ if(nested.equals(a.getArtifactId())) {
+ log.info("{} feature variable identifies artifact as a nested
model , will be merged: {}", f.getName() + "/" + NESTED_MODELS, a);
+ toMerge.add(a);
+ }
}
}
}
\ No newline at end of file
Modified:
sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java?rev=1685741&r1=1685740&r2=1685741&view=diff
==============================================================================
---
sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java
(original)
+++
sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/BasicLauncherIT.java
Tue Jun 16 09:09:59 2015
@@ -17,7 +17,6 @@ import org.apache.sling.commons.testing.
import org.apache.sling.testing.tools.osgi.WebconsoleClient;
import org.junit.Before;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
@@ -119,11 +118,10 @@ public class BasicLauncherIT {
}
@Test
- @Ignore("until test-model is deployed with classifier=slingfeature")
public void testBundlesFromNestedModel() throws Exception {
final String [] addBundles = {
"org.apache.sling.commons.threads",
- "org.apache.sling.commons.testing"
+ "org.apache.sling/org.apache.sling.discovery.api"
};
for(String name : addBundles) {
Modified:
sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/CrankstartSetup.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/CrankstartSetup.java?rev=1685741&r1=1685740&r2=1685741&view=diff
==============================================================================
---
sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/CrankstartSetup.java
(original)
+++
sling/trunk/contrib/crankstart/launcher/src/test/java/org/apache/sling/crankstart/launcher/CrankstartSetup.java
Tue Jun 16 09:09:59 2015
@@ -108,6 +108,7 @@ public class CrankstartSetup {
for(String path : MODEL_PATHS) {
mergeModelResource(launcher, path);
}
+ launcher.computeEffectiveModel();
crankstartThread = new Thread() {
public void run() {
Modified:
sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt?rev=1685741&r1=1685740&r2=1685741&view=diff
==============================================================================
---
sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt
(original)
+++
sling/trunk/contrib/crankstart/launcher/src/test/resources/provisioning-model/crankstart-tests.txt
Tue Jun 16 09:09:59 2015
@@ -19,6 +19,9 @@
[feature name=crankstart.tests]
+[variables]
+ nested.models=org.apache.sling.cransktart.test.model
+
[artifacts]
org.apache.sling/org.apache.sling.crankstart.test.services/1.9.9-SNAPSHOT
org.apache.sling/org.apache.sling.junit.core/1.0.10
@@ -26,7 +29,7 @@
org.apache.sling/org.apache.sling.settings/1.3.6
# Test a nested model file
- org.apache.sling/org.apache.sling.crankstart.test.model/1.9.9-SNAPSHOT/txt
+ org.apache.sling/org.apache.sling.cransktart.test.model/1.9.9-SNAPSHOT/txt
[artifacts runModes=A]
org.apache.sling/org.apache.sling.api/2.9.0
Modified:
sling/trunk/contrib/crankstart/test-model/src/main/provisioning/bundles.txt
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/crankstart/test-model/src/main/provisioning/bundles.txt?rev=1685741&r1=1685740&r2=1685741&view=diff
==============================================================================
--- sling/trunk/contrib/crankstart/test-model/src/main/provisioning/bundles.txt
(original)
+++ sling/trunk/contrib/crankstart/test-model/src/main/provisioning/bundles.txt
Tue Jun 16 09:09:59 2015
@@ -21,5 +21,5 @@
[feature name=crankstart.test.model]
[artifacts]
- org.apache.sling/org.apache.sling.commons.testing/2.0.18
+ org.apache.sling/org.apache.sling.discovery.api/1.0.2
org.apache.sling/org.apache.sling.commons.threads/3.2.0