Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Erdfelt2014-11-07 17:09:41 +0000
committerJoakim Erdfelt2014-11-07 17:09:41 +0000
commita1d8a7a121e47980120cadd2fe0ea73b364464a2 (patch)
treef474f11cfa3f4bc440cd87d1ac634b08ded8f6c5 /examples
parent9320e9e24af5df2ae3da108db69189c90f3e544a (diff)
downloadorg.eclipse.jetty.project-a1d8a7a121e47980120cadd2fe0ea73b364464a2.tar.gz
org.eclipse.jetty.project-a1d8a7a121e47980120cadd2fe0ea73b364464a2.tar.xz
org.eclipse.jetty.project-a1d8a7a121e47980120cadd2fe0ea73b364464a2.zip
Making embedded examples more consistent.
+ appearance (similar syntax on all examples) + declarations (if a variable is used, use it consistently across all of the examples) + line wrap at 80 columns (so that examples make sense when copy/pasted around for discussion. like github) + updating javadoc comments to be consistent
Diffstat (limited to 'examples')
-rw-r--r--examples/embedded/src/main/java/HelloWorld.java49
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/DumpServlet.java64
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServer.java39
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServerXml.java39
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/FastFileServer.java172
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServer.java5
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServerXml.java50
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloHandler.java64
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloServlet.java38
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java60
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java110
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyContexts.java33
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyHandlers.java118
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyServletContexts.java56
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java58
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneConnector.java29
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneContext.java40
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneHandler.java26
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java42
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContextJmxStats.java44
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebApp.java73
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java123
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/ProxyServer.java29
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/SecuredHelloHandler.java96
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithAnnotations.java84
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithJNDI.java142
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/SimplestServer.java30
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java42
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java106
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/SplitFileServer.java82
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketJsrServer.java34
-rw-r--r--examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketServer.java35
32 files changed, 1145 insertions, 867 deletions
diff --git a/examples/embedded/src/main/java/HelloWorld.java b/examples/embedded/src/main/java/HelloWorld.java
index a6c4568047..2061bf57f4 100644
--- a/examples/embedded/src/main/java/HelloWorld.java
+++ b/examples/embedded/src/main/java/HelloWorld.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
import java.io.IOException;
@@ -29,23 +29,30 @@ import org.eclipse.jetty.server.handler.AbstractHandler;
public class HelloWorld extends AbstractHandler
{
@Override
- public void handle(String target,
- Request baseRequest,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException
+ public void handle( String target,
+ Request baseRequest,
+ HttpServletRequest request,
+ HttpServletResponse response ) throws IOException,
+ ServletException
{
- response.setContentType("text/html;charset=utf-8");
+ // Declare response encoding and types
+ response.setContentType("text/html; charset=utf-8");
+
+ // Declare response status code
response.setStatus(HttpServletResponse.SC_OK);
- baseRequest.setHandled(true);
+
+ // Write back response
response.getWriter().println("<h1>Hello World</h1>");
+
+ // Inform jetty that this request has now been handled
+ baseRequest.setHandled(true);
}
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
server.setHandler(new HelloWorld());
-
+
server.start();
server.join();
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/DumpServlet.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/DumpServlet.java
index 6f26857357..aa528134e8 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/DumpServlet.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/DumpServlet.java
@@ -1,24 +1,25 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
import java.io.IOException;
+import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@@ -28,26 +29,31 @@ import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class DumpServlet extends HttpServlet
{
- public DumpServlet()
- {
- }
-
@Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+ protected void doGet( HttpServletRequest request,
+ HttpServletResponse response ) throws ServletException,
+ IOException
{
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
- response.getWriter().println("<h1>DumpServlet</h1><pre>");
- response.getWriter().println("requestURI=" + request.getRequestURI());
- response.getWriter().println("contextPath=" + request.getContextPath());
- response.getWriter().println("servletPath=" + request.getServletPath());
- response.getWriter().println("pathInfo=" + request.getPathInfo());
- response.getWriter().println("session=" + request.getSession(true).getId());
-
- String r=request.getParameter("resource");
- if (r!=null)
- response.getWriter().println("resource("+r+")=" + getServletContext().getResource(r));
-
- response.getWriter().println("</pre>");
+
+ PrintWriter out = response.getWriter();
+
+ out.println("<h1>DumpServlet</h1>");
+ out.println("<pre>");
+ out.println("requestURI=" + request.getRequestURI());
+ out.println("contextPath=" + request.getContextPath());
+ out.println("servletPath=" + request.getServletPath());
+ out.println("pathInfo=" + request.getPathInfo());
+ out.println("session=" + request.getSession(true).getId());
+
+ String r = request.getParameter("resource");
+ if (r != null)
+ {
+ out.println("resource(" + r + ")="
+ + getServletContext().getResource(r));
+ }
+
+ out.println("</pre>");
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServer.java
index 9b488db47b..bbe60329a1 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServer.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -25,24 +25,23 @@ import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.util.thread.QueuedThreadPool;
public class ExampleServer
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server();
- ServerConnector connector=new ServerConnector(server);
+ ServerConnector connector = new ServerConnector(server);
connector.setPort(8080);
- server.setConnectors(new Connector[]{connector});
-
+ server.setConnectors(new Connector[] { connector });
+
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/hello");
- context.addServlet(HelloServlet.class,"/");
-
+ context.addServlet(HelloServlet.class, "/");
+
HandlerCollection handlers = new HandlerCollection();
- handlers.setHandlers(new Handler[]{context,new DefaultHandler()});
+ handlers.setHandlers(new Handler[] { context, new DefaultHandler() });
server.setHandler(handlers);
server.start();
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServerXml.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServerXml.java
index 91fdaa51f5..fc89ed4b5e 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServerXml.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ExampleServerXml.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -21,11 +21,20 @@ package org.eclipse.jetty.embedded;
import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.xml.XmlConfiguration;
+/**
+ * Configures and Starts a Jetty server from an XML declaration.
+ * <p>
+ * See <a href=
+ * "http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/examples/embedded/src/main/resources/exampleserver.xml"
+ * >exampleserver.xml</a>
+ * </p>
+ */
public class ExampleServerXml
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- Resource fileserver_xml = Resource.newSystemResource("exampleserver.xml");
- XmlConfiguration.main(fileserver_xml.getFile().getAbsolutePath());
+ // Find Jetty XML (in classpath) that configures and starts Server.
+ Resource serverXml = Resource.newSystemResource("exampleserver.xml");
+ XmlConfiguration.main(serverXml.getFile().getAbsolutePath());
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FastFileServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FastFileServer.java
index 5bbbaf872b..c6f66d1b78 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FastFileServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FastFileServer.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -39,31 +39,32 @@ import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerList;
-import org.eclipse.jetty.server.handler.ResourceHandler;
-import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.util.Callback;
import org.eclipse.jetty.util.URIUtil;
import org.eclipse.jetty.util.resource.Resource;
-/* ------------------------------------------------------------ */
-/** Fast FileServer.
- *
- * <p>This example shows how to use the Jetty APIs for sending static
- * as fast as possible using various strategies for small, medium and
- * large content.</p>
- * <p>The Jetty {@link DefaultServlet} does all this and more, and to
- * a lesser extent so does the {@link ResourceHandler}, so unless you
- * have exceptional circumstances it is best to use those classes for
- * static content</p>
+/**
+ * Fast FileServer.
+ * <p>
+ * This example shows how to use the Jetty APIs for sending static as fast as
+ * possible using various strategies for small, medium and large content.
+ * </p>
+ * <p>
+ * The Jetty {@link DefaultServlet} does all this and more, and to a lesser
+ * extent so does the {@link ResourceHandler}, so unless you have exceptional
+ * circumstances it is best to use those classes for static content
+ * </p>
*/
public class FastFileServer
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
-
+
HandlerList handlers = new HandlerList();
- handlers.setHandlers(new Handler[] { new FastFileHandler(new File(".")), new DefaultHandler() });
+ handlers.setHandlers(new Handler[] {
+ new FastFileHandler(new File(System.getProperty("user.dir"))),
+ new DefaultHandler() });
server.setHandler(handlers);
server.start();
@@ -72,65 +73,74 @@ public class FastFileServer
static class FastFileHandler extends AbstractHandler
{
- private final MimeTypes _mimeTypes = new MimeTypes();
- private final File _dir;
-
- FastFileHandler(File dir)
+ private final MimeTypes mimeTypes = new MimeTypes();
+ private final File dir;
+
+ private FastFileHandler( File dir )
{
- _dir=dir;
+ this.dir = dir;
}
-
+
@Override
- public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
+ public void handle( String target,
+ Request baseRequest,
+ HttpServletRequest request,
+ HttpServletResponse response ) throws IOException,
+ ServletException
{
- // define small medium and large.
- // This should be turned for your content, JVM and OS, but we will huge HTTP response buffer size as a measure
- final int SMALL=response.getBufferSize();
- final int MEDIUM=8*SMALL;
-
-
+ // define small medium and large.
+ // This should be turned for your content, JVM and OS, but we will
+ // huge HTTP response buffer size as a measure
+ final int SMALL = response.getBufferSize();
+ final int MEDIUM = 8 * SMALL;
+
// What file to serve?
- final File file = new File(_dir,request.getPathInfo());
-
+ final File file = new File(this.dir, request.getPathInfo());
+
// Only handle existing files
if (!file.exists())
return;
// we will handle this request
baseRequest.setHandled(true);
-
+
// Handle directories
if (file.isDirectory())
{
if (!request.getPathInfo().endsWith(URIUtil.SLASH))
{
- response.sendRedirect(response.encodeRedirectURL(URIUtil.addPaths(request.getRequestURI(),URIUtil.SLASH)));
+ response.sendRedirect(response.encodeRedirectURL(URIUtil
+ .addPaths(request.getRequestURI(), URIUtil.SLASH)));
return;
}
- String listing = Resource.newResource(file).getListHTML(request.getRequestURI(),request.getPathInfo().lastIndexOf("/") > 0);
- response.setContentType("text/html; charset=UTF-8");
+ String listing = Resource.newResource(file).getListHTML(
+ request.getRequestURI(),
+ request.getPathInfo().lastIndexOf("/") > 0);
+ response.setContentType("text/html; charset=utf-8");
response.getWriter().println(listing);
return;
}
+
+ // Set some content headers.
- // Set some content headers
- // Jetty DefaultServlet will cache formatted date strings, but we will reformat for each request here
- response.setDateHeader("Last-Modified",file.lastModified());
- response.setDateHeader("Content-Length",file.length());
- response.setContentType(_mimeTypes.getMimeByExtension(file.getName()));
-
-
-
+ // Jetty DefaultServlet will cache formatted date strings, but we
+ // will reformat for each request here
+ response.setDateHeader("Last-Modified", file.lastModified());
+ response.setDateHeader("Content-Length", file.length());
+ response.setContentType(mimeTypes.getMimeByExtension(file.getName()));
+
// send "small" files blocking directly from an input stream
- if (file.length()<SMALL)
+ if (file.length() < SMALL)
{
// need to caste to Jetty output stream for best API
- ((HttpOutput)response.getOutputStream()).sendContent(FileChannel.open(file.toPath(),StandardOpenOption.READ));
+ ((HttpOutput) response.getOutputStream())
+ .sendContent(FileChannel.open(file.toPath(),
+ StandardOpenOption.READ));
return;
}
-
-
- // send not "small" files asynchronously so we don't hold threads if the client is slow
+
+ // send not "small" files asynchronously so we don't hold threads if
+ // the client is slow
final AsyncContext async = request.startAsync();
Callback completionCB = new Callback()
{
@@ -142,41 +152,43 @@ public class FastFileServer
}
@Override
- public void failed(Throwable x)
+ public void failed( Throwable x )
{
// log error and complete async response;
x.printStackTrace();
async.complete();
}
};
-
-
-
+
// send "medium" files from an input stream
- if (file.length()<MEDIUM)
+ if (file.length() < MEDIUM)
{
// the file channel is closed by the async send
- ((HttpOutput)response.getOutputStream()).sendContent(FileChannel.open(file.toPath(),StandardOpenOption.READ),completionCB);
+ ((HttpOutput) response.getOutputStream())
+ .sendContent(FileChannel.open(file.toPath(),
+ StandardOpenOption.READ), completionCB);
return;
}
-
-
- // for "large" files get the file mapped buffer to send
- // Typically the resulting buffer should be cached as allocating kernel memory
- // can be hard to GC on some JVMs. But for this example we will create a new buffer per file
+
+ // for "large" files get the file mapped buffer to send Typically
+ // the resulting buffer should be cached as allocating kernel memory
+ // can be hard to GC on some JVMs. But for this example we will
+ // create a new buffer per file
ByteBuffer buffer;
- try (RandomAccessFile raf = new RandomAccessFile(file,"r");)
+ try ( RandomAccessFile raf = new RandomAccessFile(file, "r"); )
{
- buffer=raf.getChannel().map(MapMode.READ_ONLY,0,raf.length());
+ buffer = raf.getChannel().map(MapMode.READ_ONLY, 0,
+ raf.length());
}
-
- // Assuming the file buffer might be shared cached version, so lets take our own view of it
- buffer=buffer.asReadOnlyBuffer();
-
- // send the content as a buffer with a callback to complete the async request
- // need to caste to Jetty output stream for best API
- ((HttpOutput)response.getOutputStream()).sendContent(buffer,completionCB);
- }
+ // Assuming the file buffer might be shared cached version, so lets
+ // take our own view of it
+ buffer = buffer.asReadOnlyBuffer();
+
+ // send the content as a buffer with a callback to complete the
+ // async request need to caste to Jetty output stream for best API
+ ((HttpOutput) response.getOutputStream()).sendContent(buffer,
+ completionCB);
+ }
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServer.java
index 79e72b5cc1..c5d5f4e765 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServer.java
@@ -24,8 +24,8 @@ import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
-/* ------------------------------------------------------------ */
-/** Simple Jetty FileServer.
+/**
+ * Simple Jetty FileServer.
* This is a simple example of Jetty configured as a FileServer.
*/
public class FileServer
@@ -56,5 +56,4 @@ public class FileServer
server.start();
server.join();
}
-
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServerXml.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServerXml.java
index ed329ecfae..7b956a60e8 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServerXml.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServerXml.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -22,22 +22,26 @@ import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.xml.XmlConfiguration;
-
-/* ------------------------------------------------------------ */
-/** A Jetty FileServer.
- * This server is identical to {@link FileServer}, except that it
- * is configured via an {@link XmlConfiguration} config file that
- * does the identical work.
+/**
+ * A Jetty FileServer.
+ * <p>
+ * This server is identical to {@link FileServer}, except that it is configured
+ * via an {@link XmlConfiguration} config file that does the identical work.
+ * </p>
* <p>
- * See <a href="http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/example-jetty-embedded/src/main/resources/fileserver.xml">fileserver.xml</a>
+ * See <a href=
+ * "http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/examples/embedded/src/main/resources/fileserver.xml"
+ * >fileserver.xml</a>
+ * </p>
*/
public class FileServerXml
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- Resource fileserver_xml = Resource.newSystemResource("fileserver.xml");
- XmlConfiguration configuration = new XmlConfiguration(fileserver_xml.getInputStream());
- Server server = (Server)configuration.configure();
+ Resource fileserverXml = Resource.newSystemResource("fileserver.xml");
+ XmlConfiguration configuration = new XmlConfiguration(
+ fileserverXml.getInputStream());
+ Server server = (Server) configuration.configure();
server.start();
server.join();
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloHandler.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloHandler.java
index d98e3c36a8..a56bdf60d7 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloHandler.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloHandler.java
@@ -1,24 +1,25 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
import java.io.IOException;
+import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -29,35 +30,42 @@ import org.eclipse.jetty.server.handler.AbstractHandler;
public class HelloHandler extends AbstractHandler
{
- final String _greeting;
- final String _body;
+ final String greeting;
+ final String body;
public HelloHandler()
{
- _greeting="Hello World";
- _body=null;
+ this("Hello World");
}
- public HelloHandler(String greeting)
+ public HelloHandler( String greeting )
{
- _greeting=greeting;
- _body=null;
+ this(greeting, null);
}
- public HelloHandler(String greeting,String body)
+ public HelloHandler( String greeting, String body )
{
- _greeting=greeting;
- _body=body;
+ this.greeting = greeting;
+ this.body = body;
}
- public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
+ public void handle( String target,
+ Request baseRequest,
+ HttpServletRequest request,
+ HttpServletResponse response ) throws IOException,
+ ServletException
{
- response.setContentType("text/html;charset=utf-8");
+ response.setContentType("text/html; charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
- baseRequest.setHandled(true);
- response.getWriter().println("<h1>"+_greeting+"</h1>");
- if (_body!=null)
- response.getWriter().println(_body);
+ PrintWriter out = response.getWriter();
+
+ out.println("<h1>" + greeting + "</h1>");
+ if (body != null)
+ {
+ out.println(body);
+ }
+
+ baseRequest.setHandled(true);
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloServlet.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloServlet.java
index d0a595fc07..4b95e7cadc 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloServlet.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/HelloServlet.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -28,22 +28,26 @@ import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class HelloServlet extends HttpServlet
{
- String greeting = "Hello";
+ final String greeting;
public HelloServlet()
{
+ this("Hello");
}
- public HelloServlet(String hi)
+ public HelloServlet( String greeting )
{
- greeting = hi;
+ this.greeting = greeting;
}
@Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+ protected void doGet( HttpServletRequest request,
+ HttpServletResponse response ) throws ServletException,
+ IOException
{
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
- response.getWriter().println("<h1>" + greeting + " from HelloServlet</h1>");
+ response.getWriter().println(
+ "<h1>" + greeting + " from HelloServlet</h1>");
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
index eb4d6223ba..d9e85c591a 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
@@ -18,6 +18,8 @@
package org.eclipse.jetty.embedded;
+import java.io.File;
+import java.io.FileNotFoundException;
import java.lang.management.ManagementFactory;
import org.eclipse.jetty.deploy.DeploymentManager;
@@ -34,7 +36,6 @@ import org.eclipse.jetty.server.SecureRequestCustomizer;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.SslConnectionFactory;
-import org.eclipse.jetty.server.handler.AsyncDelayHandler;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
@@ -45,14 +46,36 @@ import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.eclipse.jetty.util.thread.ScheduledExecutorScheduler;
import org.eclipse.jetty.webapp.Configuration;
+/**
+ * Starts the Jetty Distribution's demo-base directory using entirely
+ * embedded jetty techniques.
+ */
public class LikeJettyXml
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- String jetty_home = System.getProperty("jetty.home","../../jetty-distribution/target/distribution");
- String jetty_base = System.getProperty("jetty.home","../../jetty-distribution/target/distribution/demo-base");
- System.setProperty("jetty.home",jetty_home);
- System.setProperty("jetty.base",jetty_base);
+ // Path to as-built jetty-distribution directory
+ String jettyHomeBuild = "../../jetty-distribution/target/distribution";
+
+ // Find jetty home and base directories
+ String homePath = System.getProperty("jetty.home", jettyHomeBuild);
+ File homeDir = new File(homePath);
+ if (!homeDir.exists())
+ {
+ throw new FileNotFoundException(homeDir.getAbsolutePath());
+ }
+ String basePath = System.getProperty("jetty.base", homeDir + "/demo-base");
+ File baseDir = new File(basePath);
+ if(!baseDir.exists())
+ {
+ throw new FileNotFoundException(baseDir.getAbsolutePath());
+ }
+
+ // Configure jetty.home and jetty.base system properties
+ String jetty_home = homeDir.getAbsolutePath();
+ String jetty_base = baseDir.getAbsolutePath();
+ System.setProperty("jetty.home", jetty_home);
+ System.setProperty("jetty.base", jetty_base);
// === jetty.xml ===
@@ -88,14 +111,15 @@ public class LikeJettyXml
server.setDumpBeforeStop(false);
server.setStopAtShutdown(true);
-
// === jetty-jmx.xml ===
- MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
+ MBeanContainer mbContainer = new MBeanContainer(
+ ManagementFactory.getPlatformMBeanServer());
server.addBean(mbContainer);
// === jetty-http.xml ===
- ServerConnector http = new ServerConnector(server,new HttpConnectionFactory(http_config));
+ ServerConnector http = new ServerConnector(server,
+ new HttpConnectionFactory(http_config));
http.setPort(8080);
http.setIdleTimeout(30000);
server.addConnector(http);
@@ -109,10 +133,8 @@ public class LikeJettyXml
sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
sslContextFactory.setTrustStorePath(jetty_home + "/etc/keystore");
sslContextFactory.setTrustStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
- sslContextFactory.setExcludeCipherSuites(
- "SSL_RSA_WITH_DES_CBC_SHA",
- "SSL_DHE_RSA_WITH_DES_CBC_SHA",
- "SSL_DHE_DSS_WITH_DES_CBC_SHA",
+ sslContextFactory.setExcludeCipherSuites("SSL_RSA_WITH_DES_CBC_SHA",
+ "SSL_DHE_RSA_WITH_DES_CBC_SHA", "SSL_DHE_DSS_WITH_DES_CBC_SHA",
"SSL_RSA_EXPORT_WITH_RC4_40_MD5",
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
@@ -133,7 +155,9 @@ public class LikeJettyXml
// === jetty-deploy.xml ===
DeploymentManager deployer = new DeploymentManager();
deployer.setContexts(contexts);
- deployer.setContextAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",".*/servlet-api-[^/]*\\.jar$");
+ deployer.setContextAttribute(
+ "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
+ ".*/servlet-api-[^/]*\\.jar$");
WebAppProvider webapp_provider = new WebAppProvider();
webapp_provider.setMonitoredDirName(jetty_base + "/webapps");
@@ -146,9 +170,10 @@ public class LikeJettyXml
server.addBean(deployer);
// === setup jetty plus ==
- Configuration.ClassList.setServerDefault(server)
- .addAfter("org.eclipse.jetty.webapp.FragmentConfiguration",
- "org.eclipse.jetty.plus.webapp.EnvConfiguration","org.eclipse.jetty.plus.webapp.PlusConfiguration");
+ Configuration.ClassList.setServerDefault(server).addAfter(
+ "org.eclipse.jetty.webapp.FragmentConfiguration",
+ "org.eclipse.jetty.plus.webapp.EnvConfiguration",
+ "org.eclipse.jetty.plus.webapp.PlusConfiguration");
// === jetty-stats.xml ===
StatisticsHandler stats = new StatisticsHandler();
@@ -188,6 +213,7 @@ public class LikeJettyXml
login.setRefreshInterval(0);
server.addBean(login);
+
// Start the server
server.start();
server.join();
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java
index 78e595909b..96fb2fd706 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java
@@ -1,23 +1,26 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
+import java.io.File;
+import java.io.FileNotFoundException;
+
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.HttpConfiguration;
import org.eclipse.jetty.server.HttpConnectionFactory;
@@ -27,70 +30,89 @@ import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.SslConnectionFactory;
import org.eclipse.jetty.util.ssl.SslContextFactory;
-/* ------------------------------------------------------------ */
/**
* A Jetty server with multiple connectors.
*/
public class ManyConnectors
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- // Since this example shows off SSL configuration, we need a keystore with the appropriate key. These two
- // lines are purely a hack to get access to a keystore that we use in many unit tests and should probably be
- // a direct path to your own keystore (used on line 29).
- String jetty_home = System.getProperty("jetty.home","../../jetty-distribution/target/distribution");
- System.setProperty("jetty.home", jetty_home);
+ // Since this example shows off SSL configuration, we need a keystore
+ // with the appropriate key. These lookup of jetty.home is purely a hack
+ // to get access to a keystore that we use in many unit tests and should
+ // probably be a direct path to your own keystore.
+
+ String jettyDistKeystore = "../../jetty-distribution/target/distribution/etc/keystore";
+ String keystorePath = System.getProperty(
+ "example.keystore", jettyDistKeystore);
+ File keystoreFile = new File(keystorePath);
+ if (!keystoreFile.exists())
+ {
+ throw new FileNotFoundException(keystoreFile.getAbsolutePath());
+ }
- // Create a basic jetty server object without declaring the port. Since we are configuring connectors
- // directly we'll be setting ports on those connectors.
+ // Create a basic jetty server object without declaring the port. Since
+ // we are configuring connectors directly we'll be setting ports on
+ // those connectors.
Server server = new Server();
// HTTP Configuration
- // HttpConfiguration is a collection of configuration information appropriate for http and https. The default
- // scheme for http is <code>http</code> of course, as the default for secured http is <code>https</code> but
- // we show setting the scheme to show it can be done. The port for secured communication is also set here.
+ // HttpConfiguration is a collection of configuration information
+ // appropriate for http and https. The default scheme for http is
+ // <code>http</code> of course, as the default for secured http is
+ // <code>https</code> but we show setting the scheme to show it can be
+ // done. The port for secured communication is also set here.
HttpConfiguration http_config = new HttpConfiguration();
http_config.setSecureScheme("https");
http_config.setSecurePort(8443);
http_config.setOutputBufferSize(32768);
// HTTP connector
- // The first server connector we create is the one for http, passing in the http configuration we configured
- // above so it can get things like the output buffer size, etc. We also set the port (8080) and configure an
- // idle timeout.
- ServerConnector http = new ServerConnector(server,new HttpConnectionFactory(http_config));
+ // The first server connector we create is the one for http, passing in
+ // the http configuration we configured above so it can get things like
+ // the output buffer size, etc. We also set the port (8080) and
+ // configure an idle timeout.
+ ServerConnector http = new ServerConnector(server,
+ new HttpConnectionFactory(http_config));
http.setPort(8080);
http.setIdleTimeout(30000);
-
+
// SSL Context Factory for HTTPS and SPDY
- // SSL requires a certificate so we configure a factory for ssl contents with information pointing to what
- // keystore the ssl connection needs to know about. Much more configuration is available the ssl context,
- // including things like choosing the particular certificate out of a keystore to be used.
+ // SSL requires a certificate so we configure a factory for ssl contents
+ // with information pointing to what keystore the ssl connection needs
+ // to know about. Much more configuration is available the ssl context,
+ // including things like choosing the particular certificate out of a
+ // keystore to be used.
SslContextFactory sslContextFactory = new SslContextFactory();
- sslContextFactory.setKeyStorePath(jetty_home + "/etc/keystore");
+ sslContextFactory.setKeyStorePath(keystoreFile.getAbsolutePath());
sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
// HTTPS Configuration
- // A new HttpConfiguration object is needed for the next connector and you can pass the old one as an
- // argument to effectively clone the contents. On this HttpConfiguration object we add a
- // SecureRequestCustomizer which is how a new connector is able to resolve the https connection before
- // handing control over to the Jetty Server.
+ // A new HttpConfiguration object is needed for the next connector and
+ // you can pass the old one as an argument to effectively clone the
+ // contents. On this HttpConfiguration object we add a
+ // SecureRequestCustomizer which is how a new connector is able to
+ // resolve the https connection before handing control over to the Jetty
+ // Server.
HttpConfiguration https_config = new HttpConfiguration(http_config);
https_config.addCustomizer(new SecureRequestCustomizer());
// HTTPS connector
- // We create a second ServerConnector, passing in the http configuration we just made along with the
- // previously created ssl context factory. Next we set the port and a longer idle timeout.
+ // We create a second ServerConnector, passing in the http configuration
+ // we just made along with the previously created ssl context factory.
+ // Next we set the port and a longer idle timeout.
ServerConnector https = new ServerConnector(server,
- new SslConnectionFactory(sslContextFactory,"http/1.1"),
- new HttpConnectionFactory(https_config));
+ new SslConnectionFactory(sslContextFactory, "http/1.1"),
+ new HttpConnectionFactory(https_config));
https.setPort(8443);
https.setIdleTimeout(500000);
- // Here you see the server having multiple connectors registered with it, now requests can flow into the server
- // from both http and https urls to their respective ports and be processed accordingly by jetty. A simple
- // handler is also registered with the server so the example has something to pass requests off to.
+ // Here you see the server having multiple connectors registered with
+ // it, now requests can flow into the server from both http and https
+ // urls to their respective ports and be processed accordingly by jetty.
+ // A simple handler is also registered with the server so the example
+ // has something to pass requests off to.
// Set the connectors
server.setConnectors(new Connector[] { http, https });
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyContexts.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyContexts.java
index 5fb6da9fd7..efb6a2527a 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyContexts.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyContexts.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -25,7 +25,7 @@ import org.eclipse.jetty.server.handler.ContextHandlerCollection;
public class ManyContexts
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
@@ -35,16 +35,17 @@ public class ManyContexts
ContextHandler contextFR = new ContextHandler("/fr");
contextFR.setHandler(new HelloHandler("Bonjoir"));
-
+
ContextHandler contextIT = new ContextHandler("/it");
contextIT.setHandler(new HelloHandler("Bongiorno"));
ContextHandler contextV = new ContextHandler("/");
- contextV.setVirtualHosts(new String[]{ "127.0.0.2" });
+ contextV.setVirtualHosts(new String[] { "127.0.0.2" });
contextV.setHandler(new HelloHandler("Virtual Hello"));
ContextHandlerCollection contexts = new ContextHandlerCollection();
- contexts.setHandlers(new Handler[] { context, contextFR, contextIT, contextV });
+ contexts.setHandlers(new Handler[] { context, contextFR, contextIT,
+ contextV });
server.setHandler(contexts);
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyHandlers.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyHandlers.java
index 32f199fa4a..7e6d2edee6 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyHandlers.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyHandlers.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -38,7 +38,6 @@ import org.eclipse.jetty.server.handler.HandlerWrapper;
import org.eclipse.jetty.server.handler.RequestLogHandler;
import org.eclipse.jetty.util.ajax.JSON;
-/* ------------------------------------------------------------ */
/**
* Frequently many handlers are combined together to handle different aspects of
* a request. A handler may:
@@ -49,7 +48,6 @@ import org.eclipse.jetty.util.ajax.JSON;
* <li>select another handler to pass the request to.
* <li>use business logic to decide to do one of the above.
* </ul>
- *
* Multiple handlers may be combined with:
* <ul>
* <li>{@link HandlerWrapper} which will nest one handler inside another. In
@@ -68,28 +66,60 @@ import org.eclipse.jetty.util.ajax.JSON;
*/
public class ManyHandlers
{
- public static void main(String[] args) throws Exception
+ /**
+ * Produce output that lists all of the request parameters
+ */
+ public static class ParamHandler extends AbstractHandler
+ {
+ public void handle( String target,
+ Request baseRequest,
+ HttpServletRequest request,
+ HttpServletResponse response ) throws IOException,
+ ServletException
+ {
+ Map<String, String[]> params = request.getParameterMap();
+ if (params.size() > 0)
+ {
+ response.setContentType("text/plain");
+ response.getWriter().println(JSON.toString(params));
+ baseRequest.setHandled(true);
+ }
+ }
+ }
+
+ /**
+ * Add a request attribute, but produce no output.
+ */
+ public static class WelcomeWrapHandler extends HandlerWrapper
+ {
+ @Override
+ public void handle( String target,
+ Request baseRequest,
+ HttpServletRequest request,
+ HttpServletResponse response ) throws IOException,
+ ServletException
+ {
+ request.setAttribute("welcome", "Hello");
+ super.handle(target, baseRequest, request, response);
+ }
+ }
+
+ public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
// create the handlers
Handler param = new ParamHandler();
- HandlerWrapper wrapper = new HandlerWrapper()
- {
- @Override
- public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException,
- ServletException
- {
- request.setAttribute("welcome","Hello");
- super.handle(target,baseRequest,request,response);
- }
- };
+ HandlerWrapper wrapper = new WelcomeWrapHandler();
Handler hello = new HelloHandler();
Handler dft = new DefaultHandler();
- RequestLogHandler log = new RequestLogHandler();
+ RequestLogHandler requestLog = new RequestLogHandler();
- // configure logs
- log.setRequestLog(new NCSARequestLog(File.createTempFile("demo","log").getAbsolutePath()));
+ // configure request logging
+ File requestLogFile = File.createTempFile("demo", "log");
+ NCSARequestLog ncsaLog = new NCSARequestLog(
+ requestLogFile.getAbsolutePath());
+ requestLog.setRequestLog(ncsaLog);
// create the handler collections
HandlerCollection handlers = new HandlerCollection();
@@ -97,28 +127,24 @@ public class ManyHandlers
// link them all together
wrapper.setHandler(hello);
- list.setHandlers(new Handler[]
- { param, wrapper, dft });
- handlers.setHandlers(new Handler[]
- { list, log });
+ list.setHandlers(new Handler[] { param, wrapper, dft });
+ handlers.setHandlers(new Handler[] { list, requestLog });
+
+ // Handler tree looks like the following
+ // <pre>
+ // Server
+ // + HandlerCollection
+ // . + HandlerList
+ // . | + param (ParamHandler)
+ // . | + wrapper (WelcomeWrapHandler)
+ // . | | \ hello (HelloHandler)
+ // . | \ dft (DefaultHandler)
+ // . \ requestLog (RequestLogHandler)
+ // </pre>
server.setHandler(handlers);
server.start();
server.join();
}
-
- public static class ParamHandler extends AbstractHandler
- {
- public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
- {
- Map<String,String[]> params = request.getParameterMap();
- if (params.size() > 0)
- {
- response.setContentType("text/plain");
- response.getWriter().println(JSON.toString(params));
- ((Request)request).setHandled(true);
- }
- }
- }
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyServletContexts.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyServletContexts.java
index 78456fca61..b7d48f9f71 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyServletContexts.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyServletContexts.java
@@ -1,24 +1,23 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
-
import java.lang.management.ManagementFactory;
import org.eclipse.jetty.jmx.MBeanContainer;
@@ -30,28 +29,35 @@ import org.eclipse.jetty.servlet.ServletHolder;
public class ManyServletContexts
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
// Setup JMX
- MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
- server.addBean(mbContainer,true);
+ MBeanContainer mbContainer = new MBeanContainer(
+ ManagementFactory.getPlatformMBeanServer());
+ server.addBean(mbContainer, true);
+ // Declare server handler collection
ContextHandlerCollection contexts = new ContextHandlerCollection();
server.setHandler(contexts);
- ServletContextHandler root = new ServletContextHandler(contexts,"/",ServletContextHandler.SESSIONS);
- root.addServlet(new ServletHolder(new HelloServlet("Hello")),"/");
- root.addServlet(new ServletHolder(new HelloServlet("Ciao")),"/it/*");
- root.addServlet(new ServletHolder(new HelloServlet("Bonjoir")),"/fr/*");
+ // Configure context "/" (root) for servlets
+ ServletContextHandler root = new ServletContextHandler(contexts, "/",
+ ServletContextHandler.SESSIONS);
+ // Add servlets to root context
+ root.addServlet(new ServletHolder(new HelloServlet("Hello")), "/");
+ root.addServlet(new ServletHolder(new HelloServlet("Ciao")), "/it/*");
+ root.addServlet(new ServletHolder(new HelloServlet("Bonjoir")), "/fr/*");
+
+ // Configure context "/other" for servlets
+ ServletContextHandler other = new ServletContextHandler(contexts,
+ "/other", ServletContextHandler.SESSIONS);
+ // Add servlets to /other context
+ other.addServlet(DefaultServlet.class.getCanonicalName(), "/");
+ other.addServlet(new ServletHolder(new HelloServlet("YO!")), "*.yo");
- ServletContextHandler other = new ServletContextHandler(contexts,"/other",ServletContextHandler.SESSIONS);
- other.addServlet(DefaultServlet.class.getCanonicalName(),"/");
- other.addServlet(new ServletHolder(new HelloServlet("YO!")),"*.yo");
-
server.start();
- server.dumpStdErr();
server.join();
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java
index c3c9ca2d0b..04b531a18d 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -30,27 +30,35 @@ import org.eclipse.jetty.servlet.ServletHandler;
public class MinimalServlets
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- // Create a basic jetty server object that will listen on port 8080. Note that if you set this to port 0
- // then a randomly available port will be assigned that you can either look in the logs for the port,
+ // Create a basic jetty server object that will listen on port 8080.
+ // Note that if you set this to port 0 then a randomly available port
+ // will be assigned that you can either look in the logs for the port,
// or programmatically obtain it for use in test cases.
Server server = new Server(8080);
- // The ServletHandler is a dead simple way to create a context handler that is backed by an instance of a
- // Servlet. This handler then needs to be registered with the Server object.
+ // The ServletHandler is a dead simple way to create a context handler
+ // that is backed by an instance of a Servlet.
+ // This handler then needs to be registered with the Server object.
ServletHandler handler = new ServletHandler();
server.setHandler(handler);
- // Passing in the class for the servlet allows jetty to instantite an instance of that servlet and mount it
- // on a given context path.
+ // Passing in the class for the Servlet allows jetty to instantiate an
+ // instance of that Servlet and mount it on a given context path.
- // !! This is a raw Servlet, not a servlet that has been configured through a web.xml or anything like that !!
+ // IMPORTANT:
+ // This is a raw Servlet, not a Servlet that has been configured
+ // through a web.xml @WebServlet annotation, or anything similar.
handler.addServletWithMapping(HelloServlet.class, "/*");
- // Start things up! By using the server.join() the server thread will join with the current thread.
- // See "http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join()" for more details.
+ // Start things up!
server.start();
+
+ // The use of server.join() the will make the current thread join and
+ // wait until the server is done executing.
+ // See
+ // http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#join()
server.join();
}
@@ -58,11 +66,13 @@ public class MinimalServlets
public static class HelloServlet extends HttpServlet
{
@Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+ protected void doGet( HttpServletRequest request,
+ HttpServletResponse response ) throws ServletException,
+ IOException
{
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
- response.getWriter().println("<h1>Hello SimpleServlet</h1>");
+ response.getWriter().println("<h1>Hello from HelloServlet</h1>");
}
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneConnector.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneConnector.java
index 5cab0a6720..efc84c00f3 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneConnector.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneConnector.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -21,13 +21,12 @@ package org.eclipse.jetty.embedded;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
-/* ------------------------------------------------------------ */
/**
* A Jetty server with one connectors.
*/
public class OneConnector
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
// The Server
Server server = new Server();
@@ -37,7 +36,7 @@ public class OneConnector
http.setHost("localhost");
http.setPort(8080);
http.setIdleTimeout(30000);
-
+
// Set the connector
server.addConnector(http);
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneContext.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneContext.java
index 698b486c5a..532dc4271a 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneContext.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneContext.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -23,18 +23,20 @@ import org.eclipse.jetty.server.handler.ContextHandler;
public class OneContext
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- Server server = new Server(8080);
+ Server server = new Server( 8080 );
+ // Add a single handler on context "/hello"
ContextHandler context = new ContextHandler();
- context.setContextPath("/");
- context.setResourceBase(".");
- context.setClassLoader(Thread.currentThread().getContextClassLoader());
- context.setHandler(new HelloHandler());
+ context.setContextPath( "/hello" );
+ context.setHandler( new HelloHandler() );
- server.setHandler(context);
+ // Can be accessed using http://localhost:8080/hello
+ server.setHandler( context );
+
+ // Start the server
server.start();
server.join();
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneHandler.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneHandler.java
index 45a47aca41..ed92d19613 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneHandler.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneHandler.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -22,7 +22,7 @@ import org.eclipse.jetty.server.Server;
public class OneHandler
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
server.setHandler(new HelloHandler());
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java
index 4284af9baa..f4b5b1ec9e 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java
@@ -1,40 +1,44 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
public class OneServletContext
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- Server server = new Server(8080);
+ Server server = new Server(8080);
- ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
+ ServletContextHandler context = new ServletContextHandler(
+ ServletContextHandler.SESSIONS);
context.setContextPath("/");
+ context.setResourceBase(System.getProperty("java.io.tmpdir"));
server.setHandler(context);
- context.addServlet(org.eclipse.jetty.servlet.DefaultServlet.class,"/");
- context.addServlet(new ServletHolder(new DumpServlet()),"/dump/*");
-
+ // Add dump servlet
+ context.addServlet(DumpServlet.class, "/dump/*");
+ // Add default servlet
+ context.addServlet(DefaultServlet.class, "/");
+
server.start();
server.join();
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContextJmxStats.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContextJmxStats.java
index 1b91198cb8..e7c4883ca7 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContextJmxStats.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContextJmxStats.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -23,25 +23,29 @@ import java.lang.management.ManagementFactory;
import org.eclipse.jetty.jmx.MBeanContainer;
import org.eclipse.jetty.server.ConnectorStatistics;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
public class OneServletContextJmxStats
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- Server server = new Server(8080);
- server.addBean(new MBeanContainer(ManagementFactory.getPlatformMBeanServer()));
+ Server server = new Server(8080);
+ // Add JMX tracking to Server
+ server.addBean(new MBeanContainer(ManagementFactory
+ .getPlatformMBeanServer()));
- ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
+ ServletContextHandler context = new ServletContextHandler(
+ ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
- context.addServlet(org.eclipse.jetty.servlet.DefaultServlet.class,"/");
- context.addServlet(new ServletHolder(new DumpServlet()),"/dump/*");
+ context.addServlet(DumpServlet.class, "/dump/*");
+ context.addServlet(DefaultServlet.class, "/");
+ // Add Connector Statistics tracking to all connectors
ConnectorStatistics.addToAllConnectors(server);
-
+
server.start();
server.join();
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebApp.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebApp.java
index cef3bb21de..0319e7fd5c 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebApp.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebApp.java
@@ -1,23 +1,24 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
+import java.io.File;
import java.lang.management.ManagementFactory;
import org.eclipse.jetty.jmx.MBeanContainer;
@@ -27,43 +28,55 @@ import org.eclipse.jetty.webapp.WebAppContext;
public class OneWebApp
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- // Create a basic jetty server object that will listen on port 8080. Note that if you set this to port 0 then
- // a randomly available port will be assigned that you can either look in the logs for the port,
+ // Create a basic jetty server object that will listen on port 8080.
+ // Note that if you set this to port 0 then a randomly available port
+ // will be assigned that you can either look in the logs for the port,
// or programmatically obtain it for use in test cases.
Server server = new Server(8080);
-
+
// Setup JMX
- MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
+ MBeanContainer mbContainer = new MBeanContainer(
+ ManagementFactory.getPlatformMBeanServer());
server.addBean(mbContainer);
- // The WebAppContext is the entity that controls the environment in which a web application lives and
- // breathes. In this example the context path is being set to "/" so it is suitable for serving root context
- // requests and then we see it setting the location of the war. A whole host of other configurations are
- // available, ranging from configuring to support annotation scanning in the webapp (through
+ // The WebAppContext is the entity that controls the environment in
+ // which a web application lives and breathes. In this example the
+ // context path is being set to "/" so it is suitable for serving root
+ // context requests and then we see it setting the location of the war.
+ // A whole host of other configurations are available, ranging from
+ // configuring to support annotation scanning in the webapp (through
// PlusConfiguration) to choosing where the webapp will unpack itself.
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
- webapp.setWar("../../jetty-distribution/target/distribution/demo-base/webapps/test.war");
+ File warFile = new File(
+ "../../jetty-distribution/target/distribution/demo-base/webapps/test.war");
+ webapp.setWar(warFile.getAbsolutePath());
- // A WebAppContext is a ContextHandler as well so it needs to be set to the server so it is aware of where to
- // send the appropriate requests.
+ // A WebAppContext is a ContextHandler as well so it needs to be set to
+ // the server so it is aware of where to send the appropriate requests.
server.setHandler(webapp);
// Configure a LoginService
- // Since this example is for our test webapp, we need to setup a LoginService so this shows how to create a
- // very simple hashmap based one. The name of the LoginService needs to correspond to what is configured in
- // the webapp's web.xml and since it has a lifecycle of its own we register it as a bean with the Jetty
- // server object so it can be started and stopped according to the lifecycle of the server itself.
+ // Since this example is for our test webapp, we need to setup a
+ // LoginService so this shows how to create a very simple hashmap based
+ // one. The name of the LoginService needs to correspond to what is
+ // configured in the webapp's web.xml and since it has a lifecycle of
+ // its own we register it as a bean with the Jetty server object so it
+ // can be started and stopped according to the lifecycle of the server
+ // itself.
HashLoginService loginService = new HashLoginService();
loginService.setName("Test Realm");
loginService.setConfig("src/test/resources/realm.properties");
server.addBean(loginService);
- // Start things up! By using the server.join() the server thread will join with the current thread.
- // See "http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join()" for more details.
+ // Start things up!
server.start();
+
+ // The use of server.join() the will make the current thread join and
+ // wait until the server is done executing.
+ // See http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#join()
server.join();
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java
index 90565d8a51..873654a151 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebAppWithJsp.java
@@ -1,80 +1,109 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
+import java.io.File;
import java.lang.management.ManagementFactory;
import org.eclipse.jetty.jmx.MBeanContainer;
import org.eclipse.jetty.security.HashLoginService;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.webapp.Configuration;
import org.eclipse.jetty.webapp.WebAppContext;
public class OneWebAppWithJsp
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- // Create a basic jetty server object that will listen on port 8080. Note that if you set this to port 0 then
- // a randomly available port will be assigned that you can either look in the logs for the port,
+ // Create a basic jetty server object that will listen on port 8080.
+ // Note that if you set this to port 0 then
+ // a randomly available port will be assigned that you can either look
+ // in the logs for the port,
// or programmatically obtain it for use in test cases.
- Server server = new Server(8080);
-
+ Server server = new Server( 8080 );
+
// Setup JMX
- MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
- server.addBean(mbContainer);
+ MBeanContainer mbContainer = new MBeanContainer(
+ ManagementFactory.getPlatformMBeanServer() );
+ server.addBean( mbContainer );
- // The WebAppContext is the entity that controls the environment in which a web application lives and
- // breathes. In this example the context path is being set to "/" so it is suitable for serving root context
- // requests and then we see it setting the location of the war. A whole host of other configurations are
- // available, ranging from configuring to support annotation scanning in the webapp (through
+ // The WebAppContext is the entity that controls the environment in
+ // which a web application lives and
+ // breathes. In this example the context path is being set to "/" so it
+ // is suitable for serving root context
+ // requests and then we see it setting the location of the war. A whole
+ // host of other configurations are
+ // available, ranging from configuring to support annotation scanning in
+ // the webapp (through
// PlusConfiguration) to choosing where the webapp will unpack itself.
WebAppContext webapp = new WebAppContext();
- webapp.setContextPath("/");
- webapp.setWar("../../jetty-distribution/target/distribution/demo-base/webapps/test.war");
-
- // This webapp will use jsps and jstl. We need to enable the AnnotationConfiguration in order to correctly
+ webapp.setContextPath( "/" );
+ File warFile = new File(
+ "../../jetty-distribution/target/distribution/demo-base/webapps/test.war" );
+ if (!warFile.exists())
+ {
+ throw new RuntimeException( "Unable to find WAR File: "
+ + warFile.getAbsolutePath() );
+ }
+ webapp.setWar( warFile.getAbsolutePath() );
+
+ // This webapp will use jsps and jstl. We need to enable the
+ // AnnotationConfiguration in order to correctly
// set up the jsp container
- org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server);
- classlist.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration", "org.eclipse.jetty.annotations.AnnotationConfiguration");
-
- // Set the ContainerIncludeJarPattern so that jetty examines these container-path jars for tlds, web-fragments etc.
- // If you omit the jar that contains the jstl .tlds, the jsp engine will scan for them instead.
- webapp.setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
- ".*/[^/]*servlet-api-[^/]*\\.jar$|.*/javax.servlet.jsp.jstl-.*\\.jar$|.*/[^/]*taglibs.*\\.jar$");
-
+ Configuration.ClassList classlist = Configuration.ClassList
+ .setServerDefault( server );
+ classlist.addBefore(
+ "org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
+ "org.eclipse.jetty.annotations.AnnotationConfiguration" );
- // A WebAppContext is a ContextHandler as well so it needs to be set to the server so it is aware of where to
+ // Set the ContainerIncludeJarPattern so that jetty examines these
+ // container-path jars for tlds, web-fragments etc.
+ // If you omit the jar that contains the jstl .tlds, the jsp engine will
+ // scan for them instead.
+ webapp.setAttribute(
+ "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
+ ".*/[^/]*servlet-api-[^/]*\\.jar$|.*/javax.servlet.jsp.jstl-.*\\.jar$|.*/[^/]*taglibs.*\\.jar$" );
+
+ // A WebAppContext is a ContextHandler as well so it needs to be set to
+ // the server so it is aware of where to
// send the appropriate requests.
- server.setHandler(webapp);
+ server.setHandler( webapp );
- // Configure a LoginService
- // Since this example is for our test webapp, we need to setup a LoginService so this shows how to create a
- // very simple hashmap based one. The name of the LoginService needs to correspond to what is configured in
- // the webapp's web.xml and since it has a lifecycle of its own we register it as a bean with the Jetty
- // server object so it can be started and stopped according to the lifecycle of the server itself.
+ // Configure a LoginService.
+ // Since this example is for our test webapp, we need to setup a
+ // LoginService so this shows how to create a very simple hashmap based
+ // one. The name of the LoginService needs to correspond to what is
+ // configured in the webapp's web.xml and since it has a lifecycle of
+ // its own we register it as a bean with the Jetty server object so it
+ // can be started and stopped according to the lifecycle of the server
+ // itself.
HashLoginService loginService = new HashLoginService();
- loginService.setName("Test Realm");
- loginService.setConfig("src/test/resources/realm.properties");
- server.addBean(loginService);
+ loginService.setName( "Test Realm" );
+ loginService.setConfig( "src/test/resources/realm.properties" );
+ server.addBean( loginService );
- // Start things up! By using the server.join() the server thread will join with the current thread.
- // See "http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join()" for more details.
+ // Start things up!
server.start();
+
+ // The use of server.join() the will make the current thread join and
+ // wait until the server is done executing.
+ // See http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#join()
server.join();
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ProxyServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ProxyServer.java
index f8cd500ae6..26a529cfae 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ProxyServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ProxyServer.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -27,7 +27,7 @@ import org.eclipse.jetty.servlet.ServletHolder;
public class ProxyServer
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server();
ServerConnector connector = new ServerConnector(server);
@@ -39,7 +39,8 @@ public class ProxyServer
server.setHandler(proxy);
// Setup proxy servlet
- ServletContextHandler context = new ServletContextHandler(proxy, "/", ServletContextHandler.SESSIONS);
+ ServletContextHandler context = new ServletContextHandler(proxy, "/",
+ ServletContextHandler.SESSIONS);
ServletHolder proxyServlet = new ServletHolder(ProxyServlet.class);
proxyServlet.setInitParameter("blackList", "www.eclipse.org");
context.addServlet(proxyServlet, "/*");
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SecuredHelloHandler.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SecuredHelloHandler.java
index e1b8308cd2..da8c0c2728 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SecuredHelloHandler.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SecuredHelloHandler.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -30,59 +30,75 @@ import org.eclipse.jetty.util.security.Constraint;
public class SecuredHelloHandler
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- // Create a basic jetty server object that will listen on port 8080. Note that if you set this to port 0
- // then a randomly available port will be assigned that you can either look in the logs for the port,
+ // Create a basic jetty server object that will listen on port 8080.
+ // Note that if you set this to port 0 then a randomly available port
+ // will be assigned that you can either look in the logs for the port,
// or programmatically obtain it for use in test cases.
Server server = new Server(8080);
- // Since this example is for our test webapp, we need to setup a LoginService so this shows how to create a
- // very simple hashmap based one. The name of the LoginService needs to correspond to what is configured a
- // webapp's web.xml and since it has a lifecycle of its own we register it as a bean with the Jetty server
- // object so it can be started and stopped according to the lifecycle of the server itself. In this example
- // the name can be whatever you like since we are not dealing with webapp realms.
- LoginService loginService = new HashLoginService("MyRealm","src/test/resources/realm.properties");
- server.addBean(loginService);
+ // Since this example is for our test webapp, we need to setup a
+ // LoginService so this shows how to create a very simple hashmap based
+ // one. The name of the LoginService needs to correspond to what is
+ // configured a webapp's web.xml and since it has a lifecycle of its own
+ // we register it as a bean with the Jetty server object so it can be
+ // started and stopped according to the lifecycle of the server itself.
+ // In this example the name can be whatever you like since we are not
+ // dealing with webapp realms.
+ LoginService loginService = new HashLoginService("MyRealm",
+ "src/test/resources/realm.properties");
+ server.addBean(loginService);
- // A security handler is a jetty handler that secures content behind a particular portion of a url space. The
- // ConstraintSecurityHandler is a more specialized handler that allows matching of urls to different
+ // A security handler is a jetty handler that secures content behind a
+ // particular portion of a url space. The ConstraintSecurityHandler is a
+ // more specialized handler that allows matching of urls to different
// constraints. The server sets this as the first handler in the chain,
- // effectively applying these constraints to all subsequent handlers in the chain.
+ // effectively applying these constraints to all subsequent handlers in
+ // the chain.
ConstraintSecurityHandler security = new ConstraintSecurityHandler();
server.setHandler(security);
- // This constraint requires authentication and in addition that an authenticated user be a member of a given
- // set of roles for authorization purposes.
+ // This constraint requires authentication and in addition that an
+ // authenticated user be a member of a given set of roles for
+ // authorization purposes.
Constraint constraint = new Constraint();
constraint.setName("auth");
- constraint.setAuthenticate( true );
- constraint.setRoles(new String[]{"user", "admin"});
+ constraint.setAuthenticate(true);
+ constraint.setRoles(new String[] { "user", "admin" });
- // Binds a url pattern with the previously created constraint. The roles for this constraing mapping are
- // mined from the Constraint itself although methods exist to declare and bind roles separately as well.
+ // Binds a url pattern with the previously created constraint. The roles
+ // for this constraing mapping are mined from the Constraint itself
+ // although methods exist to declare and bind roles separately as well.
ConstraintMapping mapping = new ConstraintMapping();
- mapping.setPathSpec( "/*" );
- mapping.setConstraint( constraint );
+ mapping.setPathSpec("/*");
+ mapping.setConstraint(constraint);
- // First you see the constraint mapping being applied to the handler as a singleton list,
- // however you can passing in as many security constraint mappings as you like so long as they follow the
- // mapping requirements of the servlet api. Next we set a BasicAuthenticator instance which is the object
- // that actually checks the credentials followed by the LoginService which is the store of known users, etc.
+ // First you see the constraint mapping being applied to the handler as
+ // a singleton list, however you can passing in as many security
+ // constraint mappings as you like so long as they follow the mapping
+ // requirements of the servlet api. Next we set a BasicAuthenticator
+ // instance which is the object that actually checks the credentials
+ // followed by the LoginService which is the store of known users, etc.
security.setConstraintMappings(Collections.singletonList(mapping));
security.setAuthenticator(new BasicAuthenticator());
security.setLoginService(loginService);
- // The Hello Handler is the handler we are securing so we create one, and then set it as the handler on the
+ // The Hello Handler is the handler we are securing so we create one,
+ // and then set it as the handler on the
// security handler to complain the simple handler chain.
HelloHandler hh = new HelloHandler();
// chain the hello handler into the security handler
security.setHandler(hh);
- // Start things up! By using the server.join() the server thread will join with the current thread.
- // See "http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join()" for more details.
+ // Start things up!
server.start();
+
+ // The use of server.join() the will make the current thread join and
+ // wait until the server is done executing.
+ // See
+ // http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#join()
server.join();
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithAnnotations.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithAnnotations.java
index 2caa312f0a..5f17c4d02f 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithAnnotations.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithAnnotations.java
@@ -1,70 +1,80 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
-
package org.eclipse.jetty.embedded;
+import java.io.File;
+
+import org.eclipse.jetty.plus.jndi.EnvEntry;
+import org.eclipse.jetty.plus.jndi.Resource;
+import org.eclipse.jetty.plus.jndi.Transaction;
import org.eclipse.jetty.security.HashLoginService;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.webapp.Configuration;
import org.eclipse.jetty.webapp.WebAppContext;
/**
* ServerWithAnnotations
- *
- *
*/
public class ServerWithAnnotations
{
- public static final void main(String args[]) throws Exception
+ public static final void main( String args[] ) throws Exception
{
- //Create the server
+ // Create the server
Server server = new Server(8080);
- //Enable parsing of jndi-related parts of web.xml and jetty-env.xml
- org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server);
- classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration", "org.eclipse.jetty.plus.webapp.EnvConfiguration", "org.eclipse.jetty.plus.webapp.PlusConfiguration");
- classlist.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration", "org.eclipse.jetty.annotations.AnnotationConfiguration");
-
- //Create a WebApp
+ // Enable parsing of jndi-related parts of web.xml and jetty-env.xml
+ Configuration.ClassList classlist = Configuration.ClassList
+ .setServerDefault(server);
+ classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration",
+ "org.eclipse.jetty.plus.webapp.EnvConfiguration",
+ "org.eclipse.jetty.plus.webapp.PlusConfiguration");
+ classlist.addBefore(
+ "org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
+ "org.eclipse.jetty.annotations.AnnotationConfiguration");
+
+ // Create a WebApp
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
- webapp.setWar("../../jetty-distribution/target/distribution/demo-base/webapps/test-spec.war");
- webapp.setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",".*/javax.servlet-[^/]*\\.jar$|.*/servlet-api-[^/]*\\.jar$");
+ File warFile = new File(
+ "../../jetty-distribution/target/distribution/demo-base/webapps/test.war");
+ webapp.setWar(warFile.getAbsolutePath());
+ webapp.setAttribute(
+ "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
+ ".*/javax.servlet-[^/]*\\.jar$|.*/servlet-api-[^/]*\\.jar$");
server.setHandler(webapp);
- //Register new transaction manager in JNDI
- //At runtime, the webapp accesses this as java:comp/UserTransaction
- org.eclipse.jetty.plus.jndi.Transaction transactionMgr = new org.eclipse.jetty.plus.jndi.Transaction(new com.acme.MockUserTransaction());
+ // Register new transaction manager in JNDI
+ // At runtime, the webapp accesses this as java:comp/UserTransaction
+ new Transaction(new com.acme.MockUserTransaction());
+
+ // Define an env entry with webapp scope.
+ new EnvEntry(webapp, "maxAmount", new Double(100), true);
+
+ // Register a mock DataSource scoped to the webapp
+ new Resource(webapp, "jdbc/mydatasource", new com.acme.MockDataSource());
- //Define an env entry with webapp scope.
- org.eclipse.jetty.plus.jndi.EnvEntry maxAmount = new org.eclipse.jetty.plus.jndi.EnvEntry (webapp, "maxAmount", new Double(100), true);
-
-
- // Register a mock DataSource scoped to the webapp
- org.eclipse.jetty.plus.jndi.Resource mydatasource = new org.eclipse.jetty.plus.jndi.Resource(webapp, "jdbc/mydatasource", new com.acme.MockDataSource());
-
// Configure a LoginService
HashLoginService loginService = new HashLoginService();
loginService.setName("Test Realm");
loginService.setConfig("src/test/resources/realm.properties");
server.addBean(loginService);
-
-
+
server.start();
server.join();
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithJNDI.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithJNDI.java
index 997bb761f3..d781641a16 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithJNDI.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ServerWithJNDI.java
@@ -1,111 +1,115 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
-
package org.eclipse.jetty.embedded;
-
+import java.io.File;
import java.util.Properties;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.webapp.Configuration;
import org.eclipse.jetty.webapp.WebAppContext;
/**
* ServerWithJNDI
- *
- *
*/
public class ServerWithJNDI
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- //Create the server
+ // Create the server
Server server = new Server(8080);
-
- //Enable parsing of jndi-related parts of web.xml and jetty-env.xml
- org.eclipse.jetty.webapp.Configuration.ClassList classlist = org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(server);
- classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration", "org.eclipse.jetty.plus.webapp.EnvConfiguration", "org.eclipse.jetty.plus.webapp.PlusConfiguration");
- //Create a WebApp
+ // Enable parsing of jndi-related parts of web.xml and jetty-env.xml
+ Configuration.ClassList classlist = Configuration.ClassList
+ .setServerDefault(server);
+ classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration",
+ "org.eclipse.jetty.plus.webapp.EnvConfiguration",
+ "org.eclipse.jetty.plus.webapp.PlusConfiguration");
+
+ // Create a WebApp
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
- webapp.setWar("../../jetty-distribution/target/distribution/demo-base/webapps/test-jndi.war");
+ File warFile = new File(
+ "../../jetty-distribution/target/distribution/demo-base/webapps/test.war");
+ webapp.setWar(warFile.getAbsolutePath());
server.setHandler(webapp);
- //Register new transaction manager in JNDI
- //At runtime, the webapp accesses this as java:comp/UserTransaction
- org.eclipse.jetty.plus.jndi.Transaction transactionMgr = new org.eclipse.jetty.plus.jndi.Transaction(new com.acme.MockUserTransaction());
-
- //Define an env entry with Server scope.
- //At runtime, the webapp accesses this as java:comp/env/woggle
- //This is equivalent to putting an env-entry in web.xml:
- //<env-entry>
- // <env-entry-name>woggle</env-entry-name>
- // <env-entry-type>java.lang.Integer</env-entry-type>
- // <env-entry-value>4000</env-entry-value>
- //</env-entry>
- org.eclipse.jetty.plus.jndi.EnvEntry woggle = new org.eclipse.jetty.plus.jndi.EnvEntry(server, "woggle", new Integer(4000), false);
+ // Register new transaction manager in JNDI
+ // At runtime, the webapp accesses this as java:comp/UserTransaction
+ new org.eclipse.jetty.plus.jndi.Transaction(
+ new com.acme.MockUserTransaction());
+ // Define an env entry with Server scope.
+ // At runtime, the webapp accesses this as java:comp/env/woggle
+ // This is equivalent to putting an env-entry in web.xml:
+ // <env-entry>
+ // <env-entry-name>woggle</env-entry-name>
+ // <env-entry-type>java.lang.Integer</env-entry-type>
+ // <env-entry-value>4000</env-entry-value>
+ // </env-entry>
+ new org.eclipse.jetty.plus.jndi.EnvEntry(server, "woggle", new Integer(4000), false);
- //Define an env entry with webapp scope.
- //At runtime, the webapp accesses this as java:comp/env/wiggle
- //This is equivalent to putting a web.xml entry in web.xml:
- //<env-entry>
- // <env-entry-name>wiggle</env-entry-name>
- // <env-entry-value>100</env-entry-value>
- // <env-entry-type>java.lang.Double</env-entry-type>
- //</env-entry>
- //Note that the last arg of "true" means that this definition for "wiggle" would override an entry of the
- //same name in web.xml
- org.eclipse.jetty.plus.jndi.EnvEntry wiggle = new org.eclipse.jetty.plus.jndi.EnvEntry(webapp, "wiggle", new Double(100), true);
+ // Define an env entry with webapp scope.
+ // At runtime, the webapp accesses this as java:comp/env/wiggle
+ // This is equivalent to putting a web.xml entry in web.xml:
+ // <env-entry>
+ // <env-entry-name>wiggle</env-entry-name>
+ // <env-entry-value>100</env-entry-value>
+ // <env-entry-type>java.lang.Double</env-entry-type>
+ // </env-entry>
+ // Note that the last arg of "true" means that this definition for
+ // "wiggle" would override an entry of the
+ // same name in web.xml
+ new org.eclipse.jetty.plus.jndi.EnvEntry(webapp, "wiggle", new Double(100), true);
- //Register a reference to a mail service scoped to the webapp.
- //This must be linked to the webapp by an entry in web.xml:
+ // Register a reference to a mail service scoped to the webapp.
+ // This must be linked to the webapp by an entry in web.xml:
// <resource-ref>
- // <res-ref-name>mail/Session</res-ref-name>
- // <res-type>javax.mail.Session</res-type>
- // <res-auth>Container</res-auth>
+ // <res-ref-name>mail/Session</res-ref-name>
+ // <res-type>javax.mail.Session</res-type>
+ // <res-auth>Container</res-auth>
// </resource-ref>
- //At runtime the webapp accesses this as java:comp/env/mail/Session
+ // At runtime the webapp accesses this as java:comp/env/mail/Session
org.eclipse.jetty.jndi.factories.MailSessionReference mailref = new org.eclipse.jetty.jndi.factories.MailSessionReference();
mailref.setUser("CHANGE-ME");
mailref.setPassword("CHANGE-ME");
Properties props = new Properties();
props.put("mail.smtp.auth", "false");
- props.put("mail.smtp.host","CHANGE-ME");
- props.put("mail.from","CHANGE-ME");
+ props.put("mail.smtp.host", "CHANGE-ME");
+ props.put("mail.from", "CHANGE-ME");
props.put("mail.debug", "false");
mailref.setProperties(props);
- org.eclipse.jetty.plus.jndi.Resource xxxmail = new org.eclipse.jetty.plus.jndi.Resource(webapp, "mail/Session", mailref);
-
+ new org.eclipse.jetty.plus.jndi.Resource(webapp, "mail/Session", mailref);
+
+ // Register a mock DataSource scoped to the webapp
+ // This must be linked to the webapp via an entry in web.xml:
+ // <resource-ref>
+ // <res-ref-name>jdbc/mydatasource</res-ref-name>
+ // <res-type>javax.sql.DataSource</res-type>
+ // <res-auth>Container</res-auth>
+ // </resource-ref>
+ // At runtime the webapp accesses this as
+ // java:comp/env/jdbc/mydatasource
+ new org.eclipse.jetty.plus.jndi.Resource(
+ webapp, "jdbc/mydatasource", new com.acme.MockDataSource());
- // Register a mock DataSource scoped to the webapp
- //This must be linked to the webapp via an entry in web.xml:
- //<resource-ref>
- // <res-ref-name>jdbc/mydatasource</res-ref-name>
- // <res-type>javax.sql.DataSource</res-type>
- // <res-auth>Container</res-auth>
- //</resource-ref>
- //At runtime the webapp accesses this as java:comp/env/jdbc/mydatasource
- org.eclipse.jetty.plus.jndi.Resource mydatasource = new org.eclipse.jetty.plus.jndi.Resource(webapp, "jdbc/mydatasource",
- new com.acme.MockDataSource());
-
server.start();
server.join();
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SimplestServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SimplestServer.java
index 482194f351..baf071df4e 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SimplestServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SimplestServer.java
@@ -1,31 +1,31 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
import org.eclipse.jetty.server.Server;
-/* ------------------------------------------------------------ */
-/** The simplest possible Jetty server.
+/**
+ * The simplest possible Jetty server.
*/
public class SimplestServer
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
server.start();
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java
index 05115382c7..2e9dfde5ee 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java
@@ -18,6 +18,9 @@
package org.eclipse.jetty.embedded;
+import java.io.File;
+import java.io.FileNotFoundException;
+
import org.eclipse.jetty.server.HttpConfiguration;
import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.SecureRequestCustomizer;
@@ -30,7 +33,6 @@ import org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory;
import org.eclipse.jetty.spdy.server.http.ReferrerPushStrategy;
import org.eclipse.jetty.util.ssl.SslContextFactory;
-/* ------------------------------------------------------------ */
/**
* A Jetty server with HTTP and SPDY connectors.
*/
@@ -38,7 +40,17 @@ public class SpdyConnector
{
public static void main(String[] args) throws Exception
{
- String jetty_home = System.getProperty("jetty.home","../../jetty-distribution/target/distribution");
+ // Path to as-built jetty-distribution directory
+ String jettyHomeBuild = "../../jetty-distribution/target/distribution";
+
+ // Find jetty home directories
+ String homePath = System.getProperty("jetty.home", jettyHomeBuild);
+ File homeDir = new File(homePath);
+ if (!homeDir.exists())
+ {
+ throw new FileNotFoundException(homeDir.getAbsolutePath());
+ }
+ String jetty_home = homeDir.getAbsolutePath();
System.setProperty("jetty.home", jetty_home);
// The Server
@@ -50,7 +62,8 @@ public class SpdyConnector
http_config.setSecurePort(8443);
// HTTP connector
- ServerConnector http = new ServerConnector(server,new HttpConnectionFactory(http_config));
+ ServerConnector http = new ServerConnector(server,
+ new HttpConnectionFactory(http_config));
http.setPort(8080);
server.addConnector(http);
@@ -66,23 +79,28 @@ public class SpdyConnector
// SPDY versions
HTTPSPDYServerConnectionFactory spdy2 =
- new HTTPSPDYServerConnectionFactory(2,https_config);
+ new HTTPSPDYServerConnectionFactory(2, https_config);
HTTPSPDYServerConnectionFactory spdy3 =
- new HTTPSPDYServerConnectionFactory(3,https_config,new ReferrerPushStrategy());
+ new HTTPSPDYServerConnectionFactory(3, https_config,
+ new ReferrerPushStrategy());
// NPN Factory
SPDYServerConnectionFactory.checkProtocolNegotiationAvailable();
- NPNServerConnectionFactory npn =
- new NPNServerConnectionFactory(spdy3.getProtocol(),spdy2.getProtocol(),http.getDefaultProtocol());
+ NPNServerConnectionFactory npn = new NPNServerConnectionFactory(
+ spdy3.getProtocol(),
+ spdy2.getProtocol(),
+ http.getDefaultProtocol());
npn.setDefaultProtocol(http.getDefaultProtocol());
-
+
// SSL Factory
- SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory,npn.getProtocol());
-
+ SslConnectionFactory ssl = new SslConnectionFactory(
+ sslContextFactory, npn.getProtocol());
+
// SPDY Connector
- ServerConnector spdyConnector =
- new ServerConnector(server,ssl,npn,spdy3,spdy2,new HttpConnectionFactory(https_config));
+ ServerConnector spdyConnector = new ServerConnector(server, ssl,
+ npn, spdy3, spdy2,
+ new HttpConnectionFactory(https_config));
spdyConnector.setPort(8443);
server.addConnector(spdyConnector);
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java
index 5a756104ec..468aa6a198 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java
@@ -1,23 +1,25 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
+import java.io.File;
+import java.io.FileNotFoundException;
import java.lang.management.ManagementFactory;
import org.eclipse.jetty.deploy.DeploymentManager;
@@ -49,10 +51,20 @@ import org.eclipse.jetty.util.thread.QueuedThreadPool;
public class SpdyServer
{
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- String jetty_home = System.getProperty("jetty.home","../../jetty-distribution/target/distribution");
- System.setProperty("jetty.home",jetty_home);
+ // Path to as-built jetty-distribution directory
+ String jettyHomeBuild = "../../jetty-distribution/target/distribution";
+
+ // Find jetty home directories
+ String homePath = System.getProperty("jetty.home", jettyHomeBuild);
+ File homeDir = new File(homePath);
+ if (!homeDir.exists())
+ {
+ throw new FileNotFoundException(homeDir.getAbsolutePath());
+ }
+ String jetty_home = homeDir.getAbsolutePath();
+ System.setProperty("jetty.home", jetty_home);
// Setup Threadpool
QueuedThreadPool threadPool = new QueuedThreadPool(512);
@@ -64,10 +76,10 @@ public class SpdyServer
server.setDumpBeforeStop(false);
// Setup JMX
- MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
+ MBeanContainer mbContainer = new MBeanContainer(
+ ManagementFactory.getPlatformMBeanServer());
server.addBean(mbContainer);
-
// Common HTTP configuration
HttpConfiguration config = new HttpConfiguration();
config.setSecurePort(8443);
@@ -75,21 +87,23 @@ public class SpdyServer
config.addCustomizer(new SecureRequestCustomizer());
config.setSendServerVersion(true);
-
// Http Connector Setup
- // A plain HTTP connector listening on port 8080. Note that it's also possible to have port 8080 configured as
- // a non SSL SPDY connector. But the specification and most browsers do not allow to use SPDY without SSL
- // encryption. However some browsers allow it to be configured.
+ // A plain HTTP connector listening on port 8080. Note that it's also
+ // possible to have port 8080 configured as a non SSL SPDY connector.
+ // But the specification and most browsers do not allow to use SPDY
+ // without SSL encryption. However some browsers allow it to be
+ // configured.
HttpConnectionFactory http = new HttpConnectionFactory(config);
- ServerConnector httpConnector = new ServerConnector(server,http);
+ ServerConnector httpConnector = new ServerConnector(server, http);
httpConnector.setPort(8080);
httpConnector.setIdleTimeout(10000);
server.addConnector(httpConnector);
-
+
// SSL configurations
- // We need a SSLContextFactory for the SSL encryption. That SSLContextFactory will be used by the SPDY
+ // We need a SSLContextFactory for the SSL encryption. That
+ // SSLContextFactory will be used by the SPDY
// connector.
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStorePath(jetty_home + "/etc/keystore");
@@ -99,53 +113,64 @@ public class SpdyServer
sslContextFactory.setTrustStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
sslContextFactory.setExcludeCipherSuites(
"SSL_RSA_WITH_DES_CBC_SHA",
- "SSL_DHE_RSA_WITH_DES_CBC_SHA",
+ "SSL_DHE_RSA_WITH_DES_CBC_SHA",
"SSL_DHE_DSS_WITH_DES_CBC_SHA",
"SSL_RSA_EXPORT_WITH_RC4_40_MD5",
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");
-
// Spdy Connector
// Make sure that the required NPN implementations are available.
SPDYServerConnectionFactory.checkProtocolNegotiationAvailable();
// A ReferrerPushStrategy is being initialized.
- // See: http://www.eclipse.org/jetty/documentation/current/spdy-configuring-push.html for more details.
+ // See:
+ // http://www.eclipse.org/jetty/documentation/current/spdy-configuring-push.html
+ // for more details.
PushStrategy push = new ReferrerPushStrategy();
- HTTPSPDYServerConnectionFactory spdy2 = new HTTPSPDYServerConnectionFactory(2,config,push);
+ HTTPSPDYServerConnectionFactory spdy2 =
+ new HTTPSPDYServerConnectionFactory(2, config, push);
spdy2.setInputBufferSize(8192);
spdy2.setInitialWindowSize(32768);
- // We need a connection factory per protocol that our server is supposed to support on the NPN port. We then
- // create a ServerConnector and pass in the supported factories. NPN will then be used to negotiate the
+ // We need a connection factory per protocol that our server is supposed
+ // to support on the NPN port. We then
+ // create a ServerConnector and pass in the supported factories. NPN
+ // will then be used to negotiate the
// protocol with the client.
- HTTPSPDYServerConnectionFactory spdy3 = new HTTPSPDYServerConnectionFactory(3,config,push);
+ HTTPSPDYServerConnectionFactory spdy3 =
+ new HTTPSPDYServerConnectionFactory(3, config, push);
spdy3.setInputBufferSize(8192);
- NPNServerConnectionFactory npn = new NPNServerConnectionFactory(spdy3.getProtocol(),spdy2.getProtocol(),http.getProtocol());
+ NPNServerConnectionFactory npn = new NPNServerConnectionFactory(
+ spdy3.getProtocol(), spdy2.getProtocol(), http.getProtocol());
npn.setDefaultProtocol(http.getProtocol());
npn.setInputBufferSize(1024);
-
- SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory,npn.getProtocol());
+
+ SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory,
+ npn.getProtocol());
// Setup the npn connector on port 8443
- ServerConnector spdyConnector = new ServerConnector(server,ssl,npn,spdy3,spdy2,http);
+ ServerConnector spdyConnector = new ServerConnector(server, ssl,
+ npn, spdy3, spdy2, http);
spdyConnector.setPort(8443);
server.addConnector(spdyConnector);
- // The following section adds some handlers, deployers and webapp providers.
- // See: http://www.eclipse.org/jetty/documentation/current/advanced-embedding.html for details.
-
+ // The following section adds some handlers, deployers and webapp
+ // providers. See
+ // http://www.eclipse.org/jetty/documentation/current/advanced-embedding.html
+ // for details.
+
// Setup handlers
HandlerCollection handlers = new HandlerCollection();
ContextHandlerCollection contexts = new ContextHandlerCollection();
RequestLogHandler requestLogHandler = new RequestLogHandler();
- handlers.setHandlers(new Handler[] { contexts, new DefaultHandler(), requestLogHandler });
+ handlers.setHandlers(new Handler[] { contexts, new DefaultHandler(),
+ requestLogHandler });
StatisticsHandler stats = new StatisticsHandler();
stats.setHandler(handlers);
@@ -162,7 +187,8 @@ public class SpdyServer
webapp_provider.setParentLoaderPriority(false);
webapp_provider.setExtractWars(true);
webapp_provider.setScanInterval(2);
- webapp_provider.setDefaultsDescriptor(jetty_home + "/etc/webdefault.xml");
+ webapp_provider.setDefaultsDescriptor(jetty_home
+ + "/etc/webdefault.xml");
deployer.addAppProvider(webapp_provider);
HashLoginService login = new HashLoginService();
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SplitFileServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SplitFileServer.java
index 9dc7700276..060bfe47f0 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SplitFileServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SplitFileServer.java
@@ -1,23 +1,25 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
+import java.io.File;
+
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
@@ -28,56 +30,64 @@ import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
import org.eclipse.jetty.util.resource.Resource;
-/* ------------------------------------------------------------ */
/**
* A {@link ContextHandlerCollection} handler may be used to direct a request to
* a specific Context. The URI path prefix and optional virtual host is used to
* select the context.
- *
*/
public class SplitFileServer
{
-
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
- // Create the Server object and a corresponding ServerConnector and then set the port for the connector. In
- // this example the server will listen on port 8090. If you set this to port 0 then when the server has been
- // started you can called connector.getLocalPort() to programmatically get the port the server started on.
+ // Create the Server object and a corresponding ServerConnector and then
+ // set the port for the connector. In this example the server will
+ // listen on port 8090. If you set this to port 0 then when the server
+ // has been started you can called connector.getLocalPort() to
+ // programmatically get the port the server started on.
Server server = new Server();
ServerConnector connector = new ServerConnector(server);
connector.setPort(8090);
- server.setConnectors(new Connector[]
- { connector });
+ server.setConnectors(new Connector[] { connector });
- // Create a Context Handler and ResourceHandler. The ContextHandler is getting set to "/" path but this could
- // be anything you like for builing out your url. Note how we are setting the ResourceBase using our jetty
- // maven testing utilities to get the proper resource directory, you needn't use these,
- // you simply need to supply the paths you are looking to serve content from.
+ // Create a Context Handler and ResourceHandler. The ContextHandler is
+ // getting set to "/" path but this could be anything you like for
+ // builing out your url. Note how we are setting the ResourceBase using
+ // our jetty maven testing utilities to get the proper resource
+ // directory, you needn't use these, you simply need to supply the paths
+ // you are looking to serve content from.
ContextHandler context0 = new ContextHandler();
context0.setContextPath("/");
ResourceHandler rh0 = new ResourceHandler();
- rh0.setBaseResource( Resource.newResource(MavenTestingUtils.getTestResourceDir("dir0")));
+ File dir0 = MavenTestingUtils.getTestResourceDir("dir0");
+ rh0.setBaseResource(Resource.newResource(dir0));
context0.setHandler(rh0);
- // Rinse and repeat the previous item, only specifying a different resource base.
+ // Rinse and repeat the previous item, only specifying a different
+ // resource base.
ContextHandler context1 = new ContextHandler();
- context1.setContextPath("/");
+ context1.setContextPath("/");
ResourceHandler rh1 = new ResourceHandler();
- rh1.setBaseResource( Resource.newResource(MavenTestingUtils.getTestResourceDir("dir1")));
+ File dir1 = MavenTestingUtils.getTestResourceDir("dir1");
+ rh1.setBaseResource(Resource.newResource(dir1));
context1.setHandler(rh1);
- // Create a ContextHandlerCollection and set the context handlers to it. This will let jetty process urls
- // against the declared contexts in order to match up content.
+ // Create a ContextHandlerCollection and set the context handlers to it.
+ // This will let jetty process urls against the declared contexts in
+ // order to match up content.
ContextHandlerCollection contexts = new ContextHandlerCollection();
- contexts.setHandlers(new Handler[]
- { context0, context1 });
+ contexts.setHandlers(new Handler[] { context0, context1 });
server.setHandler(contexts);
- // Start things up! By using the server.join() the server thread will join with the current thread.
- // See "http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join()" for more details.
+ // Start things up!
server.start();
- System.err.println(server.dump());
+
+ // Dump the server state
+ System.out.println(server.dump());
+
+ // The use of server.join() the will make the current thread join and
+ // wait until the server is done executing.
+ // See http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#join()
server.join();
}
}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketJsrServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketJsrServer.java
index 56a25548a7..41ce28ebb8 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketJsrServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketJsrServer.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -39,22 +39,24 @@ public class WebSocketJsrServer
public static class EchoJsrSocket
{
@OnMessage
- public void onMessage(Session session, String message)
+ public void onMessage( Session session, String message )
{
session.getAsyncRemote().sendText(message);
}
}
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
- ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
+ ServletContextHandler context = new ServletContextHandler(
+ ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
// Enable javax.websocket configuration for the context
- ServerContainer wsContainer = WebSocketServerContainerInitializer.configureContext(context);
+ ServerContainer wsContainer = WebSocketServerContainerInitializer
+ .configureContext(context);
// Add your websockets to the container
wsContainer.addEndpoint(EchoJsrSocket.class);
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketServer.java
index ac7a979d07..4263b9433d 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketServer.java
@@ -1,19 +1,19 @@
//
-// ========================================================================
-// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-// ------------------------------------------------------------------------
-// All rights reserved. This program and the accompanying materials
-// are made available under the terms of the Eclipse Public License v1.0
-// and Apache License v2.0 which accompanies this distribution.
+// ========================================================================
+// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
//
-// The Eclipse Public License is available at
-// http://www.eclipse.org/legal/epl-v10.html
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
//
-// The Apache License v2.0 is available at
-// http://www.opensource.org/licenses/apache2.0.php
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
//
-// You may elect to redistribute this code under either of these licenses.
-// ========================================================================
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
//
package org.eclipse.jetty.embedded;
@@ -41,7 +41,7 @@ public class WebSocketServer
public static class EchoSocket
{
@OnWebSocketMessage
- public void onMessage(Session session, String message)
+ public void onMessage( Session session, String message )
{
session.getRemote().sendStringByFuture(message);
}
@@ -54,23 +54,24 @@ public class WebSocketServer
public static class EchoServlet extends WebSocketServlet
{
@Override
- public void configure(WebSocketServletFactory factory)
+ public void configure( WebSocketServletFactory factory )
{
// Register the echo websocket with the basic WebSocketCreator
factory.register(EchoSocket.class);
}
}
- public static void main(String[] args) throws Exception
+ public static void main( String[] args ) throws Exception
{
Server server = new Server(8080);
- ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
+ ServletContextHandler context = new ServletContextHandler(
+ ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
// Add the echo socket servlet to the /echo path map
- context.addServlet(new ServletHolder(EchoServlet.class),"/echo");
+ context.addServlet(new ServletHolder(EchoServlet.class), "/echo");
server.start();
context.dumpStdErr();

Back to the top