diff --git a/src/main/java/org/apache/sling/caconfig/ConfigurationBuilder.java b/src/main/java/org/apache/sling/caconfig/ConfigurationBuilder.java
index 7ed3495..afb9481 100644
--- a/src/main/java/org/apache/sling/caconfig/ConfigurationBuilder.java
+++ b/src/main/java/org/apache/sling/caconfig/ConfigurationBuilder.java
@@ -87,7 +87,7 @@
     @NotNull <T> Collection<T> asAdaptableCollection(@NotNull Class<T> clazz);
 
     /**
-     * This method checks for the configuration existence based on {@code configName} defined in the configuration definition. It extracts the {@code configName} 
+     * This method checks for the configuration existence based on {@code configName} defined in the configuration definition. It extracts the {@code configName}
      * from the given annotation class and checks if the configuration is available for the context path in the current resource hierarchy. If not found, also
      * checks in the global fall-back paths configured via <code>org.apache.sling.caconfig.resource.impl.def.DefaultConfigurationResourceResolvingStrategy</code>
      * which by default are {@code /conf/global}, {@code /apps/config} and {@code /libs/config}.This method does not consider the default values provided in
diff --git a/src/main/java/org/apache/sling/caconfig/annotation/Configuration.java b/src/main/java/org/apache/sling/caconfig/annotation/Configuration.java
index c5aa8f8..da1496b 100644
--- a/src/main/java/org/apache/sling/caconfig/annotation/Configuration.java
+++ b/src/main/java/org/apache/sling/caconfig/annotation/Configuration.java
@@ -24,7 +24,7 @@
 import java.lang.annotation.Target;
 
 /**
- * Marks an annotation class to be useable with Sling context-aware configuration. 
+ * Marks an annotation class to be useable with Sling context-aware configuration.
  */
 @Target(ElementType.ANNOTATION_TYPE)
 @Retention(RetentionPolicy.RUNTIME)
@@ -34,22 +34,22 @@
      * @return Allows to overwrite the configuration name. If not set the class name of the annotation is used.
      */
     String name() default "";
-    
+
     /**
      * @return Label for the resource (e.g. for configuration editor GUIs).
      */
     String label() default "";
-    
+
     /**
      * @return Description for the resource (e.g. for configuration editor GUIs).
      */
     String description() default "";
-    
+
     /**
      * @return Further properties e.g. for configuration editor GUIs.
      */
     String[] property() default {};
-    
+
     /**
      * @return Indicates that this definition should be used for configuration collections.
      */
diff --git a/src/main/java/org/apache/sling/caconfig/annotation/Property.java b/src/main/java/org/apache/sling/caconfig/annotation/Property.java
index 579c751..ba77213 100644
--- a/src/main/java/org/apache/sling/caconfig/annotation/Property.java
+++ b/src/main/java/org/apache/sling/caconfig/annotation/Property.java
@@ -34,20 +34,20 @@
      * @return Label for the property (e.g. for configuration editor GUIs).
      */
     String label() default "";
-    
+
     /**
      * @return Description for the property (e.g. for configuration editor GUIs).
      */
     String description() default "";
-    
+
     /**
      * @return Further properties e.g. for configuration editor GUIs.
      */
     String[] property() default {};
-    
+
     /**
      * @return Number to control property order in configuration editor.
      */
     int order() default 0;
-    
+
 }
diff --git a/src/main/java/org/apache/sling/caconfig/resource/ConfigurationResourceResolver.java b/src/main/java/org/apache/sling/caconfig/resource/ConfigurationResourceResolver.java
index 65b7b14..bb8bcba 100644
--- a/src/main/java/org/apache/sling/caconfig/resource/ConfigurationResourceResolver.java
+++ b/src/main/java/org/apache/sling/caconfig/resource/ConfigurationResourceResolver.java
@@ -38,7 +38,7 @@
      * Get a context-aware singleton configuration resource defined by the given configuration name.
      *
      * @param resource Context resource to fetch configuration for
-     * @param bucketName Configuration "bucket" name. Each high-level configuration resolver should store 
+     * @param bucketName Configuration "bucket" name. Each high-level configuration resolver should store
      *     it's configuration data grouped in a child resource of the configuration resource. This is what
      *     we call a "bucket", and the resource name is specified with this parameter.
      * @param configName Configuration name or relative path.
@@ -49,7 +49,7 @@
     /**
      * Get a collection of context-aware configuration resources defined by the given configuration name.
      * @param resource Context resource to fetch configuration for
-     * @param bucketName Configuration "bucket" name. Each high-level configuration resolver should store 
+     * @param bucketName Configuration "bucket" name. Each high-level configuration resolver should store
      *     it's configuration data grouped in a child resource of the configuration resource. This is what
      *     we call a "bucket", and the resource name is specified with this parameter.
      * @param configName Configuration name or relative path.
