[topia] branch develop updated (4eaa899 -> cce2f51)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository topia. See http://git.nuiton.org/topia.git from 4eaa899 fixes #3494 Do not generate DDL INDEX when entity is abstract new cce2f51 fix a few Sonar critical issues 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 cce2f51b0c881acba3b6fae6119f078e4fefa2ec Author: Arnaud Thimel <thimel@codelutin.com> Date: Thu Sep 4 14:37:26 2014 +0200 fix a few Sonar critical issues Summary of changes: .../org/nuiton/topia/it/TopiaSchemaHelper.java | 24 ++++++++++++--- .../nuiton/topia/persistence/TopiaEntities.java | 2 +- .../topia/persistence/event/EntityState.java | 19 ++++++++++++ .../topia/persistence/event/TopiaEntityEvent.java | 3 +- .../persistence/internal/AbstractTopiaDao.java | 3 +- .../internal/AbstractTopiaPersistenceContext.java | 1 + .../nuiton/topia/persistence/legacy/Collector.java | 3 +- .../nuiton/topia/persistence/legacy/DBMapping.java | 2 +- .../topia/persistence/util/TopiaEntityHelper.java | 12 ++------ .../topia/persistence/util/TopiaEntityRef.java | 35 ++++++++++++++++++---- .../topia/replication/model/ReplicationModel.java | 6 ++-- .../topia/templates/EntityDaoTransformer.java | 17 ++++++----- .../templates/EntityHibernateMappingGenerator.java | 9 +++--- .../nuiton/topia/templates/TopiaGeneratorUtil.java | 19 ++++++------ .../topia/templates/TopiaTemplateHelper.java | 7 ----- 15 files changed, 108 insertions(+), 54 deletions(-) -- 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 develop in repository topia. See http://git.nuiton.org/topia.git commit cce2f51b0c881acba3b6fae6119f078e4fefa2ec Author: Arnaud Thimel <thimel@codelutin.com> Date: Thu Sep 4 14:37:26 2014 +0200 fix a few Sonar critical issues --- .../org/nuiton/topia/it/TopiaSchemaHelper.java | 24 ++++++++++++--- .../nuiton/topia/persistence/TopiaEntities.java | 2 +- .../topia/persistence/event/EntityState.java | 19 ++++++++++++ .../topia/persistence/event/TopiaEntityEvent.java | 3 +- .../persistence/internal/AbstractTopiaDao.java | 3 +- .../internal/AbstractTopiaPersistenceContext.java | 1 + .../nuiton/topia/persistence/legacy/Collector.java | 3 +- .../nuiton/topia/persistence/legacy/DBMapping.java | 2 +- .../topia/persistence/util/TopiaEntityHelper.java | 12 ++------ .../topia/persistence/util/TopiaEntityRef.java | 35 ++++++++++++++++++---- .../topia/replication/model/ReplicationModel.java | 6 ++-- .../topia/templates/EntityDaoTransformer.java | 17 ++++++----- .../templates/EntityHibernateMappingGenerator.java | 9 +++--- .../nuiton/topia/templates/TopiaGeneratorUtil.java | 19 ++++++------ .../topia/templates/TopiaTemplateHelper.java | 7 ----- 15 files changed, 108 insertions(+), 54 deletions(-) diff --git a/topia-it/src/main/java/org/nuiton/topia/it/TopiaSchemaHelper.java b/topia-it/src/main/java/org/nuiton/topia/it/TopiaSchemaHelper.java index 794d566..3dbb327 100644 --- a/topia-it/src/main/java/org/nuiton/topia/it/TopiaSchemaHelper.java +++ b/topia-it/src/main/java/org/nuiton/topia/it/TopiaSchemaHelper.java @@ -24,6 +24,8 @@ package org.nuiton.topia.it; * #L% */ +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaConfigurationConstants; import java.sql.CallableStatement; @@ -39,6 +41,20 @@ import java.util.Map; */ public class TopiaSchemaHelper { + private static final Log log = LogFactory.getLog(TopiaSchemaHelper.class); + + protected static void closeQuietly(AutoCloseable autoCloseable) { + if (autoCloseable != null) { + try { + autoCloseable.close(); + } catch (Exception eee) { + if (log.isWarnEnabled()) { + log.warn("Unable to close: " + eee.getMessage() , eee); + } + } + } + } + /** * Create the physical schema. * @@ -49,18 +65,18 @@ public class TopiaSchemaHelper { */ public static void createSchema(Map<String, String> config, String schemaName) throws Exception { Connection connection = null; + CallableStatement callableStatement = null; try { //DriverManager.registerDriver(new Driver()); connection = DriverManager.getConnection( config.get(TopiaConfigurationConstants.CONFIG_URL), config.get(TopiaConfigurationConstants.CONFIG_USER), config.get(TopiaConfigurationConstants.CONFIG_PASS)); - CallableStatement callableStatement = connection.prepareCall("create schema " + schemaName); + callableStatement = connection.prepareCall("create schema " + schemaName); callableStatement.execute(); } finally { - if (connection != null && !connection.isClosed()) { - connection.close(); - } + closeQuietly(callableStatement); + closeQuietly(connection); } } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntities.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntities.java index 9496b03..340ea7c 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntities.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaEntities.java @@ -57,7 +57,7 @@ public class TopiaEntities { * @param id the expected topiaId * @return the created Predicate */ - protected static Predicate<TopiaEntity> entityHasId(String id) { + public static Predicate<TopiaEntity> entityHasId(String id) { Predicate<String> equalsPredicate = Predicates.equalTo(id); Predicate<TopiaEntity> result = Predicates.compose(equalsPredicate, GET_TOPIA_ID); return result; diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/event/EntityState.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/event/EntityState.java index 84af244..08f3487 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/event/EntityState.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/event/EntityState.java @@ -164,4 +164,23 @@ public class EntityState implements Comparable<EntityState> { return state - o.state; } + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + EntityState that = (EntityState) o; + + return state == that.state; + } + + @Override + public int hashCode() { + return state; + } + } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/event/TopiaEntityEvent.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/event/TopiaEntityEvent.java index 5534000..17a1b14 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/event/TopiaEntityEvent.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/event/TopiaEntityEvent.java @@ -24,6 +24,7 @@ package org.nuiton.topia.persistence.event; * #L% */ +import org.apache.commons.lang3.ArrayUtils; import org.nuiton.topia.persistence.TopiaPersistenceContext; import org.nuiton.topia.persistence.TopiaEntity; @@ -45,7 +46,7 @@ public class TopiaEntityEvent extends EventObject { public TopiaEntityEvent(TopiaPersistenceContext source, TopiaEntity entity, Object[] state) { super(source); this.entity = entity; - this.state = state; + this.state = ArrayUtils.clone(state); } public TopiaEntity getEntity() { diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java index 3cb4b53..c6e72ff 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java @@ -69,6 +69,7 @@ import org.nuiton.util.pagination.PaginationResult; import java.lang.reflect.InvocationTargetException; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -199,7 +200,7 @@ public abstract class AbstractTopiaDao<E extends TopiaEntity> implements TopiaDa @Override public PaginationResult<E> initPagination(int pageSize) { - PaginationResult<E> result = initPagination(newFromClause(), null, pageSize); + PaginationResult<E> result = initPagination(newFromClause(), new HashMap<String, Object>(), pageSize); return result; } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaPersistenceContext.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaPersistenceContext.java index 05337c6..8bbd93b 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaPersistenceContext.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaPersistenceContext.java @@ -276,6 +276,7 @@ public abstract class AbstractTopiaPersistenceContext implements TopiaPersistenc Preconditions.checkArgument(entityClass != null, "The method 'getDao' requires a non null 'entityClass' parameter"); SessionFactory hibernateFactory = hibernateSupport.getHibernateFactory(); + Preconditions.checkState(hibernateFactory != null, "The Hibernate SessionFactory is null, please initialize"); if (hibernateFactory.getClassMetadata(entityClass) == null && hibernateFactory.getClassMetadata(entityClass.getName() + "Impl") == null && hibernateFactory.getClassMetadata(entityClass.getName() + "Abstract") == null) { diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/legacy/Collector.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/legacy/Collector.java index 0eb71c6..6e10159 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/legacy/Collector.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/legacy/Collector.java @@ -24,6 +24,7 @@ package org.nuiton.topia.persistence.legacy; * #L% */ +import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaException; @@ -62,7 +63,7 @@ public abstract class Collector<R> { public Collector(CollectorVisitor visitor, TopiaEntityEnum[] contracts) { this.visitor = visitor == null ? new CollectorVisitor() : visitor; this.visitor.setCollector(this); - this.contracts = contracts; + this.contracts = ArrayUtils.clone(contracts); } public Collector(TopiaEntityEnum[] contracts) { diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/legacy/DBMapping.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/legacy/DBMapping.java index 725d3d1..fd40d3a 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/legacy/DBMapping.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/legacy/DBMapping.java @@ -343,7 +343,7 @@ public abstract class DBMapping { @Override public BigInteger prepareResult(ResultSet set) throws SQLException { - return set.getBigDecimal(0).unscaledValue(); // TODO AThimel 23/11/13 Don't know if it may work or not + return set.getBigDecimal(1).unscaledValue(); // TODO AThimel 23/11/13 Don't know if it may work or not } }); diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityHelper.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityHelper.java index 144ca29..f5adcf8 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityHelper.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityHelper.java @@ -28,6 +28,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Iterables; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.TopiaPersistenceContext; import org.nuiton.topia.persistence.TopiaDao; @@ -997,18 +998,11 @@ public class TopiaEntityHelper { if (localeIdList.contains(refId)) { // id existant sur le storage locale - TopiaEntity localeEntity = null; // il se peut que les listes ne soient pas triées sur le même // ordre, on parcourt donc la liste cible pour retrouver // l'entité cible - for (TopiaEntity e : locale) { - if (e.getTopiaId().equals(refId)) { - localeEntity = e; - break; - } - } - boolean wasModified = referentielEntity.getTopiaVersion() > - localeEntity.getTopiaVersion(); + TopiaEntity localeEntity = Iterables.find(locale, TopiaEntities.entityHasId(refId)); + boolean wasModified = referentielEntity.getTopiaVersion() > localeEntity.getTopiaVersion(); if (wasModified) { result.get(DiffState.MODIFIED).add(refId); diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityRef.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityRef.java index afd85bc..d53a5f4 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityRef.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityRef.java @@ -24,8 +24,11 @@ package org.nuiton.topia.persistence.util; * #L% */ +import org.apache.commons.lang3.ArrayUtils; import org.nuiton.topia.persistence.TopiaEntity; +import com.google.common.base.Preconditions; + /** * Definition of a reference of an entity from a root entity. * <p/> @@ -41,21 +44,22 @@ public class TopiaEntityRef implements Comparable<TopiaEntityRef> { public static final String SEPARATOR = "/"; /** the root entity */ - TopiaEntity root; + protected TopiaEntity root; /** the entity ref */ - TopiaEntity ref; + protected TopiaEntity ref; /** the jxpath used to acces ref from root */ - String accessorExpression; + protected String accessorExpression; - TopiaEntity[] path; + protected TopiaEntity[] path; public TopiaEntityRef(TopiaEntity root, TopiaEntity ref, String accessorExpression, TopiaEntity[] path) { + Preconditions.checkNotNull(ref); this.root = root; this.ref = ref; this.accessorExpression = accessorExpression; - this.path = path; + this.path = ArrayUtils.clone(path); } public TopiaEntity getRoot() { @@ -98,4 +102,25 @@ public class TopiaEntityRef implements Comparable<TopiaEntityRef> { public int compareTo(TopiaEntityRef o) { return ref.getTopiaId().compareTo(o.getRef().getTopiaId()); } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + TopiaEntityRef that = (TopiaEntityRef) o; + + return ref.equals(that.ref); + + } + + @Override + public int hashCode() { + return ref.hashCode(); + } + } diff --git a/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationModel.java b/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationModel.java index 3ced3ba..0855f2d 100644 --- a/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationModel.java +++ b/topia-service-replication/src/main/java/org/nuiton/topia/replication/model/ReplicationModel.java @@ -38,8 +38,10 @@ import org.nuiton.topia.replication.operation.AttachLink; import org.nuiton.topia.replication.operation.DettachAssociation; import org.nuiton.topia.replication.operation.Duplicate; import org.nuiton.topia.replication.operation.LoadLink; +import org.nuiton.util.ArrayUtil; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -88,7 +90,7 @@ public class ReplicationModel { public ReplicationModel(TopiaEntityEnum[] contracts, Set<Class<? extends TopiaEntity>> types, String... topiaIds) { - this.contracts = contracts; + this.contracts = contracts.clone(); this.topiaIds = topiaIds; replicateAll = false; order = new ArrayList<ReplicationNode>(); @@ -105,7 +107,7 @@ public class ReplicationModel { public ReplicationModel(TopiaEntityEnum[] contracts, boolean replicateAll, String... topiaIds) { - this.contracts = contracts; + this.contracts = contracts.clone(); this.topiaIds = topiaIds; this.replicateAll = replicateAll; order = new ArrayList<ReplicationNode>(); diff --git a/topia-templates/src/main/java/org/nuiton/topia/templates/EntityDaoTransformer.java b/topia-templates/src/main/java/org/nuiton/topia/templates/EntityDaoTransformer.java index 70449b6..b522097 100644 --- a/topia-templates/src/main/java/org/nuiton/topia/templates/EntityDaoTransformer.java +++ b/topia-templates/src/main/java/org/nuiton/topia/templates/EntityDaoTransformer.java @@ -27,7 +27,9 @@ package org.nuiton.topia.templates; /*{generator option: parentheses = false}*/ /*{generator option: writeString = +}*/ +import com.google.common.base.Joiner; import com.google.common.base.Strings; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -1179,21 +1181,20 @@ public class EntityDaoTransformer extends ObjectModelTransformerToJava { ObjectModelOperation createByNotNull = addOperation(result, "createByNotNull", "E", ObjectModelJavaModifier.PUBLIC); - String createProperties = ""; -// String params = ""; String clazzName = clazz.getName(); + List<String> createPropertiesList = Lists.newArrayList(); for (ObjectModelAttribute attr : props) { String propName = attr.getName(); // add property as param in both methods addParameter(createByNotNull, attr.getType(), propName); - createProperties += - ", " + clazzName + '.' + getConstantName(propName) + - ", " + propName; - //params += ", " + propName; + // First parameter is the property identifier : <clazzName>.PROPERTY_XXX + createPropertiesList.add(clazzName + '.' + getConstantName(propName)); + + // Second parameter is the property value : <propName> + createPropertiesList.add(propName); } - createProperties = createProperties.substring(2); - //params = params.substring(2); + String createProperties = Joiner.on(", ").join(createPropertiesList); setOperationBody(createByNotNull, "" /*{ diff --git a/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java b/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java index 4a873fd..573f270 100644 --- a/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java +++ b/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java @@ -581,14 +581,13 @@ public class EntityHibernateMappingGenerator extends ObjectModelGenerator { columnAttributes.put(HIBERNATE_ATTRIBUTE_NAME, attrColumn); - String columnAttributesAsString =""; - for (Map.Entry<String, String> entry : - columnAttributes.entrySet()) { + StringBuilder columnAttributesBuilder = new StringBuilder(); + for (Map.Entry<String, String> entry : columnAttributes.entrySet()) { String name = entry.getKey(); String value = entry.getValue(); - columnAttributesAsString += generateFromTagValue(name, value, null); + columnAttributesBuilder.append(generateFromTagValue(name, value, null)); } - columnAttributesAsString = " " + columnAttributesAsString.trim(); + String columnAttributesAsString = " " + columnAttributesBuilder.toString().trim(); /*{<%=optionalAttributes%>> <%=prefix%> <column<%=columnAttributesAsString%>/> <%=prefix%> </property> diff --git a/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaGeneratorUtil.java b/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaGeneratorUtil.java index 0c326fc..4c38e5d 100644 --- a/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaGeneratorUtil.java +++ b/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaGeneratorUtil.java @@ -24,7 +24,10 @@ package org.nuiton.topia.templates; * #L% */ +import com.google.common.base.Joiner; import com.google.common.base.Preconditions; +import com.google.common.collect.Lists; + import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -955,22 +958,20 @@ public class TopiaGeneratorUtil extends JavaGeneratorUtil { @Deprecated public static String getPrimaryKeyAttributesListDeclaration( ObjectModelClass clazz, boolean includeName) { - String attributes = ""; Collection<ObjectModelAttribute> attributeCollection; attributeCollection = getElementsWithStereotype(clazz.getAttributes(), TopiaStereoTypes.STEREOTYPE_PRIMARY_KEY); + List<String> attributes = Lists.newArrayList(); for (ObjectModelAttribute attr : attributeCollection) { - attributes += attr.getType(); + String attribute = attr.getType(); if (includeName) { - attributes += ' ' + attr.getName(); + attribute += ' '; + attribute += attr.getName(); } - attributes += ", "; - } - if (attributes.length() > 0) { - attributes = attributes.substring(0, attributes.length() - 2); - attributes = attributes.substring(0, attributes.length() - 2); + attributes.add(attribute); } - return attributes; + + return Joiner.on(", ").join(attributes); } /** diff --git a/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaTemplateHelper.java b/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaTemplateHelper.java index 2bc5781..94a9642 100644 --- a/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaTemplateHelper.java +++ b/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaTemplateHelper.java @@ -398,15 +398,9 @@ public class TopiaTemplateHelper { return type; } ObjectModelClass clazz = model.getClass(type); - ObjectModelPackage aPackage = model.getPackage(clazz); if (isEntity(clazz)) { //tchemit-2011-09-12 What ever abstract or not, we always use an Impl type += "Impl"; -// if (shouldBeAbstract(clazz)) { -// type += "Abstract"; -// } else { -// type += "Impl"; -// } } return type; } @@ -522,7 +516,6 @@ public class TopiaTemplateHelper { if (!reverse.isNavigable()) { //Il s'agit d'une entity ObjectModelClass clazz = model.getClass(attr.getType()); - ObjectModelPackage aPackage = model.getPackage(clazz); if (clazz != null && isEntity(clazz)) { //Cette classe a des sous-classes dans le modèle for (ObjectModelClass subClass : model.getClasses()) { -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm