You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2017/03/30 20:43:06 UTC

svn commit: r1789581 - in /sling/trunk/bundles/extensions/caconfig: impl/ impl/src/main/java/org/apache/sling/caconfig/impl/override/ impl/src/test/java/org/apache/sling/caconfig/impl/ impl/src/test/java/org/apache/sling/caconfig/impl/override/ impl/sr...

Author: sseifert
Date: Thu Mar 30 20:43:05 2017
New Revision: 1789581

URL: http://svn.apache.org/viewvc?rev=1789581&view=rev
Log: (empty)

Modified:
    sling/trunk/bundles/extensions/caconfig/impl/pom.xml
    sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/override/OverrideStringParser.java
    sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverValueMapTest.java
    sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImplTest.java
    sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/OverrideStringParserTest.java
    sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java
    sling/trunk/bundles/extensions/caconfig/integration-tests/pom.xml
    sling/trunk/bundles/extensions/caconfig/integration-tests/src/main/provisioning/integration-tests.txt

Modified: sling/trunk/bundles/extensions/caconfig/impl/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/pom.xml?rev=1789581&r1=1789580&r2=1789581&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/pom.xml (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/pom.xml Thu Mar 30 20:43:05 2017
@@ -47,8 +47,10 @@
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
-                        <!-- Remove those package imports because embedded and relocated via shade plugin (see below) -->
                         <Import-Package>
+                          <!-- Support XSS API 1.x and 2.x - we use only classes from the API with same signature in both versions -->
+                          org.apache.sling.xss;version="[1.0.0,3)",
+                          <!-- Remove those package imports because embedded and relocated via shade plugin (see below) -->
                           !org.apache.sling.commons.osgi,
                           *
                         </Import-Package>
@@ -151,12 +153,6 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.commons.json</artifactId>
-            <version>2.0.10</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
             <version>3.3.2</version>
@@ -168,6 +164,12 @@
             <version>3.2.1</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-json_1.0_spec</artifactId>
+            <version>1.0-alpha-1</version>
+            <scope>provided</scope>
+        </dependency>
         
         <!-- web console dependencies -->
         <dependency>
@@ -224,6 +226,12 @@
             <version>2.0.87-beta</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.johnzon</groupId>
+            <artifactId>johnzon-core</artifactId>
+            <version>1.0.0</version>
+            <scope>test</scope>
+        </dependency>
 
     </dependencies>
 

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/override/OverrideStringParser.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/override/OverrideStringParser.java?rev=1789581&r1=1789580&r2=1789581&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/override/OverrideStringParser.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/main/java/org/apache/sling/caconfig/impl/override/OverrideStringParser.java Thu Mar 30 20:43:05 2017
@@ -18,9 +18,13 @@
  */
 package org.apache.sling.caconfig.impl.override;
 
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
 import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -28,12 +32,19 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import javax.json.Json;
+import javax.json.JsonArray;
+import javax.json.JsonException;
+import javax.json.JsonNumber;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+import javax.json.JsonReaderFactory;
+import javax.json.JsonString;
+import javax.json.JsonValue;
+
 import org.apache.commons.lang3.ClassUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.sling.caconfig.spi.metadata.PropertyMetadata;
-import org.apache.sling.commons.json.JSONArray;
-import org.apache.sling.commons.json.JSONException;
-import org.apache.sling.commons.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -52,6 +63,8 @@ class OverrideStringParser {
     
     private static final Pattern OVERRIDE_PATTERN = Pattern.compile("^(\\[([^\\[\\]=]+)\\])?([^\\[\\]=]+)=(.*)$");
     
+    private static final JsonReaderFactory JSON_READER_FACTORY = Json.createReaderFactory(Collections.<String,Object>emptyMap());
+    
     private OverrideStringParser() {
         // static method sonly
     }
@@ -81,7 +94,7 @@ class OverrideStringParser {
             OverrideItem item;
             try {
                 // check if value is JSON = defines whole parameter map for a config name
-                JSONObject json = toJson(value);
+                JsonObject json = toJson(value);
                 if (json != null) {
                     item = new OverrideItem(path, configName, toMap(json), true);
                 }
@@ -98,14 +111,11 @@ class OverrideStringParser {
                     item = new OverrideItem(path, configName, props, false);
                 }
             }
-            catch (JSONException ex) {
+            catch (JsonException ex) {
                 log.warn("Ignore config override string - invalid JSON syntax ({}): {}", ex.getMessage(), overrideString);
                 continue;
             }
             
-            // convert arrays
-            convertArrays(item.getProperties());
-            
             // validate item
             if (!isValid(item, overrideString)) {
                 continue;
@@ -141,11 +151,17 @@ class OverrideStringParser {
      * @return JSON object or null if the string does not start with "{"
      * @throws JSONException when JSON parsing failed
      */
-    private static JSONObject toJson(String value) throws JSONException {
+    private static JsonObject toJson(String value) {
         if (!StringUtils.startsWith(value, "{")) {
             return null;
         }
-        return new JSONObject(value);
+        try (Reader reader = new StringReader(value);
+                JsonReader jsonReader = JSON_READER_FACTORY.createReader(reader)) {
+            return jsonReader.readObject();
+        }
+        catch (IOException ex) {
+            return null;
+        }
     }
     
     /**
@@ -153,17 +169,12 @@ class OverrideStringParser {
      * @param json JSON object
      * @return Map (keys/values are not validated)
      */
-    private static Map<String,Object> toMap(JSONObject json) {
+    private static Map<String,Object> toMap(JsonObject json) {
         Map<String,Object> props = new HashMap<>();
-        Iterator<String> keys = json.keys();
+        Iterator<String> keys = json.keySet().iterator();
         while (keys.hasNext()) {
             String key = keys.next();
-            try {
-                props.put(key, json.get(key));
-            }
-            catch (JSONException e) {
-                // should never happen
-            }
+            props.put(key, convertJsonValue(json.get(key)));
         }
         return props;
     }
@@ -174,46 +185,50 @@ class OverrideStringParser {
      * @return Object
      * @throws JSONException If JSON-parsing of value failed
      */
-    private static Object convertJsonValue(String jsonValue) throws JSONException {
+    private static Object convertJsonValue(String jsonValue) {
         String jsonString = "{\"value\":" + jsonValue + "}";
-        JSONObject json = toJson(jsonString);
-        return json.opt("value");
+        JsonObject json = toJson(jsonString);
+        return convertJsonValue(json.get("value"));
     }
     
-    /**
-     * Convert all JSON arrays in the properties map to Java Array counterparts. Invalid arrays are ignored.
-     * @param props Properties
-     */
-    private static void convertArrays(Map<String,Object> props) {
-        Map<String,Object> convertedProps = new HashMap<>();
-        for (Map.Entry<String, Object> entry : props.entrySet()) {
-            Object value = entry.getValue();
-            if (value.getClass().equals(JSONArray.class)) {
-                JSONArray array = (JSONArray)value;
-                if (array.length() == 0) {             
-                    convertedProps.put(entry.getKey(), new String[0]);
-                }
-                else {
-                    Object firstValue = array.opt(0);
-                    if (firstValue != null) {
-                        try {
-                            Class firstType = firstValue.getClass();
-                            Object convertedArray = Array.newInstance(firstType, array.length());
-                            for (int i=0; i<array.length(); i++) {
-                                Array.set(convertedArray, i, array.opt(i));
-                            }
-                            convertedProps.put(entry.getKey(), convertedArray);
-                        }
-                        catch (IllegalArgumentException ex) {
-                            // ignore arrays with mixed types - will fail later in validation
-                        }
-                    }
+    private static Object convertJsonValue(JsonValue jsonValue) {
+        switch (jsonValue.getValueType()) {
+        case STRING:
+            return ((JsonString)jsonValue).getString();
+        case NUMBER:
+            JsonNumber number = (JsonNumber)jsonValue;
+            if (number.isIntegral()) {
+                return number.longValue();
+            }
+            else {
+                return number.doubleValue();
+            }
+        case TRUE:
+            return true;
+        case FALSE:
+            return false;
+        case NULL:
+            return null;
+        case ARRAY:
+            return convertJsonArray((JsonArray)jsonValue);
+        default:
+            throw new RuntimeException("Unexpected JSON value type: " + jsonValue.getValueType() + ": " + jsonValue);
+        }
+    }
+    
+    private static Object convertJsonArray(JsonArray jsonArray) {
+        if (jsonArray.size() > 0) {             
+            Object firstValue = convertJsonValue(jsonArray.get(0));
+            if (firstValue != null) {
+                Class firstType = firstValue.getClass();
+                Object convertedArray = Array.newInstance(firstType, jsonArray.size());
+                for (int i=0; i<jsonArray.size(); i++) {
+                    Array.set(convertedArray, i, convertJsonValue(jsonArray.get(i)));
                 }
+                return convertedArray;
             }
         }
-        if (!convertedProps.isEmpty()) {
-            props.putAll(convertedProps);
-        }
+        return new String[0];
     }
     
     /**
@@ -239,7 +254,7 @@ class OverrideStringParser {
             }
             Object value = entry.getValue();
             if (value == null || !isSupportedType(value)) {
-                log.warn("Ignore config override string - invalid property value ({} - {}): {}", value, value.getClass().getName(), overrideString);
+                log.warn("Ignore config override string - invalid property value ({} - {}): {}", value, value != null ? value.getClass().getName() : "", overrideString);
                 return false;
             }
         }

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverValueMapTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverValueMapTest.java?rev=1789581&r1=1789580&r2=1789581&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverValueMapTest.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverValueMapTest.java Thu Mar 30 20:43:05 2017
@@ -147,7 +147,7 @@ public class ConfigurationResolverValueM
     @Test
     public void testConfigWithOverride() {
         context.registerService(ConfigurationOverrideProvider.class, new DummyConfigurationOverrideProvider(
-                "[/content]sampleName={stringParam='override1',intParam=222}"));
+                "[/content]sampleName={\"stringParam\":\"override1\",\"intParam\":222}"));
 
         context.build().resource("/conf/content/site1/sling:configs/sampleName", 
                 "stringParam", "configValue1",
@@ -164,7 +164,7 @@ public class ConfigurationResolverValueM
     @Test
     public void testConfigCollectionWithOverride() {
         context.registerService(ConfigurationOverrideProvider.class, new DummyConfigurationOverrideProvider(
-                "[/content]sampleList/stringParam='override1'"));
+                "[/content]sampleList/stringParam=\"override1\""));
 
         context.build().resource("/conf/content/site1/sling:configs/sampleList")
             .siblingsMode()

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImplTest.java?rev=1789581&r1=1789580&r2=1789581&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImplTest.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/ConfigurationOverrideMultiplexerImplTest.java Thu Mar 30 20:43:05 2017
@@ -56,13 +56,13 @@ public class ConfigurationOverrideMultip
 
         // 1st provider
         context.registerService(ConfigurationOverrideProvider.class, new DummyConfigurationOverrideProvider(
-                "test/globalParam1='globalValue1'",
-                "[/a/b]test/param1='value1'"), Constants.SERVICE_RANKING, 200);
+                "test/globalParam1=\"globalValue1\"",
+                "[/a/b]test/param1=\"value1\""), Constants.SERVICE_RANKING, 200);
 
         // 2nd provider (may overwrite 1st one)
         context.registerService(ConfigurationOverrideProvider.class, new DummyConfigurationOverrideProvider(
-                "test/globalParam1='globalValue1a'",
-                "[/a/b/c]test={'param1'='value2'}"), Constants.SERVICE_RANKING, 100);
+                "test/globalParam1=\"globalValue1a\"",
+                "[/a/b/c]test={\"param1\":\"value2\"}"), Constants.SERVICE_RANKING, 100);
 
         assertOverride("/a", "test",
                 ImmutableMap.<String,Object>of("param1", "initialValue"),

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/OverrideStringParserTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/OverrideStringParserTest.java?rev=1789581&r1=1789580&r2=1789581&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/OverrideStringParserTest.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/override/OverrideStringParserTest.java Thu Mar 30 20:43:05 2017
@@ -37,7 +37,7 @@ public class OverrideStringParserTest {
     private static final Map<String,Object> BASICTYPES_MAP = ImmutableMap.<String,Object>builder()
             .put("param1", "value1")
             .put("param2", "value2")
-            .put("param3", 555)
+            .put("param3", 555L)
             .put("param4", 1.23d)
             .put("param5", true)
             .build();
@@ -45,7 +45,7 @@ public class OverrideStringParserTest {
     private static final Map<String,Object> BASICTYPES_ARRAY_MAP = ImmutableMap.<String,Object>builder()
             .put("param1", new String[] { "v1a", "v1b" })
             .put("param2", new String[] { "v2a", "v2b" })
-            .put("param3", new Integer[] { 555, 666 })
+            .put("param3", new Long[] { 555L, 666L })
             .put("param4", new Double[] { 1.23d, 2.34d })
             .put("param5", new Boolean[] { true, false })
             .put("param6", new String[0])
@@ -61,7 +61,7 @@ public class OverrideStringParserTest {
     public void testBasicTypes() {
         List<OverrideItem> result = parse(
                 "configName/param1=\"value1\"",
-                "configName/param2='value2'",
+                "configName/param2=\"value2\"",
                 "configName/param3=555",
                 "configName/param4=1.23",
                 "configName/param5=true");
@@ -78,7 +78,7 @@ public class OverrideStringParserTest {
     public void testBasicTypesArray() {
         List<OverrideItem> result = parse(
                 "config.name/param1=[\"v1a\",\"v1b\"]",
-                "config.name/param2=['v2a','v2b']",
+                "config.name/param2=[\"v2a\",\"v2b\"]",
                 "config.name/param3=[555,666]",
                 "config.name/param4=[1.23,2.34]",
                 "config.name/param5=[true,false]",
@@ -98,10 +98,10 @@ public class OverrideStringParserTest {
     public void testBasicTypesJson() {
         List<OverrideItem> result = parse(
                 "configName={\"param1\":\"value1\","
-                + "'param2':'value2',"
-                + "param3:555,"
-                + "param4:1.23,"
-                + "param5:true}");
+                + "\"param2\":\"value2\","
+                + "\"param3\":555,"
+                + "\"param4\":1.23,"
+                + "\"param5\":true}");
 
         assertEquals(1, result.size());
         OverrideItem item = result.get(0);
@@ -115,11 +115,11 @@ public class OverrideStringParserTest {
     public void testBasicTypesJsonArray() {
         List<OverrideItem> result = parse(
                 "configName={\"param1\":[\"v1a\",\"v1b\"],"
-                + "'param2':['v2a','v2b'],"
-                + "param3:[555,666],"
-                + "param4:[1.23,2.34],"
-                + "param5:[true,false],"
-                + "param6:[]}");
+                + "\"param2\":[\"v2a\",\"v2b\"],"
+                + "\"param3\":[555,666],"
+                + "\"param4\":[1.23,2.34],"
+                + "\"param5\":[true,false],"
+                + "\"param6\":[]}");
 
         assertEquals(1, result.size());
         OverrideItem item = result.get(0);
@@ -158,10 +158,10 @@ public class OverrideStringParserTest {
                 "[/a/b]configName/param1=\"value1\"",
                 "configName/param2=\"value2\"",
                 "[/a/b]configName={\"param1\":\"value1\","
-                        + "'param2':'value2',"
-                        + "param3:555,"
-                        + "param4:1.23,"
-                        + "param5:true}");
+                        + "\"param2\":\"value2\","
+                        + "\"param3\":555,"
+                        + "\"param4\":1.23,"
+                        + "\"param5\":true}");
         
         assertEquals(3, result.size());
         
@@ -193,7 +193,7 @@ public class OverrideStringParserTest {
                 "[/a/b]configName=\"value1\"",
                 "[/a/../b]configName/param1=\"value1\"",
                 "[]configName=\"value1\"",
-                "configName/param2:'value2'",
+                "configName/param2:\"value2\"",
                 "configName/param3",
                 "configName/param3=",
                 "[[/a/b]]configName/param4=1.23",
@@ -212,7 +212,7 @@ public class OverrideStringParserTest {
                 "configName1={param1:[\"value1\",123]}",
                 "configName2={param1:{\"subparam1\":\"value1\"}}",
                 "configName1={param1:null}",
-                "configName1={'param1:'value1'}");
+                "configName1={\"param1:\"value1\"}");
 
         // all ignored
         assertEquals(0, result.size());

Modified: sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java?rev=1789581&r1=1789580&r2=1789581&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java (original)
+++ sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplTest.java Thu Mar 30 20:43:05 2017
@@ -293,7 +293,7 @@ public class ConfigurationManagerImplTes
     @Test
     public void testGetConfiguration_WithOverride() {
         context.registerService(ConfigurationOverrideProvider.class, new DummyConfigurationOverrideProvider(
-                "[/content]" + CONFIG_NAME + "={prop1='override1'}"));
+                "[/content]" + CONFIG_NAME + "={\"prop1\":\"override1\"}"));
         
         ConfigurationData configData = underTest.getConfiguration(contextResource, CONFIG_NAME);
         assertNotNull(configData);
@@ -458,7 +458,7 @@ public class ConfigurationManagerImplTes
     @Test
     public void testGetConfigurationCollection_WithOverride() {
         context.registerService(ConfigurationOverrideProvider.class, new DummyConfigurationOverrideProvider(
-                "[/content]" + CONFIG_COL_NAME + "/prop1='override1'"));
+                "[/content]" + CONFIG_COL_NAME + "/prop1=\"override1\""));
         
         List<ConfigurationData> configDatas = ImmutableList.copyOf(underTest.getConfigurationCollection(contextResource, CONFIG_COL_NAME).getItems());
         assertEquals(2, configDatas.size());

Modified: sling/trunk/bundles/extensions/caconfig/integration-tests/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/integration-tests/pom.xml?rev=1789581&r1=1789580&r2=1789581&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/integration-tests/pom.xml (original)
+++ sling/trunk/bundles/extensions/caconfig/integration-tests/pom.xml Thu Mar 30 20:43:05 2017
@@ -209,34 +209,28 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.junit.teleporter</artifactId>
-            <version>1.0.8</version>
+            <version>1.0.12</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.junit.core</artifactId>
-            <version>1.0.22</version>
+            <version>1.0.24-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.testing.tools</artifactId>
-            <version>1.0.14</version>
+            <version>1.0.15-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.resourcebuilder</artifactId>
-            <version>1.0.0</version>
+            <version>1.0.2</version>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.3.2</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.launchpad</artifactId>
             <version>9-SNAPSHOT</version>

Modified: sling/trunk/bundles/extensions/caconfig/integration-tests/src/main/provisioning/integration-tests.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/integration-tests/src/main/provisioning/integration-tests.txt?rev=1789581&r1=1789580&r2=1789581&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/caconfig/integration-tests/src/main/provisioning/integration-tests.txt (original)
+++ sling/trunk/bundles/extensions/caconfig/integration-tests/src/main/provisioning/integration-tests.txt Thu Mar 30 20:43:05 2017
@@ -22,7 +22,6 @@
   org.apache.sling/org.apache.sling.launchpad//slingfeature/slingfeature
 
 [artifacts startLevel=15]
-  org.apache.commons/commons-lang3
   org.apache.sling/org.apache.sling.junit.core
   org.apache.sling/org.apache.sling.testing.tools
   org.apache.sling/org.apache.sling.resourcebuilder