Vinay, I have reapplied all the patches and the test barfs as follows :
[java] Registering CallBackTestListenerImpls with the CallBackTest [java] java.io.NotSerializableException: org.apache.excalibur.altrmi.test.callback.CallBackTestListenerImpl [java] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054) [java] at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1224) [java] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1050) [java] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) [java] at org.apache.excalibur.altrmi.common.MethodRequest.writeExternal(MethodRequest.java:147) [java] at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1265) [java] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1243) [java] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052) [java] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) [java] at org.apache.excalibur.altrmi.common.SerializationHelper.getBytesFromInstance(SerializationHelper.java:49) [java] at org.apache.excalibur.altrmi.client.impl.stream.ClientCustomStreamReadWriter.writeRequest(ClientCustomStreamReadWriter.java:74) [java] at org.apache.excalibur.altrmi.client.impl.stream.ClientCustomStreamReadWriter.postRequest(ClientCustomStreamReadWriter.java:64) [java] at org.apache.excalibur.altrmi.client.impl.stream.StreamInvocationHandler.handleInvocation(StreamInvocationHandler.java:140) [java] at org.apache.excalibur.altrmi.client.impl.BaseServedObject.processObjectRequest(BaseServedObject.java:227) [java] at AltrmiGeneratedCallbackTest_Main.addCallBackListener(AltrmiGeneratedCallbackTest_Main.java:29) [java] at org.apache.excalibur.altrmi.test.callback.CallBackTestClient.main(CallBackTestClient.java:75) Have a check of it your end dude... Regards, - Paul >Paul, >I did kind of do that (exposeObject(..) on purpose , >something I tried to model along the lines of our RMI >dame. >[UnicastRemoteObject.exportObject(..) ..] >But I guess the way you have illustrated through test >cases checked in test/callback/ files >is also feasible ; & definitely more kewler. >gr8 suggestion dude and it does make sense. >And attached here is the patch to get rid of >the exposeObject(..) kind of call . >[There was another method within >CallbackInvocationHandler which had to be public'zed >] >I guess now the test cases that you kindly checked >in for me , should work too . >(after the proper imports of callback >factories/servers) > >The BaseServedObject marshallerer now checks the >typs of arguments and accordingly publishes >the obj with the internal altrmiServer. >BTW, >the callback.xml must create the stub for the >CallBackTestListener too or we should generate it >through code .( I shall start the brain-surgery >on stubs using BCEL after we are through with settling > >the dust over callbacks) > > >Regards, >V i n a y > > > >__________________________________________________ >Do You Yahoo!? >Yahoo! Tax Center - online filing with TurboTax >http://taxes.yahoo.com/ > > >------------------------------------------------------------------------ > >cvs diff BaseServedObject.java (in directory >C:\vinay\jc\jakarta-avalon-excalibur\altrmi\src\java\org\apache\excalibur\altrmi\client\impl) >Index: BaseServedObject.java >=================================================================== >RCS file: >/home/cvspublic/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/BaseServedObject.java,v >retrieving revision 1.1 >diff -r1.1 BaseServedObject.java >29a30,34 > >>//callback >>import org.apache.excalibur.altrmi.common.ExposedObjectProxy; >>import >org.apache.excalibur.altrmi.client.impl.socket.CallbackEnabledCustomSocketStreamInvocationHandler; >>import java.util.StringTokenizer; >>import org.apache.excalibur.altrmi.common.AltrmiCallbackException; >> >47c52,55 >< >--- > >> //<callback related> >> private boolean mbIsCallbackAware=false; >> private CallbackEnabledCustomSocketStreamInvocationHandler >mCallbackEnabledCustomSocketStreamInvocationHandler=null; >> //</callback related> >> >70a79,87 > >> //<callback related> >> if(mInvocationHandler instanceof >CallbackEnabledCustomSocketStreamInvocationHandler) >> { >> >> mCallbackEnabledCustomSocketStreamInvocationHandler = >> >(CallbackEnabledCustomSocketStreamInvocationHandler)mInvocationHandler; >> mbIsCallbackAware=true; >> } >> //</callback related> >> >206c223 >< marshallCorrection(args); >--- > >> marshallCorrection(methodSignature,args); >> >312c329,332 >< private void marshallCorrection(Object[] args) { >--- > >> private void marshallCorrection(String methodSignature , Object[] args) { >> >> String _methodArgumentClasses = >methodSignature.substring(methodSignature.indexOf("(")+1,methodSignature.lastIndexOf(")")); >> StringTokenizer _methodArgumentClassTokens = new >StringTokenizer(_methodArgumentClasses,","); >> >314a335,346 > >> >> String _sArgClass=_methodArgumentClassTokens.nextToken(); >> Class _cArgClass=null; >> try >> { >> >> _cArgClass=Class.forName(_sArgClass); >> } >> catch(ClassNotFoundException cnfe) >> { >> System.err.println("Class "+_sArgClass +" Not Found"); >> } >> >326a359,388 > >> else if(mbIsCallbackAware) >> { >> String publishedName = >mCallbackEnabledCustomSocketStreamInvocationHandler.getPublishedName(args[i]); >> if(publishedName!=null) //already published >> { >> ExposedObjectProxy exposedObjectProxy = new >ExposedObjectProxy(publishedName); >> args[i]=exposedObjectProxy; >> } >> else //check whether its Publish'able >> { >> if(!_cArgClass.isInterface()) //Hey do we >handle only interfaces? >> continue; >> >if(_cArgClass.isAssignableFrom(args[i].getClass())) >> { >> try >> { >> >mCallbackEnabledCustomSocketStreamInvocationHandler.exposeObject(args[i],_cArgClass); >> } >> catch(AltrmiCallbackException ace) >> { >> ace.printStackTrace(); >> } >> publishedName = >mCallbackEnabledCustomSocketStreamInvocationHandler.getPublishedName(args[i]); >> ExposedObjectProxy exposedObjectProxy >= new ExposedObjectProxy(publishedName); >> args[i]=exposedObjectProxy; >> >> } >> >> } >> } >> >> >>------------------------------------------------------------------------ >> >>/* >> * Copyright (C) The Apache Software Foundation. All rights reserved. >> * >> * This software is published under the terms of the Apache Software License >> * version 1.1, a copy of which has been included with this distribution in >> * the LICENSE.txt file. >> */ >>package org.apache.excalibur.altrmi.client.impl.socket; >> >> >> >>import java.io.IOException; >>import java.io.InputStream; >>import java.io.OutputStream; >> >>import org.apache.excalibur.altrmi.client.impl.stream.ClientStreamReadWriter; >>import org.apache.excalibur.altrmi.common.*; >>import org.apache.excalibur.altrmi.common.AltrmiConnectionException; >>import org.apache.excalibur.altrmi.common.AltrmiCallbackException; >>import org.apache.excalibur.altrmi.client.impl.stream.*; >>import >org.apache.excalibur.altrmi.client.impl.stream.CallbackEnabledClientCustomStreamReadWriter; >> >> >>/** >> * Class CallbackEnabledCustomSocketStreamInvocationHandler >> * >> * @author <a href="mailto:[EMAIL PROTECTED]">Vinay Chandran</a> >> * @version $Revision: 1.0 $ >> */ >>public final class CallbackEnabledCustomSocketStreamInvocationHandler >> extends AbstractSocketStreamInvocationHandler { >> >> private CallbackEnabledClientCustomStreamReadWriter >mCallbackEnabledClientCustomStreamReadWriter; >> /* >> * @see >AbstractSocketStreamInvocationHandler#AbstractSocketStreamInvocationHandler(String, >int, ClassLoader) >> */ >> public CallbackEnabledCustomSocketStreamInvocationHandler(String host, int port, >ClassLoader classLoader) >> throws AltrmiConnectionException { >> super(host, port, classLoader); >> } >> >> /* >> * @see >AbstractSocketStreamInvocationHandler#createClientStreamReadWriter(InputStream, >OutputStream) >> */ >> protected ClientStreamReadWriter createClientStreamReadWriter( >> InputStream in, OutputStream out) throws IOException { >> if(mCallbackEnabledClientCustomStreamReadWriter==null) >> { >> mCallbackEnabledClientCustomStreamReadWriter = new >CallbackEnabledClientCustomStreamReadWriter(in, out, mInterfacesClassLoader); >> } >> return mCallbackEnabledClientCustomStreamReadWriter; >> } >> >> >> public boolean exposeObject(Object tobeExposedObject,Class >tobeExposedInterface) throws AltrmiCallbackException >> { >> return >mCallbackEnabledClientCustomStreamReadWriter.exposeObject(tobeExposedObject,tobeExposedInterface); >> } >> public String getPublishedName(Object tobeExposedObject) >> { >> return >mCallbackEnabledClientCustomStreamReadWriter.getPublishedName(tobeExposedObject); >> } >>} >> >> >>------------------------------------------------------------------------ >> >>-- >>To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> >>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> >> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>