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>