[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| Re: [ecf-dev] How I can get the generic-server instance created by	extension? | 
Hi Pavel,
Samolisov Pavel wrote:
Hello, Folks!
I have made the eclipse plugin and have defined the extension point
"org.eclipse.ecf.server.generic.configuration"
<extension
         point="org.eclipse.ecf.server.generic.configuration">
      <connector
            discovery="true"
            hostname="localhost"
            keepAlive="30000"
            port="4280">
         <group
               name="mygroup">
         </group>
      </connector>
   </extension>
Server have been created and works fine! But I have a problem: How can I
get this server instance in a plugin's activator? For example, I want to
register remote service by this server (using Remote Services API).
  
Unfortunately, this method of creating and initializing generic servers 
(i.e. this extension point) was implemented rather long ago (before ECF 
had an IContainerManager service), and so it doesn't currently support 
access via the IContainerManager service (which would be the normal 
method...i.e. in your own code you could get the IContainerManager via 
OSGi service lookup, followed by your code:
IContainer[] allContainers = containerManager.getAllContainers();
// look through array to find the one you are interested in...or use 
containerManager.getContainer(...) to get the one you are interested in
IRemoteServiceContainerAdapter adapter = 
(IRemoteServiceContainerAdapter) 
myContainer.getAdapter(IRemoteServiceContainerAdapter.class);
// use the adapter to register your remote service
BUT, like I said this old code does not currently support the 
containerManager...and so containerManager.getAllContainers() will not 
find the ones created via the configuration extension point.
This support would be easy to add, however, and I would be happy to do 
so.  Please open an enhancement request and I will address it.  But it 
isn't currently in existing/released code (i.e. in ECF 3.1).
Another way to do this with existing code, however, would be to create 
your own subclass of AbstractGenericServer and parse a config file 
yourself using the ServerConfigParser to create and config server instances.
But please LMK about adding support for containerManager in the code 
that reads the configuration extension point.  Actually, I would 
appreciate an enhancement request in any event.
Scott