Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ice-dev] AbstractExecutor not found by ECF

On 11/18/2016 3:49 PM, Jay Jay Billings wrote:
Scott,

I got by most of those errors and I seem to have everything running.

Any idea why the AbstractExecutor classload problem went away? Should I resolve the bug then?

I couldn't get verbose logging running in Eclipse (we use Equinox, not Karaf), so I noticed a warning about the R-Osgi port when I ran the service twice.

Yes, rosgi has the default behavior that it will open ports sequentially if it doesn't find the default port open (9278). For your reference, there are port config and other rosgi properties listed here:

http://wiki.eclipse.org/R-OSGi_Properties

<stuff deleted>


So my next step is to build and test a sample service consumer. Do you have any tips on how to get verbose output from the logs?

The best place to start with logging in ECF RS/RSA is to have the remote service host report when the service gets exported and print out the endpoint description. This is done by registering a RemoteServiceAdminListener service:

import org.osgi.service.remoteserviceadmin.RemoteServiceAdminListener;
import org.eclipse.ecf.osgi.services.remoteserviceadmin.DebugRemoteServiceAdminListener;

bundleContext.registerService(RemoteServiceAdminListener.class,new DebugRemoteServiceAdminListener(), null);

You may register this listener in any way that you want...e.g. with bundleContext, DS, etc., but to be able to report debug output it has to be registered *before* the remote service is actually exported.

Once registered, upon remote service export it will produce output to System.out...somewhat like the example xml output given below. This output should appear when the remote service is registered.

BTW, we have been working on some Eclipse-based tooling for using ECF RSA. This UI is available if you install (into Eclipse) the 'ECF SDK for Eclipse'. There will be a 'Remote Services' perspective, and within that perspective several views to show (e.g.) exported and imported services, endpoint discovery, ability to load endpoint descriptions from files (for remote service consumers), etc.

Thanks,

Scott

08:32:00.934;EXPORT_REGISTRATION;exportedSR={org.eclipse.ecf.mgmt.framework.IServiceManager}={component.name=org.eclipse.ecf.mgmt.kura.host.KuraServiceManager, component.id=5, service.id=83, service.bundleid=39, service.scope=bundle};cID=StringID[ecftcp://localhost:3282/server];rsId=2
--Endpoint Description---
<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0";>
  <endpoint-description>
<property name="ecf.endpoint.id" value-type="String" value="ecftcp://localhost:3282/server"/> <property name="ecf.endpoint.id.ns" value-type="String" value="org.eclipse.ecf.core.identity.StringID"/> <property name="ecf.endpoint.ts" value-type="Long" value="1479573120930"/> <property name="ecf.exported.async.interfaces" value-type="String" value="*"/>
    <property name="ecf.rsvc.id" value-type="Long" value="2"/>
<property name="endpoint.framework.uuid" value-type="String" value="e076bfaa-75ae-0016-150a-d7991d342252"/> <property name="endpoint.id" value-type="String" value="ecf02b48-6c4c-4b8d-8048-1e4d835c1642"/> <property name="endpoint.package.version.org.eclipse.ecf.mgmt.framework" value-type="String" value="1.0.0"/>
    <property name="endpoint.service.id" value-type="Long" value="83"/>
    <property name="objectClass" value-type="String">
      <array>
<value>org.eclipse.ecf.mgmt.framework.IServiceManager</value>
      </array>
    </property>
    <property name="remote.configs.supported" value-type="String">
      <array>
        <value>ecf.generic.server</value>
      </array>
    </property>
    <property name="remote.intents.supported" value-type="String">
      <array>
        <value>passByValue</value>
        <value>exactlyOnce</value>
        <value>ordered</value>
      </array>
    </property>
    <property name="service.imported" value-type="String" value="true"/>
    <property name="service.imported.configs" value-type="String">
      <array>
        <value>ecf.generic.server</value>
      </array>
    </property>
  </endpoint-description>
</endpoint-descriptions>
---End Endpoint Description




Back to the top