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 2018/11/14 09:00:44 UTC
[sling-org-apache-sling-feature-analyser] branch master updated:
SLING-8108 : Provide setter methods for optional context info
This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-analyser.git
The following commit(s) were added to refs/heads/master by this push:
new 00048d0 SLING-8108 : Provide setter methods for optional context info
00048d0 is described below
commit 00048d06623a1816d0464847b3165d4dda0a26f0
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Nov 14 10:00:35 2018 +0100
SLING-8108 : Provide setter methods for optional context info
---
.../apache/sling/feature/analyser/Analyser.java | 31 ++++++++++++++--------
.../feature/analyser/task/AnalyserTaskContext.java | 9 +++----
.../task/impl/CheckApiRegionsDependencies.java | 4 +--
.../impl/AbstractApiRegionsAnalyserTaskTest.java | 8 ++++--
4 files changed, 32 insertions(+), 20 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/analyser/Analyser.java b/src/main/java/org/apache/sling/feature/analyser/Analyser.java
index 342709e..4e0f343 100644
--- a/src/main/java/org/apache/sling/feature/analyser/Analyser.java
+++ b/src/main/java/org/apache/sling/feature/analyser/Analyser.java
@@ -26,11 +26,11 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import java.util.Set;
import org.apache.sling.feature.ArtifactId;
import org.apache.sling.feature.Feature;
+import org.apache.sling.feature.KeyValueMap;
import org.apache.sling.feature.analyser.task.AnalyserTask;
import org.apache.sling.feature.analyser.task.AnalyserTaskContext;
import org.apache.sling.feature.scanner.BundleDescriptor;
@@ -47,7 +47,7 @@ public class Analyser {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
- private final Map<String, Properties> configuration;
+ private final Map<String, KeyValueMap> configurations;
public Analyser(final Scanner scanner,
final AnalyserTask...tasks) throws IOException {
@@ -55,10 +55,10 @@ public class Analyser {
}
public Analyser(final Scanner scanner,
- final Map<String, Properties> configuration,
+ final Map<String, KeyValueMap> configurations,
final AnalyserTask...tasks) throws IOException {
this.tasks = tasks;
- this.configuration = configuration;
+ this.configurations = configurations;
this.scanner = scanner;
}
@@ -69,10 +69,10 @@ public class Analyser {
}
public Analyser(final Scanner scanner,
- final Map<String, Properties> configuration,
+ final Map<String, KeyValueMap> configurations,
final String... taskClassNames)
throws IOException {
- this(scanner, configuration, getTasksByClassName(taskClassNames));
+ this(scanner, configurations, getTasksByClassName(taskClassNames));
if ( this.tasks.length != taskClassNames.length ) {
throw new IOException("Couldn't find all tasks " + Arrays.toString(taskClassNames));
}
@@ -85,10 +85,10 @@ public class Analyser {
}
public Analyser(final Scanner scanner,
- final Map<String, Properties> configuration,
+ final Map<String, KeyValueMap> configurations,
final Set<String> includes,
final Set<String> excludes) throws IOException {
- this(scanner, configuration, getTasksByIds(includes, excludes));
+ this(scanner, configurations, getTasksByIds(includes, excludes));
}
public Analyser(final Scanner scanner) throws IOException {
@@ -116,7 +116,7 @@ public class Analyser {
for(final AnalyserTask task : tasks) {
logger.info("- Executing {} [{}]...", task.getName(), task.getId());
- final Properties taskConfiguration = configuration.getOrDefault(task.getId(), new Properties());
+ final KeyValueMap taskConfiguration = getConfiguration(task.getId());
task.execute(new AnalyserTaskContext() {
@@ -136,8 +136,8 @@ public class Analyser {
}
@Override
- public String getConfigurationParameter(String argName, String defaultValue) {
- return taskConfiguration.getProperty(argName, defaultValue);
+ public KeyValueMap getConfiguration() {
+ return taskConfiguration;
}
@Override
@@ -170,4 +170,13 @@ public class Analyser {
}
};
}
+
+ private KeyValueMap getConfiguration(final String id) {
+ final KeyValueMap result = new KeyValueMap();
+
+ result.putAll(this.configurations.get("*"));
+ result.putAll(this.configurations.get(id));
+
+ return result;
+ }
}
diff --git a/src/main/java/org/apache/sling/feature/analyser/task/AnalyserTaskContext.java b/src/main/java/org/apache/sling/feature/analyser/task/AnalyserTaskContext.java
index 114fab6..610d8a9 100644
--- a/src/main/java/org/apache/sling/feature/analyser/task/AnalyserTaskContext.java
+++ b/src/main/java/org/apache/sling/feature/analyser/task/AnalyserTaskContext.java
@@ -17,6 +17,7 @@
package org.apache.sling.feature.analyser.task;
import org.apache.sling.feature.Feature;
+import org.apache.sling.feature.KeyValueMap;
import org.apache.sling.feature.scanner.BundleDescriptor;
import org.apache.sling.feature.scanner.FeatureDescriptor;
import org.osgi.annotation.versioning.ProviderType;
@@ -43,13 +44,11 @@ public interface AnalyserTaskContext {
BundleDescriptor getFrameworkDescriptor();
/**
- * Returns the context configuration parameter.
+ * Returns the configuration.
*
- * @param argName the argument name associated to a configuration value
- * @param defaultValue the default value, if the configuration parameter is missing
- * @return a configuration value associated to the input argName, defaultValue if the configuration parameter is missing
+ * @return The configuration map for the analyser task
*/
- String getConfigurationParameter(String argName, String defaultValue);
+ KeyValueMap getConfiguration();
/**
* This method is invoked by a {@link AnalyserTask} to report
diff --git a/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckApiRegionsDependencies.java b/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckApiRegionsDependencies.java
index fa35b39..8f80eee 100644
--- a/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckApiRegionsDependencies.java
+++ b/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckApiRegionsDependencies.java
@@ -46,8 +46,8 @@ public class CheckApiRegionsDependencies extends AbstractApiRegionsAnalyserTask
@Override
protected void execute(ApiRegions apiRegions, AnalyserTaskContext ctx) throws Exception {
- String exportingApisName = ctx.getConfigurationParameter(EXPORTING_APIS_KEY, DEFAULT_GLOBAL_REGION_NAME);
- String hidingApisName = ctx.getConfigurationParameter(HIDING_APIS_KEY, DEFAULT_DEPRECATED_REGION_NAME);
+ String exportingApisName = ctx.getConfiguration().getOrDefault(EXPORTING_APIS_KEY, DEFAULT_GLOBAL_REGION_NAME);
+ String hidingApisName = ctx.getConfiguration().getOrDefault(HIDING_APIS_KEY, DEFAULT_DEPRECATED_REGION_NAME);
Set<String> exportingApis = apiRegions.getApis(exportingApisName);
Set<String> hidingApis = apiRegions.getApis(hidingApisName);
diff --git a/src/test/java/org/apache/sling/feature/analyser/task/impl/AbstractApiRegionsAnalyserTaskTest.java b/src/test/java/org/apache/sling/feature/analyser/task/impl/AbstractApiRegionsAnalyserTaskTest.java
index 181dd05..305abae 100644
--- a/src/test/java/org/apache/sling/feature/analyser/task/impl/AbstractApiRegionsAnalyserTaskTest.java
+++ b/src/test/java/org/apache/sling/feature/analyser/task/impl/AbstractApiRegionsAnalyserTaskTest.java
@@ -34,6 +34,7 @@ import org.apache.sling.feature.ArtifactId;
import org.apache.sling.feature.Extension;
import org.apache.sling.feature.Extensions;
import org.apache.sling.feature.Feature;
+import org.apache.sling.feature.KeyValueMap;
import org.apache.sling.feature.analyser.task.AnalyserTask;
import org.apache.sling.feature.analyser.task.AnalyserTaskContext;
import org.apache.sling.feature.scanner.BundleDescriptor;
@@ -100,7 +101,7 @@ public abstract class AbstractApiRegionsAnalyserTaskTest<T extends AbstractApiRe
Feature feature = mock(Feature.class);
when(feature.getId()).thenReturn(new ArtifactId("org.apache.sling.testing",
- "org.apache.sling.testing.apiregions",
+ "org.apache.sling.testing.apiregions",
"1.0.0",
null,
null));
@@ -108,8 +109,11 @@ public abstract class AbstractApiRegionsAnalyserTaskTest<T extends AbstractApiRe
AnalyserTaskContext ctx = mock(AnalyserTaskContext.class);
when(ctx.getFeature()).thenReturn(feature);
- when(ctx.getConfigurationParameter(anyString(), anyString())).thenAnswer(new Answer<String>() {
+ KeyValueMap cfg = mock(KeyValueMap.class);
+ when(ctx.getConfiguration()).thenReturn(cfg);
+ when(cfg.getOrDefault(anyString(), anyString())).thenAnswer(new Answer<String>() {
+ @Override
public String answer(InvocationOnMock invocation) throws Throwable {
Object[] args = invocation.getArguments();
return (String) args[1];