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 7a923bfe42ef7436cac96e64cb2a07e7553038a7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 16:38:54 2016 +0100 Le transfert de 4 nouvelles marées de droite à gauche n'aboutit pas (Fixes #8887) --- entities/pom.xml | 20 ++++++++--- .../fr/ird/observe/ObserveTopiaConfiguration.java | 16 ++++++--- pom.xml | 6 ++-- topia-extension/pom.xml | 8 +++-- .../sql/batch/TopiaSqlBatchServiceImpl.java | 39 +++++++++++----------- .../sql/batch/actions/AbstractSqlAction.java | 2 +- .../sql/batch/actions/ReplicateTablesAction.java | 22 +++++++++--- 7 files changed, 75 insertions(+), 38 deletions(-) diff --git a/entities/pom.xml b/entities/pom.xml index 40ee092..10054d5 100644 --- a/entities/pom.xml +++ b/entities/pom.xml @@ -22,7 +22,8 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> @@ -101,9 +102,17 @@ <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> + </dependency--> + <dependency> + <groupId>com.zaxxer</groupId> + <artifactId>HikariCP</artifactId> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-hikaricp</artifactId> </dependency> <!-- test --> @@ -182,12 +191,13 @@ <phase>generate-sources</phase> <configuration> <target> - <copy verbose="true" failonerror="true" overwrite="true" filtering="true" todir="${project.build.directory}/xmi"> + <copy verbose="true" failonerror="true" overwrite="true" filtering="true" + todir="${project.build.directory}/xmi"> <filterset> - <filter value="${observe.model.version}" token="observe.model.version" /> + <filter value="${observe.model.version}" token="observe.model.version"/> </filterset> <fileset dir="${basedir}/src/main/xmi"> - <include name="*.ini" /> + <include name="*.ini"/> </fileset> </copy> </target> diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java index 939cbd9..80293b7 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 org.hibernate.hikaricp.internal.HikariCPConnectionProvider; import org.nuiton.topia.persistence.BeanTopiaConfiguration; import org.nuiton.topia.persistence.HibernateAvailableSettings; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; @@ -45,10 +46,17 @@ public class ObserveTopiaConfiguration extends BeanTopiaConfiguration { if (showSql) { hibernateExtraConfiguration.put("hibernate.show_sql", Boolean.TRUE.toString()); } - hibernateExtraConfiguration.put(HibernateAvailableSettings.CONNECTION_PROVIDER, "org.hibernate.c3p0.internal.C3P0ConnectionProvider"); - hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_SIZE, "500"); - hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_STATEMENTS, "500"); - hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_TIMEOUT, "100"); + + hibernateExtraConfiguration.put(HibernateAvailableSettings.CONNECTION_PROVIDER, HikariCPConnectionProvider.class.getName()); + hibernateExtraConfiguration.put("hibernate.hikari.minimumIdle", "2"); + hibernateExtraConfiguration.put("hibernate.hikari.maximumPoolSize", "20"); + hibernateExtraConfiguration.put("hibernate.hikari.autoCommit", "false"); + hibernateExtraConfiguration.put("hibernate.hikari.registerMbeans", "true"); + +// hibernateExtraConfiguration.put(HibernateAvailableSettings.CONNECTION_PROVIDER, "org.hibernate.c3p0.internal.C3P0ConnectionProvider"); +// hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_SIZE, "500"); +// hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_STATEMENTS, "500"); +// hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_TIMEOUT, "100"); } public boolean isH2Configuration() { diff --git a/pom.xml b/pom.xml index 958e6ce..6c3a5bf 100644 --- a/pom.xml +++ b/pom.xml @@ -164,14 +164,14 @@ <eugenePluginVersion>3.0-alpha-10</eugenePluginVersion> <processorPluginVersion>1.3</processorPluginVersion> - <topiaVersion>3.2-SNAPSHOT</topiaVersion> - <jaxxVersion>2.35</jaxxVersion> + <topiaVersion>3.2</topiaVersion> + <jaxxVersion>2.36</jaxxVersion> <nuitonI18nVersion>3.6.2</nuitonI18nVersion> <nuitonValidatorVersion>3.0.1</nuitonValidatorVersion> <nuitonUtilsVersion>3.0-rc-16</nuitonUtilsVersion> <nuitonConfigVersion>3.1</nuitonConfigVersion> <xworkVersion>2.3.31</xworkVersion> - <hibernateVersion>4.3.11.Final</hibernateVersion> + <hibernateVersion>5.1.3.Final</hibernateVersion> <sl4jVersion>1.7.21</sl4jVersion> <swingXVersion>1.6.5-1</swingXVersion> <reflectionsVersion>0.9.10</reflectionsVersion> diff --git a/topia-extension/pom.xml b/topia-extension/pom.xml index 41c2d0e..2e5d10d 100644 --- a/topia-extension/pom.xml +++ b/topia-extension/pom.xml @@ -82,11 +82,15 @@ </dependency> <dependency> + <groupId>com.zaxxer</groupId> + <artifactId>HikariCP</artifactId> + </dependency> + + <!--dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> - <version>0.9.5.2</version> <scope>compile</scope> - </dependency> + </dependency--> <!-- test --> <dependency> 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 a69332f..683d999 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,32 +158,33 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { AbstractSqlRequest sqlRequest = sqlRequestIterator.next(); - AbstractSqlAction<?> action = createAction(sqlRequest, requests.isShowSql()); + try (AbstractSqlAction<?> action = createAction(sqlRequest, requests.isShowSql())) { - action.run(); + action.run(); - Optional<Set<BlobsContainer.Builder>> optionalBlobsContainers = action.getBlobsContainersBuilder(); - if (optionalBlobsContainers.isPresent()) { - Set<BlobsContainer.Builder> blobsContainers = optionalBlobsContainers.get(); + Optional<Set<BlobsContainer.Builder>> optionalBlobsContainers = action.getBlobsContainersBuilder(); + if (optionalBlobsContainers.isPresent()) { + Set<BlobsContainer.Builder> blobsContainers = optionalBlobsContainers.get(); - for (BlobsContainer.Builder blobsContainerBuilder : blobsContainers) { - String tableName = blobsContainerBuilder.getTableName(); - String columnName = blobsContainerBuilder.getColumnName(); + for (BlobsContainer.Builder blobsContainerBuilder : blobsContainers) { + String tableName = blobsContainerBuilder.getTableName(); + String columnName = blobsContainerBuilder.getColumnName(); - String key = tableName + "##" + columnName; - if (blobContainersBuilder.containsKey(key)) { - BlobsContainer.Builder blobsContainerBuilder1 = blobContainersBuilder.get(key); - blobsContainerBuilder1.addAllBlob(blobsContainerBuilder.build().getBlobsById()); - } else { - blobContainersBuilder.put(tableName, blobsContainerBuilder); + String key = tableName + "##" + columnName; + if (blobContainersBuilder.containsKey(key)) { + BlobsContainer.Builder blobsContainerBuilder1 = blobContainersBuilder.get(key); + blobsContainerBuilder1.addAllBlob(blobsContainerBuilder.build().getBlobsById()); + } else { + blobContainersBuilder.put(tableName, blobsContainerBuilder); + } } } - } - //FIXME Review transaction management + //FIXME Review transaction management - hasNext = sqlRequestIterator.hasNext(); - if (!hasNext) { - action.commit(); + hasNext = sqlRequestIterator.hasNext(); + if (!hasNext) { + action.commit(); + } } } 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 397687c..b95fc27 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 @@ -179,7 +179,7 @@ public abstract class AbstractSqlAction<R extends AbstractSqlRequest> implements } } if (error != null) { - throw new RuntimeException("Could not close", error); + throw new TopiaException("Could not close", error); } } 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 5a2954f..9c21f61 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 @@ -22,7 +22,7 @@ package org.nuiton.topia.service.sql.batch.actions; * #L% */ -import com.mchange.v2.c3p0.impl.NewProxyConnection; +import com.zaxxer.hikari.pool.HikariProxyConnection; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -212,11 +212,25 @@ public class ReplicateTablesAction extends AbstractTablesAction<ReplicateTablesR if (connection instanceof PgConnection) { pgConnection = (PGConnection) connection; - } else if (connection instanceof NewProxyConnection) { + } +// else if (connection instanceof NewProxyConnection) { +// +// NewProxyConnection connection1 = (NewProxyConnection) connection; +// try { +// Field field = connection1.getClass().getDeclaredField("inner"); +// field.setAccessible(true); +// pgConnection = (PGConnection) field.get(connection1); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// +// } + else if (connection instanceof HikariProxyConnection) { + + HikariProxyConnection connection1 = (HikariProxyConnection) connection; - NewProxyConnection connection1 = (NewProxyConnection) connection; try { - Field field = connection1.getClass().getDeclaredField("inner"); + Field field = connection1.getClass().getSuperclass().getDeclaredField("delegate"); field.setAccessible(true); pgConnection = (PGConnection) field.get(connection1); } catch (Exception e) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.