Index: topia/src/java/org/codelutin/topia/distribution/LocalDistributionHelper.java diff -u topia/src/java/org/codelutin/topia/distribution/LocalDistributionHelper.java:1.2 topia/src/java/org/codelutin/topia/distribution/LocalDistributionHelper.java:1.3 --- topia/src/java/org/codelutin/topia/distribution/LocalDistributionHelper.java:1.2 Fri Jul 30 16:57:58 2004 +++ topia/src/java/org/codelutin/topia/distribution/LocalDistributionHelper.java Tue Sep 28 12:23:18 2004 @@ -16,17 +16,16 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *##%*/ -/* * +/******************************************************************************* * LocalDistributionHelper.java - * + * * Created: 14 juil. 2004 - * - * @author Benjamin Poussin - * Copyright Code Lutin - * @version $Revision: 1.2 $ - * - * Mise a jour: $Date: 2004/07/30 16:57:58 $ - * par : $Author: pineau $ + * + * @author Benjamin Poussin Copyright Code Lutin + * + * @version $Revision: 1.3 $ + * + * Mise a jour: $Date: 2004/09/28 12:23:18 $ par : $Author: keurvet $ */ package org.codelutin.topia.distribution; @@ -35,6 +34,9 @@ import org.codelutin.topia.TopiaContext; import org.codelutin.topia.TopiaException; import org.codelutin.topia.TopiaArgument; +import org.codelutin.topia.persistence.AbstractPersistenceHelper; +import org.codelutin.topia.persistence.PersistenceHelper; + import java.beans.Expression; public class LocalDistributionHelper extends AbstractDistributionHelper { // LocalDistributionHelper @@ -48,13 +50,19 @@ } public Object call(Class service, String methodName, TopiaArgument args) throws TopiaException{ - Object serviceImpl = getContext().getService(service, true); + Object serviceImpl; + if (PersistenceHelper.class.isAssignableFrom(service)) { + serviceImpl = getContext().getPersistenceHelper(); + } else { + serviceImpl = getContext().getService(service, true); + } Expression result = new Expression(serviceImpl, methodName, args.getArgs().toArray()); try{ return result.getValue(); }catch(Exception eee){ throw new TopiaException("Can't call local method", eee); } + } } // LocalDistributionHelper