r2247 - in trunk/topia-persistence/src/main/java/org/nuiton/topia: . framework persistence
Author: tchemit Date: 2011-04-15 14:50:58 +0200 (Fri, 15 Apr 2011) New Revision: 2247 Url: http://nuiton.org/repositories/revision/topia/2247 Log: Evolution #1462: Remove deprecated method TopiaDAOImpl deprecated since a long time Evolution #1398: Add hibernate constants to TopiaContextFactory clean code Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/TopiaContextFactory.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOLegacy.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/TopiaContextFactory.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/TopiaContextFactory.java 2011-04-15 08:52:51 UTC (rev 2246) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/TopiaContextFactory.java 2011-04-15 12:50:58 UTC (rev 2247) @@ -29,6 +29,7 @@ import org.apache.commons.collections.map.ReferenceMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.hibernate.cfg.Environment; import org.nuiton.topia.framework.TopiaContextImpl; import org.nuiton.topia.framework.TopiaUtil; @@ -36,7 +37,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Properties; /** @@ -60,6 +60,34 @@ new ReferenceMap(AbstractReferenceMap.HARD, AbstractReferenceMap.SOFT); + public final static String CONFIG_DEFAULT_SCHEMA = Environment.DEFAULT_SCHEMA; + + public final static String CONFIG_USER = Environment.USER; + + public final static String CONFIG_PASS = Environment.PASS; + + public final static String CONFIG_DRIVER = Environment.DRIVER; + + public final static String CONFIG_DIALECT = Environment.DIALECT; + + public final static String CONFIG_CONNECTION_PROVIDER = Environment.CONNECTION_PROVIDER; + + public final static String CONFIG_BYTECODE_PROVIDER = Environment.BYTECODE_PROVIDER; + + public final static String CONFIG_CURRENT_SESSION_CONTEXT_CLASS = Environment.CURRENT_SESSION_CONTEXT_CLASS; + + public final static String CONFIG_GENERATE_STATISTICS = Environment.GENERATE_STATISTICS; + + public final static String CONFIG_FORMAT_SQL = Environment.FORMAT_SQL; + + public final static String CONFIG_HBM2DDL_AUTO = Environment.HBM2DDL_AUTO; + + public final static String CONFIG_POOL_SIZE = Environment.POOL_SIZE; + + public final static String CONFIG_SHOW_SQL = Environment.SHOW_SQL; + + public final static String CONFIG_URL = Environment.URL; + /** * Permet de connaitre la liste des contexts encore en memoire, utile pour * du debuggage. @@ -68,11 +96,11 @@ */ public static List<String> getContextOpened() { List<String> result = new ArrayList<String>(); - for (Entry<Properties, TopiaContext> e : contextCache.entrySet()) { + for (Properties e : contextCache.keySet()) { // Useless test : will never happened that e.getValue() is null, // not allowed for {@link AbstractReferenceMap#SOFT}. // if (e.getValue() != null) { - result.add(e.getKey().getProperty("hibernate.connection.url")); + result.add(e.getProperty(CONFIG_URL)); // } } return result; 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 2011-04-15 08:52:51 UTC (rev 2246) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2011-04-15 12:50:58 UTC (rev 2247) @@ -241,7 +241,7 @@ String classService = config.getProperty(key); try { Class<?> forName = Class.forName(classService); - Object newInstance = forName.newInstance(); + Object newInstance = forName.getConstructor().newInstance(); TopiaService service = (TopiaService) newInstance; if (key.equals("topia.service." + service.getServiceName())) { result.put(service.getServiceName(), service); 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 2011-04-15 08:52:51 UTC (rev 2246) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java 2011-04-15 12:50:58 UTC (rev 2247) @@ -34,6 +34,7 @@ import org.hibernate.mapping.Table; import org.hibernate.tool.hbm2ddl.DatabaseMetadata; import org.hibernate.tool.hbm2ddl.TableMetadata; +import org.nuiton.topia.TopiaContextFactory; import org.nuiton.topia.TopiaNotFoundException; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.RecursiveProperties; @@ -59,9 +60,15 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(TopiaUtil.class); - public final static String HIBERNATE_DEFAULT_SCHEMA = "hibernate.default_schema"; - public final static String TOPIA_PERSISTENCE_CLASSES = "topia.persistence.classes"; + /** @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. @@ -122,7 +129,7 @@ * @return the pattern computed */ public static Pattern getTopiaPattern(String format, - Class<? extends TopiaEntity>... classes) { + Class<? extends TopiaEntity>... classes) { String[] entityPatterns = new String[classes.length]; for (int i = 0; i < classes.length; i++) { Class<? extends TopiaEntity> aClass = classes[i]; @@ -249,7 +256,8 @@ if (testTable == null) { throw new IllegalArgumentException( - "could not find entity with name " + classMapping.getClassName()); + "could not find entity with name " + + classMapping.getClassName()); } @@ -292,6 +300,6 @@ * @return schema name */ public static String getSchemaName(Configuration config) { - return config.getProperty(HIBERNATE_DEFAULT_SCHEMA); + return config.getProperty(TopiaContextFactory.CONFIG_DEFAULT_SCHEMA); } } 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 2011-04-15 08:52:51 UTC (rev 2246) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java 2011-04-15 12:50:58 UTC (rev 2247) @@ -385,23 +385,13 @@ boolean existByQuery(TopiaQuery query) throws TopiaException; /** - * Compte le nombre d'entites en base - * - * @return le nombre total d'entites existantes - * @throws TopiaException if any pb while getting datas - * @deprecated since 2.3.4 ambiguous name, use {@link #count()} instead. - */ - @Deprecated - long size() throws TopiaException; - - /** * Count the number of existing entities. * * @return number of total entities * @throws TopiaException if any pb while getting datas * @since 2.3.4 */ - int count() throws TopiaException; + long count() throws TopiaException; /** * Count the number of entities based on {@code query}. Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java 2011-04-15 08:52:51 UTC (rev 2246) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java 2011-04-15 12:50:58 UTC (rev 2247) @@ -43,7 +43,6 @@ import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.metadata.ClassMetadata; -import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.event.TopiaEntityListener; import org.nuiton.topia.event.TopiaEntityVetoable; @@ -181,26 +180,11 @@ log.debug("StackTrace", eee); } } -// } catch (InstantiationException eee) { -// if (log.isWarnEnabled()) { -// log.warn("Impossible d'instancier " + classname + "Impl"); -// } -// if (log.isDebugEnabled()) { -// log.debug("StackTrace", eee); -// } -// } catch (IllegalAccessException eee) { -// if (log.isWarnEnabled()) { -// log.warn("Impossible d'instancier " + classname + "Impl"); -// } -// if (log.isDebugEnabled()) { -// log.debug("StackTrace", eee); -// } -// } if (result == null) { // le impl n'est pas trouvé on essai avec la classe elle meme try { - result = entityClass.newInstance(); + result = entityClass.getConstructor().newInstance(); if (log.isDebugEnabled()) { log.debug("Utilisation de la classe " + classname + " pour " + classname); @@ -213,21 +197,6 @@ log.debug("StackTrace", eee); } } -// } catch (InstantiationException eee) { -// if (log.isWarnEnabled()) { -// log.warn("Impossible d'instancier " + classname); -// } -// if (log.isDebugEnabled()) { -// log.debug("StackTrace", eee); -// } -// } catch (IllegalAccessException eee) { -// if (log.isWarnEnabled()) { -// log.warn("Impossible d'instancier " + classname); -// } -// if (log.isDebugEnabled()) { -// log.debug("StackTrace", eee); -// } -// } } if (result == null) { @@ -563,21 +532,8 @@ return result; } - /** - * Count number of existing entities using {@link TopiaQuery#executeCount(TopiaContext)} - * - * @return a long for the number of entities in database - * @deprecated since 2.3.4 ambiguous name, use {@link #count()} instead. - */ @Override - @Deprecated - public long size() throws TopiaException { - long result = count(); - return result; - } - - @Override - public int count() throws TopiaException { + public long count() throws TopiaException { int result = countByQuery(createQuery()); return result; } 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 2011-04-15 08:52:51 UTC (rev 2246) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOLegacy.java 2011-04-15 12:50:58 UTC (rev 2247) @@ -55,30 +55,29 @@ package org.nuiton.topia.persistence; -import java.io.Serializable; -import java.lang.reflect.InvocationTargetException; -import java.security.Permission; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.Criteria; import org.hibernate.FlushMode; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.event.TopiaEntityListener; -import org.nuiton.topia.event.TopiaEntityVetoable; -import org.nuiton.topia.framework.TopiaContextImplementor; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.hibernate.metadata.ClassMetadata; -import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.event.TopiaEntityListener; +import org.nuiton.topia.event.TopiaEntityVetoable; +import org.nuiton.topia.framework.TopiaContextImplementor; +import java.io.Serializable; +import java.lang.reflect.InvocationTargetException; +import java.security.Permission; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * Cette classe permet d'avoir un ensemble de méthode implantée de façon * standard et plus spécifiquement pour Hibernate. @@ -548,7 +547,7 @@ criterion = or(criterion, Restrictions.like(propName, textValue)); } //numFields - boolean isNumber = (value instanceof Number); + boolean isNumber = value instanceof Number; if (value instanceof String) { try { Double.parseDouble((String) value); @@ -566,10 +565,10 @@ } } //boolFields - boolean isBoolean = (value instanceof Boolean); + boolean isBoolean = value instanceof Boolean; if (value instanceof String) { - isBoolean |= ("true".equalsIgnoreCase((String) value) || "false" - .equalsIgnoreCase((String) value)); + isBoolean |= "true".equalsIgnoreCase((String) value) || "false" + .equalsIgnoreCase((String) value); } if (isBoolean) { Boolean booleanValue; @@ -731,21 +730,7 @@ } } - /** - * Count number of existing entities using {@link org.nuiton.topia.framework.TopiaQuery#executeCount(org.nuiton.topia.TopiaContext) } - * FIXME-FD20091224 change type to int like in 2.2.2 version - * - * @return a long for the number of entities in database - */ @Override - public long size() throws TopiaException { - //int result = findAll().size(); -// List result = this.getContext().find("SELECT count(*) FROM " + getEntityClass().getName() + "Impl"); -// return (Long)result.get(0); - return new TopiaQuery(getEntityClass()).executeCount(context); - } - - @Override public E findByProperties(Map<String, Object> properties) throws TopiaException { return query(Restrictions.allEq(properties)); @@ -776,10 +761,10 @@ criteria.add(criterion); criteria.setMaxResults(1); List<E> result = (List<E>) criteria.list(); - int sizeBefore = (result != null ? result.size() : 0); + int sizeBefore = result != null ? result.size() : 0; result = getContext().getFiresSupport().fireEntitiesLoad(context, result); - int sizeAfter = (result != null ? result.size() : 0); + int sizeAfter = result != null ? result.size() : 0; if (sizeAfter < sizeBefore) { if (log.isDebugEnabled()) { log.debug((sizeBefore - sizeAfter) @@ -846,7 +831,7 @@ * Renvoie un Criteria créé avec l'entityClass * @param mode le FlushMode du Criteria * @return le Criteria nouvellement créé - * @throws org.nuiton.topia.TopiaException if any pb + * @throws TopiaException if any pb */ private Criteria createCriteria(FlushMode mode) throws TopiaException { Criteria criteria = getSession().createCriteria(entityClass); @@ -857,7 +842,7 @@ /** * Renvoie la Session contenue dans le contexte * @return hibernate session - * @throws org.nuiton.topia.TopiaException if any pb + * @throws TopiaException if any pb */ private Session getSession() throws TopiaException { return getContext().getHibernate();
participants (1)
-
tchemit@users.nuiton.org