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 2021/12/15 18:24:32 UTC

[sling-org-apache-sling-caconfig-impl] branch master updated (619a89e -> cf04416)

This is an automated email from the ASF dual-hosted git repository.

sseifert pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-caconfig-impl.git.


    from 619a89e  SLING-11010 update to Sling API 2.16.4 and Scripting API 2.2.0 update to latest testing dependencies
     new 5ceec38  cosmetic: eliminate some code warnings
     new cf04416  SLING-11010 do not shade org.apache.sling.commons.osgi - we can depend on it directly

The 2 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.


Summary of changes:
 pom.xml                                            | 39 ----------------------
 .../impl/ConfigurationBuilderAdapterFactory.java   |  2 +-
 .../caconfig/impl/ConfigurationBuilderImpl.java    | 20 ++++++-----
 .../impl/metadata/AnnotationClassParser.java       | 38 +++++++++++----------
 .../caconfig/management/impl/ValueInfoImpl.java    | 12 ++++---
 .../impl/console/CAConfigInventoryPrinter.java     | 25 +++++++-------
 .../ConfigurationBindingsValueProviderTest.java    |  2 ++
 .../caconfig/impl/metadata/BundleEventUtil.java    | 15 +++++----
 ...igurationManagerImplCustomPersistence2Test.java |  1 +
 ...tionPersistenceStrategyMultiplexerImplTest.java |  3 +-
 10 files changed, 64 insertions(+), 93 deletions(-)

[sling-org-apache-sling-caconfig-impl] 02/02: SLING-11010 do not shade org.apache.sling.commons.osgi - we can depend on it directly

Posted by ss...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sseifert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-caconfig-impl.git

commit cf04416c5b3472e6d66ff35e0c709d054729cfab
Author: Stefan Seifert <st...@users.noreply.github.com>
AuthorDate: Wed Dec 15 19:19:39 2021 +0100

    SLING-11010 do not shade org.apache.sling.commons.osgi - we can depend on it directly
---
 pom.xml | 39 ---------------------------------------
 1 file changed, 39 deletions(-)

diff --git a/pom.xml b/pom.xml
index 0baec40..57a229e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,8 +62,6 @@
                               org.apache.felix.webconsole;resolution:=optional,\
                               <!-- 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,\
                               *
                             </bnd>
                         </configuration>
@@ -75,42 +73,6 @@
                 <artifactId>bnd-baseline-maven-plugin</artifactId>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-                <version>3.0.0</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>shade</goal>
-                        </goals>
-                        <configuration>
-                            <createSourcesJar>true</createSourcesJar>
-                            <shadeSourcesContent>true</shadeSourcesContent>
-                            <artifactSet>
-                                <includes>
-                                    <include>org.apache.sling:org.apache.sling.commons.osgi</include>
-                                </includes>
-                            </artifactSet>
-                            <relocations>
-                                <relocation>
-                                    <pattern>org.apache.sling.commons.osgi</pattern>
-                                    <shadedPattern>caconfigimpl.org.apache.sling.commons.osgi</shadedPattern>
-                                </relocation>
-                            </relocations>
-                            <filters>
-                                <filter>
-                                    <artifact>org.apache.sling:org.apache.sling.commons.osgi</artifact>
-                                    <includes>
-                                        <include>org/apache/sling/commons/osgi/**</include>
-                                    </includes>
-                                </filter>
-                            </filters>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
                 <groupId>org.apache.rat</groupId>
                 <artifactId>apache-rat-plugin</artifactId>
                 <configuration>
@@ -128,7 +90,6 @@
             <artifactId>org.osgi.annotation.versioning</artifactId>
             <scope>provided</scope>
         </dependency>
-        <!-- Artifact is shaded and inlined -->
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.commons.osgi</artifactId>

[sling-org-apache-sling-caconfig-impl] 01/02: cosmetic: eliminate some code warnings

Posted by ss...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sseifert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-caconfig-impl.git

commit 5ceec38a008eae891b5389f53b88e2c98edd026b
Author: Stefan Seifert <st...@users.noreply.github.com>
AuthorDate: Wed Dec 15 19:17:06 2021 +0100

    cosmetic: eliminate some code warnings
---
 .../impl/ConfigurationBuilderAdapterFactory.java   |  2 +-
 .../caconfig/impl/ConfigurationBuilderImpl.java    | 20 +++++++-----
 .../impl/metadata/AnnotationClassParser.java       | 38 ++++++++++++----------
 .../caconfig/management/impl/ValueInfoImpl.java    | 12 ++++---
 .../impl/console/CAConfigInventoryPrinter.java     | 25 +++++++-------
 .../ConfigurationBindingsValueProviderTest.java    |  2 ++
 .../caconfig/impl/metadata/BundleEventUtil.java    | 15 +++++----
 ...igurationManagerImplCustomPersistence2Test.java |  1 +
 ...tionPersistenceStrategyMultiplexerImplTest.java |  3 +-
 9 files changed, 64 insertions(+), 54 deletions(-)

diff --git a/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderAdapterFactory.java b/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderAdapterFactory.java
index 464b574..099a331 100644
--- a/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderAdapterFactory.java
+++ b/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderAdapterFactory.java
@@ -38,7 +38,7 @@ public class ConfigurationBuilderAdapterFactory implements AdapterFactory {
     private ConfigurationResolver resolver;
 
     @Override
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "null" })
     public <AdapterType> AdapterType getAdapter(@NotNull final Object adaptable, @NotNull final Class<AdapterType> type) {
         if (adaptable instanceof Resource && type == ConfigurationBuilder.class) {
             return (AdapterType) resolver.get((Resource) adaptable);
diff --git a/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java b/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java
index 307de4e..c8e092e 100644
--- a/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java
+++ b/src/main/java/org/apache/sling/caconfig/impl/ConfigurationBuilderImpl.java
@@ -66,7 +66,7 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
     private final String configName;
 
     private static final Logger log = LoggerFactory.getLogger(ConfigurationBuilderImpl.class);
-    
+
     public ConfigurationBuilderImpl(final Resource resource,
             final ConfigurationResolver configurationResolver,
             final ConfigurationResourceResolvingStrategy configurationResourceResolvingStrategy,
@@ -158,7 +158,7 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
     private <T> Collection<T> getConfigResourceCollection(String configName, Class<T> clazz, Converter<T> converter) {
         if (this.contentResource != null) {
            validateConfigurationName(configName);
-           
+
            // get all possible colection parent config names
            Collection<String> collectionParentConfigNames = configurationPersistenceStrategy.getAllCollectionParentConfigNames(configName);
            List<Iterator<Resource>> resourceInheritanceChains = new ArrayList<>();
@@ -183,7 +183,7 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
             return Collections.emptyList();
         }
     }
-    
+
     @SuppressWarnings("unchecked")
     private <T> T convert(final Iterator<Resource> resourceInhertianceChain, final Class<T> clazz, final Converter<T> converter,
             final String name, final boolean isCollection) {
@@ -223,15 +223,15 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
             log.trace("+ Found config resource for context path " + contentResource.getPath() + ": " + configResource.getPath() + " "
                     + MapUtil.traceOutput(configResource.getValueMap()));
         }
-        
+
         // if no config resource found still check for overrides
         if (configResource == null && contentResource != null) {
             configResource = configurationOverrideMultiplexer.overrideProperties(contentResource.getPath(), name, (Resource)null, contentResource.getResourceResolver());
         }
-        
+
         return converter.convert(configResource, clazz, conversionName, isCollection);
     }
-    
+
     /**
      * Apply default values from configuration metadata (where no real data is present).
      * @param resource Resource
@@ -248,7 +248,7 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
         }
         return new ConfigurationResourceWrapper(resource, new ValueMapDecorator(updatedMap));
     }
-    
+
     /**
      * Apply default values from configuration metadata (where no real data is present).
      * @param props Properties
@@ -283,6 +283,7 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
     // --- Annotation class support ---
 
     @Override
+    @SuppressWarnings("null")
     public @NotNull <T> T as(@NotNull final Class<T> clazz) {
         final String name = getConfigurationNameForAnnotationClass(clazz);
         if (log.isDebugEnabled()) {
@@ -336,7 +337,7 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
             });
         }
     }
-    
+
     // --- ValueMap support ---
 
     @Override
@@ -368,7 +369,7 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
             }
         }
     }
-    
+
     // --- Adaptable support ---
 
     @Override
@@ -388,6 +389,7 @@ class ConfigurationBuilderImpl implements ConfigurationBuilder {
     }
 
     private class AdaptableConverter<T> implements Converter<T> {
+        @SuppressWarnings("null")
         @Override
         public T convert(Resource resource, Class<T> clazz, String configName, boolean isCollection) {
             if (resource == null || clazz == ConfigurationBuilder.class) {
diff --git a/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java b/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java
index 38cfb7f..8b2520c 100644
--- a/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java
+++ b/src/main/java/org/apache/sling/caconfig/impl/metadata/AnnotationClassParser.java
@@ -39,9 +39,9 @@ import org.apache.sling.caconfig.spi.metadata.PropertyMetadata;
  * Helper methods for parsing metadata from configuration annotation classes.
  */
 public final class AnnotationClassParser {
-    
+
     private static final Pattern METHOD_NAME_MAPPING = Pattern.compile("(\\$\\$)|(\\$)|(__)|(_)");
-    
+
     private AnnotationClassParser() {
         // static methods only
     }
@@ -55,12 +55,13 @@ public final class AnnotationClassParser {
     public static boolean isContextAwareConfig(Class<?> clazz) {
         return clazz.isAnnotation() && clazz.isAnnotationPresent(Configuration.class);
     }
-    
+
     /**
      * Get configuration name for given configuration annotation class.
      * @param clazz Annotation class
      * @return Configuration name
      */
+    @SuppressWarnings("unused")
     public static String getConfigurationName(Class<?> clazz) {
         Configuration configAnnotation = clazz.getAnnotation(Configuration.class);
         if (configAnnotation == null) {
@@ -111,18 +112,19 @@ public final class AnnotationClassParser {
         matcher.appendTail(mappedName);
         return mappedName.toString();
     }
-    
+
     /**
      * Build configuration metadata by parsing the given annotation interface class and it's configuration annotations.
      * @param clazz Configuration annotation class
      * @return Configuration metadata
      */
+    @SuppressWarnings("unused")
     public static ConfigurationMetadata buildConfigurationMetadata(Class<?> clazz) {
         Configuration configAnnotation = clazz.getAnnotation(Configuration.class);
         if (configAnnotation == null) {
             throw new IllegalArgumentException("Class has not @Configuration annotation: " + clazz.getName());
         }
-        
+
         // configuration metadata and property metadata
         String configName = getConfigurationName(clazz, configAnnotation);
         ConfigurationMetadata configMetadata = new ConfigurationMetadata(configName,
@@ -131,10 +133,10 @@ public final class AnnotationClassParser {
                 .label(emptyToNull(configAnnotation.label()))
                 .description(emptyToNull(configAnnotation.description()))
                 .properties(propsArrayToMap(configAnnotation.property()));
-        
+
         return configMetadata;
     }
-    
+
     /**
      * Build configuration metadata by parsing the given annotation interface class which is used for nested configurations.
      * @param clazz Configuration annotation class
@@ -145,7 +147,7 @@ public final class AnnotationClassParser {
                 buildConfigurationMetadata_PropertyMetadata(clazz),
                 collection);
     }
-    
+
     private static Collection<PropertyMetadata<?>> buildConfigurationMetadata_PropertyMetadata(Class<?> clazz) {
         // sort properties by order number, or alternatively by label, name
         SortedSet<PropertyMetadata<?>> propertyMetadataSet = new TreeSet<>(new Comparator<PropertyMetadata<?>>() {
@@ -167,11 +169,11 @@ public final class AnnotationClassParser {
         }
         return propertyMetadataSet;
     }
-    
-    @SuppressWarnings("unchecked")
+
+    @SuppressWarnings({ "unchecked", "unused" })
     private static <T> PropertyMetadata<T> buildPropertyMetadata(Method propertyMethod, Class<T> type) {
         String propertyName = getPropertyName(propertyMethod.getName());
-        
+
         PropertyMetadata<?> propertyMetadata;
         if (type.isArray() && type.getComponentType().isAnnotation()) {
             ConfigurationMetadata nestedConfigMetadata = buildConfigurationMetadata_Nested(type.getComponentType(), propertyName, true);
@@ -184,12 +186,12 @@ public final class AnnotationClassParser {
                     .configurationMetadata(nestedConfigMetadata);
         }
         else {
-            propertyMetadata = new PropertyMetadata<>(propertyName, type)            
+            propertyMetadata = new PropertyMetadata<>(propertyName, type)
                     .defaultValue((T)propertyMethod.getDefaultValue());
         }
-        
+
         Property propertyAnnotation = propertyMethod.getAnnotation(Property.class);
-        if (propertyAnnotation != null) {            
+        if (propertyAnnotation != null) {
             propertyMetadata.label(emptyToNull(propertyAnnotation.label()))
                 .description(emptyToNull(propertyAnnotation.description()))
                 .properties(propsArrayToMap(propertyAnnotation.property()))
@@ -199,10 +201,10 @@ public final class AnnotationClassParser {
             Map<String,String> emptyMap = Collections.emptyMap();
             propertyMetadata.properties(emptyMap);
         }
-        
+
         return (PropertyMetadata)propertyMetadata;
     }
-    
+
     private static String emptyToNull(String value) {
         if (StringUtils.isEmpty(value)) {
             return null;
@@ -211,7 +213,7 @@ public final class AnnotationClassParser {
             return value;
         }
     }
-    
+
     private static Map<String,String> propsArrayToMap(String[] properties) {
         Map<String,String> props = new HashMap<>();
         for (String property : properties) {
@@ -224,5 +226,5 @@ public final class AnnotationClassParser {
         }
         return props;
     }
-    
+
 }
diff --git a/src/main/java/org/apache/sling/caconfig/management/impl/ValueInfoImpl.java b/src/main/java/org/apache/sling/caconfig/management/impl/ValueInfoImpl.java
index 4860080..ba4d16a 100644
--- a/src/main/java/org/apache/sling/caconfig/management/impl/ValueInfoImpl.java
+++ b/src/main/java/org/apache/sling/caconfig/management/impl/ValueInfoImpl.java
@@ -31,7 +31,7 @@ import org.apache.sling.caconfig.spi.metadata.PropertyMetadata;
 import org.jetbrains.annotations.NotNull;
 
 final class ValueInfoImpl<T> implements ValueInfo<T> {
-    
+
     private final String name;
     private final T value;
     private final T effectiveValue;
@@ -44,7 +44,8 @@ final class ValueInfoImpl<T> implements ValueInfo<T> {
     private final String configName;
     private final ConfigurationOverrideMultiplexer configurationOverrideMultiplexer;
     private final boolean isAllOverridden;
-    
+
+    @SuppressWarnings("null")
     public ValueInfoImpl(String name, T value, T effectiveValue, PropertyMetadata<T> propertyMetadata,
             Resource resolvedConfigurationResource, Resource writebackConfigurationResource,
             List<Resource> configurationResourceInheritanceChain,
@@ -63,12 +64,12 @@ final class ValueInfoImpl<T> implements ValueInfo<T> {
         this.configurationOverrideMultiplexer = configurationOverrideMultiplexer;
         this.isAllOverridden = isAllOverridden;
     }
-    
+
     @Override
     public @NotNull String getName() {
         return name;
     }
- 
+
     @Override
     public PropertyMetadata<T> getPropertyMetadata() {
         return propertyMetadata;
@@ -132,7 +133,7 @@ final class ValueInfoImpl<T> implements ValueInfo<T> {
             }
         }
     }
-    
+
     private Resource getResourceFromInheritanceChain() {
         if (configurationResourceInheritanceChain == null) {
             return null;
@@ -140,6 +141,7 @@ final class ValueInfoImpl<T> implements ValueInfo<T> {
         return getResourceFromInheritanceChain(configurationResourceInheritanceChain.iterator());
     }
 
+    @SuppressWarnings("null")
     private Resource getResourceFromInheritanceChain(Iterator<Resource> inheritanceChain) {
         if (!inheritanceChain.hasNext()) {
             return null;
diff --git a/src/main/java/org/apache/sling/caconfig/management/impl/console/CAConfigInventoryPrinter.java b/src/main/java/org/apache/sling/caconfig/management/impl/console/CAConfigInventoryPrinter.java
index d477b2b..e2ec366 100644
--- a/src/main/java/org/apache/sling/caconfig/management/impl/console/CAConfigInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/caconfig/management/impl/console/CAConfigInventoryPrinter.java
@@ -58,14 +58,14 @@ public class CAConfigInventoryPrinter implements InventoryPrinter {
 
     public static final String NAME = "slingcaconfig";
     public static final String TITLE = "Sling Context-Aware Configuration";
-    
+
     private BundleContext bundleContext;
-    
+
     @Activate
     private void activate(BundleContext bundleContext) {
         this.bundleContext = bundleContext;
     }
-    
+
     @Override
     public void print(PrintWriter pw, Format format, boolean isZip) {
         if (format != Format.TEXT) {
@@ -83,20 +83,20 @@ public class CAConfigInventoryPrinter implements InventoryPrinter {
         printSPISection(pw, ConfigurationOverrideProvider.class, "Configuration Override Providers",
                 new ConfigurationOverridePrinter());
     }
-    
+
     @SafeVarargs
     private final <T> void printSPISection(PrintWriter pw, Class<T> clazz, String title, ServiceConfigurationPrinter<T>... serviceConfigPrinters) {
         Collection<ServiceReference<T>> serviceReferences = getServiceReferences(clazz);
 
         pw.println(title);
         pw.println(StringUtils.repeat('-', title.length()));
-        
+
         if (serviceReferences.isEmpty()) {
             pw.println("(none)");
         }
         else {
             for (ServiceReference<T> serviceReference : serviceReferences) {
-                pw.print(ServiceConfigurationPrinter.BULLET); 
+                pw.print(ServiceConfigurationPrinter.BULLET);
                 pw.print(getServiceClassName(serviceReference));
                 pw.print(" [");
                 pw.print(getServiceRanking(serviceReference));
@@ -112,7 +112,7 @@ public class CAConfigInventoryPrinter implements InventoryPrinter {
         }
         pw.println();
     }
-    
+
     private <T> Collection<ServiceReference<T>> getServiceReferences(Class<T> clazz) {
         try {
             SortedMap<Comparable<Object>,ServiceReference<T>> sortedServices = new TreeMap<>();
@@ -121,7 +121,7 @@ public class CAConfigInventoryPrinter implements InventoryPrinter {
                 Map<String,Object> props = new HashMap<>();
                 for (String property : serviceReference.getPropertyKeys()) {
                     props.put(property, serviceReference.getProperty(property));
-                } 
+                }
                 sortedServices.put(
                         ServiceUtil.getComparableForServiceRanking(props, Order.DESCENDING),
                         serviceReference
@@ -133,14 +133,15 @@ public class CAConfigInventoryPrinter implements InventoryPrinter {
             throw new RuntimeException(ex);
         }
     }
-    
+
+    @SuppressWarnings("null")
     private <T> String getServiceClassName(ServiceReference<T> serviceReference) {
         Object service = bundleContext.getService(serviceReference);
         String serviceClassName = service.getClass().getName();
         bundleContext.ungetService(serviceReference);
         return serviceClassName;
     }
-    
+
     private <T> int getServiceRanking(ServiceReference<T> serviceReference) {
         Object serviceRanking = serviceReference.getProperty(Constants.SERVICE_RANKING);
         if (serviceRanking == null) {
@@ -157,10 +158,10 @@ public class CAConfigInventoryPrinter implements InventoryPrinter {
     }
 
     private <T> boolean isEnabled(ServiceReference<T> serviceReference) {
-        Object enabledObject = (Object)serviceReference.getProperty("enabled");
+        Object enabledObject = serviceReference.getProperty("enabled");
         if (enabledObject != null) {
             if (enabledObject instanceof Boolean) {
-                return ((Boolean)enabledObject).booleanValue();            
+                return ((Boolean)enabledObject).booleanValue();
             }
             else {
                 return BooleanUtils.toBoolean(enabledObject.toString());
diff --git a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationBindingsValueProviderTest.java b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationBindingsValueProviderTest.java
index c4836f5..3f14b1b 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/ConfigurationBindingsValueProviderTest.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/ConfigurationBindingsValueProviderTest.java
@@ -80,6 +80,7 @@ public class ConfigurationBindingsValueProviderTest {
     private ConfigurationBindingsValueProvider underTest;
 
     @Before
+    @SuppressWarnings("null")
     public void setUp() {
         context.registerInjectActivateService(new ConfigurationMetadataProviderMultiplexerImpl());
         context.registerService(ConfigurationMetadataProvider.class, configMetadataProvider);
@@ -114,6 +115,7 @@ public class ConfigurationBindingsValueProviderTest {
     }
 
     @Test
+    @SuppressWarnings("null")
     public void testNoResource() {
         when(request.getResource()).thenReturn(null);
         underTest = context.registerInjectActivateService(new ConfigurationBindingsValueProvider(), "enabled", true);
diff --git a/src/test/java/org/apache/sling/caconfig/impl/metadata/BundleEventUtil.java b/src/test/java/org/apache/sling/caconfig/impl/metadata/BundleEventUtil.java
index 84edd30..6c15294 100644
--- a/src/test/java/org/apache/sling/caconfig/impl/metadata/BundleEventUtil.java
+++ b/src/test/java/org/apache/sling/caconfig/impl/metadata/BundleEventUtil.java
@@ -46,15 +46,15 @@ import org.osgi.framework.Version;
  * Helper methods for simulating events when deploying bundles with configuration annotation classes.
  */
 final class BundleEventUtil {
-    
-    private static final AtomicLong BUNDLE_COUNTER = new AtomicLong(); 
-    
+
+    private static final AtomicLong BUNDLE_COUNTER = new AtomicLong();
+
     private BundleEventUtil() {
         // static methods only
     }
 
     /**
-     * Simulate a bundle STARTED event with a given set of classes simulated to be found in the bundle's classpath. 
+     * Simulate a bundle STARTED event with a given set of classes simulated to be found in the bundle's classpath.
      */
     public static Bundle startDummyBundle(BundleContext bundleContext, Class... classes) {
         DummyBundle bundle = new DummyBundle(bundleContext, classes);
@@ -65,7 +65,7 @@ final class BundleEventUtil {
     }
 
     /**
-     * Simulate a bundle STARTED event with a given set of classes simulated to be found in the bundle's classpath. 
+     * Simulate a bundle STARTED event with a given set of classes simulated to be found in the bundle's classpath.
      */
     public static void stopDummyBundle(Bundle bundle) {
         ((DummyBundle)bundle).setState(Bundle.RESOLVED);
@@ -85,7 +85,7 @@ final class BundleEventUtil {
             this.bundleContext = bundleContext;
             this.classes = classes;
             this.bundleId = BUNDLE_COUNTER.incrementAndGet();
-            
+
             StringBuilder sb = new StringBuilder();
             for (Class clazz : classes) {
                 sb.append(clazz.getName()).append(",");
@@ -97,7 +97,7 @@ final class BundleEventUtil {
         public int getState() {
             return this.state;
         }
-        
+
         public void setState(int state) {
             this.state = state;
         }
@@ -247,6 +247,7 @@ final class BundleEventUtil {
         }
 
         @Override
+        @SuppressWarnings("null")
         public <A> A adapt(Class<A> type) {
             return null;
         }
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence2Test.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence2Test.java
index 739dba8..0f4f4ff 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence2Test.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationManagerImplCustomPersistence2Test.java
@@ -38,6 +38,7 @@ import org.osgi.service.cm.ConfigurationAdmin;
 public class ConfigurationManagerImplCustomPersistence2Test extends ConfigurationManagerImplTest {
 
     @Override
+    @SuppressWarnings("null")
     protected void provideCustomOsgiConfig() throws Exception {
         // provide custom lookup resource name for collection properties
         ConfigurationAdmin configAdmin = context.getService(ConfigurationAdmin.class);
diff --git a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java
index dddec63..2319db1 100644
--- a/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java
+++ b/src/test/java/org/apache/sling/caconfig/management/impl/ConfigurationPersistenceStrategyMultiplexerImplTest.java
@@ -30,7 +30,6 @@ import org.apache.sling.caconfig.impl.def.DefaultConfigurationPersistenceStrateg
 import org.apache.sling.caconfig.management.multiplexer.ConfigurationPersistenceStrategyMultiplexer;
 import org.apache.sling.caconfig.spi.ConfigurationCollectionPersistData;
 import org.apache.sling.caconfig.spi.ConfigurationPersistData;
-import org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy;
 import org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy2;
 import org.apache.sling.testing.mock.osgi.MapUtil;
 import org.apache.sling.testing.mock.osgi.MockOsgi;
@@ -97,7 +96,7 @@ public class ConfigurationPersistenceStrategyMultiplexerImplTest {
     public void testMultipleStrategies() {
 
         // strategy 1 (using old ConfigurationPersistenceStrategy with bridge to ConfigurationPersistenceStrategy2)
-        ConfigurationPersistenceStrategy oldStrategy = context.registerService(org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy.class,
+        org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy oldStrategy = context.registerService(org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy.class,
                 new org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy() {
             @Override
             public Resource getResource(@NotNull Resource resource) {