package fi.otavanopisto.pyramus.views.system.setupwizard; import java.io.IOException; import java.io.InputStream; import java.util.List; import fi.internetix.smvc.controllers.PageRequestContext; import fi.otavanopisto.pyramus.dao.DAOFactory; import fi.otavanopisto.pyramus.dao.SystemDAO; import fi.otavanopisto.pyramus.dao.base.DefaultsDAO; import fi.otavanopisto.pyramus.framework.UserRole; import fi.otavanopisto.pyramus.util.DataImporter; public class IndexSetupWizardViewController extends SetupWizardController { public IndexSetupWizardViewController() { super("index"); } @Override public void setup(PageRequestContext requestContext) throws SetupWizardException { DefaultsDAO defaultsDAO = DAOFactory.getInstance().getDefaultsDAO(); SystemDAO systemDAO = DAOFactory.getInstance().getSystemDAO(); if (!defaultsDAO.isPyramusInitialized()) { DataImporter dataImporter = new DataImporter(); ClassLoader classLoader = getClass().getClassLoader(); InputStream initialDataStream = classLoader.getResourceAsStream("initialdata.xml"); try { dataImporter.importDataFromStream(initialDataStream, null); } finally { try { initialDataStream.close(); } catch (IOException e) { throw new SetupWizardException("Error occurred while importing initial data", e); } } List<Class<?>> indexedEntities = systemDAO.getIndexedEntities(); for (Class<?> indexedEntity : indexedEntities) { try { systemDAO.reindexHibernateSearchObjects(indexedEntity, 200); } catch (InterruptedException e) { throw new SetupWizardException("Error occurred while initializing search indices", e); } } } } @Override public void save(PageRequestContext requestContext) throws SetupWizardException { } @Override public boolean isInitialized(PageRequestContext requestContext) throws SetupWizardException { return false; } @Override public UserRole[] getAllowedRoles() { return new UserRole[] { UserRole.EVERYONE }; } }