This is an automated email from the git hooks/post-receive script. New change to branch feature/3860_introduce_topiasqlbatchsupport in repository topia. See http://git.nuiton.org/topia.git from e57b090 Add TopiaSqlBatchService and his default implementation new a70e884 Add a configuration object for Topia Sql batch service and use it The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit a70e884dc8e2947e968f38040ffefc140b01586f Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Jan 5 20:10:16 2016 +0100 Add a configuration object for Topia Sql batch service and use it Summary of changes: .../topia/service/sql/batch/SqlRequests.java | 2 +- .../service/sql/batch/TopiaSqlBatchService.java | 2 + .../batch/TopiaSqlBatchServiceConfiguration.java | 34 +++++++++++++++++ .../sql/batch/TopiaSqlBatchServiceImpl.java | 43 ++++++++++++++++++++-- .../sql/batch/actions/AbstractTablesAction.java | 2 +- .../sql/batch/actions/AbstractTablesRequest.java | 35 +++++++++++++----- .../sql/batch/actions/DeleteTablesAction.java | 4 +- .../sql/batch/actions/ReplicateTablesAction.java | 4 +- .../sql/batch/actions/UpdateTablesAction.java | 4 +- 9 files changed, 109 insertions(+), 21 deletions(-) create mode 100644 topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceConfiguration.java -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/3860_introduce_topiasqlbatchsupport in repository topia. See http://git.nuiton.org/topia.git commit a70e884dc8e2947e968f38040ffefc140b01586f Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Jan 5 20:10:16 2016 +0100 Add a configuration object for Topia Sql batch service and use it --- .../topia/service/sql/batch/SqlRequests.java | 2 +- .../service/sql/batch/TopiaSqlBatchService.java | 2 + .../batch/TopiaSqlBatchServiceConfiguration.java | 34 +++++++++++++++++ .../sql/batch/TopiaSqlBatchServiceImpl.java | 43 ++++++++++++++++++++-- .../sql/batch/actions/AbstractTablesAction.java | 2 +- .../sql/batch/actions/AbstractTablesRequest.java | 35 +++++++++++++----- .../sql/batch/actions/DeleteTablesAction.java | 4 +- .../sql/batch/actions/ReplicateTablesAction.java | 4 +- .../sql/batch/actions/UpdateTablesAction.java | 4 +- 9 files changed, 109 insertions(+), 21 deletions(-) diff --git a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java index f6f3286..b67afe4 100644 --- a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java +++ b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/SqlRequests.java @@ -386,7 +386,7 @@ public class SqlRequests implements Iterable<AbstractSqlRequest> { } public B setFetchSize(int fetchSize) { - delegate.setFetchSize(fetchSize); + delegate.setReadFetchSize(fetchSize); return returnThis(); } diff --git a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchService.java b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchService.java index 3f895ab..3e97c14 100644 --- a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchService.java +++ b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchService.java @@ -37,6 +37,8 @@ import org.nuiton.topia.service.sql.batch.actions.UpdateTablesRequest; */ public interface TopiaSqlBatchService extends TopiaService { + TopiaSqlBatchServiceConfiguration getConfiguration(); + SqlRequests.Builder requestBuilder(); CreateSchemaRequest.Builder createSchemaRequestBuilder(); diff --git a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceConfiguration.java b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceConfiguration.java new file mode 100644 index 0000000..1a1f7fa --- /dev/null +++ b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceConfiguration.java @@ -0,0 +1,34 @@ +package org.nuiton.topia.service.sql.batch; + +/** + * Created on 05/01/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class TopiaSqlBatchServiceConfiguration { + + public static final String PROPERTY_READ_FETCH_SIZE = "readFetchSize"; + public static final String PROPERTY_WRITE_BATCH_SIZE = "writeBatchSize"; + public static final int DEFAULT_READ_FETCH_SIZE = 1000; + public static final int DEFAULT_WRITE_BATCH_SIZE = 1000; + + protected int readFetchSize = DEFAULT_READ_FETCH_SIZE; + + protected int writeBatchSize = DEFAULT_WRITE_BATCH_SIZE; + + public int getReadFetchSize() { + return readFetchSize; + } + + public int getWriteBatchSize() { + return writeBatchSize; + } + + protected void setReadFetchSize(int readFetchSize) { + this.readFetchSize = readFetchSize; + } + + protected void setWriteBatchSize(int writeBatchSize) { + this.writeBatchSize = writeBatchSize; + } +} diff --git a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java index 1ea5fd2..5bf651a 100644 --- a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java +++ b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java @@ -60,11 +60,29 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { .put(UpdateTablesRequest.class, UpdateTablesAction.class) .put(DeleteTablesRequest.class, DeleteTablesAction.class) .build(); - private TopiaApplicationContext topiaApplicationContext; + + protected TopiaApplicationContext topiaApplicationContext; + + protected TopiaSqlBatchServiceConfiguration configuration; @Override public void initTopiaService(TopiaApplicationContext topiaApplicationContext, Map<String, String> serviceConfiguration) { + this.topiaApplicationContext = topiaApplicationContext; + this.configuration = new TopiaSqlBatchServiceConfiguration(); + + String readFetchSizeStr = serviceConfiguration.get(TopiaSqlBatchServiceConfiguration.PROPERTY_READ_FETCH_SIZE); + int readFetchSize = readFetchSizeStr != null + ? Integer.valueOf(readFetchSizeStr) + : TopiaSqlBatchServiceConfiguration.DEFAULT_READ_FETCH_SIZE; + configuration.setReadFetchSize(readFetchSize); + + String writeBatchSizeStr = serviceConfiguration.get(TopiaSqlBatchServiceConfiguration.PROPERTY_WRITE_BATCH_SIZE); + int writeBatchSize = writeBatchSizeStr == null + ? TopiaSqlBatchServiceConfiguration.DEFAULT_WRITE_BATCH_SIZE + : Integer.valueOf(writeBatchSizeStr); + configuration.setWriteBatchSize(writeBatchSize); + } @Override @@ -73,6 +91,11 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { } @Override + public TopiaSqlBatchServiceConfiguration getConfiguration() { + return configuration; + } + + @Override public SqlRequests.Builder requestBuilder() { return SqlRequests.builder().from(topiaApplicationContext); } @@ -89,17 +112,29 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { @Override public ReplicateTablesRequest.Builder replicateTablesRequestBuilder() { - return ReplicateTablesRequest.builder().from(topiaApplicationContext); + return ReplicateTablesRequest + .builder() + .from(topiaApplicationContext) + .setReadFetchSize(configuration.getReadFetchSize()) + .setWriteBatchSize(configuration.getWriteBatchSize()); } @Override public UpdateTablesRequest.Builder updateTablesRequestBuilder() { - return UpdateTablesRequest.builder().from(topiaApplicationContext); + return UpdateTablesRequest + .builder() + .from(topiaApplicationContext) + .setReadFetchSize(configuration.getReadFetchSize()) + .setWriteBatchSize(configuration.getWriteBatchSize()); } @Override public DeleteTablesRequest.Builder deleteTablesRequestBuilder() { - return DeleteTablesRequest.builder().from(topiaApplicationContext); + return DeleteTablesRequest + .builder() + .from(topiaApplicationContext) + .setReadFetchSize(configuration.getReadFetchSize()) + .setWriteBatchSize(configuration.getWriteBatchSize()); } @Override diff --git a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java index 02ece9e..471f026 100644 --- a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java +++ b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java @@ -204,7 +204,7 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte statement.setString(index++, id); } } - statement.setFetchSize(request.getFetchSize()); + statement.setFetchSize(request.getReadFetchSize()); return statement; } diff --git a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesRequest.java b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesRequest.java index 9edad80..82cadac 100644 --- a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesRequest.java +++ b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesRequest.java @@ -24,6 +24,7 @@ package org.nuiton.topia.service.sql.batch.actions; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.service.sql.batch.TopiaSqlBatchServiceConfiguration; import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTables; /** @@ -36,23 +37,33 @@ import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTables; */ public abstract class AbstractTablesRequest extends AbstractSqlRequest { - public static final int DEFAULT_FETCH_SIZE = 100; /** * Logger. */ private static final Log log = LogFactory.getLog(AbstractTablesRequest.class); - protected int fetchSize; + + protected int readFetchSize; + + protected int writeBatchSize; protected TopiaSqlTableSelectArgument selectArgument; protected TopiaSqlTables tables; - public int getFetchSize() { - return fetchSize; + public int getReadFetchSize() { + return readFetchSize; } - public void setFetchSize(int fetchSize) { - this.fetchSize = fetchSize; + public void setReadFetchSize(int readFetchSize) { + this.readFetchSize = readFetchSize; + } + + public int getWriteBatchSize() { + return writeBatchSize; + } + + public void setWriteBatchSize(int writeBatchSize) { + this.writeBatchSize = writeBatchSize; } public TopiaSqlTableSelectArgument getSelectArgument() { @@ -83,7 +94,8 @@ public abstract class AbstractTablesRequest extends AbstractSqlRequest { protected AbstractTablesRequestBuilder(R sqlActionRequest) { super(sqlActionRequest); - setFetchSize(DEFAULT_FETCH_SIZE); + setReadFetchSize(TopiaSqlBatchServiceConfiguration.DEFAULT_READ_FETCH_SIZE); + setWriteBatchSize(TopiaSqlBatchServiceConfiguration.DEFAULT_WRITE_BATCH_SIZE); } public B setTables(TopiaSqlTables tables) { @@ -91,8 +103,13 @@ public abstract class AbstractTablesRequest extends AbstractSqlRequest { return returnThis(); } - public B setFetchSize(int fetchSize) { - request.setFetchSize(fetchSize); + public B setReadFetchSize(int readFetchSize) { + request.setReadFetchSize(readFetchSize); + return returnThis(); + } + + public B setWriteBatchSize(int writeBatchSize) { + request.setWriteBatchSize(writeBatchSize); return returnThis(); } diff --git a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java index f703ec8..20e2ddb 100644 --- a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java +++ b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java @@ -80,7 +80,7 @@ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest } - int fetchSize = request.getFetchSize(); + int writeBatchSize = request.getWriteBatchSize(); String tableName = table.getFullyTableName(); long index = 0; @@ -113,7 +113,7 @@ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest } - if ((++index % fetchSize) == 0) { + if ((++index % writeBatchSize) == 0) { flush(writeStatement, writer, tableName, index); } diff --git a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java index 537b3c5..4f1c911 100644 --- a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java +++ b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java @@ -76,7 +76,7 @@ public class ReplicateTablesAction extends AbstractTablesAction<ReplicateTablesR } - int fetchSize = request.getFetchSize(); + int writeBatchSize = request.getWriteBatchSize(); String tableName = table.getFullyTableName(); long index = 0; @@ -111,7 +111,7 @@ public class ReplicateTablesAction extends AbstractTablesAction<ReplicateTablesR } - if ((++index % fetchSize) == 0) { + if ((++index % writeBatchSize) == 0) { flush(writeStatement, writer, tableName, index); } diff --git a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java index edf4bf0..4da342c 100644 --- a/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java +++ b/topia-service-sql-batch/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java @@ -86,7 +86,7 @@ public class UpdateTablesAction extends AbstractTablesAction<UpdateTablesRequest } - int fetchSize = request.getFetchSize(); + int writeBatchSize = request.getWriteBatchSize(); String tableName = table.getFullyTableName(); long index = 0; @@ -125,7 +125,7 @@ public class UpdateTablesAction extends AbstractTablesAction<UpdateTablesRequest } - if ((++index % fetchSize) == 0) { + if ((++index % writeBatchSize) == 0) { flush(writeStatement, writer, tableName, index); } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm