Author: mfranklin
Date: Fri Oct 26 12:21:19 2012
New Revision: 1402481

URL: http://svn.apache.org/viewvc?rev=1402481&view=rev
Log:
bug fixes for using JPA

Modified:
    
rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java
    
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/dataContext.xml

Modified: 
rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java?rev=1402481&r1=1402480&r2=1402481&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java
 Fri Oct 26 12:21:19 2012
@@ -28,6 +28,7 @@ import org.codehaus.jackson.map.introspe
 import org.codehaus.jackson.mrbean.MrBeanModule;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.Resource;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.PostConstruct;
 import java.io.IOException;
@@ -35,32 +36,7 @@ import java.util.List;
 
 public class DataImporter {
 
-    //TODO GROUP REPOSITORY
-
-    @Autowired
-    private PageLayoutRepository pageLayoutRepository;
-
-    @Autowired
-    private UserRepository userRepository;
-
-    @Autowired
-    private WidgetRepository widgetRepository;
-
-    @Autowired
-    private PageRepository pageRepository;
-
-    @Autowired
-    private AuthorityRepository authorityRepository;
-
-    @Autowired
-    private PortalPreferenceRepository portalPreferenceRepository;
-
-    @Autowired
-    private CategoryRepository categoryRepository;
-
-    @Autowired
-    private PageTemplateRepository pageTemplateRepository;
-
+    private DataImporter.Executor dataExecutor;
     private List<Resource> scriptLocations;
 
     public List<Resource> getScriptLocations() {
@@ -73,55 +49,16 @@ public class DataImporter {
 
     @PostConstruct
     public void importData() {
-        if (scriptLocations != null && widgetRepository.getCountAll() == 0) {
+        if (scriptLocations != null && dataExecutor.needsLoading()) {
             for (Resource resource : scriptLocations) {
                 ModelWrapper wrapper = mapObject(resource);
-                if (wrapper.getPageLayouts() != null) {
-                    for (PageLayout layout : wrapper.getPageLayouts()) {
-                        pageLayoutRepository.save(layout);
-                    }
-                }
-                if (wrapper.getUsers() != null) {
-                    for (User user : wrapper.getUsers()) {
-                        userRepository.save(user);
-                    }
-                }
-                if (wrapper.getPageLayouts() != null) {
-                    for (PageLayout layout : wrapper.getPageLayouts()) {
-                        pageLayoutRepository.save(layout);
-                    }
-                }
-                if (wrapper.getWidgets() != null) {
-                    for (Widget widget : wrapper.getWidgets()) {
-                        widgetRepository.save(widget);
-                    }
-                }
-                if (wrapper.getPages() != null) {
-                    for (Page page : wrapper.getPages()) {
-                        pageRepository.save(page);
-                    }
-                }
-                if (wrapper.getAuthorities() != null) {
-                    for (Authority authority : wrapper.getAuthorities()) {
-                        authorityRepository.save(authority);
-                    }
-                }
-                if (wrapper.getPortalPreferences() != null) {
-                    for (PortalPreference preference : 
wrapper.getPortalPreferences()) {
-                        portalPreferenceRepository.save(preference);
-                    }
-                }
-                if (wrapper.getCategories() != null) {
-                    for (Category category : wrapper.getCategories()) {
-                        categoryRepository.save(category);
-                    }
-                }
-                for(PageTemplate template : wrapper.getPageTemplates()) {
-                    pageTemplateRepository.save(template);
-                }
+                dataExecutor.loadData(wrapper);
             }
         }
+    }
 
+    public void setDataExecutor(Executor dataExecutor) {
+        this.dataExecutor = dataExecutor;
     }
 
     private ModelWrapper mapObject(Resource resource) {
@@ -141,5 +78,88 @@ public class DataImporter {
         return jacksonMapper;
     }
 
+    public static interface Executor {
+        boolean needsLoading();
+        void loadData(ModelWrapper models);
+    }
+
+    @Transactional
+    public static class ExecutorImpl implements Executor {
+
+        //TODO GROUP REPOSITORY
+        @Autowired
+        private PageLayoutRepository pageLayoutRepository;
+
+        @Autowired
+        private UserRepository userRepository;
+
+        @Autowired
+        private WidgetRepository widgetRepository;
+
+        @Autowired
+        private PageRepository pageRepository;
+
+        @Autowired
+        private AuthorityRepository authorityRepository;
+
+        @Autowired
+        private PortalPreferenceRepository portalPreferenceRepository;
+
+        @Autowired
+        private CategoryRepository categoryRepository;
+
+        @Autowired
+        private PageTemplateRepository pageTemplateRepository;
 
+        public boolean needsLoading() {
+            return widgetRepository.getCountAll() == 0;
+        }
+
+        @Transactional
+        public void loadData(ModelWrapper wrapper) {
+            if (wrapper.getPageLayouts() != null) {
+                for (PageLayout layout : wrapper.getPageLayouts()) {
+                    pageLayoutRepository.save(layout);
+                }
+            }
+            if (wrapper.getUsers() != null) {
+                for (User user : wrapper.getUsers()) {
+                    userRepository.save(user);
+                }
+            }
+            if (wrapper.getPageLayouts() != null) {
+                for (PageLayout layout : wrapper.getPageLayouts()) {
+                    pageLayoutRepository.save(layout);
+                }
+            }
+            if (wrapper.getWidgets() != null) {
+                for (Widget widget : wrapper.getWidgets()) {
+                    widgetRepository.save(widget);
+                }
+            }
+            if (wrapper.getPages() != null) {
+                for (Page page : wrapper.getPages()) {
+                    pageRepository.save(page);
+                }
+            }
+            if (wrapper.getAuthorities() != null) {
+                for (Authority authority : wrapper.getAuthorities()) {
+                    authorityRepository.save(authority);
+                }
+            }
+            if (wrapper.getPortalPreferences() != null) {
+                for (PortalPreference preference : 
wrapper.getPortalPreferences()) {
+                    portalPreferenceRepository.save(preference);
+                }
+            }
+            if (wrapper.getCategories() != null) {
+                for (Category category : wrapper.getCategories()) {
+                    categoryRepository.save(category);
+                }
+            }
+            for(PageTemplate template : wrapper.getPageTemplates()) {
+                pageTemplateRepository.save(template);
+            }
+        }
+    }
 }

Modified: 
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/dataContext.xml
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/dataContext.xml?rev=1402481&r1=1402480&r2=1402481&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/dataContext.xml
 (original)
+++ 
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/dataContext.xml
 Fri Oct 26 12:21:19 2012
@@ -27,19 +27,22 @@
         To remove runtime initialization of initial data, remove this bean and 
change the entity manager factory to the default
         Spring implementation
     -->
-    <!--<bean id="dataSourcePopulator" 
class="org.apache.rave.jdbc.util.DataSourcePopulator">
+    <bean id="dataSourcePopulator" 
class="org.apache.rave.jdbc.util.DataSourcePopulator">
         <property name="executeScriptQuery" value="SELECT * FROM WIDGET"/>
         <property name="scriptLocations">
             <list>
                 <value>/WEB-INF/db/initial_data.sql</value>
             </list>
         </property>
-    </bean>-->
+    </bean>
 
     <bean id="dataImporter" 
class="org.apache.rave.portal.util.data.DataImporter">
+        <property name="dataExecutor">
+            <bean 
class="org.apache.rave.portal.util.data.DataImporter$ExecutorImpl" />
+        </property>
         <property name="scriptLocations">
             <list>
-                <value>classpath:initial-data.json</value>
+                <!--<value>classpath:initial-data.json</value>-->
             </list>
         </property>
     </bean>


Reply via email to