Why make donate
google analytics

Rapport des demandes du serveur Redmine

SujetDescriptionStatutParTypePrioritéVersionCatégorieDate de création
Replace (using a tag-value) the TopiaException to TopiaruntimeException in generated codeIt is annoying to have a none runtime exception when asking a DAO from the DAOHelper, this is clearly a technical issue and we should not have to catch this exception. Let's call the tag-value *topia.runtime.exception*, if not filled, will used as before the TopiaException, otherwise use the given runtime exception if value if true.AssignétchemitEvolutionNormal 3.0generation04/02/2012 à 09:45
use JPA api Assigné - EvolutionNormal 3.0topia-persistence08/03/2010 à 04:25
allow to add method generic method in a DAO with clean modelIn WaoUserDAO, i want to add a method with signature List findUsersByCompany(Company company) If i add this to the model, it's ok but in WaoUserDAOImpl, i have to override it : public class WaoUserDAOImpl extends WaoUserDAOAbstract { @Override public List findUsersByCompany(Company company) throws TopiaException { TopiaQuery query = createQuery(). addEquals(WaoUser.PROPERTY_COMPANY, company). addOrder(WaoUser.PROPERTY_FIRST_NAME, WaoUser.PROPERTY_LAST_NAME); return findAllByQuery(query); } } The problem is that the code doesn't compile. findAllByQuery(query); do not return List but return List. As a workaround, i could change the return type of the method declared in model to List. It will work fine but it's bad to have a « E » with no semantic in the model. A better way to do that would be to use Templates available in UML but argouml doesn't not support it. A solution to this problem would be to allow List to be used in the model while to generator will replace it by List in the code to override. This issue may depend on issue #610Nouveau - EvolutionNormal 3.0topia-persistence24/12/2010 à 12:14
Use Hibernate 4 AssignéfdesboisEvolutionNormal 3.0topia-persistence14/03/2012 à 06:16
Update/clean all site documentationMany documentation files are obsolete or false. We must do a big clean on documentation and make site acceptable for publicNouveau - EvolutionUrgent 3.0Documentation10/12/2010 à 06:30
Use JTA api AssignéechatellierEvolutionHaut 3.0topia-persistence02/03/2010 à 06:25
Multiple migration cannot be resumed if failureI have too migration to do : let's say 1.6 and 1.7. Topia will start to migrate 1.6, commit modifications, then migrate to 1.7 then commit, finally save the schema version 1.7. Now, suppose migration to 1.7 fail. If i re-run migrations, topia will restart migration from 1.6 and do this migration two times while those changes has been done and commited. Topia should migrate to 1.6, change cshema version to 1.6, commit, migrate 1.7, change version to 1.7, commit etc.NouveautchemitAnomalieBas 3.0service migration17/01/2011 à 03:58
Improve project designh3. Templates * Separate Template api from runtime api (new module *topia-persistence-templates*) h3. Tests This part can be changed, if we find better way to deals with tests. * Create a strong persistence test base (new module *topia-persistence-test*) * use this new module to test services * Do not export topia-persistence as test classifierNouveau - EvolutionNormal 3.0 - 29/01/2010 à 10:46
Remplacer l'utilisation de la requete SQL dans la génération pour le cas du delete N-NRelation N-N sans classe association. La table jointure existe mais pas en tant qu'entité hibernate. Ex :
List list = getContext().getHibernate().createSQLQuery(
                    "SELECT main.topiaid " +
                    "from sampleRow main, fishingzone_samplerow secondary " +
                    "where main.topiaid=secondary.sampleRow" +
                    " and secondary.fishingZone='" + entity.getTopiaId() + "'")
                    .addEntity("main", fr.ifremer.wao.WaoModelDAOHelper.getImplementationClass(fr.ifremer.wao.entity.SampleRow.class)).list();
            for (fr.ifremer.wao.entity.SampleRow item : list) {
                item.removeFishingZone(entity);
            }
La fonction HQL elements() permettrait de resourdre le probleme, et donc une requete HQL pourrait remplacer cette requete SQL avec TopiaQuery par exemple
Nouveau - EvolutionNormal 3.0 - 16/02/2010 à 06:02
Make DAOHelper instantiable and no more staticIt could be useful for injection purpose to avoid having static management on this class. Maybe TopiaContext could be set in an other safely way. For the moment, just remove static seems better.Nouveau - EvolutionHaut 3.0topia-persistence17/04/2011 à 12:54
Add DAO interface generationAdd DAO interface generation. DAO interface will be composed of all CRUD operation without any reference on Topia objects. Depends on JTA evolution.Nouveau - EvolutionNormal 3.0topia-persistence02/03/2010 à 06:24
Annotation TopiaTransactionIntroduce this annotation to manage easily transactions. - Need other annotation @TopiaExceptionHandler over custom method to manage errors during transaction management - Need other annotation @TopiaRootContext to provide the rootContext where transactions will be opened - Need other annotation @TopiaDAOHelper to inject the transaction in daoHelper used in the application Usage :

   public class MyService {

      @TopiaRootContext
      protected TopiaContext rootContext;

      @TopiaDAOHelper
      protected MyDAOHelper daoHelper;

      public MyService(Properties properties) throws TopiaNotFoundException {
         rootContext = TopiaContextFactory.getContext(properties);
      }

      @TopiaExceptionHandler
      protected void onException(TopiaException ex) {
          // implement some error management, transaction is already rollback if needed
      }

      @TopiaTransaction
      public Book saveBook(Book book) {
      
          BookDAO bookDAO = daoHelper.getBookDAO();

          bookDAO.update(book);

          return book; 
      }

   }
- TopiaContextHandler could be useless if TopiaException becomes a RuntimeException (as any other framework for technical exceptions) - TopiaDAOHelper must become instantiable (and NOT static), interface seems necessary - Maybe TopiaDAOHelper could contains the rootContext, only Properties will be necessary. Note that Helper suffix is not appropriate, and Factory seems better. Simple version with those changes :

   public class MyService {

      @TopiaDAOFactory
      protected MyDAOFactory daoFactory;

      public MyService(Properties properties) {
          daoFactory = new MyDAOFactory(properties);
      }

      @TopiaTransaction
      public Book saveBook(Book book) {
      
          BookDAO bookDAO = daoFactory.getBookDAO();

          bookDAO.update(book);

          return book; 
      }

   }
Options could be useful for @TopiaTransaction like readOnly (do not commit). In the future this annotation could be used with JTA and/or Spring @Transactionnal management
Nouveau - EvolutionNormal 3.0topia-persistence17/04/2011 à 12:48
Clean api- complete javadoc - clean api - clean code Done on **TopiaDAO**AssignétchemitEvolutionNormal 3.0topia-persistence23/04/2010 à 04:27
Tests before JPA migration- TopiaContextFactory - TopiaContextImpl - TopiaQuery - TopiaFiresSupportNouveau - EvolutionNormal 3.0tests07/05/2010 à 05:18
Suppression de toutes les classes et ressources dépréciées Nouveau - EvolutionNormal 3.0service migration13/06/2010 à 08:04
Refactor generated code for delete on relation without association entityIt's pretty tricky !
List list = getContext().getHibernate().createSQLQuery(
                    "SELECT main.topiaid " +
                    "from contact2 main, contacts_party2 secondary " +
                    "where main.topiaid=secondary.contacts" +
                    " and secondary.party2='" + entity.getId() + "'")
                    .addEntity("main", org.nuiton.topia.TopiaTestDAOHelper.getImplementationClass(org.nuiton.topiatest.deletetest.Contact2.class)).list();
AssignéfdesboisEvolutionNormal 3.0generation07/05/2010 à 10:10
Add integration tests Nouveau - EvolutionNormal 3.0service migration12/07/2010 à 05:11
Make tutorial of migration service- howto use it - best pratices to write migration callbacksNouveau - EvolutionNormal 3.0service migration12/07/2010 à 05:13
Dont reference external entities in project's DAOHelperLes entités externes au projets sont quand même référencé dans le DAOHelper du projet. Ce qui pose des problèmes lorsque l'on fait par exemple appel à getImplementationClasses.Nouveau - AnomalieNormal 3.0topia-persistence01/04/2011 à 10:16
Natural id and not null attributes are not propagated on generalized entitiesIf A have some natural ids or not null attributes, B extend A, B doesnt have natural ids and not null attributes of A.RésolusletellierAnomalieNormal 2.6.10topia-persistence05/04/2012 à 10:30
Add schema if needed on create and drop index on hibernate mappingSchema is missing on create and drop index hibernate mapping :
    
        CREATE INDEX <%=indexName%> ON <%=tableName%>(<%=propertyName%>)
        DROP INDEX <%=indexName%>
    
RésolusletellierAnomalieNormal 2.6.10topia-persistence06/04/2012 à 09:58
Depreciate method create(naturalId) on DAOsLorsque l'on a des naturalIds dans Topia, les DAO ont une méthode create qui prend les naturalIds en paramètre, hors cette méthode est ambigus, il existe déjà une méthode create sur le TopiaDAOImpl. L'idée serait de la renommer en createByNaturalId. Je vais aussi ajouter la méthode createByNotNull. *+Attention+ : lorsque la méthode sera supprimer, justement parce que la méthode est ambigus, ça ne cassera pas à la compilation mais au runtime !*RésolusletellierAnomalieNormal 2.6.10topia-persistence06/04/2012 à 09:44
Bad index generated with indexForeignKeys for a one-2-many renamed relationHaving this ona PollAccount entity

   
   

Should obtain this :

  CREATE INDEX idx_PollAccount_pollsCreated ON poll(creator)
  DROP INDEX idx_PollAccount_pollsCreated

but is generated :

  CREATE INDEX idx_PollAccount_pollsCreated ON poll(pollAccount)
  DROP INDEX idx_PollAccount_pollsCreated

--> the renamed attribute *creator* is not well used.
RésolutchemitAnomalieNormal 2.6.9generation14/03/2012 à 12:46
Manage in the EntityEnum contract the properties marked as not-nullTo be able to create by generic algorithms entity using not-null properties, we need to execute the dao.create(xxx) with entity or properties map of all not-null properties like it is alreay done for natural ids. Adding some methods in TopiaEntityEnum and in TopaiEntityOperator.RésolutchemitEvolutionNormal 2.6.9topia-persistence29/03/2012 à 02:12
Updates to mavenpom 3.2 RésolutchemitTâcheNormal 2.6.9dependencies29/03/2012 à 11:44
Updates to nuiton-utils 2.4.6 RésolutchemitTâcheNormal 2.6.9dependencies14/03/2012 à 02:36
Migrate FilterPagerUtil from nuiton-webMigration the org.nuiton.web.struts2.FilterPagerUtil from the project org.nuiton.web:nuiton-struts2. This util class works on TopiaQuery, so it should be in Topia rather.Résolu - EvolutionNormal 2.6.9topia-persistence14/03/2012 à 02:20
Bad index generated with indexForeignKeys for a many-2-many renamed relationGenerated code is > CREATE INDEX idx_Contact_secondaryObservers ON contact_secondaryobservers(waoUser) But it should be > CREATE INDEX idx_Contact_secondaryObservers ON contact_secondaryobservers(contact)RésolublenyAnomalieNormal 2.6.9generation20/03/2012 à 02:34
Clean tests in topia-persistenceCreate a nice and simple TopiaDatabase rule to obtain an isolated db for each test.RésolutchemitEvolutionNormal 2.6.8tests02/03/2012 à 11:06
Updates to mavenpom 3.1.1 RésolutchemitTâcheNormal 2.6.8dependencies10/02/2012 à 12:03
Using IN in TopiaQuery does not work when using object listThis works fine with list of ids (string) but not with objects (parameter need to be wrapped by comma as Said by Arnaud :))RésolutchemitAnomalieNormal 2.6.8topia-persistence02/03/2012 à 08:33
Can not pass a list parameter in aTopiaQueryWhile using a query with a list paremters, it does not work :
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
    org.hibernate.type.descriptor.java.StringTypeDescriptor.unwrap(StringTypeDescriptor.java:40)
    org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$1.doBind(VarcharTypeDescriptor.java:52)
    org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:91)
    org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:283)
    org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:278)
    org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:67)
    org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:578)
    org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1716)
    org.hibernate.loader.Loader.doQuery(Loader.java:801)
    org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    org.hibernate.loader.Loader.doList(Loader.java:2542)
    org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
    org.hibernate.loader.Loader.list(Loader.java:2271)
    org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:459)
    org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:365)
    org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
    org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
    org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
    org.nuiton.topia.framework.TopiaContextImpl.find(TopiaContextImpl.java:1016)
due to this code :
if (value.getClass().isArray()) {
    query.setParameterList(name, (Object[]) value);
} else {
    query.setParameter(name, value);
}
Should be replace by :
if (value.getClass().isArray()) {
    query.setParameterList(name, (Object[]) value);
} else if (value instanceof Collection) {
    query.setParameterList(name, (Collection) value);
} else {
    query.setParameter(name, value);
}
RésolutchemitAnomalieNormal 2.6.7topia-persistence20/02/2012 à 10:42
Add operation IN and NOT_IN for TopiaQuery RésolutchemitEvolutionNormal 2.6.7topia-persistence20/02/2012 à 11:09
dao.countByQuery does not work in some casesThis code is not correct if a mainalias and setselect and a distinct on a query
if (distinct && StringUtils.isNotEmpty(mainAlias)) {
   count.append("DISTINCT ").append(mainAlias);
   // When distinct is not set, use 
*
}
RésolutchemitAnomalieHaut 2.6.7topia-persistence01/02/2012 à 01:47
Improve TopiaQueryUsage of floating StringBuilder as internal state is not a good idea. When user set, or add something, it is better to store it in concrete states (String, List). The "StringBuilder" part can only be used to render the queryRésolutchemitEvolutionHaut 2.6.7topia-persistence01/02/2012 à 01:55
Add TagValue for EntityDTOTransformer to add an "id" propertyDuring generation of DTO from entities, it should be usefull to have a property "id", generate if a tagValue like "generateId" is given.RésoluymartelEvolutionNormal 2.6.7generation18/01/2012 à 03:46
Updates to hibernate 3.6.10 RésolutchemitTâcheNormal 2.6.7dependencies15/02/2012 à 03:13
Update to slf4j 1.6.4 RésoluechatellierTâcheNormal 2.6.6dependencies09/01/2012 à 11:26
Generated code doesn't compile since #1855In DCF5CodeDAOAbstract#delete(E entity)
for (SampleRow item : list) {
    item.removeDCF5Code(entity);
}
But generated operation is remove*d*CF5Code
RésolublenyAnomalieNormal 2.6.6generation05/01/2012 à 11:11
Update to hibernate 3.6.9.Final RésoluechatellierTâcheNormal 2.6.6dependencies09/01/2012 à 11:14
Update to h2 1.3.163 RésoluechatellierTâcheNormal 2.6.6dependencies09/01/2012 à 11:25
Update to nuiton-utils 2.4.1 RésoluechatellierTâcheNormal 2.6.6dependencies09/01/2012 à 11:25
Updates to eugene 2.4.2Requires to solve #1855RésolutchemitTâcheNormal 2.6.5dependencies19/12/2011 à 11:46
New tagvalue indexForeignKeys to generate index on FK for nm-multiplicity attributesThis can improve a lot some treatments with huge amount of data.RésolutchemitEvolutionNormal 2.6.5generation27/12/2011 à 03:17
Bad property generationIf a property is named *aProperty*, then getter and setter should be
getaProperty()
setaProperty()
and not
getAProperty()
setAProperty()
RésolutchemitAnomalieUrgent 2.6.5generation19/12/2011 à 03:42
Updates to hibernate 3.6.8.Final RésolutchemitTâcheNormal 2.6.4dependencies28/10/2011 à 10:13
Remove old hibernate namespace in mappingthere is still some references to old hibernate namespace (*http://hibernate.sourceforge.net/*). Use now only this one : *http://www.hibernate.org/dtd/*RésolutchemitAnomalieNormal 2.6.4service migration28/10/2011 à 10:12
Open TopiaSQLQuery apiMake this object more open to avoid usage of any hibernate api.RésolutchemitEvolutionNormal 2.6.4topia-persistence12/11/2011 à 08:05
Add methods to avoid expose hibernate apiAdd
TopiaUtil.isSchemaExist(TopiaContext tx,String entityName)
to not use in this method from outside
TopiaUtil.isSchemaExist(Configuration configuration,String entityName)
RésolutchemitEvolutionNormal 2.6.4topia-persistence12/11/2011 à 08:20
Updates to nuiton-utils 2.3.1 RésolutchemitTâcheNormal 2.6.4dependencies13/11/2011 à 05:12
Updates to org.apache.commons.lang3Be ware the generated code will use now commons-lang3 so you will need the dependency :

  org.apache.commons
  commons-lang3
  3.0.1

RésolutchemitEvolutionNormal 2.6.4generation13/11/2011 à 05:08
Do not force using "entity" stereotype on enumeration with QueryHelperTransformerEnumeration type must be ignore to avoid creating object property for queries. Hibernate will consider enumeration as a simple type.RésolufdesboisAnomalieNormal 2.6.3topia-persistence25/09/2011 à 11:39
Introduce the TopiaEntityEnum into the generated daothis object can help to obtain contract, implementation inside the dao without doing any hardcoded things : all is generated :)RésolutchemitEvolutionNormal 2.6.3topia-persistence03/10/2011 à 05:52
Do not generate DAOImpl if already found in classpathUSe the same logic than for entity : if impl is found in class-path do not generateit.RésolutchemitEvolutionNormal 2.6.3topia-persistence04/10/2011 à 09:08
Remove code in generators that prevent generation of classes alerady in classpathInstead, the added option in Eugene should deal with that #1771RésolutchemitEvolutionBas 2.6.3generation11/10/2011 à 10:22
Empty documentation on entities should not be generatedNow, this is generated when there is no documentation : /** * getDesign : * @return boolean */ boolean getDesign(); It would be better to skip documentation generation in that case.RésolutchemitEvolutionNormal 2.6.3generation11/10/2011 à 10:00
Updates to eugene 2.4.1Requires for some new featuresRésoluathimelTâcheNormal 2.6.3dependencies13/10/2011 à 05:12
Improve the method TopiaDAOImpl.newInstance()Please could we just avoid to do some hardcorded stuff like this :
result = ((Class) Class.forName(classname + "Impl"))
                    .newInstance();

A quick solution is to use the *org.nuiton.topia.persistence.TopiaEntityEnum#getImplementation().newInstance()*
RésolutchemitEvolutionNormal 2.6.3topia-persistence03/10/2011 à 05:07
Hibernate mappings fails to load in offline modeIn offline mode, hibernate mapping dtd is downloaded from http://hibernate.org/. Hibernate DTD resolver doesn't seams to work :(RésolutchemitAnomalieUrgent 2.6.3topia-persistence10/10/2011 à 10:35
Do not generate delete method in DAOAbstract if not needed RésolutchemitEvolutionNormal 2.6.3generation19/10/2011 à 06:07
add a executeSQL in TopiaContextSome project still need to execute sql code over topia, using this method remove yet another link to hibernate in projects.RésolutchemitEvolutionNormal 2.6.3topia-persistence14/10/2011 à 04:01
Restore fails with recent h2 versionWith current h2 version and topia, restore file fails with excetion:
Caused by: org.hibernate.exception.GenericJDBCException: could not execute
native bulk manipulation query
        at
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
        at
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
        at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        at
org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:219)
        at org.hibernate.impl.SessionImpl.executeNativeUpdate(SessionImpl.java:1300)
        at org.hibernate.impl.SQLQueryImpl.executeUpdate(SQLQueryImpl.java:365)
        at
org.nuiton.topia.framework.TopiaContextImpl.restore(TopiaContextImpl.java:1338)
        ... 3 more
Caused by: org.h2.jdbc.JdbcSQLException: Timeout trying to lock table
"SYS"; SQL statement:

SET CLUSTER '' [50200-160]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
        at org.h2.message.DbException.get(DbException.java:169)
        at org.h2.message.DbException.get(DbException.java:146)
        at org.h2.table.RegularTable.doLock(RegularTable.java:500)
        at org.h2.table.RegularTable.lock(RegularTable.java:434)
        at org.h2.engine.Database.lockMeta(Database.java:748)
        at org.h2.engine.Database.addDatabaseObject(Database.java:862)
        at org.h2.command.dml.Set.addOrUpdateSetting(Set.java:401)
        at org.h2.command.dml.Set.update(Set.java:101)
        at org.h2.command.dml.RunScriptCommand.execute(RunScriptCommand.java:66)
        at org.h2.command.dml.RunScriptCommand.update(RunScriptCommand.java:45)
        at org.h2.command.CommandContainer.update(CommandContainer.java:73)
        at org.h2.command.Command.executeUpdate(Command.java:219)
        at
org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:143)
        at
org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:129)
        at
org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:210)
        ... 6 more 
RejetéechatellierEvolutionNormal 2.6.3topia-persistence16/10/2011 à 10:11
Improve generated java filesDAO and entities should be nice code, but still not :(RésolutchemitEvolutionNormal 2.6.3generation20/10/2011 à 02:19
Permits not to generate getXXX() methods for boolean properties on EntitiesApply the #1781 for entities generation.RésolutchemitEvolutionNormal 2.6.3generation20/10/2011 à 06:21
Cannot use a function on TopiaQueryquery.addWhere("lower(name)", TopiaQuery.Op.LIKE, "%" + nameToFind.toLowerCase() + "%"); The property name is used as parameterName, then in that case, parameterName is ":lower(name)" which fails at runtimeRésoluathimelAnomalieNormal 2.6.2topia-persistence21/09/2011 à 09:16
Can not use enumeration in model and QueryHelperTransformerProperties for field of type Enum are not generated, thus generated QueryHelper doesn't compileRésolufdesboisAnomalieNormal 2.6.2generation01/08/2011 à 10:23
Cannot use MyDAO.create(My.PROPERTY_CLIENT) with isClient() methodWhen I have 2 entities (contact, client) with an association from contact to client, I will have some getClient():Client and setClient(client):void on the generated contact entity. fine. I also need a method on contact which is isClient():boolean. When doing : contactDAO.create(Contact.PROPERTY_CLIENT, null); I get : java.lang.IllegalArgumentException: Can't put properties on new Object at org.nuiton.topia.persistence.TopiaDAOImpl.create(TopiaDAOImpl.java:353) at org.nuiton.topia.persistence.TopiaDAOImpl.create(TopiaDAOImpl.java:318) at org.nuiton.topia.testproperty.TopiaPropertyTest.testCreateContact(TopiaPropertyTest.java:28) Caused by: java.lang.NoSuchMethodException: Property 'client' has no setter method in class 'class org.nuiton.topia.testproperty.ContactImpl' at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:2138) at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1957) at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:2064) at org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:858) at org.nuiton.topia.persistence.TopiaDAOImpl.create(TopiaDAOImpl.java:344) ... 28 more If a rename either then method or the association, it works fine. (See standalone test module in topia-test-property.tgz)RésolutchemitAnomalieNormal 2.6.2topia-persistence29/07/2011 à 09:04
Improve generatorsIn Entity like generators, - add missing serialVersionUID - do not generate interfaces when not needed.RésolutchemitEvolutionNormal 2.6.2generation29/08/2011 à 06:36
Some messages of the validation of a model are not correctIt displays often a attribute name is already defined but this is not true :) Just do not display this error when attribute is not navigable.RésolutchemitAnomalieNormal 2.6.2generation22/09/2011 à 12:22
Model errors validation should not be displayed as info! at least they are warning RésolutchemitEvolutionNormal 2.6.2generation22/09/2011 à 12:18
Cannot create TopiaContext when using an abstract classVehicle is an abstract entity in my model. At runtime, it will produce : resource: org/nuiton/topia/testabstract/VehicleImpl.hbm.xml not found (See standalone test module in topia-test-abstract.tgz)RésolutchemitAnomalieNormal 2.6.2generation29/07/2011 à 08:52
updates to hibernate 3.6.7.Final RésolutchemitTâcheNormal 2.6.2dependencies18/08/2011 à 07:39
add missing constants for field on TopiaEntityIn interface TopiaEntity, there are already 3 constants for the name of the properties of a topia entity
    String TOPIA_ID = "topiaId";
    String TOPIA_CREATE_DATE = "topiaCreateDate";
    String TOPIA_VERSION = "topiaVersion";
Some are missing and should be added:
    String COMPOSITE = "composite";
    String AGGREGATE = "aggregate";
And for legacy-mode:
    String TOPIA_CONTEXT = "topiaContext";
RésolutchemitEvolutionBas 2.6.2topia-persistence18/08/2011 à 09:51
Updates to eugene 2.4 RésolutchemitTâcheNormal 2.6.2dependencies12/09/2011 à 01:10
DAO set null taget entity when delete associationEx : A 1-* B (- étant une association bidirectionnel de 1 vers *) Collection bs = a1.getBs() a2.addAllB(bs); for (B b : bs) { b.setA(a2); } a1.clearB(); aDAO.delete(a1); Lors du delete il set (dans bs) à null toute les anciennes références à a1, ce qui ici n'est pas correct, il devrait faire un check pour savoir si c'est bien lui (a1) qui est concerné avant de les setter à null.RésolusletellierAnomalieNormal 2.6.2topia-persistence01/09/2011 à 05:17
Cannot compile with N multiplicity to an enumerationWhen generating the following model : Contact --[1]----------[1..*]--> ContactType Compilation fails in ContactAbstract on : @Override public ContactType getContactTypeByTopiaId(String topiaId) { return TopiaEntityHelper.getEntityByTopiaId(contactType, topiaId); } when ContactType is an enum, not a TopiaEntity Attached is a sample project for this bug.RésolutchemitAnomalieNormal 2.6.2generation05/09/2011 à 11:11
Updates to nuiton-utils 2.3 RésolutchemitTâcheNormal 2.6.2dependencies12/09/2011 à 12:45
Add TopiaTransactionAwareMove it from nuiton-strutsRésolutchemitEvolutionNormal 2.6.1topia-persistence07/07/2011 à 02:31
Updates to hibernate 3.6.6.Final RésolutchemitEvolutionNormal 2.6.1dependencies21/07/2011 à 06:38
Updates to nuiton-i18n 2.4.1 RésolutchemitEvolutionNormal 2.6.1dependencies04/08/2011 à 05:33
Updates to eugene 2.3.5This is a requirement to resolv #1307RésolutchemitEvolutionNormal 2.6dependencies21/06/2011 à 09:32
Make topia-replication-service works with hibernate > 3.5Hibernate session was completly reviewed since version 3.4 and the code of this service does not work anylonger :(RésolutchemitAnomalieNormal 2.6topia-persistence24/05/2011 à 09:08
Updates to hibernate 3.6.5.Final RésolutchemitEvolutionNormal 2.6topia-persistence08/04/2010 à 04:14
topia-persistence does not build (some test are failing) when using hibernate 3.5.6org.nuiton.topia.framework.TopiaContextImplTest :
testGetHibernateFactory(org.nuiton.topia.framework.TopiaContextImplTest)  Time elapsed: 0.047 sec  <<< FAILURE!
java.lang.AssertionError: 
        at org.junit.Assert.fail(Assert.java:91)
        at org.junit.Assert.assertTrue(Assert.java:43)
        at org.junit.Assert.assertNotNull(Assert.java:524)
        at org.junit.Assert.assertNotNull(Assert.java:535)
        at org.nuiton.topia.framework.TopiaContextImplTest.testGetHibernateFactory(TopiaContextImplTest.java:271)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:115)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
        at $Proxy0.invoke(Unknown Source)
        at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
        at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)
org.nuiton.topia.framework.TopiaUtilTest :
testIsSchemaExist(org.nuiton.topia.framework.TopiaUtilTest)  Time elapsed: 0.003 sec  <<< ERROR!
java.lang.IllegalArgumentException: could not find entity with name org.nuiton.topia.test.entities.PersonImpl
        at org.nuiton.topia.framework.TopiaUtil.isSchemaExist(TopiaUtil.java:185)
        at org.nuiton.topia.framework.TopiaUtilTest.testIsSchemaExist(TopiaUtilTest.java:124)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:115)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
        at $Proxy0.invoke(Unknown Source)
        at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
        at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)

RésolutchemitAnomalieNormal 2.6topia-persistence24/05/2011 à 09:13
Updates to mavenpom 2.5.5 RésolutchemitEvolutionNormal 2.6dependencies03/06/2011 à 01:24
Updates to sl4j 1.6.1 RésolutchemitEvolutionNormal 2.6dependencies26/05/2011 à 07:22
Updates to h2 1.3.157 RésolutchemitEvolutionNormal 2.6dependencies26/05/2011 à 07:20
Mapping : manage transparently Enumeration typeTo map an enumeration in database we can use two different strategies : STRING or ORDINAL. - The EntityTransformer could generate getter/setter code for hibernate (String/int > mapped over the enum) and for the entity (Enum) - The strategy could be set to ORDINAL by default and customizable using tagValue : my.entity.fqn.attribute.enumName.tagvalue.enumerated=STRING This behavior will be the same as in JPA when using @Enumerated annotation.RésolublenyEvolutionNormal 2.6topia-persistence09/02/2011 à 03:21
Updates to eugene 2.3.4 RésolutchemitEvolutionNormal 2.5.4dependencies15/05/2011 à 08:36
Remove log generation in ServiceTransformerMust use other profiling tools such as TimeLog in nuiton-utils. This support will impact projects using noLog tagvalue to avoid this generation. It's seems to be the best default usage to never generate those logs.RésolufdesboisEvolutionNormal 2.5.4generation16/04/2011 à 11:17
Merge all transformers for DAO in one unique TransformerSame thing as entities generation.RésolutchemitEvolutionNormal 2.5.4generation14/05/2010 à 03:58
Integrates spanish i18n translations RésolutchemitEvolutionNormal 2.5.4 - 28/04/2011 à 02:42
Updates to nuiton-utils 2.2 RésolutchemitEvolutionNormal 2.5.4dependencies28/04/2011 à 02:48
Add a findAllContainsXXX and findContainsXXX method in generated dao for collection propertiesWhen having a collection property named *A* on an entity, we want in the dao the method findAllContainsA(a : A) : List. the method will return all entities containing at least the given property. this methods exists before version 2.4 but where removed (can't remember why but it was a mistake). Put them back and use them for example in the findUsage method.RésolutchemitEvolutionNormal 2.5.4generation12/05/2011 à 03:35
generated findUsages in DAO are not correct* If the usage is on a collection, then still use a *findAllByProperties* which is not correct. Moreover as we have the specific dao, so we could specific methods aka *findAllByOcean* for exampleRésolutchemitAnomalieUrgent 2.5.4topia-persistence12/05/2011 à 03:32
Updates to i18n 2.4 (using utf-8 i18n files)As i18n can deal with others encoding than US-ASCII, we prefer now to use the UTF-8.RésolutchemitEvolutionNormal 2.5.4dependencies12/05/2011 à 07:53
Updates to nuiton-utils 2.1.1 RésolutchemitEvolutionNormal 2.5.3dependencies25/03/2011 à 12:47
Allow to define order for service loadingDans mon cas, j'ai le service de migration qui est démarré avant le service de sécurité, hors, ce dernier doit charger les entités de sécurité. Il doit donc être exécuter avant. Il faudrait trouver un moyen élégant de rajouter un ordre des services à démarrer.Rejeté - AnomalieUrgent 2.5.3topia-persistence01/04/2011 à 10:19
Use set implementation to prevent double persistance class registrationDans mon cas j'ai des entités persistantes dans une lib externe, lors de la création d'un nouveau context, hibernate n'aime pas car elles sont déclaré 2 fois, une fois par le service topia et par mon application (ex : "Caused by: org.hibernate.DuplicateMappingException: Duplicate collection role mapping org.nuiton.topia.taas.entities.TaasUserImpl.principals"). Nous devrions passer par un Set les classes persistantes pour prévenir ce genre de problème.RésolusletellierAnomalieNormal 2.5.3topia-persistence11/04/2011 à 03:02
NPE in generation if DAO stereotype RésolutchemitAnomalieNormal 2.5.3generation07/03/2011 à 09:27
Maven JRst ReStructuredText ArgoUML