Improve logging
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.core / src / main / java / org / argeo / server / dao / AbstractMemoryDaoSupport.java
index 39655d4fe04812fc9a2027cab7c4fd1723b27294..d18514a278fe155842877af874d32c131d4f0d2b 100644 (file)
@@ -12,7 +12,7 @@ import java.util.TreeMap;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.server.ArgeoServerException;
+import org.argeo.ArgeoException;
 import org.springframework.beans.BeanWrapper;
 import org.springframework.beans.BeanWrapperImpl;
 import org.springframework.beans.BeansException;
@@ -37,7 +37,7 @@ public abstract class AbstractMemoryDaoSupport implements LightDaoSupport,
 
        private List<String> scannedPackages = new ArrayList<String>();
 
-       private List<Resource> workbooks = new ArrayList<Resource>();
+       private List<Resource> resources = new ArrayList<Resource>();
 
        private Map<Class<?>, PropertyEditor> customEditors = new HashMap<Class<?>, PropertyEditor>();;
 
@@ -50,19 +50,21 @@ public abstract class AbstractMemoryDaoSupport implements LightDaoSupport,
        }
 
        public void init() {
-               // used to resolve inner references
-               // Map<String, List<Object>> tempRefs = new HashMap<String,
-               // List<Object>>();
+               for (PropertyEditor propertyEditor : customEditors.values())
+                       if (propertyEditor instanceof LightDaoAware) {
+                               ((LightDaoAware) propertyEditor).setLightDaoSupport(this);
+                       }
 
+               // Load data
                List<Reference> references = new ArrayList<Reference>();
 
-               for (Resource res : workbooks) {
+               for (Resource res : resources) {
                        InputStream in = null;
                        try {
                                in = res.getInputStream();
                                load(in, references);
                        } catch (Exception e) {
-                               throw new ArgeoServerException("Cannot load stream", e);
+                               throw new ArgeoException("Cannot load stream", e);
                        } finally {
                                IOUtils.closeQuietly(in);
                        }
@@ -112,6 +114,8 @@ public abstract class AbstractMemoryDaoSupport implements LightDaoSupport,
 
        @SuppressWarnings("unchecked")
        public <T> T getByKey(Class<T> clss, Object key) {
+               if (key == null)
+                       throw new ArgeoException("Key is null for " + clss);
                return (T) model.get(findClass(clss)).get(key);
        }
 
@@ -196,12 +200,12 @@ public abstract class AbstractMemoryDaoSupport implements LightDaoSupport,
                return scannedPackages;
        }
 
-       public void setWorkbooks(List<Resource> workbooks) {
-               this.workbooks = workbooks;
+       public void setResources(List<Resource> workbooks) {
+               this.resources = workbooks;
        }
 
-       public List<Resource> getWorkbooks() {
-               return workbooks;
+       public List<Resource> getResources() {
+               return resources;
        }
 
        public void setClassLoader(ClassLoader classLoader) {