[grizzly~git:85181155] [master] Remove documentation.

  • From: rlubke@...
  • To: commits@...
  • Subject: [grizzly~git:85181155] [master] Remove documentation.
  • Date: Wed, 22 May 2013 21:23:10 +0000

Project:    grizzly
Repository: git
Revision:   851811555b094e98b87f36aa3a82cc3afe7491d8
Author:     rlubke
Date:       2013-05-22 21:22:16 UTC
Link:       

Log Message:
------------
[master] Remove documentation.



Revisions:
----------
851811555b094e98b87f36aa3a82cc3afe7491d8


Modified Paths:
---------------
pom.xml


Diffs:
------
--- a/documentation/pom.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-
-    Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights 
reserved.
-
-    The contents of this file are subject to the terms of either the GNU
-    General Public License Version 2 only ("GPL") or the Common Development
-    and Distribution License("CDDL") (collectively, the "License").  You
-    may not use this file except in compliance with the License.  You can
-    obtain a copy of the License at
-    https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
-    or packager/legal/LICENSE.txt.  See the License for the specific
-    language governing permissions and limitations under the License.
-
-    When distributing the software, include this License Header Notice in 
each
-    file and include the License file at packager/legal/LICENSE.txt.
-
-    GPL Classpath Exception:
-    Oracle designates this particular file as subject to the "Classpath"
-    exception as provided by Oracle in the GPL Version 2 section of the 
License
-    file that accompanied this code.
-
-    Modifications:
-    If applicable, add the following below the License Header, with the 
fields
-    enclosed by brackets [] replaced by your own identifying information:
-    "Portions Copyright [year] [name of copyright owner]"
-
-    Contributor(s):
-    If you wish your version of this file to be governed by only the CDDL or
-    only the GPL Version 2, indicate your decision by adding "[Contributor]
-    elects to include this software in this distribution under the [CDDL or 
GPL
-    Version 2] license."  If you don't indicate a single choice of license, a
-    recipient has the option to distribute your version of this file under
-    either the CDDL, the GPL Version 2 or to extend the choice of license to
-    its licensees as provided above.  However, if you add GPL Version 2 code
-    and therefore, elected the GPL Version 2 license, then the option applies
-    only if the new code is made subject to such option by the copyright
-    holder.
-
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" ;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ;
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ;
http://maven.apache.org/maven-v4_0_0.xsd";>
-    <parent>
-        <groupId>org.glassfish.grizzly</groupId>
-        <artifactId>grizzly-project</artifactId>
-        <version>3.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.glassfish.grizzly</groupId>
-    <artifactId>documentation</artifactId>
-    <packaging>pom</packaging>
-    <version>3.0-SNAPSHOT</version>
-    <name>grizzly-documentation</name>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>com.agilejava.docbkx</groupId>
-                <artifactId>docbkx-maven-plugin</artifactId>
-                <version>2.0.9</version>
-                <dependencies>
-                    <dependency>
-                        <groupId>net.sf.docbook</groupId>
-                        <artifactId>docbook-xml</artifactId>
-                        <version>5.0-all</version>
-                        <classifier>resources</classifier>
-                        <type>zip</type>
-                        <scope>runtime</scope>
-                    </dependency>
-                </dependencies>
-                <executions>
-                    <!--
-                    <execution>
-                        <id>create-pdf-docs</id>
-                        <goals>
-                            <goal>generate-pdf</goal>
-                        </goals>
-                        <configuration>
-
-                            
<imgSrcPath>file:///${basedir}/src/docbkx/</imgSrcPath>
-                            <highlightSource>true</highlightSource>
-                        </configuration>
-                        <phase>install</phase>
-                    </execution>
-                    -->
-                    <execution>
-                        <id>create-html-docs</id>
-                        <goals>
-                            <goal>generate-html</goal>
-                        </goals>
-                        <configuration>
-                            <!-- This copies content (images, etc) for the 
HTML version -->
-                            <preProcess>
-                                <copy todir="target/docbkx/html/images">
-                                    <fileset dir="src/docbkx/images" />
-                                </copy>
-                                <copy todir="target/docbkx/html/css">
-                                    <fileset dir="src/docbkx/css" />
-                                </copy>
-                            </preProcess>
-                            <imgSrcPath>images/</imgSrcPath>
-                            <chunkedOutput>true</chunkedOutput>
-                            <htmlStylesheet>css/style.css</htmlStylesheet>
-                            <useIdAsFilename>1</useIdAsFilename>
-                            
<htmlCustomization>${basedir}/src/docbkx/hightlight.xsl</htmlCustomization>
-                        </configuration>
-                        <phase>install</phase>
-                    </execution>
-
-                </executions>
-                <configuration>
-                    <highlightSource>false</highlightSource>
-                    <highlightDefaultLanguage>java</highlightDefaultLanguage>
-                    <useExtensions>1</useExtensions>
-                    <linenumberingExtension>1</linenumberingExtension>
-                    <linenumberingEveryNth>1</linenumberingEveryNth>
-                    <calloutsExtension>1</calloutsExtension>
-                    <xincludeSupported>true</xincludeSupported>
-                    <postProcess>
-                        <replace dir="target/docbkx/html" 
token="@project.version@" value="${project.version}" />
-                    </postProcess>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>--- a/documentation/src/docbkx/content/ajp.xml
+++ /dev/null
@@ -1,184 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-
-    Copyright (c) 2011-2012 Oracle and/or its affiliates. All rights 
reserved.
-
-    The contents of this file are subject to the terms of either the GNU
-    General Public License Version 2 only ("GPL") or the Common Development
-    and Distribution License("CDDL") (collectively, the "License").  You
-    may not use this file except in compliance with the License.  You can
-    obtain a copy of the License at
-    https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
-    or packager/legal/LICENSE.txt.  See the License for the specific
-    language governing permissions and limitations under the License.
-
-    When distributing the software, include this License Header Notice in 
each
-    file and include the License file at packager/legal/LICENSE.txt.
-
-    GPL Classpath Exception:
-    Oracle designates this particular file as subject to the "Classpath"
-    exception as provided by Oracle in the GPL Version 2 section of the 
License
-    file that accompanied this code.
-
-    Modifications:
-    If applicable, add the following below the License Header, with the 
fields
-    enclosed by brackets [] replaced by your own identifying information:
-    "Portions Copyright [year] [name of copyright owner]"
-
-    Contributor(s):
-    If you wish your version of this file to be governed by only the CDDL or
-    only the GPL Version 2, indicate your decision by adding "[Contributor]
-    elects to include this software in this distribution under the [CDDL or 
GPL
-    Version 2] license."  If you don't indicate a single choice of license, a
-    recipient has the option to distribute your version of this file under
-    either the CDDL, the GPL Version 2 or to extend the choice of license to
-    its licensees as provided above.  However, if you add GPL Version 2 code
-    and therefore, elected the GPL Version 2 license, then the option applies
-    only if the new code is made subject to such option by the copyright
-    holder.
-
--->
-<chapter version="5.0" xml:id="ajp" xmlns="http://docbook.org/ns/docbook";
-         xmlns:xlink="http://www.w3.org/1999/xlink";
-         xmlns:xi="http://www.w3.org/2001/XInclude";
-         xmlns:svg="http://www.w3.org/2000/svg";
-         xmlns:ns="http://docbook.org/ns/docbook";
-         xmlns:m="http://www.w3.org/1998/Math/MathML";
-         xmlns:html="http://www.w3.org/1999/xhtml";>
-  <title>AJP</title>
-
-  <section xml:id="ajp-overview">
-    <title>Overview</title>
-
-    <para>Starting with version 2.1, Grizzly supports <link
-    
xlink:href="http://en.wikipedia.org/wiki/Apache_JServ_Protocol";>AJP</link>
-    1.3 (Apache JServ Protocol) natively. "Natively" means AJP is implemented
-    using core Grizzly APIs and naturally fits into entire Grizzly
-    infrastructure: memory management, threading etc...</para>
-  </section>
-
-  <section xml:id="ajp-workings">
-    <title>How it works</title>
-
-    <para>The AJP protocol implementation is mainly represented by two
-    Filters: AjpMessageFilter, AjpHandlerFilter. The AjpMessageFilter is
-    responsible for constructing AJP protocol messages and AjpHandlerFilter
-    contains the actual processing logic, which works as a codec between AJP
-    and HTTP messages. All the Filters upstream to AjpHandlerFilter receive
-    HTTP messages for processing, so they are not even aware of AJP
-    protocol.</para>
-
-    <para>Here is a FilterChain, which is being normally constructed, when
-    Grizzly HttpServer being used:</para>
-
-    <para><inlinemediaobject>
-        <imageobject>
-          <imagedata fileref="../images/ajp/httpserver-filterchain.png"/>
-        </imageobject>
-      </inlinemediaobject></para>
-
-    <para>Now, what happens, if we want to use AJP? It's easy, we replace 
HTTP
-    Filter, which works as a codec for Buffer &lt;-&gt; HTTP transformation,
-    with the two Filters mentioned above: AjpMessageFilter and
-    AjpHandlerFilter:</para>
-
-    <para><inlinemediaobject>
-        <imageobject>
-          <imagedata fileref="../images/ajp/httpserver-ajp-filterchain.png"/>
-        </imageobject>
-      </inlinemediaobject></para>
-
-    <para>So the Grizzly HttpServer Filter won't even notice it operates over
-    AJP rather than plain HTTP.</para>
-
-    <para>In order to simplify HttpServer AJP configuration, there is an
-    AjpAddOn available, which may be registered on the required HttpServer's
-    NetworkListener like:</para>
-
-    <programlisting language="java">HttpServer httpServer = new HttpServer();
-NetworkListener listener =
-         new NetworkListener("grizzly",
-         NetworkListener.DEFAULT_NETWORK_HOST, PORT);
-
-AjpAddOn ajpAddon = new AjpAddOn();
-listener.registerAddOn(ajpAddon);
-        
-        httpServer.addListener(listener);</programlisting>
-  </section>
-
-  <section xml:id="ajp-config">
-    <title>AJP Configuration</title>
-
-    <table>
-      <title>AjpHandlerFilter and AjpAddOn Properties</title>
-
-      <tgroup cols="2">
-        <tbody>
-          <row>
-            <entry>isTomcatAuthentication</entry>
-
-            <entry>If set to true, the authentication will be done in 
Grizzly.
-            Otherwise, the authenticated principal will be propagated from 
the
-            native webserver and used for authorization in Grizzly. The
-            default value is true.</entry>
-          </row>
-
-          <row>
-            <entry>secret</entry>
-
-            <entry>If not null, only requests from workers with this secret
-            keyword will be accepted, null means no secret check will be
-            done.</entry>
-          </row>
-
-          <row>
-            <entry>shutdownHandlers</entry>
-
-            <entry>The set of ShutdownHandlers, which will be invoked, when
-            AJP shutdown request received. The implementation itself doesn't
-            perform any action related to shutdown request.</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </table>
-  </section>
-
-  <section xml:id="ajp-samples">
-    <title>Sample</title>
-
-    <para>There is a simple AJP "Hello World" sample available, which 
contains
-    a single class, single HttpHandler, which is accessable via AJP and HTTP
-    at the same time. Here is the most interesting part of it responsible for
-    HttpServer initialization.</para>
-
-    <programlisting language="java">        final HttpServer server = new 
HttpServer();
-
-        // Create plain HTTP listener, which will handle port 8080
-        final NetworkListener httpNetworkListener =
-                new NetworkListener("http-listener", "0.0.0.0", 8080);
-
-        // Create AJP listener, which will handle port 8009
-        final NetworkListener ajpNetworkListener =
-                new NetworkListener("ajp-listener", "0.0.0.0", 8009);
-        // Register AJP addon on HttpServer's listener
-        ajpNetworkListener.registerAddOn(new AjpAddOn());
-
-        server.addListener(httpNetworkListener);
-        server.addListener(ajpNetworkListener);
-
-        final ServerConfiguration config = server.getServerConfiguration();
-
-        // Map the path, /grizzly, to the HelloWorldHandler
-        config.addHttpHandler(new HelloWorldHandler(), 
"/grizzly");</programlisting>
-
-    <para>The <link
-    
xlink:href="http://java.net/projects/grizzly/sources/git/content/samples/http-ajp-samples/readme.txt?rev=c8ff8e24974f3c4be9a1833e58adf139b656a730";>readme.txt</link>
-    contains setup and run instructions.</para>
-
-    <para>Complete sources and instructions could be found <link
-    
xlink:href="http://java.net/projects/grizzly/sources/git/show/samples/http-ajp-samples?rev=c8ff8e24974f3c4be9a1833e58adf139b656a730";>here</link>.
-    </para>
-  </section>
-</chapter>--- a/documentation/src/docbkx/content/best-practices.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-
-    Copyright (c) 2011-2012 Oracle and/or its affiliates. All rights 
reserved.
-
-    The contents of this file are subject to the terms of either the GNU
-    General Public License Version 2 only ("GPL") or the Common Development
-    and Distribution License("CDDL") (collectively, the "License").  You
-    may not use this file except in compliance with the License.  You can
-    obtain a copy of the License at
-    https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
-    or packager/legal/LICENSE.txt.  See the License for the specific
-    language governing permissions and limitations under the License.
-
-    When distributing the software, include this License Header Notice in 
each
-    file and include the License file at packager/legal/LICENSE.txt.
-
-    GPL Classpath Exception:
-    Oracle designates this particular file as subject to the "Classpath"
-    exception as provided by Oracle in the GPL Version 2 section of the 
License
-    file that accompanied this code.
-
-    Modifications:
-    If applicable, add the following below the License Header, with the 
fields
-    enclosed by brackets [] replaced by your own identifying information:
-    "Portions Copyright [year] [name of copyright owner]"
-
-    Contributor(s):
-    If you wish your version of this file to be governed by only the CDDL or
-    only the GPL Version 2, indicate your decision by adding "[Contributor]
-    elects to include this software in this distribution under the [CDDL or 
GPL
-    Version 2] license."  If you don't indicate a single choice of license, a
-    recipient has the option to distribute your version of this file under
-    either the CDDL, the GPL Version 2 or to extend the choice of license to
-    its licensees as provided above.  However, if you add GPL Version 2 code
-    and therefore, elected the GPL Version 2 license, then the option applies
-    only if the new code is made subject to such option by the copyright
-    holder.
-
--->
-<section version="5.0" xml:id="bestpractices"
-         xmlns="http://docbook.org/ns/docbook";
-         xmlns:xlink="http://www.w3.org/1999/xlink";
-         xmlns:xi="http://www.w3.org/2001/XInclude";
-         xmlns:svg="http://www.w3.org/2000/svg";
-         xmlns:ns="http://docbook.org/ns/docbook";
-         xmlns:m="http://www.w3.org/1998/Math/MathML";
-         xmlns:html="http://www.w3.org/1999/xhtml";>
-  <title>Best Practices</title>
-
-  <para>When developing a network application, we usually wonder how we can
-  optimize it. How should the worker thread pool be sized? Which I/O strategy
-  to employ?</para>
-
-  <para>There is no general answer for that question, but we'll try to 
provide
-  some tips.<itemizedlist>
-      <listitem>
-        <para><emphasis role="bold">IOStrategy</emphasis></para>
-
-        <para>In the <link linkend="iostrategies">IOStrategy</link> section,
-        we introduced different Grizzly IOStrategies.</para>
-
-        <para>By default, Grizzly Transports use the worker-thread 
IOStrategy,
-        which is reliable for any possible usecase. However, if the
-        application processing logic doesn't involve any blocking I/O
-        operations, the same-thread IOStrategy can be used. For these cases,
-        the same-thread strategy will be more performant as there are no
-        thread context switches.</para>
-
-        <para>For example, if we implement general HTTP Servlet container, we
-        can't be sure about nature of specific Servlets developers may have.
-        In this case it's safter to use the worker-thread IOStrategy. 
However,
-        if application uses the Grizzly's HttpServer and HttpHandler, which
-        leverages NIO streams, then the same-thread strategy could be used to
-        optimize processing time and resource consumption;</para>
-      </listitem>
-
-      <listitem>
-        <para><emphasis role="bold">Selector runners count</emphasis></para>
-
-        <para>The Grizzly runtime will automatically set the SelectorRunner
-        count value equal to <link
-        
xlink:href="http://download.oracle.com/javase/6/docs/api/java/lang/Runtime.html#availableProcessors()">Runtime.getRuntime().availableProcessors()</link>.
-        Depending on usecase, developers may change this value to better suit
-        their needs.</para>
-
-        <para>Scott Oaks, from the Glassfish performance team, <link
-        
xlink:href="http://weblogs.java.net/blog/2007/12/03/glassfish-tuning-primer";>suggests</link>
-        that there should be one SelectorRunner <citation>for every 1-4 cores
-        on your machine; no more than that</citation>;</para>
-      </listitem>
-
-      <listitem>
-        <para><emphasis role="bold">Worker thread pool</emphasis></para>
-
-        <para>In the <link linkend="threadpool-config">Configuration</link>
-        section, the different thread pool implementations, and their pros 
and
-        cons, were discussed.</para>
-
-        <para>All IOStrategies, except the same-thread IOStrategy, use worker
-        threads to process IOEvents which occur on Connections. A common
-        question is how many worker threads will be needed by an
-        application?</para>
-
-        <para>In his <link
-        
xlink:href="http://weblogs.java.net/blog/2007/12/03/glassfish-tuning-primer";>blog</link>,
-        Scott suggests <citation>How many is "just enough"? It depends, of
-        course -- in a case where HTTP requests don't use any external
-        resource and are hence CPU bound, you want only as many HTTP request
-        processing threads as you have CPUs on the machine. But if the HTTP
-        request makes a database call (even indirectly, like by using a JPA
-        entity), the request will block while waiting for the database, and
-        you could profitably run another thread. So this takes some trial and
-        error, but start with the same number of threads as you have CPU and
-        increase them until you no longer see an improvement in
-        throughput</citation>.</para>
-
-        <para>Translating this to the general, non HTTP usecase: If IOEvent
-        processing includes blocking I/O operation(s), which will make thread
-        block doing nothing for some time (i.e, waiting for a result from a
-        peer), it's best to have more worker threads to not starve other
-        request processing. For simpler application processes, the fewer
-        threads, the better.</para>
-      </listitem>
-    </itemizedlist></para>
-</section>--- a/documentation/src/docbkx/content/comet.xml
+++ /dev/null
@@ -1,212 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-
-    Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
-
-    The contents of this file are subject to the terms of either the GNU
-    General Public License Version 2 only ("GPL") or the Common Development
-    and Distribution License("CDDL") (collectively, the "License").  You
-    may not use this file except in compliance with the License.  You can
-    obtain a copy of the License at
-    https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
-    or packager/legal/LICENSE.txt.  See the License for the specific
-    language governing permissions and limitations under the License.
-
-    When distributing the software, include this License Header Notice in 
each
-    file and include the License file at packager/legal/LICENSE.txt.
-
-    GPL Classpath Exception:
-    Oracle designates this particular file as subject to the "Classpath"
-    exception as provided by Oracle in the GPL Version 2 section of the 
License
-    file that accompanied this code.
-
-    Modifications:
-    If applicable, add the following below the License Header, with the 
fields
-    enclosed by brackets [] replaced by your own identifying information:
-    "Portions Copyright [year] [name of copyright owner]"
-
-    Contributor(s):
-    If you wish your version of this file to be governed by only the CDDL or
-    only the GPL Version 2, indicate your decision by adding "[Contributor]
-    elects to include this software in this distribution under the [CDDL or 
GPL
-    Version 2] license."  If you don't indicate a single choice of license, a
-    recipient has the option to distribute your version of this file under
-    either the CDDL, the GPL Version 2 or to extend the choice of license to
-    its licensees as provided above.  However, if you add GPL Version 2 code
-    and therefore, elected the GPL Version 2 license, then the option applies
-    only if the new code is made subject to such option by the copyright
-    holder.
-
--->
-<chapter version="5.0" xml:id="comet"
-                       xmlns="http://docbook.org/ns/docbook";
-         xmlns:xlink="http://www.w3.org/1999/xlink";
-         xmlns:xi="http://www.w3.org/2001/XInclude";
-         xmlns:svg="http://www.w3.org/2000/svg";
-         xmlns:m="http://www.w3.org/1998/Math/MathML";
-         xmlns:html="http://www.w3.org/1999/xhtml";
-         xmlns:db="http://docbook.org/ns/docbook";>
-  <title>Comet</title>
-
-  <section>
-    <title>Introduction</title>
-
-    <para>From the wikipedia page:</para>
-
-    <para>Comet is an umbrella term used to describe a
-    technique allowing web browser to receive almost real time updates from
-    the server. The two most common approaches are long polling and 
streaming.
-    Long polling differs from streaming in that each update from the server
-    ultimately results in another follow up request from the server. With
-    streaming, there is one long lived request serving multiple updates. The
-    following sections will cover each option with samples of how to 
implement
-    each approach.</para>
-
-    <section>
-      <title>Long Polling</title>
-
-      <para>With long polling an initial request is made to the server. This 
request is "parked"
-        waiting for an update. This sleeping request is then awakened when 
an event is called on the
-        CometHandler for the request. CometHandler is an interface in the 
Grizzly framework which an
-        application developer implements to register a suspended request 
with the comet system and
-        manage event and lifecyle issues. CometHandler is typically where 
your application logic for
-        your comet-based applications lives. The following example shows how 
to set up a long
-        polling request and notify it about events. This code is taken from 
the count-clicker comet
-        sample in the grizzly source repository
-        
(http://java.net/projects/grizzly/sources/git/show/samples/comet/comet-counter).</para>
-      <db:programlisting>public class CounterHandler extends 
DefaultCometHandler&lt;HttpServletResponse> {
-
-    private HttpServletResponse httpResponse;
-    private AtomicInteger counter;
-
-    CounterHandler(HttpServletResponse httpResponse, final AtomicInteger 
counter) {
-        this.httpResponse = httpResponse;
-        this.counter = counter;
-    }
-
-    public void onEvent(CometEvent event) throws IOException {
-        if (CometEvent.Type.NOTIFY == event.getType()) {
-            httpResponse.addHeader("X-JSON", "{\"counter\":" + counter.get() 
+ " }");
-
-            PrintWriter writer = httpResponse.getWriter();
-            writer.write("success");
-            writer.flush();
-
-            event.getCometContext().resumeCometHandler(this);
-        }
-    }
-
-    public void onInterrupt(CometEvent event) throws IOException {
-        httpResponse.addHeader("X-JSON", "{\"counter\":" + counter.get() + " 
}");
-
-        PrintWriter writer = httpResponse.getWriter();
-        writer.write("success");
-        writer.flush();
-    }
-}
-</db:programlisting>
-      <para>This is the CometHandler for our simple counter application.  In 
this simple case, it
-        has an AtomicInteger for tracking count requests and return the 
incremented value for each
-        event.  This handler is registered in a servlet as shown 
below.</para>
-      <db:programlisting>public class LongPollingServlet extends HttpServlet 
{
-
-
-    final AtomicInteger counter = new AtomicInteger();
-    private static final long serialVersionUID = 1L;
-    
-    private String contextPath = null;
-    
-    @Override
-    public void init(ServletConfig config) throws ServletException {
-        super.init(config);
-
-        ServletContext context = config.getServletContext();
-        contextPath = context.getContextPath() + "/long_polling";
-        
-        CometEngine engine = CometEngine.getEngine();
-        CometContext cometContext = engine.register(contextPath);
-        cometContext.setExpirationDelay(5 * 30 * 1000);
-    }
-    
-    @Override
-    protected void doGet(HttpServletRequest req, HttpServletResponse res)
-    throws ServletException, IOException {
-        CometEngine engine = CometEngine.getEngine();
-        CometContext&lt;HttpServletResponse> context = 
engine.getCometContext(contextPath);
-        final int hash = context.addCometHandler(new CounterHandler(res, 
counter));
-    }
-
-    @Override
-    protected void doPost(HttpServletRequest req, HttpServletResponse res)
-    throws ServletException, IOException {
-        counter.incrementAndGet();
-        CometContext&lt;HttpServletResponse> context = 
CometEngine.getEngine().getCometContext(contextPath);
-        context.notify(null);
-        
-        PrintWriter writer = res.getWriter();
-        writer.write("success");
-        writer.flush();
-    }
-}</db:programlisting>
-      <db:para>The first request comes into doGet() which will create the 
CometHandler and add it to
-        the CometContext.  CometContext.addHandler() will suspend this 
request.  In the html for the
-        application, there's a link which executes a POST against the server 
which calls doPost().
-        Here, what we're doing is notifying the entire context of an event.  
This will cause
-        onEvent() to be called for each registered CometHandler.  That, as 
we've seen, will return
-        the counter value to the browser.  After this event is processed, 
the suspended requests
-        will be resumed and eventually terminated normally.  On the client 
side, once that GET
-        request is terminated, the javascript in the page will submit yet 
another GET request.  This
-        request is suspended again as describe above and the process can 
repeat indefinitely.  The
-        javascript needed for this is shown below:</db:para>
-      <db:programlisting>var counter = {
-      'poll' : function() {
-         new Ajax.Request('long_polling', {
-            method : 'GET',
-            onSuccess : counter.update
-         });
-      },
-      'increment' : function() {
-         new Ajax.Request('long_polling', {
-            method : 'POST'
-         });
-      },
-      'update' : function(req, json) {
-         $('count').innerHTML = json.counter;
-         counter.poll();
-      }
-}
-</db:programlisting>
-      <db:para>There are three basic functions involved in this application: 
 poll, increment, and update.<orderedlist>
-          <listitem>
-            <para>poll:  This function makes the GET requests to the server 
which are ultimately
-              suspended.  On a successful return from that call, update() is 
called...</para>
-          </listitem>
-          <listitem>
-            <para>update: This where the page is updated with the results 
from the server.  This
-              function takes the json object returned from the servlet and 
updates the display
-              accordingly.  The last thing it does is call back to poll() 
which initiates another
-              suspended request.</para>
-          </listitem>
-          <listitem>
-            <para>increment: This function is called whenever you click the 
link in the application.
-              It initiates the POST request that causes the server state to 
change and results in
-              the client side updates.  There is no handling of the response 
from this
-              request.</para>
-          </listitem>
-        </orderedlist></db:para>
-      <db:para>That's all it takes for a simple long polling based 
application.  Long polling
-        applications are well suited for handling low frequency events from 
the server such as
-        updates to pages in response to user actions.  Because of the need 
for renegotiation of
-        subsequent requests after each event, applications with high event 
frequency are best served
-        by streaming applications as we'll see below.  Long polling, 
however, is more proxy friendly
-        in many cases.  Many proxies balk at seeing long-lived connections 
and might close them
-        according to various security or connection timeout 
policies.</db:para>
-    </section>
-        <section>
-            <db:title>Streaming</db:title>
-            <db:para>TBD</db:para>
-        </section>
-  </section>
-</chapter>--- a/documentation/src/docbkx/content/core-config.xml
+++ /dev/null
@@ -1,448 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-
-    Copyright (c) 2011-2012 Oracle and/or its affiliates. All rights 
reserved.
-
-    The contents of this file are subject to the terms of either the GNU
-    General Public License Version 2 only ("GPL") or the Common Development
-    and Distribution License("CDDL") (collectively, the "License").  You
-    may not use this file except in compliance with the License.  You can
-    obtain a copy of the License at
-    https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
-    or packager/legal/LICENSE.txt.  See the License for the specific
-    language governing permissions and limitations under the License.
-
-    When distributing the software, include this License Header Notice in 
each
-    file and include the License file at packager/legal/LICENSE.txt.
-
-    GPL Classpath Exception:
-    Oracle designates this particular file as subject to the "Classpath"
-    exception as provided by Oracle in the GPL Version 2 section of the 
License
-    file that accompanied this code.
-
-    Modifications:
-    If applicable, add the following below the License Header, with the 
fields
-    enclosed by brackets [] replaced by your own identifying information:
-    "Portions Copyright [year] [name of copyright owner]"
-
-    Contributor(s):
-    If you wish your version of this file to be governed by only the CDDL or
-    only the GPL Version 2, indicate your decision by adding "[Contributor]
-    elects to include this software in this distribution under the [CDDL or 
GPL
-    Version 2] license."  If you don't indicate a single choice of license, a
-    recipient has the option to distribute your version of this file under
-    either the CDDL, the GPL Version 2 or to extend the choice of license to
-    its licensees as provided above.  However, if you add GPL Version 2 code
-    and therefore, elected the GPL Version 2 license, then the option applies
-    only if the new code is made subject to such option by the copyright
-    holder.
-
--->
-<section version="5.0" xml:id="core-config"
-         xmlns="http://docbook.org/ns/docbook";
-         xmlns:xlink="http://www.w3.org/1999/xlink";
-         xmlns:xi="http://www.w3.org/2001/XInclude";
-         xmlns:svg="http://www.w3.org/2000/svg";
-         xmlns:m="http://www.w3.org/1998/Math/MathML";
-         xmlns:html="http://www.w3.org/1999/xhtml";
-         xmlns:db="http://docbook.org/ns/docbook";>
-  <title>Core Configuration</title>
-
-  <para>The primary points of configuration of the core framework are that of
-  the Transport instances and their associated thread pools. The ability to
-  configure both entities is possible via the NIOTransportBuilder.</para>
-
-  <section xml:id="transport-config">
-    <title>Transport Configuration</title>
-
-    <para>Just as there are concrete NIOTransport implementations for TCP and
-    UDP, so too are there two concrete NIOTransportBuilder implementations.
-    Each NIOTransportBuilder implementation exposes configurable features
-    unique to each transport. The following describes configuration 
properties
-    common to all NIOTransports and then describes the properties for the TCP
-    and UDP NIOTransport implementations.</para>
-
-    <table>
-      <title>NIOTransportBuilder Properties</title>
-
-      <tgroup cols="2">
-        <tbody>
-          <row>
-            <entry>workerThreadPoolConfig</entry>
-
-            <entry>This property exposes a ThreadPoolConfig instance that
-            allows configuration of the worker thread pool used by the
-            transport that will be constructed by this builder. Note:
-            depending on the IOStrategy being used, this value may be
-            null.</entry>
-          </row>
-
-          <row>
-            <entry>kernelThreadPoolConfig</entry>
-
-            <entry>This propery exposes a ThreadPoolConfig instance that
-            allows configuration of the kernel thread pool used by the
-            transport that will be constructed by this builder.</entry>
-          </row>
-
-          <row>
-            <entry>IOStrategy</entry>
-
-            <entry>Sets the IOStrategy that will be used by this transport.
-            Note that changing this value before the transport has been
-            started may have an impact on the return value of the
-            workerThreadPoolConfig property. If no value is explicitly set,
-            the WorkerThreadIOStrategy will be employed. See the section on
-            <link xlink:href="iostrategies.xml"
-            xml:id="ios001">IOStrategies</link> for specifics on each 
concrete
-            IOStrategy included with Grizzly @project.version@.</entry>
-          </row>
-
-          <row>
-            <entry>memoryManager</entry>
-
-            <entry>Sets the MemoryManager to be used by this transport. If no
-            value is explicitly set, the MemoryManager used will be the
-            NIOTransportBuilder.DEFAULT_MEMORY_MANAGER. See the section on
-            <link xlink:href="memory.xml" xml:id="mem001">Memory
-            Management</link> for specifics on the MemoryManager
-            system.</entry>
-          </row>
-
-          <row>
-            <entry>selectorHandler</entry>
-
-            <entry>Sets the SelectorHandler to be used by this transport. If
-            no value is explicitly set, the SelectorHandler used wil be the
-            NIOTransportBuilder.DEFAULT_SELECTOR_HANDLER. See the section on
-            <link xlink:href="transports-connections.xml"
-            xml:id="tc001">Transports and Connections</link> for specifics on
-            the SelectorHandler.</entry>
-          </row>
-
-          <row>
-            <entry>selectionKeyHandler</entry>
-
-            <entry>Sets the SelectionKeyHandler to be used by this transport.
-            If no value is explicitly set, the SelectionKeyHandler used will
-            be the NIOTransportBuilder.DEFAULT_SELECTION_KEY_HANDLER. See the
-            section on <link xlink:href="transports-connections.xml"
-            xml:id="tc002">Transports and Connections</link> for specifics on
-            the SelectionKeyHandler.</entry>
-          </row>
-
-          <row>
-            <entry>attributeBuilder</entry>
-
-            <entry>Sets the AttributeBuilder to be used by this transport. If
-            no value is explicitly set, the AttributeBuilder used will be the
-            NIOTransportBuilder.DEFAULT_ATTRIBUTE_BUILDER.</entry>
-          </row>
-
-          <row>
-            <entry>NIOChannelDistributor</entry>
-
-            <entry>Sets the NIOChannelDistributor used by this transport. See
-            the section on <link xlink:href="transports-connections.xml?"
-            xml:id="tc003">Transports and Connections</link> for specifics on
-            the NIOChannelDistributor.</entry>
-          </row>
-
-          <row>
-            <entry>processor</entry>
-
-            <entry>Sets the Processor used by this transport.</entry>
-          </row>
-
-          <row>
-            <entry>processorSelector</entry>
-
-            <entry>Sets the ProcessorSelector used by this transport.</entry>
-          </row>
-
-          <row>
-            <entry>readBufferSize</entry>
-
-            <entry>Sets the size of the Buffer that will be allocated,
-            per-connection, to read incoming data.</entry>
-          </row>
-
-          <row>
-            <entry>writeBuffersSize</entry>
-
-            <entry>Sets the size of the Buffer that will be applicated,
-            per-connection, to write outgoing data.</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </table>
-
-    <table>
-      <title>TCPNIOTransportBuilder Properties</title>
-
-      <tgroup cols="2">
-        <tbody>
-          <row>
-            <entry>clientSocketSoTimeout</entry>
-
-            <entry>Enable/disable SO_TIMEOUT with the specified timeout, in
-            milliseconds (client mode).</entry>
-          </row>
-
-          <row>
-            <entry>connectionTimeout</entry>
-
-            <entry>Time in milliseconds for how long establishing a 
connection
-            can take before the operation times out.</entry>
-          </row>
-
-          <row>
-            <entry>keepAlive</entry>
-
-            <entry>Enable/disable SO_KEEPALIVE.</entry>
-          </row>
-
-          <row>
-            <entry>linger</entry>
-
-            <entry>Enable/disable SO_LINGER with the specified linger time in
-            seconds. The maximum timeout value is platform specific. The
-            setting only affects socket close.</entry>
-          </row>
-
-          <row>
-            <entry>reuseAddress</entry>
-
-            <entry>Enable/disable the SO_REUSEADDR socket option. When a TCP
-            connection is closed the connection may remain in a timeout state
-            for a period of time after the connection is closed (typically
-            known as the TIME_WAIT state or 2MSL wait state). For 
applications
-            using a well known socket address or port it may not be possible
-            to bind a socket to the required SocketAddress if there is a
-            connection in the timeout state involving the socket address or
-            port.</entry>
-          </row>
-
-          <row>
-            <entry>serverConnectionBacklog</entry>
-
-            <entry>Specifies the maximum pending connection queue
-            length.</entry>
-          </row>
-
-          <row>
-            <entry>serverSocketSoTimeout</entry>
-
-            <entry>Enable/disable SO_TIMEOUT with the specified timeout, in
-            milliseconds (server mode).</entry>
-          </row>
-
-          <row>
-            <entry>tcpNoDelay</entry>
-
-            <entry>Enable/disable TCP_NODELAY (disable/enable Nagle's
-            algorithm).</entry>
-          </row>
-
-          <row>
-            <entry>temporarySelectorIO</entry>
-
-            <entry>Allows the specification of a TemporarySelectorIO instance
-            to aid in the simulation of blocking IO.</entry>
-          </row>
-
-          <row>
-            <entry>optimizedForMultiplexing</entry>
-
-            <entry>Controlls the behavior of writing to a connection. If
-            enabled, then all writes regardless if the current thread can
-            write directly to the connection or not, will be passed to the
-            async write queue. When the write actually occurs, the transport
-            will attempt to write as much content from the write queue as
-            possible. This option is disabled by default.</entry>
-          </row>
-
-          <row>
-            <entry>maxAsyncWriteQueueSizeInBytes</entry>
-
-            <entry>Specifies the size, in bytes, of the async write queue on 
a
-            per-connection basis. If not specified, the value will be
-            configured to be four times the size of the system's socket write
-            buffer size. Setting this value to -1 will allow the queue to be
-            unbounded.</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </table>
-
-    <table>
-      <title>UDPNIOTransportBuilder Properties</title>
-
-      <tgroup cols="2">
-        <tbody>
-          <row>
-            <entry>connectionTimeout</entry>
-
-            <entry>Time in milliseconds for how long establishing a 
connection
-            can take before the operation times out.</entry>
-          </row>
-
-          <row>
-            <entry>reuseAddress</entry>
-
-            <entry>Enable/disable the SO_REUSEADDR socket option. When a TCP
-            connection is closed the connection may remain in a timeout state
-            for a period of time after the connection is closed (typically
-            known as the TIME_WAIT state or 2MSL wait state). For 
applications
-            using a well known socket address or port it may not be possible
-            to bind a socket to the required SocketAddress if there is a
-            connection in the timeout state involving the socket address or
-            port.</entry>
-          </row>
-
-          <row>
-            <entry>temporarySelectorIO</entry>
-
-            <entry>Allows the specification of a TemporarySelectorIO instance
-            to aid in the simulation of blocking IO.</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </table>
-  </section>
-
-  <section xml:id="threadpool-config">
-    <title>Thread Pool Configuration</title>
-
-    <para>Grizzly's thread pool configuration is managed by the
-    ThreadPoolConfig object:</para>
-
-    <table>
-      <title>ThreadPoolConfig Properties</title>
-
-      <tgroup cols="2">
-        <tbody>
-          <row>
-            <entry>queue</entry>
-
-            <entry>The task Queue implementation to be used.</entry>
-          </row>
-
-          <row>
-            <entry>queueLimit</entry>
-
-            <entry>The maximum number of pending tasks that may be
-            queued.</entry>
-          </row>
-
-          <row>
-            <entry>threadFactory</entry>
-
-            <entry>The ThreadFactory that the pool will use to create new
-            Threads.</entry>
-          </row>
-
-          <row>
-            <entry>poolName</entry>
-
-            <entry>The name of this thread pool.</entry>
-          </row>
-
-          <row>
-            <entry>priority</entry>
-
-            <entry>The priority to be assigned to each thread. This will
-            override any priority assigned by the specified
-            ThreadFactory.</entry>
-          </row>
-
-          <row>
-            <entry>corePoolSize</entry>
-
-            <entry>The initial number of threads that will be present with 
the
-            thread pool is created.</entry>
-          </row>
-
-          <row>
-            <entry>maxPoolSize</entry>
-
-            <entry>The maximum number threads that may be maintained by this
-            thread pool.</entry>
-          </row>
-
-          <row>
-            <entry>keepAliveTime</entry>
-
-            <entry>The maximum time a thread may be allowed to run. Custom
-            time units can be used.</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </table>
-
-    <para>The thread pool configuration is fairly straight forward. However,
-    it should be noted that Grizzly, internally, has several thread pool
-    implementations: SyncThreadPool, FixedThreadPool, and
-    QueueLimitedThreadPool. Which implementation is chosen is based on the
-    configuration. The following sections describe each of the thread pool
-    implementations.</para>
-
-    <section>
-      <title>FixedThreadPool</title>
-
-      <para>This pool will be selected when the queueLimit property is less
-      than zero, and the max and core pool sizes are the same. The
-      FixedThreadPool has no synchronization when executing tasks, so it
-      offers better performance.</para>
-    </section>
-
-    <section>
-      <title>QueueLimitedThreadPool</title>
-
-      <para>This pool will be selected when the queueLimit property is 
greater
-      than zero, and the max and core pool sizes are the same. The
-      QueueLimitedThreadPool is an extension of the FixedThreadPool, so if
-      offers the same benefits of the FixedThreadPool without having an
-      unbounded task queue.</para>
-    </section>
-
-    <section>
-      <title>SyncThreadPool</title>
-
-      <para>This pool will be selected when none of the criteria for the 
other
-      thread pools apply. This thread pool does have synchronization to have
-      precise control over the decision of thread creation.</para>
-    </section>
-  </section>
-
-  <section>
-    <title>Examples</title>
-
-    <para>Here are some examples of using the TCPNIOTransportBuilder to
-    configure the Transport and/or thread pool.</para>
-
-    <programlisting language="java" xml:space="preserve">final 
TCPNIOTransportBuilder builder = TCPNIOTranportBuilder.newInstance(); 
-final TCPNIOTransport transport = builder.build(); </programlisting>
-
-    <para>Creates a new TCPNIOTransport using all default configuration
-    values.</para>
-
-    <programlisting language="java">final TCPNIOTransportBuilder builder = 
TCPNIOTransportBuilder.newInstance(); 
-final TCPNIOTransport transport = 
builder.setIOStrategy(SameThreadIOStrategy.getInstance()).setTcpNoDelay(true).build();
     </programlisting>
-
-    <para>Creates a new TCPNIOTransport instance using the
-    SameThreadIOStrategy, and tcp-no-delay set to true. Note that
-    configuration calls can be chained.</para>
-
-    <programlisting language="java">final TCPNIOTransportBuilder builder = 
TCPNIOTransportBuilder.newInstance(); 
-final ThreadPoolConfig config = builder.getWorkerThreadPoolConfig(); 
-config.setCorePoolSize(5).setMaxPoolSize(5).setQueueLimit(-1); 
-final TCPNIOTransport transport = builder.build(); </programlisting>
-
-    <para>This example will configure the TCPNIOTransport to use the
-    FixedThreadPool implementation due to the fact that there is no queue
-    limit and the core and max pool sizes are the same.</para>
-  </section>
-</section>--- a/documentation/src/docbkx/content/coreframework-samples.xml
+++ /dev/null
@@ -1,261 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-
-    Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
-
-    The contents of this file are subject to the terms of either the GNU
-    General Public License Version 2 only ("GPL") or the Common Development
-    and Distribution License("CDDL") (collectively, the "License").  You
-    may not use this file except in compliance with the License.  You can
-    obtain a copy of the License at
-    https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
-    or packager/legal/LICENSE.txt.  See the License for the specific
-    language governing permissions and limitations under the License.
-
-    When distributing the software, include this License Header Notice in 
each
-    file and include the License file at packager/legal/LICENSE.txt.
-
-    GPL Classpath Exception:
-    Oracle designates this particular file as subject to the "Classpath"
-    exception as provided by Oracle in the GPL Version 2 section of the 
License
-    file that accompanied this code.
-
-    Modifications:
-    If applicable, add the following below the License Header, with the 
fields
-    enclosed by brackets [] replaced by your own identifying information:
-    "Portions Copyright [year] [name of copyright owner]"
-
-    Contributor(s):
-    If you wish your version of this file to be governed by only the CDDL or
-    only the GPL Version 2, indicate your decision by adding "[Contributor]
-    elects to include this software in this distribution under the [CDDL or 
GPL
-    Version 2] license."  If you don't indicate a single choice of license, a
-    recipient has the option to distribute your version of this file under
-    either the CDDL, the GPL Version 2 or to extend the choice of license to
-    its licensees as provided above.  However, if you add GPL Version 2 code
-    and therefore, elected the GPL Version 2 license, then the option applies
-    only if the new code is made subject to such option by the copyright
-    holder.
-
--->
-<section version="5.0" xml:id="coreframework-samples"
-         xmlns="http://docbook.org/ns/docbook";
-         xmlns:xlink="http://www.w3.org/1999/xlink";
-         xmlns:xi="http://www.w3.org/2001/XInclude";
-         xmlns:svg="http://www.w3.org/2000/svg";
-         xmlns:ns="http://docbook.org/ns/docbook";
-         xmlns:m="http://www.w3.org/1998/Math/MathML";
-         xmlns:html="http://www.w3.org/1999/xhtml";>
-  <title>Samples<
[truncated due to length]



[grizzly~git:85181155] [master] Remove documentation.

rlubke 05/22/2013
Terms of Use; Privacy Policy; Copyright ©2013-2016 (revision 20160708.bf2ac18)
 
 
Close
loading
Please Confirm
Close