You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/11/27 08:21:10 UTC
svn commit: r1716803 - in
/sling/trunk/tooling/support/provisioning-model/src:
main/java/org/apache/sling/provisioning/model/
test/java/org/apache/sling/provisioning/model/ test/resources/
Author: cziegeler
Date: Fri Nov 27 07:21:10 2015
New Revision: 1716803
URL: http://svn.apache.org/viewvc?rev=1716803&view=rev
Log:
SLING-5318 : Sling provisioning model does not propagate Artifact metadata during processing. Apply patch from David Bosschaert
Modified:
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Artifact.java
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java
sling/trunk/tooling/support/provisioning-model/src/test/resources/example.txt
Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Artifact.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Artifact.java?rev=1716803&r1=1716802&r2=1716803&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Artifact.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Artifact.java Fri Nov 27 07:21:10 2015
@@ -16,6 +16,7 @@
*/
package org.apache.sling.provisioning.model;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -54,6 +55,24 @@ public class Artifact extends Commentabl
final String version,
final String classifier,
final String type) {
+ this(gId, aId, version, classifier, type, Collections.<String, String>emptyMap());
+ }
+
+ /**
+ * Create a new artifact object
+ * @param gId The group id (required)
+ * @param aId The artifact id (required)
+ * @param version The version (required)
+ * @param classifier The classifier (optional)
+ * @param type The type/extension (optional, defaults to jar)
+ * @param metadata The metadata associated with the Artifact
+ */
+ public Artifact(final String gId,
+ final String aId,
+ final String version,
+ final String classifier,
+ final String type,
+ final Map<String, String> metadata) {
this.groupId = (gId != null ? gId.trim() : null);
this.artifactId = (aId != null ? aId.trim() : null);
this.version = (version != null ? version.trim() : null);
@@ -69,6 +88,7 @@ public class Artifact extends Commentabl
} else {
this.classifier = trimmedClassifier;
}
+ this.metadata.putAll(metadata);
}
/**
Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java?rev=1716803&r1=1716802&r2=1716803&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java Fri Nov 27 07:21:10 2015
@@ -31,7 +31,7 @@ import org.apache.sling.provisioning.mod
* Resolves all variables and artifact dependencies for the {@link ModelUtility#getEffectiveModel(Model)} method.
*/
class EffectiveModelProcessor extends ModelProcessor {
-
+
private final ResolverOptions options;
public EffectiveModelProcessor(ResolverOptions options) {
@@ -50,7 +50,7 @@ class EffectiveModelProcessor extends Mo
final String type = replace(newFeature, artifact.getType(), options.getVariableResolver());
final String resolvedVersion = resolveArtifactVersion(groupId, artifactId, version, classifier, type,
options.getArtifactVersionResolver());
- return new Artifact(groupId, artifactId, resolvedVersion, classifier, type);
+ return new Artifact(groupId, artifactId, resolvedVersion, classifier, type, artifact.getMetadata());
}
@Override
Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java?rev=1716803&r1=1716802&r2=1716803&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java Fri Nov 27 07:21:10 2015
@@ -310,7 +310,8 @@ public abstract class ModelUtility {
artifact.getArtifactId(),
newVersion,
artifact.getClassifier(),
- artifact.getType());
+ artifact.getType(),
+ artifact.getMetadata());
}
};
Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java?rev=1716803&r1=1716802&r2=1716803&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java Fri Nov 27 07:21:10 2015
@@ -17,7 +17,7 @@
* under the License.
*/
-@Version("1.4.0")
+@Version("1.5.0")
package org.apache.sling.provisioning.model;
import aQute.bnd.annotation.Version;
Modified: sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java?rev=1716803&r1=1716802&r2=1716803&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java Fri Nov 27 07:21:10 2015
@@ -16,22 +16,23 @@
*/
package org.apache.sling.provisioning.model;
-import static org.apache.sling.provisioning.model.ModelConstants.DEFAULT_RUN_MODE;
-import static org.apache.sling.provisioning.model.ModelConstants.DEFAULT_START_LEVEL;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.apache.sling.provisioning.model.io.ModelReader;
+import static org.apache.sling.provisioning.model.ModelConstants.DEFAULT_RUN_MODE;
+import static org.apache.sling.provisioning.model.ModelConstants.DEFAULT_START_LEVEL;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
/** Test utilities */
public class U {
@@ -39,10 +40,16 @@ public class U {
new String[] {"boot.txt", "example.txt", "main.txt", "oak.txt"};
public static void assertArtifact(ArtifactGroup g, String mvnUrl) {
+ assertArtifact(g, mvnUrl, Collections.<String,String>emptyMap());
+ }
+
+ public static void assertArtifact(ArtifactGroup g, String mvnUrl, Map<String, String> metadata) {
final Artifact a = Artifact.fromMvnUrl(mvnUrl);
- if(!g.items.contains(a)) {
+ int idx = g.items.indexOf(a);
+ if(idx < 0) {
fail("Expecting ArtifactGroup to contain '" + mvnUrl + "': " + g);
}
+ assertEquals("Incorrect metadata", metadata, g.items.get(idx).getMetadata());
}
/** Read our test model by merging our TEST_MODEL_FILENAMES */
@@ -111,7 +118,8 @@ public class U {
{
final ArtifactGroup g = getGroup(m, "example", DEFAULT_RUN_MODE, DEFAULT_START_LEVEL);
- U.assertArtifact(g, "mvn:commons-collections/commons-collections/3.2.1/jar");
+ U.assertArtifact(g, "mvn:commons-collections/commons-collections/3.2.1/jar",
+ Collections.singletonMap("private-packages", "*"));
U.assertArtifact(g, "mvn:org.example/jar-is-default/1.2/jar");
}
@@ -135,7 +143,7 @@ public class U {
final Feature exampleFeature = m.getFeature("example");
final RunMode defaultExampleRM = exampleFeature.getRunMode();
final List<Configuration> configs = assertConfigurationsInRunMode(defaultExampleRM, 3);
- assertEquals(FeatureTypes.SUBSYSTEM_FEATURE, exampleFeature.getType());
+ assertEquals(FeatureTypes.SUBSYSTEM_COMPOSITE, exampleFeature.getType());
final Configuration cfg = assertConfiguration(configs, "org.apache.sling.another.config");
}
Modified: sling/trunk/tooling/support/provisioning-model/src/test/resources/example.txt
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/test/resources/example.txt?rev=1716803&r1=1716802&r2=1716803&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/test/resources/example.txt (original)
+++ sling/trunk/tooling/support/provisioning-model/src/test/resources/example.txt Fri Nov 27 07:21:10 2015
@@ -20,7 +20,7 @@
#
# A feature consists of variables and run mode dependent artifacts.
#
-[feature name=example type=osgi.subsystem.feature]
+[feature name=example type=osgi.subsystem.composite]
# The variables are global and can be used within artifact definitions, configurations,
# and settings.
#
@@ -38,7 +38,7 @@
[artifacts]
commons-io/commons-io/1.4/jar
commons-fileupload/commons-fileupload/1.3.1/jar
- commons-collections/commons-collections/3.2.1/jar
+ commons-collections/commons-collections/3.2.1/jar [private-packages=*]
commons-codec/commons-codec/1.9/jar
commons-lang/commons-lang/2.6/jar
org.apache.commons/commons-math/2.2/jar