This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 8b5270a0c18ad9fecaf774b7ac17f097e1f20c8a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 15:20:11 2016 +0100 refs #8554 Ajout de logs sur le sql --- .../swing/db/ObserveSwingDataSource.java | 7 +- .../fr/ird/observe/ObserveTopiaConfiguration.java | 12 ++- .../observe/ObserveTopiaConfigurationFactory.java | 17 ++-- .../observe/ObserveTopiaPersistenceContext.java | 18 +++- .../java/fr/ird/observe/RunScriptTopiaSqlWork.java | 11 ++- .../fr/ird/observe/RunScriptsTopiaSqlWork.java | 6 +- ...ObserveDataSourceConfigurationTopiaSupport.java | 11 +++ .../services/topia/ObserveServiceFactoryTopia.java | 3 - .../ObserveTopiaApplicationContextFactory.java | 15 ++- .../topia/service/DataSourceServiceTopia.java | 2 + .../service/data/ImportTripScriptTopiaSqlWork.java | 14 ++- .../service/data/TripManagementServiceTopia.java | 9 +- .../service/sql/SqlScriptProducerServiceTopia.java | 9 +- .../topia/service/sql/batch/SqlRequests.java | 108 ++++----------------- .../sql/batch/TopiaSqlBatchServiceImpl.java | 8 +- .../sql/batch/actions/AbstractSchemaAction.java | 4 +- .../sql/batch/actions/AbstractSqlAction.java | 15 ++- .../sql/batch/actions/AbstractSqlRequest.java | 7 -- .../sql/batch/actions/AbstractTablesAction.java | 47 +++++++-- .../sql/batch/actions/CreateSchemaAction.java | 14 ++- .../sql/batch/actions/DeleteTablesAction.java | 10 +- .../sql/batch/actions/DropSchemaAction.java | 15 ++- .../sql/batch/actions/ReplicateTablesAction.java | 6 +- .../sql/batch/actions/UpdateTablesAction.java | 10 +- .../sql/batch/tables/TopiaSqlTablesFactory.java | 12 +-- 25 files changed, 213 insertions(+), 177 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java index 526da30..482abbb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java @@ -58,6 +58,7 @@ import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseDestroyNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.LastUpdateDateService; +import fr.ird.observe.services.service.data.NavigationService; import fr.ird.observe.services.service.referential.ObserveReferentialCache; import fr.ird.observe.services.service.PingService; import fr.ird.observe.services.service.referential.ReferentialService; @@ -451,7 +452,11 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements speciesListConfiguration.setSpeciesListSeineObjectSchoolEstimateId(config.getSpeciesListSeineObjectSchoolEstimateId()); speciesListConfiguration.setSpeciesListSeineSchoolEstimateId(config.getSpeciesListSeineSchoolEstimateId()); speciesListConfiguration.setSpeciesListSeineTargetCatchId(config.getSpeciesListSeineTargetCatchId()); - + boolean showSql = config.isShowSql(); + if (showSql && configurationAndConnection.getConfiguration() instanceof ObserveDataSourceConfigurationTopiaSupport) { + ObserveDataSourceConfigurationTopiaSupport configuration = (ObserveDataSourceConfigurationTopiaSupport) configurationAndConnection.getConfiguration(); + configuration.setTraceSql(true); + } return ObserveServiceInitializer.create( locale, referentialLocale, diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java index 165217c..2eb67ef 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java @@ -22,6 +22,7 @@ package fr.ird.observe; * #L% */ +import com.google.common.collect.ImmutableMap; import org.nuiton.topia.persistence.BeanTopiaConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; @@ -35,13 +36,22 @@ public class ObserveTopiaConfiguration extends BeanTopiaConfiguration { private static final long serialVersionUID = 1L; protected final boolean h2Configuration; + protected final boolean showSql; - public ObserveTopiaConfiguration(JdbcConfiguration jdbcConfiguration, boolean h2Configuration) { + public ObserveTopiaConfiguration(JdbcConfiguration jdbcConfiguration, boolean h2Configuration, boolean showSql) { super(jdbcConfiguration); this.h2Configuration = h2Configuration; + this.showSql = showSql; + if (showSql) { + setHibernateExtraConfiguration(ImmutableMap.of("hibernate.show_sql", Boolean.TRUE.toString())); + } } public boolean isH2Configuration() { return h2Configuration; } + + public boolean isShowSql() { + return showSql; + } } diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfigurationFactory.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfigurationFactory.java index f911347..3f90d08 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfigurationFactory.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfigurationFactory.java @@ -89,7 +89,8 @@ public class ObserveTopiaConfigurationFactory { String password, boolean initSchema, boolean showMigrationSql, - boolean showMigrationProgression) { + boolean showMigrationProgression, + boolean traceSql) { JdbcConfiguration jdbcConfiguration = JDBC_CONFIGURATION_BUILDER.forPostgresqlDatabase(jdbcUrl, username, password); @@ -97,7 +98,8 @@ public class ObserveTopiaConfigurationFactory { initSchema, showMigrationSql, showMigrationProgression, - false); + false, + traceSql); if (log.isDebugEnabled()) { log.debug("PG topia configuration: " + topiaConfiguration); @@ -112,7 +114,8 @@ public class ObserveTopiaConfigurationFactory { String password, boolean initSchema, boolean showMigrationSql, - boolean showMigrationProgression) { + boolean showMigrationProgression, + boolean traceSql) { String dbPath = new File(dbDirectory, dbName).getPath(); String jdbcUrl = String.format(H2_LOCAL_URL, dbPath); @@ -123,7 +126,8 @@ public class ObserveTopiaConfigurationFactory { initSchema, showMigrationSql, showMigrationProgression, - true); + true, + traceSql); if (log.isDebugEnabled()) { log.debug("H2 topia configuration: " + topiaConfiguration); @@ -136,9 +140,10 @@ public class ObserveTopiaConfigurationFactory { boolean initSchema, boolean showMigrationSql, boolean showMigrationProgression, - boolean h2Configuration) { + boolean h2Configuration, + boolean traceSql) { - ObserveTopiaConfiguration topiaConfiguration = new ObserveTopiaConfiguration(jdbcConfiguration, h2Configuration); + ObserveTopiaConfiguration topiaConfiguration = new ObserveTopiaConfiguration(jdbcConfiguration, h2Configuration, traceSql); topiaConfiguration.setTopiaIdFactoryClass(ObserveTopiaIdFactory.class); topiaConfiguration.setInitSchema(initSchema); topiaConfiguration.setValidateSchema(false); diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaPersistenceContext.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaPersistenceContext.java index cc71057..43ac98d 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaPersistenceContext.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaPersistenceContext.java @@ -46,6 +46,8 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste */ private static final Log log = LogFactory.getLog(ObserveTopiaPersistenceContext.class); + private boolean showSql; + public ObserveTopiaPersistenceContext(AbstractTopiaPersistenceContextConstructorParameter parameter) { super(parameter); } @@ -122,6 +124,14 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste } + public void setShowSql(boolean showSql) { + this.showSql = showSql; + } + + public boolean isShowSql() { + return showSql; + } + protected class CountTableSqlWork extends TopiaSqlQuery<Long> { private final String fullyTableName; @@ -133,7 +143,9 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste @Override public PreparedStatement prepareQuery(Connection connection) throws SQLException { String sql = "SELECT count(*) FROM " + fullyTableName; - + if (showSql) { + log.debug(sql); + } return connection.prepareStatement(sql); } @@ -145,11 +157,11 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste public void executeSqlScript(byte... content) { - getSqlSupport().doSqlWork(new RunScriptTopiaSqlWork(1000, content)); + getSqlSupport().doSqlWork(new RunScriptTopiaSqlWork(1000, showSql, content)); } public void executeSqlScripts(byte[]... contents) { - getSqlSupport().doSqlWork(new RunScriptsTopiaSqlWork(1000, contents)); + getSqlSupport().doSqlWork(new RunScriptsTopiaSqlWork(1000, showSql, contents)); } } diff --git a/entities/src/main/java/fr/ird/observe/RunScriptTopiaSqlWork.java b/entities/src/main/java/fr/ird/observe/RunScriptTopiaSqlWork.java index 778199c..41538b7 100644 --- a/entities/src/main/java/fr/ird/observe/RunScriptTopiaSqlWork.java +++ b/entities/src/main/java/fr/ird/observe/RunScriptTopiaSqlWork.java @@ -54,9 +54,11 @@ public class RunScriptTopiaSqlWork implements TopiaSqlWork { protected final byte[] content; protected final boolean gzip; protected final int batchSize; + protected final boolean showSql; - public RunScriptTopiaSqlWork(int batchSize, byte[] content) { + public RunScriptTopiaSqlWork(int batchSize, boolean showSql, byte[] content) { this.batchSize = batchSize; + this.showSql = showSql; this.content = content; if (content == null || content.length == 0) { @@ -98,11 +100,10 @@ public class RunScriptTopiaSqlWork implements TopiaSqlWork { if (trimLine.isEmpty() || trimLine.startsWith("--")) { continue; } - - statement.addBatch(trimLine); - if (log.isDebugEnabled()) { - log.debug("Sql statement: " + trimLine); + if (showSql || log.isDebugEnabled()) { + log.info(trimLine); } + statement.addBatch(trimLine); batchSize++; if (batchSize % this.batchSize == 0) { diff --git a/entities/src/main/java/fr/ird/observe/RunScriptsTopiaSqlWork.java b/entities/src/main/java/fr/ird/observe/RunScriptsTopiaSqlWork.java index d32ce14..bf5a3c6 100644 --- a/entities/src/main/java/fr/ird/observe/RunScriptsTopiaSqlWork.java +++ b/entities/src/main/java/fr/ird/observe/RunScriptsTopiaSqlWork.java @@ -36,8 +36,8 @@ public class RunScriptsTopiaSqlWork extends RunScriptTopiaSqlWork { protected final byte[][] contents; - public RunScriptsTopiaSqlWork(int batchSize, byte[][] contents) { - super(batchSize, null); + public RunScriptsTopiaSqlWork(int batchSize, boolean showSql, byte[][] contents) { + super(batchSize, showSql, null); this.contents = contents; } @@ -45,7 +45,7 @@ public class RunScriptsTopiaSqlWork extends RunScriptTopiaSqlWork { protected void execute0(Connection connection) throws SQLException { for (byte[] content : contents) { - new RunScriptTopiaSqlWork(batchSize, content).execute0(connection); + new RunScriptTopiaSqlWork(batchSize, showSql, content).execute0(connection); } } diff --git a/services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/topia/ObserveDataSourceConfigurationTopiaSupport.java b/services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/topia/ObserveDataSourceConfigurationTopiaSupport.java index 4435b8f..085f3ba 100644 --- a/services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/topia/ObserveDataSourceConfigurationTopiaSupport.java +++ b/services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/topia/ObserveDataSourceConfigurationTopiaSupport.java @@ -72,6 +72,9 @@ public abstract class ObserveDataSourceConfigurationTopiaSupport implements Obse private Version modelVersion; + /** Pour logger les requetes sql **/ + private boolean traceSql; + public abstract boolean isH2Database(); public abstract boolean isPostgresDatabase(); @@ -152,4 +155,12 @@ public abstract class ObserveDataSourceConfigurationTopiaSupport implements Obse public ObserveDataSourceType getType() { return ObserveDataSourceType.SQL; } + + public boolean isTraceSql() { + return traceSql; + } + + public void setTraceSql(boolean traceSql) { + this.traceSql = traceSql; + } } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java index 8b6da41..7014803 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java @@ -256,10 +256,8 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { ObserveTopiaApplicationContext source = serviceContext.getTopiaApplicationContext(); - long t0 = TimeLog.getTime(); try (ObserveTopiaPersistenceContext topiaPersistenceContext = source.newPersistenceContext()) { - serviceContext.setTopiaPersistenceContext(topiaPersistenceContext); Object invoke = invokeMethod(method, args); @@ -277,7 +275,6 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { serviceContext.setTopiaPersistenceContext(null); - TIME_LOG.log(t0, "invokeMethodWithTransaction", method.getName()); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java index 781df96..e98e0b1 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java @@ -56,12 +56,9 @@ public class ObserveTopiaApplicationContextFactory { Optional<ObserveTopiaApplicationContext> optionalTopiaApplicationContext = getTopiaApplicationContextIfPresent(dataSourceConfiguration); ObserveTopiaApplicationContext topiaApplicationContext; - if (optionalTopiaApplicationContext.isPresent()) { - topiaApplicationContext = optionalTopiaApplicationContext.get(); - } else { - // Si on demande de créer ici une base, on ne fait rien sur le schéma - topiaApplicationContext = createTopiaApplicationContext(dataSourceConfiguration, false); - } + // Si on demande de créer ici une base, on ne fait rien sur le schéma + topiaApplicationContext = optionalTopiaApplicationContext.orElseGet( + () -> createTopiaApplicationContext(dataSourceConfiguration, false)); return topiaApplicationContext; } @@ -131,7 +128,8 @@ public class ObserveTopiaApplicationContextFactory { String.valueOf(configuration.getPassword()), initSchema, configuration.isShowMigrationSql(), - configuration.isShowMigrationProgression() + configuration.isShowMigrationProgression(), + configuration.isTraceSql() ); if (log.isInfoEnabled()) { @@ -161,7 +159,8 @@ public class ObserveTopiaApplicationContextFactory { String.valueOf(configuration.getPassword()), initSchema, configuration.isShowMigrationSql(), - configuration.isShowMigrationProgression() + configuration.isShowMigrationProgression(), + configuration.isTraceSql() ); if (log.isInfoEnabled()) { diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java index b857b52..77f66a9 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java @@ -143,6 +143,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS new String(h2DataSourceConfiguration.getPassword()), false, false, + false, false); @@ -168,6 +169,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS new String(pgDataSourceConfiguration.getPassword()), false, false, + false, false); try { diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java index 14c7d5b..60b7fb2 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/ImportTripScriptTopiaSqlWork.java @@ -25,6 +25,8 @@ package fr.ird.observe.services.topia.service.data; import com.google.common.collect.ImmutableSet; import fr.ird.observe.RunScriptTopiaSqlWork; import fr.ird.observe.services.service.sql.ObserveBlobsContainer; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import javax.sql.rowset.serial.SerialBlob; import java.sql.Connection; @@ -39,10 +41,13 @@ import java.util.Map; */ public class ImportTripScriptTopiaSqlWork extends RunScriptTopiaSqlWork { + /** Logger */ + private static final Log log = LogFactory.getLog(ImportTripScriptTopiaSqlWork.class); + private final ImmutableSet<ObserveBlobsContainer> blobsContainers; - public ImportTripScriptTopiaSqlWork(int batchSize, byte[] content, ImmutableSet<ObserveBlobsContainer> blobsContainers) { - super(batchSize, content); + public ImportTripScriptTopiaSqlWork(int batchSize, boolean showSql, byte[] content, ImmutableSet<ObserveBlobsContainer> blobsContainers) { + super(batchSize, showSql, content); this.blobsContainers = blobsContainers; } @@ -57,6 +62,11 @@ public class ImportTripScriptTopiaSqlWork extends RunScriptTopiaSqlWork { int batchSize = 0; String sql = String.format("update %s SET %s = ? WHERE topiaId= ?", tableName, columnName); + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sql); + } + } try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) { for (Map.Entry<String, byte[]> containerEntry : blobsContainer.getBlobsById().entrySet()) { diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java index fff3a98..cd7c876 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/TripManagementServiceTopia.java @@ -24,6 +24,7 @@ package fr.ird.observe.services.topia.service.data; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaPersistenceContext; +import fr.ird.observe.services.dto.IdHelper; import fr.ird.observe.services.service.data.DeleteTripRequest; import fr.ird.observe.services.service.data.DeleteTripResult; import fr.ird.observe.services.service.data.ExportTripRequest; @@ -31,14 +32,13 @@ import fr.ird.observe.services.service.data.ExportTripResult; import fr.ird.observe.services.service.data.ImportTripRequest; import fr.ird.observe.services.service.data.ImportTripResult; import fr.ird.observe.services.service.data.TripManagementService; -import fr.ird.observe.services.topia.ObserveServiceContextTopia; -import fr.ird.observe.services.topia.ObserveServiceTopia; -import fr.ird.observe.services.dto.IdHelper; import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.AddSqlScriptProducerResult; import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.ObserveBlobsContainer; import fr.ird.observe.services.service.sql.SqlScriptProducerService; +import fr.ird.observe.services.topia.ObserveServiceContextTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.StringUtil; @@ -158,7 +158,8 @@ public class TripManagementServiceTopia extends ObserveServiceTopia implements T } else { - persistenceContext.getSqlSupport().doSqlWork(new ImportTripScriptTopiaSqlWork(1000, request.getSqlContent(), blobsContainers)); + boolean showSql = serviceContext.getTopiaApplicationContext().getConfiguration().isShowSql(); + persistenceContext.getSqlSupport().doSqlWork(new ImportTripScriptTopiaSqlWork(1000, showSql, request.getSqlContent(), blobsContainers)); } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java index 7f697e9..34cf494 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/sql/SqlScriptProducerServiceTopia.java @@ -124,11 +124,14 @@ public class SqlScriptProducerServiceTopia extends ObserveServiceTopia implement protected SqlRequests sqlRequests(AddSqlScriptProducerRequest request, SqlRequests.Builder builder) { + if (serviceContext.getTopiaApplicationContext().getConfiguration().isShowSql()) { + builder.showSql(); + } + if (request.isAddSchema()) { SqlRequests.CreateSchemaRequestBuilder createSchemaRequestBuilder = builder .createSchemaBuilder() - .setAddSchema(true) .setTemporaryPath(serviceContext.getTemporaryDirectoryRoot().toPath()); if (request.isH2()) { createSchemaRequestBuilder.forH2(); @@ -220,6 +223,10 @@ public class SqlScriptProducerServiceTopia extends ObserveServiceTopia implement protected SqlRequests sqlRequests(DeleteSqlScriptProducerRequest request, SqlRequests.Builder builder) { + if (serviceContext.getTopiaApplicationContext().getConfiguration().isShowSql()) { + builder.showSql(); + } + ObserveTopiaApplicationContext topiaApplicationContext = serviceContext.getTopiaApplicationContext(); if (request.isDeleteData()) { diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java index 7742998..5cdf30f 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java @@ -23,7 +23,6 @@ package org.nuiton.topia.service.sql.batch; */ import com.google.common.collect.ImmutableSet; -import org.hibernate.dialect.Dialect; import org.nuiton.topia.persistence.TopiaApplicationContext; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; import org.nuiton.topia.service.sql.batch.actions.AbstractSchemaRequest; @@ -53,8 +52,11 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { protected final ImmutableSet<AbstractSqlRequest> requests; - protected SqlRequests(ImmutableSet<AbstractSqlRequest> requests) { + protected final boolean showSql; + + protected SqlRequests(ImmutableSet<AbstractSqlRequest> requests, boolean showSql) { this.requests = requests; + this.showSql = showSql; } public static Builder builder() { @@ -75,8 +77,14 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { return requests.iterator(); } + public boolean isShowSql() { + return showSql; + } + public interface Builder extends BuilderAddRequestStep { + Builder showSql(); + Builder from(TopiaApplicationContext sourceTopiaApplicationContext); Builder to(TopiaApplicationContext targetTopiaApplicationContext); @@ -97,16 +105,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { DeleteTablesRequestBuilder deleteTablesBuilder(); - BuilderAddRequestStep addCreateSchema(CreateSchemaRequest request); - - BuilderAddRequestStep addDropSchema(DropSchemaRequest request); - - BuilderAddRequestStep addReplicateTables(ReplicateTablesRequest request); - - BuilderAddRequestStep addUpdateTables(UpdateTablesRequest request); - - BuilderAddRequestStep addDeleteTables(DeleteTablesRequest request); - <R extends AbstractSqlRequest> BuilderAddRequestStep addRequest(R request); Builder flush(); @@ -121,6 +119,13 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { protected TopiaApplicationContext sourceTopiaApplicationContext; protected TopiaApplicationContext targetTopiaApplicationContext; protected Writer writer; + private boolean showSql; + + @Override + public Builder showSql() { + showSql = true; + return this; + } @Override public Builder from(TopiaApplicationContext sourceTopiaApplicationContext) { @@ -142,7 +147,7 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { @Override public SqlRequests build() { - return new SqlRequests(requestsBuilder.build()); + return new SqlRequests(requestsBuilder.build(), showSql); } @Override @@ -181,31 +186,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { } @Override - public BuilderAddRequestStep addCreateSchema(CreateSchemaRequest request) { - return addRequest(request); - } - - @Override - public BuilderAddRequestStep addDropSchema(DropSchemaRequest request) { - return addRequest(request); - } - - @Override - public BuilderAddRequestStep addReplicateTables(ReplicateTablesRequest request) { - return addRequest(request); - } - - @Override - public BuilderAddRequestStep addUpdateTables(UpdateTablesRequest request) { - return addRequest(request); - } - - @Override - public BuilderAddRequestStep addDeleteTables(DeleteTablesRequest request) { - return addRequest(request); - } - - @Override public Builder flush() { return this; } @@ -221,11 +201,7 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { public CreateSchemaRequestBuilder(BuilderImpl builder, CreateSchemaRequest.Builder delegate) { super(builder, delegate); - } - - public CreateSchemaRequestBuilder setAddSchema(boolean addSchema) { - delegate.setAddSchema(addSchema); - return this; + delegate.setAddSchema(true); } } @@ -234,11 +210,7 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { public DropSchemaRequestBuilder(BuilderImpl builder, DropSchemaRequest.Builder delegate) { super(builder, delegate); - } - - public DropSchemaRequestBuilder setDropSchema(boolean dropSchema) { - delegate.setDropSchema(dropSchema); - return this; + delegate.setDropSchema(true); } } @@ -303,31 +275,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { } @Override - public BuilderAddRequestStep addCreateSchema(CreateSchemaRequest request) { - return flush().addRequest(request); - } - - @Override - public BuilderAddRequestStep addDropSchema(DropSchemaRequest request) { - return flush().addRequest(request); - } - - @Override - public BuilderAddRequestStep addReplicateTables(ReplicateTablesRequest request) { - return flush().addRequest(request); - } - - @Override - public BuilderAddRequestStep addUpdateTables(UpdateTablesRequest request) { - return flush().addRequest(request); - } - - @Override - public BuilderAddRequestStep addDeleteTables(DeleteTablesRequest request) { - return addRequest(request); - } - - @Override public <RR extends AbstractSqlRequest> BuilderAddRequestStep addRequest(RR request) { return builder.addRequest(request); } @@ -343,10 +290,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { return builder; } -// protected BuilderAddRequestStep flushCurrentRequest() { -// return addRequest(delegate.build()); -// } - protected B returnThis() { return (B) this; } @@ -369,11 +312,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { return returnThis(); } - public B setDialect(Class<? extends Dialect> dialectType) { - delegate.setDialect(dialectType); - return returnThis(); - } - public B setTemporaryPath(Path temporaryPath) { delegate.setTemporaryPath(temporaryPath); return returnThis(); @@ -392,11 +330,6 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { return returnThis(); } - public B setFetchSize(int fetchSize) { - delegate.setReadFetchSize(fetchSize); - return returnThis(); - } - public B setSelectArgument(TopiaSqlTableSelectArgument arg) { delegate.setSelectArgument(arg); return returnThis(); @@ -404,5 +337,4 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { } - } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java index 32af6fe..a69332f 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java @@ -158,7 +158,7 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { AbstractSqlRequest sqlRequest = sqlRequestIterator.next(); - AbstractSqlAction<?> action = createAction(sqlRequest); + AbstractSqlAction<?> action = createAction(sqlRequest, requests.isShowSql()); action.run(); @@ -207,7 +207,7 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { } - protected <R extends AbstractSqlRequest, A extends AbstractSqlAction<R>> A createAction(R request) { + protected <R extends AbstractSqlRequest, A extends AbstractSqlAction<R>> A createAction(R request, boolean showSql) { Objects.requireNonNull(request, "Request can't be null"); Class<A> actionType = ACTION_MAPPING.get(request.getClass()); @@ -215,12 +215,12 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { Constructor<A> constructor; try { - constructor = actionType.getConstructor(request.getClass()); + constructor = actionType.getConstructor(request.getClass(), boolean.class); } catch (NoSuchMethodException e) { throw new TopiaException(e); } try { - return constructor.newInstance(request); + return constructor.newInstance(request, showSql); } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { throw new TopiaException(e); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java index 3364f08..9d3772e 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java @@ -36,8 +36,8 @@ import java.sql.SQLException; */ public abstract class AbstractSchemaAction<R extends AbstractSchemaRequest> extends AbstractSqlAction<R> { - protected AbstractSchemaAction(R request) { - super(request); + protected AbstractSchemaAction(R request, boolean showSql) { + super(request, showSql); } protected abstract String produceSql(Class<? extends Dialect> dialectType, Path temporaryDirectory) throws IOException; diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java index 4bd8a0e..397687c 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java @@ -31,7 +31,6 @@ import org.nuiton.topia.persistence.TopiaPersistenceContext; import org.nuiton.topia.persistence.internal.AbstractTopiaPersistenceContext; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcHelper; -import org.nuiton.topia.persistence.support.TopiaSqlWork; import org.nuiton.util.TimeLog; import java.io.Closeable; @@ -54,10 +53,9 @@ import java.util.Set; public abstract class AbstractSqlAction<R extends AbstractSqlRequest> implements Runnable, Closeable { protected static final TimeLog TIME_LOG = new TimeLog(AbstractSqlAction.class, 50L, 100L); - /** - * Logger. - */ + /** Logger. */ private static final Log log = LogFactory.getLog(AbstractSqlAction.class); + protected final R request; protected final ImmutableSet<Closeable> closeables; @@ -72,10 +70,13 @@ public abstract class AbstractSqlAction<R extends AbstractSqlRequest> implements protected long endTime; + protected final boolean showSql; + private final Set<BlobsContainer.Builder> blobsContainerBuilders = new LinkedHashSet<>(); - protected AbstractSqlAction(R request) { + protected AbstractSqlAction(R request, boolean showSql) { this.request = request; + this.showSql = showSql; this.closeables = ImmutableSet.<Closeable>builder() .add(() -> { @@ -211,10 +212,6 @@ public abstract class AbstractSqlAction<R extends AbstractSqlRequest> implements } - protected void executeSqlWork(TopiaSqlWork sqlWork) { - getSourcePersistenceContext().getSqlSupport().doSqlWork(sqlWork); - } - protected AbstractTopiaPersistenceContext getSourcePersistenceContext() { if (sourcePersistenceContext == null) { sourcePersistenceContext = request.getSourceTopiaApplicationContext().newPersistenceContext(); diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlRequest.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlRequest.java index 177d3d5..e0a7a02 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlRequest.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlRequest.java @@ -23,8 +23,6 @@ package org.nuiton.topia.service.sql.batch.actions; */ import com.google.common.base.Preconditions; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaApplicationContext; import java.io.Writer; @@ -39,11 +37,6 @@ import java.io.Writer; */ public abstract class AbstractSqlRequest { - /** - * Logger. - */ - private static final Log log = LogFactory.getLog(AbstractSqlRequest.class); - protected TopiaApplicationContext sourceTopiaApplicationContext; protected TopiaApplicationContext targetTopiaApplicationContext; diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java index a3ee8bc..ad74fe4 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java @@ -52,13 +52,11 @@ import java.util.stream.Collectors; */ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> extends AbstractSqlAction<R> { - /** - * Logger. - */ + /** Logger. */ private static final Log log = LogFactory.getLog(AbstractTablesAction.class); - protected AbstractTablesAction(R request) { - super(request); + protected AbstractTablesAction(R request, boolean showSql) { + super(request, showSql); } protected abstract TopiaSqlTables getTables(); @@ -73,7 +71,7 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte long startTable = TimeLog.getTime(); TopiaSqlWork sqlWork = new ReadSqlWork(request, table); - executeSqlWork(sqlWork); + getSourcePersistenceContext().getSqlSupport().doSqlWork(sqlWork); TIME_LOG.log(startTable, "Executed on table.", table.getFullyTableName()); @@ -143,6 +141,21 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte } + private static class PreparedStatementWrapper implements AutoCloseable { + private final String sqlCode; + private final PreparedStatement preparedStatement; + + private PreparedStatementWrapper(String sqlCode, PreparedStatement preparedStatement) { + this.sqlCode = sqlCode; + this.preparedStatement = preparedStatement; + } + + @Override + public void close() throws SQLException { + preparedStatement.close(); + } + } + protected class ReadSqlWork implements TopiaSqlWork { private final R request; @@ -156,17 +169,27 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte @Override public void execute(Connection connection) throws SQLException { - try (PreparedStatement readStatement = createReadStatement(table, connection)) { + try (PreparedStatementWrapper readStatementWrapper = createReadStatement(table, connection)) { + + PreparedStatement readStatement = readStatementWrapper.preparedStatement; + + long t0 = TimeLog.getTime(); readStatement.execute(); + TIME_LOG.log(t0, "Read statement", readStatementWrapper.sqlCode); + t0 = TimeLog.getTime(); + executeOnTable(request, table, readStatement); + TIME_LOG.log(t0, "Execute on table", readStatementWrapper.sqlCode); + } } - protected PreparedStatement createReadStatement(TopiaSqlTable table, Connection connection) throws SQLException { + + protected PreparedStatementWrapper createReadStatement(TopiaSqlTable table, Connection connection) throws SQLException { StringBuilder sqlBuilder = new StringBuilder("SELECT " + table.getTableName() + ".*"); @@ -186,14 +209,20 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte } PreparedStatement statement = connection.prepareStatement(sql); + String sqlCode = sql; if (filter) { int index = 1; for (String id : selectArgument.getIds()) { statement.setString(index++, id); } + sqlCode = sql + " -> " + selectArgument.getIds(); + } + if (showSql) { + log.info(sqlCode); + } statement.setFetchSize(request.getReadFetchSize()); - return statement; + return new PreparedStatementWrapper(sqlCode, statement); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java index d2cb2fc..5f87059 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java @@ -23,6 +23,8 @@ package org.nuiton.topia.service.sql.batch.actions; */ import com.google.common.collect.ImmutableSet; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.cfg.Configuration; import org.hibernate.cfg.Environment; @@ -44,10 +46,13 @@ import java.util.Properties; */ public class CreateSchemaAction extends AbstractSchemaAction<CreateSchemaRequest> { + /** Logger */ + private static final Log log = LogFactory.getLog(CreateSchemaAction.class); + public static final String CREATE_SCHEMA_STATEMENT = "CREATE SCHEMA %s;\n"; - public CreateSchemaAction(CreateSchemaRequest request) { - super(request); + public CreateSchemaAction(CreateSchemaRequest request, boolean showSql) { + super(request, showSql); } protected String produceSql(Class<? extends Dialect> dialectType, Path temporaryDirectory) throws IOException { @@ -78,6 +83,11 @@ public class CreateSchemaAction extends AbstractSchemaAction<CreateSchemaRequest } sqlStatements += new String(Files.readAllBytes(sqlScriptFile)); + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sqlStatements); + } + } Files.delete(sqlScriptFile); return sqlStatements; diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java index 7859c13..f668fa7 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java @@ -52,8 +52,8 @@ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest */ private static final Log log = LogFactory.getLog(DeleteTablesAction.class); - public DeleteTablesAction(DeleteTablesRequest request) { - super(request); + public DeleteTablesAction(DeleteTablesRequest request, boolean showSql) { + super(request, showSql); } @Override @@ -113,7 +113,11 @@ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest String sql = String.format(deleteStatementSql, topiaId); writer.append(sql); - + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sql); + } + } } catch (IOException e) { throw new TopiaException("Could not deleteRow", e); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java index c50fda4..8153c6e 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java @@ -24,6 +24,8 @@ package org.nuiton.topia.service.sql.batch.actions; import com.google.common.collect.ImmutableSet; import org.apache.commons.io.output.WriterOutputStream; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.cfg.Configuration; import org.hibernate.cfg.Environment; @@ -44,10 +46,13 @@ import java.util.Properties; */ public class DropSchemaAction extends AbstractSchemaAction<DropSchemaRequest> { + /** Logger */ + private static final Log log = LogFactory.getLog(DropSchemaAction.class); + public static final String DROP_SCHEMA_STATEMENT = "\nDROP SCHEMA %s;"; - public DropSchemaAction(DropSchemaRequest request) { - super(request); + public DropSchemaAction(DropSchemaRequest request, boolean showSql) { + super(request, showSql); } @Override @@ -82,7 +87,11 @@ public class DropSchemaAction extends AbstractSchemaAction<DropSchemaRequest> { sqlContent += String.format(DROP_SCHEMA_STATEMENT, schemaName); } } - + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sqlContent); + } + } return sqlContent; } catch (HibernateException eee) { diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java index d7b2096..5a2954f 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java @@ -62,8 +62,8 @@ public class ReplicateTablesAction extends AbstractTablesAction<ReplicateTablesR */ private static final Log log = LogFactory.getLog(ReplicateTablesAction.class); - public ReplicateTablesAction(ReplicateTablesRequest request) { - super(request); + public ReplicateTablesAction(ReplicateTablesRequest request, boolean showSql) { + super(request, showSql); } @Override @@ -203,7 +203,7 @@ public class ReplicateTablesAction extends AbstractTablesAction<ReplicateTablesR if (columnValue == null) { continue; } - + InputStream stream; int size; if (columnValue instanceof Long) { diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java index 1b5202e..4eea197 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java @@ -53,8 +53,8 @@ public class UpdateTablesAction extends AbstractTablesAction<UpdateTablesRequest */ private static final Log log = LogFactory.getLog(UpdateTablesAction.class); - public UpdateTablesAction(UpdateTablesRequest request) { - super(request); + public UpdateTablesAction(UpdateTablesRequest request, boolean showSql) { + super(request, showSql); } protected TopiaSqlTables getTables() { @@ -121,7 +121,11 @@ public class UpdateTablesAction extends AbstractTablesAction<UpdateTablesRequest String arguments = generateArguments(columnNames, readResultSet); String sql = String.format(updateStatementSql, arguments, topiaId); writer.append(sql); - + if (showSql) { + if (log.isInfoEnabled()) { + log.info(sql + " -> " + arguments); + } + } } catch (IOException e) { throw new RuntimeException("Could not updateRow", e); } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTablesFactory.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTablesFactory.java index 8202553..a1d30d2 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTablesFactory.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTablesFactory.java @@ -43,9 +43,7 @@ import java.util.Set; */ public class TopiaSqlTablesFactory { - /** - * Logger. - */ + /** Logger. */ private static final Log log = LogFactory.getLog(TopiaSqlTablesFactory.class); protected final TopiaMetadataModel model; @@ -114,7 +112,7 @@ public class TopiaSqlTablesFactory { boolean added = dones.add(metadataEntity); if (added) { - log.info("E → " + metadataEntity.getType()); + log.debug("E → " + metadataEntity.getType()); TopiaEntityEnum entityEnum = entityEnumProvider.getEntityEnum(metadataEntity.getType()); builder = (builder == null ? TopiaSqlTables.builder(metadataModel, metadataEntity) : builder).addMainTable(entityEnum); @@ -127,7 +125,7 @@ public class TopiaSqlTablesFactory { public void visitEntiyEnd(TopiaMetadataModel metadataModel, TopiaMetadataEntity metadataEntity) { if (dones.contains(metadataEntity)) { - log.info("E ← " + metadataEntity.getType()); + log.debug("E ← " + metadataEntity.getType()); } } @@ -139,7 +137,7 @@ public class TopiaSqlTablesFactory { TopiaEntityEnum entityEnum = entityEnumProvider.getEntityEnum(propertyType.getType()); boolean withShell = propertyType.withShell(); - log.info(metadataEntity.getType() + "/" + propertyName + "→" + propertyType.getType() + " (withShell: " + withShell + ")"); + log.debug(metadataEntity.getType() + "/" + propertyName + "→" + propertyType.getType() + " (withShell: " + withShell + ")"); if (withShell) { builder = builder.addAndEnterReverseJoinTable(entityEnum); @@ -157,7 +155,7 @@ public class TopiaSqlTablesFactory { TopiaEntityEnum entityEnum = entityEnumProvider.getEntityEnum(propertyType.getType()); boolean withShell = propertyType.withShell(); - log.info(metadataEntity.getType() + "/" + propertyName + "→" + propertyType.getType() + " (withShell: " + withShell + ")"); + log.debug(metadataEntity.getType() + "/" + propertyName + "→" + propertyType.getType() + " (withShell: " + withShell + ")"); if (withShell) { builder = builder.addAndEnterJoinTable(entityEnum); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.