Hi Scott,
thanks again for providing this sample implementation! That makes it
very transparent how things work.
Actually I thought the ecf-generic provider would work that way ;)
I wasn't able to get the server up and running. Maybe a problem
with the launch configuration. See below for the bundles and their
states.
I added a sample service which should by exported by adding
something like
@Component(property = {
"service.exported.interfaces=*",
"service.exported.configs=ecf.namespace.socket"
})
public class HelloService implements IHello{
public HelloService() {
System.err.println();
}
@Override
public void sayHello() {
System.err.println("Hello");
}
}
but as said before, the server does not seem to get started. The
start code in the Activator does the registration but the
RemoteServiceContainerInstantiator.createInstance is never called.
Any idea?
Thanks!
Bye Peter
ss
id State Bundle
0 ACTIVE org.eclipse.osgi_3.12.50.v20170928-1321
Fragments=22
2 ACTIVE org.eclipse.equinox.common_3.9.0.v20170207-1454
5 ACTIVE
org.eclipse.ecf.remoteservice.asyncproxy_2.1.0.v20180409-2248
6 ACTIVE javax.inject_1.0.0.v20091030
8 ACTIVE org.eclipse.equinox.event_1.4.0.v20170105-1446
9 ACTIVE javax.annotation_1.2.0.v201602091430
11 ACTIVE org.eclipse.osgi.util_3.4.0.v20170111-1608
14 ACTIVE com.ibm.icu_58.2.0.v20170418-1837
18 ACTIVE
org.eclipse.equinox.concurrent_1.1.0.v20130327-1442
19 ACTIVE org.eclipse.osgi.services_3.6.0.v20170228-1906
22 RESOLVED
org.eclipse.osgi.compatibility.state_1.1.0.v20170516-1513
Master=0
23 ACTIVE
org.eclipse.equinox.preferences_3.7.0.v20170126-2132
25 ACTIVE org.apache.batik.css_1.8.0.v20170214-1941
26 ACTIVE org.eclipse.core.contenttype_3.6.0.v20170207-1037
27 ACTIVE org.eclipse.core.jobs_3.9.2.v20171030-1027
31 ACTIVE org.apache.felix.scr_2.0.10.v20170501-2007
33 ACTIVE org.eclipse.ecf.identity_3.9.0.v20180426-1936
34 ACTIVE org.eclipse.equinox.registry_3.7.0.v20170222-1344
41 ACTIVE org.w3c.css.sac_1.3.1.v200903091627
43 ACTIVE
org.eclipse.ecf.provider.tcpsocket.common_1.0.0.qualifier
48 ACTIVE org.apache.commons.jxpath_1.3.0.v200911051830
50 ACTIVE org.eclipse.ecf_3.9.0.v20180402-2015
Fragments=52
51 ACTIVE org.apache.batik.util_1.8.0.v20170214-1941
52 RESOLVED org.eclipse.ecf.ssl_1.2.100.v20180301-0132
Master=50
58 ACTIVE org.eclipse.core.runtime_3.13.0.v20170207-1030
68 ACTIVE
org.eclipse.ecf.provider.tcpsocket.server_1.0.0.qualifier
70 ACTIVE
org.eclipse.ecf.remoteservice_8.13.0.v20180406-1915
73 ACTIVE org.eclipse.equinox.app_1.3.400.v20150715-1528
75 ACTIVE
org.eclipse.ecf.provider.remoteservice_4.4.100.v20180516-2213
76 ACTIVE org.eclipse.ecf.provider_4.8.0.v20180402-2103
77 ACTIVE org.eclipse.ecf.sharedobject_2.6.0.v20180404-2345
78 ACTIVE org.apache.felix.gogo.runtime_0.10.0.v201209301036
79 ACTIVE org.apache.felix.gogo.shell_0.10.0.v201212101605
80 ACTIVE org.eclipse.equinox.console_1.1.300.v20170512-2111
81 ACTIVE service.api_1.0.0.qualifier
82 ACTIVE service.provider_1.0.0.qualifier
83 ACTIVE org.eclipse.ecf.discovery_5.0.300.v20180306-0211
84 ACTIVE
org.eclipse.ecf.osgi.services.distribution_2.1.200.v20180301-0016
85 ACTIVE
org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy_1.0.100.v20180301-0016
86 ACTIVE
org.eclipse.ecf.osgi.services.remoteserviceadmin_4.6.800.v20180518-0149
87 ACTIVE
org.eclipse.ecf.provider.jmdns_4.3.200.v20180306-0429
88 ACTIVE
org.eclipse.osgi.services.remoteserviceadmin_1.6.200.v20180301-0016
89 ACTIVE
org.eclipse.ecf.remoteservice.eventadmin_1.3.0.v20180426-2032
90 ACTIVE org.eclipse.ecf.server_2.1.200.v20180302-2006
91 ACTIVE org.eclipse.equinox.ds_1.5.0.v20170307-1429
Am 27.07.2018 um 20:08 schrieb Scott
Lewis:
On
7/27/2018 7:22 AM, Peter Hermsdorf wrote:
Hi Scott,
that sounds and looks really promising! I'll need some time to
process the information you gave and look at the code and then
come back to you.
This morning I've added some code to allow properties to set the
hostname and port on server side, and to use the ecf.endpoint.id
on client side to connect to the given hostname and port. This
is working...see TCPSocketServerContainer and
TCPSocketClientContainer classes.
I've been testing localhost with the LAN-based discovery
(zeroconf) so the hostname/port exported in the endpoint
description is what is used on the client. If/when other
discovery and import is used on the client, then it can do
whatever it wants wrt what hostname and port to use to connect to
the server.
There are some ways that this is limited, but it can be
generalized or extended, and I'm hoping it will give a good idea
of how to create others.
Scott
|