juneau-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jamesbog...@apache.org
Subject [10/48] incubator-juneau git commit: Rename server and client projects.
Date Sat, 21 Jan 2017 23:30:36 GMT
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/91a388d0/juneau-server/src/main/java/org/apache/juneau/server/ReaderResource.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/ReaderResource.java b/juneau-server/src/main/java/org/apache/juneau/server/ReaderResource.java
deleted file mode 100755
index 2480778..0000000
--- a/juneau-server/src/main/java/org/apache/juneau/server/ReaderResource.java
+++ /dev/null
@@ -1,99 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.
 The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance            *
-// * with the License.  You may obtain a copy of the License at                         
                                    *
-// *                                                                                    
                                    *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                        
                                    *
-// *                                                                                    
                                    *
-// * Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the        *
-// * specific language governing permissions and limitations under the License.         
                                    *
-// ***************************************************************************************************************************
-package org.apache.juneau.server;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.response.*;
-import org.apache.juneau.svl.*;
-
-/**
- * Represents the contents of a text file with convenience methods for resolving
- * 	{@link Parameter} variables and adding HTTP response headers.
- * <p>
- * This class is handled special by the {@link WritableHandler} class.
- */
-public class ReaderResource implements Writable {
-
-	private String contents;
-	private String mediaType;
-	private VarResolverSession varSession;
-	private Map<String,String> headers = new LinkedHashMap<String,String>();
-
-	/**
-	 * Constructor.
-	 *
-	 * @param contents The contents of this resource.
-	 * @param mediaType The HTTP media type.
-	 */
-	protected ReaderResource(String contents, String mediaType) {
-		this.contents = contents;
-		this.mediaType = mediaType;
-	}
-
-	/**
-	 * Add an HTTP response header.
-	 *
-	 * @param name The header name.
-	 * @param value The header value converted to a string using {@link Object#toString()}.
-	 * @return This object (for method chaining).
-	 */
-	public ReaderResource setHeader(String name, Object value) {
-		headers.put(name, value == null ? "" : value.toString());
-		return this;
-	}
-
-	/**
-	 * Use the specified {@link VarResolver} to resolve any {@link Parameter StringVars} in
the
-	 * contents of this file when the {@link #writeTo(Writer)} or {@link #toString()} methods
are called.
-	 *
-	 * @param varSession The string variable resolver to use to resolve string variables.
-	 * @return This object (for method chaining).
-	 */
-	public ReaderResource setVarSession(VarResolverSession varSession) {
-		this.varSession = varSession;
-		return this;
-	}
-
-	/**
-	 * Get the HTTP response headers.
-	 *
-	 * @return The HTTP response headers.
-	 */
-	public Map<String,String> getHeaders() {
-		return headers;
-	}
-
-	@Override /* Writeable */
-	public void writeTo(Writer w) throws IOException {
-		if (varSession != null)
-			varSession.resolveTo(contents, w);
-		else
-			w.write(contents);
-	}
-
-	@Override /* Streamable */
-	public String getMediaType() {
-		return mediaType;
-	}
-
-	@Override /* Object */
-	public String toString() {
-		if (varSession != null)
-			return varSession.resolve(contents);
-		return contents;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/91a388d0/juneau-server/src/main/java/org/apache/juneau/server/Redirect.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/Redirect.java b/juneau-server/src/main/java/org/apache/juneau/server/Redirect.java
deleted file mode 100755
index 05c50f3..0000000
--- a/juneau-server/src/main/java/org/apache/juneau/server/Redirect.java
+++ /dev/null
@@ -1,138 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.
 The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance            *
-// * with the License.  You may obtain a copy of the License at                         
                                    *
-// *                                                                                    
                                    *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                        
                                    *
-// *                                                                                    
                                    *
-// * Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the        *
-// * specific language governing permissions and limitations under the License.         
                                    *
-// ***************************************************************************************************************************
-package org.apache.juneau.server;
-
-import java.net.*;
-import java.text.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.urlencoding.*;
-
-/**
- * REST methods can return this object as a shortcut for performing <code>HTTP 302</code>
redirects.
- * <p>
- * The following example shows the difference between handling redirects via the {@link RestRequest}/{@link
RestResponse},
- * 	and the simplified approach of using this class.
- * <p class='bcode'>
- * 	<jc>// Redirect to "/contextPath/servletPath/foobar"</jc>
- *
- * 	<jc>// Using RestRequest and RestResponse</jc>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example1"</js>)
- * 	<jk>public void</jk> example1(RestRequest req, RestResponse res) <jk>throws</jk>
IOException {
- * 		res.sendRedirect(req.getServletURI() + <js>"/foobar"</js>);
- * 	}
- *
- * 	<jc>// Using Redirect</jc>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example2"</js>)
- * 	<jk>public</jk> Redirect example2() {
- * 		<jk>return new</jk> Redirect(<js>"foobar"</js>);
- * 	}
- * </p>
- * <p>
- * The constructor can use a {@link MessageFormat}-style pattern with multiple arguments:
- * <p class='bcode'>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example3"</js>)
- * 	<jk>public</jk> Redirect example3() {
- * 		<jk>return new</jk> Redirect(<js>"foo/{0}/bar/{1}"</js>, id1,
id2);
- * 	}
- * </p>
- * <p>
- * The arguments are serialized to strings using the servlet's {@link UrlEncodingSerializer},
- * 	so any filters defined on the serializer or REST method/class will be used when present.
- * The arguments will also be automatically URL-encoded.
- * <p>
- * Redirecting to the servlet root can be accomplished by simply using the no-arg constructor.
- * <p class='bcode'>
- * 	<jc>// Simply redirect to the servlet root.
- * 	// Equivalent to res.sendRedirect(req.getServletURI()).</jc>
- * 	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/example4"</js>)
- * 	<jk>public</jk> Redirect exmaple4() {
- * 		<jk>return new</jk> Redirect();
- * 	}
- * </p>
- * <p>
- * This class is handled by {@link org.apache.juneau.server.response.RedirectHandler}, a
built-in default
- * 	response handler created by {@link RestServlet#createResponseHandlers(ObjectMap)}.
- */
-public final class Redirect {
-
-	private int httpResponseCode;
-	private String url;
-	private Object[] args;
-
-	/**
-	 * Redirect to the specified URL.
-	 * Relative paths are interpreted as relative to the servlet path.
-	 *
-	 * @param url The URL to redirect to.
-	 * @param args Optional {@link MessageFormat} arguments to replace in the URL string.
-	 */
-	public Redirect(CharSequence url, Object...args) {
-		this.url = (url == null ? null : url.toString());
-		this.args = args;
-	}
-
-	/**
-	 * Convenience method for redirecting to instance of {@link URL} and {@link URI}.
-	 * Same as calling <code>toString()</code> on the object and using the other
constructor.
-	 *
-	 * @param url The URL to redirect to.
-	 */
-	public Redirect(Object url) {
-		this.url = (url == null ? null : url.toString());
-	}
-
-	/**
-	 * Redirect to the specified URL.
-	 * Relative paths are interpreted as relative to the servlet path.
-	 *
-	 * @param httpResponseCode The HTTP response code.
-	 * @param url The URL to redirect to.
-	 * @param args Optional {@link MessageFormat} arguments to replace in the URL string.
-	 */
-	public Redirect(int httpResponseCode, CharSequence url, Object...args) {
-		this.httpResponseCode = httpResponseCode;
-		this.url = (url == null ? null : url.toString());
-		this.args = args;
-	}
-
-	/**
-	 * Shortcut for redirecting to the servlet root.
-	 */
-	public Redirect() {
-	}
-
-	/**
-	 * Calculates the URL to redirect to.
-	 *
-	 * @param s Use this serializer to encode arguments using the {@link UrlEncodingSerializer#serializeUrlPart(Object)}
method.
-	 * @return The URL to redirect to.
-	 */
-	public String toUrl(UrlEncodingSerializer s) {
-		if (url != null && args != null && args.length > 0) {
-			for (int i = 0; i < args.length; i++)
-				args[i] = s.serializeUrlPart(args[i]);
-			url = MessageFormat.format(url, args);
-		}
-		return url;
-	}
-
-	/**
-	 * Returns the response code passed in through the constructor.
-	 *
-	 * @return The response code passed in through the constructor, or <code>0</code>
if response code wasn't specified.
-	 */
-	public int getHttpResponseCode() {
-		return httpResponseCode;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/91a388d0/juneau-server/src/main/java/org/apache/juneau/server/ResponseHandler.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/ResponseHandler.java b/juneau-server/src/main/java/org/apache/juneau/server/ResponseHandler.java
deleted file mode 100755
index 9496c0d..0000000
--- a/juneau-server/src/main/java/org/apache/juneau/server/ResponseHandler.java
+++ /dev/null
@@ -1,92 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.
 The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance            *
-// * with the License.  You may obtain a copy of the License at                         
                                    *
-// *                                                                                    
                                    *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                        
                                    *
-// *                                                                                    
                                    *
-// * Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the        *
-// * specific language governing permissions and limitations under the License.         
                                    *
-// ***************************************************************************************************************************
-package org.apache.juneau.server;
-
-import java.io.*;
-
-import javax.servlet.http.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.response.*;
-
-/**
- * Defines the interface for handlers that convert POJOs to appropriate HTTP responses.
- * <p>
- * The {@link RestServlet} API uses the concept of registered response handlers for
- * 	converting objects returned by REST methods or set through {@link RestResponse#setOutput(Object)}
- * 	into appropriate HTTP responses.
- * <p>
- * Response handlers can be associated with {@link RestServlet RestServlets} through the
following ways:
- * <ul class='spaced-list'>
- * 	<li>Through the {@link RestResource#responseHandlers @RestResource.responseHandlers}
annotation.
- * 	<li>By overriding {@link RestServlet#createResponseHandlers(ObjectMap)} and augmenting
or creating your
- * 		own list of handlers.
- * </ul>
- * <p>
- * By default, {@link RestServlet RestServlets} are registered with the following response
handlers:
- * <ul class='spaced-list'>
- * 	<li>{@link DefaultHandler} - Serializes POJOs using the Juneau serializer API.
- * 	<li>{@link ReaderHandler} - Pipes the output of {@link Reader Readers} to the response
writer ({@link RestResponse#getWriter()}).
- * 	<li>{@link InputStreamHandler} - Pipes the output of {@link InputStream InputStreams}
to the response output stream ({@link RestResponse#getOutputStream()}).
- * 	<li>{@link RedirectHandler} - Handles {@link Redirect} objects.
- * </ul>
- * <p>
- * Response handlers can be used to process POJOs that cannot normally be handled through
Juneau serializers, or
- * 	because it's simply easier to define response handlers for special cases.
- * <p>
- * The following example shows how to create a response handler to handle special <code>Foo</code>
objects outside the normal
- * 	Juneau architecture.
- * <p class='bcode'>
- * 	<ja>@RestResource</ja>(
- * 		path=<js>"/example"</js>,
- * 		responseHandlers=FooHandler.<jk>class</jk>
- * 	)
- * 	<jk>public class</jk> Example <jk>extends</jk> RestServlet {
- *
- * 		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/"</js>)
- * 		<jk>public</jk> Foo test1() {
- * 			<jk>return new</jk> Foo(<js>"123"</js>);
- * 		}
- *
- * 		<jk>public static class</jk> FooHandler <jk>implements</jk>
ResponseHandler {
- * 			<ja>@Override</ja>
- * 			<jk>public boolean</jk> handle(RestRequest req, RestResponse res, Object
output) <jk>throws</jk> IOException, RestException {
- * 				<jk>if</jk> (output <jk>instanceof</jk> Foo) {
- * 					Foo foo = (Foo)output;
- * 					<jc>// Set some headers and body content.</jc>
- * 					res.setHeader(<js>"Foo-ID"</js>, foo.getId());
- * 					res.getWriter().write(<js>"foo.id="</js> + foo.getId());
- * 					<jk>return true</jk>;  <jc>// We handled it.</jc>
- * 				}
- * 				<jk>return false</jk>;  <jc>// We didn't handle it.</jc>
- * 			}
- * 		}
- * 	}
- * </p>
- */
-public interface ResponseHandler {
-
-	/**
-	 * Process this response if possible.
-	 * This method should return <jk>false</jk> if it wasn't able to process the
response.
-	 *
-	 * @param req The HTTP servlet request.
-	 * @param res The HTTP servlet response;
-	 * @param output The POJO returned by the REST method that now needs to be sent to the response.
-	 * @return true If this handler handled the response.
-	 * @throws IOException - If low-level exception occurred on output stream.  Results in a
{@link HttpServletResponse#SC_INTERNAL_SERVER_ERROR} error.
-	 * @throws RestException - If some other exception occurred.  Can be used to provide an
appropriate HTTP response code and message.
-	 */
-	boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/91a388d0/juneau-server/src/main/java/org/apache/juneau/server/RestConverter.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/RestConverter.java b/juneau-server/src/main/java/org/apache/juneau/server/RestConverter.java
deleted file mode 100755
index ee81f58..0000000
--- a/juneau-server/src/main/java/org/apache/juneau/server/RestConverter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.
 The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance            *
-// * with the License.  You may obtain a copy of the License at                         
                                    *
-// *                                                                                    
                                    *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                        
                                    *
-// *                                                                                    
                                    *
-// * Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the        *
-// * specific language governing permissions and limitations under the License.         
                                    *
-// ***************************************************************************************************************************
-package org.apache.juneau.server;
-
-import org.apache.juneau.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.server.annotation.*;
-import org.apache.juneau.server.converters.*;
-
-/**
- * REST method response converter.
- * <p>
- * 	Implements a filter mechanism for REST method calls that allows response objects to be
- * 	converted to some other POJO after invocation of the REST method.
- * <p>
- * 	Converters are associated with REST methods through the {@link RestMethod#converters()}
annotation.
- * <h6 class='topic'>Example:</h6>
- * <p class='bcode'>
- * 	<jk>public class</jk> RequestEchoResource <jk>extends</jk> RestServlet
{
- *
- * 		<jc>// GET request handler</jc>
- * 		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/*"</js>,
converters={Queryable.<jk>class</jk>,Traversable.<jk>class</jk>})
- * 		<jk>public</jk> HttpServletRequest doGet(RestRequest req) {
- * 			res.setTitle(<js>"Contents of HttpServletRequest object"</js>);
- * 			<jk>return</jk> req;
- * 		}
- * 	}
- * </p>
- * <p>
- * 	Converters can also be associated at the servlet level using the {@link RestResource#converters()}
annotation.
- * 	Applying converters at the resource level is equivalent to applying converters to each
resource method individually.
- *
- * <h6 class='topic'>How to implement</h6>
- * <p>
- * 	Implementers should simply implement the {@link #convert(RestRequest, Object, ClassMeta)}
and
- * 		return back a 'converted' object.
- * 	It's up to the implementer to decide what this means.
- * <p>
- * 	Converters must implement a no-args constructor.
- *
- * <h6 class='topic'>Predefined converters</h6>
- * <p>
- * 	The following converters are available by default.
- * <ul class='spaced-list'>
- * 	<li>{@link Traversable} - Allows URL additional path info to address individual
elements in a POJO tree.
- * 	<li>{@link Queryable} - Allows query/view/sort functions to be performed on POJOs.
- * 	<li>{@link Introspectable} - Allows Java public methods to be invoked on the returned
POJOs.
- * </ul>
- */
-public interface RestConverter {
-
-	/**
-	 * Performs post-call conversion on the specified response object.
-	 *
-	 * @param req The servlet request.
-	 * @param res The response object set by the REST method through the {@link RestResponse#setOutput(Object)}
method.
-	 * @param cm The {@link ClassMeta} on the object from the bean context of the servlet.
-	 * 	Can be used to check if the object has any filters.
-	 * @return The converted object.
-	 * @throws RestException Thrown if any errors occur during conversion.
-	 * @throws SerializeException
-	 */
-	public Object convert(RestRequest req, Object res, ClassMeta<?> cm) throws RestException,
SerializeException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/91a388d0/juneau-server/src/main/java/org/apache/juneau/server/RestException.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/RestException.java b/juneau-server/src/main/java/org/apache/juneau/server/RestException.java
deleted file mode 100755
index fc22085..0000000
--- a/juneau-server/src/main/java/org/apache/juneau/server/RestException.java
+++ /dev/null
@@ -1,135 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.
 The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance            *
-// * with the License.  You may obtain a copy of the License at                         
                                    *
-// *                                                                                    
                                    *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                        
                                    *
-// *                                                                                    
                                    *
-// * Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the        *
-// * specific language governing permissions and limitations under the License.         
                                    *
-// ***************************************************************************************************************************
-package org.apache.juneau.server;
-
-import java.text.*;
-
-/**
- * Exception thrown to trigger an error HTTP status.
- * <p>
- * 	REST methods on subclasses of {@link RestServlet} can throw
- * 	this exception to trigger an HTTP status other than the automatically-generated
- * 	<code>404</code>, <code>405</code>, and <code>500</code>
statuses.
- */
-public class RestException extends RuntimeException {
-
-	private static final long serialVersionUID = 1L;
-
-	private int status;
-	private int occurrence;
-
-	/**
-	 * Constructor.
-	 *
-	 * @param status The HTTP status code.
-	 * @param msg The status message.
-	 * @param args Optional string format arguments.
-	 */
-	public RestException(int status, String msg, Object...args) {
-		super(args.length == 0 ? msg : MessageFormat.format(msg, args));
-		this.status = status;
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * @param status The HTTP status code.
-	 * @param cause The root exception.
-	 */
-	public RestException(int status, Throwable cause) {
-		this(status, cause.getLocalizedMessage());
-		initCause(cause);
-	}
-
-
-	/**
-	 * Sets the inner cause for this exception.
-	 *
-	 * @param cause The inner cause.
-	 * @return This object (for method chaining).
-	 */
-	@Override /* Throwable */
-	public synchronized RestException initCause(Throwable cause) {
-		super.initCause(cause);
-		return this;
-	}
-
-
-	/**
-	 * Returns all error messages from all errors in this stack.
-	 * <p>
-	 * Typically useful if you want to render all the error messages in the stack, but don't
-	 * want to render all the stack traces too.
-	 *
-	 * @param scrubForXssVulnerabilities If <jk>true</jk>, replaces <js>'&lt;'</js>,
<js>'&gt;'</js>, and <js>'&amp;'</js> characters with spaces.
-	 * @return All error messages from all errors in this stack.
-	 */
-	public String getFullStackMessage(boolean scrubForXssVulnerabilities) {
-		String msg = getMessage();
-		StringBuilder sb = new StringBuilder();
-		if (msg != null) {
-			if (scrubForXssVulnerabilities)
-				msg = msg.replace('<', ' ').replace('>', ' ').replace('&', ' ');
-			sb.append(msg);
-		}
-		Throwable e = getCause();
-		while (e != null) {
-			msg = e.getMessage();
-			if (msg != null && scrubForXssVulnerabilities)
-				msg = msg.replace('<', ' ').replace('>', ' ').replace('&', ' ');
-			String cls = e.getClass().getSimpleName();
-			if (msg == null)
-				sb.append(MessageFormat.format("\nCaused by ({0})", cls));
-			else
-				sb.append(MessageFormat.format("\nCaused by ({0}): {1}", cls, msg));
-			e = e.getCause();
-		}
-		return sb.toString();
-	}
-
-	@Override /* Object */
-	public int hashCode() {
-		int i = 0;
-		Throwable t = this;
-		while (t != null) {
-			for (StackTraceElement e : t.getStackTrace())
-			i ^= e.hashCode();
-			t = t.getCause();
-		}
-		return i;
-	}
-
-	void setOccurrence(int occurrence) {
-		this.occurrence = occurrence;
-	}
-
-	/**
-	 * Returns the number of times this exception occurred on this servlet.
-	 * <p>
-	 * This only gets set if {@link RestServletContext#REST_useStackTraceHashes} is enabled
on the servlet.
-	 *
-	 * @return The occurrence number if {@link RestServletContext#REST_useStackTraceHashes}
is enabled, or <code>0</code> otherwise.
-	 */
-	public int getOccurrence() {
-		return occurrence;
-	}
-
-	/**
-	 * Returns the HTTP status code.
-	 *
-	 * @return The HTTP status code.
-	 */
-	public int getStatus() {
-		return status;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/91a388d0/juneau-server/src/main/java/org/apache/juneau/server/RestGuard.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/RestGuard.java b/juneau-server/src/main/java/org/apache/juneau/server/RestGuard.java
deleted file mode 100755
index 2555cb8..0000000
--- a/juneau-server/src/main/java/org/apache/juneau/server/RestGuard.java
+++ /dev/null
@@ -1,95 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.
 The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance            *
-// * with the License.  You may obtain a copy of the License at                         
                                    *
-// *                                                                                    
                                    *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                        
                                    *
-// *                                                                                    
                                    *
-// * Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the        *
-// * specific language governing permissions and limitations under the License.         
                                    *
-// ***************************************************************************************************************************
-package org.apache.juneau.server;
-
-import static javax.servlet.http.HttpServletResponse.*;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * REST method guard.
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Implements a guard mechanism for REST method calls that allows requests to be
- * 		rejected before invocation of the REST method.
- * 	For example, guards can be used to ensure that only administrators can call certain methods.
- * <p>
- * 	Guards are applied to REST methods declaratively through the {@link RestResource#guards()}
or {@link RestMethod#guards()} annotations.
- * <p>
- * 	If multiple guards are specified, ALL guards must pass in order for the request to proceed.
- *
- * <h6 class='topic'>How to implement</h6>
- * <p>
- * 	Typically, guards will be used for permissions checking on the user making the request,
- * 		but it can also be used for other purposes like pre-call validation of a request.
- * <p>
- * 	Implementers should simply throw a {@link RestException} from the {@link #guard(RestRequest,
RestResponse)}
- * 		method to abort processing on the current request.
- * <p>
- * 	Guards must implement a no-args constructor.
- *
- * <h6 class='topic'>Example usage:</h6>
- * <p class='bcode'>
- * 	<jk>public</jk> MyResource <jk>extends</jk> RestServlet {
- *
- * 		<jc>// Delete method with guard that only allows Billy to call it.</jc>
- * 		<ja>@RestMethod</ja>(name=<js>"DELETE"</js>, guards=BillyGuard.<jk>class</jk>)
- * 		<jk>public</jk> doDelete(RestRequest req, RestResponse res) <jk>throws</jk>
Exception {...}
- * 	}
- * </p>
- *
- * <h6 class='topic'>Example implementation:</h6>
- * <p class='bcode'>
- * 	<jc>// Define a guard that only lets Billy make a request</jc>
- * 	<jk>public</jk> BillyGuard <jk>extends</jk> RestGuard {
- *
- * 		<ja>@Override</ja>
- * 		<jk>public boolean</jk> isRequestAllowed(RestRequest req) {
- * 			return req.getUserPrincipal().getName().contains(<js>"Billy"</js>);
- * 		}
- * 	}
- * </p>
- */
-public abstract class RestGuard {
-
-	/**
-	 * Checks the current HTTP request and throws a {@link RestException} if the guard
-	 * 	does not permit the request.
-	 * <p>
-	 * 	By default, throws an <jsf>SC_FORBIDDEN</jsf> exception if {@link #isRequestAllowed(RestRequest)}
-	 * 	returns <jk>false</jk>.
-	 * <p>
-	 * 	Subclasses are free to override this method to tailor the behavior of how to handle
unauthorized
-	 * 	requests.
-	 *
-	 * @param req The servlet request.
-	 * @param res The servlet response.
-	 * @throws RestException Thrown to abort processing on current request.
-	 * @return <jk>true</jk> if request can proceed.
-	 * 	Specify <jk>false</jk> if you're doing something like a redirection to a
login page.
-	 */
-	public boolean guard(RestRequest req, RestResponse res) throws RestException {
-		if (! isRequestAllowed(req))
-			throw new RestException(SC_FORBIDDEN, "Access denied by guard");
-		return true;
-	}
-
-	/**
-	 * Returns <jk>true</jk> if the specified request can pass through this guard.
-	 *
-	 * @param req The servlet request.
-	 * @return <jk>true</jk> if the specified request can pass through this guard.
-	 */
-	public abstract boolean isRequestAllowed(RestRequest req);
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/91a388d0/juneau-server/src/main/java/org/apache/juneau/server/RestMatcher.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/RestMatcher.java b/juneau-server/src/main/java/org/apache/juneau/server/RestMatcher.java
deleted file mode 100755
index 8e5407c..0000000
--- a/juneau-server/src/main/java/org/apache/juneau/server/RestMatcher.java
+++ /dev/null
@@ -1,76 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.
 The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance            *
-// * with the License.  You may obtain a copy of the License at                         
                                    *
-// *                                                                                    
                                    *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                        
                                    *
-// *                                                                                    
                                    *
-// * Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the        *
-// * specific language governing permissions and limitations under the License.         
                                    *
-// ***************************************************************************************************************************
-package org.apache.juneau.server;
-
-import org.apache.juneau.server.annotation.*;
-
-/**
- * Class used for defining method-level matchers using the {@link RestMethod#matchers()}
annotation.
- * <p>
- * Matchers are used to allow multiple Java methods to handle requests assigned to the same
- * 	URL path pattern, but differing based on some request attribute, such as a specific header
value.
- * For example, matchers can be used to provide two different methods for handling requests
- * 	from two different client versions.
- * <p>
- * Java methods with matchers associated with them are always attempted before Java methods
- * 	without matchers.
- * This allows a 'default' method to be defined to handle requests where no matchers match.
- * <p>
- * When multiple matchers are specified on a method, only one matcher is required to match.
- * This is opposite from the {@link RestMethod#guards()} annotation, where all guards
- * 	are required to match in order to execute the method.
- *
- * <h6 class='topic'>Example:</h6>
- * <p class='bcode'>
- * 	<jk>public class</jk> MyResource <jk>extends</jk> RestServlet
{
- *
- * 		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo"</js>,
matchers=IsDNT.<jk>class</jk>)
- * 		<jk>public</jk> Object doGetWithDNT() {
- * 			<jc>// Handle request with Do-Not-Track specified</jc>
- * 		}
- *
- * 		<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo"</js>)
- * 		<jk>public</jk> Object doGetWithoutDNT() {
- * 			<jc>// Handle request without Do-Not-Track specified</jc>
- * 		}
- * 	}
- *
- * 	<jk>public class</jk> IsDNT <jk>extends</jk> RestMatcher {
- * 		<ja>@Override</ja>
- * 		<jk>public boolean</jk> matches(RestRequest req) {
- * 			<jk>return</jk> req.getHeader(<jk>int</jk>.<jk>class</jk>,
<js>"DNT"</js>, 0) == 1;
- * 		}
- * 	}
- * </p>
- */
-public abstract class RestMatcher {
-
-	/**
-	 * Returns <jk>true</jk> if the specified request matches this matcher.
-	 *
-	 * @param req The servlet request.
-	 * @return <jk>true</jk> if the specified request matches this matcher.
-	 */
-	public abstract boolean matches(RestRequest req);
-
-	/**
-	 * Returns <jk>true</jk> if this matcher is required to match in order for the
method to be invoked.
-	 * <p>
-	 * If <jk>false</jk>, then only one of the matchers must match.
-	 *
-	 * @return <jk>true</jk> if this matcher is required to match in order for the
method to be invoked.
-	 */
-	public boolean mustMatch() {
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/91a388d0/juneau-server/src/main/java/org/apache/juneau/server/RestMatcherReflecting.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/RestMatcherReflecting.java
b/juneau-server/src/main/java/org/apache/juneau/server/RestMatcherReflecting.java
deleted file mode 100644
index bcfdb2a..0000000
--- a/juneau-server/src/main/java/org/apache/juneau/server/RestMatcherReflecting.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.
 The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance            *
-// * with the License.  You may obtain a copy of the License at                         
                                    *
-// *                                                                                    
                                    *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                        
                                    *
-// *                                                                                    
                                    *
-// * Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the        *
-// * specific language governing permissions and limitations under the License.         
                                    *
-// ***************************************************************************************************************************
-package org.apache.juneau.server;
-
-import java.lang.reflect.*;
-
-/**
- * Subclass of {@link RestMatcher} that gives access to the servlet and Java method it's
applied to.
- * <p>
- * 	Essentially the same as {@link RestMatcher} except has a constructor where the
- * 	Java method is passed in so that you can access annotations defined on it to tailor
- * 	the behavior of the matcher.
- */
-public abstract class RestMatcherReflecting extends RestMatcher {
-
-	/**
-	 * Constructor.
-	 *
-	 * @param servlet The REST servlet.
-	 * @param javaMethod The Java method that this rest matcher is defined on.
-	 */
-	protected RestMatcherReflecting(RestServlet servlet, Method javaMethod) {}
-}



Mime
View raw message