Difference between revisions of "ECF/Servers"

From Eclipsepedia

< ECF
Jump to: navigation, search
(Setting up an ECF Server with the Equinox Servlet Incubator)
 
(47 intermediate revisions by 12 users not shown)
Line 1: Line 1:
 
==ECF Generic Server==
 
==ECF Generic Server==
[[Eclipse Communication Framework Project|ECF]] is currently using the [http://www.eclipse.org/equinox/documents/http_in_container.php Equinox Servlet Incubator] to run and support the example collab application running on the 'ECF generic' provider.
 
  
===Connecting to the ECF Generic Server===
+
ECF Generic Servers can now be created, started, and managed dynamically using the [http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/server/generic/IGenericServerContainerGroupFactory.html IGenericServerContainerGroupFactory] service started in the bundle activator of the org.eclipse.ecf.server.generic bundle.
#[http://www.eclipse.org/ecf/downloads.php Download] and install the ECF SDK.
+
#Right-click on a project within your workspace.
+
#Choose 'ECF' -> 'Connect Project...' from the popup menu.
+
#Select the 'ECF generic' provider from the list.
+
#Use '''ecftcp://ecf.eclipse.org:3282/server''' as the connect URI.
+
#Choose a nickname and then select the 'OK' button.
+
  
===Starting the ECF Server in an Eclipse Workspace===
+
Here some example code for creating/starting a simple ECF generic server
#In this context, we'll assume that you're trying to do some development with ECF and have checked out the latest sources from CVS. If you have not already done so, you can go to the [http://www.eclipse.org/ecf/dev_resources.php development resources] and pick up the team project set files.
+
#Once you've got your workspace setup, open up the '''org.eclipse.ecf.provider''' project and wait for it to build completely if you have not already.
+
#You should now click on the dropdown arrow of the green 'Run' button and then click on 'Run...'.
+
#In the 'Java Application' tree node, expand it and then find the 'ECF Server Application' launch configuration.
+
#Click on the 'Run' button on the bottom right-hand corner and your workstation will not become an 'ECF generic' server!
+
  
===Setting up an ECF Server with the Equinox Servlet Incubator===
+
<pre>
 +
// Get generic server container group factory service...e.g. via declarative service injection
 +
// or via ServiceTracker
 +
IGenericServerContainerGroupFactory genericServerFactory = <get IGenericServerContainerGroupFactory service>;
  
<ol>
+
// Create generic server container group for localhost, listen port=3282
<li>Follow instructions for setting up the [http://www.eclipse.org/equinox/server/http_in_container.php Equinox Servlet Incubator].  Note the location of the '''<appserverhome>/webapps/bridge/WEB-INF/platform/plugins''' directory.
+
IGenericServerContainerGroup containerGroup = genericServerFactory.createContainerGroup("localhost",3282);
</li>
+
<li><b>
+
NOTE: ECF server requires some of the bundles that come from the Equinox core (containing org.eclipse.core.runtime packages and and others).  See [http://download.eclipse.org/eclipse/equinox/ Equinox download page] for these bundles.
+
</li>
+
<li>Download ECF plugins:  [http://www.eclipse.org/downloads/download.php?file=/technology/ecf/org.eclipse.ecf.sdk-0.9.6.S20070113.zip  ECF 0.9.6] or [http://www.eclipse.org/downloads/download.php ECF Download Page]
+
#Copy the ECF plugins into the '''<appserverhome>/webapps/bridge/WEB-INF/platform/plugins''' directory created above.
+
</li>
+
<li>Edit the '''conf/server.xml''' in '''org.eclipse.ecf.server''' plugin (temporarily (0.9.6) you will need to unjar this plugin, edit the server.xml as described below and either re-jar it or create a directory for  it...we'll get this fixed in subsequent releases.  I've setup bug  [https://bugs.eclipse.org/bugs/show_bug.cgi?id=172724 172724] to track this).
+
  
The default content for server.xml is:
+
// Create an ECF container within the container group, and give it path="/server"
 +
// The resulting container's ID will be:  ecftcp://localhost:3282/server
 +
containerGroup.createContainer("/server");
  
<pre>
+
// start listening for client connections
<server>
+
containerGroup.startListening();
  <!--
+
    <connector protocol="ecftcp"  hostname="localhost" port="3282" timeout="30000">
+
<group name="server"/>
+
    </connector>
+
-->
+
</server>
+
 
</pre>
 
</pre>
  
Notice that this default connector is commented out.  You should create connectors like this (from ecf.eclipse.org):
+
{{ECF}}
 
+
<pre>
+
<server>
+
  <connector protocol="ecftcp"  hostname="localhost" port="3282" timeout="30000">
+
          <group name="server"/>
+
          <group name="se"/>
+
  </connector>
+
</server>
+
</pre>
+
 
+
This sets up two groups, with URLs: 
+
 
+
'''ecftcp://ecf.eclipse.org:3282/server''' and '''ecftcp://ecf.eclipse.org:3282/se'''
+
 
+
You can add as many groups as you want for a given connector.
+
</li>
+
<li>Start the org.eclipse.ecf.server bundle.  This can be done via the server console (with ''''start org.eclipse.ecf.server'''') or can be setup to start automatically via the '''<appserverhome>webapps/bridge/WEB-INF/platform/configuration/config.ini''' file.
+
</li>
+
</ol>
+
  
[[Category:Eclipse Communication Framework|Servers]]
+
[[Category:Eclipse Communication Framework]]
 +
[[Category:ECF]]
 +
[[Category:Servers]]

Latest revision as of 15:36, 14 March 2011

[edit] ECF Generic Server

ECF Generic Servers can now be created, started, and managed dynamically using the IGenericServerContainerGroupFactory service started in the bundle activator of the org.eclipse.ecf.server.generic bundle.

Here some example code for creating/starting a simple ECF generic server

// Get generic server container group factory service...e.g. via declarative service injection
// or via ServiceTracker
IGenericServerContainerGroupFactory genericServerFactory = <get IGenericServerContainerGroupFactory service>;

// Create generic server container group for localhost, listen port=3282
IGenericServerContainerGroup containerGroup = genericServerFactory.createContainerGroup("localhost",3282);

// Create an ECF container within the container group, and give it path="/server"
// The resulting container's ID will be:  ecftcp://localhost:3282/server
containerGroup.createContainer("/server");

// start listening for client connections
containerGroup.startListening();
Eclipse Communication Framework
API
API DocumentationJavadocProvidersECF/Bot Framework
Components
ServersShared EditingShared Code Plug-in
Development
Development GuidelinesIntegrators Guide