]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/spring/SpringUtils.java
Introduce examples modules
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / spring / SpringUtils.java
index e31dbcc59670f1e3ab6e503c34ca67acf71b4bca..798b5648e28e1f35bfe6433866f17f0ba8384e3a 100644 (file)
@@ -2,13 +2,11 @@ package org.argeo.slc.spring;
 \r
 import java.io.IOException;\r
 import java.net.URI;\r
-import java.net.URL;\r
 import java.util.Map;\r
 \r
 import org.apache.commons.logging.Log;\r
 import org.apache.commons.logging.LogFactory;\r
 import org.argeo.slc.core.SlcException;\r
-import org.springframework.beans.BeanUtils;\r
 import org.springframework.beans.factory.BeanFactoryUtils;\r
 import org.springframework.beans.factory.ListableBeanFactory;\r
 import org.springframework.core.io.DefaultResourceLoader;\r
@@ -21,9 +19,16 @@ public class SpringUtils {
                        Class<T> clss) {\r
                // Map<String, T> beans = context.getBeansOfType(clss);\r
                Map<String, T> beans = BeanFactoryUtils.beansOfTypeIncludingAncestors(\r
-                               context, clss);\r
+                               context, clss, false, false);\r
                if (beans.size() == 1) {\r
                        return beans.values().iterator().next();\r
+               } else if (beans.size() > 1) {\r
+                       if (log.isDebugEnabled()) {\r
+                               log\r
+                                               .debug(("Found more that on bean for type " + clss\r
+                                                               + ": " + beans.keySet()));\r
+                       }\r
+                       return null;\r
                } else {\r
                        return null;\r
                }\r
@@ -50,9 +55,9 @@ public class SpringUtils {
        public static String extractRelativePath(Resource ancestor, Resource child) {\r
                try {\r
 \r
-                       return ancestor.getURI().relativize(child.getURI()).normalize()\r
-                                       .toString();\r
-               } catch (IOException e) {\r
+                       return ancestor.getURL().toURI().relativize(child.getURL().toURI())\r
+                                       .normalize().toString();\r
+               } catch (Exception e) {\r
                        throw new SlcException("Cannot extract relative path of " + child\r
                                        + " based on " + ancestor, e);\r
                }\r