Update data importer (RAVE-1063) git-svn-id: https://svn.apache.org/repos/asf/rave/trunk@1530023 13f79535-47bb-0310-9956-ffa450edef68
Project: http://git-wip-us.apache.org/repos/asf/rave/repo Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/c8110354 Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/c8110354 Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/c8110354 Branch: refs/heads/angular Commit: c8110354f1a57b06c1ede722dc1cf33c74c1f60e Parents: 6bd9fc2 Author: Matthew B. Franklin <[email protected]> Authored: Mon Oct 7 18:38:01 2013 +0000 Committer: Matthew B. Franklin <[email protected]> Committed: Mon Oct 7 18:38:01 2013 +0000 ---------------------------------------------------------------------- .../rave/portal/util/data/DataImporter.java | 329 +------------------ .../util/data/ModelWrapperDataExecutor.java | 321 ++++++++++++++++++ .../rave/portal/util/DataImporterTest.java | 9 +- .../src/main/resources_jpa/dataContext.xml | 3 +- .../src/main/resources_mongo/dataContext.xml | 3 +- .../src/test/resources_jpa/test-dataContext.xml | 3 +- .../test/resources_mongo/test-dataContext.xml | 3 +- 7 files changed, 346 insertions(+), 325 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/rave/blob/c8110354/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java b/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java index 609d69a..6da0497 100644 --- a/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java +++ b/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java @@ -19,28 +19,18 @@ package org.apache.rave.portal.util.data; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import org.apache.rave.model.*; -import org.apache.rave.portal.repository.*; -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.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Arrays; import java.util.List; -import java.util.Map; import static org.apache.rave.util.JsonUtils.parse; -public class DataImporter { +public class DataImporter<T> { - private DataImporter.Executor dataExecutor; - private List<Resource> scriptLocations; + protected DataImporter.Executor<T> dataExecutor; + protected List<Resource> scriptLocations; + protected Class<T> modelClass; public List<Resource> getScriptLocations() { return scriptLocations; @@ -54,319 +44,22 @@ public class DataImporter { public void importData() { if (scriptLocations != null && dataExecutor.needsLoading()) { for (Resource resource : scriptLocations) { - ModelWrapper wrapper = parse(resource, ModelWrapper.class); + T wrapper = parse(resource, modelClass); dataExecutor.loadData(wrapper); } } } - public void setDataExecutor(Executor dataExecutor) { + public void setDataExecutor(Executor<T> dataExecutor) { this.dataExecutor = dataExecutor; } - public static interface Executor { - boolean needsLoading(); - void loadData(ModelWrapper models); + public void setModelClass(Class<T> modelClass) { + this.modelClass = modelClass; } - @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; - - @Autowired - private ActivityStreamsRepository activityStreamsRepository; - - public boolean needsLoading() { - return widgetRepository.getCountAll() == 0; - } - - @Transactional - public void loadData(ModelWrapper wrapper) { - savePageLayouts(wrapper); - saveAuthorities(wrapper); - Map<String, User> usersByOriginalId = saveUsers(wrapper); - Map<String, Category> categoryByOldId = saveCategories(wrapper, usersByOriginalId); - Map<String,Widget> widgetsById = saveWidgets(wrapper, usersByOriginalId, categoryByOldId); - savePages(wrapper, usersByOriginalId, widgetsById); - savePreferences(wrapper); - saveTemplates(wrapper, widgetsById); - saveActivities(wrapper); - } - - private void saveActivities(ModelWrapper wrapper) { - if(wrapper.getActivities() != null) { - for(ActivityStreamsEntry activity : wrapper.getActivities()) { - activityStreamsRepository.save(activity); - } - } - } - - private void saveTemplates(ModelWrapper wrapper, Map<String, Widget> widgetsById) { - for(PageTemplate template : wrapper.getPageTemplates()) { - updateTemplate(widgetsById, template); - for(PageTemplate sub : template.getSubPageTemplates()) { - sub.setParentPageTemplate(template); - updateTemplate(widgetsById, sub); - } - pageTemplateRepository.save(template); - } - } - - private void updateTemplate(Map<String, Widget> widgetsById, PageTemplate template) { - setIdViaReflection(template, null); - for(PageTemplateRegion region : template.getPageTemplateRegions()) { - setIdViaReflection(region, null); - region.setPageTemplate(template); - for(PageTemplateWidget widget : region.getPageTemplateWidgets()) { - Widget fromDb = widgetsById.get(widget.getWidgetId()); - if(fromDb != null) { - widget.setWidgetId(fromDb.getId()); - } - setIdViaReflection(widget, null); - widget.setPageTemplateRegion(region); - } - - } - } - - private Map<String, Category> saveCategories(ModelWrapper wrapper, Map<String, User> usersByOriginalId) { - Map<String, Category> categoryByOldId = Maps.newHashMap(); - if (wrapper.getCategories() != null) { - for (Category category : wrapper.getCategories()) { - String id = category.getId() == null ? category.getText() : category.getId(); - category.setId(null); - User lastModified = usersByOriginalId.get(category.getLastModifiedUserId()); - if(lastModified != null) { - category.setLastModifiedUserId(lastModified.getId()); - } - User created = usersByOriginalId.get(category.getCreatedUserId()); - if(created != null) { - category.setCreatedUserId(created.getId()); - } - categoryByOldId.put(id, categoryRepository.save(category)); - } - } - return categoryByOldId; - } - - private void savePreferences(ModelWrapper wrapper) { - if (wrapper.getPortalPreferences() != null) { - for (PortalPreference preference : wrapper.getPortalPreferences()) { - portalPreferenceRepository.save(preference); - } - } - } - - private Map<String, User> saveUsers(ModelWrapper wrapper) { - Map<String, User> usersByOriginalId = Maps.newHashMap(); - if (wrapper.getUsers() != null) { - for (User user : wrapper.getUsers()) { - String id = user.getId(); - user.setId(null); - usersByOriginalId.put(id, userRepository.save(user)); - } - } - return usersByOriginalId; - } - - private void savePages(ModelWrapper wrapper, Map<String, User> usersByOriginalId, Map<String, Widget> widgetsById) { - if (wrapper.getPages() != null) { - for (Page page : wrapper.getPages()) { - updatePage(usersByOriginalId, widgetsById, page); - for(Page sub: page.getSubPages()) { - sub.setParentPage(page); - updatePage(usersByOriginalId, widgetsById, sub); - } - pageRepository.save(page); - } - } - } - - private void updatePage(Map<String, User> usersByOriginalId, Map<String, Widget> widgetsById, Page page) { - for(Region region : page.getRegions()) { - region.setPage(page); - setIdViaReflection(region, null); - for(RegionWidget widget: region.getRegionWidgets()) { - widget.setRegion(region); - Widget fromDb = widgetsById.get(widget.getId()); - if(fromDb != null) { - widget.setWidgetId(fromDb.getId()); - } - setIdViaReflection(widget, null); - } - } - for(PageUser user: page.getMembers()) { - user.setPage(page); - setIdViaReflection(user, null); - User fromDb = usersByOriginalId.get(user.getUserId()); - if(fromDb != null) { - user.setUserId(fromDb.getId()); - } - } - User user = usersByOriginalId.get(page.getOwnerId()); - page.setOwnerId(user.getId()); - } - - private Map<String, Widget> saveWidgets(ModelWrapper wrapper, Map<String, User> usersById, Map<String, Category> categoryMap) { - Map<String, Widget> widgetsByOldId = Maps.newHashMap(); - if (wrapper.getWidgets() != null) { - for (Widget widget : wrapper.getWidgets()) { - String id = widget.getId() == null ? widget.getUrl() : widget.getId(); - setIdViaReflection(widget, null); - User user = usersById.get(widget.getOwnerId()); - if(user != null) { - widget.setOwnerId(user.getId()); - } - List<Category> categories = Lists.newArrayList(); - if(widget.getCategories() != null) { - for(Category c : widget.getCategories()) { - categories.add(categoryMap.get(c.getId())); - } - widget.setCategories(categories); - } - widgetsByOldId.put(id, widgetRepository.save(widget)); - } - } - return widgetsByOldId; - } - - private void setIdViaReflection(Object target, Object id) { - Class clazz = target.getClass(); - Method setter = getMethod(clazz, "setId"); - if(setter != null) { - callMethod(target, setter, id); - } else { - setField(target, id, clazz); - } - } - - private void setField(Object target, Object id, Class clazz) { - List<String> potentialFields = Arrays.asList("id", "_id", "id_"); - for(String name : potentialFields) { - if(findAndSetField(clazz, target, id, name)) return; - } - throw new IllegalStateException("Could not match field"); - } - - private boolean findAndSetField(Class clazz, Object target, Object value, String name) { - Field idField = getField(clazz, name); - if(idField != null) { - setField(target, idField, value); - return true; - } else { - return false; - } - } - - private Field getField(Class clazz, String match) { - Field field = null; - try { - field = clazz.getDeclaredField(match); - }catch (NoSuchFieldException e) { } - return field; - } - - private Method getMethod(Class clazz, String match) { - Method method = null; - try { - method = clazz.getMethod(match, Void.class); - } catch (NoSuchMethodException e) {} - return method; - } - - private void callMethod(Object o, Method m, Object... param) { - try { - m.invoke(o, param); - } catch (IllegalAccessException e) { - throw new IllegalStateException("Unable to call method",e) ; - } catch (InvocationTargetException e) { - throw new IllegalStateException("Unable to call method",e) ; - } - } - - private void setField(Object o, Field f, Object val) { - try { - f.set(o, val); - } catch (IllegalAccessException e) { - throw new IllegalStateException("Unable to set field",e) ; - } - } - - private void saveAuthorities(ModelWrapper wrapper) { - if (wrapper.getAuthorities() != null) { - for (Authority authority : wrapper.getAuthorities()) { - authorityRepository.save(authority); - } - } - } - - private void savePageLayouts(ModelWrapper wrapper) { - if (wrapper.getPageLayouts() != null) { - for (PageLayout layout : wrapper.getPageLayouts()) { - pageLayoutRepository.save(layout); - } - } - } - - - public void setPageLayoutRepository(PageLayoutRepository pageLayoutRepository) { - this.pageLayoutRepository = pageLayoutRepository; - } - - public void setUserRepository(UserRepository userRepository) { - this.userRepository = userRepository; - } - - public void setWidgetRepository(WidgetRepository widgetRepository) { - this.widgetRepository = widgetRepository; - } - - public void setPageRepository(PageRepository pageRepository) { - this.pageRepository = pageRepository; - } - - public void setAuthorityRepository(AuthorityRepository authorityRepository) { - this.authorityRepository = authorityRepository; - } - - public void setPortalPreferenceRepository(PortalPreferenceRepository portalPreferenceRepository) { - this.portalPreferenceRepository = portalPreferenceRepository; - } - - public void setCategoryRepository(CategoryRepository categoryRepository) { - this.categoryRepository = categoryRepository; - } - - public void setPageTemplateRepository(PageTemplateRepository pageTemplateRepository) { - this.pageTemplateRepository = pageTemplateRepository; - } - - public void setActivityStreamsRepository(ActivityStreamsRepository activityStreamsRepository) { - this.activityStreamsRepository = activityStreamsRepository; - } + public static interface Executor<T> { + boolean needsLoading(); + void loadData(T models); } } http://git-wip-us.apache.org/repos/asf/rave/blob/c8110354/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/ModelWrapperDataExecutor.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/ModelWrapperDataExecutor.java b/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/ModelWrapperDataExecutor.java new file mode 100644 index 0000000..7be372c --- /dev/null +++ b/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/ModelWrapperDataExecutor.java @@ -0,0 +1,321 @@ +package org.apache.rave.portal.util.data; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.apache.rave.model.*; +import org.apache.rave.portal.repository.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * Implementation of the DataImporter for the {@link ModelWrapper} + */ +@Transactional +public class ModelWrapperDataExecutor implements DataImporter.Executor<ModelWrapper> { + + //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; + + @Autowired + private ActivityStreamsRepository activityStreamsRepository; + + public boolean needsLoading() { + return widgetRepository.getCountAll() == 0; + } + + @Transactional + public void loadData(ModelWrapper wrapper) { + savePageLayouts(wrapper); + saveAuthorities(wrapper); + Map<String, User> usersByOriginalId = saveUsers(wrapper); + Map<String, Category> categoryByOldId = saveCategories(wrapper, usersByOriginalId); + Map<String, Widget> widgetsById = saveWidgets(wrapper, usersByOriginalId, categoryByOldId); + savePages(wrapper, usersByOriginalId, widgetsById); + savePreferences(wrapper); + saveTemplates(wrapper, widgetsById); + saveActivities(wrapper); + } + + private void saveActivities(ModelWrapper wrapper) { + if (wrapper.getActivities() != null) { + for (ActivityStreamsEntry activity : wrapper.getActivities()) { + activityStreamsRepository.save(activity); + } + } + } + + private void saveTemplates(ModelWrapper wrapper, Map<String, Widget> widgetsById) { + for (PageTemplate template : wrapper.getPageTemplates()) { + updateTemplate(widgetsById, template); + for (PageTemplate sub : template.getSubPageTemplates()) { + sub.setParentPageTemplate(template); + updateTemplate(widgetsById, sub); + } + pageTemplateRepository.save(template); + } + } + + private void updateTemplate(Map<String, Widget> widgetsById, PageTemplate template) { + setIdViaReflection(template, null); + for (PageTemplateRegion region : template.getPageTemplateRegions()) { + setIdViaReflection(region, null); + region.setPageTemplate(template); + for (PageTemplateWidget widget : region.getPageTemplateWidgets()) { + Widget fromDb = widgetsById.get(widget.getWidgetId()); + if (fromDb != null) { + widget.setWidgetId(fromDb.getId()); + } + setIdViaReflection(widget, null); + widget.setPageTemplateRegion(region); + } + + } + } + + private Map<String, Category> saveCategories(ModelWrapper wrapper, Map<String, User> usersByOriginalId) { + Map<String, Category> categoryByOldId = Maps.newHashMap(); + if (wrapper.getCategories() != null) { + for (Category category : wrapper.getCategories()) { + String id = category.getId() == null ? category.getText() : category.getId(); + category.setId(null); + User lastModified = usersByOriginalId.get(category.getLastModifiedUserId()); + if (lastModified != null) { + category.setLastModifiedUserId(lastModified.getId()); + } + User created = usersByOriginalId.get(category.getCreatedUserId()); + if (created != null) { + category.setCreatedUserId(created.getId()); + } + categoryByOldId.put(id, categoryRepository.save(category)); + } + } + return categoryByOldId; + } + + private void savePreferences(ModelWrapper wrapper) { + if (wrapper.getPortalPreferences() != null) { + for (PortalPreference preference : wrapper.getPortalPreferences()) { + portalPreferenceRepository.save(preference); + } + } + } + + private Map<String, User> saveUsers(ModelWrapper wrapper) { + Map<String, User> usersByOriginalId = Maps.newHashMap(); + if (wrapper.getUsers() != null) { + for (User user : wrapper.getUsers()) { + String id = user.getId(); + user.setId(null); + usersByOriginalId.put(id, userRepository.save(user)); + } + } + return usersByOriginalId; + } + + private void savePages(ModelWrapper wrapper, Map<String, User> usersByOriginalId, Map<String, Widget> widgetsById) { + if (wrapper.getPages() != null) { + for (Page page : wrapper.getPages()) { + updatePage(usersByOriginalId, widgetsById, page); + for (Page sub : page.getSubPages()) { + sub.setParentPage(page); + updatePage(usersByOriginalId, widgetsById, sub); + } + pageRepository.save(page); + } + } + } + + private void updatePage(Map<String, User> usersByOriginalId, Map<String, Widget> widgetsById, Page page) { + for (Region region : page.getRegions()) { + region.setPage(page); + setIdViaReflection(region, null); + for (RegionWidget widget : region.getRegionWidgets()) { + widget.setRegion(region); + Widget fromDb = widgetsById.get(widget.getId()); + if (fromDb != null) { + widget.setWidgetId(fromDb.getId()); + } + setIdViaReflection(widget, null); + } + } + for (PageUser user : page.getMembers()) { + user.setPage(page); + setIdViaReflection(user, null); + User fromDb = usersByOriginalId.get(user.getUserId()); + if (fromDb != null) { + user.setUserId(fromDb.getId()); + } + } + User user = usersByOriginalId.get(page.getOwnerId()); + page.setOwnerId(user.getId()); + } + + private Map<String, Widget> saveWidgets(ModelWrapper wrapper, Map<String, User> usersById, Map<String, Category> categoryMap) { + Map<String, Widget> widgetsByOldId = Maps.newHashMap(); + if (wrapper.getWidgets() != null) { + for (Widget widget : wrapper.getWidgets()) { + String id = widget.getId() == null ? widget.getUrl() : widget.getId(); + setIdViaReflection(widget, null); + User user = usersById.get(widget.getOwnerId()); + if (user != null) { + widget.setOwnerId(user.getId()); + } + List<Category> categories = Lists.newArrayList(); + if (widget.getCategories() != null) { + for (Category c : widget.getCategories()) { + categories.add(categoryMap.get(c.getId())); + } + widget.setCategories(categories); + } + widgetsByOldId.put(id, widgetRepository.save(widget)); + } + } + return widgetsByOldId; + } + + private void setIdViaReflection(Object target, Object id) { + Class clazz = target.getClass(); + Method setter = getMethod(clazz, "setId"); + if (setter != null) { + callMethod(target, setter, id); + } else { + setField(target, id, clazz); + } + } + + private void setField(Object target, Object id, Class clazz) { + List<String> potentialFields = Arrays.asList("id", "_id", "id_"); + for (String name : potentialFields) { + if (findAndSetField(clazz, target, id, name)) return; + } + throw new IllegalStateException("Could not match field"); + } + + private boolean findAndSetField(Class clazz, Object target, Object value, String name) { + Field idField = getField(clazz, name); + if (idField != null) { + setField(target, idField, value); + return true; + } else { + return false; + } + } + + private Field getField(Class clazz, String match) { + Field field = null; + try { + field = clazz.getDeclaredField(match); + } catch (NoSuchFieldException e) { + } + return field; + } + + private Method getMethod(Class clazz, String match) { + Method method = null; + try { + method = clazz.getMethod(match, Void.class); + } catch (NoSuchMethodException e) { + } + return method; + } + + private void callMethod(Object o, Method m, Object... param) { + try { + m.invoke(o, param); + } catch (IllegalAccessException e) { + throw new IllegalStateException("Unable to call method", e); + } catch (InvocationTargetException e) { + throw new IllegalStateException("Unable to call method", e); + } + } + + private void setField(Object o, Field f, Object val) { + try { + f.set(o, val); + } catch (IllegalAccessException e) { + throw new IllegalStateException("Unable to set field", e); + } + } + + private void saveAuthorities(ModelWrapper wrapper) { + if (wrapper.getAuthorities() != null) { + for (Authority authority : wrapper.getAuthorities()) { + authorityRepository.save(authority); + } + } + } + + private void savePageLayouts(ModelWrapper wrapper) { + if (wrapper.getPageLayouts() != null) { + for (PageLayout layout : wrapper.getPageLayouts()) { + pageLayoutRepository.save(layout); + } + } + } + + public void setPageLayoutRepository(PageLayoutRepository pageLayoutRepository) { + this.pageLayoutRepository = pageLayoutRepository; + } + + public void setUserRepository(UserRepository userRepository) { + this.userRepository = userRepository; + } + + public void setWidgetRepository(WidgetRepository widgetRepository) { + this.widgetRepository = widgetRepository; + } + + public void setPageRepository(PageRepository pageRepository) { + this.pageRepository = pageRepository; + } + + public void setAuthorityRepository(AuthorityRepository authorityRepository) { + this.authorityRepository = authorityRepository; + } + + public void setPortalPreferenceRepository(PortalPreferenceRepository portalPreferenceRepository) { + this.portalPreferenceRepository = portalPreferenceRepository; + } + + public void setCategoryRepository(CategoryRepository categoryRepository) { + this.categoryRepository = categoryRepository; + } + + public void setPageTemplateRepository(PageTemplateRepository pageTemplateRepository) { + this.pageTemplateRepository = pageTemplateRepository; + } + + public void setActivityStreamsRepository(ActivityStreamsRepository activityStreamsRepository) { + this.activityStreamsRepository = activityStreamsRepository; + } +} + http://git-wip-us.apache.org/repos/asf/rave/blob/c8110354/rave-components/rave-core/src/test/java/org/apache/rave/portal/util/DataImporterTest.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-core/src/test/java/org/apache/rave/portal/util/DataImporterTest.java b/rave-components/rave-core/src/test/java/org/apache/rave/portal/util/DataImporterTest.java index 7b5f0b4..9b060fb 100644 --- a/rave-components/rave-core/src/test/java/org/apache/rave/portal/util/DataImporterTest.java +++ b/rave-components/rave-core/src/test/java/org/apache/rave/portal/util/DataImporterTest.java @@ -23,6 +23,8 @@ import org.apache.rave.model.*; import org.apache.rave.portal.model.impl.*; import org.apache.rave.portal.repository.*; import org.apache.rave.portal.util.data.DataImporter; +import org.apache.rave.portal.util.data.ModelWrapper; +import org.apache.rave.portal.util.data.ModelWrapperDataExecutor; import org.junit.Before; import org.junit.Test; import org.springframework.core.io.ClassPathResource; @@ -43,7 +45,7 @@ public class DataImporterTest { private CategoryRepository categoryRepository; private PageTemplateRepository pageTemplateRepository; private ActivityStreamsRepository activityStreamsRepository; - private DataImporter importer; + private DataImporter<ModelWrapper> importer; @Before public void setup() { @@ -57,7 +59,7 @@ public class DataImporterTest { pageTemplateRepository = createMock(PageTemplateRepository.class); activityStreamsRepository = createMock(ActivityStreamsRepository.class); - DataImporter.ExecutorImpl executor = new DataImporter.ExecutorImpl(); + ModelWrapperDataExecutor executor = new ModelWrapperDataExecutor(); executor.setPageLayoutRepository(pageLayoutRepository); executor.setUserRepository(userRepository); executor.setWidgetRepository(widgetRepository); @@ -68,9 +70,10 @@ public class DataImporterTest { executor.setPageTemplateRepository(pageTemplateRepository); executor.setActivityStreamsRepository(activityStreamsRepository); - importer = new DataImporter(); + importer = new DataImporter<ModelWrapper>(); importer.setScriptLocations(Arrays.asList((Resource) new ClassPathResource("test-data.json"))); importer.setDataExecutor(executor); + importer.setModelClass(ModelWrapper.class); } @Test http://git-wip-us.apache.org/repos/asf/rave/blob/c8110354/rave-portal-resources/src/main/resources_jpa/dataContext.xml ---------------------------------------------------------------------- diff --git a/rave-portal-resources/src/main/resources_jpa/dataContext.xml b/rave-portal-resources/src/main/resources_jpa/dataContext.xml index 48da3cd..8d58bbf 100644 --- a/rave-portal-resources/src/main/resources_jpa/dataContext.xml +++ b/rave-portal-resources/src/main/resources_jpa/dataContext.xml @@ -29,8 +29,9 @@ <import resource="classpath*:org/apache/rave/persistence-applicationContext.xml" /> <bean id="dataImporter" class="org.apache.rave.portal.util.data.DataImporter"> + <property name="modelClass" value="org.apache.rave.portal.util.data.ModelWrapper" /> <property name="dataExecutor"> - <bean class="org.apache.rave.portal.util.data.DataImporter$ExecutorImpl" /> + <bean class="org.apache.rave.portal.util.data.ModelWrapperDataExecutor" /> </property> <property name="scriptLocations"> <list> http://git-wip-us.apache.org/repos/asf/rave/blob/c8110354/rave-portal-resources/src/main/resources_mongo/dataContext.xml ---------------------------------------------------------------------- diff --git a/rave-portal-resources/src/main/resources_mongo/dataContext.xml b/rave-portal-resources/src/main/resources_mongo/dataContext.xml index 70b0e68..0008b99 100644 --- a/rave-portal-resources/src/main/resources_mongo/dataContext.xml +++ b/rave-portal-resources/src/main/resources_mongo/dataContext.xml @@ -29,8 +29,9 @@ <import resource="classpath*:org/apache/rave/persistence-applicationContext.xml" /> <bean id="dataImporter" class="org.apache.rave.portal.util.data.DataImporter"> + <property name="modelClass" value="org.apache.rave.portal.util.data.ModelWrapper" /> <property name="dataExecutor"> - <bean class="org.apache.rave.portal.util.data.DataImporter$ExecutorImpl" /> + <bean class="org.apache.rave.portal.util.data.ModelWrapperDataExecutor" /> </property> <property name="scriptLocations"> <list> http://git-wip-us.apache.org/repos/asf/rave/blob/c8110354/rave-portal/src/test/resources_jpa/test-dataContext.xml ---------------------------------------------------------------------- diff --git a/rave-portal/src/test/resources_jpa/test-dataContext.xml b/rave-portal/src/test/resources_jpa/test-dataContext.xml index 70d8a02..6235c60 100644 --- a/rave-portal/src/test/resources_jpa/test-dataContext.xml +++ b/rave-portal/src/test/resources_jpa/test-dataContext.xml @@ -66,8 +66,9 @@ </bean> <bean id="dataImporter" class="org.apache.rave.portal.util.data.DataImporter"> + <property name="modelClass" value="org.apache.rave.portal.util.data.ModelWrapper" /> <property name="dataExecutor"> - <bean class="org.apache.rave.portal.util.data.DataImporter$ExecutorImpl" /> + <bean class="org.apache.rave.portal.util.data.ModelWrapperDataExecutor" /> </property> <property name="scriptLocations"> <list> http://git-wip-us.apache.org/repos/asf/rave/blob/c8110354/rave-portal/src/test/resources_mongo/test-dataContext.xml ---------------------------------------------------------------------- diff --git a/rave-portal/src/test/resources_mongo/test-dataContext.xml b/rave-portal/src/test/resources_mongo/test-dataContext.xml index abf7597..2dfc9bc 100644 --- a/rave-portal/src/test/resources_mongo/test-dataContext.xml +++ b/rave-portal/src/test/resources_mongo/test-dataContext.xml @@ -52,8 +52,9 @@ <bean id="dataImporter" class="org.apache.rave.portal.util.data.DataImporter"> + <property name="modelClass" value="org.apache.rave.portal.util.data.ModelWrapper" /> <property name="dataExecutor"> - <bean class="org.apache.rave.portal.util.data.DataImporter$ExecutorImpl" /> + <bean class="org.apache.rave.portal.util.data.ModelWrapperDataExecutor" /> </property> <property name="scriptLocations"> <list>
