You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by rm...@apache.org on 2016/11/09 11:52:34 UTC
[5/5] deltaspike git commit: adding prefix to @Configuration
adding prefix to @Configuration
Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/8e6fa365
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/8e6fa365
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/8e6fa365
Branch: refs/heads/master
Commit: 8e6fa365a3e8f52f1262320408457fa95d40cf00
Parents: b81d498
Author: rmannibucau <rm...@apache.org>
Authored: Mon Nov 7 12:51:31 2016 +0100
Committer: rmannibucau <rm...@apache.org>
Committed: Mon Nov 7 12:51:31 2016 +0100
----------------------------------------------------------------------
.../core/api/config/Configuration.java | 5 +++
.../config/ProxyConfigurationLifecycle.java | 9 ++++--
.../InjectableConfigPropertyTest.java | 7 +++++
.../config/injectable/PrefixedConfigBean.java | 32 ++++++++++++++++++++
.../META-INF/apache-deltaspike.properties | 2 ++
5 files changed, 52 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/8e6fa365/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/Configuration.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/Configuration.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/Configuration.java
index 5c3e33d..d2fa689 100644
--- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/Configuration.java
+++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/Configuration.java
@@ -47,4 +47,9 @@ public @interface Configuration
* @return the duration unit for {@see cacheFor()}.
*/
TimeUnit cacheUnit() default SECONDS;
+
+ /**
+ * @return the key prefix to apply to all methods.
+ */
+ String prefix() default "";
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/8e6fa365/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ProxyConfigurationLifecycle.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ProxyConfigurationLifecycle.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ProxyConfigurationLifecycle.java
index 645e227..13c687e 100644
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ProxyConfigurationLifecycle.java
+++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ProxyConfigurationLifecycle.java
@@ -56,7 +56,8 @@ class ProxyConfigurationLifecycle implements ContextualLifecycle
final long cacheFor = configuration.cacheFor();
return Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(), api,
- new ConfigurationHandler(cacheFor <= 0 ? -1 : configuration.cacheUnit().toMillis(cacheFor)));
+ new ConfigurationHandler(
+ cacheFor <= 0 ? -1 : configuration.cacheUnit().toMillis(cacheFor), configuration.prefix()));
}
@Override
@@ -74,10 +75,12 @@ class ProxyConfigurationLifecycle implements ContextualLifecycle
private final ConcurrentMap<Method, ConfigResolver.TypedResolver<?>> resolvers =
new ConcurrentHashMap<Method, ConfigResolver.TypedResolver<?>>();
private final long cacheMs;
+ private final String prefix;
- private ConfigurationHandler(final long cacheMs)
+ private ConfigurationHandler(final long cacheMs, final String prefix)
{
this.cacheMs = cacheMs;
+ this.prefix = prefix;
}
@Override
@@ -137,7 +140,7 @@ class ProxyConfigurationLifecycle implements ContextualLifecycle
}
typedResolver = delegate.asResolver(
- annotation.name(), annotation.defaultValue(), returnType,
+ prefix + annotation.name(), annotation.defaultValue(), returnType,
annotation.converter(), annotation.parameterizedBy(),
annotation.projectStageAware(), annotation.evaluateVariables());
if (cacheMs > 0)
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/8e6fa365/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/injectable/InjectableConfigPropertyTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/injectable/InjectableConfigPropertyTest.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/injectable/InjectableConfigPropertyTest.java
index bb1e573..5009949 100644
--- a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/injectable/InjectableConfigPropertyTest.java
+++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/injectable/InjectableConfigPropertyTest.java
@@ -149,4 +149,11 @@ public class InjectableConfigPropertyTest
assertEquals(singletonList(new URL("http://127.0.0.2")), settingsBean.urlListFromProperties());
assertEquals("value", settingsBean.customSourceValue());
}
+
+ @Test
+ public void proxyPrefix() throws MalformedURLException
+ {
+ PrefixedConfigBean settingsBean = BeanProvider.getContextualReference(PrefixedConfigBean.class);
+ assertEquals("done", settingsBean.value());
+ }
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/8e6fa365/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/injectable/PrefixedConfigBean.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/injectable/PrefixedConfigBean.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/injectable/PrefixedConfigBean.java
new file mode 100644
index 0000000..46dbd49
--- /dev/null
+++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/injectable/PrefixedConfigBean.java
@@ -0,0 +1,32 @@
+/*
+ * 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.deltaspike.test.core.api.config.injectable;
+
+import org.apache.deltaspike.core.api.config.ConfigProperty;
+import org.apache.deltaspike.core.api.config.Configuration;
+
+import java.net.URL;
+import java.util.List;
+
+@Configuration(prefix = "prefix.")
+public interface PrefixedConfigBean
+{
+ @ConfigProperty(name = "suffix")
+ String value();
+}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/8e6fa365/deltaspike/core/impl/src/test/resources/META-INF/apache-deltaspike.properties
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/test/resources/META-INF/apache-deltaspike.properties b/deltaspike/core/impl/src/test/resources/META-INF/apache-deltaspike.properties
index 61a86bf..c4a11c1 100644
--- a/deltaspike/core/impl/src/test/resources/META-INF/apache-deltaspike.properties
+++ b/deltaspike/core/impl/src/test/resources/META-INF/apache-deltaspike.properties
@@ -50,3 +50,5 @@ my.very.secret=onlyIDoKnowIt
deactivate.org.apache.deltaspike.test.core.impl.activation.DeactivatedClass=true
urlListFromProperties = http://127.0.0.2
+
+prefix.suffix = done