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

Reply via email to