org.openxri.proxy.impl
Class AbstractProxy

java.lang.Object
  extended by org.openxri.proxy.impl.AbstractProxy
All Implemented Interfaces:
Proxy
Direct Known Subclasses:
BasicProxy

public abstract class AbstractProxy
extends java.lang.Object
implements Proxy

Provides a servlet implementation for the XRI resolution protocol

Author:
=wil, srinivasa.adapa@neustar.com

Field Summary
static java.lang.String _XRD_M
           
static java.lang.String _XRD_R
           
static java.lang.String _XRD_T
           
protected  java.lang.String bareXRINotFoundRedirect
           
protected  ProxyConfig config
           
static java.lang.String HTTP_ERROR_CONTENT_TYPE
           
static java.lang.String HTTP_XML_CONTENT_TYPE
           
protected static org.apache.commons.logging.Log log
          Static Logging object that can be used by derived classes
protected  Resolver resolver
          The XRI resolver object for the server.
protected  java.lang.String rootRedirect
           
protected  boolean supportRedirect
           
protected  boolean supportURIList
           
protected  boolean supportXRD
           
protected  boolean supportXRDS
           
 
Constructor Summary
AbstractProxy(ProxyConfig config)
           
 
Method Summary
 void init()
           
abstract  boolean onBeforeResolution(java.lang.String qxri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Hook method which gets called BEFORE resolution takes place
abstract  boolean onPartialResolutionSuccess(java.lang.String qxri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, int errorCode, java.lang.String errorMessage, PartialResolutionException pre)
          Hook method which gets called AFTER resolution has only been partially successful
abstract  boolean onResolutionSuccess(java.lang.String qxri, ResolverState state, java.lang.Object result, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Hook method which gets called AFTER resolution has been successful
protected  QueryParams parseQuery(javax.servlet.http.HttpServletRequest req)
           
 void process(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Service an incoming request.
protected  void processProxyRequest(java.lang.String qxri, MimeType resMediaType, java.lang.String serviceType, java.lang.String serviceMediaType, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Process a request for proxied resolution
protected  void send301(javax.servlet.http.HttpServletResponse response, java.lang.String location)
          Send a 301 HTTP redirect to the client.
protected  void send303(javax.servlet.http.HttpServletResponse response, java.lang.String location)
          Send a 303 HTTP redirect to the client.
protected  void sendError(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String qxri, int statusCode, int errorCode, java.lang.String errorMessage, java.lang.Throwable the)
           
protected  void sendError(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String qxri, int errorCode, java.lang.String errorMessage, java.lang.Throwable the)
           
protected  void sendFatalError(javax.servlet.http.HttpServletResponse resp, java.lang.String errorMessage)
          This method is called when an unknown error is encountered.
protected  void sendPartialResponse(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String qxri, boolean isDebug, MimeType resMediaType, PartialResolutionException pre, TrustType trustType)
           
protected  void sendResponse(javax.servlet.http.HttpServletResponse response, boolean isDebug, java.lang.String contentType, java.lang.String result, TrustType trustType)
          Send a HTTP response to the client.
protected  void sendResponse(javax.servlet.http.HttpServletResponse response, int statusCode, java.lang.String contentType, java.lang.String result, TrustType trustType)
          Send a HTTP response with the specified status code to the client.
protected  void sendResponse(javax.servlet.http.HttpServletResponse response, java.lang.String contentType, java.lang.String result, TrustType trustType)
          Send a HTTP response to the client.
 void shutdown()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

config

protected ProxyConfig config

log

protected static org.apache.commons.logging.Log log
Static Logging object that can be used by derived classes


_XRD_R

public static final java.lang.String _XRD_R
See Also:
Constant Field Values

_XRD_T

public static final java.lang.String _XRD_T
See Also:
Constant Field Values

_XRD_M

public static final java.lang.String _XRD_M
See Also:
Constant Field Values

HTTP_ERROR_CONTENT_TYPE

public static final java.lang.String HTTP_ERROR_CONTENT_TYPE
See Also:
Constant Field Values

HTTP_XML_CONTENT_TYPE

public static final java.lang.String HTTP_XML_CONTENT_TYPE
See Also:
Constant Field Values

supportXRDS

protected boolean supportXRDS

supportXRD

protected boolean supportXRD

supportURIList

protected boolean supportURIList

supportRedirect

protected boolean supportRedirect

rootRedirect

protected java.lang.String rootRedirect

bareXRINotFoundRedirect

protected java.lang.String bareXRINotFoundRedirect

resolver

protected Resolver resolver
The XRI resolver object for the server. Used for proxied resolution.

Constructor Detail

AbstractProxy

public AbstractProxy(ProxyConfig config)
Method Detail

init

public void init()
          throws ProxyException
Specified by:
init in interface Proxy
Throws:
ProxyException

shutdown

public void shutdown()
Specified by:
shutdown in interface Proxy

process

public void process(javax.servlet.http.HttpServletRequest request,
                    javax.servlet.http.HttpServletResponse response)
Service an incoming request.

Specified by:
process in interface Proxy

processProxyRequest

protected void processProxyRequest(java.lang.String qxri,
                                   MimeType resMediaType,
                                   java.lang.String serviceType,
                                   java.lang.String serviceMediaType,
                                   javax.servlet.http.HttpServletRequest request,
                                   javax.servlet.http.HttpServletResponse response)
                            throws java.io.IOException
Process a request for proxied resolution

Throws:
java.io.IOException

sendFatalError

protected void sendFatalError(javax.servlet.http.HttpServletResponse resp,
                              java.lang.String errorMessage)
This method is called when an unknown error is encountered. This simply outputs the error message in text/plain.


sendError

protected void sendError(javax.servlet.http.HttpServletRequest request,
                         javax.servlet.http.HttpServletResponse response,
                         java.lang.String qxri,
                         int errorCode,
                         java.lang.String errorMessage,
                         java.lang.Throwable the)
                  throws java.io.IOException
Throws:
java.io.IOException

sendError

protected void sendError(javax.servlet.http.HttpServletRequest request,
                         javax.servlet.http.HttpServletResponse response,
                         java.lang.String qxri,
                         int statusCode,
                         int errorCode,
                         java.lang.String errorMessage,
                         java.lang.Throwable the)
                  throws java.io.IOException
Throws:
java.io.IOException

sendPartialResponse

protected void sendPartialResponse(javax.servlet.http.HttpServletRequest request,
                                   javax.servlet.http.HttpServletResponse response,
                                   java.lang.String qxri,
                                   boolean isDebug,
                                   MimeType resMediaType,
                                   PartialResolutionException pre,
                                   TrustType trustType)
                            throws java.io.IOException
Throws:
java.io.IOException

send301

protected void send301(javax.servlet.http.HttpServletResponse response,
                       java.lang.String location)
                throws java.io.IOException
Send a 301 HTTP redirect to the client.

Throws:
java.io.IOException

send303

protected void send303(javax.servlet.http.HttpServletResponse response,
                       java.lang.String location)
                throws java.io.IOException
Send a 303 HTTP redirect to the client.

Throws:
java.io.IOException

sendResponse

protected void sendResponse(javax.servlet.http.HttpServletResponse response,
                            boolean isDebug,
                            java.lang.String contentType,
                            java.lang.String result,
                            TrustType trustType)
                     throws java.io.IOException
Send a HTTP response to the client. This method is designed to be overridden by subclasses for user-friendly display of errors.

Parameters:
isDebug - flag to indicate if the client wants text/xml to be returned
Throws:
java.io.IOException

sendResponse

protected void sendResponse(javax.servlet.http.HttpServletResponse response,
                            java.lang.String contentType,
                            java.lang.String result,
                            TrustType trustType)
                     throws java.io.IOException
Send a HTTP response to the client.

Throws:
java.io.IOException

sendResponse

protected void sendResponse(javax.servlet.http.HttpServletResponse response,
                            int statusCode,
                            java.lang.String contentType,
                            java.lang.String result,
                            TrustType trustType)
                     throws java.io.IOException
Send a HTTP response with the specified status code to the client.

Throws:
java.io.IOException

parseQuery

protected QueryParams parseQuery(javax.servlet.http.HttpServletRequest req)

onBeforeResolution

public abstract boolean onBeforeResolution(java.lang.String qxri,
                                           javax.servlet.http.HttpServletRequest request,
                                           javax.servlet.http.HttpServletResponse response)
Hook method which gets called BEFORE resolution takes place

Parameters:
qxri - The XRI to be resolved
request - The http servlet request
response - The http servlet response
Returns:
True means the entire request has been completely handled by this method and nothing else will be done

onResolutionSuccess

public abstract boolean onResolutionSuccess(java.lang.String qxri,
                                            ResolverState state,
                                            java.lang.Object result,
                                            javax.servlet.http.HttpServletRequest request,
                                            javax.servlet.http.HttpServletResponse response)
Hook method which gets called AFTER resolution has been successful

Parameters:
qxri - The XRI to be resolved
state - The resolution state after resolution
result - The resolution result (String or XRDS or XRD)
request - The http servlet request
response - The http servlet response
Returns:
True means the entire request has been completely handled by this method and nothing else will be done

onPartialResolutionSuccess

public abstract boolean onPartialResolutionSuccess(java.lang.String qxri,
                                                   javax.servlet.http.HttpServletRequest request,
                                                   javax.servlet.http.HttpServletResponse response,
                                                   int errorCode,
                                                   java.lang.String errorMessage,
                                                   PartialResolutionException pre)
Hook method which gets called AFTER resolution has only been partially successful

Parameters:
qxri - The XRI to be resolved
request - The http servlet request
response - The http servlet response
Returns:
True means the entire request has been completely handled by this method and nothing else will be done


Copyright © 2005-2010. All Rights Reserved.