Repository: incubator-tamaya-extensions
Updated Branches:
  refs/heads/master 15fe93587 -> 0c9dc212e


TAMAYA-194: Factored out ConfiguredItemSupplier, replacing it with Supplier 
from the functs modul for impl and commented out the methods in the API to 
avoid deps until Java 8 is available (which has a supplier in the util.function 
package). Fixed checkstyle issues.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/commit/0c9dc212
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/0c9dc212
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/0c9dc212

Branch: refs/heads/master
Commit: 0c9dc212eb3e7562d8d735f14211f8c615d6fed8
Parents: 15fe935
Author: anatole <[email protected]>
Authored: Sat Nov 12 01:32:46 2016 +0100
Committer: anatole <[email protected]>
Committed: Sat Nov 12 01:32:46 2016 +0100

----------------------------------------------------------------------
 .../inject/api/ConfiguredItemSupplier.java      | 41 ---------
 .../apache/tamaya/inject/api/DynamicValue.java  | 59 ++++++-------
 .../tamaya/inject/spi/BaseDynamicValue.java     | 85 ++++++++++---------
 .../tamaya/inject/ConfigurationInjector.java    |  6 +-
 .../internal/DefaultConfigurationInjector.java  | 10 +--
 .../internal/DefaultDynamicValueTest.java       | 88 ++++++++++----------
 .../LazyRefreshablePropertySource.java          |  8 +-
 .../tamaya/optional/OptionalConfiguration.java  | 12 ++-
 8 files changed, 141 insertions(+), 168 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/0c9dc212/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/api/ConfiguredItemSupplier.java
----------------------------------------------------------------------
diff --git 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/api/ConfiguredItemSupplier.java
 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/api/ConfiguredItemSupplier.java
deleted file mode 100644
index 5e57121..0000000
--- 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/api/ConfiguredItemSupplier.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tamaya.inject.api;
-
-/**
- * Represents a supplier of results.
- * 
- * There is no requirement that a new or distinct result be returned each
- * time the supplier is invoked.
- * 
- * This is a functional interface,
- * whose functional method is {@link #get()}.
- *
- * @param <T> the type of results supplied by this supplier
- */
-//@FunctionalInterface
-public interface ConfiguredItemSupplier<T> {
-
-    /**
-     * Gets a result.
-     *
-     * @return a result
-     */
-    T get();
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/0c9dc212/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/api/DynamicValue.java
----------------------------------------------------------------------
diff --git 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/api/DynamicValue.java
 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/api/DynamicValue.java
index 4cc29da..d56e29c 100644
--- 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/api/DynamicValue.java
+++ 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/api/DynamicValue.java
@@ -128,34 +128,35 @@ public interface DynamicValue<T> {
      */
     T orElse(T other);
 
-    /**
-     * Return the value if present, otherwise invoke {@code other} and return
-     * the result of that invocation.
-     *
-     * @param other a {@code ConfiguredItemSupplier} whose result is returned 
if no value
-     * is present
-     * @return the value if present otherwise the result of {@code other.get()}
-     * @throws NullPointerException if value is not present and {@code other} 
is
-     * null
-     */
-    T orElseGet(ConfiguredItemSupplier<? extends T> other);
-
-    /**
-     * Return the contained value, if present, otherwise throw an exception
-     * to be created by the provided supplier.
-     *
-     * NOTE A method reference to the exception constructor with an empty
-     * argument list can be used as the supplier. For example,
-     * {@code IllegalStateException::new}
-     *
-     * @param <X> Type of the exception to be thrown
-     * @param exceptionSupplier The supplier which will return the exception to
-     * be thrown
-     * @return the present value
-     * @throws X if there is no value present
-     * @throws NullPointerException if no value is present and
-     * {@code exceptionSupplier} is null
-     */
-    <X extends Throwable> T orElseThrow(ConfiguredItemSupplier<? extends X> 
exceptionSupplier) throws X;
+    // TODO enable with Java 8
+//    /**
+//     * Return the value if present, otherwise invoke {@code other} and return
+//     * the result of that invocation.
+//     *
+//     * @param other a {@code ConfiguredItemSupplier} whose result is 
returned if no value
+//     * is present
+//     * @return the value if present otherwise the result of {@code 
other.get()}
+//     * @throws NullPointerException if value is not present and {@code 
other} is
+//     * null
+//     */
+//    T orElseGet(ConfiguredItemSupplier<? extends T> other);
+//
+//    /**
+//     * Return the contained value, if present, otherwise throw an exception
+//     * to be created by the provided supplier.
+//     *
+//     * NOTE A method reference to the exception constructor with an empty
+//     * argument list can be used as the supplier. For example,
+//     * {@code IllegalStateException::new}
+//     *
+//     * @param <X> Type of the exception to be thrown
+//     * @param exceptionSupplier The supplier which will return the exception 
to
+//     * be thrown
+//     * @return the present value
+//     * @throws X if there is no value present
+//     * @throws NullPointerException if no value is present and
+//     * {@code exceptionSupplier} is null
+//     */
+//    <X extends Throwable> T orElseThrow(ConfiguredItemSupplier<? extends X> 
exceptionSupplier) throws X;
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/0c9dc212/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/BaseDynamicValue.java
----------------------------------------------------------------------
diff --git 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/BaseDynamicValue.java
 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/BaseDynamicValue.java
index 38703b2..f9e2079 100644
--- 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/BaseDynamicValue.java
+++ 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/BaseDynamicValue.java
@@ -18,8 +18,6 @@
  */
 package org.apache.tamaya.inject.spi;
 
-
-import org.apache.tamaya.inject.api.ConfiguredItemSupplier;
 import org.apache.tamaya.inject.api.DynamicValue;
 
 import java.io.Serializable;
@@ -82,46 +80,47 @@ public abstract class BaseDynamicValue<T> implements 
DynamicValue<T>, Serializab
         return value;
     }
 
-    /**
-     * Return the value if present, otherwise invoke {@code other} and return
-     * the result of that invocation.
-     *
-     * @param other a {@code ConfiguredItemSupplier} whose result is returned 
if no value
-     *              is present
-     * @return the value if present otherwise the result of {@code other.get()}
-     * @throws NullPointerException if value is not present and {@code other} 
is
-     *                              null
-     */
-    public T orElseGet(ConfiguredItemSupplier<? extends T> other) {
-        T value = get();
-        if (value == null) {
-            return other.get();
-        }
-        return value;
-    }
-
-    /**
-     * Return the contained value, if present, otherwise throw an exception
-     * to be created by the provided supplier.
-     * <p>
-     * NOTE A method reference to the exception constructor with an empty
-     * argument list can be used as the supplier. For example,
-     * {@code IllegalStateException::new}
-     *
-     * @param <X>               Type of the exception to be thrown
-     * @param exceptionSupplier The supplier which will return the exception to
-     *                          be thrown
-     * @return the present value
-     * @throws X                    if there is no value present
-     * @throws NullPointerException if no value is present and
-     *                              {@code exceptionSupplier} is null
-     */
-    public <X extends Throwable> T orElseThrow(ConfiguredItemSupplier<? 
extends X> exceptionSupplier) throws X {
-        T value = get();
-        if (value == null) {
-            throw exceptionSupplier.get();
-        }
-        return value;
-    }
+    // TODO: Enable with Java 8 support.
+//    /**
+//     * Return the value if present, otherwise invoke {@code other} and return
+//     * the result of that invocation.
+//     *
+//     * @param other a {@code ConfiguredItemSupplier} whose result is 
returned if no value
+//     *              is present
+//     * @return the value if present otherwise the result of {@code 
other.get()}
+//     * @throws NullPointerException if value is not present and {@code 
other} is
+//     *                              null
+//     */
+//    public T orElseGet(Supplier<? extends T> other) {
+//        T value = get();
+//        if (value == null) {
+//            return other.get();
+//        }
+//        return value;
+//    }
+//
+//    /**
+//     * Return the contained value, if present, otherwise throw an exception
+//     * to be created by the provided supplier.
+//     * <p>
+//     * NOTE A method reference to the exception constructor with an empty
+//     * argument list can be used as the supplier. For example,
+//     * {@code IllegalStateException::new}
+//     *
+//     * @param <X>               Type of the exception to be thrown
+//     * @param exceptionSupplier The supplier which will return the exception 
to
+//     *                          be thrown
+//     * @return the present value
+//     * @throws X                    if there is no value present
+//     * @throws NullPointerException if no value is present and
+//     *                              {@code exceptionSupplier} is null
+//     */
+//    public <X extends Throwable> T orElseThrow(Supplier<? extends X> 
exceptionSupplier) throws X {
+//        T value = get();
+//        if (value == null) {
+//            throw exceptionSupplier.get();
+//        }
+//        return value;
+//    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/0c9dc212/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/ConfigurationInjector.java
----------------------------------------------------------------------
diff --git 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/ConfigurationInjector.java
 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/ConfigurationInjector.java
index 563ae47..075a62d 100644
--- 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/ConfigurationInjector.java
+++ 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/ConfigurationInjector.java
@@ -20,7 +20,7 @@ package org.apache.tamaya.inject;
 
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.inject.api.ConfiguredItemSupplier;
+import org.apache.tamaya.functions.Supplier;
 
 /**
  * Accessor interface for injection of configuration and configuration 
templates.
@@ -79,7 +79,7 @@ public interface ConfigurationInjector {
      * @param <T> the target type.
      * @return a supplier creating configured instances of {@code T}.
      */
-    <T> ConfiguredItemSupplier<T> 
getConfiguredSupplier(ConfiguredItemSupplier<T> supplier);
+    <T> Supplier<T> getConfiguredSupplier(Supplier<T> supplier);
 
     /**
      * Creates a supplier for configured instances of the given type {@code T}.
@@ -89,6 +89,6 @@ public interface ConfigurationInjector {
      * @param <T> the target type.
      * @return a supplier creating configured instances of {@code T}.
      */
-    <T> ConfiguredItemSupplier<T> 
getConfiguredSupplier(ConfiguredItemSupplier<T> supplier, Configuration config);
+    <T> Supplier<T> getConfiguredSupplier(Supplier<T> supplier, Configuration 
config);
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/0c9dc212/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
----------------------------------------------------------------------
diff --git 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
index a3a7015..ff9448b 100644
--- 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
+++ 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.inject.internal;
 
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationProvider;
+import org.apache.tamaya.functions.Supplier;
 import org.apache.tamaya.inject.ConfigurationInjector;
 
 import javax.annotation.Priority;
@@ -31,7 +32,6 @@ import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.logging.Logger;
 
-import org.apache.tamaya.inject.api.ConfiguredItemSupplier;
 import org.apache.tamaya.inject.api.NoConfig;
 import org.apache.tamaya.inject.api.Config;
 import org.apache.tamaya.inject.api.ConfigDefaultSections;
@@ -159,18 +159,18 @@ public final class DefaultConfigurationInjector 
implements ConfigurationInjector
         if(cl==null){
             cl = this.getClass().getClassLoader();
         }
-        return templateType.cast(Proxy.newProxyInstance(cl, new 
Class[]{ConfiguredItemSupplier.class, Objects.requireNonNull(templateType)},
+        return templateType.cast(Proxy.newProxyInstance(cl, new 
Class[]{Supplier.class, Objects.requireNonNull(templateType)},
                 new ConfigTemplateInvocationHandler(templateType)));
     }
 
     @Override
-    public <T> ConfiguredItemSupplier<T> getConfiguredSupplier(final 
ConfiguredItemSupplier<T> supplier) {
+    public <T> Supplier<T> getConfiguredSupplier(final Supplier<T> supplier) {
         return getConfiguredSupplier(supplier, 
ConfigurationProvider.getConfiguration());
     }
 
     @Override
-    public <T> ConfiguredItemSupplier<T> getConfiguredSupplier(final 
ConfiguredItemSupplier<T> supplier, final Configuration config) {
-        return new ConfiguredItemSupplier<T>() {
+    public <T> Supplier<T> getConfiguredSupplier(final Supplier<T> supplier, 
final Configuration config) {
+        return new Supplier<T>() {
             public T get() {
                 return configure(supplier.get(), config);
             }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/0c9dc212/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/internal/DefaultDynamicValueTest.java
----------------------------------------------------------------------
diff --git 
a/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/internal/DefaultDynamicValueTest.java
 
b/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/internal/DefaultDynamicValueTest.java
index f82d04b..b3117fc 100644
--- 
a/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/internal/DefaultDynamicValueTest.java
+++ 
b/modules/injection/standalone/src/test/java/org/apache/tamaya/inject/internal/DefaultDynamicValueTest.java
@@ -20,7 +20,6 @@ package org.apache.tamaya.inject.internal;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.ConfigurationProvider;
-import org.apache.tamaya.inject.api.ConfiguredItemSupplier;
 import org.apache.tamaya.inject.api.DynamicValue;
 import org.apache.tamaya.inject.api.Config;
 import org.apache.tamaya.inject.api.UpdatePolicy;
@@ -261,49 +260,50 @@ public class DefaultDynamicValueTest {
         assertEquals("aValue", val.orElse("bla"));
     }
 
-    @Test
-    public void testOrElseGet() throws Exception {
-        DynamicValue val = 
DefaultDynamicValue.of(getClass().getDeclaredField("myValue"),
-                config);
-        val.setUpdatePolicy(UpdatePolicy.IMMEDEATE);
-        assertEquals("bla", val.orElseGet(new ConfiguredItemSupplier() {
-            @Override
-            public Object get() {
-                return "bla";
-            }
-        }));
-        properties.put("a", "aValue");
-        val.updateValue();
-        assertEquals("aValue", val.orElseGet(new ConfiguredItemSupplier() {
-            @Override
-            public Object get() {
-                return "bla";
-            }
-        }));
-    }
-
-    @Test(expected = ConfigException.class)
-    public void testOrElseThrow() throws Throwable {
-        DynamicValue val = 
DefaultDynamicValue.of(getClass().getDeclaredField("myValue"),
-                config);
-        val.setUpdatePolicy(UpdatePolicy.EXPLCIT);
-        val.get();
-        properties.put("a", "aValue");
-        assertEquals("aValue", val.orElseThrow(new ConfiguredItemSupplier() {
-            @Override
-            public ConfigException get() {
-                return new ConfigException("bla");
-            }
-        }));
-        properties.remove("a");
-        val.updateValue();
-        assertEquals("aValue", val.orElseThrow(new ConfiguredItemSupplier() {
-            @Override
-            public ConfigException get() {
-                return new ConfigException("bla");
-            }
-        }));
-    }
+// TODO reenable with Java 8 support.
+//    @Test
+//    public void testOrElseGet() throws Exception {
+//        DynamicValue val = 
DefaultDynamicValue.of(getClass().getDeclaredField("myValue"),
+//                config);
+//        val.setUpdatePolicy(UpdatePolicy.IMMEDEATE);
+//        assertEquals("bla", val.orElseGet(new ConfiguredItemSupplier() {
+//            @Override
+//            public Object get() {
+//                return "bla";
+//            }
+//        }));
+//        properties.put("a", "aValue");
+//        val.updateValue();
+//        assertEquals("aValue", val.orElseGet(new ConfiguredItemSupplier() {
+//            @Override
+//            public Object get() {
+//                return "bla";
+//            }
+//        }));
+//    }
+//
+//    @Test(expected = ConfigException.class)
+//    public void testOrElseThrow() throws Throwable {
+//        DynamicValue val = 
DefaultDynamicValue.of(getClass().getDeclaredField("myValue"),
+//                config);
+//        val.setUpdatePolicy(UpdatePolicy.EXPLCIT);
+//        val.get();
+//        properties.put("a", "aValue");
+//        assertEquals("aValue", val.orElseThrow(new ConfiguredItemSupplier() {
+//            @Override
+//            public ConfigException get() {
+//                return new ConfigException("bla");
+//            }
+//        }));
+//        properties.remove("a");
+//        val.updateValue();
+//        assertEquals("aValue", val.orElseThrow(new ConfiguredItemSupplier() {
+//            @Override
+//            public ConfigException get() {
+//                return new ConfigException("bla");
+//            }
+//        }));
+//    }
 
     private static final class DoublicatingConverter implements 
PropertyConverter<String>{
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/0c9dc212/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/propertysources/LazyRefreshablePropertySource.java
----------------------------------------------------------------------
diff --git 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/propertysources/LazyRefreshablePropertySource.java
 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/propertysources/LazyRefreshablePropertySource.java
index 7de7d53..d5fce6f 100644
--- 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/propertysources/LazyRefreshablePropertySource.java
+++ 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/propertysources/LazyRefreshablePropertySource.java
@@ -189,8 +189,12 @@ implements RefreshablePropertySource {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof LazyRefreshablePropertySource)) return false;
+        if (this == o){
+            return true;
+        }
+        if (!(o instanceof LazyRefreshablePropertySource)){
+            return false;
+        }
 
         LazyRefreshablePropertySource that = (LazyRefreshablePropertySource) o;
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/0c9dc212/modules/optional/src/main/java/org/apache/tamaya/optional/OptionalConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/optional/src/main/java/org/apache/tamaya/optional/OptionalConfiguration.java
 
b/modules/optional/src/main/java/org/apache/tamaya/optional/OptionalConfiguration.java
index 4868bc1..476d5b5 100644
--- 
a/modules/optional/src/main/java/org/apache/tamaya/optional/OptionalConfiguration.java
+++ 
b/modules/optional/src/main/java/org/apache/tamaya/optional/OptionalConfiguration.java
@@ -54,6 +54,14 @@ public final class OptionalConfiguration {
     }
 
     /**
+     * Allows to check if Tamaya is on the classpath.
+     * @return true, if Tamaya is available.
+     */
+    public static boolean isTamayaLoaded(){
+        return TAMAYA_LOADED;
+    }
+
+    /**
      * Default value provider returning Strings from system properties and the 
system environment.
      * In all other cases {@code null} is returned.
      */
@@ -204,11 +212,13 @@ public final class OptionalConfiguration {
      * @param type the target type, not null.
      * @param <T>  The type param
      * @return the corresponding value from Tamaya, or null.
+     * @throws IllegalStateException if Tamaya is not loaded.
+     * @see #isTamayaLoaded()
      */
     private <T> T getTamaya(String key, Class<T> type) {
         if (TAMAYA_LOADED) {
             return ConfigurationProvider.getConfiguration().get(key, type);
         }
-        return null;
+        throw new IllegalStateException("Tamaya is not loaded.");
     }
 }

Reply via email to