[exo-jcr-commits] exo-jcr SVN: r2813 - in jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules: kernel and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Jul 26 10:07:57 EDT 2010


Author: sergiykarpenko
Date: 2010-07-26 10:07:57 -0400 (Mon, 26 Jul 2010)
New Revision: 2813

Added:
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/kernel/listener-service.xml
Modified:
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/kernel.xml
Log:
EXOJCR-311: Topic about asynch event broadcasting added

Added: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/kernel/listener-service.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/kernel/listener-service.xml	                        (rev 0)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/kernel/listener-service.xml	2010-07-26 14:07:57 UTC (rev 2813)
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="ch_listener_service">
+  <?dbhtml filename="ch-listener-service.html"?>
+
+  <title>ListenerService</title>
+
+  <section>
+    <title>Asynchronous Event Broadcast</title>
+
+    <para>Basicaly, ListenerService used to store Listeners and broadcast
+    events to them.</para>
+
+    <para>ListenerService event broadcasting works in next way - it takes a
+    destination listeners and executes event on those listeners.</para>
+
+    <para>But, some events may take a lot of time, so idea to make event
+    processing asynchronous is usefull.</para>
+
+    <blockquote>
+      What do I need to make my listener asynchronous?
+    </blockquote>
+
+    <para>- It's very simple, just mark your Listener implementation as
+    <classname>@Asynchronous</classname>.</para>
+
+    <programlisting>@Asynchronous
+class AsynchListenerWithException&lt;S,D&gt; extends Listener&lt;S,D&gt;
+{
+   @Override
+   public void onEvent(Event&lt;S,D&gt; event) throws Exception
+   {
+      // some expensive operation
+   }
+}</programlisting>
+
+    <para>Now, our AsynchListener will be executed in separate thread by
+    <classname>ExecutorService</classname>.</para>
+
+    <para>By default, <classname>ExecutoreService</classname> configured with
+    thread pool size 1, you can change it in configuration:<programlisting>   &lt;component&gt;
+      &lt;key&gt;org.exoplatform.services.listener.ListenerService&lt;/key&gt;
+      &lt;type&gt;org.exoplatform.services.listener.ListenerService&lt;/type&gt;
+      
+      &lt;init-params&gt;
+         &lt;value-param&gt;
+            &lt;name&gt;asynchPoolSize&lt;/name&gt;
+            &lt;value&gt;5&lt;/value&gt;
+         &lt;/value-param&gt;
+      &lt;/init-params&gt;
+
+   &lt;/component&gt;</programlisting></para>
+  </section>
+</chapter>

Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/kernel.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/kernel.xml	2010-07-26 13:21:09 UTC (rev 2812)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/kernel.xml	2010-07-26 14:07:57 UTC (rev 2813)
@@ -18,6 +18,9 @@
   <xi:include href="kernel/transaction-service.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 
+  <xi:include href="kernel/listener-service.xml"
+              xmlns:xi="http://www.w3.org/2001/XInclude" />
+
   <xi:include href="kernel/jndi-naming.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
 



More information about the exo-jcr-commits mailing list