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 2018/08/06 11:57:14 UTC
[sling-org-apache-sling-testing-caconfig-mock-plugin] branch
feature/SLING-7803-nullability created (now d59eed2)
This is an automated email from the ASF dual-hosted git repository.
sseifert pushed a change to branch feature/SLING-7803-nullability
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-caconfig-mock-plugin.git.
at d59eed2 SLING-7803 apply jetbrains nullability annotations on public API
This branch includes the following new commits:
new d59eed2 SLING-7803 apply jetbrains nullability annotations on public API
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[sling-org-apache-sling-testing-caconfig-mock-plugin] 01/01:
SLING-7803 apply jetbrains nullability annotations on public API
Posted by ss...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sseifert pushed a commit to branch feature/SLING-7803-nullability
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-caconfig-mock-plugin.git
commit d59eed2bbf0f1eb57ae7aec253ebdefc91bcdb67
Author: sseifert <ss...@pro-vision.de>
AuthorDate: Mon Aug 6 13:52:38 2018 +0200
SLING-7803 apply jetbrains nullability annotations on public API
---
pom.xml | 17 ++++++----
.../mock/caconfig/ConfigurationMetadataUtil.java | 12 +++++---
.../testing/mock/caconfig/ContextPlugins.java | 10 +++---
.../mock/caconfig/MockContextAwareConfig.java | 36 +++++++++++++---------
.../sling/testing/mock/caconfig/package-info.java | 2 +-
.../testing/mock/caconfig/ContextPluginsTest.java | 1 +
.../mock/caconfig/MockContextAwareConfigTest.java | 1 +
7 files changed, 49 insertions(+), 30 deletions(-)
diff --git a/pom.xml b/pom.xml
index 2a91c03..a64f3ee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
- <version>30</version>
+ <version>34-SNAPSHOT</version>
<relativePath />
</parent>
@@ -51,6 +51,11 @@
<dependencies>
<dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.annotation.versioning</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.caconfig.api</artifactId>
<version>1.1.0</version>
@@ -76,14 +81,14 @@
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.testing.osgi-mock</artifactId>
- <version>2.2.4</version>
+ <artifactId>org.apache.sling.testing.sling-mock</artifactId>
+ <version>2.3.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
+ <!-- Nullability annotations -->
<dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.testing.sling-mock</artifactId>
- <version>1.9.0</version>
+ <groupId>org.jetbrains</groupId>
+ <artifactId>annotations</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
diff --git a/src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationMetadataUtil.java b/src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationMetadataUtil.java
index d12d9e5..fff4798 100644
--- a/src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationMetadataUtil.java
+++ b/src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationMetadataUtil.java
@@ -40,6 +40,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.sling.caconfig.annotation.Configuration;
import org.apache.sling.testing.mock.osgi.ManifestScanner;
import org.apache.sling.testing.mock.osgi.MockOsgi;
+import org.jetbrains.annotations.NotNull;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
@@ -51,10 +52,11 @@ import org.reflections.Reflections;
/**
* Helper methods for registering Configuration annotation classes from the classpath.
*/
+@SuppressWarnings("null")
final class ConfigurationMetadataUtil {
- private static final String[] CONFIGURATION_CLASSES_FROM_MANIFEST;
- private static final ConcurrentMap<String, List<Class>> CONFIGURATION_CLASSES_FOR_PACKAGES = new ConcurrentHashMap<String, List<Class>>();
+ private static final @NotNull String @NotNull [] CONFIGURATION_CLASSES_FROM_MANIFEST;
+ private static final @NotNull ConcurrentMap<String, List<Class>> CONFIGURATION_CLASSES_FOR_PACKAGES = new ConcurrentHashMap<String, List<Class>>();
static {
// suppress log entries from Reflections library
@@ -77,7 +79,7 @@ final class ConfigurationMetadataUtil {
* @param bundleContext Bundle context
* @param classNames Java class names
*/
- public static void registerAnnotationClasses(BundleContext bundleContext, String... classNames) {
+ public static void registerAnnotationClasses(@NotNull BundleContext bundleContext, @NotNull String @NotNull ... classNames) {
Bundle bundle = new RegisterConfigurationMetadataBundle(bundleContext, Bundle.ACTIVE, classNames);
BundleEvent event = new BundleEvent(BundleEvent.STARTED, bundle);
MockOsgi.sendBundleEvent(bundleContext, event);
@@ -88,7 +90,7 @@ final class ConfigurationMetadataUtil {
* @param bundleContext Bundle context
* @param classNames Java class names
*/
- public static void registerAnnotationClasses(BundleContext bundleContext, Class... classes) {
+ public static void registerAnnotationClasses(@NotNull BundleContext bundleContext, @NotNull Class @NotNull ... classes) {
String[] classNames = new String[classes.length];
for (int i = 0; i < classes.length; i++) {
classNames[i] = classes[i].getName();
@@ -111,7 +113,7 @@ final class ConfigurationMetadataUtil {
* @param packageNames Package names
* @return List of classes
*/
- public static Collection<Class> getConfigurationClassesForPackages(String packageNames) {
+ public static Collection<Class> getConfigurationClassesForPackages(@NotNull String packageNames) {
List<Class> classes = CONFIGURATION_CLASSES_FOR_PACKAGES.get(packageNames);
if (classes == null) {
classes = new ArrayList<Class>();
diff --git a/src/main/java/org/apache/sling/testing/mock/caconfig/ContextPlugins.java b/src/main/java/org/apache/sling/testing/mock/caconfig/ContextPlugins.java
index 03e124b..75df3f9 100644
--- a/src/main/java/org/apache/sling/testing/mock/caconfig/ContextPlugins.java
+++ b/src/main/java/org/apache/sling/testing/mock/caconfig/ContextPlugins.java
@@ -30,6 +30,7 @@ import org.apache.sling.caconfig.resource.impl.def.DefaultContextPathStrategy;
import org.apache.sling.testing.mock.osgi.context.AbstractContextPlugin;
import org.apache.sling.testing.mock.osgi.context.ContextPlugin;
import org.apache.sling.testing.mock.sling.context.SlingContextImpl;
+import org.jetbrains.annotations.NotNull;
import org.osgi.annotation.versioning.ProviderType;
/**
@@ -46,9 +47,9 @@ public final class ContextPlugins {
/**
* Context plugin for Sling Context-Aware Configuration.
*/
- public static final ContextPlugin<? extends SlingContextImpl> CACONFIG = new AbstractContextPlugin<SlingContextImpl>() {
+ public static final @NotNull ContextPlugin<? extends SlingContextImpl> CACONFIG = new AbstractContextPlugin<SlingContextImpl>() {
@Override
- public void afterSetUp(SlingContextImpl context) throws Exception {
+ public void afterSetUp(@NotNull SlingContextImpl context) throws Exception {
registerConfigurationResourceResolver(context);
registerConfigurationResolver(context);
registerConfigurationManagement(context);
@@ -63,9 +64,9 @@ public final class ContextPlugins {
/**
* Context plugin for Sling Context-Aware Configuration (without the default implementations).
*/
- public static final ContextPlugin<? extends SlingContextImpl> CACONFIG_NODEF = new AbstractContextPlugin<SlingContextImpl>() {
+ public static final @NotNull ContextPlugin<? extends SlingContextImpl> CACONFIG_NODEF = new AbstractContextPlugin<SlingContextImpl>() {
@Override
- public void afterSetUp(SlingContextImpl context) throws Exception {
+ public void afterSetUp(@NotNull SlingContextImpl context) throws Exception {
registerConfigurationResourceResolver(context);
registerConfigurationResolver(context);
registerConfigurationManagement(context);
@@ -147,6 +148,7 @@ public final class ContextPlugins {
context.registerInjectActivateService(new AnnotationClassConfigurationMetadataProvider());
}
+ @SuppressWarnings("null")
private static boolean registerByClassName(SlingContextImpl context, String className) {
try {
Class<?> clazz = Class.forName(className);
diff --git a/src/main/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfig.java b/src/main/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfig.java
index ac13366..a77e512 100644
--- a/src/main/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfig.java
+++ b/src/main/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfig.java
@@ -31,6 +31,7 @@ import org.apache.sling.caconfig.spi.ConfigurationCollectionPersistData;
import org.apache.sling.caconfig.spi.ConfigurationPersistData;
import org.apache.sling.testing.mock.osgi.MapUtil;
import org.apache.sling.testing.mock.sling.context.SlingContextImpl;
+import org.jetbrains.annotations.NotNull;
import org.osgi.annotation.versioning.ProviderType;
/**
@@ -48,7 +49,7 @@ public final class MockContextAwareConfig {
* @param context Sling context
* @param classNames Java class names
*/
- public static void registerAnnotationClasses(SlingContextImpl context, String... classNames) {
+ public static void registerAnnotationClasses(@NotNull SlingContextImpl context, @NotNull String @NotNull ... classNames) {
ConfigurationMetadataUtil.registerAnnotationClasses(context.bundleContext(), classNames);
}
@@ -57,7 +58,7 @@ public final class MockContextAwareConfig {
* @param context Sling context
* @param classes Java classes
*/
- public static void registerAnnotationClasses(SlingContextImpl context, Class... classes) {
+ public static void registerAnnotationClasses(@NotNull SlingContextImpl context, @NotNull Class @NotNull ... classes) {
ConfigurationMetadataUtil.registerAnnotationClasses(context.bundleContext(), classes);
}
@@ -66,7 +67,8 @@ public final class MockContextAwareConfig {
* @param context Sling context
* @param packageNames Java package names
*/
- public static void registerAnnotationPackages(SlingContextImpl context, String... packageNames) {
+ @SuppressWarnings("null")
+ public static void registerAnnotationPackages(@NotNull SlingContextImpl context, @NotNull String @NotNull ... packageNames) {
Collection<Class> classes = ConfigurationMetadataUtil.getConfigurationClassesForPackages(StringUtils.join(packageNames, ","));
registerAnnotationClasses(context, classes.toArray(new Class[classes.size()]));
}
@@ -79,8 +81,8 @@ public final class MockContextAwareConfig {
* @param configClass Configuration class
* @param values Configuration values
*/
- public static void writeConfiguration(SlingContextImpl context, String contextPath, Class<?> configClass,
- Map<String, Object> values) {
+ public static void writeConfiguration(@NotNull SlingContextImpl context, @NotNull String contextPath, @NotNull Class<?> configClass,
+ @NotNull Map<String, Object> values) {
writeConfiguration(context, contextPath, getConfigurationName(configClass), values);
}
@@ -92,8 +94,9 @@ public final class MockContextAwareConfig {
* @param configName Config name
* @param values Configuration values
*/
- public static void writeConfiguration(SlingContextImpl context, String contextPath, String configName,
- Map<String, Object> values) {
+ @SuppressWarnings("null")
+ public static void writeConfiguration(@NotNull SlingContextImpl context, @NotNull String contextPath, @NotNull String configName,
+ @NotNull Map<String, Object> values) {
ConfigurationManager configManager = context.getService(ConfigurationManager.class);
Resource contextResource = context.resourceResolver().getResource(contextPath);
configManager.persistConfiguration(contextResource, configName, new ConfigurationPersistData(values));
@@ -107,7 +110,7 @@ public final class MockContextAwareConfig {
* @param configClass Configuration class
* @param values Configuration values
*/
- public static void writeConfiguration(SlingContextImpl context, String contextPath, Class<?> configClass, Object... values) {
+ public static void writeConfiguration(@NotNull SlingContextImpl context, @NotNull String contextPath, Class<?> configClass, @NotNull Object @NotNull ... values) {
writeConfiguration(context, contextPath, getConfigurationName(configClass), values);
}
@@ -119,7 +122,7 @@ public final class MockContextAwareConfig {
* @param configName Config name
* @param values Configuration values
*/
- public static void writeConfiguration(SlingContextImpl context, String contextPath, String configName, Object... values) {
+ public static void writeConfiguration(@NotNull SlingContextImpl context, @NotNull String contextPath, @NotNull String configName, @NotNull Object @NotNull ... values) {
writeConfiguration(context, contextPath, configName, MapUtil.toMap(values));
}
@@ -131,8 +134,8 @@ public final class MockContextAwareConfig {
* @param configClass Configuration class
* @param values Configuration values
*/
- public static void writeConfigurationCollection(SlingContextImpl context, String contextPath, Class<?> configClass,
- Collection<Map<String, Object>> values) {
+ public static void writeConfigurationCollection(@NotNull SlingContextImpl context, @NotNull String contextPath, @NotNull Class<?> configClass,
+ @NotNull Collection<@NotNull Map<String, Object>> values) {
writeConfigurationCollection(context, contextPath, getConfigurationName(configClass), values);
}
@@ -144,10 +147,14 @@ public final class MockContextAwareConfig {
* @param configName Config name
* @param values Configuration values
*/
- public static void writeConfigurationCollection(SlingContextImpl context, String contextPath, String configName,
- Collection<Map<String, Object>> values) {
+ @SuppressWarnings("null")
+ public static void writeConfigurationCollection(@NotNull SlingContextImpl context, @NotNull String contextPath, @NotNull String configName,
+ @NotNull Collection<@NotNull Map<String, Object>> values) {
ConfigurationManager configManager = context.getService(ConfigurationManager.class);
Resource contextResource = context.resourceResolver().getResource(contextPath);
+ if (contextResource == null) {
+ throw new IllegalArgumentException("No resource found at" + contextPath);
+ }
List<ConfigurationPersistData> items = new ArrayList<>();
int index = 0;
for (Map<String, Object> map : values) {
@@ -157,7 +164,8 @@ public final class MockContextAwareConfig {
new ConfigurationCollectionPersistData(items));
}
- private static String getConfigurationName(Class<?> configClass) {
+ @SuppressWarnings("null")
+ private static @NotNull String getConfigurationName(Class<?> configClass) {
Configuration annotation = configClass.getAnnotation(Configuration.class);
if (annotation != null && StringUtils.isNotBlank(annotation.name())) {
return annotation.name();
diff --git a/src/main/java/org/apache/sling/testing/mock/caconfig/package-info.java b/src/main/java/org/apache/sling/testing/mock/caconfig/package-info.java
index 99d628c..cfde06a 100644
--- a/src/main/java/org/apache/sling/testing/mock/caconfig/package-info.java
+++ b/src/main/java/org/apache/sling/testing/mock/caconfig/package-info.java
@@ -19,5 +19,5 @@
/**
* Apache Sling Context-Aware Configuration Mock Plugin
*/
-@org.osgi.annotation.versioning.Version("1.1.0")
+@org.osgi.annotation.versioning.Version("1.1.1")
package org.apache.sling.testing.mock.caconfig;
diff --git a/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java b/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java
index d331e19..6ddd912 100644
--- a/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java
@@ -32,6 +32,7 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+@SuppressWarnings("null")
public class ContextPluginsTest {
private static final String CONFIG_NAME = "testConfig";
diff --git a/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java b/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java
index 4c71660..ecd1bbb 100644
--- a/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java
@@ -39,6 +39,7 @@ import org.junit.Test;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+@SuppressWarnings("null")
public class MockContextAwareConfigTest {
@Rule