Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorslewis2007-05-23 05:02:57 +0000
committerslewis2007-05-23 05:02:57 +0000
commitb6b10c697bfaf1a1f0db81b36e184957a69ad98e (patch)
tree16a34f8605187d2ec8e2ae46c0827e453e941a81 /doc
parenta1ca65e70af0c71b61c6c43dca7168cf6ca27a35 (diff)
downloadorg.eclipse.ecf-b6b10c697bfaf1a1f0db81b36e184957a69ad98e.tar.gz
org.eclipse.ecf-b6b10c697bfaf1a1f0db81b36e184957a69ad98e.tar.xz
org.eclipse.ecf-b6b10c697bfaf1a1f0db81b36e184957a69ad98e.zip
Extension points documentation
Diffstat (limited to 'doc')
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/.cvsignore1
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_containerFactory.html226
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_identity_namespace.html118
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_chatRoomMessageHandler.html92
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_chatRoomRobot.html96
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_imMessageHandler.html91
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_imRobot.html81
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_provider_filetransfer_fileTransferProtocolFactory.html82
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_server_generic_configuration.html77
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_sharedobject_sharedObjectFactory.html258
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_startup.html108
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_ui_configurationWizards.html131
-rw-r--r--doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_ui_connectWizards.html120
13 files changed, 1480 insertions, 1 deletions
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/.cvsignore b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/.cvsignore
deleted file mode 100644
index 2d19fc766..000000000
--- a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-*.html
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_containerFactory.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_containerFactory.html
new file mode 100644
index 000000000..acd321b74
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_containerFactory.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>ECF Container Factory</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>ECF Container Factory</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.containerFactory<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>0.0.1
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>This extension allows plugins to register themselves as 'providers' of ECF containers. Once registered via this extension point, plugins can then provide there own implementations of IContainer in response to client request of the ECF container factory (<b>org.eclipse.ecf.core.ContainerFactory</b>).
+<p>Plugins using this extension point can define a new implementation of any desired communications protocol, and expose that protocol as an instance of an <b>IContainer</b>. When client requests are made to ECF ContainerFactory to create <b>IContainer</b> instances, those requests will be re-directed to the given IContainer implementer.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.containerFactory">containerFactory</a>+)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.containerFactory">containerFactory</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST containerFactory</p>
+<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>description&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(true | false) <p class=code id=dtdAttlist>hidden&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+The container factory extension point. Can optionally contain a list of 'defaultargument' elements that describe the arguments (and provide default values) to be passed to provider implementation</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>class</b> - The fully qualified name of the class implementing the <b>org.eclipse.ecf.core.provider.IContainerInstantiator</b> interface.</li>
+<li><b>name</b> - An optional name for the extension. If no name is explicitly provided by the extension, the containerFactory class name is used as the name. Note that this name must <b>not</b> conflict with any other name in the ECF SharedFactory in order to be successfully registered in the container factory. Care should therefore be taken in selection of a name such that it does not conflict with other pre-existing names for this factory implementations</li>
+<li><b>description</b> - A description of the container factory suitable for presentation in a user interface.</li>
+<li><b>server</b> - Flag to indicate whether the factory is for creating servers. Default is false.</li>
+<li><b>hidden</b> - Flag for whether the given container factory should be hidden in the user interface. Default is false.</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6>Here's an extension that associates a class org.eclipse.ecf.test.FooContainerFactory with name 'foo' in the ECF <b>ContainerFactory</b>:
+
+<pre>
+<p class=code id=tag>&lt;extension point=<p class=code id=cstring>&quot;org.eclipse.ecf.containerFactory&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;containerFactory name=<p class=code id=cstring>&quot;foo&quot;</p><p class=code id=tag> class=<p class=code id=cstring>&quot;org.eclipse.ecf.test.FooInstantiator&quot;</p><p class=code id=tag> description=<p class=code id=cstring>&quot;My container factory&quot;</p><p class=code id=tag>/&gt;</p>
+<p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+
+Here is some example code to implement this class:
+
+<pre>
+package org.eclipse.ecf.test;
+
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.ContainerInstantiationException;
+import org.eclipse.ecf.core.provider.IContainerInstantiator;
+
+public class FooInstantiator implements IContainerInstantiator {
+
+ public FooInstantiator() {
+ super();
+ }
+ public IContainer createInstance(ContainerTypeDescription description, Class[] argTypes, Object[] args)
+ throws ContainerInstantiationException {
+ // Create/return instance of FooContainer
+ // Note that FooContainer class must
+ // implement IContainer
+ return new FooContainer();
+ }
+}
+</pre>
+
+In this example, the given class implements the <b>IContainerInstantiator</b>.createInstance method by creating and returning a new instance of FooInstantiator, a class also defined in the extension plugin. As noted in the code, this class must implement <b>IContainer</b>, so that it can successfully be returned from createInstance.
+
+<h3>Example Usage of Container by Clients</h3>
+
+Clients that wish to use the 'foo' container implementation can do so simply by making the following call to create an <b>IContainer</b>:
+
+<pre>
+IContainer newContainer = ContainerFactory.getDefault().createContainer(&apos;foo&apos;);
+// Further use of newContainer instance here
+
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>The API for this extension point is provided by the <b>org.eclipse.ecf.core.ContainerFactory.getDefault()</b> methods. Specifically, the 'createContainer' methods are to be used by clients. The functionality provided by the extension point mechanism can be used at runtime via the <b>ContainerFactory.getDefault().addDescription(ContainerTypeDescription)</b> method. Here is the IContainerFactory interface
+contract:
+
+<pre>
+/**
+ * Container factory contract {@link ContainerFactory} for default
+ * implementation.
+ */
+public interface IContainerFactory {
+ /**
+ * Add a ContainerTypeDescription to the set of known ContainerDescriptions.
+ *
+ * @param description
+ * the ContainerTypeDescription to add to this factory. Must not
+ * be null.
+ * @return ContainerTypeDescription the old description of the same name,
+ * null if none found
+ */
+ public ContainerTypeDescription addDescription(ContainerTypeDescription description);
+
+ /**
+ * Get a collection of the ContainerDescriptions currently known to this
+ * factory. This allows clients to query the factory to determine what if
+ * any other ContainerDescriptions are currently registered with the
+ * factory, and if so, what they are.
+ *
+ * @return List of ContainerTypeDescription instances
+ */
+ public List /* ContainerTypeDescription */ getDescriptions();
+
+ /**
+ * Check to see if a given named description is already contained by this
+ * factory
+ *
+ * @param description
+ * the ContainerTypeDescription to look for
+ * @return true if description is already known to factory, false otherwise
+ */
+ public boolean containsDescription(ContainerTypeDescription description);
+
+ /**
+ * Get the known ContainerTypeDescription given it&apos;s name.
+ *
+ * @param name
+ * the name to use as key to find ContainerTypeDescription
+ * @return ContainerTypeDescription found. Null if not found.
+ */
+ public ContainerTypeDescription getDescriptionByName(String name);
+
+ /**
+ * Make IContainer instance. Given a ContainerTypeDescription object, a
+ * String [] of argument types, and an Object [] of parameters, this method
+ * will
+ * <p class=code id=tag>&lt;p&gt;</p>
+ * <p class=code id=tag>&lt;ul&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>lookup the known ContainerDescriptions to find one of matching name<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>if found, will retrieve or create an IContainerInstantiator for that
+ * description<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>Call the IContainerInstantiator.createInstance method to return an
+ * instance of IContainer<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;/ul&gt;</p>
+ *
+ * @param description
+ * the ContainerTypeDescription to use to create the instance
+ * @param parameters
+ * an Object [] of parameters passed to the createInstance method
+ * of the IContainerInstantiator
+ * @return a valid instance of IContainer
+ * @throws ContainerCreateException
+ */
+ public IContainer createContainer(ContainerTypeDescription description,
+ Object[] parameters) throws ContainerCreateException;
+
+ /**
+ * Make IContainer instance. Given a ContainerTypeDescription name, this
+ * method will
+ * <p class=code id=tag>&lt;p&gt;</p>
+ * <p class=code id=tag>&lt;ul&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>lookup the known ContainerDescriptions to find one of matching name<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>if found, will retrieve or create an IContainerInstantiator for that
+ * description<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>Call the IContainerInstantiator.createInstance method to return an
+ * instance of IContainer<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;/ul&gt;</p>
+ *
+ * @param descriptionName
+ * the ContainerTypeDescription name to lookup
+ * @return a valid instance of IContainer
+ * @throws ContainerCreateException
+ */
+ public IContainer createContainer(String descriptionName)
+ throws ContainerCreateException;
+
+ /**
+ * Make IContainer instance. Given a ContainerTypeDescription name, this
+ * method will
+ * <p class=code id=tag>&lt;p&gt;</p>
+ * <p class=code id=tag>&lt;ul&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>lookup the known ContainerDescriptions to find one of matching name<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>if found, will retrieve or create an IContainerInstantiator for that
+ * description<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>Call the IContainerInstantiator.createInstance method to return an
+ * instance of IContainer<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;/ul&gt;</p>
+ *
+ * @param descriptionName
+ * the ContainerTypeDescription name to lookup
+ * @param parameters
+ * the Object [] of parameters passed to the
+ * IContainerInstantiator.createInstance method
+ * @return a valid instance of IContainer
+ * @throws ContainerCreateException
+ */
+ public IContainer createContainer(String descriptionName, Object[] parameters)
+ throws ContainerCreateException;
+
+ /**
+ * Remove given description from set known to this factory.
+ *
+ * @param description
+ * the ContainerTypeDescription to remove
+ * @return the removed ContainerTypeDescription, null if nothing removed
+ */
+ public ContainerTypeDescription removeDescription(
+ ContainerTypeDescription description);
+}
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>The supplied implementations of this extension point are:
+
+org.eclipse.ecf.provider.generic.GenericContainerInstantiator
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2004 Composent, Inc. and others.
+All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Composent, Inc. - initial API and implementation
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_identity_namespace.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_identity_namespace.html
new file mode 100644
index 000000000..591f35ded
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_identity_namespace.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>ECF Namespace</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>ECF Namespace</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.identity.namespace<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>0.4.0
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>Extension point that allows other plugins to define new Namespaces. Namespaces are used by the IDFactory for creating new ID instances. Plugins may define extension Namespace implementation, which will then be used to construct ID instances within than Namespace when clients use the default ECF identity factory (accessed via org.eclipse.ecf.core.identity.IDFactory.getDefault()).
+<p>
+Plugins implementing this extension point must define a Namespace class that extends <b>org.eclipse.ecf.core.identity.Namespace</b>. The class attribute of the namespace extension must provide a valid Namespace subclass. The name attribute defines the namespace name. If the name attribute is not present, then the Namespace class will be used as the Namespace name. The optional description attribute is an optional arbitrary description for the Namespace.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.namespace">namespace</a>+)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.namespace">namespace</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST namespace</p>
+<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>description&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+Element allowing plugins to define new ECF Namespaces. Plugins wishing to define new Namespaces must provide an extension of this extension point.</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>name</b> - Optional name for new Namespace. If not provided, the name will be assumed to be the value provided by the 'class' attribute for this extension point. Note that this name must <b>not</b> conflict with any other Namespace name in the ECF IDFactory in order to be successfully registered. Care should therefore be taken in selection of a namespace name such that it does not conflict with other implementations.</li>
+<li><b>class</b> - The fully qualified name of a class that extends <b>org.eclipse.ecf.core.identity.Namespace</b>.</li>
+<li><b>description</b> - An optional description for the Namespace extension</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6>Here's an extension definition that associates an namespace class with namespace 'testid':
+
+<pre>
+ <p class=code id=tag>&lt;extension point=<p class=code id=cstring>&quot;org.eclipse.ecf.identity.namespace&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;namespace name=<p class=code id=cstring>&quot;testnamespace&quot;</p><p class=code id=tag> class=<p class=code id=cstring>&quot;org.eclipse.ecf.test.FooNamespace&quot;</p><p class=code id=tag> description=<p class=code id=cstring>&quot;my namespace implementation&quot;</p><p class=code id=tag>/&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+
+Here is some example code to implement this FooNamespace class:
+
+<pre>
+package org.eclipse.ecf.test;
+
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.core.identity.IDCreateException;
+import org.eclipse.ecf.core.identity.Namespace;
+
+public class FooNamespace extends
+ org.eclipse.ecf.core.identity.Namespace {
+
+ public ID createInstance(Class[] argTypes, Object[] args)
+ throws IDCreateException {
+ return new FooID((String) args[0]);
+ }
+}
+</pre>
+
+In this example, the FooNamespace class implements the abstract <b>Namesapce</b>.createInstance method by creating and returning a new instance of FooID, a class also defined by the extension plugin. This class must implement <b>ID</b>, so that it can successfully be returned from the Namespace.createInstance call.
+
+<h3>Example Usage of IDFactory by Clients</h3>
+
+Clients that wish to use the 'testnamespace' Namespace implementation can do so simply by making the following call to create an <b>IDFactory</b>:
+
+<pre>
+ID newID = IDFactory.getDefault().createID("testnamespace","email@emailserver.com");
+</pre>
+Another example would be:
+<pre>
+ID newID = IDFactory.getDefault().createID(new URI("testnamespace:email@emailserver.com"));
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>The client API for this extension point is provided by the <b>org.eclipse.ecf.core.IIDFactory.createID</b> methods. A valid IIDFactory is provided by the by the static <b>org.eclipse.ecf.core.identityIDFactory.getDefault()</b> method.
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>The following implementations of this extension point are provided by ECF itself:
+<p>
+StringID -- A namespace of ID instances that are implemented by <b>org.eclipse.ecf.core.identity.StringID</b>
+<p>Clients may use this namespace with calls to:
+<pre>
+ID newID = org.eclipse.ecf.core.identity.IDFactory.createStringID(&apos;idstringvalue&apos;);
+</pre>
+</p>
+</p>
+<p>
+LongID -- A namespace of ID instances that are implemented by <b>org.eclipse.ecf.core.identity.LongID</b>
+<p>Clients may use this namespace with calls to:
+<pre>
+ID newID = org.eclipse.ecf.core.identity.IDFactory.createLongID(2004L);
+</pre>
+</p>
+</p>
+<p>
+GUID -- A namespace of ID instances that are implemented by <b>org.eclipse.ecf.core.identity.GUID</b>
+<p>Clients may use this namespace with calls to:
+<pre>
+ID newID = org.eclipse.ecf.core.identity.IDFactory.createGUID(16);
+</pre>
+</p>
+</p>
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2004 Composent, Inc. and others.
+All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Composent, Inc. - initial API and implementation
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_chatRoomMessageHandler.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_chatRoomMessageHandler.html
new file mode 100644
index 000000000..68493fbbe
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_chatRoomMessageHandler.html
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Chat Room Message Handler</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>Chat Room Message Handler</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.presence.bot.chatRoomMessageHandler<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>1.0.0 milestone 6
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>This extension point allows message handlers to be associated with a given chatroomrobot (via chatroomrobotid attribute). Note that the chatroomrobotid must exist or the handler will not be called.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.handler">handler</a>)+&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.handler">handler</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST handler</p>
+<p class=code id=dtdAttlist>chatRoomRobotId&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>filterExpression&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+The chat room message handler</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>chatRoomRobotId</b> - Required chatRoomRobotId. The value of this field must match a chatRoomRobot id</li>
+<li><b>filterExpression</b> - Optional filter expression. If filterexpression is provided, then chatroom messages will be filtered via given regular expression. If match, then the handleChatRoomMessage method will be called. If not matched, then the received message will be ignored.</li>
+<li><b>class</b> - The class of the message handler instance to create. Must implement <b>org.eclipse.ecf.presence.bot.IChatRoomMessageHandler</b>.</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6><pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.chatRoomMessageHandler&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;handler
+ chatRoomRobotId=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.defaultbot&quot;</p><p class=code id=tag>
+ class=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.DefaultChatRoomMessageHandler&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/handler&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+
+Note that the given chatroomrobotid=<b>org.eclipse.ecf.presence.bot.defaultbot</b> must be previously defined via the chatroomrobot extension point. Here is an example:
+
+<pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.chatRoomRobot&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;chatRoomRobot
+ chat
+ chatRoom=<p class=code id=cstring>&quot;#eclipse-ecf&quot;</p><p class=code id=tag>
+ connectId=<p class=code id=cstring>&quot;irc://slewis2_@irc.freenode.net&quot;</p><p class=code id=tag>
+ containerFactoryName=<p class=code id=cstring>&quot;ecf.irc.irclib&quot;</p><p class=code id=tag>
+ id=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.defaultbot&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/chatRoomRobot&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>The class implementation provided in extension point must implement the following interface:
+
+<pre>
+public interface IChatRoomMessageHandler extends IChatRoomContainerAdvisor {
+
+ /**
+ * This method is called when a {@link IChatRoomMessage} is received.
+ *
+ * @param message
+ * the {@link IChatRoomMessage} received. Will not be
+ * <p class=code id=tag>&lt;code&gt;</p>null<p class=code id=tag>&lt;/code&gt;</p>. Implementers should not block the
+ * calling thread. Any methods on the given <p class=code id=tag>&lt;code&gt;</p>message<p class=code id=tag>&lt;/code&gt;</p>
+ * parameter may be called.
+ */
+ public void handleRoomMessage(IChatRoomMessage message);
+
+}
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>No supplied implementation.
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2007 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_chatRoomRobot.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_chatRoomRobot.html
new file mode 100644
index 000000000..edcff08b2
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_chatRoomRobot.html
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Chat Room Robot</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>Chat Room Robot</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.presence.bot.chatRoomRobot<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>1.0.0 milestone 6
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>This extension point allows implementers to define a chat room bot.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.chatRoomRobot">chatRoomRobot</a>)+&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.chatRoomRobot">chatRoomRobot</a> (<a href="#e.chatRooms">chatRooms</a>+)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST chatRoomRobot</p>
+<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>containerFactoryName&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>connectId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>connectPassword&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+The chatRoomRobot extension point.</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>id</b> - The required id for the chat room robot. This must be a unique value relative to all other robots. For message handlers that are to use this robot, they must provide a chatrobotid that matches this value.</li>
+<li><b>containerFactoryName</b> - The required container factory name. This should be the container factory name for a given protocol. For example, for the built in ECF IRC provider the value is <b>ecf.irc.irclib</b>.</li>
+<li><b>connectId</b> - The connect ID for connecting to the given container. For example, for IRC the expected ID syntax of the connect ID is
+<pre>
+irc://username@host[:port]
+
+for example: irc://slewis2_@irc.freenode.net
+</pre></li>
+<li><b>connectPassword</b> - An optional connect password. If a password is required to connect to the given container then an appropriate value must be provided.</li>
+<li><b>name</b> - An optional name for the bot.</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.chatRooms">chatRooms</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST chatRooms</p>
+<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>password&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>name</b> - The name of the chat room that the robot should join.</li>
+<li><b>password</b> - The password required to join the chat room.</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6><pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.chatRoomRobot&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;chatRoomRobot
+ connectId=<p class=code id=cstring>&quot;irc://slewis2_@irc.freenode.net&quot;</p><p class=code id=tag>
+ containerFactoryName=<p class=code id=cstring>&quot;ecf.irc.irclib&quot;</p><p class=code id=tag>
+ id=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.defaultbot&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;chatRooms
+ name=<p class=code id=cstring>&quot;#eclipse-ecf&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/chatRooms&gt;</p>
+ <p class=code id=tag>&lt;chatRooms
+ name=<p class=code id=cstring>&quot;#secret-channel&quot;</p><p class=code id=tag>
+ password=<p class=code id=cstring>&quot;secret-password&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/chatRooms&gt;</p>
+ <p class=code id=tag>&lt;/chatRoomRobot&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+
+Note that to have the chatRoomRobot receive chat room messages and process them, that the chatRoomMessageHandler should also be defined
+using the id for the chatRoomRobot given above. For example:
+
+<pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.chatRoomMessageHandler&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;handler
+ chatRoomRobotId=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.defaultbot&quot;</p><p class=code id=tag>
+ class=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.DefaultChatRoomMessageHandler&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/handler&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>See the API information for the chatRoomMessageHandler
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>No supplied implementation.
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2007 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_imMessageHandler.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_imMessageHandler.html
new file mode 100644
index 000000000..d47152c86
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_imMessageHandler.html
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>IM Message Handler</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>IM Message Handler</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.presence.bot.imMessageHandler<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>1.0.0 milestone 6
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>This extension point allows message handler objects to be associated
+with imrobot instances.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.handler">handler</a>+)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.handler">handler</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST handler</p>
+<p class=code id=dtdAttlist>imRobotId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>filterExpression&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+The im message handler</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>imRobotId</b> - Required imRobotId. The value of this field must match a imrobot id</li>
+<li><b>filterExpression</b> - Optional filter expression. If filterExpression is provided, then chatroom messages will be filtered via given regular expression. If match, then the handleChatRoomMessage method will be called. If not matched, then the received message will be ignored.</li>
+<li><b>class</b> - The class of the message handler instance to create. Must implement <b>org.eclipse.ecf.presence.bot.IIMMessageHandler</b>.</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6><pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.imMessageHandler&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;handler
+ imrobotid=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.imbot.defaultbot&quot;</p><p class=code id=tag>
+ class=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.imbot.DefaultIMMessageHandler&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/handler&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+
+Note that the given imrobotid=<b>org.eclipse.ecf.presence.imbot.defaultbot</b> must be previously defined via the imrobot extension point. Here is an example:
+
+<pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.imRobot&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;imRobot
+ connectID=<p class=code id=cstring>&quot;slewis@ecf.eclipse.org&quot;</p><p class=code id=tag>
+ containerFactoryName=<p class=code id=cstring>&quot;ecf.xmpp.smack&quot;</p><p class=code id=tag>
+ id=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.imbot.defaultbot&quot;</p><p class=code id=tag>/&gt;</p>
+ <p class=code id=tag>&lt;/imRobot&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>The class implementation provided in extension point must implement the following interface:
+
+<pre>
+public interface IIMMessageHandler extends IContainerAdvisor {
+
+ /**
+ * This method is called when a {@link IChatMessage} is received.
+ *
+ * @param message
+ * the {@link IChatMessage} received. Will not be
+ * <p class=code id=tag>&lt;code&gt;</p>null<p class=code id=tag>&lt;/code&gt;</p>. Implementers should not block the
+ * calling thread. Any methods on the given <p class=code id=tag>&lt;code&gt;</p>message<p class=code id=tag>&lt;/code&gt;</p>
+ * parameter may be called.
+ */
+ public void handleIMMessage(IChatMessage message);
+
+}
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>No supplied implementation.
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2007 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_imRobot.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_imRobot.html
new file mode 100644
index 000000000..a2651fad3
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_presence_bot_imRobot.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>IM Robot</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>IM Robot</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.presence.bot.imRobot<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>1.0.0 milestone 6
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>This extension point allows implementers to define a im bot.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.imRobot">imRobot</a>)+&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.imRobot">imRobot</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST imRobot</p>
+<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>containerFactoryName&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>connectId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>connectPassword&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+The imrobot extension point.</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>id</b> - The required id for the im robot. This must be a unique value relative to all other im robots. For message handlers that are to use this robot, they must provide a imrobotid that matches this value.</li>
+<li><b>containerFactoryName</b> - The required container factory name. This should be the container factory name for a given protocol. For example, for the built in ECF IRC provider the value is <b>ecf.xmpp.smack</b>.</li>
+<li><b>connectId</b> - The connect ID for connecting to the given container. For example, for XMPP the expected ID syntax of the connect ID is
+<pre>
+username@host[:port]
+
+for example: slewis@ecf.eclipse.org
+</pre></li>
+<li><b>name</b> - An optional name for the bot.</li>
+<li><b>connectPassword</b> - An optional connect password. If a password is required to connect to the given container then an appropriate value must be provided.</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6><pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.imRobot&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;imRobot
+ connectID=<p class=code id=cstring>&quot;slewis@ecf.eclipse.org&quot;</p><p class=code id=tag>
+ containerFactoryName=<p class=code id=cstring>&quot;ecf.xmpp.smack&quot;</p><p class=code id=tag>
+ id=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.imbot.defaultbot&quot;</p><p class=code id=tag>/&gt;</p>
+ <p class=code id=tag>&lt;/imRobot&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+
+Note that to have the imrobot receive im messages and process them, that the immessagehandler should also be defined
+using the id for the imrobot given above. For example:
+
+<pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.bot.immessagehandler&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;handler
+ imrobotid=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.imbot.defaultbot&quot;</p><p class=code id=tag>
+ class=<p class=code id=cstring>&quot;org.eclipse.ecf.presence.imbot.DefaultIMMessageHandler&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/handler&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>See the API information for the immessagehandler.
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>No supplied implementation.
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2007 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_provider_filetransfer_fileTransferProtocolFactory.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_provider_filetransfer_fileTransferProtocolFactory.html
new file mode 100644
index 000000000..46ca1ea39
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_provider_filetransfer_fileTransferProtocolFactory.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>fileTransferProtocolFactory</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>fileTransferProtocolFactory</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.provider.filetransfer.fileTransferProtocolFactory<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>1.0.0
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>This extension point allows IRetrieveFileTransferFactorys to be defined for given file transfer protocols.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.fileTransferProtocolFactory">fileTransferProtocolFactory</a>*)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.fileTransferProtocolFactory">fileTransferProtocolFactory</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST fileTransferProtocolFactory</p>
+<p class=code id=dtdAttlist>protocol&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+File transfer protocol factory extention point</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>protocol</b> - Protocol to define factory for. For example, http, https, ftp, bittorrent, my.favorite.protocol.</li>
+<li><b>class</b> - The factory class to use for given protocol. Must implement <b>org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory</b></li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6><pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.provider.filetransfer.fileTransferProtocolFactory&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;fileTransferProtocolFactory
+ class=<p class=code id=cstring>&quot;org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransferFactory&quot;</p><p class=code id=tag>
+ protocol=<p class=code id=cstring>&quot;http&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/fileTransferProtocolFactory&gt;</p>
+ <p class=code id=tag>&lt;fileTransferProtocolFactory
+ class=<p class=code id=cstring>&quot;org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransferFactory&quot;</p><p class=code id=tag>
+ protocol=<p class=code id=cstring>&quot;https&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/fileTransferProtocolFactory&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>Here is the <b>org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory</b>
+
+<pre>
+/**
+ * Retrieve file transfer factory. This service interface is used by clients to
+ * create a new IRetrieveFileTransfer instance.
+ */
+public interface IRetrieveFileTransferFactory {
+
+ /**
+ * Get new instance of IRetrieveFileTransfer.
+ *
+ * @return IRetrieveFileTransfer for a given file transfer
+ */
+ public IRetrieveFileTransfer newInstance();
+
+}
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>None
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2004 Composent, Inc., IBM and others.
+All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Composent, Inc. - initial API and implementation, IBM, Inc. - Initial API and implementation
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_server_generic_configuration.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_server_generic_configuration.html
new file mode 100644
index 000000000..a2a82aa90
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_server_generic_configuration.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>ECF Generic Server Configuration</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>ECF Generic Server Configuration</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.server.generic.configuration<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>1.0.0
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>This extension point allows ECF generic server instances to be configured via extension point definition.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.connector">connector</a>+)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.connector">connector</a> (<a href="#e.group">group</a>+)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST connector</p>
+<p class=code id=dtdAttlist>hostname&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>keepAlive&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>discovery&nbsp;(true | false) &gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+A connector defines the port and other information for an ECF generic server to receive connection requests from clients.</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>hostname</b> - Defines the hostname expected in the server ID...e.g. "localhost". If not specified, default is "localhost".</li>
+<li><b>port</b> - The port (e.g. 3282) for the connector to listen on. If not specified, is set to 3282.</li>
+<li><b>keepAlive</b> - The timeout associated with the ECF generic server failure detector (in ms). If not specified, defaults to 30000 (30 seconds).</li>
+<li><b>discovery</b> - The discovery flag determines if the given service is published for discovery via the IDiscoveryService</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.group">group</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST group</p>
+<p class=code id=dtdAttlist>name&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+A specific named group for the parent connector. e.g. 'server' in ecftcp://localhost:3282/server</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>name</b> - The name for the group in the ID: e.g. 'server' in ecftcp://localhost:3282/server</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6>The following is an example use of the org.eclipse.ecf.server.generic.configration extension point:
+
+<pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.server.generic.configuration&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;connector
+ hostname=<p class=code id=cstring>&quot;localhost&quot;</p><p class=code id=tag>
+ keepAlive=<p class=code id=cstring>&quot;30000&quot;</p><p class=code id=tag>
+ port=<p class=code id=cstring>&quot;3282&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;group
+ name=<p class=code id=cstring>&quot;server&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/group&gt;</p>
+ <p class=code id=tag>&lt;/connector&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+
+Produces a server with groupID: ecftcp://localhost:3333/groupName
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>No public programmatic API
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2004 Composent, Inc. and others.
+All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Composent, Inc. - initial API and implementation
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_sharedobject_sharedObjectFactory.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_sharedobject_sharedObjectFactory.html
new file mode 100644
index 000000000..3530ec7e6
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_sharedobject_sharedObjectFactory.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>ECF Shared Object Factory</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>ECF Shared Object Factory</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.sharedObjectFactory<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>0.6.0
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>ECF Shared Object Factory extension point (<b>org.eclipse.ecf.sharedObjectFactory</b>. This extension point allows implmenters to define an <b>org.eclipse.ecf.core.sharedobject.provider.ISharedObjectInstantiator</b> that will be responsible for creating
+<b>org.eclipse.ecf.core.sharedobject.ISharedObject</b> instances when requested by clients. Here is the <b>ISharedObjectInstantiator</b> that
+extensions must implement:
+
+<pre>
+public interface ISharedObjectInstantiator {
+ /**
+ * Create instance of ISharedObject. This is the interface that plugin
+ * implementations must implement for the sharedObjectFactory extension
+ * point. The caller may optionally specify both argument types and
+ * arguments that will be passed into this method (and therefore to the
+ * provider implementation implementing this method). For example:
+ * <p class=code id=tag>&lt;p&gt;</p>
+ * <p class=code id=tag>&lt;/p&gt;</p>
+ * <p class=code id=tag>&lt;p&gt;</p>
+ * <p class=code id=tag>&lt;b&gt;</p>
+ * SharedObjectFactory.getDefault().createSharedObject("foosharedobject",new
+ * String [] { java.lang.String }, new Object { "hello" });<p class=code id=tag>&lt;/b&gt;</p>
+ * <p class=code id=tag>&lt;/p&gt;</p>
+ * <p class=code id=tag>&lt;p&gt;</p>
+ * <p class=code id=tag>&lt;/p&gt;</p>
+ *
+ * @param typeDescription
+ * the SharedObjectTypeDescription associated with the registered
+ * shared object provider implementation plugin
+ * @param args
+ * arguments specified by the caller. May be null if no arguments
+ * are passed in by caller to
+ * SharedObjectFactory.getDefault().createSharedObject(...)
+ * @return ISharedObject instance. The provider implementation must return a
+ * valid object implementing ISharedObject OR throw a
+ * SharedObjectCreateException
+ * @throws SharedObjectCreateException
+ * if shared object instance cannot be created
+ */
+ public ISharedObject createInstance(
+ SharedObjectTypeDescription typeDescription, Object[] args)
+ throws SharedObjectCreateException;
+}
+</pre></p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.sharedObjectFactory">sharedObjectFactory</a>+)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.sharedObjectFactory">sharedObjectFactory</a> (<a href="#e.property">property</a>*)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST sharedObjectFactory</p>
+<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>description&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>class</b> - The fully qualified name of the class that implements the <b>org.eclipse.ecf.core.provider.ISharedObjectInstantiator</b> interface.</li>
+<li><b>name</b> - An optional name for the extension. If no name is explicitly provided by the extension, the sharedObjectFactory class name is used as the name. Note that this name must <b>not</b> conflict with any other name in the ECF SharedObjectFactory in order to be successfully registered. Care should therefore be taken in selection of a name such that it does not conflict with other pre-existing names for this factory implementations</li>
+<li><b>description</b> - </li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.property">property</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST property</p>
+<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>value&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+Property (name,value) associated with SharedObjectTypeDescription</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>name</b> - The name of the property</li>
+<li><b>value</b> - The value of the property</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6>Here's an example of an extension point declaration:
+
+<pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.sharedobject.sharedObjectFactory&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;sharedObjectFactory
+ class=<p class=code id=cstring>&quot;org.eclipse.ecf.tests.provider.TestSharedObjectInstantiator&quot;</p><p class=code id=tag>
+ name=<p class=code id=cstring>&quot;ecf.test.sharedobjectfactory&quot;</p><p class=code id=tag>/&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+
+and the TestSharedObjectInstantiator is defined:
+
+<pre>
+public class TestSharedObjectInstantiator implements ISharedObjectInstantiator {
+
+ public ISharedObject createInstance(SharedObjectTypeDescription description, Object[] args) throws SharedObjectCreateException {
+ System.out.println("createInstance("+description+","+((args==null)?"null":Arrays.asList(args).toString()));
+ return new TestSharedObject();
+ }
+}
+</pre>
+
+<h3>Example Usage of Container by Clients</h3>
+
+Clients may use the extension via calls such as:
+
+<pre>
+ISharedObject obj = SharedObjectFactory.getDefault().createSharedObject("ecf.test.sharedobjectfactory");
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>The API for accessing the functionality provided via extensions is via <b>org.eclipse.ecf.core.sharedobject.SharedObjectFactory.getDefault()</b> methods. Specifically, the <b>org.eclipse.ecf.core.sharedobject.ISharedObjectFactory.createSharedObject()</b> methods are to be used to create shared
+object instances, where extensions implement the actual shared object creation
+
+Here is the <b>org.eclipse.ecf.core.sharedobject.ISharedObjectFactory</b> contract implemented by the <b>org.eclipse.ecf.core.sharedobject.SharedObjectFactory</b>:
+
+<pre>
+public interface ISharedObjectFactory {
+ /*
+ * Add a SharedObjectTypeDescription to the set of known
+ * SharedObjectTypeDescriptions.
+ *
+ * @param scd the SharedObjectTypeDescription to add to this factory @return
+ * SharedObjectTypeDescription the old description of the same name, null if
+ * none found
+ */
+ public SharedObjectTypeDescription addDescription(
+ SharedObjectTypeDescription description);
+
+ /**
+ * Get a collection of the SharedObjectTypeDescriptions currently known to
+ * this factory. This allows clients to query the factory to determine what
+ * if any other SharedObjectTypeDescriptions are currently registered with
+ * the factory, and if so, what they are.
+ *
+ * @return List of SharedObjectTypeDescription instances. Will not be null.
+ */
+ public List getDescriptions();
+
+ /**
+ * Check to see if a given named description is already contained by this
+ * factory
+ *
+ * @param description
+ * the SharedObjectTypeDescription to look for
+ * @return true if description is already known to factory, false otherwise
+ */
+ public boolean containsDescription(SharedObjectTypeDescription description);
+
+ /**
+ * Get the known SharedObjectTypeDescription given it&apos;s name.
+ *
+ * @param name
+ * @return SharedObjectTypeDescription found. Null if description not found.
+ * @throws SharedObjectCreateException
+ */
+ public SharedObjectTypeDescription getDescriptionByName(String name)
+ throws SharedObjectCreateException;
+
+ /**
+ * Create ISharedObject instance. Given a SharedObjectTypeDescription
+ * object, a String [] of argument types, and an Object [] of parameters,
+ * this method will
+ * <p class=code id=tag>&lt;p&gt;</p>
+ * <p class=code id=tag>&lt;ul&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>lookup the known SharedObjectTypeDescriptions to find one of
+ * matching name<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>if found, will retrieve or create an ISharedObjectInstantiator for
+ * that description<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>Call the ISharedObjectInstantiator.createInstance method to return
+ * an instance of ISharedObject<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;/ul&gt;</p>
+ *
+ * @param typeDescription
+ * the SharedObjectTypeDescription to use to create the instance
+ * @param args
+ * an Object [] of arguments passed to the createInstance method
+ * of the ISharedObjectInstantiator
+ * @return a valid instance of ISharedObject. Will not be null.
+ * @throws SharedObjectCreateException
+ * if shared object cannot be created
+ */
+ public ISharedObject createSharedObject(
+ SharedObjectTypeDescription typeDescription, Object[] args)
+ throws SharedObjectCreateException;
+
+ /**
+ * Create ISharedObject instance. Given a SharedObjectTypeDescription name,
+ * this method will
+ * <p class=code id=tag>&lt;p&gt;</p>
+ * <p class=code id=tag>&lt;ul&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>lookup the known SharedObjectTypeDescriptions to find one of
+ * matching name<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>if found, will retrieve or create an ISharedObjectInstantiator for
+ * that description<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>Call the ISharedObjectInstantiator.createInstance method to return
+ * an instance of ISharedObject<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;/ul&gt;</p>
+ *
+ * @param descriptionName
+ * the SharedObjectTypeDescription name to lookup
+ * @return a valid instance of ISharedObject. Will not be null.
+ * @throws SharedObjectCreateException
+ */
+ public ISharedObject createSharedObject(String descriptionName)
+ throws SharedObjectCreateException;
+
+ /**
+ * Create ISharedObject instance. Given a SharedObjectTypeDescription name,
+ * this method will
+ * <p class=code id=tag>&lt;p&gt;</p>
+ * <p class=code id=tag>&lt;ul&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>lookup the known SharedObjectTypeDescriptions to find one of
+ * matching name<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>if found, will retrieve or create an ISharedObjectInstantiator for
+ * that description<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;li&gt;</p>Call the ISharedObjectInstantiator.createInstance method to return
+ * an instance of ISharedObject<p class=code id=tag>&lt;/li&gt;</p>
+ * <p class=code id=tag>&lt;/ul&gt;</p>
+ *
+ * @param descriptionName
+ * the SharedObjectTypeDescription name to lookup
+ * @param args
+ * the Object [] of arguments passed to the
+ * ISharedObjectInstantiator.createInstance method
+ * @return a valid instance of IContainer. Will not be null.
+ * @throws SharedObjectCreateException
+ */
+ public ISharedObject createSharedObject(String descriptionName,
+ Object[] args) throws SharedObjectCreateException;
+
+ /**
+ * Remove given description from set known to this factory.
+ *
+ * @param scd
+ * the SharedObjectTypeDescription to remove
+ * @return the removed SharedObjectTypeDescription, null if nothing removed
+ */
+ public SharedObjectTypeDescription removeDescription(
+ SharedObjectTypeDescription scd);
+}
+</pre>
+
+See the "Examples" page for an example usage of the extension point.
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2004 Composent, Inc. and others.
+All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Composent, Inc. - initial API and implementation
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_startup.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_startup.html
new file mode 100644
index 000000000..b08395eb5
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_startup.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>ECF Core Startup</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>ECF Core Startup</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.startup<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>0.9.0
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>ECF Core Startup Extension Point. This extension point (<b>org.eclipse.ecf.startup</b>) allows other bundles to have arbitrary code run upon ECF startup. Note that extensions will be run when the ECF core bundle (ID: <b>org.eclipse.ecf</b>) is started by the runtime, not necessarily upon platform startup. Of course, if the <b>org.eclipse.ecf</b> bundle is started at platform startup, then extensions of this extension point will also be run.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.ecfstart">ecfstart</a>)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.ecfstart">ecfstart</a> (<a href="#e.property">property</a>*)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST ecfstart</p>
+<p class=code id=dtdAttlist>class&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>class</b> - The fully qualified name of the class that implements the org.eclipse.ecf.core.start.IECFStart interface.</li>
+<li><b>name</b> - </li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6>Here is an example usage of this extension point:
+
+<pre>
+<p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.startup&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;ecfstart
+ class=<p class=code id=cstring>&quot;org.eclipse.ecf.example.collab.start.CollabStart&quot;</p><p class=code id=tag>/&gt;</p>
+<p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+
+Note that the CollabStart class must implement the <b>org.eclipse.ecf.start.IECFStart</b> interface.
+
+Here's an example implementation class:
+
+<pre>
+public class CollabStart implements IECFStart {
+ Discovery discovery = null;
+ public IStatus startup(IProgressMonitor monitor) {
+ try {
+ AccountStart as = new AccountStart();
+ as.loadConnectionDetailsFromPreferenceStore();
+ Collection c = as.getConnectionDetails();
+ for (Iterator i = c.iterator(); i.hasNext();) {
+ startConnection((ConnectionDetails) i.next());
+ }
+ } catch (Exception e) {
+ return new Status(IStatus.ERROR, ClientPlugin.PLUGIN_ID, 200,
+ "Exception in starting connection", e);
+ }
+ return new Status(IStatus.OK, ClientPlugin.PLUGIN_ID, 100, "OK", null);
+ }
+ private void startConnection(ConnectionDetails details) throws Exception {
+ CollabClient client = new CollabClient();
+ //ClientPlugin.log("ECF: Autostarting containerType="+details.getContainerType()+",uri="+details.getTargetURI()+",nickname="+details.getNickname());
+ client.createAndConnectClient(details.getContainerType(), details
+ .getTargetURI(), details.getNickname(), details.getPassword(),
+ ResourcesPlugin.getWorkspace().getRoot());
+ }
+}
+
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>The API for the <b>org.eclipse.ecf.startup</b> extension point is provided by the
+<b>org.eclipse.ecf.startup.IECFStartup</b> interface:
+
+<pre>
+/**
+ * Interface that must be implemented by extensions of the org.eclipse.ecf.start
+ * extension point. Such extensions will have their start method called by a new
+ * Job upon ECF startup.
+ */
+public interface IECFStart {
+ /**
+ * Start ECF client or server.
+ *
+ * @return IStatus the status of the start
+ * @throws ECFStartException
+ * if some exception thrown during start
+ */
+ public IStatus startup(IProgressMonitor monitor);
+}
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>No implementation supplied for this extensinion point.
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright (c) 2004 Composent, Inc. and others.
+All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Composent, Inc. - initial API and implementation
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_ui_configurationWizards.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_ui_configurationWizards.html
new file mode 100644
index 000000000..b81e826bf
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_ui_configurationWizards.html
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>ECF Configuration Wizards</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>ECF Configuration Wizards</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.ui.configurationWizards<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>ECF v0.9.4
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>This extension point allows providers to register wizards for creating and configuration IContainer
+instances.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.category">category</a> | <a href="#e.wizard">wizard</a>)*&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>point</b> - a fully qualified identifier of the target extension point</li>
+<li><b>id</b> - an optional identifier of the extension instance</li>
+<li><b>name</b> - an optional name of the extension instance</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.category">category</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST category</p>
+<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>parentCategory&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>id</b> - a unique name that can be used to identify this category</li>
+<li><b>name</b> - a translatable name of the category that will be used in the dialog box</li>
+<li><b>parentCategory</b> - a path to another category if this category should be added as a child</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.wizard">wizard</a> (<a href="#e.description">description</a>?)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST wizard</p>
+<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>category&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>icon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>containerFactoryName&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+an element that will be used to create export wizard</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>id</b> - a unique name that will be used to identify this wizard</li>
+<li><b>name</b> - a translatable name that will be used in the dialog box to represent this wizard</li>
+<li><b>category</b> - a slash-delimited path ('/') of category IDs. Each token in the
+path must represent a valid category ID previously defined
+by this or some other plug-in. If omitted, the wizard will be
+added to the "Other" category.</li>
+<li><b>class</b> - a fully qualified name of the class that implements <tt>org.eclipse.ecf.ui.IConfigurationWizard</tt>
+interface</li>
+<li><b>icon</b> - a relative name of the icon that will be used
+alongside the wizard name in the export engine listing.</li>
+<li><b>containerFactoryName</b> - The ContainerTypeName of the container to be created. For example, "ecf.generic.client".</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.description">description</a> (#PCDATA)&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+an optional subelement whose body should represent a short description
+of the export engine functionality.</p>
+<br><br>
+<h6 class=CaptionFigColumn id=header>Examples: </h6>Implementers of this extension point must specify an extension of the <b>org.eclipse.ecf.ui.configurationWizards</b> extension point.
+
+<pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.ui.configurationWizards&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;wizard
+ class=<p class=code id=cstring>&quot;org.my.client.MyClientConfigurationWizard&quot;</p><p class=code id=tag>
+ containerFactoryName=<p class=code id=cstring>&quot;org.my.client&quot;</p><p class=code id=tag>
+ id=<p class=code id=cstring>&quot;my.client.configuration.wizard&quot;</p><p class=code id=tag>
+ name=<p class=code id=cstring>&quot;My Client Configuration Wizard&quot;</p><p class=code id=tag>
+ icon=<p class=code id=cstring>&quot;icons/configuration.png&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/wizard&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>The "class" attribute (required) must have a class that implements the <b>org.eclipse.ecf.ui.IConfigurationWizard</b> interface:
+
+<pre>
+/**
+ * Required interface for implementing
+ * <p class=code id=tag>&lt;b&gt;</p>org.eclipse.ecf.ui.configurationWizards<p class=code id=tag>&lt;/b&gt;</p> extension point. Extensions
+ * for extension point <p class=code id=tag>&lt;b&gt;</p>org.eclipse.ecf.ui.configurationWizards<p class=code id=tag>&lt;/b&gt;</p> must
+ * provide a class implementing this interface.
+ */
+public interface IConfigurationWizard extends IWizard {
+
+ /**
+ * Initialize the wizard with the workbench and the desired container type
+ * description
+ *
+ * @param workbench
+ * the workbench for the wizard. Will not be null.
+ * @param description
+ * the {@link ContainerTypeDescription} to use to
+ * create/configure the new IContainer instance
+ */
+ public void init(IWorkbench workbench,
+ ContainerTypeDescription description);
+
+ /**
+ * Get result of configuration.
+ *
+ * @return ContainerHolder the result of the configuration. If null, the container could not be
+ * created.
+ */
+ public ContainerHolder getConfigurationResult();
+}
+
+</pre>
+<p></p>
+
+<br>
+<p class=note id=copyright>
+/****************************************************************************
+ * Copyright (c) 2004 Composent, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Composent, Inc. - initial API and implementation
+ *****************************************************************************/
+<p></p>
+
+</p>
+</BODY>
+</HTML>
diff --git a/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_ui_connectWizards.html b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_ui_connectWizards.html
new file mode 100644
index 000000000..2e1dbbc6a
--- /dev/null
+++ b/doc/bundles/org.eclipse.ecf.doc/html/reference/extension-points/org_eclipse_ecf_ui_connectWizards.html
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>ECF Connect Wizard</title>
+<style>@import url("../../book.css");</style>
+<style>@import url("../../schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>ECF Connect Wizard</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.ecf.ui.connectWizards<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>ECF 0.9.4
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>This extension point allows providers to register wizards for connecting IContainer
+instances.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.category">category</a> | <a href="#e.wizard">wizard</a>)*&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>point</b> - a fully qualified identifier of the target extension point</li>
+<li><b>id</b> - an optional identifier of the extension instance</li>
+<li><b>name</b> - an optional name of the extension instance</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.category">category</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST category</p>
+<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>parentCategory&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>id</b> - a unique name that can be used to identify this category</li>
+<li><b>name</b> - a translatable name of the category that will be used in the dialog box</li>
+<li><b>parentCategory</b> - a path to another category if this category should be added as a child</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.wizard">wizard</a> (<a href="#e.description">description</a>?)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST wizard</p>
+<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>category&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>icon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>containerFactoryName&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+an element that will be used to create export wizard</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>id</b> - a unique name that will be used to identify this wizard</li>
+<li><b>name</b> - a translatable name that will be used in the dialog box to represent this wizard</li>
+<li><b>category</b> - a slash-delimited path ('/') of category IDs. Each token in the
+path must represent a valid category ID previously defined
+by this or some other plug-in. If omitted, the wizard will be
+added to the "Other" category.</li>
+<li><b>class</b> - a fully qualified name of the class that implements <tt>org.eclipse.ecf.ui.IConnectWizard</tt>
+interface</li>
+<li><b>icon</b> - a relative name of the icon that will be used
+alongside the wizard name in the export engine listing.</li>
+<li><b>containerFactoryName</b> - The ContainerTypeName of the container to be created. For example, "ecf.generic.client".</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.description">description</a> (#PCDATA)&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+an optional subelement whose body should represent a short description
+of the export engine functionality.</p>
+<br><br>
+<h6 class=CaptionFigColumn id=header>Examples: </h6>Implementers of this extension point must specify an extension of the <b>org.eclipse.ecf.ui.connectWizards</b> extension point.
+
+<pre>
+ <p class=code id=tag>&lt;extension
+ point=<p class=code id=cstring>&quot;org.eclipse.ecf.ui.connectWizards&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;wizard
+ class=<p class=code id=cstring>&quot;org.my.client.MyClientConnectWizard&quot;</p><p class=code id=tag>
+ containerFactoryName=<p class=code id=cstring>&quot;org.my.client&quot;</p><p class=code id=tag>
+ id=<p class=code id=cstring>&quot;my.client.connect.wizard&quot;</p><p class=code id=tag>
+ name=<p class=code id=cstring>&quot;My Client Connect Wizard&quot;</p><p class=code id=tag>
+ icon=<p class=code id=cstring>&quot;icons/connect.png&quot;</p><p class=code id=tag>&gt;</p>
+ <p class=code id=tag>&lt;/wizard&gt;</p>
+ <p class=code id=tag>&lt;/extension&gt;</p>
+</pre>
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>The "class" attribute (required) must have a class that implements the <b>org.eclipse.ecf.ui.IConfigurationWizard</b> interface:
+
+<pre>
+/**
+ * Required interface for implementing <p class=code id=tag>&lt;b&gt;</p>org.eclipse.ecf.ui.connectWizards<p class=code id=tag>&lt;/b&gt;</p>
+ * extension point. Extensions for extension point
+ * <p class=code id=tag>&lt;b&gt;</p>org.eclipse.ecf.ui.connectWizards<p class=code id=tag>&lt;/b&gt;</p> must provide a class implementing
+ * this interface.
+ */
+public interface IConnectWizard extends IWizard {
+
+ /**
+ * Initialize the connect wizard.
+ *
+ * @param workbench
+ * the currently working workbench instance. Will not be null.
+ * @param container
+ * the container that is to be connected. Will not be null.
+ */
+ public void init(IWorkbench workbench, IContainer container);
+}
+
+</pre>
+<p></p>
+
+<br>
+<p class=note id=copyright>
+/****************************************************************************
+ * Copyright (c) 2004 Composent, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Composent, Inc. - initial API and implementation
+ *****************************************************************************/
+<p></p>
+
+</p>
+</BODY>
+</HTML>

Back to the top