This is an automated email from the git hooks/post-receive script. New commit to branch feature/7549_administration_des_sources_de_donnes in repository tutti. See http://git.codelutin.com/tutti.git commit 46b70cf1ab5ba18f63e902cc4ef5e031c5ea36bf Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Jan 10 19:07:11 2016 +0100 Revue de la suppression d'une source de données --- .../controller/v1/DataSourceServiceController.java | 5 ++++ .../services/service/DataSourceService.java | 8 ++++-- .../services/service/DataSourceServiceTopia.java | 32 +++++++++++++++++++++- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java index 0cae570..4d307c7 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java @@ -111,6 +111,11 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport } @Override + public void destroy(ObserveDataSourceConfiguration dataSourceConfiguration) { + getAuthenticatedService().destroy(dataSourceConfiguration); + } + + @Override public void destroy() { getAuthenticatedService().destroy(); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java index 0e1b2e9..bb8ffcc 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java @@ -64,11 +64,15 @@ public interface DataSourceService extends ObserveService, Closeable { @NoDataAccess void migrateData(ObserveDataSourceConfiguration dataSourceConfiguration); - @Override - void close(); + @NoDataAccess + void destroy(ObserveDataSourceConfiguration dataSourceConfiguration); + @Write void destroy(); + @Override + void close(); + @WriteDataPermission @Write @PostRequest diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java index 9dcd5b2..d7fc7df 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java @@ -47,6 +47,7 @@ import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationExce import fr.ird.observe.services.dto.ObserveDbUserDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.jdbc.JdbcH2Helper; import org.nuiton.topia.persistence.jdbc.JdbcHelper; import org.nuiton.version.Version; @@ -293,8 +294,37 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS @Override public void destroy() { - //TODO + ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration = serviceContext.getDataSourceConfiguration(); + Preconditions.checkState(dataSourceConfiguration.isH2Database(),"Can't detroy anything else than a H2 database"); + + ObserveTopiaApplicationContext topiaApplicationContext = ObserveTopiaApplicationContextFactory.getOrCreateTopiaApplicationContext(dataSourceConfiguration); + ObserveTopiaConfiguration topiaConfiguration = topiaApplicationContext.getConfiguration(); + + close(); + + destroy0(topiaConfiguration); + + } + + @Override + public void destroy(ObserveDataSourceConfiguration dataSourceConfiguration) { + + Preconditions.checkState(dataSourceConfiguration instanceof ObserveDataSourceConfigurationTopiaH2,"Can't detroy anything else than a H2 database"); + + ObserveTopiaApplicationContext topiaApplicationContext = ObserveTopiaApplicationContextFactory.getOrCreateTopiaApplicationContext((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration); + ObserveTopiaConfiguration topiaConfiguration = topiaApplicationContext.getConfiguration(); + + topiaApplicationContext.close(); + + destroy0(topiaConfiguration); + + } + + protected void destroy0(ObserveTopiaConfiguration topiaConfiguration) { + + JdbcH2Helper jdbcH2Helper = new JdbcH2Helper(topiaConfiguration); + jdbcH2Helper.clear(true); } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.