| Hi Scott,  All the test cases are working for me now. I have done a cvs update and now the test packages are getting executed without assertion errors. Thanks once again for helping me with the test cases.   But when I compare the results with what I have on my console with that of yours, still I get the remote interface as different. e.g: <mine>  hostRegisteredserviceReference=org.eclipse.ecf.tests.osgi.services.distribution.TestServiceInterface1}
   Do you think still I have an old code base? Though all test cases are getting executed succesfully...   WIth respect to the test cases for activemq what I see is you are creating an  ActiveMQJMSServerContainer then registering the remote services. Does the container type name makes any difference? In the test case I see it as 'ecf.jms.activemq.tcp.server'  but the ECF documentation talks about the conatiner name as 'ecf.jms.activemq.tcp.manager'.   Do we have to use IRemoteAdapters for making this test case work?   Also the listeners are registered initially before running the test case. Are they essential for testing using the RFC 119 transaparent way of accessing remote service?   I am not sure whether the questions I have added make sense or not? but looking forward to your response.   Thanks again for aptiently answering my queries...   Regards Roshan --- On Mon, 5/25/09, ecf-dev-request@xxxxxxxxxxx <ecf-dev-request@xxxxxxxxxxx> wrote:
 
 
 Hi Roshan, Thanks for helping with the testing of the activemq provider. I'm going to step through your log and identify where/how it's diverging from mine for the ActiveMQServiceRegisterTest.testGetProxy (I think all the test cases are seeing the same thing, so focusing on this one is reasonable).
 
 
 First, the exception that starts with [log;+0530 2009.05.21 20:41:23:469;ERROR;org.eclipse.ecf;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf;code=4;message=getSupportedIntents;severity4;exception=java.lang.ArrayStoreException;children=[]]]
 java.lang.ArrayStoreException
 at java.lang.System.arraycopy(Native Method)
 at java.util.Arrays.copyOf(Unknown Source)
 at java.util.ArrayList.toArray(Unknown Source)
 at
 org.eclipse.ecf.internal.provider.jms.activemq.ActiveMQJMSServerContainerInstantiator.getSupportedIntents(ActiveMQJMSServerContainerInstantiator.java:71)
 ...
 
 
 Was a small bug in the getSupportedIntents implementation. It's now fixed and released to HEAD. So you shouldn't see it again.
 
 
 This warning: WARNING: path isn't a valid local location for TcpTransport to use
 java.lang.NumberFormatException: For input string: "/exampleTopic"
 at java.lang.NumberFormatException.forInputString(Unknown Source)
 at java.lang.Integer.parseInt(Unknown Source)
 at java.lang.Integer.parseInt(Unknown Source)
 at org.apache.activemq.transport.tcp.TcpTransportFactory.createTransport(TcpTransportFactory.java:125)
 ...
 
 I've reported to ActiveMQ with this bug: https://issues.apache.org/activemq/browse/AMQ-2256
 It's not fatal, however, as the NumberFormatException is simply caught and logged as a warning within ActiveMQ. Until ActiveMQ fixes it I think we're just going to have to live with it.
 
 
 Now, we get to the main difference.  You have this output: hostRegistered
 serviceReference={org.eclipse.ecf.tests.osgi.services.distribution.TestServiceInterface1}={osgi.remote.interfaces=[*], foo=bar, ecf.rsvc.cid=JMSID[tcp://localhost:61616/exampleTopic], service.id=120}
 remoteServiceContainer=RemoteServiceContainer [containerID=JMSID[tcp://localhost:61616/exampleTopic], container=org.eclipse.ecf.provider.jms.activemq.container.ActiveMQJMSServerContainer@1ce08c7,
 containerAdapter=org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject@27de24]
 remoteRegistration=RemoteServiceRegistrationImpl[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=JMSID[tcp://localhost:61616/exampleTopic];containerRelativeID=0];containerID=JMSID[tcp://localhost:61616/exampleTopic];serviceid=0;serviceranking=0;classes=[org.eclipse.ecf.tests.osgi.services.distribution.TestServiceInterface1];state=0;properties={ecf.rsvc.id=0, foo=bar}]
 
 <scott> This indicates that the remote service was registered with the ActiveMQJMSServerContainer. This is fine/looks
 correct.
 
 proxyRetrievingRemoteServiceReferences
 endpointDescription=ServiceEndpointDescriptionImpl[;providedinterfaces=[org.eclipse.ecf.tests.osgi.services.distribution.TestServiceInterface1];location=null;serviceid=ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.2.100:61616;full=_osgiservices._tcp.default._iana@osgiservices://192.168.2.100:61616];osgiEndpointID=null;ecfEndpointID=JMSID[jms:tcp://localhost:61616/exampleTopic];ecfTargetID=null;ecfFilter=null;props={ecf.rsvc.ns=ecf.namespace.generic.remoteservice, osgi.remote.service.interfaces=org.eclipse.ecf.tests.osgi.services.distribution.TestServiceInterface1, ecf.sp.cns=ecf.namespace.jmsid, ecf.rsvc.id=0, ecf.sp.cid=[B@6946d2, foo=bar}]
 remoteServiceContainer=RemoteServiceContainer [containerID=GUID[9Q0rlDD3OfhdZFTi0KGHbQZ7rX4=], container=org.eclipse.ecf.provider.jms.activemq.container.ActiveMQJMSClientContainer@1a3a52c,
 containerAdapter=org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject@a65760]
 
 <scott>this indicates that you have received a discovery notification (good), and that the proxy lookup has begun. But at this point you then get the failure...as indicated by the TRACE and the log entry:
 
 (TRACE)[05/21/09;20:41:37:545]TRACING org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl#handleDiscoveredServiceAvailable(getRemoteServiceReferences result is empty. containerHelper=RemoteServiceContainer [containerID=GUID[9Q0rlDD3OfhdZFTi0KGHbQZ7rX4=], container=org.eclipse.ecf.provider.jms.activemq.container.ActiveMQJMSClientContainer@1a3a52c, containerAdapter=org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject@a65760]remoteReferences=null)
 
 [log;+0530 2009.05.21
 20:41:37:545;ERROR;org.eclipse.ecf.osgi.services.distribution;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.distribution;code=4;message=org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl:handleDiscoveredServiceAvailable:getRemoteServiceReferences result is empty. containerHelper=RemoteServiceContainer [containerID=GUID[9Q0rlDD3OfhdZFTi0KGHbQZ7rX4=], container=org.eclipse.ecf.provider.jms.activemq.container.ActiveMQJMSClientContainer@1a3a52c, containerAdapter=org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject@a65760]remoteReferences=null;severity4;exception=null;children=[]]]
 
 <scott> the crucial information here is that remoteReferences=null...that is, the lookup via getRemoteServicesReference did not find an remote references. This is puzzeling as here is the output from my own local
 runs:
 
 hostRegistered
 serviceReference={org.eclipse.ecf.tests.remoteservice.IConcatService}={osgi.remote.interfaces=[*], ecf.rsvc.cid=JMSID[tcp://localhost:61616/exampleTopic], service.id=128}
 remoteServiceContainer=RemoteServiceContainer [containerID=JMSID[tcp://localhost:61616/exampleTopic], container=org.eclipse.ecf.provider.jms.activemq.container.ActiveMQJMSServerContainer@143b93b, containerAdapter=org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject@1d3e3f3]
 remoteRegistration=RemoteServiceRegistrationImpl[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=JMSID[tcp://localhost:61616/exampleTopic];containerRelativeID=0];containerID=JMSID[tcp://localhost:61616/exampleTopic];serviceid=0;serviceranking=0;classes=[org.eclipse.ecf.tests.remoteservice.IConcatService];state=0;properties={ecf.rsvc.id=0}]
 
 
 <scott> indicates service
 registered proxyRetrievingRemoteServiceReferences
 endpointDescription=ServiceEndpointDescriptionImpl[;providedinterfaces=[org.eclipse.ecf.tests.remoteservice.IConcatService];location=null;serviceid=ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.1.101:61616;full=_osgiservices._tcp.default._iana@osgiservices://192.168.1.101:61616];osgiEndpointID=null;ecfEndpointID=JMSID[tcp://localhost:61616/exampleTopic];ecfTargetID=null;ecfFilter=null;props={ecf.rsvc.ns=ecf.namespace.generic.remoteservice, osgi.remote.service.interfaces=org.eclipse.ecf.tests.remoteservice.IConcatService, ecf.sp.cns=ecf.namespace.jmsid, ecf.rsvc.id=[B@d63b5b, ecf.sp.cid=[B@d300ed}]
 remoteServiceContainer=RemoteServiceContainer [containerID=GUID[4yl/AwIGzkdF0+OHUOuPeYwkGrU=], container=org.eclipse.ecf.provider.jms.activemq.container.ActiveMQJMSClientContainer@6a5afc,
 containerAdapter=org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject@5f39b0]
 
 
 <scott> indicates remote service discovered, and proxy is being looked up proxyRegistering
 endpointDescription=ServiceEndpointDescriptionImpl[;providedinterfaces=[org.eclipse.ecf.tests.remoteservice.IConcatService];location=null;serviceid=ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.1.101:61616;full=_osgiservices._tcp.default._iana@osgiservices://192.168.1.101:61616];osgiEndpointID=null;ecfEndpointID=JMSID[tcp://localhost:61616/exampleTopic];ecfTargetID=null;ecfFilter=null;props={ecf.rsvc.ns=ecf.namespace.generic.remoteservice, osgi.remote.service.interfaces=org.eclipse.ecf.tests.remoteservice.IConcatService, ecf.sp.cns=ecf.namespace.jmsid, ecf.rsvc.id=[B@d63b5b, ecf.sp.cid=[B@d300ed}]
 remoteServiceContainer=RemoteServiceContainer
 [containerID=GUID[4yl/AwIGzkdF0+OHUOuPeYwkGrU=], container=org.eclipse.ecf.provider.jms.activemq.container.ActiveMQJMSClientContainer@6a5afc, containerAdapter=org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject@5f39b0]
 remoteServiceReference=RemoteServiceReferenceImpl[class=org.eclipse.ecf.tests.remoteservice.IConcatService;registration=RemoteServiceRegistrationImpl[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=JMSID[tcp://localhost:61616/exampleTopic];containerRelativeID=0];containerID=JMSID[tcp://localhost:61616/exampleTopic];serviceid=0;serviceranking=0;classes=[org.eclipse.ecf.tests.remoteservice.IConcatService];state=0;properties={ecf.rsvc.id=0}]]
 
 <scott> indicates remote reference *was* successfully retrieved and that the proxy is being registered
 locally
 
 proxyRegistered
 endpointDescription=ServiceEndpointDescriptionImpl[;providedinterfaces=[org.eclipse.ecf.tests.remoteservice.IConcatService];location=null;serviceid=ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.1.101:61616;full=_osgiservices._tcp.default._iana@osgiservices://192.168.1.101:61616];osgiEndpointID=null;ecfEndpointID=JMSID[tcp://localhost:61616/exampleTopic];ecfTargetID=null;ecfFilter=null;props={ecf.rsvc.ns=ecf.namespace.generic.remoteservice, osgi.remote.service.interfaces=org.eclipse.ecf.tests.remoteservice.IConcatService, ecf.sp.cns=ecf.namespace.jmsid, ecf.rsvc.id=[B@d63b5b, ecf.sp.cid=[B@d300ed}]
 remoteServiceContainer=RemoteServiceContainer [containerID=GUID[4yl/AwIGzkdF0+OHUOuPeYwkGrU=], container=org.eclipse.ecf.provider.jms.activemq.container.ActiveMQJMSClientContainer@6a5afc,
 containerAdapter=org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject@5f39b0]
 remoteServiceReference=RemoteServiceReferenceImpl[class=org.eclipse.ecf.tests.remoteservice.IConcatService;registration=RemoteServiceRegistrationImpl[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=JMSID[tcp://localhost:61616/exampleTopic];containerRelativeID=0];containerID=JMSID[tcp://localhost:61616/exampleTopic];serviceid=0;serviceranking=0;classes=[org.eclipse.ecf.tests.remoteservice.IConcatService];state=0;properties={ecf.rsvc.id=0}]]
 proxyServiceRegistration={org.eclipse.ecf.tests.remoteservice.IConcatService}={osgi.remote=org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceImpl@433359, service.id=130}
 
 <scott> indicates that the remote reference was used to create proxy and registered in local service registry.
 
 Obviously this is different from what you are seeing...mine is
 finding the remote service reference, using it to create the proxy and registering the proxy. The only important difference in your output for hostRegistered and proxyRetrievingRemoteServiceReferences is the presence of the service property: 'foo=bar' in yours. Are you using the latest versions of all the test classes/plugins? I don't believe this should actually make a difference for this problem...but I suppose it's possible that this is triggering some bug in our code. So I think the next step is to do these things:
 
 1) Remove the 'foo=bar' property, update all code to latest and rerun test.
 2) turn on tracing in this bundle: org.eclipse.ecf.provider.remoteservice and rerun this test: ActiveMQServiceRegisterTest
 3) run this junit plugin test also: org.eclipse.ecf.tests.provider.jms.activemq.remoteservice.ActiveMQRemoteServiceTest and see if it produces similar failures. Hopefully it will, but either way it will be
 informative.
 
 
 Thanksinadvance, 
 Scott
 |