r2440 - in trunk: topia-persistence/src/main/java/org/nuiton/topia/event topia-persistence/src/main/java/org/nuiton/topia/framework topia-persistence/src/main/java/org/nuiton/topia/generator topia-persistence/src/main/java/org/nuiton/topia/persistence topia-persistence/src/test/java/org/nuiton/topia/generator topia-persistence/src/test/java/org/nuiton/topiatest/deletetest topia-persistence/src/test/xmi topia-service-migration/src/main/java/org/nuiton/topia/migration topia-service-replication
Author: athimel Date: 2012-05-07 11:40:37 +0200 (Mon, 07 May 2012) New Revision: 2440 Url: http://nuiton.org/repositories/revision/topia/2440 Log: fixes #684 Remove all deprecated code before ToPIA 3.0 Removed: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOImplTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOTransformer.java trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaGeneratorUtilTest.java trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallback.java trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/AttachAssociation.java trunk/topia-service-security/src/test/java/org/nuiton/topia/TestUtils.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionEvent.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImplementor.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaQuery.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaStereoTypes.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaTagValues.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOLegacy.java trunk/topia-persistence/src/test/java/org/nuiton/topiatest/deletetest/DeleteEntityTest.java trunk/topia-persistence/src/test/xmi/topiatest.properties trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationEngine.java trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/TopiaReplicationModelBuilder.java trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/TopiaReplicationOperation.java trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/AttachLink.java trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/DettachAssociation.java trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/Duplicate.java trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/LoadLink.java trunk/topia-service-replication/src/main/resources/META-INF/services/org.nuiton.topia.replication.TopiaReplicationOperation trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractTopiaReplicationServiceTest.java trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplTest.java trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/FakeOperation.java trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UncreatableOperation.java trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UnregistredOperation.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionEvent.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionEvent.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaTransactionEvent.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -97,15 +97,6 @@ return (TopiaContext) super.getSource(); } - /** - * @return the source context that fires the event - * @deprecated since 2.3.4, prefer the overriden {@link #getSource()}. - */ - @Deprecated - public TopiaContext getTopiaContext() { - return getSource(); - } - @Override protected void finalize() throws Throwable { super.finalize(); Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -135,21 +135,6 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ private static final Log log = LogFactory.getLog(TopiaContextImpl.class); - /** @deprecated since 2.5.4 use directly {@link TopiaContextFactory#CONFIG_PERSISTENCE_DIRECTORIES}*/ - @Deprecated - public static final String TOPIA_PERSISTENCE_DIRECTORIES = - TopiaContextFactory.CONFIG_PERSISTENCE_DIRECTORIES; - - /** @deprecated since 2.5.4 use directly {@link TopiaContextFactory#CONFIG_PERSISTENCE_CLASSES}*/ - @Deprecated - public static final String TOPIA_PERSISTENCE_CLASSES = - TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES; - - /** @deprecated since 2.5.4 use directly {@link TopiaContextFactory#CONFIG_PERSISTENCE_PROPERTIES_FILE}*/ - @Deprecated - public static final String TOPIA_PERSISTENCE_PROPERTIES_FILE = - TopiaContextFactory.CONFIG_PERSISTENCE_PROPERTIES_FILE; - /** Le pere de ce context, les contexts initaux n'ont pas de context pere */ protected TopiaContextImplementor parentContext; @@ -384,12 +369,6 @@ return result; } - @Override - public Collection<TopiaService> getAllServices() { - Collection<TopiaService> result = getServices().values(); - return result; - } - /* -------------------- CONTEXT HIERARCHY MANAGMENT ----------------------*/ /** Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImplementor.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImplementor.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImplementor.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -34,7 +34,6 @@ import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Properties; @@ -136,13 +135,6 @@ Map<String, TopiaService> getServices(); - /** - * @return a collection of {@link TopiaService} - * @deprecated since 2.3.4 : useless method, use {@link #getServices()} instead - */ - @Deprecated - Collection<TopiaService> getAllServices(); - List<Class<?>> getPersistenceClasses(); } //TopiaContextImplementor Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaQuery.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaQuery.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaQuery.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -404,22 +404,6 @@ /** * Add an element to the from in the query. Used to add some other data in - * the query. The default separator used is the ", ". - * - * @param str the element to add - * @return the TopiaQuery - * @see #addFrom(Class, String) - * @see #addJoin(String, String, boolean) - * @see #addLeftJoin(String, String, boolean) - * @deprecated since 2.3.4 use correct addFrom or addJoin or addLeftJoin - */ - @Deprecated - public TopiaQuery addFrom(String str) { - return addFrom(FROM_SEPARATOR_DEFAULT, str, null); - } - - /** - * Add an element to the from in the query. Used to add some other data in * the query or for join as specific {@code separator}. * * @param property the property to add @@ -721,16 +705,6 @@ } /** - * @param where Where statement to add - * @return TopiaQuery - * @deprecated since 2.3.4, use {@link #addWhere(String)} instead - */ - @Deprecated - public TopiaQuery add(String where) { - return addWhere(where); - } - - /** * Add a where element to the Query. Could be anything. Parentheses are * added automatically (even if there are not needed). * @@ -765,18 +739,6 @@ } /** - * @param paramName name of the parameter to add - * @param constraint constraint to use - * @param paramValue value of this parameter - * @return TopiaQuery - * @deprecated since 2.3.4, use {@link #addWhere(String, Op, Object)} instead - */ - @Deprecated - public TopiaQuery add(String paramName, Op constraint, Object paramValue) { - return addWhere(paramName, constraint, paramValue); - } - - /** * Add an element to the query. The parameter will be automatically added. * The {@code operator} is needed to determine what type of operation it is. * Ex : add("boat", Op.EQ, boat) means -> boat = :boat. Also if the paramValue @@ -834,18 +796,6 @@ } /** - * @param paramName name of the parameter to add - * @param paramValue value of this parameter - * @return TopiaQuery - * @since 2.3.1 - * @deprecated since 2.3.4, use {@link #addEquals(String, Object...)} instead - */ - @Deprecated - public TopiaQuery add(String paramName, Object... paramValue) { - return addEquals(paramName, paramValue); - } - - /** * Add an element to the query. The parameter will be automatically added. * The default constrainst operation is Op.EQ for EQUALS. Ex : add("boat", * boat) means -> boat = :boat. If you add more than one values, the @@ -911,16 +861,6 @@ } /** - * @param properties map of the properties to add - * @return TopiaQuery - * @deprecated since 2.3.4 use {@link #addEquals(Map)} - */ - @Deprecated - public TopiaQuery add(Map<String, Object> properties) { - return addEquals(properties); - } - - /** * Add a map of properties to the where clause of the query. Each property * will be added to the query with Op.EQ operation, the key in the map is * the property name, and the value is the value of the parameter in the Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -61,15 +61,6 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(TopiaUtil.class); - /** @deprecated since 2.5.3, use now the constant {@link TopiaContextFactory#CONFIG_DEFAULT_SCHEMA}. */ - @Deprecated - public final static String HIBERNATE_DEFAULT_SCHEMA = - TopiaContextFactory.CONFIG_DEFAULT_SCHEMA; - - /** @deprecated since 2.5.3, use the already present {@link TopiaContextImpl#TOPIA_PERSISTENCE_CLASSES}. */ - @Deprecated - public final static String TOPIA_PERSISTENCE_CLASSES = TopiaContextImpl.TOPIA_PERSISTENCE_CLASSES; - /** * Permet de récupérer le fichier de propriété ayant le nom passé en * argument. Deleted: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -1,1027 +0,0 @@ -/* - * #%L - * ToPIA :: Persistence - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package org.nuiton.topia.generator; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.eugene.GeneratorUtil; -import org.nuiton.eugene.java.ObjectModelTransformerToJava; -import org.nuiton.eugene.models.object.ObjectModel; -import org.nuiton.eugene.models.object.ObjectModelAssociationClass; -import org.nuiton.eugene.models.object.ObjectModelAttribute; -import org.nuiton.eugene.models.object.ObjectModelClass; -import org.nuiton.eugene.models.object.ObjectModelClassifier; -import org.nuiton.eugene.models.object.ObjectModelDependency; -import org.nuiton.eugene.models.object.ObjectModelInterface; -import org.nuiton.eugene.models.object.ObjectModelModifier; -import org.nuiton.eugene.models.object.ObjectModelOperation; -import org.nuiton.eugene.models.object.ObjectModelParameter; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaDAOLegacy; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.StringUtil; - -import java.security.Permission; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeMap; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - - -/*{generator option: parentheses = false}*/ -/*{generator option: writeString = +}*/ - -/** - * Created: 13 déc. 2009 - * - * @author tchemit <chemit@codelutin.com> - * @version $Id: DAOAbstractTransformer.java 1960 2010-05-13 17:18:23Z tchemit$ - * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.topia.generator.DAOAbstractTransformer" - * @since 2.3.0 - * @deprecated 2.5.4, prefer use the transformer {@link EntityDAOTransformer} - */ -@Deprecated -public class DAOAbstractTransformer extends ObjectModelTransformerToJava { - - /** Logger. */ - private static final Log log = LogFactory.getLog( - DAOAbstractTransformer.class); - - /** TODO */ - protected Map<ObjectModelClass, Set<ObjectModelClass>> usages; - - /** - * All entities fqn of the model (used to detect if an attribute is not - * an entity). - */ - Set<String> allEntitiesFqn; - - /** - * The class of abstract dao to use. - * @since 2.5 - */ - protected Class<?> daoImplementation; - - /** - * Map of extra operations for DAO. The key of the map is the qualified - * name of the entity relative to the DAO. - */ - Map<String, Collection<ObjectModelOperation>> extraOperations = - new HashMap<String, Collection<ObjectModelOperation>>(); - - @Override - public void transformFromModel(ObjectModel model) { - - usages = TopiaGeneratorUtil.searchDirectUsages(model); - boolean extendLegacyDAO = Boolean.valueOf(model.getTagValue(TopiaTagValues.TAG_USE_LEGACY_DAO)); - if (extendLegacyDAO) { - log.warn("Using a deprecated tag value "+ - TopiaTagValues.TAG_USE_LEGACY_DAO+", prefer use the tag value "+TopiaTagValues.TAG_DAO_IMPLEMENTATION); - daoImplementation = TopiaDAOLegacy.class; - } else { - daoImplementation = TopiaGeneratorUtil.getDAOImplementation(model); - } - - List<ObjectModelClass> allEntities = TopiaGeneratorUtil.getEntityClasses(model, true); - allEntitiesFqn = new HashSet<String>(allEntities.size()); - for (ObjectModelClass entity : allEntities) { - allEntitiesFqn.add(entity.getQualifiedName()); - } - } - - @Override - public void transformFromInterface(ObjectModelInterface interfacez) { - if (!TopiaGeneratorUtil.hasDaoStereotype(interfacez)) { - return; - } - - // Extra operations from <<dao>> interfacez - collectExtraOperations(interfacez); - } - - /** - * EVO #636 : Manage extra operations for DAO from "dao" dependency - * between an interface with stereotype <<dao>> (dependency client) and - * a class with stereotype <<entity>> (dependency supplier). - * - * @param interfacez The interface with <<dao>> stereotype - */ - protected void collectExtraOperations(ObjectModelInterface interfacez) { - ObjectModelDependency dependency = - interfacez.getDependency(TopiaGeneratorUtil.DEPENDENCIES_DAO); - - if (dependency == null) { - if (log.isWarnEnabled()) { - log.warn("Could not find dependency " + - TopiaGeneratorUtil.DEPENDENCIES_DAO + - " but DAO stereotype was placed on the interface " + - interfacez.getName()); - - } - return; - } - ObjectModelClassifier classifier = dependency.getSupplier(); - - if (TopiaGeneratorUtil.isEntity(classifier)) { - - // Only direct operations will be used. No need to have more - // operations. - Collection<ObjectModelOperation> operations = - interfacez.getOperations(); - - if (log.isDebugEnabled()) { - log.debug("add extra operations for DAO"); - } - - extraOperations.put(classifier.getQualifiedName(), operations); - } - } - - @Override - public void transformFromClass(ObjectModelClass clazz) { - if (!TopiaGeneratorUtil.isEntity(clazz)) { - return; - } - - String clazzName = clazz.getName(); - - ObjectModelClass result = createAbstractClass( - clazzName + "DAOAbstract<E extends " + clazzName + '>', - clazz.getPackageName()); - - // super class - - String extendClass = ""; - for (ObjectModelClass parent : clazz.getSuperclasses()) { - extendClass = parent.getQualifiedName(); - if (TopiaGeneratorUtil.isEntity(parent)) { - extendClass += "DAOImpl<E>"; - // in java no multi-inheritance - break; - } - } - if (extendClass.length() == 0) { - extendClass = daoImplementation.getName() + "<E>"; - } - if (log.isDebugEnabled()) { - log.debug("super class = " + extendClass); - } - setSuperClass(result, extendClass); - - addInterface(result, TopiaDAO.class.getName() + "<E>"); - - String prefix = getConstantPrefix(clazz, ""); - setConstantPrefix(prefix); - - // imports - - Collection<ObjectModelOperation> DAOoperations = getDAOOperations(clazz); - if (isCollectionNeeded(DAOoperations)) { - addImport(result, Collection.class); - } - if (isSetNeeded(DAOoperations)) { - addImport(result, Set.class); - } - addImport(result, List.class); - addImport(result, Arrays.class); - addImport(result, TopiaException.class); - addImport(result, TopiaContextImplementor.class); - - boolean enableSecurity = TopiaGeneratorUtil.isClassWithSecurity(clazz); - - if (enableSecurity) { - addImport(result, ArrayList.class); - addImport(result, Permission.class); - addImport(result, "org.nuiton.topia.taas.entities.TaasAuthorizationImpl"); - addImport(result, "org.nuiton.topia.taas.jaas.TaasPermission"); - addImport(result, "org.nuiton.topia.taas.TaasUtil"); - addImport(result, TopiaDAO.class); - - //FIXME : how to do static imports ? -//import static org.nuiton.topia.taas.TaasUtil.CREATE; -//import static org.nuiton.topia.taas.TaasUtil.DELETE; -//import static org.nuiton.topia.taas.TaasUtil.LOAD; -//import static org.nuiton.topia.taas.TaasUtil.UPDATE; - } - - ObjectModelOperation op; - - // getEntityClass - - op = addOperation(result, - "getEntityClass", - "Class<E>", - ObjectModelModifier.PUBLIC); - setOperationBody(op, "" -/*{ - return (Class<E>)<%=clazzName%>.class; - }*/ - ); - - - generateDAOOperations(result, DAOoperations); - - generateDelete(clazz, result); - - generateNaturalId(result, clazz); - - for (ObjectModelAttribute attr : clazz.getAttributes()) { - if (!attr.isNavigable()) { - continue; - } - - if (!GeneratorUtil.isNMultiplicity(attr)) { - generateNoNMultiplicity(clazzName, result, attr, false); - } else { - generateNMultiplicity(clazzName, result, attr); - } - } - - if (clazz instanceof ObjectModelAssociationClass) { - ObjectModelAssociationClass assocClass = - (ObjectModelAssociationClass) clazz; - for (ObjectModelAttribute attr : assocClass.getParticipantsAttributes()) { - if (attr != null) { - if (!GeneratorUtil.isNMultiplicity(attr)) { - generateNoNMultiplicity(clazzName, result, attr, true); - } else { - generateNMultiplicity(clazzName, result, attr); - } - } - } - } - - if (enableSecurity) { - - // getRequestPermission - - op = addOperation(result, - "getRequestPermission", - "List<Permission>", - ObjectModelModifier.PUBLIC); - setDocumentation(op, "Retourne les permissions a verifier pour " + - "l'acces a l'entite pour le service Taas"); - addException(op, TopiaException.class); - addParameter(op, String.class, "topiaId"); - addParameter(op, int.class, "actions"); - StringBuilder buffer = new StringBuilder(); - buffer.append("" -/*{ - List<Permission> resultPermissions = new ArrayList<Permission>(); - if ((actions & TaasUtil.CREATE) == TaasUtil.CREATE) { -}*/ - ); - buffer.append(generateSecurity(result, clazz, - TopiaGeneratorUtil.getSecurityCreateTagValue(clazz))); - buffer.append("" -/*{ - } - if ((actions & TaasUtil.LOAD) == TaasUtil.LOAD) { -}*/ - ); - buffer.append(generateSecurity(result, clazz, - TopiaGeneratorUtil.getSecurityLoadTagValue(clazz))); - buffer.append("" -/*{ - } - if ((actions & TaasUtil.UPDATE) == TaasUtil.UPDATE) { -}*/ - ); - buffer.append(generateSecurity(result, clazz, - TopiaGeneratorUtil.getSecurityUpdateTagValue(clazz))); - buffer.append("" -/*{ - } - if ((actions & TaasUtil.DELETE) == TaasUtil.DELETE) { -}*/ - ); - buffer.append(generateSecurity(result, clazz, - TopiaGeneratorUtil.getSecurityDeleteTagValue(clazz))); - buffer.append("" -/*{ - } - return resultPermissions; - }*/ - ); - - setOperationBody(op, buffer.toString()); - - // THIMEL : Le code suivant doit pouvoir être déplacé dans DAODelegator ? - - // getRequestPermission - - - op = addOperation(result, - "getRequestPermission", - "List<Permission>", - ObjectModelModifier.PROTECTED); - addParameter(op, String.class, "topiaId"); - addParameter(op, int.class, "actions"); - addParameter(op, String.class, "query"); - addParameter(op, Class.class, "daoClass"); - addException(op, TopiaException.class); - setDocumentation(op, "Retourne les permissions a verifier pour " + - "l'acces a l'entite pour le service Taas"); - setOperationBody(op, "" -/*{ TopiaContextImplementor context = getContext(); - List<String> result = context.find(query, "id", topiaId); - - List<Permission> resultPermissions = new ArrayList<Permission>(); - for (String topiaIdPermission : result) { - TopiaDAO dao = context.getDAO(daoClass); - List<Permission> permissions = dao.getRequestPermission(topiaIdPermission, actions); - if(permissions != null) { - resultPermissions.addAll(permissions); - } else { - TaasPermission permission = new TaasPermission(topiaIdPermission, actions); - resultPermissions.add(permission); - } - } - return resultPermissions; - }*/ - ); - } - - Set<ObjectModelClass> usagesForclass = usages.get(clazz); - generateFindUsages(clazz, result, usagesForclass); - } - - protected void generateDelete(ObjectModelClass clazz, - ObjectModelClass result) { - ObjectModelOperation op; - op = addOperation(result, "delete", "void", ObjectModelModifier.PUBLIC); - addException(op, TopiaException.class); - addParameter(op, "E", "entity"); - StringBuilder body = new StringBuilder(); - String modelName = StringUtils.capitalize(model.getName()); - String providerFQN = getOutputProperties().getProperty( - PROP_DEFAULT_PACKAGE) + '.' + modelName + - "DAOHelper.getImplementationClass"; - - for (ObjectModelAttribute attr : clazz.getAttributes()) { - - String attrType = GeneratorUtil.getSimpleName(attr.getType()); - - String reverseAttrName = attr.getReverseAttributeName(); - ObjectModelAttribute reverse = attr.getReverseAttribute(); - if (attr.hasAssociationClass() || - reverse == null || !reverse.isNavigable()) { - - // never treate a non reverse and navigable attribute - // never treate an association class attribute - continue; - } - - // at this point we are sure to have a attribute which is - // - reverse - // - navigable - // - not from an association class - if (!allEntitiesFqn.contains(attr.getType())) { - - // this attribute is not from an entity, don't treate it - if (log.isDebugEnabled()) { - log.debug("[" + result.getName() + "] Skip attribute [" + - attr.getName() + "] with type " + attr.getType()); - } - continue; - } - - // At this point, the attribute type is a entity - if (GeneratorUtil.isNMultiplicity(attr) && - GeneratorUtil.isNMultiplicity(reverse)) { - // On doit absolument supprimer pour les relations many-to-many - // le this de la collection de l'autre cote - - String attrDBName = TopiaGeneratorUtil.getDbName(attr); - String attrClassifierDBName = TopiaGeneratorUtil.getDbName(attr.getClassifier()); - String attrJoinTableName = TopiaGeneratorUtil.getManyToManyTableName(attr); - String attrReverseDBName = TopiaGeneratorUtil.getReverseDbName(attr); - - //FIXME_-FC-20100413 Use a TopiaQuery (use HQLin elements) -// // Add DAOHelper -// String daoHelper = modelName + "DAOHelper"; -// String daoHelperFQN = getOutputProperties(). -// getProperty(PROP_DEFAULT_PACKAGE) + '.' + daoHelper; -// addImport(result, daoHelperFQN); -// -// // Add import for TopiaQuery -// addImport(result, TopiaQuery.class); -// -// // Entity DAO and reversePropertyName -// String entityDAO = attrType + "DAO"; -// String reverseAttrNameProperty = -// attrType + "." + getConstantName(reverseAttrName); -// -// -// <%=entityDAO%> dao = <%=daoHelper%>.get<%=entityDAO%>(getContext()); -// TopiaQuery query = dao.createQuery("B"). -// addFrom(entity.getClass(), "A"). -// add("A", entity). -// addInElements("A", "B." + <%=reverseAttrNameProperty%>); -// -// System.out.println("Query : " + query); -// List<<%=attrType%>> list = dao.findAllByQuery(query); - - - body.append("" -/*{ - { - List<<%=attrType%>> list = getContext().getHibernate().createSQLQuery( - "SELECT main.topiaid " + - "from <%=attrClassifierDBName%> main, <%=attrJoinTableName%> secondary " + - "where main.topiaid=secondary.<%=attrDBName%>" + - " and secondary.<%=attrReverseDBName%>='" + entity.getTopiaId() + "'") - .addEntity("main", <%=providerFQN%>(<%=attrType%>.class)).list(); - - for (<%=attrType%> item : list) { - item.remove<%=StringUtils.capitalize(reverseAttrName)%>(entity); - } - } -}*/ - ); - } else if (!GeneratorUtil.isNMultiplicity(reverse)) { - // On doit mettre a null les attributs qui ont cet objet sur les - // autres entites en one-to-* - // TODO peut-etre qu'hibernate est capable de faire ca tout seul ? - // THIMEL: J'ai remplacé reverse.getName() par reverseAttrName sans certitude - builder.addImport(result, attrType); - String attrSimpleType = TopiaGeneratorUtil.getClassNameFromQualifiedName(attrType); - - body.append("" - /*{ - { - List<<%=attrSimpleType%>> list = getContext() - .getDAO(<%=attrSimpleType%>.class) - .findAllByProperties(<%=attrSimpleType%>.<%=getConstantName(reverseAttrName)%>, entity); - for (<%=attrSimpleType%> item : list) { - item.set<%=StringUtils.capitalize(reverseAttrName)%>(null); - }*/ - ); - if (attr.isAggregate()) { - body.append("" -/*{ - getContext().getDAO(<%=attrSimpleType%>.class).delete(item); - //item.delete(); -}*/ - ); - } - body.append("" -/*{ - } - } -}*/ - ); - - } - } - body.append("" -/*{ - super.delete(entity); - }*/ - ); - - setOperationBody(op, body.toString()); - } - - private void generateFindUsages(ObjectModelClass clazz, - ObjectModelClass result, - Set<ObjectModelClass> usagesForclass) { - - builder.addImport(result, ArrayList.class.getName()); - builder.addImport(result, Map.class.getName()); - builder.addImport(result, HashMap.class.getName()); - builder.addImport(result, TopiaEntity.class.getName()); - - if (clazz instanceof ObjectModelAssociationClass || usagesForclass.isEmpty()) { - // not for an association class - // just let a null method - ObjectModelOperation operation; - operation = addOperation(result, - "findUsages", - "<U extends TopiaEntity> List<U>", - ObjectModelModifier.PUBLIC); - - addParameter(operation, "Class<U>", "type"); - addParameter(operation, "E", "entity"); - addException(operation, TopiaException.class); - addAnnotation(result, operation, "Override"); - setOperationBody(operation, "" -/*{ - return new ArrayList<U>(); - }*/ - ); - - operation = addOperation(result, - "findAllUsages", - "Map<Class<? extends TopiaEntity>, List<? extends TopiaEntity>>", - ObjectModelModifier.PUBLIC); - - addParameter(operation, "E", "entity"); - addException(operation, TopiaException.class); - addAnnotation(result, operation, "Override"); - setOperationBody(operation, "" -/*{ - return new HashMap<Class<? extends TopiaEntity>, List<? extends TopiaEntity>>(); - }*/ - ); - - return; - } - List<ObjectModelClass> allEntities; - Map<String, ObjectModelClass> allEntitiesByFQN; - - allEntities = TopiaGeneratorUtil.getEntityClasses(model, true); - allEntitiesByFQN = new TreeMap<String, ObjectModelClass>(); - - // prepare usages map and fill allEntitiesByFQN map - for (ObjectModelClass klass : allEntities) { - allEntitiesByFQN.put(klass.getQualifiedName(), klass); - } - - ObjectModelOperation operation; - operation = addOperation(result, - "findUsages", - "<U extends TopiaEntity> List<U>", - ObjectModelModifier.PUBLIC); - - addParameter(operation, "Class<U>", "type"); - addParameter(operation, "E", "entity"); - addException(operation, TopiaException.class); - addAnnotation(result, operation, "Override"); - StringBuilder buffer = new StringBuilder(300); - buffer.append("" -/*{ - List<?> result = new ArrayList(); - List tmp; -}*/ - ); - - for (ObjectModelClass usageClass : usagesForclass) { - String usageType = usageClass.getQualifiedName(); - builder.addImport(result, usageType); - String usageSimpleType = - TopiaGeneratorUtil.getClassNameFromQualifiedName(usageType); - String usageSimplePropertyMethod = "findAllBy" + usageSimpleType; - String usageCollectionPropertyMethod = "findAllContaining" + usageSimpleType; - for (ObjectModelAttribute attr : usageClass.getAttributes()) { - if (!attr.isNavigable()) { - // skip this case - continue; - } - String type; - String attrName = attr.getName(); - if (attr.hasAssociationClass()) { - //FIXME-TC20100224 dont known how to do this ? - continue; -// type = attr.getAssociationClass().getQualifiedName(); -// //FIXME-TC20100224 : this is crazy ??? must find the good name -// // Perhaps need to make different cases? -// attrName = attrName + "_" + TopiaGeneratorUtil.toLowerCaseFirstLetter(attr.getAssociationClass().getName()); - } else { - type = attr.getType(); - } - if (!allEntitiesByFQN.containsKey(type)) { - // not a entity, can skip for this attribute - continue; - } - ObjectModelClass targetEntity = allEntitiesByFQN.get(type); -// if (!type.equals(clazz.getQualifiedName())) { - if (!targetEntity.equals(clazz)) { - // not a good attribute reference - continue; - } - // found something to seek - - String methodNameSuffix = StringUtils.capitalize(attrName); - String methodName; - if (TopiaGeneratorUtil.isNMultiplicity(attr)) { - methodName = "findAllContains" + methodNameSuffix; - } else { - methodName = "findAllBy" + methodNameSuffix; - } - String daoName = StringUtils.capitalize(usageSimpleType) + "DAO"; - - builder.addImport(result, usageClass.getPackageName() + '.' + daoName); - - buffer.append("" -/*{ - if (type == <%=usageSimpleType%>.class) { - <%=daoName%> dao = (<%=daoName%>) - getContext().getDAO(<%=usageSimpleType%>.class); - tmp = dao.<%=methodName%>(entity); - result.addAll(tmp); - } -}*/ - ); - } - } - - buffer.append("" -/*{ - return (List<U>) result; - }*/ - ); - setOperationBody(operation, buffer.toString()); - - operation = addOperation(result, - "findAllUsages", - "Map<Class<? extends TopiaEntity>, List<? extends TopiaEntity>>", - ObjectModelModifier.PUBLIC); - - addParameter(operation, "E", "entity"); - addException(operation, TopiaException.class); - addAnnotation(result, operation, "Override"); - - buffer = new StringBuilder(300); - buffer.append("" -/*{ - Map<Class<? extends TopiaEntity>,List<? extends TopiaEntity>> result; - result = new HashMap<Class<? extends TopiaEntity>, List<? extends TopiaEntity>>(<%=usagesForclass.size()%>); - - List<? extends TopiaEntity> list; -}*/ - ); - for (ObjectModelClass usageClass : usagesForclass) { - - String fqn = usageClass.getName(); - buffer.append("" -/*{ - list = findUsages(<%=fqn%>.class, entity); - if (!list.isEmpty()) { - result.put(<%=fqn%>.class, list); - } -}*/ - ); - - } - buffer.append("" -/*{ - return result; - }*/ - ); - - setOperationBody(operation, buffer.toString()); - } - - /** - * Generation of DAO operations signatures from class. These operations are - * abstract and identified by <<dao>> stereotype in the model. The - * developper must defined these methods in the DAOImpl associated to this - * DAOAbstract. - * - * @param result clazz where to add operations - * @param operations operations to generate - */ - private void generateDAOOperations(ObjectModelClass result, - Collection<ObjectModelOperation> - operations) { - for (ObjectModelOperation op : operations) { - - //TODO: add to transformer cloneOperation - - ObjectModelOperation op2; - op2 = addOperation(result, - op.getName(), - op.getReturnType(), - ObjectModelModifier.ABSTRACT, - ObjectModelModifier.toValue(op.getVisibility())); - setDocumentation(op2, op.getDocumentation()); - - // parameters - - for (ObjectModelParameter param : op.getParameters()) { - ObjectModelParameter param2 = addParameter(op2, - param.getType(), param.getName()); - setDocumentation(param2, param.getDocumentation()); - } - - // exceptions - Set<String> exceptions = op.getExceptions(); - exceptions.add(TopiaException.class.getName()); - for (String exception : exceptions) { - addException(op2, exception); - } - } - } - - - private String generateSecurity(ObjectModelClass result, - ObjectModelClass clazz, - String tagValue) { - StringBuilder buffer = new StringBuilder(); - - if (StringUtils.isNotEmpty(tagValue)) { - String security = tagValue; - Pattern propertiesPattern = Pattern - .compile("((?:[_a-zA-Z0-9]+\\.)+(?:_?[A-Z][_a-zA-Z0-9]*\\.)+)attribute\\.(?:([_a-z0-9][_a-zA-Z0-9]*))#(?:(create|load|update|delete))"); - String[] valuesSecurity = security.split(":"); - - for (String valueSecurity : valuesSecurity) { - Matcher matcher = propertiesPattern.matcher(valueSecurity); - matcher.find(); - // className is fully qualified name of class - String className = matcher.group(1); - className = StringUtil.substring(className, 0, -1); // remove ended - // . - // target is class, attribute or operation - String attributeName = matcher.group(2); - String actions = matcher.group(3).toUpperCase(); - - String query = ""; - String daoClass = ""; - if (className.equals(clazz.getQualifiedName())) { - query = "select " + attributeName + ".topiaId from " + clazz.getQualifiedName() + " where topiaId = :id"; - daoClass = clazz.getAttribute(attributeName).getClassifier().getQualifiedName(); - } else { - query = "select at.topiaId from " + className + " at inner join at." + attributeName + " cl where cl.topiaId = :id"; - daoClass = className; - } - buffer.append("" -/*{ - resultPermissions.addAll(getRequestPermission(topiaId, - <%=actions%>, - "<%=query%>", - <%=daoClass%>.class)); -}*/ - ); - } - } else { - buffer.append("" -/*{ return null; - }*/ - ); - } - return buffer.toString(); - } - - protected void generateNoNMultiplicity(String clazzName, - ObjectModelClass result, - ObjectModelAttribute attr, - boolean isAssoc) { - String attrName = attr.getName(); - String attrType = attr.getType(); - String propertyName = attrName; - if (!isAssoc && attr.hasAssociationClass()) { - propertyName = TopiaGeneratorUtil.toLowerCaseFirstLetter( - attr.getAssociationClass().getName()) + '.' + propertyName; - } - ObjectModelOperation op; - op = addOperation(result, - "findBy" + StringUtils.capitalize(attrName), - "E", - ObjectModelModifier.PUBLIC); - addException(op, TopiaException.class); - addParameter(op, attrType, "v"); - setDocumentation(op, "Retourne le premier élément trouvé ayant comme valeur pour l'attribut " + attrName + " le paramètre."); - setOperationBody(op, "" -/*{ - E result = findByProperty(<%=clazzName + "." + getConstantName(propertyName)%>, v); - return result; - }*/ - ); - - op = addOperation(result, - "findAllBy" + StringUtils.capitalize(attrName), - "List<E>", - ObjectModelModifier.PUBLIC); - addException(op, TopiaException.class); - addParameter(op, attrType, "v"); - setDocumentation(op, "Retourne les éléments ayant comme valeur pour " + - "l'attribut " + attrName + " le paramètre."); - setOperationBody(op, "" -/*{ - List<E> result = findAllByProperty(<%=clazzName + "." + getConstantName(propertyName)%>, v); - return result; - }*/ - ); - - if (attr.hasAssociationClass()) { - String assocClassName = attr.getAssociationClass().getName(); - String assocClassFQN = attr.getAssociationClass().getQualifiedName(); - op = addOperation(result, - "findBy" + StringUtils.capitalize(assocClassName), - "E", - ObjectModelModifier.PUBLIC); - addException(op, TopiaException.class); - addParameter(op, assocClassFQN, "value"); - setDocumentation(op, "Retourne le premier élément trouvé ayant " + - "comme valeur pour l'attribut " + - TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName) + - " le paramètre."); - setOperationBody(op, "" -/*{ - E result = findByProperty(<%=clazzName + "." + getConstantName(TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName))%>, value); - return result; - }*/ - ); - - op = addOperation(result, - "findAllBy" + StringUtils.capitalize(assocClassName), - "List<E>", - ObjectModelModifier.PUBLIC); - addException(op, TopiaException.class); - addParameter(op, assocClassFQN, "value"); - setDocumentation(op, "Retourne les éléments ayant comme valeur pour" + - " l'attribut " + - TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName) + - " le paramètre."); - setOperationBody(op, "" -/*{ - List<E> result = findAllByProperty(<%=clazzName + "." + getConstantName(TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName))%>, value); - return result; - }*/ - ); - } - } - - protected void generateNMultiplicity(String clazzName, ObjectModelClass result, ObjectModelAttribute attr) { - String attrName = attr.getName(); - String attrType = attr.getType(); - if (attr.hasAssociationClass()) { - // do nothing for association class, too complex... - return; - } - ObjectModelOperation op; - // Since 2.4 do nothing, findContains and findAllContains are not generated anymore - op = addOperation(result, - "findContains" + StringUtils.capitalize(attrName), - "E", - ObjectModelModifier.PUBLIC); - addException(op, TopiaException.class); - addParameter(op, attrType, "v"); - setDocumentation(op, "Retourne le premier élément ayant comme valeur pour" + - " l'attribut " + - TopiaGeneratorUtil.toLowerCaseFirstLetter(attrName) + - " le paramètre."); - setOperationBody(op, "" -/*{ - E result = findContains(<%=clazzName + "." + getConstantName(attrName)%>, v); - return result; - }*/ - ); - - op = addOperation(result, - "findAllContains" + StringUtils.capitalize(attrName), - "List<E>", - ObjectModelModifier.PUBLIC); - addException(op, TopiaException.class); - addParameter(op, attrType, "v"); - setDocumentation(op, "Retourne les éléments ayant comme valeur pour" + - " l'attribut " + - TopiaGeneratorUtil.toLowerCaseFirstLetter(attrName) + - " le paramètre."); - setOperationBody(op, "" -/*{ - List<E> result = findAllContains(<%=clazzName + "." + getConstantName(attrName)%>, v); - return result; - }*/ - ); - } - - private boolean isCollectionNeeded( - Collection<ObjectModelOperation> operations) { - return isImportNeeded(operations, "Collection"); - } - - private boolean isSetNeeded(Collection<ObjectModelOperation> operations) { - return isImportNeeded(operations, "Set"); - } - - private boolean isImportNeeded(Collection<ObjectModelOperation> operations, - String importName) { - for (ObjectModelOperation op : operations) { - if (op.getReturnType().contains(importName)) { - return true; - } - for (ObjectModelParameter param : op.getParameters()) { - if (param.getType().contains(importName)) { - return true; - } - } - } - return false; - } - - public Collection<ObjectModelOperation> getDAOOperations( - ObjectModelClass clazz) { - // Note : this collection will contains extra operations for DAO. - // Overriding existing generated methods is not managed yet - Collection<ObjectModelOperation> results = - new ArrayList<ObjectModelOperation>(); - - // This code will be deprecated - for (ObjectModelOperation op : clazz.getOperations()) { - if (TopiaGeneratorUtil.hasDaoStereotype(op)) { - results.add(op); - } - } - // New method : interface dependency - Collection<ObjectModelOperation> extra = - extraOperations.get(clazz.getQualifiedName()); - - if (extra != null) { - for (ObjectModelOperation op : extra) { - results.add(op); - } - } - - return results; - } - - private void generateNaturalId(ObjectModelClass result, - ObjectModelClass clazz) { - Set<ObjectModelAttribute> props = - TopiaGeneratorUtil.getNaturalIdAttributes(clazz); - - if (!props.isEmpty()) { - - if (log.isDebugEnabled()) { - log.debug("generateNaturalId for " + props); - } - ObjectModelOperation findByNaturalId = addOperation(result, - "findByNaturalId", "E", ObjectModelModifier.PUBLIC); - addException(findByNaturalId, TopiaException.class); - - ObjectModelOperation existByNaturalId = addOperation(result, - "existByNaturalId", "boolean", ObjectModelModifier.PUBLIC); - addException(existByNaturalId, TopiaException.class); - - ObjectModelOperation create = addOperation(result, - "create", "E", ObjectModelModifier.PUBLIC); - addException(create, TopiaException.class); - - // used for calling findByProperties in findByNaturalId - String searchProperties = ""; - // used for calling findByNaturalId in existByNaturalId - String params = ""; - String clazzName = clazz.getName(); - for (ObjectModelAttribute attr : props) { - String propName = attr.getName(); - // add property as param in both methods - addParameter(findByNaturalId, attr.getType(), propName); - addParameter(existByNaturalId, attr.getType(), propName); - addParameter(create, attr.getType(), propName); - - searchProperties += - ", " + clazzName + '.' + getConstantName(propName) + - ", " + propName; - //params += ", " + propName; - } - searchProperties = searchProperties.substring(2); - //params = params.substring(2); - - setOperationBody(findByNaturalId, "" -/*{ - return findByProperties(<%=searchProperties%>); - }*/ - ); - - setOperationBody(existByNaturalId, "" -/*{ - return existByProperties(<%=searchProperties%>); - }*/ - ); - - setOperationBody(create, "" -/*{ - return create(<%=searchProperties%>); - }*/ - ); - } - - - } -} Deleted: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOImplTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOImplTransformer.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOImplTransformer.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -1,127 +0,0 @@ -/* - * #%L - * ToPIA :: Persistence - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package org.nuiton.topia.generator; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.eugene.java.ObjectModelTransformerToJava; -import org.nuiton.eugene.models.object.ObjectModelClass; -import org.nuiton.eugene.models.object.ObjectModelClassifier; -import org.nuiton.eugene.models.object.ObjectModelDependency; -import org.nuiton.eugene.models.object.ObjectModelInterface; -import org.nuiton.eugene.models.object.ObjectModelOperation; - -import java.util.ArrayList; -import java.util.List; - -/** - * Created: 14 déc. 2009 - * - * @author tchemit <chemit@codelutin.com> - * @version $Id$ - * @since 2.3.0 - * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.topia.generator.DAOImplTransformer" - * @deprecated 2.5.4, prefer use the transformer {@link EntityDAOTransformer} - */ -@Deprecated -public class DAOImplTransformer extends ObjectModelTransformerToJava { - - /** Logger. */ - static Log log = LogFactory.getLog(DAOImplTransformer.class); - - /** - * Collection used to identify entities full qualified name that have - * a dependency for DAO extra operations. So no need to generate the - * DAOImpl in this case, it will be created by the developper. - */ - List<String> noGenerationNeeded = new ArrayList<String>(); - - @Override - public void transformFromInterface(ObjectModelInterface interfacez) { - if (!TopiaGeneratorUtil.hasDaoStereotype(interfacez)) { - return; - } - - /** - * EVO #636 : Manage extra operations for DAO from "dao" dependency - * between an interface with stereotype <<dao>> (dependency client) and - * a class with stereotype <<entity>> (dependency supplier). - */ - - ObjectModelDependency dependency = - interfacez.getDependency(TopiaGeneratorUtil.DEPENDENCIES_DAO); - - if (dependency == null) { - if (log.isWarnEnabled()) { - log.warn("Could not find dependency " + - TopiaGeneratorUtil.DEPENDENCIES_DAO + - " but DAO stereotype was placed on the interface " + - interfacez.getName()); - - } - return; - } - ObjectModelClassifier classifier = dependency.getSupplier(); - - if (TopiaGeneratorUtil.isEntity(classifier)) { - noGenerationNeeded.add(classifier.getQualifiedName()); - } - } - - @Override - public void transformFromClass(ObjectModelClass clazz) { - if (!TopiaGeneratorUtil.isEntity(clazz) || hasDAOOperations(clazz)) { - return; - } - String clazzName = clazz.getName(); - String clazzFQN = clazz.getQualifiedName(); - ObjectModelClass result = createClass(clazzName + "DAOImpl<E extends " + clazzName + ">", clazz.getPackageName()); - setDocumentation(result, "/**\n" + - " Implantation du DAO pour l'entité " + clazzName + ".\n" + - " * L'utilisateur peut remplacer cette classe par la sienne en la mettant \n" + - " * simplement dans ces sources. Cette classe générée sera alors simplement\n" + - " * écrasée\n" + - " */"); - setSuperClass(result, clazzFQN + "DAOAbstract<E>"); - } - - /** - * Detect if the class has DAO operations identified with <<dao>> stereotype. - * - * @param clazz The ObjectModelClass with operations (Corresponding to the Entity) - * @return true if the class has some dao operations, false if not - */ - public boolean hasDAOOperations(ObjectModelClass clazz) { - // This code will be deprecated - for (ObjectModelOperation op : clazz.getOperations()) { - if (TopiaGeneratorUtil.hasDaoStereotype(op)) { - return true; - } - } - // New method : interface dependency - return noGenerationNeeded.contains(clazz.getQualifiedName()); - } -} Deleted: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOTransformer.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOTransformer.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -1,63 +0,0 @@ -/* - * #%L - * ToPIA :: Persistence - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package org.nuiton.topia.generator; - -import org.nuiton.eugene.java.ObjectModelTransformerToJava; -import org.nuiton.eugene.models.object.ObjectModelClass; - -/*{generator option: parentheses = false}*/ - -/*{generator option: writeString = +}*/ -/** - * Created: 13 déc. 2009 - * - * @author tchemit <chemit@codelutin.com> - * @version $Id$ - * @since 2.3.0 - * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.topia.generator.DAOTransformer" - * @deprecated 2.5.4, prefer use the transformer {@link EntityDAOTransformer} - */ -@Deprecated -public class DAOTransformer extends ObjectModelTransformerToJava { - - @Override - public void transformFromClass(ObjectModelClass clazz) { - if (!TopiaGeneratorUtil.isEntity(clazz)) { - return; - } - String clazzName = clazz.getName(); - String clazzFQN = clazz.getQualifiedName(); - ObjectModelClass result = createClass(clazzName + "DAO", clazz.getPackageName()); - setDocumentation(result, "/**\n" + - " * Cette classe etend le DAOImpl pour parametrer la classe avec le bon type\n" + - " * Cette classe est marque finale car l'heritage entre les DAO se fait\n" + - " * sur les DOAImpl, c-a-d que DAOAbstract peut etendre le DAOImpl\n" + - " */"); - setSuperClass(result, clazzFQN + "DAOImpl<" + clazzName + ">"); - } - - -} Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -45,7 +45,6 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.TopiaDAOLegacy; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.StringUtil; @@ -123,18 +122,7 @@ } usages = TopiaGeneratorUtil.searchDirectUsages(model); - boolean extendLegacyDAO = - Boolean.valueOf(model.getTagValue(TopiaTagValues.TAG_USE_LEGACY_DAO)); - if (extendLegacyDAO) { - log.warn("Using a deprecated tag value " + - TopiaTagValues.TAG_USE_LEGACY_DAO + - ", prefer use the tag value " + - TopiaTagValues.TAG_DAO_IMPLEMENTATION); - daoImplementation = TopiaDAOLegacy.class; - } else { - daoImplementation = - TopiaGeneratorUtil.getDAOImplementation(model); - } + daoImplementation = TopiaGeneratorUtil.getDAOImplementation(model); // keep all classifiers on the model which are entities List<ObjectModelClass> allEntities = @@ -1120,15 +1108,6 @@ "existByNaturalId", "boolean", ObjectModelModifier.PUBLIC); addException(existByNaturalId, TopiaException.class); - // TODO sletellier 20120406 : remove method on 3.0 - ObjectModelOperation create = addOperation(result, - "create", "E", ObjectModelModifier.PUBLIC); - - // sletellier : mark as Deprecated (http://nuiton.org/issues/2051) - setDocumentation(create, "@deprecated since 2.6.10, prefer use {@link #createByNaturalId}\n"); - addAnnotation(result, create, "Deprecated"); - addException(create, TopiaException.class); - ObjectModelOperation createByNaturalId = addOperation(result, "createByNaturalId", "E", ObjectModelModifier.PUBLIC); @@ -1144,7 +1123,6 @@ // add property as param in both methods addParameter(findByNaturalId, attr.getType(), propName); addParameter(existByNaturalId, attr.getType(), propName); - addParameter(create, attr.getType(), propName); addParameter(createByNaturalId, attr.getType(), propName); searchProperties += @@ -1167,12 +1145,6 @@ }*/ ); - setOperationBody(create, "" -/*{ - return create(<%=searchProperties%>); - }*/ - ); - setOperationBody(createByNaturalId, "" /*{ return create(<%=searchProperties%>); Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityTransformer.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityTransformer.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -450,14 +450,9 @@ " - visibility : " + visibility); } - // Deprecated from 2.3.4 - // Pas de génération des signatures de méthodes pour celles à intégrer au DAO de l'entité - if (TopiaGeneratorUtil.hasDaoStereotype(operation)) { - return; - // Generate entity methods which have not a public visibility. // Only in abstract entity class as abstract operation. - } else if (!visibility.equals(ObjectModelModifier.PUBLIC)) { + if (!visibility.equals(ObjectModelModifier.PUBLIC)) { addOperation(outputAbstract, opName, opType, visibility, ObjectModelModifier.ABSTRACT); Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -25,7 +25,6 @@ package org.nuiton.topia.generator; -import java.util.LinkedHashSet; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -34,7 +33,6 @@ import org.nuiton.eugene.GeneratorUtil; import org.nuiton.eugene.ModelPropertiesUtil; import org.nuiton.eugene.java.JavaGeneratorUtil; -import org.nuiton.eugene.models.Model; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAssociationClass; import org.nuiton.eugene.models.object.ObjectModelAttribute; @@ -54,6 +52,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -148,22 +147,6 @@ return null; } - /** - * Renvoie le type de persistence pour l'élément donné. Si aucun n'est - * trouvé, le type par défaut est utilisé - * - * @param element l'élément à tester - * @return le type de persitence pour l'élément donné. - * @deprecated since 2.5, prefer use the method {@link #getPersistenceType(ObjectModelClassifier)} - */ - @Deprecated - public static String getPersistenceType(ObjectModelElement element) { - String tag = element.getTagValue(TopiaTagValues.TAG_PERSISTENCE_TYPE); - if (tag == null) { - tag = PERSISTENCE_TYPE_DEFAULT; - } - return tag; - } /** * Renvoie le type de persistence pour le classifier donné. Si aucun n'est @@ -182,16 +165,6 @@ } /** - * @param attr the attribute to inspece - * @return the name of the name in db of the reverse attribute - * @deprecated since 2.5, prefer use the methode {@link #getReverseDbName(ObjectModelAttribute)} - */ - @Deprecated - public static String getReverseDBName(ObjectModelAttribute attr) { - return getReverseDbName(attr); - } - - /** * Obtain the reverse db name of an attribute. * <p/> * If attribute has a specific reverse attribute, use his db name, otherwise @@ -215,20 +188,7 @@ * * @param element l'élément à tester * @return le nom de table - * @deprecated since 2.5, prefer use the method {@link #getDbName(ObjectModelElement)} */ - @Deprecated - public static String getDBName(ObjectModelElement element) { - return getDbName(element); - } - - /** - * Renvoie le nom BD de l'élement passé en paramètre. Elle se base sur le - * tag associé si il existe, sinon sur le nom de l'élément - * - * @param element l'élément à tester - * @return le nom de table - */ public static String getDbName(ObjectModelElement element) { if (element == null) { return null; @@ -241,60 +201,9 @@ } /** - * Cherche et renvoie le schema a utiliser sur cet element, sinon sur le - * model. - * - * @param element l'élément à tester - * @param model le modele utilisé - * @return le nom du schema ou null - * @deprecated since 2.5, prefer use the method {@link #getDbSchemaNameTagValue(ObjectModelClassifier, ObjectModel)} or {@link #getDbSchemaNameTagValue(ObjectModelAttribute, ObjectModel)} - */ - @Deprecated - public static String getSchemaName(ObjectModelElement element, - ObjectModel model) { - return findTagValue(TopiaTagValues.TAG_SCHEMA_NAME, element, model); - } - - /** - * Cherche et renvoie le prefixe i18n à utiliser sur cet element, sinon sur - * le model. - * - * @param element l'élément à tester - * @param model le modele utilisé - * @return le prefix i18n ou <code>null</code> si non spécifié - * @deprecated since 2.5, prefer use the {@link JavaGeneratorUtil#getI18nPrefixTagValue(ObjectModelElement, ObjectModel)} - */ - @Deprecated - public static String getI18nPrefix(ObjectModelElement element, - ObjectModel model) { - return JavaGeneratorUtil.getI18nPrefixTagValue(element, model); - } - - /** * Cherche si le tagvalue {@link TopiaTagValues#TAG_GENERATE_OPERATOR_FOR_DAO_HELPER} a été * activé dans le model. * - * @param element l'élément à tester - * @param model le modele utilisé - * @return {@code true} si le tag value trouvé dans le modèle, {@code false} - * sinon. - * @deprecated since 2.5, use now the method {@link #shouldGenerateOperatorForDAOHelper(ObjectModel)} - */ - @Deprecated - public static boolean shouldgenerateOperatorForDAOHelper( - ObjectModelElement element, ObjectModel model) { - return shouldGenerateOperatorForDAOHelper(model); -// String tagValue = GeneratorUtil.findTagValue( -// TopiaTagValues.TAG_GENERATE_OPERATOR_FOR_DAO_HELPER, element, model); -// boolean generate = StringUtils.isNotEmpty(tagValue) && -// Boolean.valueOf(tagValue); -// return generate; - } - - /** - * Cherche si le tagvalue {@link TopiaTagValues#TAG_GENERATE_OPERATOR_FOR_DAO_HELPER} a été - * activé dans le model. - * * @param model le modele utilisé * @return {@code true} si le tag value trouvé dans le modèle, {@code false} * sinon. @@ -311,29 +220,6 @@ * Cherche si le tagvalue {@link TopiaTagValues#TAG_GENERATE_OPERATOR_FOR_DAO_HELPER} a été * activé dans le model. * - * @param element l'élément à tester - * @param model le modele utilisé - * @return {@code true} si le tag value trouvé dans le modèle, {@code false} - * sinon. - * @since 2.4.1 - * @deprecated since 2.5, prefer use the method {@link #shouldGenerateStandaloneEnumForDAOHelper(ObjectModel)} - */ - @Deprecated - public static boolean shouldGnerateStandaloneEnumForDAOHelper( - ObjectModelElement element, - ObjectModel model) { - return shouldGenerateStandaloneEnumForDAOHelper(model); -// String tagValue = GeneratorUtil.findTagValue( -// TopiaTagValues.TAG_GENERATE_STANDALONE_ENUM_FOR_DAO_HELPER, element, model); -// boolean generate = GeneratorUtil.notEmpty(tagValue) && -// Boolean.valueOf(tagValue); -// return generate; - } - - /** - * Cherche si le tagvalue {@link TopiaTagValues#TAG_GENERATE_OPERATOR_FOR_DAO_HELPER} a été - * activé dans le model. - * * @param model le modele utilisé * @return {@code true} si le tag value trouvé dans le modèle, {@code false} * sinon. @@ -503,18 +389,6 @@ } } - /** - * Cherches et renvoie le copyright a utiliser sur le model. - * - * @param model le modele utilisé - * @return le texte du copyright ou null$ - * @deprecated since 2.5 never use anywhere - */ - @Deprecated - public static String getCopyright(Model model) { - return findTagValue(TopiaTagValues.TAG_COPYRIGHT, null, model); - } - public static <Type extends ObjectModelElement> Collection<Type> getElementsWithStereotype( Collection<Type> elements, String... stereotypes) { Collection<Type> result = new ArrayList<Type>(); @@ -1166,24 +1040,11 @@ public static boolean isSetNeeded(Collection<ObjectModelOperation> operations) { return isImportNeeded(operations, - Set.class.getSimpleName()); + Set.class.getSimpleName()); } /** * Check if the given classifier has the - * {@link TopiaStereoTypes#STEREOTYPE_FACADE} stereotype. - * - * @param classifier classifier to test - * @return {@code true} if stereotype was found, {@code false otherwise} - * @see TopiaStereoTypes#STEREOTYPE_FACADE - * @since 2.5 - */ - public static boolean hasFacadeStereotype(ObjectModelClassifier classifier) { - return classifier.hasStereotype(TopiaStereoTypes.STEREOTYPE_FACADE); - } - - /** - * Check if the given classifier has the * {@link TopiaStereoTypes#STEREOTYPE_ENTITY} stereotype. * * @param classifier classifier to test @@ -1323,21 +1184,6 @@ } /** - * Check if the given attribute has the - * {@link TopiaStereoTypes#STEREOTYPE_ARRAY} stereotype. - * - * @param attribute attribute to test - * @return {@code true} if stereotype was found, {@code false otherwise} - * @see TopiaStereoTypes#STEREOTYPE_ARRAY - * @since 2.5 - * @deprecated since 2.5 , only BeanTransformer use it and it is a deprecated transformer, will be remove in version 3.0 - */ - @Deprecated - public static boolean hasArrayStereotype(ObjectModelAttribute attribute) { - return attribute.hasStereotype(TopiaStereoTypes.STEREOTYPE_ARRAY); - } - - /** * Obtain the value of the {@link TopiaTagValues#TAG_PERSISTENCE_TYPE} * tag value on the given classifier. * <p/> @@ -1809,24 +1655,6 @@ } /** - * Obtain the value of the {@link TopiaTagValues#TAG_NO_LOG_IN_SERVICE} - * tag value on the given classifier. - * <p/> - * - * @param classifier classifier to seek - * @param model model to seek - * @return the none empty value of the found tag value or {@code null} if not found nor empty. - * @see TopiaTagValues#TAG_NO_LOG_IN_SERVICE - * @since 2.5 - * @deprecated since 2.5.4, no more use will be remove soon. - */ - @Deprecated - public static String getNoLogInServiceTagValue(ObjectModelClassifier classifier, ObjectModel model) { - String value = findTagValue(TopiaTagValues.TAG_NO_LOG_IN_SERVICE, classifier, model); - return value; - } - - /** * Obtains the value of the {@link TopiaTagValues#TAG_DAO_IMPLEMENTATION} * tag value on the given model. * <p/> Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaStereoTypes.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaStereoTypes.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaStereoTypes.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -40,25 +40,6 @@ public interface TopiaStereoTypes extends EugeneStereoTypes { /** - * Stéréotype pour les attributs considérés comme des tableaux. - * - * @see TopiaGeneratorUtil#hasArrayStereotype(ObjectModelAttribute) - * @deprecated since 2.5 : only BeanTransformer use it and it is a deprecated transformer, will be remove in version 3.0 - */ - @Deprecated - @StereotypeDefinition(target = ObjectModelAttribute.class, - documentation = "Deprecated! To specify that an attribute is an array") - String STEREOTYPE_ARRAY = "array"; - - /** - * Stéréotype pour les interfaces devant être générées sous forme de facades. - * - * @deprecated since 2.5 : nobydy use it, will be remove in version 3.0 - */ - @Deprecated - String STEREOTYPE_FACADE = "facade"; - - /** * Stéréotype pour les objets devant être générées sous forme d'entités * * @see TopiaGeneratorUtil#isEntity(ObjectModelClassifier) Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaTagValues.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaTagValues.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaTagValues.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -25,7 +25,6 @@ package org.nuiton.topia.generator; import org.nuiton.eugene.EugeneTagValues; -import org.nuiton.eugene.models.Model; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; @@ -47,15 +46,6 @@ public interface TopiaTagValues extends EugeneTagValues { /** - * Tag pour ajouter specifier le copyright d'un fichier. - * - * @since 2.5 - * @deprecated since 2.5 only use in a deprecated method {@link TopiaGeneratorUtil#getCopyright(Model)} - */ - @Deprecated - String TAG_COPYRIGHT = "copyright"; - - /** * Tag pour le type de persistence. * * @see TopiaGeneratorUtil#getPersistenceType(ObjectModelClassifier) @@ -99,15 +89,6 @@ String TAG_SCHEMA_NAME = "dbSchema"; /** - * Tag pour spécifier la caractère embed-xml d'une association. - * - * @see TopiaGeneratorUtil#getPersistenceTypeTagValue(ObjectModelClassifier) - * @deprecated @since 2.5, use nowhere, will be remove soon - */ - @Deprecated - String TAG_EMBED_XML = "embedXml"; - - /** * Tag pour la taille du champ en BD. * * @see TopiaGeneratorUtil#getLengthTagValue(ObjectModelAttribute) @@ -346,18 +327,6 @@ String TAG_SQL_TYPE = "sqlType"; /** - * To use the legacy DAO generation. - * - * @see TopiaGeneratorUtil#getTypeTagValue(ObjectModelAttribute) - * @since 2.5 - * @deprecated since 2.5, prefer use the tag value - */ - @Deprecated - @TagValueDefinition(target = {ObjectModel.class}, - documentation = "Deprecated! To use the previous DAO implementation in generated DAO (use Criteria api)") - String TAG_USE_LEGACY_DAO = "useLegacyDAO"; - - /** * To specify the abstract dao to use. * <p/> * If none given, will use the {@code org.nuiton.topia.persistence.TopiaDAOImpl}. @@ -429,24 +398,6 @@ String TAG_ERROR_ARGS = "errorArgs"; /** - * Tag to specify if we want to add logs in any method of service - * generated by {@link ServiceTransformer}. - * <p/> - * <b>Note:</b> To have no log just use this tag on services or gloabaly - * on model (for all services). - * - * @see ServiceTransformer - * @see TopiaGeneratorUtil#getNoLogInServiceTagValue(ObjectModelClassifier, ObjectModel) - * @since 2.5 - * @deprecated since 2.5.4, will not be replaced (no log are any longer - * generated in {@link ServiceTransformer} - */ - @Deprecated - @TagValueDefinition(target = {ObjectModel.class, ObjectModelClassifier.class}, - documentation = "This is deprecated since 2.5.4, no effect : no logs are generated in services.") - String TAG_NO_LOG_IN_SERVICE = "noLogInService"; - - /** * Stéréotype pour les attributs avec multiplicité nécessitant la création d'un index. * * @see TopiaGeneratorUtil#getIndexForeignKeys(ObjectModelAttribute, ObjectModel) Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -42,9 +42,6 @@ import org.nuiton.topia.event.TopiaEntityVetoable; import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.generator.DAOAbstractTransformer; -import org.nuiton.topia.generator.DAOImplTransformer; -import org.nuiton.topia.generator.DAOTransformer; import java.security.Permission; import java.util.List; Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOLegacy.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOLegacy.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOLegacy.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -347,85 +347,6 @@ return result; } - @Deprecated - private Criterion computeCriterions(Object... values) { - if (values == null) { - return null; - } - Criterion criterion = null; - for (Object value : values) { - criterion = or(criterion, computeCriterion(value)); - } - return criterion; - } - - @Deprecated - private Criterion computeCriterion(Object value) { - Criterion criterion = null; - SearchFields fields = entityClass.getAnnotation(SearchFields.class); - String textValue = "%" + value + "%"; - //textFields - String[] textFields = fields.txtFields(); - for (String propName : textFields) { - criterion = or(criterion, Restrictions.like(propName, textValue)); - } - //numFields - boolean isNumber = value instanceof Number; - if (value instanceof String) { - try { - Double.parseDouble((String) value); - isNumber = true; - } catch (NumberFormatException nfe) { - isNumber = false; - } - - } - if (isNumber) { - String[] numFields = fields.numFields(); - for (String propName : numFields) { - criterion = or(criterion, Restrictions.sqlRestriction(propName - + " like '" + textValue + "'")); - } - } - //boolFields - boolean isBoolean = value instanceof Boolean; - if (value instanceof String) { - isBoolean |= "true".equalsIgnoreCase((String) value) || "false" - .equalsIgnoreCase((String) value); - } - if (isBoolean) { - Boolean booleanValue; - if (value instanceof String) { - booleanValue = Boolean.valueOf((String) value); - } else { - booleanValue = (Boolean) value; - } - String[] boolFields = fields.numFields(); - for (String propName : boolFields) { - criterion = or(criterion, Restrictions.eq(propName, - booleanValue)); - } - } - //timeFields - String[] timeFields = fields.dateFields(); - for (String propName : timeFields) { - criterion = or(criterion, Restrictions.sqlRestriction(propName - + " like '" + textValue + "'")); - } - return criterion; - } - - @Deprecated - private Criterion or(Criterion crit1, Criterion crit2) { - if (crit1 == null) { - return crit2; - } - if (crit2 == null) { - return crit1; - } - return Restrictions.or(crit1, crit2); - } - /** * Cette methode appelle fireVetoableCreate et fireOnCreated * Si vous la surchargé, faites attention a appeler le super Deleted: trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaGeneratorUtilTest.java =================================================================== --- trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaGeneratorUtilTest.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaGeneratorUtilTest.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -1,64 +0,0 @@ -/* - * #%L - * ToPIA :: Persistence - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package org.nuiton.topia.generator; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -/** @author tchemit <chemit@codelutin.com> */ -public class TopiaGeneratorUtilTest { - - @Deprecated - @Test - public void testConvertVariableNameToConstantName() { - - String variableName = "abc"; - String expResult = "ABC"; - String result = TopiaGeneratorUtil.convertVariableNameToConstantName(variableName); - assertEquals(expResult, result); - - variableName = "ABC"; - expResult = "ABC"; - result = TopiaGeneratorUtil.convertVariableNameToConstantName(variableName); - assertEquals(expResult, result); - - variableName = "abC"; - expResult = "AB_C"; - result = TopiaGeneratorUtil.convertVariableNameToConstantName(variableName); - assertEquals(expResult, result); - - variableName = "AbC"; - expResult = "AB_C"; - result = TopiaGeneratorUtil.convertVariableNameToConstantName(variableName); - assertEquals(expResult, result); - - variableName = "AbC"; - expResult = "AB_C"; - result = TopiaGeneratorUtil.convertVariableNameToConstantName(variableName); - assertEquals(expResult, result); - } -} Modified: trunk/topia-persistence/src/test/java/org/nuiton/topiatest/deletetest/DeleteEntityTest.java =================================================================== --- trunk/topia-persistence/src/test/java/org/nuiton/topiatest/deletetest/DeleteEntityTest.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/test/java/org/nuiton/topiatest/deletetest/DeleteEntityTest.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -46,7 +46,6 @@ import org.nuiton.topia.TopiaDatabase; import org.nuiton.topia.TopiaException; import org.nuiton.topia.TopiaTestDAOHelper; -import org.nuiton.topia.generator.DAOAbstractTransformer; import org.nuiton.topiatest.Personne; import org.nuiton.topiatest.PersonneDAO; Modified: trunk/topia-persistence/src/test/xmi/topiatest.properties =================================================================== --- trunk/topia-persistence/src/test/xmi/topiatest.properties 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-persistence/src/test/xmi/topiatest.properties 2012-05-07 09:40:37 UTC (rev 2440) @@ -27,11 +27,6 @@ model.tagvalue.constantPrefix=PROPERTY_ model.tagvalue.generateDTOTopiaId=true -# Do not use this tag value (deprecated since 2.5) -#model.tagvalue.useLegacyDAO=true -# Replaced by this one, which will allow us to switch to any dao implementation... -#model.tagvalue.daoImplementation=org.nuiton.topia.persistence.TopiaDAOLegacy - #org.nuiton.topiatest.Company.class.tagvalue.naturalIdMutable=false #org.nuiton.topiatest.Company.attribute.siret.tagvalue.naturalId=true #org.nuiton.topiatest.Company.attribute.name.tagvalue.naturalId=true Deleted: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallback.java =================================================================== --- trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallback.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationCallback.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -1,59 +0,0 @@ -/* - * #%L - * ToPIA :: Service Migration - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package org.nuiton.topia.migration; - -import org.nuiton.topia.framework.TopiaContextImplementor; -import org.nuiton.util.Version; - -import java.lang.reflect.Method; - -/** - * Default migration call back to use. - * <p/> - * Replace deprecated implementation {@code ManualMigrationCallback}. - * - * @author tchemit <chemit@codelutin.com> - * @version $Id$ - * @since 2.3.4 - * @deprecated since 2.5, use now the {@link TopiaMigrationCallbackByClass} or {@link TopiaMigrationCallbackByMethod}. - * <b>will not be replaced and remove before version {@code 2.6}</b>. - */ -@Deprecated -public abstract class TopiaMigrationCallback extends TopiaMigrationCallbackByMethod { - - @Deprecated - protected Method getMigrationMethod(Version version) throws NoSuchMethodException { - - String methodName = "migrateTo_" + version.getValidName(); - - Method m = getClass().getMethod(methodName, - TopiaContextImplementor.class, - boolean.class, - boolean.class - ); - return m; - } -} \ No newline at end of file Modified: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationEngine.java =================================================================== --- trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationEngine.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationEngine.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -665,18 +665,6 @@ * * @param configuration the incoming hibernate configuration * @return the complete configuration usable by the service - * @deprecated since 2.5.3, prefer to use the method {@link #createHibernateConfiguration(Configuration)} - */ - @Deprecated - protected Configuration creaHibernateConfiguration(Configuration configuration) { - return createHibernateConfiguration(configuration); - } - - /** - * Creates the hibernate configuration to be used by the service. - * - * @param configuration the incoming hibernate configuration - * @return the complete configuration usable by the service * @since 2.5.3 */ protected Configuration createHibernateConfiguration(Configuration configuration) { Modified: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/TopiaReplicationModelBuilder.java =================================================================== --- trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/TopiaReplicationModelBuilder.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/TopiaReplicationModelBuilder.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -143,7 +143,6 @@ model.getNodes()) ); } - operation.register(model, node, phase, parameters); } /** @@ -227,28 +226,6 @@ } /** - * Instantie un nouveau modèle de réplication en respectant l'ordre induit - * par les {@code contracts}. - * - * @param contracts les types d'entités - * @param topiaIds les ids à dupliquer - * @return le modèle crée mais non initialisé. - * @throws TopiaException pour toute erreur lors de la création du modèle - * @deprecated since 2.4.3, prefer use method {@link #createModel(TopiaContext, TopiaEntityEnum[], boolean, String...)} - */ - @Deprecated - public ReplicationModel createModelWithComputedOrder(TopiaEntityEnum[] contracts, - String... topiaIds) - throws TopiaException { - - ReplicationModel model; - - - model = new ReplicationModel(contracts, false, topiaIds); - return model; - } - - /** * Instantie un nouveau modèle de réplication pour toutes les entitées. * <p/> * Ici, l'ordre est toujours calculé. Modified: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/TopiaReplicationOperation.java =================================================================== --- trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/TopiaReplicationOperation.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/TopiaReplicationOperation.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -27,11 +27,7 @@ import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaEntityEnum; -import org.nuiton.topia.replication.model.ReplicationModel; -import org.nuiton.topia.replication.model.ReplicationNode; import org.nuiton.topia.replication.model.ReplicationOperationDef; -import org.nuiton.topia.replication.model.ReplicationOperationPhase; import java.util.List; import java.util.ServiceLoader; @@ -58,30 +54,6 @@ public interface TopiaReplicationOperation { /** - * Creer et enregister une operation utilisateur apres la creation du - * modele via la methode - * <p/> - * {@link TopiaReplicationService#prepare(TopiaEntityEnum[], boolean, String...)}. - * - * @param model le modele de replication - * @param ownerNode le noeud proprietaire de l'operation - * @param phase la phase ou positionner l'operation - * @param parameters les parametres de l'operation - * @throws UnsupportedOperationException if can not register this operation - * (says when operation is only internal) - * @see ReplicationModel - * @see ReplicationOperationPhase - * @deprecated since 2.5.2, there is no difference between a user operation and an internal one. This method will be - * removed in version 2.6 and never replaced - */ - @Deprecated - void register(ReplicationModel model, - ReplicationNode ownerNode, - ReplicationOperationPhase phase, - Object... parameters) - throws UnsupportedOperationException; - - /** * Execute l'operation avec le parametrage donnee. * <p/> * Note : le commit sur le context cible doit etre geree dans la methode. Deleted: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/AttachAssociation.java =================================================================== --- trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/AttachAssociation.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/AttachAssociation.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -1,268 +0,0 @@ -/* - * #%L - * ToPIA :: Service Replication - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package org.nuiton.topia.replication.operation; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.EntityOperator; -import org.nuiton.topia.persistence.util.TopiaEntityHelper; -import org.nuiton.topia.replication.TopiaReplicationContext; -import org.nuiton.topia.replication.TopiaReplicationOperation; -import org.nuiton.topia.replication.model.ReplicationModel; -import org.nuiton.topia.replication.model.ReplicationNode; -import org.nuiton.topia.replication.model.ReplicationOperationDef; -import org.nuiton.topia.replication.model.ReplicationOperationPhase; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import static org.nuiton.i18n.I18n._; - -/** - * Pour attacher une association. - * <p/> - * L'opération requière 2 ou 3 paramètres : - * <ul> - * <li>{@code parameters[0]} : le nom de l'association à traiter</li> - * <li>{@code parameters[1]} : un drapeau pour savoir si on est sur le reverse - * de l'association</li> - * <li>{@code parameters[2]} : le noeud source de l'association - * (uniquement utilisé si on est sur le reverse d'une association)</li> - * </ul> - * <p/> - * Deux cas peuvent se produire : - * <p/> - * - le noeud de l'operation est la source de l'association, dans ce cas la - * {@code entities} contient les entites sources de l'association et on - * retrouve les entites associes a partir du type de l'association - * <p/> - * Ce premier cas est verifie quand {@code reverse} (le second parametre) est - * à {@code false}. - * <p/> - * - le noeud de l'operation est la cible de l'association, dans ce cas la - * {@code entities} contient les entities associées (cibles) de - * l'assocation et on retrouve les entities a partir d'un troisieme parametre - * qui donne le node source de l'association. - * <p/> - * Note : cette operation est interne, et n'est pas creable par l'utilisateur - * via la methode {@link #register(ReplicationModel, ReplicationNode, - * ReplicationOperationPhase, Object...)}. - * - * @author tchemit <chemit@codelutin.com> - * @since 2.2.0 - * @deprecated since 2.5.2, this operation will be removed in version 2.6 and - * will not be replaced : prefer use the {@link AttachLink} instead. - */ -@Deprecated -public class AttachAssociation implements TopiaReplicationOperation { - - /** Logger */ - private static final Log log = LogFactory.getLog(AttachAssociation.class); - - @Override - public void register(ReplicationModel model, - ReplicationNode ownerNode, - ReplicationOperationPhase phase, - Object... parameters) { - -// throw new UnsupportedOperationException( -// _("topia.replication.error.operation.uncreatable", getClass())); - } - - @Override - public void run(TopiaReplicationContext replicationContext, - ReplicationOperationDef operationDef, - TopiaContextImplementor srcCtxt, - TopiaContextImplementor dstCtxt, - List<? extends TopiaEntity> entities) throws TopiaException { - - String name = (String) operationDef.getParameters()[0]; - Boolean reverse = (Boolean) operationDef.getParameters()[1]; - - if (log.isDebugEnabled()) { - log.debug("currentNode : " + operationDef.getNode() + - ", association name : " + name + " reverse ? " + reverse); - } - - ReplicationNode ownerNode; - ReplicationNode cibleNode; - - EntityOperator<? super TopiaEntity> ownerOperator; - - // contient la liste des ids d'association autorisees ici - List<String> associationsId; - - // contient la liste des ids des entite source de l'association - List<String> ownerIds; - if (reverse) { - - // on est en mode reverse, i.e : - // - le noeud courant est la cible - // - le noeud cible est passe en parametre - // - nodeEntities contient les entities sources - - ownerNode = (ReplicationNode) operationDef.getParameters()[2]; - ownerOperator = ownerNode.getOperator(); - - cibleNode = operationDef.getNode(); - - ownerIds = TopiaEntityHelper.getTopiaIdList(entities); - associationsId = replicationContext.getEntityIds(cibleNode); - - } else { - - // on est en mode non reverse, i.e : - // - le noeud courant est la source - // - le noeud cible est deduit de l'association sur le noeud source - // - nodeEntities contient les entities cibles - - ownerNode = operationDef.getNode(); - ownerOperator = ownerNode.getOperator(); - - cibleNode = ownerNode.getAssociations().get(name); - - ownerIds = replicationContext.getEntityIds(cibleNode); - associationsId = TopiaEntityHelper.getTopiaIdList(entities); - } - - if (ownerIds == null || ownerIds.isEmpty()) { - // pas de donnees a traiter - log.info(_("topia.replication.attachAssociation.nothing.to.do", - ownerOperator)); - return; - } - - // contient la liste des entites sources de l'association - List<? extends TopiaEntity> ownerEntities; - - // on recharge obligatoirement les donnees sources car elles ont pu etre - // modifiees (dettachement d'association ou autres) - // ils nous faut les entites telles qu'elles sont en base source - - ownerEntities = TopiaEntityHelper.getEntitiesList( - srcCtxt, - ownerIds.toArray(new String[ownerIds.size()]) - ); - - boolean shouldCommit = false; - - if (log.isInfoEnabled()) { - log.info("ownerNode : " + ownerNode + " , targetNode : " + - cibleNode + ", association : " + name); - } - if (log.isDebugEnabled()) { - log.debug("owner ids : " + ownerIds); - log.debug("association ids : " + associationsId); - } - - for (TopiaEntity src : ownerEntities) { - - // les association cibles connues pour l'entite sur la base source - Collection<?> targetEntities = - (Collection<?>) ownerOperator.get(name, src); - - if (targetEntities == null || targetEntities.isEmpty()) { - if (log.isDebugEnabled()) { - log.debug("no association '" + name + "' attached to " + - src); - } - // pas de donnees dans l'association - continue; - } - if (log.isDebugEnabled()) { - log.debug("will try to attach " + targetEntities.size() + - " association(s) '" + name + "' to " + src); - } - - // l'entite repliquee a laquelle on veut attacher l'association - - TopiaEntity dst = dstCtxt.findByTopiaId(src.getTopiaId()); - - // les association cibles connues pour l'entite sur la base - // destination - Collection<?> dstTargetEntities = (Collection<?>) - ownerOperator.get(name, dst); - - // les ids des entities deja associees - List<String> dstTargetAssociationsId = - dstTargetEntities == null ? - Collections.<String>emptyList() : - TopiaEntityHelper.getTopiaIdList( - (List<? extends TopiaEntity>) dstTargetEntities); - - boolean shouldUpdate = false; - for (Object a : targetEntities) { - - TopiaEntity assosiationSrc = (TopiaEntity) a; - - // on verifie que l'association doit etre rattachee - if (associationsId.contains(assosiationSrc.getTopiaId())) { - if (dstTargetAssociationsId.contains( - assosiationSrc.getTopiaId())) { - // deja attache - if (log.isDebugEnabled()) { - log.debug("already attached association '" + name + - "' : " + assosiationSrc); - } - continue; - - } - - // la donnees doit etre attachee - - TopiaEntity assosiationDst = - dstCtxt.findByTopiaId(assosiationSrc.getTopiaId()); - ownerOperator.addChild(name, dst, assosiationDst); - if (log.isDebugEnabled()) { - log.debug("will attach association '" + name + "' : " + - assosiationDst); - } - shouldUpdate = true; - } - - } - - if (shouldUpdate) { - if (log.isTraceEnabled()) { - log.trace("will update " + dst.getTopiaId()); - } - //FIXME: on ne peut pas updater l'objet car l'objet peut rentre - // en conflit dans la session hibernate - // cela fonctionne sans faire d'update (heureusement...) - //dst.update(); - shouldCommit = true; - } - } - - if (shouldCommit) { - dstCtxt.commitTransaction(); - } - } -} Modified: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/AttachLink.java =================================================================== --- trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/AttachLink.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/AttachLink.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -75,16 +75,6 @@ private static final Log log = LogFactory.getLog(AttachLink.class); @Override - public void register(ReplicationModel model, - ReplicationNode ownerNode, - ReplicationOperationPhase phase, - Object... parameters) { - -// throw new UnsupportedOperationException( -// _("topia.replication.error.operation.uncreatable", getClass())); - } - - @Override public void run(TopiaReplicationContext replicationContext, ReplicationOperationDef operationDef, TopiaContextImplementor srcCtxt, Modified: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/DettachAssociation.java =================================================================== --- trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/DettachAssociation.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/DettachAssociation.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -58,16 +58,6 @@ private static final Log log = LogFactory.getLog(DettachAssociation.class); @Override - public void register(ReplicationModel model, - ReplicationNode ownerNode, - ReplicationOperationPhase phase, - Object... parameters) { - -// throw new UnsupportedOperationException( -// _("topia.replication.error.operation.uncreatable", getClass())); - } - - @Override public void run(TopiaReplicationContext replicationContext, ReplicationOperationDef operationDef, TopiaContextImplementor srcCtxt, Modified: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/Duplicate.java =================================================================== --- trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/Duplicate.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/Duplicate.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -61,15 +61,6 @@ LogFactory.getLog(Duplicate.class); @Override - public void register(ReplicationModel model, - ReplicationNode ownerNode, - ReplicationOperationPhase phase, - Object... parameters) throws UnsupportedOperationException { -// throw new UnsupportedOperationException( -// _("topia.replication.error.operation.uncreatable", getClass())); - } - - @Override public void run(TopiaReplicationContext replicationContext, ReplicationOperationDef operationDef, TopiaContextImplementor srcCtxt, Modified: trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/LoadLink.java =================================================================== --- trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/LoadLink.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/main/java/org/nuiton/topia/replication/operation/LoadLink.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -59,16 +59,6 @@ private static final Log log = LogFactory.getLog(LoadLink.class); @Override - public void register(ReplicationModel model, - ReplicationNode ownerNode, - ReplicationOperationPhase phase, - Object... parameters) { - -// throw new UnsupportedOperationException( -// _("topia.replication.error.operation.uncreatable", getClass())); - } - - @Override public void run(TopiaReplicationContext replicationContext, ReplicationOperationDef operationDef, TopiaContextImplementor srcCtxt, Modified: trunk/topia-service-replication/src/main/resources/META-INF/services/org.nuiton.topia.replication.TopiaReplicationOperation =================================================================== --- trunk/topia-service-replication/src/main/resources/META-INF/services/org.nuiton.topia.replication.TopiaReplicationOperation 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/main/resources/META-INF/services/org.nuiton.topia.replication.TopiaReplicationOperation 2012-05-07 09:40:37 UTC (rev 2440) @@ -3,6 +3,5 @@ # org.nuiton.topia.replication.operation.AttachLink org.nuiton.topia.replication.operation.LoadLink -org.nuiton.topia.replication.operation.AttachAssociation org.nuiton.topia.replication.operation.DettachAssociation org.nuiton.topia.replication.operation.Duplicate Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractTopiaReplicationServiceTest.java =================================================================== --- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractTopiaReplicationServiceTest.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractTopiaReplicationServiceTest.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -594,36 +594,6 @@ } } - @Deprecated - protected void createUnsupportedBeforeOperation(TopiaEntityEnum contract, - TopiaEntity entity, - Class<? extends TopiaReplicationOperation> operationClass, - Object... parameters) throws Exception { - - getLog().info("entity " + entity.getTopiaId()); - prepareModel(entity.getTopiaId()); - - getModelBuilder().addBeforeOperation(model, contract, operationClass, parameters); - // on ne doit pas avoir le droit de creer cette operation - fail(); - } - - @Deprecated - protected void createUnsupportedAfterOperation( - TopiaEntityEnum contract, - TopiaEntity entity, - Class<? extends TopiaReplicationOperation> operationClass, - Object... parameters) throws Exception { - - getLog().info("entity " + entity.getTopiaId()); - prepareModel(entity.getTopiaId()); -// model = service.createModel(getContracts()); -// model.detectDirectDependencies(); - getModelBuilder().addAfterOperation(model, contract, operationClass, parameters); - // on ne doit pas avoir le droit de creer cette operation - fail(); - } - protected void createSupportedBeforeOperation(TopiaEntityEnum contract, TopiaEntity entity, Class<? extends TopiaReplicationOperation> operationClass, Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java =================================================================== --- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -27,7 +27,11 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.junit.*; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; import org.nuiton.topia.TestHelper; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaContextFactory; @@ -35,8 +39,17 @@ import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaEntityEnum; import org.nuiton.topia.replication.model.ReplicationOperationPhase; -import org.nuiton.topia.replication.operation.*; -import org.nuiton.topia.test.entities.*; +import org.nuiton.topia.replication.operation.DettachAssociation; +import org.nuiton.topia.replication.operation.Duplicate; +import org.nuiton.topia.replication.operation.FakeOperation; +import org.nuiton.topia.replication.operation.UncreatableOperation; +import org.nuiton.topia.replication.operation.UnregistredOperation; +import org.nuiton.topia.test.entities.Person; +import org.nuiton.topia.test.entities.PersonImpl; +import org.nuiton.topia.test.entities.Pet; +import org.nuiton.topia.test.entities.PetImpl; +import org.nuiton.topia.test.entities.Race; +import org.nuiton.topia.test.entities.RaceImpl; import java.io.File; import java.io.IOException; @@ -126,7 +139,6 @@ getOperation(UncreatableOperation.class, true); getOperation(FakeOperation.class, true); getOperation(Duplicate.class, true); -// getOperation(AttachAssociation.class, true); getOperation(DettachAssociation.class, true); } @@ -216,34 +228,6 @@ // createUnsupportedAfterOperation(TopiaTestEntityEnum.Person, person, UncreatableOperation.class); // } - @Test(expected = IllegalArgumentException.class) - public void testCreateOperation_wrongParameterNumber() throws Exception { - - model = getModelBuilder().createModel(context, contracts, true, pet.getTopiaId()); - getModelBuilder().addBeforeOperation(model, TopiaTestEntityEnum.Pet, FakeOperation.class); - } - - @Test(expected = IllegalArgumentException.class) - public void testCreateOperation_wrongParameterNumber2() throws Exception { - - model = getModelBuilder().createModel(context, contracts, true, pet.getTopiaId()); - getModelBuilder().addBeforeOperation(model, TopiaTestEntityEnum.Pet, FakeOperation.class, String.class, String.class); - } - - @Test(expected = IllegalArgumentException.class) - public void testCreateOperation_wrongParameterType() throws Exception { - - model = getModelBuilder().createModel(context, contracts, true, pet.getTopiaId()); - getModelBuilder().addBeforeOperation(model, TopiaTestEntityEnum.Pet, FakeOperation.class, Integer.class); - } - - @Test(expected = IllegalArgumentException.class) - public void testCreateOperation_nullParameter() throws Exception { - - model = getModelBuilder().createModel(context, contracts, true, pet.getTopiaId()); - getModelBuilder().addBeforeOperation(model, TopiaTestEntityEnum.Pet, FakeOperation.class, (Object) null); - } - @Test public void testCreateOperation() throws Exception { Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplTest.java =================================================================== --- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplTest.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplTest.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -41,7 +41,6 @@ import org.nuiton.topia.persistence.TopiaEntityEnum; import org.nuiton.topia.persistence.util.TopiaEntityIdsMap; import org.nuiton.topia.replication.model.ReplicationModel; -import org.nuiton.topia.replication.operation.AttachAssociation; import org.nuiton.topia.replication.operation.DettachAssociation; import org.nuiton.topia.replication.operation.Duplicate; import org.nuiton.topia.replication.operation.FakeOperation; @@ -143,7 +142,6 @@ getOperation(UncreatableOperation.class, true); getOperation(FakeOperation.class, true); getOperation(Duplicate.class, true); - getOperation(AttachAssociation.class, true); getOperation(DettachAssociation.class, true); } Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/FakeOperation.java =================================================================== --- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/FakeOperation.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/FakeOperation.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -28,13 +28,9 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityHelper; import org.nuiton.topia.replication.TopiaReplicationContext; import org.nuiton.topia.replication.TopiaReplicationOperation; -import org.nuiton.topia.replication.model.ReplicationModel; -import org.nuiton.topia.replication.model.ReplicationNode; import org.nuiton.topia.replication.model.ReplicationOperationDef; -import org.nuiton.topia.replication.model.ReplicationOperationPhase; import java.util.List; @@ -48,22 +44,6 @@ new Class<?>[]{String.class}; @Override - public void register(ReplicationModel model, - ReplicationNode ownerNode, - ReplicationOperationPhase phase, - Object... parameters) { - - TopiaEntityHelper.checkParameters(PARAMETERS_CLASSES, parameters); - ReplicationOperationDef op = new ReplicationOperationDef( - phase, - getClass(), - ownerNode, - parameters - ); - ownerNode.addOperation(op); - } - - @Override public void run(TopiaReplicationContext replicationContext, ReplicationOperationDef operationDef, TopiaContextImplementor srcCtxt, Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UncreatableOperation.java =================================================================== --- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UncreatableOperation.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UncreatableOperation.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -30,15 +30,10 @@ import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.replication.TopiaReplicationContext; import org.nuiton.topia.replication.TopiaReplicationOperation; -import org.nuiton.topia.replication.model.ReplicationModel; -import org.nuiton.topia.replication.model.ReplicationNode; import org.nuiton.topia.replication.model.ReplicationOperationDef; -import org.nuiton.topia.replication.model.ReplicationOperationPhase; import java.util.List; -import static org.nuiton.i18n.I18n._; - /** * @author tchemit <chemit@codelutin.com> * @since 2.2.0 @@ -46,16 +41,6 @@ public class UncreatableOperation implements TopiaReplicationOperation { @Override - public void register(ReplicationModel model, - ReplicationNode ownerNode, - ReplicationOperationPhase phase, - Object... parameters) { - - throw new UnsupportedOperationException( - _("topia.replication.error.operation.uncreatable", getClass())); - } - - @Override public void run(TopiaReplicationContext replicationContext, ReplicationOperationDef operationDef, TopiaContextImplementor srcCtxt, Modified: trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UnregistredOperation.java =================================================================== --- trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UnregistredOperation.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-replication/src/test/java/org/nuiton/topia/replication/operation/UnregistredOperation.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -30,10 +30,7 @@ import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.replication.TopiaReplicationContext; import org.nuiton.topia.replication.TopiaReplicationOperation; -import org.nuiton.topia.replication.model.ReplicationModel; -import org.nuiton.topia.replication.model.ReplicationNode; import org.nuiton.topia.replication.model.ReplicationOperationDef; -import org.nuiton.topia.replication.model.ReplicationOperationPhase; import java.util.List; @@ -44,14 +41,6 @@ public class UnregistredOperation implements TopiaReplicationOperation { @Override - public void register(ReplicationModel model, - ReplicationNode ownerNode, - ReplicationOperationPhase phase, - Object... parameters) { - - } - - @Override public void run( TopiaReplicationContext replicationContext, ReplicationOperationDef operationDef, Deleted: trunk/topia-service-security/src/test/java/org/nuiton/topia/TestUtils.java =================================================================== --- trunk/topia-service-security/src/test/java/org/nuiton/topia/TestUtils.java 2012-05-07 09:18:19 UTC (rev 2439) +++ trunk/topia-service-security/src/test/java/org/nuiton/topia/TestUtils.java 2012-05-07 09:40:37 UTC (rev 2440) @@ -1,93 +0,0 @@ -/* - * #%L - * ToPIA :: Service Security - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package org.nuiton.topia; - -import java.io.File; - -import org.nuiton.util.FileUtil; - -/** - * Une classe pour avoir des choses utiles pour tous les tests. - * - * @author Chatellier Eric - * - * Last update : $Date$ - * @deprecated since 2.5, everything usefull already exists in the class {@link TestHelper} from {@code topia-persistence module}. - */ -@Deprecated -public abstract class TestUtils { - - protected static File basedir; - - protected static File targetdir; - - protected static File dirDatabase; - - public static File getBasedir() { - if (basedir == null) { - String base = System.getProperty("basedir"); - if (base == null || base.isEmpty()) { - base = new File("").getAbsolutePath(); - } - basedir = new File(base); - System.out.println("basedir for test " + basedir); - } - return basedir; - } - - public static File getTargetdir() { - if (targetdir == null) { - targetdir = new File(getBasedir(), "target"); - System.out.println("targetdir for test " + targetdir); - } - return targetdir; - } - - /** - * Create a temp dir and init isis with that temp dir as database. - * - * @throws Exception - */ - public static void init() throws Exception { - - File mavenTestDir = new File(getTargetdir() + File.separator + "surefire-workdir"); - dirDatabase = FileUtil.createTempDirectory("topia-test", "", mavenTestDir); - } - - public static File getDirDatabase() { - return dirDatabase; - } - - /** - * Delete created temp directory. - */ - public static void clean() { - if(dirDatabase != null) { - FileUtil.deleteRecursively(dirDatabase); - dirDatabase = null; - } - } -}
participants (1)
-
athimel@users.nuiton.org