package com.constellio.app.modules.complementary; import com.constellio.app.entities.modules.ComboMigrationScript; import com.constellio.app.entities.modules.InstallableModule; import com.constellio.app.entities.modules.MigrationScript; import com.constellio.app.entities.modules.ModuleWithComboMigration; import com.constellio.app.entities.navigation.NavigationConfig; import com.constellio.app.extensions.AppLayerCollectionExtensions; import com.constellio.app.modules.complementary.esRmRobots.actions.ClassifyConnectorDocumentInFolderActionExecutor; import com.constellio.app.modules.complementary.esRmRobots.actions.ClassifyConnectorFolderDirectlyInThePlanActionExecutor; import com.constellio.app.modules.complementary.esRmRobots.actions.ClassifyConnectorFolderInParentFolderActionExecutor; import com.constellio.app.modules.complementary.esRmRobots.actions.ClassifyConnectorFolderInTaxonomyActionExecutor; import com.constellio.app.modules.complementary.esRmRobots.extensions.EsRmRobotsActionParametersFieldFactoryExtension; import com.constellio.app.modules.complementary.esRmRobots.extensions.EsRmRobotsMappingExtension; import com.constellio.app.modules.complementary.esRmRobots.migrations.*; import com.constellio.app.modules.es.ConstellioESModule; import com.constellio.app.modules.es.extensions.api.ESModuleExtensions; import com.constellio.app.modules.rm.ConstellioRMModule; import com.constellio.app.modules.rm.services.RMSchemasRecordsServices; import com.constellio.app.modules.robots.ConstellioRobotsModule; import com.constellio.app.modules.robots.services.RobotSchemaRecordServices; import com.constellio.app.modules.robots.services.RobotsManager; import com.constellio.app.services.factories.AppLayerFactory; import com.constellio.model.entities.configs.SystemConfiguration; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static java.util.Arrays.asList; public class ESRMRobotsModule implements InstallableModule, ModuleWithComboMigration { public static final String ID = "es_rm_robots"; @Override public String getName() { return ID; } @Override public String getId() { return ID; } @Override public String getPublisher() { return "Constellio"; } @Override public List<MigrationScript> getMigrationScripts() { List<MigrationScript> migrations = new ArrayList<>(); migrations.add(new ESRMRobotsMigrationTo5_1_2()); migrations.add(new ESRMRobotsMigrationTo5_1_5()); migrations.add(new ESRMRobotsMigrationTo5_1_6()); migrations.add(new ESRMRobotsMigrationTo5_1_7()); migrations.add(new ESRMRobotsMigrationTo5_1_9()); migrations.add(new ESRMRobotsMigrationTo6_0()); migrations.add(new ESRMRobotsMigrationTo6_1()); migrations.add(new ESRMRobotsMigrationTo6_2_2_1()); migrations.add(new ESRMRobotsMigrationTo7_0_1()); migrations.add(new ESRMRobotsMigrationTo7_1()); return migrations; } @Override public void configureNavigation(NavigationConfig config) { } @Override public void start(String collection, AppLayerFactory appLayerFactory) { setupAppLayerExtensions(collection, appLayerFactory); } @Override public void stop(String collection, AppLayerFactory appLayerFactory) { } @Override public void addDemoData(String collection, AppLayerFactory appLayerFactory) { } @Override public boolean isComplementary() { return true; } @Override public List<String> getDependencies() { return asList(ConstellioRMModule.ID, ConstellioESModule.ID, ConstellioRobotsModule.ID); } @Override public List<SystemConfiguration> getConfigurations() { return new ArrayList<>(); } @Override public Map<String, List<String>> getPermissions() { return new HashMap<>(); } @Override public List<String> getRolesForCreator() { return new ArrayList<>(); } private void setupAppLayerExtensions(String collection, AppLayerFactory appLayerFactory) { AppLayerCollectionExtensions extensions = appLayerFactory.getExtensions().forCollection(collection); RMSchemasRecordsServices rm = new RMSchemasRecordsServices(collection, appLayerFactory); extensions.recordFieldFactoryExtensions.add(new EsRmRobotsActionParametersFieldFactoryExtension()); ESModuleExtensions esExtensions = extensions.forModule(ConstellioESModule.ID); esExtensions.connectorMappingExtensions.add(new EsRmRobotsMappingExtension(rm)); } @Override public ComboMigrationScript getComboMigrationScript() { return new ESRMRobotsMigrationCombo(); } }