Actuellement, l'EJB Personnalisation est un EJB Session Statefull sans véritable raison. L'objectif est de le supprimer pour le remplacer par un mécanisme plus simple.
De plus, les données de personnalisation sont stockées (dans une table unique) en colonne (un paramètre par colonne). Ce modèle n'est pas très évolutif. L'ajout d'un nouveau paramètre nécessite obligatoirement l'ajout d'une nouvelle colonne. Un modèle "par ligne" serait plus adapté à de telles données.
Cela permettra également de supprimer les erreurs de ce type :
28/10/10-08:27:38,405 - ERROR : EJBException in method: public abstract boolean com.stratelia.webactiv.personalization.control.ejb.PersonalizationBmBusinessSkeleton.getDragAndDropStatus() throws java.rmi.RemoteException:
javax.ejb.EJBException: Application Error: no concurrent calls on stateful beans
at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:289)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:300)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:873)
at sun.reflect.GeneratedMethodAccessor96.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)
at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:179)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:165)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at org.jboss.proxy.ejb.StatefulSessionInterceptor.invoke(StatefulSessionInterceptor.java:106)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy189.getDragAndDropStatus(Unknown Source)
at com.stratelia.webactiv.kmelia.control.KmeliaSessionController.isDragAndDropEnableByUser(KmeliaSessionController.java:2951)
at com.stratelia.webactiv.kmelia.control.KmeliaSessionController.init(KmeliaSessionController.java:265)