IGNITE-15149 Javadoc fixes for configuration-api module. (#240)

diff --git a/check-rules/checkstyle-disabled-modules.xml b/check-rules/checkstyle-disabled-modules.xml
index 117bdad..4effe67 100644
--- a/check-rules/checkstyle-disabled-modules.xml
+++ b/check-rules/checkstyle-disabled-modules.xml
@@ -25,7 +25,6 @@
 <suppressions>
     <suppress files="[/\\]examples[/\\]" checks=".*" />
     <suppress files="[/\\]modules/cli[/\\]" checks=".*" />
-    <suppress files="[/\\]modules/configuration-api[/\\]" checks=".*" />
     <suppress files="[/\\]modules/raft-client[/\\]" checks=".*" />
     <suppress files="[/\\]modules/network[/\\]" checks=".*" />
     <suppress files="[/\\]modules/network-api[/\\]" checks=".*" />
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationChangeException.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationChangeException.java
index e9c2097..4449a15 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationChangeException.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationChangeException.java
@@ -22,6 +22,7 @@
 public class ConfigurationChangeException extends RuntimeException {
     /**
      * Constructor.
+     *
      * @param message Error message.
      */
     public ConfigurationChangeException(String message) {
@@ -30,6 +31,7 @@
 
     /**
      * Constructor.
+     *
      * @param message Error message.
      * @param cause Cause.
      */
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationProperty.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationProperty.java
index f1a6729..da0e5b7 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationProperty.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationProperty.java
@@ -21,24 +21,28 @@
 
 /**
  * Base interface for configuration.
+ *
  * @param <VIEW> Type of the value.
  * @param <CHANGE> Type of the object that changes the value of configuration.
  */
 public interface ConfigurationProperty<VIEW, CHANGE> {
     /**
      * Get key of this node.
+     *
      * @return Key.
      */
     String key();
 
     /**
      * Get value of this property.
+     *
      * @return Value of this property.
      */
     VIEW value();
 
     /**
      * Add configuration values listener.
+     *
      * @param listener Listener.
      */
     void listen(ConfigurationListener<VIEW> listener);
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationTree.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationTree.java
index 60c7394..0b7cbab 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationTree.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationTree.java
@@ -23,18 +23,21 @@
 
 /**
  * Configuration tree with configuration values and other configuration trees as child nodes.
+ *
  * @param <VIEW> Value type of the node.
  * @param <CHANGE> Type of the object that changes this node's value.
  */
 public interface ConfigurationTree<VIEW, CHANGE> extends ConfigurationProperty<VIEW, CHANGE> {
     /**
      * Children of the tree.
+     *
      * @return Map from {@code String} to a corresponding {@link ConfigurationProperty}.
      */
     Map<String, ConfigurationProperty<?, ?>> members();
 
     /**
      * Changes this configuration node value.
+     *
      * @param change CHANGE object.
      * @return Future that is completed when configuration change is finished either successfully or not.
      */
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationValue.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationValue.java
index 1e19d4f..bd70cb1 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationValue.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationValue.java
@@ -22,6 +22,7 @@
 
 /**
  * Configuration value.
+ *
  * @param <VIEW> Type of the value.
  */
 public interface ConfigurationValue<VIEW> extends ConfigurationProperty<VIEW, VIEW> {
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedConfigurationTree.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedConfigurationTree.java
index 7bf9021..70a48ad 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedConfigurationTree.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedConfigurationTree.java
@@ -31,6 +31,7 @@
 {
     /**
      * Get named configuration by name.
+     *
      * @param name Name.
      * @return Configuration.
      */
@@ -38,6 +39,7 @@
 
     /**
      * Add named-list-specific configuration values listener.
+     *
      * @param listener Listener.
      */
     void listen(ConfigurationNamedListListener<VIEW> listener);
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedListChange.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedListChange.java
index a6f8405..3371295 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedListChange.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedListChange.java
@@ -19,7 +19,11 @@
 
 import java.util.function.Consumer;
 
-/** */
+/**
+ * Closure parameter for {@link NamedConfigurationTree#change(Consumer)} method. Contains methods to modify named lists.
+ *
+ * @param <Change> Type for changing named list elements of this particular list.
+ */
 public interface NamedListChange<Change> extends NamedListView<Change> {
     /**
      * Creates a new value in the named list configuration.
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedListView.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedListView.java
index 1e1c0ea..60d8e9c 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedListView.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedListView.java
@@ -19,9 +19,15 @@
 
 import java.util.List;
 
-/** */
-public interface NamedListView<T> {
+/**
+ * View type for a {@link NamedConfigurationTree}. Represents an immutable snapshot of a named list configuration.
+ *
+ * @param <View> Type for immutable snapshots of named list elements.
+ */
+public interface NamedListView<View> {
     /**
+     * Returns an immutable collection of keys contained within this list.
+     *
      * @return Immutable collection of keys contained within this list.
      */
     List<String> namedListKeys();
@@ -32,9 +38,11 @@
      * @param key Key string.
      * @return Requested value or {@code null} if it's not found.
      */
-    T get(String key);
+    View get(String key);
 
     /**
+     * Returns the number of elements in this list.
+     *
      * @return Number of elements.
      */
     int size();
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/RootKey.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/RootKey.java
index b11afe9..93ec620 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/RootKey.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/RootKey.java
@@ -20,18 +20,31 @@
 import org.apache.ignite.configuration.annotation.ConfigurationRoot;
 import org.apache.ignite.configuration.annotation.ConfigurationType;
 
-/** */
+/**
+ * Configuration root selector.
+ *
+ * @param <T> Type of the configuration tree described by the root key.
+ * @param <VIEW> Type of the immutable snapshot view associated with the tree.
+ */
 public class RootKey<T extends ConfigurationTree<VIEW, ?>, VIEW> {
-    /** */
+    /**
+     * Name of the configuration root.
+     */
     private final String rootName;
 
-    /** */
+    /**
+     * Configuration type of the root.
+     */
     private final ConfigurationType storageType;
 
-    /** */
+    /**
+     * Schema class for the root.
+     */
     private final Class<?> schemaClass;
 
     /**
+     * Constructor.
+     *
      * @param schemaClass Class of the configuration schema.
      */
     public RootKey(Class<?> schemaClass) {
@@ -46,6 +59,8 @@
     }
 
     /**
+     * Returns the name of the configuration root.
+     *
      * @return Name of the configuration root.
      */
     public String key() {
@@ -53,6 +68,8 @@
     }
 
     /**
+     * Returns the configuration type of the root.
+     *
      * @return Configuration type of the root.
      */
     public ConfigurationType type() {
@@ -60,6 +77,8 @@
     }
 
     /**
+     * Returns the schema class for the root.
+     *
      * @return Schema class for the root.
      */
     public Class<?> schemaClass() {
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/ConfigurationRoot.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/ConfigurationRoot.java
index faf01af..cf55bb3 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/ConfigurationRoot.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/ConfigurationRoot.java
@@ -34,9 +34,17 @@
 @Retention(RUNTIME)
 @Documented
 public @interface ConfigurationRoot {
-    /** @return Unique root name. */
+    /**
+     * Returns the unique root name.
+     *
+     * @return Unique root name.
+     */
     String rootName();
 
-    /** @return Type of the configuration. */
+    /**
+     * Returns the type of the configuration.
+     *
+     * @return Type of the configuration.
+     */
     ConfigurationType type() default ConfigurationType.LOCAL;
 }
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/Value.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/Value.java
index c53190d..4c471fd 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/Value.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/Value.java
@@ -45,6 +45,7 @@
     /**
      * Indicates that the current configuration value has a default value. Value itself is derived from the instantiated object
      * of a corresponding schema type. This means that the default is not necessarily a constant value.
+     *
      * @return {@code hasDefault} flag value.
      */
     boolean hasDefault() default false;
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/package-info.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/package-info.java
new file mode 100644
index 0000000..08e62ae
--- /dev/null
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/annotation/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Annotations for configuration schemas.
+ */
+package org.apache.ignite.configuration.annotation;
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/notifications/ConfigurationNotificationEvent.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/notifications/ConfigurationNotificationEvent.java
index 4e432d6..77f4a8a 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/notifications/ConfigurationNotificationEvent.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/notifications/ConfigurationNotificationEvent.java
@@ -23,24 +23,31 @@
 /**
  * Event object propogated on configuration change. Passed to listeners after configuration changes are applied.
  *
+ * @param <VIEW> Type of the subtree or the value that has been changed.
  * @see ConfigurationProperty#listen(ConfigurationListener)
  * @see ConfigurationListener
  * @see ConfigurationNotificationEvent
  */
 public interface ConfigurationNotificationEvent<VIEW> {
     /**
+     * Returns the previous value of the updated configuration.
+     *
      * @return Previous value of the updated configuration.
      */
     @Nullable VIEW oldValue();
 
     /**
+     * Returns updated value of the configuration.
+     *
      * @return Updated value of the configuration.
      */
     @Nullable VIEW newValue();
 
     /**
-     * @return Monotonously increasing counter, linked to the specific storage for current configuration values. Gives
+     * Returns monotonously increasing counter, linked to the specific storage for current configuration values. Gives
      * a unique change identifier inside a specific configuration storage.
+     *
+     * @return Counter value.
      */
     long storageRevision();
 }
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/notifications/package-info.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/notifications/package-info.java
new file mode 100644
index 0000000..9b75153
--- /dev/null
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/notifications/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Interfaces and classes for configuration notifications.
+ */
+package org.apache.ignite.configuration.notifications;
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/package-info.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/package-info.java
new file mode 100644
index 0000000..368a465
--- /dev/null
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Basic classes and interfaces for describing and handling configuration trees.
+ */
+package org.apache.ignite.configuration;
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ConfigurationValidationException.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ConfigurationValidationException.java
index dd8185e..097944e 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ConfigurationValidationException.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ConfigurationValidationException.java
@@ -28,18 +28,29 @@
 
     /**
      * Constructor.
+     *
      * @param message Exception message.
      */
     public ConfigurationValidationException(String message) {
         super(message);
     }
 
+    /**
+     * Constructor.
+     *
+     * @param issues List of issues occurred during validation.
+     */
     public ConfigurationValidationException(List<ValidationIssue> issues) {
         super(issues.toString());
 
         this.issues = issues;
     }
 
+    /**
+     * Returns list of issues occurred during validation.
+     *
+     * @return List of issues occurred during validation.
+     */
     public List<ValidationIssue> getIssues() {
         return issues;
     }
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/Max.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/Max.java
index a58b0c3..8a4f19a 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/Max.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/Max.java
@@ -31,5 +31,10 @@
 @Retention(RUNTIME)
 @Documented
 public @interface Max {
+    /**
+     * Returns the upper bound for the value.
+     *
+     * @return upper bound for the value.
+     */
     long value();
 }
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/Min.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/Min.java
index 97e984d..54b1ac4 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/Min.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/Min.java
@@ -31,5 +31,10 @@
 @Retention(RUNTIME)
 @Documented
 public @interface Min {
+    /**
+     * Returns the lower bound for the value.
+     *
+     * @return lower bound for the value.
+     */
     long value();
 }
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationContext.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationContext.java
index 6f9d84f..39c9718 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationContext.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationContext.java
@@ -25,19 +25,34 @@
 /**
  * Validation context for the validators.
  *
+ * @param <VIEW> Type of the subtree or the value that is being validated.
  * @see Validator#validate(Annotation, ValidationContext)
  */
 public interface ValidationContext<VIEW> {
-    /** @return String representation of currently validated value, i.e. {@code root.config.node} */
+    /**
+     * Returns the key of validated node.
+     *
+     * @return String representation of currently validated value, i.e. {@code root.config.node}.
+     */
     String currentKey();
 
-    /** @return Previous value of the configuration. Might be null for leaves only. */
+    /**
+     * Returns previous value of the configuration.
+     *
+     * @return Previous value of the configuration. Might be null for leaves only.
+     */
     @Nullable VIEW getOldValue();
 
-    /** @return Updated value of the configuration. Cannot be null. */
+    /**
+     * Returns updated value of the configuration.
+     *
+     * @return Updated value of the configuration. Cannot be null.
+     */
     @NotNull VIEW getNewValue();
 
     /**
+     * Returns previous value of the configuration root.
+     *
      * @param rootKey Root key.
      * @return Configuration root view before updates. Guaranteed to return valid value only if root belongs to the same
      *      storage as currently validated value. Otherwise result of the method may very between invocations or even
@@ -48,6 +63,8 @@
     @Nullable <ROOT> ROOT getOldRoot(RootKey<?, ROOT> rootKey);
 
     /**
+     * Returns updated value of the configuration root.
+     *
      * @param rootKey Root key.
      * @return Configuration root view after updates. Guaranteed to return valid value only if root belongs to the same
      *      storage as currently validated value. Otherwise result of the method may very between invocations or even
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationIssue.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationIssue.java
index 37f2b70..65ea0e7 100644
--- a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationIssue.java
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/ValidationIssue.java
@@ -18,12 +18,16 @@
 
 import org.apache.ignite.internal.tostring.S;
 
-/** */
+/**
+ * Class that stores information about issues found during the configuration validation.
+ */
 public class ValidationIssue {
-    /** */
+    /** Message. */
     private final String message;
 
     /**
+     * Constructor.
+     *
      * @param message Error message.
      */
     public ValidationIssue(String message) {
@@ -31,6 +35,8 @@
     }
 
     /**
+     * Returns error message.
+     *
      * @return Error message.
      */
     public String message() {
diff --git a/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/package-info.java b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/package-info.java
new file mode 100644
index 0000000..d637298
--- /dev/null
+++ b/modules/configuration-api/src/main/java/org/apache/ignite/configuration/validation/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Interfaces and classes for configuration validation.
+ */
+package org.apache.ignite.configuration.validation;