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]>