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>