This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 668c914ffcd0bff2b546a05db2e6ba77d42cc4e8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Aug 23 20:33:10 2015 +0200 Ajout d'exceptions et d'annoations qui vont bien sur le service DataSourceService --- .../services/service/DataSourceService.java | 17 +++++++++---- .../DatabaseConnexionNotAuthorizedException.java | 29 ++++++++++++++++++++++ .../service/DatabaseNotFoundException.java | 26 +++++++++++++++++++ .../ObserveDataSourceConfiguration.java | 6 ++++- .../dto/DataSourceCreateConfigurationDto.java | 22 ++++++++++++++++ ...urceCreateWithNoReferentialImportException.java | 21 ++++++++++++++++ ...ibleDataSourceCreateConfigurationException.java | 22 ++++++++++++++++ 7 files changed, 137 insertions(+), 6 deletions(-) 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 1e41b82..f93dce1 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 @@ -2,6 +2,9 @@ package fr.ird.observe.services.service; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; +import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; +import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; +import fr.ird.observe.services.spi.NoDataAccess; import java.io.IOException; @@ -12,15 +15,19 @@ import java.io.IOException; */ public interface DataSourceService extends ObserveService { - boolean exist(); + @NoDataAccess + boolean exists(); - void create(DataSourceCreateConfigurationDto dataSourceCreateConfiguration) throws IOException; + @NoDataAccess + boolean canConnect(); - void open(); + @NoDataAccess + void create(DataSourceCreateConfigurationDto dataSourceCreateConfiguration) throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException; - void close(); + @NoDataAccess + void open() throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException; - boolean canConnect(); + void close(); void destroy(); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/DatabaseConnexionNotAuthorizedException.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/DatabaseConnexionNotAuthorizedException.java new file mode 100644 index 0000000..243303e --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/DatabaseConnexionNotAuthorizedException.java @@ -0,0 +1,29 @@ +package fr.ird.observe.services.service; + +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; + +/** + * Created on 23/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class DatabaseConnexionNotAuthorizedException extends Exception { + + private static final long serialVersionUID = 1L; + + protected final ObserveDataSourceConfiguration dataSourceConfiguration; + + public DatabaseConnexionNotAuthorizedException(ObserveDataSourceConfiguration dataSourceConfiguration) { + this.dataSourceConfiguration = dataSourceConfiguration; + } + public DatabaseConnexionNotAuthorizedException(String message, ObserveDataSourceConfiguration dataSourceConfiguration) { + super(message); + this.dataSourceConfiguration = dataSourceConfiguration; + } + + public DatabaseConnexionNotAuthorizedException(String message, Throwable cause, ObserveDataSourceConfiguration dataSourceConfiguration) { + super(message, cause); + this.dataSourceConfiguration = dataSourceConfiguration; + } + +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/DatabaseNotFoundException.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/DatabaseNotFoundException.java new file mode 100644 index 0000000..ed47185 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/DatabaseNotFoundException.java @@ -0,0 +1,26 @@ +package fr.ird.observe.services.service; + +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; + +/** + * Exception à renvoyer quand la data source correspondant à une configuration n'existe pas. + * + * Voir {@link ObserveDataSourceConfiguration#datasourceExists()} + * Created on 23/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class DatabaseNotFoundException extends Exception { + + private static final long serialVersionUID = 1L; + + protected final ObserveDataSourceConfiguration dataSourceConfiguration; + + public DatabaseNotFoundException(ObserveDataSourceConfiguration dataSourceConfiguration) { + this.dataSourceConfiguration = dataSourceConfiguration; + } + + public ObserveDataSourceConfiguration getDataSourceConfiguration() { + return dataSourceConfiguration; + } +} diff --git a/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfiguration.java b/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfiguration.java index 8b898a2..6048e69 100644 --- a/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfiguration.java +++ b/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConfiguration.java @@ -1,11 +1,15 @@ package fr.ird.observe.services.configuration; +import java.io.Serializable; + /** * Created on 19/08/15. * * @author Tony Chemit - chemit@codelutin.com */ -public interface ObserveDataSourceConfiguration { +public interface ObserveDataSourceConfiguration extends Serializable{ + + boolean datasourceExists(); String getLabel(); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateConfigurationDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateConfigurationDto.java index e57672d..983f7b1 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateConfigurationDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateConfigurationDto.java @@ -77,4 +77,26 @@ public class DataSourceCreateConfigurationDto extends AbstractObserveDto { this.optionalImportDataIds = importDataIds; } + public void validateConfiguration() throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException { + + boolean importDatabase = isImportDatabase(); + + if (importDatabase) { + + // on ne peut pas importer autre chose en même + if (isImportData() || isImportReferential()) { + throw new IncompatibleDataSourceCreateConfigurationException(this); + } + + } else { + + if (!isImportReferential()) { + + // on n'autorise pas la création d'une base sans référentiel. + throw new DataSourceCreateWithNoReferentialImportException(this); + } + + } + + } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateWithNoReferentialImportException.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateWithNoReferentialImportException.java new file mode 100644 index 0000000..bbfd12c --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateWithNoReferentialImportException.java @@ -0,0 +1,21 @@ +package fr.ird.observe.services.dto; + +/** + * Created on 23/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class DataSourceCreateWithNoReferentialImportException extends Exception { + + private static final long serialVersionUID = 1L; + + protected final DataSourceCreateConfigurationDto configuration; + + public DataSourceCreateWithNoReferentialImportException(DataSourceCreateConfigurationDto configuration) { + this.configuration = configuration; + } + + public DataSourceCreateConfigurationDto getConfiguration() { + return configuration; + } +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/IncompatibleDataSourceCreateConfigurationException.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/IncompatibleDataSourceCreateConfigurationException.java new file mode 100644 index 0000000..6ee8cdd --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/IncompatibleDataSourceCreateConfigurationException.java @@ -0,0 +1,22 @@ +package fr.ird.observe.services.dto; + +/** + * Created on 23/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class IncompatibleDataSourceCreateConfigurationException extends Exception { + + private static final long serialVersionUID = 1L; + + protected final DataSourceCreateConfigurationDto configuration; + + public IncompatibleDataSourceCreateConfigurationException(DataSourceCreateConfigurationDto configuration) { + this.configuration = configuration; + } + + public DataSourceCreateConfigurationDto getConfiguration() { + return configuration; + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.