You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2014/12/17 00:50:46 UTC

incubator-tamaya git commit: TAMAYA-19: Fixed compile issues.

Repository: incubator-tamaya
Updated Branches:
  refs/heads/master 84bf6f827 -> 11a48e8c5


TAMAYA-19: Fixed compile issues.


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

Branch: refs/heads/master
Commit: 11a48e8c5d649fff329eabb02391c84705e3975a
Parents: 84bf6f8
Author: anatole <an...@apache.org>
Authored: Wed Dec 17 00:50:37 2014 +0100
Committer: anatole <an...@apache.org>
Committed: Wed Dec 17 00:50:37 2014 +0100

----------------------------------------------------------------------
 .../java/org/apache/tamaya/PropertyAdapter.java | 50 ++++++++++++++++++++
 .../org/apache/tamaya/PropertyAdapters.java     |  2 +-
 .../java/org/apache/tamaya/spi/Orderable.java   | 27 ++++++++++-
 .../org/apache/tamaya/spi/OrdinalProvider.java  | 18 +++++++
 .../core/internal/inject/ConfiguredField.java   |  3 +-
 .../core/internal/inject/ConfiguredMethod.java  |  3 +-
 6 files changed, 97 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/11a48e8c/api/src/main/java/org/apache/tamaya/PropertyAdapter.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/tamaya/PropertyAdapter.java b/api/src/main/java/org/apache/tamaya/PropertyAdapter.java
index e9d1ce3..5ee0eb7 100644
--- a/api/src/main/java/org/apache/tamaya/PropertyAdapter.java
+++ b/api/src/main/java/org/apache/tamaya/PropertyAdapter.java
@@ -19,6 +19,10 @@
 package org.apache.tamaya;
 
 
+import org.apache.tamaya.annotation.WithPropertyAdapter;
+import org.apache.tamaya.spi.PropertyAdaptersSingletonSpi;
+import org.apache.tamaya.spi.ServiceContext;
+
 /**
  * Interface for an adapter that converts a configured String into something else.
  * This is typically used for implementing type conversion fromMap String to a certain target
@@ -34,4 +38,50 @@ public interface PropertyAdapter<T>{
      */
     T adapt(String value);
 
+    /**
+     * Registers a new PropertyAdapter for the given target type, hereby replacing any existing adapter for
+     * this type.
+     * @param targetType The target class, not null.
+     * @param adapter The adapter, not null.
+     * @param <T> The target type
+     * @return any adapter replaced with the new adapter, or null.
+     */
+    public static <T> PropertyAdapter<T> register(Class<T> targetType, PropertyAdapter<T> adapter){
+        return PropertyAdapters.register(targetType, adapter);
+    }
+
+    /**
+     * Get an adapter converting to the given target type.
+     * @param targetType the target type class
+     * @return true, if the given target type is supported.
+     */
+    public static boolean isTargetTypeSupported(Class<?> targetType){
+        return PropertyAdapters.isTargetTypeSupported(targetType);
+    }
+
+    /**
+     * Get an adapter converting to the given target type.
+     * @param targetType the target type class
+     * @param <T> the target type
+     * @return the corresponding adapter, never null.
+     * @throws ConfigException if the target type is not supported.
+     */
+    public static  <T> PropertyAdapter<T> getAdapter(Class<T> targetType){
+        return PropertyAdapters.getAdapter(targetType);
+    }
+
+    /**
+     * Get an adapter converting to the given target type.
+     * @param targetType the target type class
+     * @param annotation the {@link org.apache.tamaya.annotation.WithPropertyAdapter} annotation, or null. If the annotation is not null and
+     *                   defines an overriding adapter, this instance is created and returned.
+     * @param <T> the target type
+     * @return the corresponding adapter, never null.
+     * @throws ConfigException if the target type is not supported, or the overriding adapter cannot be
+     * instantiated.
+     */
+    public static  <T> PropertyAdapter<T> getAdapter(Class<T> targetType, WithPropertyAdapter annotation){
+        return PropertyAdapters.getAdapter(targetType, annotation);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/11a48e8c/api/src/main/java/org/apache/tamaya/PropertyAdapters.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/tamaya/PropertyAdapters.java b/api/src/main/java/org/apache/tamaya/PropertyAdapters.java
index cde5934..90b29d7 100644
--- a/api/src/main/java/org/apache/tamaya/PropertyAdapters.java
+++ b/api/src/main/java/org/apache/tamaya/PropertyAdapters.java
@@ -26,7 +26,7 @@ import org.apache.tamaya.spi.PropertyAdaptersSingletonSpi;
  * Singleton manager that provides {@link PropertyAdapter} instance, usable for converting String
  * based configuration entries into any other target types.
  */
-public final class PropertyAdapters{
+final class PropertyAdapters{
 
     /**
      * Orivate singleton constructor.

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/11a48e8c/api/src/main/java/org/apache/tamaya/spi/Orderable.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/tamaya/spi/Orderable.java b/api/src/main/java/org/apache/tamaya/spi/Orderable.java
index 401d181..4a314f6 100644
--- a/api/src/main/java/org/apache/tamaya/spi/Orderable.java
+++ b/api/src/main/java/org/apache/tamaya/spi/Orderable.java
@@ -1,9 +1,34 @@
+/*
+ * 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.spi;
 
 /**
- * Created by Anatole on 14.12.2014.
+ * Interface that can be optionally implemented by SPI components to be loaded into
+ * the Tamaya's ServiceContext. The ordinal provided will be used to determine
+ * priority and precedence, when multiple components implement the same
+ * service interface.
  */
 @FunctionalInterface
 public interface Orderable {
+    /**
+     * Get the ordinal value for the component, by default 0.
+     * @return the ordinal value
+     */
     int order();
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/11a48e8c/api/src/main/java/org/apache/tamaya/spi/OrdinalProvider.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/tamaya/spi/OrdinalProvider.java b/api/src/main/java/org/apache/tamaya/spi/OrdinalProvider.java
index 7d0c205..aad8618 100644
--- a/api/src/main/java/org/apache/tamaya/spi/OrdinalProvider.java
+++ b/api/src/main/java/org/apache/tamaya/spi/OrdinalProvider.java
@@ -1,3 +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.
+ */
 package org.apache.tamaya.spi;
 
 import java.util.OptionalInt;

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/11a48e8c/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredField.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredField.java b/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredField.java
index 37c8d2c..ee5aeda 100644
--- a/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredField.java
+++ b/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredField.java
@@ -21,7 +21,6 @@ package org.apache.tamaya.core.internal.inject;
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.PropertyAdapter;
-import org.apache.tamaya.PropertyAdapters;
 import org.apache.tamaya.annotation.*;
 import org.apache.tamaya.core.internal.Utils;
 
@@ -140,7 +139,7 @@ public class ConfiguredField {
                 if (String.class.equals(baseType) || baseType.isAssignableFrom(configValue.getClass())) {
                     annotatedField.set(target, configValue);
                 } else {
-                    PropertyAdapter<?> adapter = PropertyAdapters.getAdapter(baseType);
+                    PropertyAdapter<?> adapter = PropertyAdapter.getAdapter(baseType);
                     annotatedField.set(target, adapter.adapt(configValue));
                 }
             }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/11a48e8c/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredMethod.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredMethod.java b/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredMethod.java
index de7eaf9..3bc4472 100644
--- a/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredMethod.java
+++ b/core/src/main/java/org/apache/tamaya/core/internal/inject/ConfiguredMethod.java
@@ -21,7 +21,6 @@ package org.apache.tamaya.core.internal.inject;
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.PropertyAdapter;
-import org.apache.tamaya.PropertyAdapters;
 import org.apache.tamaya.annotation.*;
 import org.apache.tamaya.core.internal.Utils;
 
@@ -182,7 +181,7 @@ public class ConfiguredMethod {
                 if (String.class.equals(baseType) || baseType.isAssignableFrom(configValue.getClass())) {
                     return configValue;
                 } else {
-                    PropertyAdapter<?> adapter = PropertyAdapters.getAdapter(baseType);
+                    PropertyAdapter<?> adapter = PropertyAdapter.getAdapter(baseType);
                     return adapter.adapt(configValue);
                 }
             }