I have advised ECF on a project creating an
                          E4 based RCP application and we have found and
                          odd thing. When a service is discovered and
                          published in the local OSGi containter there
                          is an exception when E4 dependency injection
                          wants to instantiate the object. 
                          
                        
                        Cheers,
                          
                          
                          Wim
                          
                          
                          
                          osgi> !SESSION 2014-08-27 14:38:16.217
                          -----------------------------------------------
                          eclipse.buildId=unknown
                          java.version=1.7.0_60
                          java.vendor=Oracle Corporation
                          BootLoader constants: OS=win32, ARCH=x86,
                          WS=win32, NL=en_US
                          Framework arguments:  -product
                          ln.ont.sdaorj.gui.product -clearPersistedState
                          Command-line arguments:  -product
                          ln.ont.sdaorj.gui.product -data
                          O:\/../runtime-ln.ont.sdaorj.client.product
                          -dev 
file:O:/.metadata/.plugins/org.eclipse.pde.core/ln.ont.sdaorj.client.product/dev.properties
                          -os win32 -ws win32 -arch x86 -consoleLog
                          -clearPersistedState -console
                          
                          !ENTRY org.eclipse.e4.ui.workbench 1 0
                          2014-08-27 14:38:17.122
                          !MESSAGE LifeCycleManager - Eclipse context
                          registered @lifecyclemanager
                          INFO - RemoteBroker - Remote Broker
                          constructed
                          INFO - RemoteBroker - Remote broker: service
                          trackers active
                          INFO - HostConfigurationManager - Creating
                          host configuration manager
                          INFO - Class - Service
                          
ln.ont.sdaorj.services.IHostConnectionService.proxy@xxxxxxxxxxxxxxx.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://
192.168.192.85:3787/server];containerRelativeID=1]
                          from Name arrived at remote broker
                          
                          !ENTRY
                          org.eclipse.ecf.osgi.services.remoteserviceadmin
                          4 0 2014-08-27 14:38:39.746
                          !MESSAGE
                          org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.remoteserviceadmin;code=4;message=org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin:loadInterfacesViaBundle:interface=ln.ont.sdaorj.services.simulation.IRunControllerService
                          cannot be loaded by
                          clientBundle=org.eclipse.e4.ui.workbench;severity4;exception=java.lang.ClassNotFoundException:
                          ln.ont.sdaorj.services.simulation.IRunControllerService
                          cannot be found by osgi.identity;
                          osgi.identity="org.eclipse.e4.ui.workbench";
                          type="osgi.bundle";
                          version:Version="1.1.0.v20140228-1539";
                          singleton:="true";children=[]]
                          !STACK 0
                          java.lang.ClassNotFoundException:
                          ln.ont.sdaorj.services.simulation.IRunControllerService
                          cannot be found by osgi.identity;
                          osgi.identity="org.eclipse.e4.ui.workbench";
                          type="osgi.bundle";
                          version:Version="1.1.0.v20140228-1539";
                          singleton:="true"
                              at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:416)
                              at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:336)
                              at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:328)
                              at
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
                              at java.lang.ClassLoader.loadClass(Unknown
                          Source)
                              at
org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:568)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.loadServiceInterfacesViaBundle(RemoteServiceAdmin.java:1635)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.createProxy(RemoteServiceAdmin.java:1694)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.access$5(RemoteServiceAdmin.java:1685)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin$ProxyServiceFactory.getService(RemoteServiceAdmin.java:1670)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212)
                              at
                          java.security.AccessController.doPrivileged(Native
                          Method)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:489)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461)
                              at
org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:619)
                              at
org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.serviceChanged(EclipseContextOSGi.java:120)
                              at
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
                              at
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:914)
                              at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
                              at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225)
                              at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:464)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin$10.run(RemoteServiceAdmin.java:1569)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin$10.run(RemoteServiceAdmin.java:1)
                              at
                          java.security.AccessController.doPrivileged(Native
                          Method)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.createAndRegisterProxy(RemoteServiceAdmin.java:1567)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.importService(RemoteServiceAdmin.java:2134)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.importService(RemoteServiceAdmin.java:423)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.AbstractTopologyManager.handleECFEndpointAdded(AbstractTopologyManager.java:244)
                              at
org.eclipse.ecf.internal.osgi.services.distribution.BasicTopologyManagerImpl.endpointAdded(BasicTopologyManagerImpl.java:123)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionLocator$1.dispatchEvent(EndpointDescriptionLocator.java:156)
                              at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
                              at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
                          DEBUG - StartScenarioHandler - Run controller
                          service registered @ StartScenarioHandler
                          DEBUG - AsFastAsPossibleHandler - Run
                          controller service registered @
                          AsFastAsPossibleHandler
                          DEBUG - PauseScenarioHandler - Run controller
                          service registered @ PauseScenarioHandler
                          DEBUG - StopScenarioHandler - Run controller
                          service registered @ StopScenarioHandler
                          DEBUG - ScenarioTimeVisualizer - Run
                          controller service registered @
                          ScenarioTimeVisualizer
                          
                          !ENTRY
                          org.eclipse.ecf.osgi.services.remoteserviceadmin.proxyDEBUG
                          - ScenarioSpeedSlider - Run controller service
                          registered @ ScenarioSpeedSlider
                           4 0 2014-08-27 14:38:39.752
                          !MESSAGE FrameworkEvent ERROR
                          !STACK 0
                          org.osgi.framework.ServiceException: Exception
                          in
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin$ProxyServiceFactory.getService()
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:222)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:489)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461)
                              at
org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:619)
                              at
org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.serviceChanged(EclipseContextOSGi.java:120)
                              at
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
                              at
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:914)
                              at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
                              at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225)
                              at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:464)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin$10.run(RemoteServiceAdmin.java:1569)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin$10.run(RemoteServiceAdmin.java:1)
                              at
                          java.security.AccessController.doPrivileged(Native
                          Method)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.createAndRegisterProxy(RemoteServiceAdmin.java:1567)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.importService(RemoteServiceAdmin.java:2134)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.importService(RemoteServiceAdmin.java:423)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.AbstractTopologyManager.handleECFEndpointAdded(AbstractTopologyManager.java:244)
                              at
org.eclipse.ecf.internal.osgi.services.distribution.BasicTopologyManagerImpl.endpointAdded(BasicTopologyManagerImpl.java:123)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionLocator$1.dispatchEvent(EndpointDescriptionLocator.java:156)
                              at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
                              at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
                          Caused by: java.lang.RuntimeException:
                          ProxyServiceFactory cannot load any
                          serviceInterfaces=[] for
serviceReference={ln.ont.sdaorj.services.simulation.IRunControllerService}={
endpoint.service.id=208,
                          HOST_NAME=Name, service.scope=bundle,
                          HOST_PORT=3787, service.bundleid=7, 
endpoint.id=5f790ac2-681b-4fe6-9fd8-b9359e2b70dd,
                          service.imported=org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceImpl@c7ed08,
                          service.imported.configs=[ecf.generic.client],
                          HOST_IP=192.168.192.85, 
service.id=211}
                          via clientBundle=org.eclipse.e4.ui.workbench
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.createProxy(RemoteServiceAdmin.java:1700)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.access$5(RemoteServiceAdmin.java:1685)
                              at
org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin$ProxyServiceFactory.getService(RemoteServiceAdmin.java:1670)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212)
                              at
                          java.security.AccessController.doPrivileged(Native
                          Method)
                              at
org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210)
                              ... 26 more
                          INFO - Class - Service
                          
ln.ont.sdaorj.services.simulation.IRunControllerService.proxy@xxxxxxxxxxxxxxx.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://
192.168.192.85:3787/server];containerRelativeID=2]
                          from Name arrived at remote broker
                          INFO - Class - Service
                          
ln.ont.sdaorj.services.simulation.IPlatformDataService$IExtendedPlatformDataService.proxy@xxxxxxxxxxxxxxx.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://
192.168.192.85:3787/server];containerRelativeID=3]
                          from Name arrived at remote broker
                          INFO - Class - Service
                          
ln.ont.sdaorj.services.simulation.ISystemTrackDataService$IExtendedSystemTrackDataService.proxy@xxxxxxxxxxxxxxx.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://
192.168.192.85:3787/server];containerRelativeID=4]
                          from Name arrived at remote broker
                          INFO - Class - Service
                          
ln.ont.sdaorj.services.simulation.IEngagementDataService$IExtendedEngagementDataService.proxy@xxxxxxxxxxxxxxx.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://
192.168.192.85:3787/server];containerRelativeID=5]
                          from Name arrived at remote broker
                          
                          osgi> ss sdaorj
                          "Framework is launched."
                          
                          
                          
                          id    State       Bundle
                          4    ACTIVE     
                          ln.ont.sdaorj.gui_1.0.0.qualifier
                          12    ACTIVE     
                          ln.ont.sdaorj.scenario.runcontroller_1.0.0.qualifier
                          30    ACTIVE     
                          ln.ont.sdaorj.remotebroker_3.0.0.qualifier
                          33    RESOLVED   
                          ln.ont.sdaorj.libraries_1.0.0
                          46    STARTING   
                          ln.ont.sdaorj.messaging_4.0.0.qualifier
                          47    RESOLVED   
                          ln.ont.sdaorj.services_1.0.0.qualifier
                          58    RESOLVED   
                          ln.ont.sdaorj.common_1.0.0.qualifier
                          76    RESOLVED   
                          ln.ont.sdaorj.data_1.0.0.qualifier
                          84    ACTIVE     
                          ln.ont.sdaorj.connection.controls_1.0.0.qualifier
                          osgi>