You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@esme.apache.org by bu...@apache.org on 2011/06/27 15:55:31 UTC

svn commit: r791676 [5/8] - /websites/staging/esme/trunk/content/

Added: websites/staging/esme/trunk/content/jmx.html
==============================================================================
--- websites/staging/esme/trunk/content/jmx.html (added)
+++ websites/staging/esme/trunk/content/jmx.html Mon Jun 27 13:55:28 2011
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/esme.css" rel="stylesheet" type="text/css">
+  <title>Apache ESME - JMX</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link rel="icon" type="image/png" href="/images/esme-logo/stanbol-favicon.png"/>
+</head>
+
+<body>
+  <div id="navigation">
+  <img alt="Apache ESME" width="220" height="101" src="/images/esme-logo/esme-powerd.gif"/>
+  <h1 id="esme_links">ESME links</h1>
+<ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/team.html">Project Team</a></li>
+<li><a href="/docs/buildfromSVN.html">Building ESME</a></li>
+<li><a href="/docs/faq.html">FAQ</a></li>
+<li><a href="/docs/actions.html">Actions</a></li>
+<li><a href="/docs/apis.html">APIs</a></li>
+<li><a href="/docs/clients.html">Clients</a></li>
+<li><a href="/docs/collaboration.html">Collaboration</a></li>
+<li><a href="/docs/install.html">Installation Guides</a></li>
+<li><a href="/docs/yql.html">YQL</a><br />
+</li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">JMX</h1>
+    <p><a name="JMX-ESMEsupportsJMX"></a></p>
+<h2 id="esme_supports_jmx">ESME supports JMX</h2>
+<ol>
+<li>To enable JMX, you must activate it in your default.props file:
+<em>jmx.enable=true</em> - default is false.</li>
+<li>Connect to ESME with your normal JMX-enabled tool. For example, <a href="http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html">JConsole</a></li>
+</ol>
+<p>The following picture shows JConsole monitoring ESME running in a Tomcat
+(6) instance.</p>
+<p><a name="JMX-ExistingCounters"></a></p>
+<h2 id="existing_counters">Existing Counters</h2>
+<ul>
+<li>&nbsp;liftSessions - ( actually grabbed from SessionWatcher )</li>
+<li>userCount ( User actors started since start/reset )</li>
+<li>messagesCreated</li>
+<li>userMessagesCreated</li>
+<li>schedulerMessagesCreated&nbsp;</li>
+<li>messagesPulled ( messages pulled from MessagePullActor )</li>
+<li>messagesDelivered</li>
+<li>messagesDeliveredTrackReason</li>
+<li>messagesDeliveredDirectReason</li>
+<li>messagesDeliveredConversationReason&nbsp;</li>
+<li>messagesDeliveredResendReason</li>
+<li>messagesMailed</li>
+<li>messagesSentViaHttp</li>
+<li>messagesFiltered</li>
+</ul>
+<p><a name="JMX-&nbsp;PlannedCounters"></a></p>
+<h2 id="nbspplanned_counters">&nbsp;Planned Counters</h2>
+<ul>
+<li>messagesDeliveredRegularReason</li>
+<li>messagesDeliveredInterpreterReason</li>
+<li>usersLoggedIn ( incremented and decremented through User.logUserIn and
+User logUserOut)</li>
+<li>interpreterMessagesCreated</li>
+<li>groupCount</li>
+</ul>
+<p><a name="JMX-ExistingGauges"></a></p>
+<h2 id="existing_gauges">Existing Gauges</h2>
+<p>Gauges are partial functions that run to grab a point in time statistic
+when the stat is requested</p>
+<ul>
+<li>users</li>
+<li>groups</li>
+<li>listeners</li>
+</ul>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2010 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache, ESME and the Apache feather and ESME logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/esme/trunk/content/linux-(debian---ubuntu)-installation-guide.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/linux-(debian---ubuntu)-installation-guide.cwiki (added)
+++ websites/staging/esme/trunk/content/linux-(debian---ubuntu)-installation-guide.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,38 @@
+h3. Prerequisites
+
+\- Subversion: apt-get install subversion
+\- Maven: apt-get install maven2
+\- Jetty: apt-get install jetty
+
+h3. Checkout latest ESME, build, and run
+
+Run the following commands, starting in the directory where you want
+to download ESME:
+1. svn checkout [http://svn.apache.org/repos/asf/incubator/esme/trunk] esme
+
+2. In /server/pom.xml comment out line 262 - 276 (the following plugin):
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <plugin>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <groupId>net.sf.alchim</groupId>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <artifactId>yuicompressor-maven-plugin</artifactId>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <executions>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <execution>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <goals>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <goal>compress</goal>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </goals>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </execution>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </executions>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <configuration>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <nosuffix>true</nosuffix>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <jswarn>false</jswarn>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </configuration>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </plugin>
+
+3. cd esme/server/
+
+4. mvn jetty:run
+The fourth step can take a while the first time it is run as it needs
+to download all of ESME's dependencies (and there are quite a few of
+those).
+
+
+After this you should be able to open your web browser and navigate to[http://localhost:8080/] and see ESME running\!
\ No newline at end of file

Added: websites/staging/esme/trunk/content/mac-os-x-10.6-installation-guide.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/mac-os-x-10.6-installation-guide.cwiki (added)
+++ websites/staging/esme/trunk/content/mac-os-x-10.6-installation-guide.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,29 @@
+h1. How to build the latest ESME from Subversion
+
+h3. Prerequisites
+
+* XCode (recommended) - install from at [http://developer.apple.com/technology/xcode.html] (requires Apple Developer Network subscription, which will cost you an email address)
+* Maven - with XCode it is command "mvn"
+* Subversion - comes with Mac OS X 10.6
+
+h3. Checkout latest ESME, build, and run
+
+Run the following commands, starting in the directory where you want to download ESME:
+
+# svn checkout http://svn.apache.org/repos/asf/incubator/esme/trunk esme
+# cd esme/server/
+# mvn jetty:run
+
+The third step can take a while the first time it is run as it needs to download all of ESME's dependencies (and there are quite a few of those).
+
+After this you should be able to open your web browser and navigate to http://localhost:8080/ and see ESME running!
+
+h3. Optionally running under a separate Tomcat installation
+
+# Install Tomcat
+** Download latest Tomcat 6 Core .zip file from [http://tomcat.apache.org/download-60.cgi]
+# In esme/server directory run "mvn package"
+# Copy .war file in esme/server/target directory into the webapps/ directory of your Tomcat installation
+# Start Tomcat (bin/startup.sh in the main Tomcat directory)
+# Navigate your browser to http://localhost:8080/esme_server_SNAPSHOT_3.0
+

Added: websites/staging/esme/trunk/content/mac-os-x-10.6-installation-guide.html
==============================================================================
--- websites/staging/esme/trunk/content/mac-os-x-10.6-installation-guide.html (added)
+++ websites/staging/esme/trunk/content/mac-os-x-10.6-installation-guide.html Mon Jun 27 13:55:28 2011
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/esme.css" rel="stylesheet" type="text/css">
+  <title>Apache ESME - Mac OS X 10.6 Installation Guide</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link rel="icon" type="image/png" href="/images/esme-logo/stanbol-favicon.png"/>
+</head>
+
+<body>
+  <div id="navigation">
+  <img alt="Apache ESME" width="220" height="101" src="/images/esme-logo/esme-powerd.gif"/>
+  <h1 id="esme_links">ESME links</h1>
+<ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/team.html">Project Team</a></li>
+<li><a href="/docs/buildfromSVN.html">Building ESME</a></li>
+<li><a href="/docs/faq.html">FAQ</a></li>
+<li><a href="/docs/actions.html">Actions</a></li>
+<li><a href="/docs/apis.html">APIs</a></li>
+<li><a href="/docs/clients.html">Clients</a></li>
+<li><a href="/docs/collaboration.html">Collaboration</a></li>
+<li><a href="/docs/install.html">Installation Guides</a></li>
+<li><a href="/docs/yql.html">YQL</a><br />
+</li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Mac OS X 10.6 Installation Guide</h1>
+    <p><a name="MacOSX10.6InstallationGuide-HowtobuildthelatestESMEfromSubversion"></a></p>
+<h1 id="how_to_build_the_latest_esme_from_subversion">How to build the latest ESME from Subversion</h1>
+<p><a name="MacOSX10.6InstallationGuide-Prerequisites"></a></p>
+<h3 id="prerequisites">Prerequisites</h3>
+<ul>
+<li>XCode (recommended) - install from at <a href="http://developer.apple.com/technology/xcode.html">http://developer.apple.com/technology/xcode.html</a>
+ (requires Apple Developer Network subscription, which will cost you an
+email address)</li>
+<li>Maven - with XCode it is command "mvn"</li>
+<li>Subversion - comes with Mac OS X 10.6</li>
+</ul>
+<p><a name="MacOSX10.6InstallationGuide-CheckoutlatestESME,build,andrun"></a></p>
+<h3 id="checkout_latest_esme_build_and_run">Checkout latest ESME, build, and run</h3>
+<p>Run the following commands, starting in the directory where you want to
+download ESME:</p>
+<ol>
+<li>svn checkout http://svn.apache.org/repos/asf/incubator/esme/trunk esme</li>
+<li>cd esme/server/</li>
+<li>mvn jetty:run</li>
+</ol>
+<p>The third step can take a while the first time it is run as it needs to
+download all of ESME's dependencies (and there are quite a few of those).</p>
+<p>After this you should be able to open your web browser and navigate to
+http://localhost:8080/ and see ESME running!</p>
+<p><a name="MacOSX10.6InstallationGuide-OptionallyrunningunderaseparateTomcatinstallation"></a></p>
+<h3 id="optionally_running_under_a_separate_tomcat_installation">Optionally running under a separate Tomcat installation</h3>
+<ol>
+<li>Install Tomcat
+** Download latest Tomcat 6 Core .zip file from <a href="http://tomcat.apache.org/download-60.cgi">http://tomcat.apache.org/download-60.cgi</a></li>
+<li>In esme/server directory run "mvn package"</li>
+<li>Copy .war file in esme/server/target directory into the webapps/
+directory of your Tomcat installation</li>
+<li>Start Tomcat (bin/startup.sh in the main Tomcat directory)</li>
+<li>Navigate your browser to http://localhost:8080/esme_server_SNAPSHOT_3.0</li>
+</ol>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2010 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache, ESME and the Apache feather and ESME logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/esme/trunk/content/message-deletion.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/message-deletion.cwiki (added)
+++ websites/staging/esme/trunk/content/message-deletion.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,9 @@
+{warning:title=Warning}
+This is initial content taken directly from the mailing list
+{warning}
+Case in point - the OpenMicroBlogging protocol that La.coni.ca supports it but it doesn't appear to allow for deletion of messages sent to federated sites.
+[http://openmicroblogging.org/protocol/0.1/|http://openmicroblogging.org/protocol/0.1/]
+
+It appears that while La.coni.ca itself supports deletion of messages. This would have no effect on messages posted to federated systems unless they were only displayed as a link to the originating system (which the protocol doesn't appear to require).
+
+Sounds like a pretty hard problem.
\ No newline at end of file

Added: websites/staging/esme/trunk/content/message-deletion.html
==============================================================================
--- websites/staging/esme/trunk/content/message-deletion.html (added)
+++ websites/staging/esme/trunk/content/message-deletion.html Mon Jun 27 13:55:28 2011
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/esme.css" rel="stylesheet" type="text/css">
+  <title>Apache ESME - Message Deletion</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link rel="icon" type="image/png" href="/images/esme-logo/stanbol-favicon.png"/>
+</head>
+
+<body>
+  <div id="navigation">
+  <img alt="Apache ESME" width="220" height="101" src="/images/esme-logo/esme-powerd.gif"/>
+  <h1 id="esme_links">ESME links</h1>
+<ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/team.html">Project Team</a></li>
+<li><a href="/docs/buildfromSVN.html">Building ESME</a></li>
+<li><a href="/docs/faq.html">FAQ</a></li>
+<li><a href="/docs/actions.html">Actions</a></li>
+<li><a href="/docs/apis.html">APIs</a></li>
+<li><a href="/docs/clients.html">Clients</a></li>
+<li><a href="/docs/collaboration.html">Collaboration</a></li>
+<li><a href="/docs/install.html">Installation Guides</a></li>
+<li><a href="/docs/yql.html">YQL</a><br />
+</li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Message Deletion</h1>
+    <p>{warning:title=Warning}
+This is initial content taken directly from the mailing list
+{warning}
+Case in point - the OpenMicroBlogging protocol that La.coni.ca supports it
+but it doesn't appear to allow for deletion of messages sent to federated
+sites.
+<a href="http://openmicroblogging.org/protocol/0.1/">http://openmicroblogging.org/protocol/0.1/</a></p>
+<p>It appears that while La.coni.ca itself supports deletion of messages. This
+would have no effect on messages posted to federated systems unless they
+were only displayed as a link to the originating system (which the protocol
+doesn't appear to require).</p>
+<p>Sounds like a pretty hard problem.</p>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2010 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache, ESME and the Apache feather and ESME logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/esme/trunk/content/methods.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/methods.cwiki (added)
+++ websites/staging/esme/trunk/content/methods.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,31 @@
+h2. Methods, Resources, and Descriptions
+
+*Bold* means the resource and method is implemented in the current /api2/ endpoint.
+
+|| Resource || Method || Description/Payload schema/Response schema || Streaming? || Admin Only? ||
+| *api2/session* | *GET*,*POST*,*DELETE* | Post parameter: token | |
+| *api2/users* | *GET*, *POST* | Post parameters: nickname, password - returns: user created | | *POST* |
+| api2/users/USERID | GET | | |
+| *api2/users/USERID/tokens* | *GET*, *POST* | Post parameters: description - returns: token created | | *GET*, *POST* | 
+| *api2/user/messages* | *GET*,*POST* | Post parameters: message, via (opt), pool (opt), realm (opt), metadata (opt), tags (opt), replyto (opt) | *Yes* |
+| api2/user/tags/TAG | GET | | |
+| *api2/user/tags/TAG/messages* | *GET* | | Yes |
+| *api2/user/followers* | *GET* | | |
+| *api2/user/followees* | *GET*,*POST* | Post parameter: userId | |
+| *api2/user/followees/USERID* | *DELETE* | | |
+| *api2/user/tracks* | *GET*,*POST* | Post parameter: track (regex) | |
+| *api2/user/tracks/TRACKID* | GET,*DELETE* | | |
+| api2/user/tracks/TRACKID/messages | GET | | Yes |
+| *api2/user/actions* | *GET*,*POST* | Post parameter: name, test, action | |
+| *api2/user/actions/ACTIONID* | GET,*PUT*,*DELETE* | Put parameter: enabled (boolean) | |
+| api2/messages/MESSAGEID | GET | | |
+| api2/messages | GET,POST | | Yes |
+| *api2/conversations/CONVERSATIONID* | *GET* | | |
+| api2/conversations/CONVERSATIONID/messages | GET,POST | | Yes |
+| *api2/pools* | *GET*,*POST* | | |
+| api2/pools/POOLID | GET,DELETE | | |
+| *api2/pools/POOLID/users* | GET,*POST* | Post parameters: realm, userId, permission | |
+| api2/pools/POOLID/users/USERID | DELETE | | |
+| api2/pools/POOLID/messages | GET,POST | | Yes |
+
+One point to note is that some HTTP clients do not currently support the "PUT" or "DELETE" methods, so these may have to be simulated through POST methods with an extra parameter. I think that because of the close mapping to resource verbs, is worth using these methods in the specification and defining the simulation method for the entire API separately.
\ No newline at end of file

Added: websites/staging/esme/trunk/content/methods.html
==============================================================================
--- websites/staging/esme/trunk/content/methods.html (added)
+++ websites/staging/esme/trunk/content/methods.html Mon Jun 27 13:55:28 2011
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/esme.css" rel="stylesheet" type="text/css">
+  <title>Apache ESME - Methods</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link rel="icon" type="image/png" href="/images/esme-logo/stanbol-favicon.png"/>
+</head>
+
+<body>
+  <div id="navigation">
+  <img alt="Apache ESME" width="220" height="101" src="/images/esme-logo/esme-powerd.gif"/>
+  <h1 id="esme_links">ESME links</h1>
+<ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/team.html">Project Team</a></li>
+<li><a href="/docs/buildfromSVN.html">Building ESME</a></li>
+<li><a href="/docs/faq.html">FAQ</a></li>
+<li><a href="/docs/actions.html">Actions</a></li>
+<li><a href="/docs/apis.html">APIs</a></li>
+<li><a href="/docs/clients.html">Clients</a></li>
+<li><a href="/docs/collaboration.html">Collaboration</a></li>
+<li><a href="/docs/install.html">Installation Guides</a></li>
+<li><a href="/docs/yql.html">YQL</a><br />
+</li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Methods</h1>
+    <p><a name="Methods-Methods,Resources,andDescriptions"></a></p>
+<h2 id="methods_resources_and_descriptions">Methods, Resources, and Descriptions</h2>
+<p><em>Bold</em> means the resource and method is implemented in the current /api2/
+endpoint.</p>
+<table>
+<tr><th> Resource </th><th> Method </th><th> Description/Payload schema/Response schema </th><th>
+Streaming? </th><th> Admin Only? </th></tr>
+<tr><td> *api2/session* </td><td> *GET*,*POST*,*DELETE* </td><td> Post parameter: token </td><td> </td></tr>
+<tr><td> *api2/users* </td><td> *GET*, *POST* </td><td> Post parameters: nickname, password -
+returns: user created </td><td> </td><td> *POST* </td></tr>
+<tr><td> api2/users/USERID </td><td> GET </td><td> </td><td> </td></tr>
+<tr><td> *api2/users/USERID/tokens* </td><td> *GET*, *POST* </td><td> Post parameters: description
+- returns: token created </td><td> </td><td> *GET*, *POST* </td></tr>
+<tr><td> *api2/user/messages* </td><td> *GET*,*POST* </td><td> Post parameters: message, via
+(opt), pool (opt), realm (opt), metadata (opt), tags (opt), replyto (opt) </td><td>
+*Yes* </td></tr>
+<tr><td> api2/user/tags/TAG </td><td> GET </td><td> </td><td> </td></tr>
+<tr><td> *api2/user/tags/TAG/messages* </td><td> *GET* </td><td> </td><td> Yes </td></tr>
+<tr><td> *api2/user/followers* </td><td> *GET* </td><td> </td><td> </td></tr>
+<tr><td> *api2/user/followees* </td><td> *GET*,*POST* </td><td> Post parameter: userId </td><td> </td></tr>
+<tr><td> *api2/user/followees/USERID* </td><td> *DELETE* </td><td> </td><td> </td></tr>
+<tr><td> *api2/user/tracks* </td><td> *GET*,*POST* </td><td> Post parameter: track (regex) </td><td> </td></tr>
+<tr><td> *api2/user/tracks/TRACKID* </td><td> GET,*DELETE* </td><td> </td><td> </td></tr>
+<tr><td> api2/user/tracks/TRACKID/messages </td><td> GET </td><td> </td><td> Yes </td></tr>
+<tr><td> *api2/user/actions* </td><td> *GET*,*POST* </td><td> Post parameter: name, test, action </td><td>
+</td></tr>
+<tr><td> *api2/user/actions/ACTIONID* </td><td> GET,*PUT*,*DELETE* </td><td> Put parameter:
+enabled (boolean) </td><td> </td></tr>
+<tr><td> api2/messages/MESSAGEID </td><td> GET </td><td> </td><td> </td></tr>
+<tr><td> api2/messages </td><td> GET,POST </td><td> </td><td> Yes </td></tr>
+<tr><td> *api2/conversations/CONVERSATIONID* </td><td> *GET* </td><td> </td><td> </td></tr>
+<tr><td> api2/conversations/CONVERSATIONID/messages </td><td> GET,POST </td><td> </td><td> Yes </td></tr>
+<tr><td> *api2/pools* </td><td> *GET*,*POST* </td><td> </td><td> </td></tr>
+<tr><td> api2/pools/POOLID </td><td> GET,DELETE </td><td> </td><td> </td></tr>
+<tr><td> *api2/pools/POOLID/users* </td><td> GET,*POST* </td><td> Post parameters: realm, userId,
+permission </td><td> </td></tr>
+<tr><td> api2/pools/POOLID/users/USERID </td><td> DELETE </td><td> </td><td> </td></tr>
+<tr><td> api2/pools/POOLID/messages </td><td> GET,POST </td><td> </td><td> Yes </td></tr>
+</table>
+
+<p>One point to note is that some HTTP clients do not currently support the
+"PUT" or "DELETE" methods, so these may have to be simulated through POST
+methods with an extra parameter. I think that because of the close mapping
+to resource verbs, is worth using these methods in the specification and
+defining the simulation method for the entire API separately.</p>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2010 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache, ESME and the Apache feather and ESME logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/esme/trunk/content/original-api.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/original-api.cwiki (added)
+++ websites/staging/esme/trunk/content/original-api.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,274 @@
+h4. Status
+
+What's the status of the session
+
+h5. GET /api/status
+
+<esme_api operation="status" success="false"/>
+&nbsp; &nbsp; &nbsp; &nbsp; <esme_api operation="status" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <user nickname="..." id="1"/>
+</esme_api>
+
+----
+
+h4. Login
+
+Create a session
+
+h5. POST /api/login
+
+token=API_TOKEN
+
+<esme_api operation="login" success="true"/>
+
+----
+
+h4. Logout
+
+Destroy current session
+
+h5. GET /api/logout
+
+<esme_api operation="logout" success="true"/>
+
+----
+
+h4. Get Messages
+
+Gets the 40 most recent messages in the user's mailbox
+
+h5. GET /api/get_msgs
+
+<esme_api operation="get_msgs" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <message id="1134" source="web" date="...">
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <author image="..." name="..." id="9"/>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <body>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Woohoo - got through the rest of the slides quite quickly. I can go home now.
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </body>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tags/>
+&nbsp; &nbsp; &nbsp; &nbsp; </message>
+</esme_api>
+
+----
+
+h4. Wait for Messages
+
+Waits up to 5 minutes for a new message to appear in the User's mailbox... Long Polling
+
+h5. GET /api/wait_for_msgs
+
+<esme_api operation="wait_for_msgs" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <message id="1134" source="web" date="...">
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <author image="..." name="..." id="9"/>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <body>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Woohoo - got through the rest of the slides quite quickly. I can go home now.
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </body>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tags/>
+&nbsp; &nbsp; &nbsp; &nbsp; </message>
+</esme_api>
+
+----
+
+h4. Send Message
+
+Sends a message
+
+h5. POST /api/send_msg
+
+message=messagebody
+
+via=optional_name_of_client
+
+tags=optional_comma_delimitted_tags
+
+metadata=optional_XML_Element_data
+
+replyto=optional_id_of_message
+
+<esme_api operation="send_msg" success="true"/>
+
+----
+
+h4. Get Following
+
+Gets all the users that the current user is following
+
+h5. GET /api/get_following
+
+<esme_api operation="get_following" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <user nickname="ewh" image="..." id="13" whole_name="..."/>
+</esme_api>
+
+----
+
+h4. Get Followers
+
+Gets all the users that follow the current user
+
+h5. GET /api/get_followers
+
+<esme_api operation="get_followers" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <user nickname="..." image="..." id="13" whole_name="..."/>
+</esme_api>
+
+----
+
+h4. Follow
+
+Start following another user
+
+h5. POST /api/follow
+
+user=id_of_user
+
+<esme_api operation="follow" success="true"/>
+
+----
+
+h4. Unfollow
+
+Stop following another user
+
+h5. POST /api/unfollow
+
+user=id_of_user
+
+<esme_api operation="unfollow" success="true"/>
+
+----
+
+h4. All Users
+
+List all users in the system
+
+h5. GET /api/all_users
+
+<esme_api operation="all_users" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <user nickname="..." id="4" whole_name="..."/>
+</esme_api>
+
+----
+
+h4. Get Tag Cloud
+
+Gets the tags and words for the tag cloud
+
+h5. GET /api/get_tagcloud
+
+numTags=optional_no_of_tags
+
+<esme_api operation="get_tagcloud" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <tag_cloud>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tag name="Scrum" weight="0.33333334"/>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <word name="meeting" weight="0.13333334"/>
+&nbsp; &nbsp; &nbsp; &nbsp; </tag_cloud>
+</esme_api>
+
+----
+
+h4. Get Tracking
+
+Gets the list of items the user is tracking
+
+h5. GET /api/get_tracking
+
+<esme_api operation="get_tracking" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <tracking user="1" removed="true" createdAt="1219639418277" id="1"/>
+&nbsp; &nbsp; &nbsp; &nbsp; <tracking user="1" removed="false" createdAt="1220896384128" pattern="#esme" id="24"/>
+</esme_api>
+
+----
+
+h4. Add Tracking
+
+Adds a tracking item
+
+h5. POST /api/add_tracking
+
+track=text_of_thing_to_track
+
+<esme_api operation="add_tracking" success="true"/>
+
+----
+
+h4. Remove Tracking
+
+Removes the tracking item
+
+h5. POST /api/remove_tracking
+
+trackid=id_of_tracking_item
+
+<esme_api operation="remove_tracking" success="true"/>
+
+----
+
+h4. Get Conversation
+
+Gets all the messages in a conversation
+
+h5. GET /api/get_conversation
+
+conversationid=Conversation_id
+
+<esme_api operation="get_conversation" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <conversation id="1089">
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <message when="..." date="..." source="Web Dynpro ABAP" id="1089" conversation="1089">
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <author image="..." name="..." id="24"/>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </message>
+&nbsp; &nbsp; &nbsp; &nbsp; </conversation>
+</esme_api>
+
+----
+
+h4. Get Actions
+
+Gets the actions
+
+h5. GET /api/get_actions
+
+<esme_api operation="get_actions" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <action action="resend" enabled="true" name="#0208" test="#o208" id="3"/>
+</esme_api>
+
+----
+
+h4. Add Action
+
+Adds an Action
+
+h5. POST /api/add_action
+
+name=name_of_action
+
+test=test_that_triggers_action
+
+action=action_to_take
+
+<esme_api operation="add_action" success="true"/>
+
+----
+
+h4. Enable Action
+
+Enables or Disables an Action
+
+h5. POST /api/enable_action
+
+id=action_id
+
+enabled=true\|false
+
+<esme_api operation="enable_action" success="true"/>
+
+----
+
+h4. Delete Action
+
+Deletes an Action
+
+h5. POST /api/delete_action
+
+actionid=action_id
+
+<esme_api operation="delete_action" success="true"/>&nbsp;
\ No newline at end of file

Added: websites/staging/esme/trunk/content/original-api.html
==============================================================================
--- websites/staging/esme/trunk/content/original-api.html (added)
+++ websites/staging/esme/trunk/content/original-api.html Mon Jun 27 13:55:28 2011
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/esme.css" rel="stylesheet" type="text/css">
+  <title>Apache ESME - Original API</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link rel="icon" type="image/png" href="/images/esme-logo/stanbol-favicon.png"/>
+</head>
+
+<body>
+  <div id="navigation">
+  <img alt="Apache ESME" width="220" height="101" src="/images/esme-logo/esme-powerd.gif"/>
+  <h1 id="esme_links">ESME links</h1>
+<ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/team.html">Project Team</a></li>
+<li><a href="/docs/buildfromSVN.html">Building ESME</a></li>
+<li><a href="/docs/faq.html">FAQ</a></li>
+<li><a href="/docs/actions.html">Actions</a></li>
+<li><a href="/docs/apis.html">APIs</a></li>
+<li><a href="/docs/clients.html">Clients</a></li>
+<li><a href="/docs/collaboration.html">Collaboration</a></li>
+<li><a href="/docs/install.html">Installation Guides</a></li>
+<li><a href="/docs/yql.html">YQL</a><br />
+</li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Original API</h1>
+    <p><a name="OriginalAPI-Status"></a></p>
+<h4 id="status">Status</h4>
+<p>What's the status of the session</p>
+<p><a name="OriginalAPI-GET/api/status"></a></p>
+<h5 id="get_apistatus">GET /api/status</h5>
+<p><esme_api operation="status" success="false"/>
+&nbsp; &nbsp; &nbsp; &nbsp; <esme_api operation="status" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <user nickname="..." id="1"/>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-Login"></a></p>
+<h4 id="login">Login</h4>
+<p>Create a session</p>
+<p><a name="OriginalAPI-POST/api/login"></a></p>
+<h5 id="post_apilogin">POST /api/login</h5>
+<p>token=API_TOKEN</p>
+<esme_api operation="login" success="true"/>
+
+<hr />
+<p><a name="OriginalAPI-Logout"></a></p>
+<h4 id="logout">Logout</h4>
+<p>Destroy current session</p>
+<p><a name="OriginalAPI-GET/api/logout"></a></p>
+<h5 id="get_apilogout">GET /api/logout</h5>
+<esme_api operation="logout" success="true"/>
+
+<hr />
+<p><a name="OriginalAPI-GetMessages"></a></p>
+<h4 id="get_messages">Get Messages</h4>
+<p>Gets the 40 most recent messages in the user's mailbox</p>
+<p><a name="OriginalAPI-GET/api/get_msgs"></a></p>
+<h5 id="get_apiget_msgs">GET /api/get_msgs</h5>
+<p><esme_api operation="get_msgs" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <message id="1134" source="web" date="...">
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <author image="..."
+name="..." id="9"/>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <body>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+&nbsp; &nbsp; Woohoo - got through the rest of the slides quite quickly. I
+can go home now.
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </body>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tags/>
+&nbsp; &nbsp; &nbsp; &nbsp; </message>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-WaitforMessages"></a></p>
+<h4 id="wait_for_messages">Wait for Messages</h4>
+<p>Waits up to 5 minutes for a new message to appear in the User's mailbox...
+Long Polling</p>
+<p><a name="OriginalAPI-GET/api/wait_for_msgs"></a></p>
+<h5 id="get_apiwait_for_msgs">GET /api/wait_for_msgs</h5>
+<p><esme_api operation="wait_for_msgs" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <message id="1134" source="web" date="...">
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <author image="..."
+name="..." id="9"/>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <body>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+&nbsp; &nbsp; Woohoo - got through the rest of the slides quite quickly. I
+can go home now.
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </body>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tags/>
+&nbsp; &nbsp; &nbsp; &nbsp; </message>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-SendMessage"></a></p>
+<h4 id="send_message">Send Message</h4>
+<p>Sends a message</p>
+<p><a name="OriginalAPI-POST/api/send_msg"></a></p>
+<h5 id="post_apisend_msg">POST /api/send_msg</h5>
+<p>message=messagebody</p>
+<p>via=optional_name_of_client</p>
+<p>tags=optional_comma_delimitted_tags</p>
+<p>metadata=optional_XML_Element_data</p>
+<p>replyto=optional_id_of_message</p>
+<esme_api operation="send_msg" success="true"/>
+
+<hr />
+<p><a name="OriginalAPI-GetFollowing"></a></p>
+<h4 id="get_following">Get Following</h4>
+<p>Gets all the users that the current user is following</p>
+<p><a name="OriginalAPI-GET/api/get_following"></a></p>
+<h5 id="get_apiget_following">GET /api/get_following</h5>
+<p><esme_api operation="get_following" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <user nickname="ewh" image="..." id="13"
+whole_name="..."/>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-GetFollowers"></a></p>
+<h4 id="get_followers">Get Followers</h4>
+<p>Gets all the users that follow the current user</p>
+<p><a name="OriginalAPI-GET/api/get_followers"></a></p>
+<h5 id="get_apiget_followers">GET /api/get_followers</h5>
+<p><esme_api operation="get_followers" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <user nickname="..." image="..." id="13"
+whole_name="..."/>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-Follow"></a></p>
+<h4 id="follow">Follow</h4>
+<p>Start following another user</p>
+<p><a name="OriginalAPI-POST/api/follow"></a></p>
+<h5 id="post_apifollow">POST /api/follow</h5>
+<p>user=id_of_user</p>
+<esme_api operation="follow" success="true"/>
+
+<hr />
+<p><a name="OriginalAPI-Unfollow"></a></p>
+<h4 id="unfollow">Unfollow</h4>
+<p>Stop following another user</p>
+<p><a name="OriginalAPI-POST/api/unfollow"></a></p>
+<h5 id="post_apiunfollow">POST /api/unfollow</h5>
+<p>user=id_of_user</p>
+<esme_api operation="unfollow" success="true"/>
+
+<hr />
+<p><a name="OriginalAPI-AllUsers"></a></p>
+<h4 id="all_users">All Users</h4>
+<p>List all users in the system</p>
+<p><a name="OriginalAPI-GET/api/all_users"></a></p>
+<h5 id="get_apiall_users">GET /api/all_users</h5>
+<p><esme_api operation="all_users" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <user nickname="..." id="4" whole_name="..."/>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-GetTagCloud"></a></p>
+<h4 id="get_tag_cloud">Get Tag Cloud</h4>
+<p>Gets the tags and words for the tag cloud</p>
+<p><a name="OriginalAPI-GET/api/get_tagcloud"></a></p>
+<h5 id="get_apiget_tagcloud">GET /api/get_tagcloud</h5>
+<p>numTags=optional_no_of_tags</p>
+<p><esme_api operation="get_tagcloud" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <tag_cloud>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tag name="Scrum"
+weight="0.33333334"/>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <word
+name="meeting" weight="0.13333334"/>
+&nbsp; &nbsp; &nbsp; &nbsp; </tag_cloud>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-GetTracking"></a></p>
+<h4 id="get_tracking">Get Tracking</h4>
+<p>Gets the list of items the user is tracking</p>
+<p><a name="OriginalAPI-GET/api/get_tracking"></a></p>
+<h5 id="get_apiget_tracking">GET /api/get_tracking</h5>
+<p><esme_api operation="get_tracking" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <tracking user="1" removed="true"
+createdAt="1219639418277" id="1"/>
+&nbsp; &nbsp; &nbsp; &nbsp; <tracking user="1" removed="false"
+createdAt="1220896384128" pattern="#esme" id="24"/>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-AddTracking"></a></p>
+<h4 id="add_tracking">Add Tracking</h4>
+<p>Adds a tracking item</p>
+<p><a name="OriginalAPI-POST/api/add_tracking"></a></p>
+<h5 id="post_apiadd_tracking">POST /api/add_tracking</h5>
+<p>track=text_of_thing_to_track</p>
+<esme_api operation="add_tracking" success="true"/>
+
+<hr />
+<p><a name="OriginalAPI-RemoveTracking"></a></p>
+<h4 id="remove_tracking">Remove Tracking</h4>
+<p>Removes the tracking item</p>
+<p><a name="OriginalAPI-POST/api/remove_tracking"></a></p>
+<h5 id="post_apiremove_tracking">POST /api/remove_tracking</h5>
+<p>trackid=id_of_tracking_item</p>
+<esme_api operation="remove_tracking" success="true"/>
+
+<hr />
+<p><a name="OriginalAPI-GetConversation"></a></p>
+<h4 id="get_conversation">Get Conversation</h4>
+<p>Gets all the messages in a conversation</p>
+<p><a name="OriginalAPI-GET/api/get_conversation"></a></p>
+<h5 id="get_apiget_conversation">GET /api/get_conversation</h5>
+<p>conversationid=Conversation_id</p>
+<p><esme_api operation="get_conversation" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <conversation id="1089">
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <message when="..."
+date="..." source="Web Dynpro ABAP" id="1089" conversation="1089">
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+&nbsp; &nbsp; <author image="..." name="..." id="24"/>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </message>
+&nbsp; &nbsp; &nbsp; &nbsp; </conversation>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-GetActions"></a></p>
+<h4 id="get_actions">Get Actions</h4>
+<p>Gets the actions</p>
+<p><a name="OriginalAPI-GET/api/get_actions"></a></p>
+<h5 id="get_apiget_actions">GET /api/get_actions</h5>
+<p><esme_api operation="get_actions" success="true">
+&nbsp; &nbsp; &nbsp; &nbsp; <action action="resend" enabled="true"
+name="#0208" test="#o208" id="3"/>
+</esme_api></p>
+<hr />
+<p><a name="OriginalAPI-AddAction"></a></p>
+<h4 id="add_action">Add Action</h4>
+<p>Adds an Action</p>
+<p><a name="OriginalAPI-POST/api/add_action"></a></p>
+<h5 id="post_apiadd_action">POST /api/add_action</h5>
+<p>name=name_of_action</p>
+<p>test=test_that_triggers_action</p>
+<p>action=action_to_take</p>
+<esme_api operation="add_action" success="true"/>
+
+<hr />
+<p><a name="OriginalAPI-EnableAction"></a></p>
+<h4 id="enable_action">Enable Action</h4>
+<p>Enables or Disables an Action</p>
+<p><a name="OriginalAPI-POST/api/enable_action"></a></p>
+<h5 id="post_apienable_action">POST /api/enable_action</h5>
+<p>id=action_id</p>
+<p>enabled=true|false</p>
+<esme_api operation="enable_action" success="true"/>
+
+<hr />
+<p><a name="OriginalAPI-DeleteAction"></a></p>
+<h4 id="delete_action">Delete Action</h4>
+<p>Deletes an Action</p>
+<p><a name="OriginalAPI-POST/api/delete_action"></a></p>
+<h5 id="post_apidelete_action">POST /api/delete_action</h5>
+<p>actionid=action_id</p>
+<p><esme_api operation="delete_action" success="true"/>&nbsp;</p>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2010 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache, ESME and the Apache feather and ESME logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/esme/trunk/content/our-design-philosophy.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/our-design-philosophy.cwiki (added)
+++ websites/staging/esme/trunk/content/our-design-philosophy.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,53 @@
+h2. How does Twitter's new streaming API differ from ESME's design?
+
+
+Twitter now has another take on a message-streaming API over HTTP, using what looks like a non-HTTP-1.1-compliant form of request pipelining (sending multiple responses over a single open connection). See the documentation at [http://apiwiki.twitter.com/Streaming-API-Documentation|http://apiwiki.twitter.com/Streaming-API-Documentation]
+
+The advantage of their mechanism is that it's a smoother experience. &nbsp;What we've done with chunking/long polling is to simulate a stream of data on top of a non-streaming protocol. &nbsp;What Twitter has done is to say "this is a one-way conversation, we've got an open TCP/IP connection, so let's use it."&nbsp; Implementing what they have would require going below the current set of abstractions that Lift provides above the Servlets.
+At a practical level, the difference is at one layer... the one dealing with the HTTP requests. &nbsp;At the layers above, events flow either way.
+
+At the basic philosophical level, Twitter's implementation is purer. &nbsp;It treats a stream of information as a stream of information.
+I like it, but I'm not sure what the benefits would be vs. the development costs of implementing such a mechanism (unless there's an en mass migration of microblogging clients to such a mechanism).
+
+A significant disadvantage of Twitter's design is the requirement of only one streaming connection per account. As much as I dislike the approach of using session cookies to uniquely identify API message
+queues, it is a heck of a lot better than what is going to happen when Twitter clients start to implement this API, which will be:
+1. I log in with Seesmic Web (which has implemented the Twitter streaming API)
+2. I receive messages 1, 2, and 3.
+3. I log in on a different computer with Twhirl (which has also
+implemented the Twitter streaming API)
+(3.1 Twitter disconnects the Seesmic connection invisibly from the user)
+4. I receive message 4 in Twhirl
+(4.1 Seesmic tries to reconnect, which results in Twhirl being disconnected)
+5. I receive message 5 in Seesmic
+6. And so on....
+End result: 1 really confused user trying to connect from two banned IP addresses.
+I think this is a good illustration of why we need some client-specific identifier for a streaming/delta-queue API. It doesn't need to be a session, but that's working pretty nicely for now.
+I would prefer to stick with what Lift provides for the moment. I need to do the conceptual exercise, but on first glance I don't think Twitter's approach results in much of a gain over our approach. Fewer
+connection attempts, which will help a lot at Twitter-scale, but which I'm not sure makes a big difference at Enterprise-scale.
+Another drawback (and I'm really not sure on this one) is that I don't think a lot of HTTP client libraries give easy access to a request that is still open. The design of&nbsp; the queue API is extremely simple from a client programming perspective. I think that's a big upside.
+
+h2. Design-related questions
+
+*Question: In an enterprise context it could be an requirement to send a link to someone else pointing to a specific potentially old message in a certain Pool.*
+
+Yes. &nbsp;That's perfectly reasonable. &nbsp;That message is like a static file on disk. &nbsp;Once it's written, it remains unchanged until it's deleted. &nbsp;This is an ideal application of a REST-style approach. &nbsp;That's why I've advocated
+for a "message based" approach first, but a REST/static approach when the message based approach doesn't make sense. &nbsp;What I am opposed to is a "try to make everything fit the REST model" approach to API design.
+----
+*Question: Would it be costly in your model to get the message nr. X &nbsp;(\+ n &nbsp;older messages) in a users timeline?.*
+A message will exist outside of a timeline. &nbsp;There exists a cache of recently accessed messages. &nbsp;Sometimes there will be a historic message that is referenced and that will be materialized from backing store and rendered.&nbsp; It will likely fall out of cache if it's historical and not accessed again.
+----
+*Question: I don't get why it has to be in the session's state because you could as well use the information that a user is online as a guidance, even if the state would be stored somewhere out of the session. Wouldn't make a difference I guess and storing it in the session looks natural.*
+
+
+The state itself is not in the session. &nbsp;The session is the guide that the user is online. &nbsp;The session contains a listener that is attached to the User. &nbsp;The only real state that resides in the session is the state
+necessary to batch up any messages that the User has forwarded to the listener in between the HTTP polling requests. &nbsp;If there is an HTML front end, state about that front end will reside in the session as well, but
+that's a different issue.
+----
+*Question: I don't understand why we would need to store all entries in a cache, instead of only keeping the last n entries for each user based on some heuristics such as the last 3 days or something. I would somehow expect that the probability that a user wants to see a message is exponentially decreasing with the messages age. For example that someone wants to see a message that is the 1000 newest message in his timeline is probably almost zero.*
+Some people mine their timelines for information. &nbsp;I agree that some aging policy is necessary as 36B entries will consume a lot of storage in RAM or on disk, but the last 1,000 is likely too few based on what I have seen of actual user behavior.
+In terms of an aging policy in an RDBMS, the cost of aging out old entries is likely to be an index scan or something on that order (DELETE FROM mailbox WHERE date < xxx or a user-by-user DELETE WHERE id IN (SELECT messages > 1000 in mailbox))
+
+
+h2. Important Links
+
+* [Statefulness and algorithms for social networks |ESME:Statefulness and algorithms for social networks & graphs]
\ No newline at end of file

Added: websites/staging/esme/trunk/content/our-design-philosophy.html
==============================================================================
--- websites/staging/esme/trunk/content/our-design-philosophy.html (added)
+++ websites/staging/esme/trunk/content/our-design-philosophy.html Mon Jun 27 13:55:28 2011
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/esme.css" rel="stylesheet" type="text/css">
+  <title>Apache ESME - Our Design Philosophy</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link rel="icon" type="image/png" href="/images/esme-logo/stanbol-favicon.png"/>
+</head>
+
+<body>
+  <div id="navigation">
+  <img alt="Apache ESME" width="220" height="101" src="/images/esme-logo/esme-powerd.gif"/>
+  <h1 id="esme_links">ESME links</h1>
+<ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/team.html">Project Team</a></li>
+<li><a href="/docs/buildfromSVN.html">Building ESME</a></li>
+<li><a href="/docs/faq.html">FAQ</a></li>
+<li><a href="/docs/actions.html">Actions</a></li>
+<li><a href="/docs/apis.html">APIs</a></li>
+<li><a href="/docs/clients.html">Clients</a></li>
+<li><a href="/docs/collaboration.html">Collaboration</a></li>
+<li><a href="/docs/install.html">Installation Guides</a></li>
+<li><a href="/docs/yql.html">YQL</a><br />
+</li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Our Design Philosophy</h1>
+    <p><a name="OurDesignPhilosophy-HowdoesTwitter'snewstreamingAPIdifferfromESME'sdesign?"></a></p>
+<h2 id="how_does_twitters_new_streaming_api_differ_from_esmes_design">How does Twitter's new streaming API differ from ESME's design?</h2>
+<p>Twitter now has another take on a message-streaming API over HTTP, using
+what looks like a non-HTTP-1.1-compliant form of request pipelining
+(sending multiple responses over a single open connection). See the
+documentation at <a href="http://apiwiki.twitter.com/Streaming-API-Documentation">http://apiwiki.twitter.com/Streaming-API-Documentation</a></p>
+<p>The advantage of their mechanism is that it's a smoother experience.
+&nbsp;What we've done with chunking/long polling is to simulate a stream of
+data on top of a non-streaming protocol. &nbsp;What Twitter has done is to
+say "this is a one-way conversation, we've got an open TCP/IP connection,
+so let's use it."&nbsp; Implementing what they have would require going
+below the current set of abstractions that Lift provides above the
+Servlets.
+At a practical level, the difference is at one layer... the one dealing
+with the HTTP requests. &nbsp;At the layers above, events flow either way.</p>
+<p>At the basic philosophical level, Twitter's implementation is purer.
+&nbsp;It treats a stream of information as a stream of information.
+I like it, but I'm not sure what the benefits would be vs. the development
+costs of implementing such a mechanism (unless there's an en mass migration
+of microblogging clients to such a mechanism).</p>
+<p>A significant disadvantage of Twitter's design is the requirement of only
+one streaming connection per account. As much as I dislike the approach of
+using session cookies to uniquely identify API message
+queues, it is a heck of a lot better than what is going to happen when
+Twitter clients start to implement this API, which will be:
+1. I log in with Seesmic Web (which has implemented the Twitter streaming
+API)
+2. I receive messages 1, 2, and 3.
+3. I log in on a different computer with Twhirl (which has also
+implemented the Twitter streaming API)
+(3.1 Twitter disconnects the Seesmic connection invisibly from the user)
+4. I receive message 4 in Twhirl
+(4.1 Seesmic tries to reconnect, which results in Twhirl being
+disconnected)
+5. I receive message 5 in Seesmic
+6. And so on....
+End result: 1 really confused user trying to connect from two banned IP
+addresses.
+I think this is a good illustration of why we need some client-specific
+identifier for a streaming/delta-queue API. It doesn't need to be a
+session, but that's working pretty nicely for now.
+I would prefer to stick with what Lift provides for the moment. I need to
+do the conceptual exercise, but on first glance I don't think Twitter's
+approach results in much of a gain over our approach. Fewer
+connection attempts, which will help a lot at Twitter-scale, but which I'm
+not sure makes a big difference at Enterprise-scale.
+Another drawback (and I'm really not sure on this one) is that I don't
+think a lot of HTTP client libraries give easy access to a request that is
+still open. The design of&nbsp; the queue API is extremely simple from a
+client programming perspective. I think that's a big upside.</p>
+<p><a name="OurDesignPhilosophy-Design-relatedquestions"></a></p>
+<h2 id="design-related_questions">Design-related questions</h2>
+<p><em>Question: In an enterprise context it could be an requirement to send a
+link to someone else pointing to a specific potentially old message in a
+certain Pool.</em></p>
+<p>Yes. &nbsp;That's perfectly reasonable. &nbsp;That message is like a static
+file on disk. &nbsp;Once it's written, it remains unchanged until it's
+deleted. &nbsp;This is an ideal application of a REST-style approach.
+&nbsp;That's why I've advocated
+for a "message based" approach first, but a REST/static approach when the
+message based approach doesn't make sense. &nbsp;What I am opposed to is a
+"try to make everything fit the REST model" approach to API design.</p>
+<hr />
+<p><em>Question: Would it be costly in your model to get the message nr. X
+&nbsp;(+ n &nbsp;older messages) in a users timeline?.</em>
+A message will exist outside of a timeline. &nbsp;There exists a cache of
+recently accessed messages. &nbsp;Sometimes there will be a historic
+message that is referenced and that will be materialized from backing store
+and rendered.&nbsp; It will likely fall out of cache if it's historical and
+not accessed again.</p>
+<hr />
+<p><em>Question: I don't get why it has to be in the session's state because you
+could as well use the information that a user is online as a guidance, even
+if the state would be stored somewhere out of the session. Wouldn't make a
+difference I guess and storing it in the session looks natural.</em></p>
+<p>The state itself is not in the session. &nbsp;The session is the guide that
+the user is online. &nbsp;The session contains a listener that is attached
+to the User. &nbsp;The only real state that resides in the session is the
+state
+necessary to batch up any messages that the User has forwarded to the
+listener in between the HTTP polling requests. &nbsp;If there is an HTML
+front end, state about that front end will reside in the session as well,
+but
+that's a different issue.</p>
+<hr />
+<p><em>Question: I don't understand why we would need to store all entries in a
+cache, instead of only keeping the last n entries for each user based on
+some heuristics such as the last 3 days or something. I would somehow
+expect that the probability that a user wants to see a message is
+exponentially decreasing with the messages age. For example that someone
+wants to see a message that is the 1000 newest message in his timeline is
+probably almost zero.</em>
+Some people mine their timelines for information. &nbsp;I agree that some
+aging policy is necessary as 36B entries will consume a lot of storage in
+RAM or on disk, but the last 1,000 is likely too few based on what I have
+seen of actual user behavior.
+In terms of an aging policy in an RDBMS, the cost of aging out old entries
+is likely to be an index scan or something on that order (DELETE FROM
+mailbox WHERE date &lt; xxx or a user-by-user DELETE WHERE id IN (SELECT
+messages &gt; 1000 in mailbox))</p>
+<p><a name="OurDesignPhilosophy-ImportantLinks"></a></p>
+<h2 id="important_links">Important Links</h2>
+<ul>
+<li><a href="esme:statefulness-and-algorithms-for-social-networks-&amp;-graphs.html">Statefulness and algorithms for social networks </a></li>
+</ul>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2010 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache, ESME and the Apache feather and ESME logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/esme/trunk/content/our-history.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/our-history.cwiki (added)
+++ websites/staging/esme/trunk/content/our-history.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,34 @@
+If you look at the origins of the Apache ESME project, you will find that the origin was in a [plurk (a micro-blogging site like Twitter) conversation |http://wiki.sdn.sap.com/wiki/display/Community/Plurk+conversation]that at some point moved to the [SAP SDN wiki|http://wiki.sdn.sap.com/wiki/display/Community/Enterprise+Social+Messaging+Experiment+%28ESME%29]. The project then moved to Assembla and then Google Code.
+The team involved was originally primarily made of individuals associated with the SAP community but has since expanded to include others from outside that community. The global team includes members from a variety of different nations ranging from Austria, India, Spain, Norway, Bulgaria, UK, Germany, the States etc.
+
+h3.
+
+h4. Highlights
+
+* [2009 Siemens press release |http://www.it-solutions.siemens.com/b2b/it/en/global/press/press-releases/2009/Pages/enterprise-social-messaging-experiment.aspx]
+
+h3.
+
+
+h4. Videos
+
+*Redmonk TV - The Making of ESME*
+
+{widget:url=http://blip.tv/file/1230603/}
+
+*In his keynote at the&nbsp;SAP UK & Ireland User Group Conference 2009,&nbsp; analyst Ray Wang compared ESME and Chatter.*
+{widget:url=http://www.youtube.com/watch?v=Os7SokJyoYQ}
+
+*ESME at Demo Jam Bangalore 2008*
+{widget:url=http://www.youtube.com/watch?v=J4jP5wb9y6I}
+*ESME at Demo Jam Berlin 2008*
+
+{widget:url=http://blip.tv/file/1371608/}
+
+*ESME at Demo Jam Las Vegas 2008*
+
+{widget:url=http://www.youtube.com/watch?v=JFJMpFkpoQU}
+
+*ESME - Interview with Dennis Howlett*
+
+{widget:url=http://blip.tv/file/1314367/}
\ No newline at end of file

Added: websites/staging/esme/trunk/content/our-history.html
==============================================================================
--- websites/staging/esme/trunk/content/our-history.html (added)
+++ websites/staging/esme/trunk/content/our-history.html Mon Jun 27 13:55:28 2011
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/esme.css" rel="stylesheet" type="text/css">
+  <title>Apache ESME - Our History</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link rel="icon" type="image/png" href="/images/esme-logo/stanbol-favicon.png"/>
+</head>
+
+<body>
+  <div id="navigation">
+  <img alt="Apache ESME" width="220" height="101" src="/images/esme-logo/esme-powerd.gif"/>
+  <h1 id="esme_links">ESME links</h1>
+<ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/team.html">Project Team</a></li>
+<li><a href="/docs/buildfromSVN.html">Building ESME</a></li>
+<li><a href="/docs/faq.html">FAQ</a></li>
+<li><a href="/docs/actions.html">Actions</a></li>
+<li><a href="/docs/apis.html">APIs</a></li>
+<li><a href="/docs/clients.html">Clients</a></li>
+<li><a href="/docs/collaboration.html">Collaboration</a></li>
+<li><a href="/docs/install.html">Installation Guides</a></li>
+<li><a href="/docs/yql.html">YQL</a><br />
+</li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Our History</h1>
+    <p>If you look at the origins of the Apache ESME project, you will find that
+the origin was in a <a href="http://wiki.sdn.sap.com/wiki/display/Community/Plurk+conversation">plurk (a micro-blogging site like Twitter) conversation </a>
+that at some point moved to the [SAP SDN wiki|http://wiki.sdn.sap.com/wiki/display/Community/Enterprise+Social+Messaging+Experiment+%28ESME%29]
+. The project then moved to Assembla and then Google Code.
+The team involved was originally primarily made of individuals associated
+with the SAP community but has since expanded to include others from
+outside that community. The global team includes members from a variety of
+different nations ranging from Austria, India, Spain, Norway, Bulgaria, UK,
+Germany, the States etc.</p>
+<p><a name="OurHistory-"></a></p>
+<h3 id="" />
+<p><a name="OurHistory-Highlights"></a></p>
+<h4 id="highlights">Highlights</h4>
+<ul>
+<li><a href="http://www.it-solutions.siemens.com/b2b/it/en/global/press/press-releases/2009/Pages/enterprise-social-messaging-experiment.aspx">2009 Siemens press release </a></li>
+</ul>
+<p><a name="OurHistory-"></a></p>
+<h3 id="_1" />
+<p><a name="OurHistory-Videos"></a></p>
+<h4 id="videos">Videos</h4>
+<p><em>Redmonk TV - The Making of ESME</em></p>
+<p>{widget:url=http://blip.tv/file/1230603/}</p>
+<p><em>In his keynote at the&nbsp;SAP UK &amp; Ireland User Group Conference
+2009,&nbsp; analyst Ray Wang compared ESME and Chatter.</em>
+{widget:url=http://www.youtube.com/watch?v=Os7SokJyoYQ}</p>
+<p><em>ESME at Demo Jam Bangalore 2008</em>
+{widget:url=http://www.youtube.com/watch?v=J4jP5wb9y6I}
+<em>ESME at Demo Jam Berlin 2008</em></p>
+<p>{widget:url=http://blip.tv/file/1371608/}</p>
+<p><em>ESME at Demo Jam Las Vegas 2008</em></p>
+<p>{widget:url=http://www.youtube.com/watch?v=JFJMpFkpoQU}</p>
+<p><em>ESME - Interview with Dennis Howlett</em></p>
+<p>{widget:url=http://blip.tv/file/1314367/}</p>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2010 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache, ESME and the Apache feather and ESME logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/esme/trunk/content/overall-design-discussions.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/overall-design-discussions.cwiki (added)
+++ websites/staging/esme/trunk/content/overall-design-discussions.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,15 @@
+h2. Background
+
+References - Dev mailing list thread - [http://www.mail-archive.com/esme-dev@incubator.apache.org/msg00976.html]
+
+h2. Streams
+
+There are a lot of ways we can model streams and I'm very interested in input here. Options for interfacing to streams that I have seen:
+
+* XMPP - [http://xmpp.org/]
+* AMQP - [http://jira.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol]
+* HTTP
+** Polling (bad)
+** Comet/long-polling - Bayeux - [http://svn.cometd.com/trunk/bayeux/bayeux.html]
+** Reverse HTTP - [http://www.reversehttp.net/]
+** PubSubHubBub? - possibly via Reverse HTTP - [http://www.reversehttp.net/demos/endpoint.html]
\ No newline at end of file

Added: websites/staging/esme/trunk/content/overall-design-discussions.html
==============================================================================
--- websites/staging/esme/trunk/content/overall-design-discussions.html (added)
+++ websites/staging/esme/trunk/content/overall-design-discussions.html Mon Jun 27 13:55:28 2011
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/esme.css" rel="stylesheet" type="text/css">
+  <title>Apache ESME - Overall Design Discussions</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link rel="icon" type="image/png" href="/images/esme-logo/stanbol-favicon.png"/>
+</head>
+
+<body>
+  <div id="navigation">
+  <img alt="Apache ESME" width="220" height="101" src="/images/esme-logo/esme-powerd.gif"/>
+  <h1 id="esme_links">ESME links</h1>
+<ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/team.html">Project Team</a></li>
+<li><a href="/docs/buildfromSVN.html">Building ESME</a></li>
+<li><a href="/docs/faq.html">FAQ</a></li>
+<li><a href="/docs/actions.html">Actions</a></li>
+<li><a href="/docs/apis.html">APIs</a></li>
+<li><a href="/docs/clients.html">Clients</a></li>
+<li><a href="/docs/collaboration.html">Collaboration</a></li>
+<li><a href="/docs/install.html">Installation Guides</a></li>
+<li><a href="/docs/yql.html">YQL</a><br />
+</li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Overall Design Discussions</h1>
+    <p><a name="OverallDesignDiscussions-Background"></a></p>
+<h2 id="background">Background</h2>
+<p>References - Dev mailing list thread - <a href="http://www.mail-archive.com/esme-dev@incubator.apache.org/msg00976.html">http://www.mail-archive.com/esme-dev@incubator.apache.org/msg00976.html</a></p>
+<p><a name="OverallDesignDiscussions-Streams"></a></p>
+<h2 id="streams">Streams</h2>
+<p>There are a lot of ways we can model streams and I'm very interested in
+input here. Options for interfacing to streams that I have seen:</p>
+<ul>
+<li>XMPP - <a href="http://xmpp.org/">http://xmpp.org/</a></li>
+<li>AMQP - <a href="http://jira.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol">http://jira.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol</a></li>
+<li>HTTP
+<strong> Polling (bad)
+</strong> Comet/long-polling - Bayeux - <a href="http://svn.cometd.com/trunk/bayeux/bayeux.html">http://svn.cometd.com/trunk/bayeux/bayeux.html</a>
+<strong> Reverse HTTP - <a href="http://www.reversehttp.net/">http://www.reversehttp.net/</a>
+</strong> PubSubHubBub? - possibly via Reverse HTTP - <a href="http://www.reversehttp.net/demos/endpoint.html">http://www.reversehttp.net/demos/endpoint.html</a></li>
+</ul>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2010 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache, ESME and the Apache feather and ESME logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/esme/trunk/content/pl-sql-client.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/pl-sql-client.cwiki (added)
+++ websites/staging/esme/trunk/content/pl-sql-client.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,61 @@
+
+*Description*: This client was developed to be able to integrate Oracle applications into ESME
+
+*Status*: Alpha
+
+*Download:*&nbsp; Just source available
+
+
+h4. Code
+
+{code:sql}
+CREATE OR REPLACE PROCEDURE esme AS 
+http_req utl_http.req; 
+http_resp utl_http.resp; 
+t_update_send VARCHAR2(4000); 
+ 
+BEGIN 
+ 
+--Preliminaries 
+ 
+utl_http.set_proxy('proxy:81');  
+utl_http.set_response_error_check(TRUE); 
+utl_http.set_detailed_excp_support(TRUE); 
+utl_http.set_transfer_timeout(to_char('60')); 
+ 
+--login first 
+ 
+http_req := utl_http.begin_request('http://api.esme.us/esme/api/login?token=IFDHJ2RNDZCAT24ZJZUKDG54TVOIVTXL',   'POST',   utl_http.http_version_1_1); 
+ 
+t_update_send := 'status='; 
+utl_http.set_header(http_req,   'Content-Length',   to_char(LENGTH(t_update_send))); 
+utl_http.write_text(http_req,   t_update_send); 
+ 
+http_resp := utl_http.get_response(http_req); 
+ 
+UTL_HTTP.END_RESPONSE(http_resp); 
+ 
+ 
+--send message 
+ 
+http_req := utl_http.begin_request('http://api.esme.us/esme/api/send_msg?message=Oracle_Test&tags=Test,plsql&via=oracle',   'POST',   utl_http.http_version_1_1); 
+ 
+t_update_send := 'status='; 
+utl_http.set_header(http_req,   'Content-Length',   to_char(LENGTH(t_update_send))); 
+utl_http.write_text(http_req,   t_update_send); 
+ 
+http_resp := utl_http.get_response(http_req); 
+ 
+UTL_HTTP.END_RESPONSE(http_resp); 
+ 
+ 
+END esme; 
+/{code}
+
+h4. Help
+
+None available
+
+h4. Details
+
+* The client requires that you use a token to access ESME

Added: websites/staging/esme/trunk/content/pl-sql-client.html
==============================================================================
--- websites/staging/esme/trunk/content/pl-sql-client.html (added)
+++ websites/staging/esme/trunk/content/pl-sql-client.html Mon Jun 27 13:55:28 2011
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/esme.css" rel="stylesheet" type="text/css">
+  <title>Apache ESME - PL SQL Client</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link rel="icon" type="image/png" href="/images/esme-logo/stanbol-favicon.png"/>
+</head>
+
+<body>
+  <div id="navigation">
+  <img alt="Apache ESME" width="220" height="101" src="/images/esme-logo/esme-powerd.gif"/>
+  <h1 id="esme_links">ESME links</h1>
+<ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/team.html">Project Team</a></li>
+<li><a href="/docs/buildfromSVN.html">Building ESME</a></li>
+<li><a href="/docs/faq.html">FAQ</a></li>
+<li><a href="/docs/actions.html">Actions</a></li>
+<li><a href="/docs/apis.html">APIs</a></li>
+<li><a href="/docs/clients.html">Clients</a></li>
+<li><a href="/docs/collaboration.html">Collaboration</a></li>
+<li><a href="/docs/install.html">Installation Guides</a></li>
+<li><a href="/docs/yql.html">YQL</a><br />
+</li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">PL SQL Client</h1>
+    <p><em>Description</em>: This client was developed to be able to integrate Oracle
+applications into ESME</p>
+<p><em>Status</em>: Alpha</p>
+<p><em>Download:</em>&nbsp; Just source available</p>
+<p><a name="PLSQLClient-Code"></a></p>
+<h4 id="code">Code</h4>
+<p>{code:sql}
+CREATE OR REPLACE PROCEDURE esme AS 
+http_req utl_http.req; 
+http_resp utl_http.resp; 
+t_update_send VARCHAR2(4000); </p>
+<p>BEGIN </p>
+<p>--Preliminaries </p>
+<p>utl_http.set_proxy('proxy:81');<br />
+utl_http.set_response_error_check(TRUE); 
+utl_http.set_detailed_excp_support(TRUE); 
+utl_http.set_transfer_timeout(to_char('60')); </p>
+<p>--login first </p>
+<p>http_req :=
+utl_http.begin_request('http://api.esme.us/esme/api/login?token=IFDHJ2RNDZCAT24ZJZUKDG54TVOIVTXL',
+  'POST',   utl_http.http_version_1_1); </p>
+<p>t_update_send := 'status='; 
+utl_http.set_header(http_req,   'Content-Length',<br />
+to_char(LENGTH(t_update_send))); 
+utl_http.write_text(http_req,   t_update_send); </p>
+<p>http_resp := utl_http.get_response(http_req); </p>
+<p>UTL_HTTP.END_RESPONSE(http_resp); </p>
+<p>--send message </p>
+<p>http_req :=
+utl_http.begin_request('http://api.esme.us/esme/api/send_msg?message=Oracle_Test&amp;tags=Test,plsql&amp;via=oracle',
+  'POST',   utl_http.http_version_1_1); </p>
+<p>t_update_send := 'status='; 
+utl_http.set_header(http_req,   'Content-Length',<br />
+to_char(LENGTH(t_update_send))); 
+utl_http.write_text(http_req,   t_update_send); </p>
+<p>http_resp := utl_http.get_response(http_req); </p>
+<p>UTL_HTTP.END_RESPONSE(http_resp); </p>
+<p>END esme; 
+/{code}</p>
+<p><a name="PLSQLClient-Help"></a></p>
+<h4 id="help">Help</h4>
+<p>None available</p>
+<p><a name="PLSQLClient-Details"></a></p>
+<h4 id="details">Details</h4>
+<ul>
+<li>The client requires that you use a token to access ESME</li>
+</ul>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2010 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache, ESME and the Apache feather and ESME logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/esme/trunk/content/project-information.cwiki
==============================================================================
--- websites/staging/esme/trunk/content/project-information.cwiki (added)
+++ websites/staging/esme/trunk/content/project-information.cwiki Mon Jun 27 13:55:28 2011
@@ -0,0 +1,53 @@
+h4. The Apache ESME Team
+
+The following is a list of developers with Apache ESME commit privileges.
+
+|| Id || Name || Organization || Roles ||
+| *akpetteroe* | Anne Kathrine Petterøe | Adobe | Committer, PPMC member |
+| *bdelacretaz* | Bertrand Delacretaz | Adobe | Mentor, PPMC member |
+| *dhague* | Darren Hague | SAP | Committer, PPMC member |
+| *dkulp* | Daniel Kulp | | Mentor, PPMC member |
+| *esjewett* | Ethan Jewett | | Committer, PPMC member |
+| *farra* | J. Aaron Farr | | Mentor, PPMC member |
+| *gianugo* | Gianugo Rabellino | | Mentor, PPMC member |
+| *mrinal* | Mrinal Wadhwa | | Committer, PPMC member |
+| *imtiaz* | Imtiaz Ahmed H E | | Committer, PPMC member |
+| *rhirsch* | Richard Hirsch | Siemens SIS | Committer, PPMC member |
+| *sylvain* | Sylvain Wallez | | Mentor, PPMC member |
+| *lester* | Vladimir&nbsp;Ivanov\\ | | Committer, PPMC member\\ |
+| *vdichev* | Vassil Dichev | | Committer, PPMC member |
+
+IDs in *bold* indicate members of the [ESME PPMC|http://incubator.apache.org/guides/ppmc.html].
+
+h4.
+
+
+h4. Apache ESME Mailing Lists
+
+*dev*: This is the list where developers of the Apache ESME project discuss code changes, milestone progress, schedules, etc.
+
+*commits*: This list is for those who wish to be notified whenever files are committed to the Apache ESME SVN repository.
+|| Mailing Lists Name || Subscribe || Unsubscribe || Post ||
+| dev | [dev-subscribe|mailto:dev-subscribe@esme.apache.org] | [dev-unsubscribe|mailto:dev-unsubscribe@esme.apache.org] | [dev |mailto:dev@esme.apache.org] \\ |
+| commits | [commits-subscribe|mailto:commits-subscribe@esme.apache.org] | [commits-unsubscribe|mailto:commits-unsubscribe@esme.apache.org] | [commits |mailto:commits@esme.apache.org] |
+
+h4.
+
+
+h4. Apache ESME Source
+
+There are three ways to access the source
+* Web Access: The code repository can be browsed [here |http://svn.apache.org/viewvc/esme/]
+* Anonymous SVN: SVN URL for anonymous users is [here |http://svn.apache.org/repos/asf/esme] Instructions for anonymous access are [here |http://www.apache.org/dev/version-control.html#anon-svn].
+* Committer SVN: SVN URL for committers is [here |https://svn.apache.org/repos/asf/esme] Instructions for committer access are [here |http://www.apache.org/dev/version-control.html#https-svn]
+h4.
+
+* h4. [JIRA Issue Tracker|https://issues.apache.org/jira/browse/ESME]
+
+
+h4.
+
+* h4. [Build Apache ESME from Subversion|Build Apache ESME from Subversion]
+
+
+h4.
\ No newline at end of file