[2/2] incubator-tamaya git commit: TAMAYA-74 Added support for type narowwing on property conversion.
TAMAYA-74 Added support for type narowwing on property conversion. Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/4d560984 Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/4d560984 Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/4d560984 Branch: refs/heads/master Commit: 4d560984822e4ccc0b8bae0b00a98e278518a39e Parents: eef4efe Author: Anatole Tresch atsti...@java.net Authored: Sun Jun 14 00:17:03 2015 +0200 Committer: Anatole Tresch atsti...@java.net Committed: Sun Jun 14 00:17:03 2015 +0200 -- .../core/internal/DefaultServiceContext.java| 21 ++- .../core/internal/PropertyConverterManager.java | 186 ++- .../java/org/apache/tamaya/core/internal/A.java | 29 +++ .../java/org/apache/tamaya/core/internal/B.java | 29 +++ .../java/org/apache/tamaya/core/internal/C.java | 56 ++ .../tamaya/core/internal/CTestConverter.java| 31 .../internal/PropertyConverterManagerTest.java | 85 + .../org.apache.tamaya.spi.PropertyConverter | 19 ++ .../core/internal/DefaultServiceContext.java| 20 +- .../core/internal/PropertyConverterManager.java | 131 ++--- .../java/org/apache/tamaya/core/internal/A.java | 29 +++ .../java/org/apache/tamaya/core/internal/B.java | 29 +++ .../java/org/apache/tamaya/core/internal/C.java | 56 ++ .../tamaya/core/internal/CTestConverter.java| 31 .../internal/PropertyConverterManagerTest.java | 85 + .../org.apache.tamaya.spi.PropertyConverter | 19 ++ 16 files changed, 778 insertions(+), 78 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4d560984/java7/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java -- diff --git a/java7/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java b/java7/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java index 2e59fa2..15bbcef 100644 --- a/java7/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java +++ b/java7/core/src/main/java/org/apache/tamaya/core/internal/DefaultServiceContext.java @@ -90,6 +90,20 @@ public final class DefaultServiceContext implements ServiceContext { return previousServices != null ? previousServices : services; } +/** + * Checks the given instance for a @Priority annotation. If present the annotation's value s evaluated. If no such + * annotation is present, a default priority is returned (1); + * @param o the instance, not null. + * @return a priority, by default 1. + */ +public static int getPriority(Object o){ +int prio = 1; //X TODO discuss default priority +Priority priority = o.getClass().getAnnotation(Priority.class); +if (priority != null) { +prio = priority.value(); +} +return prio; +} /** * @param services to scan @@ -111,12 +125,7 @@ public final class DefaultServiceContext implements ServiceContext { T highestService = null; for (T service : services) { -int prio = 1; //X TODO discuss default priority -Priority priority = service.getClass().getAnnotation(Priority.class); -if (priority != null) { -prio = priority.value(); -} - +int prio = getPriority(service); if (highestPriority == null || highestPriority prio) { highestService = service; highestPriorityServiceCount = 1; http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4d560984/java7/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java -- diff --git a/java7/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java b/java7/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java index 31a05b2..7fe6b11 100644 --- a/java7/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java +++ b/java7/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java @@ -24,6 +24,7 @@ import java.lang.reflect.Modifier; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -45,12 +46,38 @@ import org.apache.tamaya.spi.ServiceContextManager; * This class is thread-safe. */ public class PropertyConverterManager { -/** The logger used. */ +/** + * The logger used. + */ private static final Logger LOG =
[1/2] incubator-tamaya git commit: Moved extension into internal package, since extension is not meant for user access.
Repository: incubator-tamaya Updated Branches: refs/heads/master fc155997c - 4d5609848 Moved extension into internal package, since extension is not meant for user access. Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/eef4efe6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/eef4efe6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/eef4efe6 Branch: refs/heads/master Commit: eef4efe63668372a3583eab5dcc103a1e20b71a2 Parents: fc15599 Author: Anatole Tresch atsti...@java.net Authored: Sun Jun 14 00:00:36 2015 +0200 Committer: Anatole Tresch atsti...@java.net Committed: Sun Jun 14 00:00:36 2015 +0200 -- .../integration/cdi/ConfigurationExtension.java | 79 .../cdi/internal/ConfigurationExtension.java| 79 .../javax.enterprise.inject.spi.Extension | 2 +- 3 files changed, 80 insertions(+), 80 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/eef4efe6/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java -- diff --git a/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java b/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java deleted file mode 100644 index 2e1473a..000 --- a/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/ConfigurationExtension.java +++ /dev/null @@ -1,79 +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.integration.cdi; - -import org.apache.tamaya.core.internal.inject.ConfigurationInjector; -import org.apache.tamaya.core.internal.inject.ConfiguredType; - -import javax.enterprise.context.spi.CreationalContext; -import javax.enterprise.event.Observes; -import javax.enterprise.inject.Vetoed; -import javax.enterprise.inject.spi.*; -import java.util.*; - -/** - * CDI portable extension that integrates {@link org.apache.tamaya.core.internal.inject.ConfigurationInjector} - * with CDI by adding configuration features to CDI (config enable CDI beans). - */ -@Vetoed -public final class ConfigurationExtension implements Extension { - -public T void initializeConfiguredFields(final @Observes ProcessInjectionTargetT pit) { -final AnnotatedTypeT at = pit.getAnnotatedType(); -if (!ConfiguredType.isConfigured(at.getJavaClass())) { -return; -} -final InjectionTargetT it = pit.getInjectionTarget(); -InjectionTargetT wrapped = new InjectionTargetT() { -@Override -public void inject(T instance, CreationalContextT ctx) { -it.inject(instance, ctx); -ConfigurationInjector.configure(instance); -} - -@Override -public void postConstruct(T instance) { -it.postConstruct(instance); -} - -@Override -public void preDestroy(T instance) { -it.dispose(instance); -} - -@Override -public void dispose(T instance) { -it.dispose(instance); -} - -@Override -public SetInjectionPoint getInjectionPoints() { -return it.getInjectionPoints(); -} - -@Override -public T produce(CreationalContextT ctx) { -return it.produce(ctx); -} -}; -pit.setInjectionTarget(wrapped); -} - - -} http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/eef4efe6/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/internal/ConfigurationExtension.java -- diff --git a/sandbox/integration/cdi/src/main/java/org/apache/tamaya/integration/cdi/internal/ConfigurationExtension.java