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

Scott,

I got the AbstractExecutor error to go away by creating a new workspace. That's not ideal, but it is simple enough with ICE's dev menu.

I was able to get the perspective running. Screenshot attached. It looks like it is showing the local instance of ICE exporting the remote service.

I would like to try to connect to another instance of ice using the endpoint description you mentioned. Do you have the format for the file documented somewhere?

Jay

On Sat, Nov 19, 2016 at 11:49 AM, Scott Lewis <slewis@xxxxxxxxxxxxx> wrote:
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





--
Jay Jay Billings
Oak Ridge National Laboratory
Twitter Handle: @jayjaybillings

Attachment: Screenshot from 2016-11-19 21-05-35.png
Description: PNG image


Back to the top