You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by rm...@apache.org on 2013/11/19 08:46:17 UTC
svn commit: r1543340 -
/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java
Author: rmannibucau
Date: Tue Nov 19 07:46:16 2013
New Revision: 1543340
URL: http://svn.apache.org/r1543340
Log:
extracting auto set method to be able to reuse it in plugin/endpoints etc
Modified:
incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java
Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java?rev=1543340&r1=1543339&r2=1543340&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/configuration/ioc/IoCs.java Tue Nov 19 07:46:16 2013
@@ -119,33 +119,37 @@ public final class IoCs {
}
if (loadedClass.getAnnotation(AutoSet.class) != null) {
- Class<?> current = loadedClass;
- while (current != null && !current.isInterface() && !Object.class.equals(current)) {
- for (final Field field : loadedClass.getDeclaredFields()) {
- if (Modifier.isFinal(field.getModifiers())) {
- continue;
- }
+ autoSet(instance, loadedClass);
+ }
+
+ return instance;
+ }
- final String value = Configuration.getProperty(loadedClass.getName() + "." + field.getName(), null);
- if (value != null) {
- final boolean acc = field.isAccessible();
+ public static <T> void autoSet(final T instance, final Class<?> loadedClass) throws IllegalAccessException {
+ Class<?> current = loadedClass;
+ while (current != null && !current.isInterface() && !Object.class.equals(current)) {
+ for (final Field field : loadedClass.getDeclaredFields()) {
+ if (Modifier.isFinal(field.getModifiers())) {
+ continue;
+ }
+
+ final String value = Configuration.getProperty(loadedClass.getName() + "." + field.getName(), null);
+ if (value != null) {
+ final boolean acc = field.isAccessible();
+ if (!acc) {
+ field.setAccessible(true);
+ }
+ try {
+ field.set(instance, convertTo(field.getType(), value));
+ } finally {
if (!acc) {
- field.setAccessible(true);
- }
- try {
- field.set(instance, convertTo(field.getType(), value));
- } finally {
- if (!acc) {
- field.setAccessible(false);
- }
+ field.setAccessible(false);
}
}
}
- current = current.getSuperclass();
}
+ current = current.getSuperclass();
}
-
- return instance;
}
public static void setSingletonInstance(final Class<?> clazz, final Object instance) {