Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Gogo Commands for Remote Services Development
For ECF's Photon release, a number of commands have been added to allow the listing of several ECF and OSGi Remote Service Admin (RSA) entities:
Contents
ECF entities
Namespaces
IContainers
Container Type Descriptions/Config Type
RSA entities
RSA Exported Services
RSA Imported Endpoints
There are also RSA commands to export a service and import an endpoint description via the command line.
These commands have been added via the Apache Felix Gogo Shell which is used for the console in Eclipse, as well as other OSGi runtimes like Felix, Karaf, and others.
Required ECF Bundles
In addition to the ECF RSA Impl bundles, two bundles are required: org.eclipse.ecf.console and org.eclipse.ecf.osgi.services.remoteserviceadmin.console. The ECF Remote Services examples and tutorials currently include these two bundles, as do the Bndtools templates.
Commands and Output
Namespaces
Typing help will list all the available commands with their scope, and typing help <command> will produce help for a specific command. e.g.
g! g! help ecf:exportservice ecf:expsvc ecf:importservice ecf:impsvc ecf:lcfgs ecf:lcs ecf:lctds ecf:lexps ecf:limps ecf:listconfigs ecf:listcontainers ecf:listexports ecf:listimports ecf:listnamespaces ecf:listtypedescriptions ecf:lns ecf:rsadebug ecf:unexportservice ecf:unexpsvc ecf:unimportservice ecf:unimpsvc ecf:updateservice ecf:updsvc felix:bundlelevel <other felix, scr, gogo scoped commands> g! help listnamespaces listnamespaces scope: ecf parameters: Namespace Namespace name to list (String) listnamespaces - List ECF ID namespaces scope: ecf g!
Command: listnamespaces, lns
Parameters: None -- Produces a table of all Namespaces by Namespace Name; Namespace Name -- Details about that Namespace
Example:
g! lns Namespace Name org.eclipse.ecf.core.identity.GUID ecf.namespace.generic.remoteservice ecf.namespace.jmdns org.eclipse.ecf.core.identity.LongID org.eclipse.ecf.core.identity.UuID org.eclipse.ecf.core.identity.StringID ecf.namespace.remoteservice ecf.namespace.discovery org.eclipse.ecf.core.identity.URIID g! lns ecf.namespace.jmdns ID=ecf.namespace.jmdns UriScheme=jmdns Class=org.eclipse.ecf.provider.jmdns.identity.JMDNSNamespace Description=JMDNS Discovery Namespace InstanceArgTypes=(java.lang.String);(java.lang.String,java.lang.String);(org.eclipse.ecf.discovery.identity.IServiceTypeID);(java.lang.String,java.net.URI)
Container Instances
ECF IContainer instances are used to represent specific connections or sessions.
Command: listcontainers, lcs
Parameters: None -- Produces a table of all containers by container ID; Container ID -- Details about that container instance
Example:
g! listcontainers ID |ImplClass |Connected ecftcp://slewis-lenovo:52954/server |TCPServerSOContainer |ecftcp://slewis-lenovo:52954/server g! lcs ecftcp://slewis-lenovo:52954/server ID=ecftcp://slewis-lenovo:52954/server Namespace=org.eclipse.ecf.core.identity.StringID Class=org.eclipse.ecf.provider.generic.TCPServerSOContainer ConnectedTo=ecftcp://slewis-lenovo:52954/server ConnectNamespace=org.eclipse.ecf.core.identity.StringID Config=ecf.generic.server
Container Type Descriptions
Container Type Descriptions (class org.eclipse.ecf.core.ContainerTypeDescription) are descriptions of containers prior to actual instance creation. In effect, container type descriptions define a factory for creating instances of a given type.
Note that Container Type Descriptions Names correspond the the OSGi notion of distribution provider configuration/config type, and can be used with the OSGi standard remote service property service.exported.configs=. For example: service.exported.configs=ecf.generic.server.
Command: listtypedescriptions, lctds, listconfigs, listcfgs
Parameters: None -- Produces a table of all descriptions/config by config name; Config Name -- Details about that container type config
Example:
g! lctds ContainerTypeDescription Name ecf.generic.server ecf.base ecf.container.jmdns.locator ecf.container.jmdns ecf.generic.ssl.client ecf.generic.client ecf.container.jmdns.advertiser ecf.generic.ssl.server g! listconfigs ecf.generic.server ID=ecf.generic.server Description=ECF Generic Server SupportedConfigs=[ecf.generic.server] SupportedIntents=[osgi.basic, osgi.async, osgi.private, passByValue, exactlyOnce, ordered] InstanceArgTypes=(org.eclipse.ecf.core.identity.ID);(org.eclipse.ecf.core.identity.ID,java.lang.Integer) Adapters=[org.eclipse.ecf.core.sharedobject.ISharedObjectContainerGroupManager, org.eclipse.ecf.core.sharedobject.ISharedObjectContainer, org.eclipse.ecf.provider.comm.IConnectRequestHandler, org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter, org.eclipse.ecf.core.IContainer] Hidden=false Server=true g!
RSA Commands
Exports
List and get details about ECF RSA exported remote services.
Command: listexports, lexps
Parameters: None -- Produces a table of all exported remote services by unique endpoint.id; endpoint.id -- The endpoint description for that exported remote service
Example:
g! listexports endpoint.id |Exporting Container ID |Exported Service Id 5cda6f87-44be-4c7f-b8b2-f746a9e187ce |ecftcp://slewis-lenovo:52954/server |64 g! lexps 5cda6f87-44be-4c7f-b8b2-f746a9e187ce <endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0"> <endpoint-description> <property name="ecf.endpoint.id" value-type="String" value="ecftcp://slewis-lenovo:52954/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="1524510501037"/> <property name="ecf.rsvc.id" value-type="Long" value="1"/> <property name="endpoint.framework.uuid" value-type="String" value="7884df15-9b29-4bb1-97b6-c5cdef4659d4"/> <property name="endpoint.id" value-type="String" value="5cda6f87-44be-4c7f-b8b2-f746a9e187ce"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <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> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions> g!
Imports
List and get details about RSA imported endpoints.
Command: listimports, limps
Parameters: None -- Produces a table of all imported endpoint descriptions by endpoint.id; endpoint.id -- The endpoint description for that imported remote service
Example:
g! listimports endpoint.id |Importing Container ID |Imported Service Id 5cda6f87-44be-4c7f-b8b2-f746a9e187ce |b4mR1bqKQbTxqaxfKoTu1TC9Sag= |65 g! limps 5cda6f87-44be-4c7f-b8b2-f746a9e187ce <endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0"> <endpoint-description> <property name="ecf.endpoint.id" value-type="String" value="ecftcp://slewis-lenovo:52954/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="1524510501037"/> <property name="ecf.rsvc.id" value-type="Long" value="1"/> <property name="endpoint.framework.uuid" value-type="String" value="7884df15-9b29-4bb1-97b6-c5cdef4659d4"/> <property name="endpoint.id" value-type="String" value="5cda6f87-44be-4c7f-b8b2-f746a9e187ce"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <value>passByValue</value> <value>exactlyOnce</value> <value>ordered</value> </array> </property> <property name="service.imported.configs" value-type="String"> <array> <value>ecf.generic.client</value> </array> </property> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions> g!
RSA Export and Unexport
Export
Command: exportservice, expsvc
Parameters:
service.id of the service to export (required)
map of containing service properties of service to export (optional)
Example: For this example, assume that an instance of service org.example.remoteservice.api.ExampleRemoteService has already been registered:
org.example.remoteservice.impl [29] provides: --------------------------------------------- service; org.example.remoteservice.api.ExampleRemoteService with properties: component.id = 3 component.name = org.example.remoteservice.impl.ExampleRemoteServiceImpl service.bundleid = 29 service.exported.interfaces = * service.id = 64 service.intents = osgi.basic service.scope = bundle
The service.id is 64, so the export is:
g! expsvc 64 14:23:53.022;EXPORT_REGISTRATION;exportedSR=[org.example.remoteservice.api.ExampleRemoteService];cID=StringID[ecftcp://slewis-lenovo:52954/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://slewis-lenovo:52954/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="1524518630314"/> <property name="ecf.rsvc.id" value-type="Long" value="2"/> <property name="endpoint.framework.uuid" value-type="String" value="7884df15-9b29-4bb1-97b6-c5cdef4659d4"/> <property name="endpoint.id" value-type="String" value="d505b55d-ceda-4599-968b-c56b2d90cc7a"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <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> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions> ---End Endpoint Description service.id=64 successfully exported with 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://slewis-lenovo:52954/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="1524518630314"/> <property name="ecf.rsvc.id" value-type="Long" value="2"/> <property name="endpoint.framework.uuid" value-type="String" value="7884df15-9b29-4bb1-97b6-c5cdef4659d4"/> <property name="endpoint.id" value-type="String" value="d505b55d-ceda-4599-968b-c56b2d90cc7a"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <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> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions>
The same endpoint description is presented twice as the result of the export, because the RSA debug is on. If off, then the endpoint description will be presented only once after the line:
service.id=64 successfully exported with endpoint description:
The command:
exportservice <service.id>
will set the remote service property service.exported.interfaces should be set to *, and the remote service property service.exported.configs will be set to ecf.generic.server. It's also possible, however, to provide a map of remote service properties as a second parameter to the exportservice command.
For example:
# create the overridingProperties map as a gogo shell variable with the desired properties and values g! overridingProperties = [ service.exported.interfaces="*" service.exported.configs="ecf.generic.server" ] service.exported.interfaces* service.exported.configsecf.generic.server # then with service.id=64 and the map value of $overridingProperties g! exportservice 64 $overridingProperties service.id=64 successfully exported with 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://slewis-lenovo:52954/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="1524519728522"/> <property name="ecf.rsvc.id" value-type="Long" value="3"/> <property name="endpoint.framework.uuid" value-type="String" value="7884df15-9b29-4bb1-97b6-c5cdef4659d4"/> <property name="endpoint.id" value-type="String" value="35608635-6ddc-4da8-b7bc-6c6512d2f8b7"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <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> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions>
Another example:
g! expsvc 64 [ service.exported.interfaces="*" service.exported.configs="ecf.generic.server" foo="bar" ] 14:50:05.812;EXPORT_REGISTRATION;exportedSR=[org.example.remoteservice.api.ExampleRemoteService];cID=StringID[ecftcp://slewis-lenovo:63443/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://slewis-lenovo:63443/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="1524520205812"/> <property name="ecf.rsvc.id" value-type="Long" value="2"/> <property name="endpoint.framework.uuid" value-type="String" value="0f6b1484-80da-43af-8876-681b5e8baddc"/> <property name="endpoint.id" value-type="String" value="f48abe72-0e53-462f-be1f-1ddfe9bae201"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="foo" value-type="String" value="bar"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <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> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions> ---End Endpoint Description service.id=64 successfully exported with 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://slewis-lenovo:63443/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="1524520205812"/> <property name="ecf.rsvc.id" value-type="Long" value="2"/> <property name="endpoint.framework.uuid" value-type="String" value="0f6b1484-80da-43af-8876-681b5e8baddc"/> <property name="endpoint.id" value-type="String" value="f48abe72-0e53-462f-be1f-1ddfe9bae201"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="foo" value-type="String" value="bar"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <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> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions>
Unexport
Command: unexportservice, unexpsvc
Parameters:
endpoint.id of the endpoint to unexport (required)
Example:
g! lexps endpoint.id |Exporting Container ID |Exported Service Id d505b55d-ceda-4599-968b-c56b2d90cc7a |ecftcp://slewis-lenovo:52954/server |64 g! unexportservice d505b55d-ceda-4599-968b-c56b2d90cc7a d505b55d-ceda-4599-968b-c56b2d90cc7a unexported g! lexps endpoint.id |Exporting Container ID |Exported Service Id g!
Import
Command: importservice, impsvc
Options:
-edefurl <url> of the endpoint edef file
If the -edefurl option is not given, the edef input will be assume to be provided via standard input (i.e. via copy and paste).
Example: For this example, assume that in a separate (impl) console a remote service has been exported, and has produced the endpoint description. The user selects and copies to the clipboard the following from the impl console:
<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0"> <endpoint-description> <property name="ecf.endpoint.id" value-type="String" value="ecftcp://slewis-lenovo:50240/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="1524536590668"/> <property name="ecf.rsvc.id" value-type="Long" value="2"/> <property name="endpoint.framework.uuid" value-type="String" value="669704c8-c9b8-4c47-84a0-71ca0a4de097"/> <property name="endpoint.id" value-type="String" value="577226a2-d0ab-4a44-8d35-71d79a50fe13"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <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> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions>
Then, moving to the consumer console, this endpoint can be imported via the console by
g! importservice Waiting for console input. To complete enter an empty line... <endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0"> <endpoint-description> <property name="ecf.endpoint.id" value-type="String" value="ecftcp://slewis-lenovo:50240/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="1524536590668"/> <property name="ecf.rsvc.id" value-type="Long" value="2"/> <property name="endpoint.framework.uuid" value-type="String" value="669704c8-c9b8-4c47-84a0-71ca0a4de097"/> <property name="endpoint.id" value-type="String" value="577226a2-d0ab-4a44-8d35-71d79a50fe13"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <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> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions> service responds=Hello ExampleRemoteServiceConsumer 19:25:55.874;IMPORT_REGISTRATION;importedSR=[org.example.remoteservice.api.ExampleRemoteService];cID=StringID[ecftcp://slewis-lenovo:50240/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://slewis-lenovo:50240/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="1524536590668"/> <property name="ecf.rsvc.id" value-type="Long" value="2"/> <property name="endpoint.framework.uuid" value-type="String" value="669704c8-c9b8-4c47-84a0-71ca0a4de097"/> <property name="endpoint.id" value-type="String" value="577226a2-d0ab-4a44-8d35-71d79a50fe13"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <value>passByValue</value> <value>exactlyOnce</value> <value>ordered</value> </array> </property> <property name="service.imported.configs" value-type="String"> <array> <value>ecf.generic.client</value> </array> </property> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions> ---End Endpoint Description endpoint.id=577226a2-d0ab-4a44-8d35-71d79a50fe13 with service.id=67 successfully imported: <endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0"> <endpoint-description> <property name="ecf.endpoint.id" value-type="String" value="ecftcp://slewis-lenovo:50240/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="1524536590668"/> <property name="ecf.rsvc.id" value-type="Long" value="2"/> <property name="endpoint.framework.uuid" value-type="String" value="669704c8-c9b8-4c47-84a0-71ca0a4de097"/> <property name="endpoint.id" value-type="String" value="577226a2-d0ab-4a44-8d35-71d79a50fe13"/> <property name="endpoint.package.version.org.example.remoteservice.api" value-type="String" value="1.0.0"/> <property name="endpoint.service.id" value-type="Long" value="64"/> <property name="objectClass" value-type="String"> <array> <value>org.example.remoteservice.api.ExampleRemoteService</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>osgi.basic</value> <value>osgi.async</value> <value>osgi.private</value> <value>passByValue</value> <value>exactlyOnce</value> <value>ordered</value> </array> </property> <property name="service.imported.configs" value-type="String"> <array> <value>ecf.generic.client</value> </array> </property> <property name="service.intents" value-type="String" value="osgi.basic"/> </endpoint-description> </endpoint-descriptions>
Unimport
Command: unimportservice, unimpsvc
Parameters:
endpoint.id of the service to unimport (required)
Example:
g! limps endpoint.id |Importing Container ID |Imported Service Id 577226a2-d0ab-4a44-8d35-71d79a50fe13 |KuyWDgDnTMlrQSpRzzw0HFKxjFY= |67 g! unimpsvc 577226a2-d0ab-4a44-8d35-71d79a50fe13 19:30:13.591;IMPORT_UNREGISTRATION;importedSR=null;cID=StringID[ecftcp://slewis-lenovo:50240/server];rsId=0 577226a2-d0ab-4a44-8d35-71d79a50fe13 unimported g! limps endpoint.id |Importing Container ID |Imported Service Id