You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2009/07/15 20:56:15 UTC

svn commit: r794364 - in /geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint: di/CollectionRecipe.java di/MapRecipe.java utils/ReflectionUtils.java utils/TypeUtils.java

Author: gawor
Date: Wed Jul 15 18:56:15 2009
New Revision: 794364

URL: http://svn.apache.org/viewvc?rev=794364&view=rev
Log:
eliminate TypeUtils

Removed:
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/utils/TypeUtils.java
Modified:
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/CollectionRecipe.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/MapRecipe.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/utils/ReflectionUtils.java

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/CollectionRecipe.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/CollectionRecipe.java?rev=794364&r1=794363&r2=794364&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/CollectionRecipe.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/CollectionRecipe.java Wed Jul 15 18:56:15 2009
@@ -26,7 +26,7 @@
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import org.apache.geronimo.blueprint.utils.TypeUtils;
+import org.apache.geronimo.blueprint.utils.ReflectionUtils;
 import org.osgi.service.blueprint.container.ComponentDefinitionException;
 
 /**
@@ -57,7 +57,7 @@
     protected Object internalCreate() throws ComponentDefinitionException {
         Class type = getCollection(typeClass);
 
-        if (!TypeUtils.hasDefaultConstructor(type)) {
+        if (!ReflectionUtils.hasDefaultConstructor(type)) {
             throw new ComponentDefinitionException("Type does not have a default constructor " + type.getName());
         }
 
@@ -94,7 +94,7 @@
     }
 
     public static Class getCollection(Class type) {
-        if (TypeUtils.hasDefaultConstructor(type)) {
+        if (ReflectionUtils.hasDefaultConstructor(type)) {
             return type;
         } else if (SortedSet.class.isAssignableFrom(type)) {
             return TreeSet.class;

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/MapRecipe.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/MapRecipe.java?rev=794364&r1=794363&r2=794364&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/MapRecipe.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/di/MapRecipe.java Wed Jul 15 18:56:15 2009
@@ -29,7 +29,7 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
-import org.apache.geronimo.blueprint.utils.TypeUtils;
+import org.apache.geronimo.blueprint.utils.ReflectionUtils;
 import org.osgi.service.blueprint.container.ComponentDefinitionException;
 
 /**
@@ -61,7 +61,7 @@
     protected Object internalCreate() throws ComponentDefinitionException {
         Class mapType = getMap(typeClass);
 
-        if (!TypeUtils.hasDefaultConstructor(mapType)) {
+        if (!ReflectionUtils.hasDefaultConstructor(mapType)) {
             throw new ComponentDefinitionException("Type does not have a default constructor " + mapType.getName());
         }
 
@@ -105,7 +105,7 @@
     }
 
     public static Class getMap(Class type) {
-        if (TypeUtils.hasDefaultConstructor(type)) {
+        if (ReflectionUtils.hasDefaultConstructor(type)) {
             return type;
         } else if (SortedMap.class.isAssignableFrom(type)) {
             return TreeMap.class;

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/utils/ReflectionUtils.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/utils/ReflectionUtils.java?rev=794364&r1=794363&r2=794364&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/utils/ReflectionUtils.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/utils/ReflectionUtils.java Wed Jul 15 18:56:15 2009
@@ -18,6 +18,7 @@
  */
 package org.apache.geronimo.blueprint.utils;
 
+import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
@@ -42,6 +43,23 @@
     // TODO: MLK: PropertyDescriptor holds a reference to Method which holds a reference to the Class itself
     private static Map<Class, PropertyDescriptor[]> beanInfos = Collections.synchronizedMap(new WeakHashMap<Class, PropertyDescriptor[]>());
 
+    public static boolean hasDefaultConstructor(Class type) {
+        if (!Modifier.isPublic(type.getModifiers())) {
+            return false;
+        }
+        if (Modifier.isAbstract(type.getModifiers())) {
+            return false;
+        }
+        Constructor[] constructors = type.getConstructors();
+        for (Constructor constructor : constructors) {
+            if (Modifier.isPublic(constructor.getModifiers()) &&
+                    constructor.getParameterTypes().length == 0) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
     public static Set<String> getImplementedInterfaces(Set<String> classes, Class clazz) {
         if (clazz != null && clazz != Object.class) {
             for (Class itf : clazz.getInterfaces()) {