You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by bu...@apache.org on 2014/08/08 16:18:57 UTC

svn commit: r918726 - in /websites/staging/deltaspike/trunk/content: ./ container-control.html documentation.html

Author: buildbot
Date: Fri Aug  8 14:18:57 2014
New Revision: 918726

Log:
Staging update by buildbot for deltaspike

Modified:
    websites/staging/deltaspike/trunk/content/   (props changed)
    websites/staging/deltaspike/trunk/content/container-control.html
    websites/staging/deltaspike/trunk/content/documentation.html

Propchange: websites/staging/deltaspike/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Aug  8 14:18:57 2014
@@ -1 +1 @@
-1616504
+1616770

Modified: websites/staging/deltaspike/trunk/content/container-control.html
==============================================================================
--- websites/staging/deltaspike/trunk/content/container-control.html (original)
+++ websites/staging/deltaspike/trunk/content/container-control.html Fri Aug  8 14:18:57 2014
@@ -83,6 +83,12 @@
 <li><a href="#introduction">Introduction</a><ul>
 <li><a href="#cdicontainer">CdiContainer</a></li>
 <li><a href="#contextcontrol-usage">ContextControl usage</a></li>
+<li><a href="#embedded-servlet-support">Embedded Servlet Support</a><ul>
+<li><a href="#jetty">Jetty</a></li>
+<li><a href="#undertow">Undertow</a></li>
+<li><a href="#tomcat">Tomcat</a></li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -164,6 +170,64 @@ You might face such issues, if you would
     <span class="o">}</span>
 <span class="o">}</span>
 </pre></div>
+
+
+<h2 id="embedded-servlet-support">Embedded Servlet Support</h2>
+<p>Starting with 1.0.2, you can use DeltaSpike to power embedded Servlet runtimes.  This work is done via Servlet Listeners.  The configuration is specific to each container, below are some examples.</p>
+<p>The two main listeners are <code>CdiServletRequestListener</code> and <code>CdiServletContextListener</code>.  <code>CdiServletRequestListener</code> is responsible for starting a <code>RequestContext</code> on each incoming request.  In most containers this is all you need.  For Tomcat specifically, you need to use <code>CdiServletContextListener</code> which registers the <code>CdiServletRequestListener</code>.</p>
+<p>The main usecase for this feature is for lightweight embedded runtimes, microservices.  For each of these, it is assumed that you are using the following start up code somewhere:</p>
+<div class="codehilite"><pre>    <span class="n">CdiContainer</span> <span class="n">cdiContainer</span> <span class="o">=</span> <span class="n">CdiContainerLoader</span><span class="o">.</span><span class="na">getCdiContainer</span><span class="o">();</span>
+    <span class="n">cdiContainer</span><span class="o">.</span><span class="na">boot</span><span class="o">();</span>
+    <span class="n">cdiContainer</span><span class="o">.</span><span class="na">getContextControl</span><span class="o">().</span><span class="na">startContexts</span><span class="o">();</span>
+</pre></div>
+
+
+<h3 id="jetty">Jetty</h3>
+<p>For Jetty, you need to add an <code>EventListener</code> which will be your <code>CdiServletRequestListener</code>.  The object must be instantiated.  This must be done before the server is started.</p>
+<div class="codehilite"><pre>    <span class="n">Server</span> <span class="n">server</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Server</span><span class="o">(</span><span class="n">port</span><span class="o">);</span>
+    <span class="n">ServletContextHandler</span> <span class="n">context</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ServletContextHandler</span><span class="o">(</span><span class="n">ServletContextHandler</span><span class="o">.</span><span class="na">SESSIONS</span><span class="o">);</span>
+    <span class="n">context</span><span class="o">.</span><span class="na">setContextPath</span><span class="o">(</span><span class="s">&quot;/&quot;</span><span class="o">);</span>
+    <span class="n">server</span><span class="o">.</span><span class="na">setHandler</span><span class="o">(</span><span class="n">context</span><span class="o">);</span>
+
+    <span class="n">context</span><span class="o">.</span><span class="na">addEventListener</span><span class="o">(</span><span class="k">new</span> <span class="n">CdiServletRequestListener</span><span class="o">());</span>
+    <span class="n">context</span><span class="o">.</span><span class="na">addServlet</span><span class="o">(</span><span class="k">new</span> <span class="n">ServletHolder</span><span class="o">(</span><span class="k">new</span> <span class="n">YourServlet</span><span class="o">()),</span><span class="s">&quot;/*&quot;</span><span class="o">);</span>
+
+    <span class="n">server</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
+</pre></div>
+
+
+<h3 id="undertow">Undertow</h3>
+<p>For Undertow, you register the <code>CdiServletRequestListener</code> via <code>ListenerInfo</code> by passing in the class to their builders.  Then you add the <code>ListenerInfo</code> to your deployment before starting.</p>
+<div class="codehilite"><pre>    <span class="n">ServletInfo</span> <span class="n">servletInfo</span> <span class="o">=</span> <span class="n">Servlets</span><span class="o">.</span><span class="na">servlet</span><span class="o">(</span><span class="s">&quot;RequestServlet&quot;</span><span class="o">,</span> <span class="n">YourServlet</span><span class="o">.</span><span class="na">class</span><span class="o">).</span><span class="na">setAsyncSupported</span><span class="o">(</span><span class="kc">true</span><span class="o">)</span>
+        <span class="o">.</span><span class="na">setLoadOnStartup</span><span class="o">(</span><span class="mi">1</span><span class="o">).</span><span class="na">addMapping</span><span class="o">(</span><span class="s">&quot;/*&quot;</span><span class="o">);</span>
+    <span class="n">ListenerInfo</span> <span class="n">listenerInfo</span> <span class="o">=</span> <span class="n">Servlets</span><span class="o">.</span><span class="na">listener</span><span class="o">(</span><span class="n">CdiServletRequestListener</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+    <span class="n">DeploymentInfo</span> <span class="n">di</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DeploymentInfo</span><span class="o">()</span>
+            <span class="o">.</span><span class="na">addListener</span><span class="o">(</span><span class="n">listenerInfo</span><span class="o">)</span>
+            <span class="o">.</span><span class="na">setContextPath</span><span class="o">(</span><span class="s">&quot;/&quot;</span><span class="o">)</span>
+            <span class="o">.</span><span class="na">addServlet</span><span class="o">(</span><span class="n">servletInfo</span><span class="o">).</span><span class="na">setDeploymentName</span><span class="o">(</span><span class="s">&quot;CdiSEServlet&quot;</span><span class="o">)</span>
+            <span class="o">.</span><span class="na">setClassLoader</span><span class="o">(</span><span class="n">ClassLoader</span><span class="o">.</span><span class="na">getSystemClassLoader</span><span class="o">());</span>
+    <span class="n">DeploymentManager</span> <span class="n">deploymentManager</span> <span class="o">=</span> <span class="n">Servlets</span><span class="o">.</span><span class="na">defaultContainer</span><span class="o">().</span><span class="na">addDeployment</span><span class="o">(</span><span class="n">di</span><span class="o">);</span>
+    <span class="n">deploymentManager</span><span class="o">.</span><span class="na">deploy</span><span class="o">();</span>
+    <span class="n">Undertow</span> <span class="n">server</span> <span class="o">=</span> <span class="n">Undertow</span><span class="o">.</span><span class="na">builder</span><span class="o">()</span>
+            <span class="o">.</span><span class="na">addHttpListener</span><span class="o">(</span><span class="n">port</span><span class="o">,</span> <span class="s">&quot;localhost&quot;</span><span class="o">)</span>
+            <span class="o">.</span><span class="na">setHandler</span><span class="o">(</span><span class="n">deploymentManager</span><span class="o">.</span><span class="na">start</span><span class="o">())</span>
+            <span class="o">.</span><span class="na">build</span><span class="o">();</span>
+    <span class="n">server</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
+</pre></div>
+
+
+<h3 id="tomcat">Tomcat</h3>
+<p>For Tomcat, you need to register the <code>CdiServletContextListener</code> instead of the <code>CdiServletRequestListener</code>.  It is added as an <code>ApplicationListener</code> by passing in the class name as a <code>String</code>.</p>
+<div class="codehilite"><pre>    <span class="n">Tomcat</span> <span class="n">tomcat</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Tomcat</span><span class="o">();</span>
+    <span class="n">tomcat</span><span class="o">.</span><span class="na">setPort</span><span class="o">(</span><span class="n">port</span><span class="o">);</span>
+    <span class="n">File</span> <span class="n">base</span> <span class="o">=</span> <span class="k">new</span> <span class="n">File</span><span class="o">(</span><span class="s">&quot;...&quot;</span><span class="o">);</span>
+    <span class="n">Context</span> <span class="n">ctx</span> <span class="o">=</span> <span class="n">tomcat</span><span class="o">.</span><span class="na">addContext</span><span class="o">(</span><span class="s">&quot;/&quot;</span><span class="o">,</span><span class="n">base</span><span class="o">.</span><span class="na">getAbsolutePath</span><span class="o">());</span>
+    <span class="n">StandardContext</span> <span class="n">standardContext</span> <span class="o">=</span> <span class="o">(</span><span class="n">StandardContext</span><span class="o">)</span><span class="n">ctx</span><span class="o">;</span>
+    <span class="n">standardContext</span><span class="o">.</span><span class="na">addApplicationListener</span><span class="o">(</span><span class="n">CdiServletContextListener</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getName</span><span class="o">());</span>
+    <span class="n">Wrapper</span> <span class="n">wrapper</span> <span class="o">=</span> <span class="n">Tomcat</span><span class="o">.</span><span class="na">addServlet</span><span class="o">(</span><span class="n">ctx</span><span class="o">,</span><span class="s">&quot;YourServlet&quot;</span><span class="o">,</span><span class="n">YourServlet</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getName</span><span class="o">());</span>
+    <span class="n">wrapper</span><span class="o">.</span><span class="na">addMapping</span><span class="o">(</span><span class="s">&quot;/*&quot;</span><span class="o">);</span>
+    <span class="n">tomcat</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
+</pre></div>
           </div>
       </div>
 

Modified: websites/staging/deltaspike/trunk/content/documentation.html
==============================================================================
--- websites/staging/deltaspike/trunk/content/documentation.html (original)
+++ websites/staging/deltaspike/trunk/content/documentation.html Fri Aug  8 14:18:57 2014
@@ -112,6 +112,7 @@
 </li>
 <li><a href="#for-apache-openwebbeans">... for Apache OpenWebBeans</a></li>
 <li><a href="#for-jboss-weld-ri">... for JBoss Weld (RI)</a></li>
+<li><a href="#for-embedded-servlet-runtimes-you-can-add">For Embedded Servlet Runtimes, you can add</a></li>
 <li><a href="#testing-snapshots">Testing Snapshots</a></li>
 </ul>
 </li>
@@ -220,14 +221,14 @@ created.</p>
 <p><strong>Hint:</strong>
 In the listings below replace the placeholders for the version with the version of your choice or use:</p>
 <div class="codehilite"><pre><span class="nt">&lt;properties&gt;</span>
-    <span class="nt">&lt;deltaspike.version&gt;</span>1.0.0<span class="nt">&lt;/deltaspike.version&gt;</span>
+    <span class="nt">&lt;deltaspike.version&gt;</span>1.0.1<span class="nt">&lt;/deltaspike.version&gt;</span>
 <span class="nt">&lt;/properties&gt;</span>
 </pre></div>
 
 
 <p>Or if you want to very bleeding edge, point to our current snapshot.</p>
 <div class="codehilite"><pre><span class="nt">&lt;properties&gt;</span>
-    <span class="nt">&lt;deltaspike.version&gt;</span>1.0.1-SNAPSHOT<span class="nt">&lt;/deltaspike.version&gt;</span>
+    <span class="nt">&lt;deltaspike.version&gt;</span>1.0.2-SNAPSHOT<span class="nt">&lt;/deltaspike.version&gt;</span>
 <span class="nt">&lt;/properties&gt;</span>
 </pre></div>
 
@@ -455,6 +456,16 @@ In the listings below replace the placeh
 </pre></div>
 
 
+<h3 id="for-embedded-servlet-runtimes-you-can-add">For Embedded Servlet Runtimes, you can add</h3>
+<div class="codehilite"><pre><span class="nt">&lt;dependency&gt;</span>
+    <span class="nt">&lt;groupId&gt;</span>org.apache.deltaspike.cdictrl<span class="nt">&lt;/groupId&gt;</span>
+    <span class="nt">&lt;artifactId&gt;</span>deltaspike-cdictrl-servlet<span class="nt">&lt;/artifactId&gt;</span>
+    <span class="nt">&lt;version&gt;</span><span class="cp">${</span><span class="n">deltaspike</span><span class="o">.</span><span class="n">version</span><span class="cp">}</span><span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;scope&gt;</span>compile<span class="nt">&lt;/scope&gt;</span>
+<span class="nt">&lt;/dependency&gt;</span>
+</pre></div>
+
+
 <h3 id="testing-snapshots">Testing Snapshots</h3>
 <p>If you would like to test the latest Snapshot, you can <a href="http://deltaspike.apache.org/build.html">build</a> DeltaSpike locally or you get it from the Apache Snapshot-Repository:</p>
 <div class="codehilite"><pre><span class="nt">&lt;repositories&gt;</span>