org.w3c.jigsaw.proxy
Class ForwardFrame

java.lang.Object
  |
  +--org.w3c.tools.resources.AttributeHolder
        |
        +--org.w3c.tools.resources.Resource
              |
              +--org.w3c.tools.resources.FramedResource
                    |
                    +--org.w3c.tools.resources.ResourceFrame
                          |
                          +--org.w3c.tools.resources.ProtocolFrame
                                |
                                +--org.w3c.jigsaw.frames.HTTPFrame
                                      |
                                      +--org.w3c.jigsaw.proxy.ForwardFrame
Direct Known Subclasses:
MirrorFrame, ProxyFrame

public class ForwardFrame
extends HTTPFrame


Field Summary
protected static int ATTR_LOCAL_ROOT
          Attribute index - The local resource, if server-wide request.
protected static int ATTR_RECEIVED_BY
          Attribute index - The received by attribute of that proxy.
protected static int ATTR_TRACEREQ
          Attribute index - Try to trace how the request has been processed.
 int cache_hits
          Statistics - Number of hits.
 int cache_icps
          Statistics - Number of ICP redirects.
 int cache_misses
          Statistics - Number of misses.
 int cache_nocache
          Statistics - Number of requests that didn't use cache.
 int cache_retrievals
          Statistics - Number of successfull revalidations.
 int cache_revalidations
          Statistics - Number of successfull revalidations.
protected  org.w3c.tools.resources.ResourceReference lroot
          Get the local root resource to use for internal requests.
protected  HttpManager manager
          The HttpManager we use.
 int reqcount
          Statistics - Number of requests handled.
 int reqerred
          Statistics - Errors.
 
Fields inherited from class org.w3c.jigsaw.frames.HTTPFrame
_allowed, acceptRanges, allowed, ATTR_ALLOW_DEL, ATTR_BROWSABLE, ATTR_CONTENT_ENCODING, ATTR_CONTENT_LANGUAGE, ATTR_CONTENT_LENGTH, ATTR_CONTENT_TYPE, ATTR_ICON, ATTR_ICONDIR, ATTR_INDEX, ATTR_MAXAGE, ATTR_MD5, ATTR_PUTABLE, ATTR_QUALITY, ATTR_RELOCATE, ATTR_STYLE_LINK, ATTR_TITLE, browsetype, COND_FAILED, COND_OK, dresource, fresource, listing, listing_stamp, STATE_CONTENT_LOCATION
 
Fields inherited from class org.w3c.tools.resources.ResourceFrame
filterClass, frameListener, resource
 
Fields inherited from class org.w3c.tools.resources.FramedResource
ATTR_OID, attrListener, debugEvent, event_disabled, framesRef, structListener
 
Fields inherited from class org.w3c.tools.resources.Resource
ATTR_CONTEXT, ATTR_HELP_URL, ATTR_IDENTIFIER, ATTR_LAST_MODIFIED, ATTR_PARENT, ATTR_RESOURCE_FRAMES, ATTR_STORE_ENTRY, ATTR_URL
 
Fields inherited from class org.w3c.tools.resources.AttributeHolder
attributes, slowpickle, values
 
Constructor Summary
ForwardFrame()
           
 
Method Summary
protected  org.w3c.jigsaw.http.Reply dupReply(org.w3c.jigsaw.http.Request request, Reply rep)
          Duplicate the given client side reply into a server side one.
protected  Request dupRequest(org.w3c.jigsaw.http.Request request)
          Duplicate a server side request into a client side request.
 java.lang.String getLocalRoot()
          Get the local root resource name.
 org.w3c.tools.resources.ResourceReference getLocalRootResource()
           
 java.lang.String getReceivedBy()
          Get the received by attribute value.
 boolean getTraceRequest()
          Should we try to trace request path ?
 java.lang.String getVia()
           
 void initialize(java.lang.Object[] values)
           
 void notifyUnload()
          This resource is being unloaded.
 org.w3c.tools.resources.ReplyInterface perform(org.w3c.tools.resources.RequestInterface ri)
          Perform the given proxied request.
 void registerResource(org.w3c.tools.resources.FramedResource resource)
          companion to initialize, called after the register
protected  void updateStatistics(Request r)
          Update relevant statistics (kind of a hack).
 
Methods inherited from class org.w3c.jigsaw.frames.HTTPFrame
addStyleSheet, attributeChanged, browse, checkIfMatch, checkIfModifiedSince, checkIfNoneMatch, checkIfUnmodifiedSince, checkRequest, computeTrashDir, computeTrashFile, createDefaultReply, createFileReply, delete, deleteDirectoryResource, deleteFileResource, deleteOtherResource, extended, get, getAllowDeleteFlag, getBrowsableFlag, getBrowseType, getContentEncoding, getContentLanguage, getContentLength, getContentType, getDirectoryListing, getDirectoryResource, getDirectoryResource, getETag, getFileResource, getFileResource, getHelpURL, getHelpURL, getIcon, getIconDirectory, getIndex, getMaxAge, getMD5Flag, getOtherResource, getPutableFlag, getQuality, getRelocateFlag, getStyleSheetURL, getTitle, getURL, handleRangeRequest, head, headDirectoryResource, headFileResource, headOtherResource, link, lookup, lookupDirectory, lookupFile, lookupOther, lookupResource, options, performFrames, post, put, putFileResource, putOtherResource, registerOtherResource, setValue, trace, unlink, updateCachedHeaders
 
Methods inherited from class org.w3c.tools.resources.ResourceFrame
addFrameEventListener, eventDisabled, fireFrameEvent, frameModified, getFilters, getFilters, getFrameReference, getResource, getResourceReference, getSpaceEntry, getURLPath, lookupFilters, lookupFrames, postFrameEvent, processEvent, removeFrameEventListener, unregisterResource, updateDefaultChildAttributes
 
Methods inherited from class org.w3c.tools.resources.FramedResource
addAttributeChangedListener, addStructureChangedListener, collectFramesReference, delete, disableEvent, displayEvent, enableEvent, fireAttributeChangeEvent, fireStructureChangedEvent, fireStructureChangedEvent, frameAdded, frameRemoved, getClone, getFrame, getFrame, getFrameReference, getFrameReference, getFramesReference, getOid, markModified, postAttributeChangeEvent, postEvent, postStructureChangedEvent, postStructureChangedEvent, registerFrame, registerFrameIfNone, removeAttributeChangedListener, removeStructureChangedListener, unregisterFrame
 
Methods inherited from class org.w3c.tools.resources.Resource
acceptUnload, checkMultipleLock, collectFrames, getContext, getFrame, getFrames, getIdentifier, getLastModified, getParent, getServer, getSpace, getStoreEntry, getValue, getValue, isInitialized, setContext, setContext, setValue, updateAttributes
 
Methods inherited from class org.w3c.tools.resources.AttributeHolder
definesAttribute, definesAttribute, getAttributes, getBoolean, getChar, getClone, getClone, getDouble, getFloat, getInt, getLong, getString, getValue, initialize, lookupAttribute, pickle, print, setBoolean, setChar, setDouble, setFloat, setInt, setLong, setString, setValue, unpickle, unpickle, unpickle, unpickleInstance, unpickleInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTR_LOCAL_ROOT

protected static int ATTR_LOCAL_ROOT
Attribute index - The local resource, if server-wide request.

ATTR_RECEIVED_BY

protected static int ATTR_RECEIVED_BY
Attribute index - The received by attribute of that proxy.

ATTR_TRACEREQ

protected static int ATTR_TRACEREQ
Attribute index - Try to trace how the request has been processed.

manager

protected HttpManager manager
The HttpManager we use.

cache_hits

public int cache_hits
Statistics - Number of hits.

cache_misses

public int cache_misses
Statistics - Number of misses.

cache_revalidations

public int cache_revalidations
Statistics - Number of successfull revalidations.

cache_retrievals

public int cache_retrievals
Statistics - Number of successfull revalidations.

cache_nocache

public int cache_nocache
Statistics - Number of requests that didn't use cache.

reqcount

public int reqcount
Statistics - Number of requests handled.

cache_icps

public int cache_icps
Statistics - Number of ICP redirects.

reqerred

public int reqerred
Statistics - Errors.

lroot

protected org.w3c.tools.resources.ResourceReference lroot
Get the local root resource to use for internal requests.
Constructor Detail

ForwardFrame

public ForwardFrame()
Method Detail

getLocalRoot

public java.lang.String getLocalRoot()
Get the local root resource name.

getReceivedBy

public java.lang.String getReceivedBy()
Get the received by attribute value.

If this attribute is not defined, it will default to the name of the host running the proxy.

Returns:
A String.

getTraceRequest

public boolean getTraceRequest()
Should we try to trace request path ?
Returns:
A boolean.

getVia

public java.lang.String getVia()

getLocalRootResource

public org.w3c.tools.resources.ResourceReference getLocalRootResource()

updateStatistics

protected void updateStatistics(Request r)
Update relevant statistics (kind of a hack).

dupRequest

protected Request dupRequest(org.w3c.jigsaw.http.Request request)
                      throws org.w3c.jigsaw.http.HTTPException,
                             java.io.IOException
Duplicate a server side request into a client side request.
Parameters:
request - The server side request.
Returns:
A Client side request.
Throws:
org.w3c.jigsaw.http.HTTPException - if processing the request failed.
java.io.IOException - if an IO error occurs.

dupReply

protected org.w3c.jigsaw.http.Reply dupReply(org.w3c.jigsaw.http.Request request,
                                             Reply rep)
                                      throws org.w3c.jigsaw.http.HTTPException,
                                             java.io.IOException
Duplicate the given client side reply into a server side one. Perform any actions requested by HTTP/1.1.
Parameters:
request - The request ebing processed.
reply - The reply to clone.
Returns:
A server-side Reply instance.
Throws:
org.w3c.jigsaw.http.HTTPException - If some HTTP errors occured in the process.
java.io.IOException - If setting the streams failed.

perform

public org.w3c.tools.resources.ReplyInterface perform(org.w3c.tools.resources.RequestInterface ri)
                                               throws org.w3c.tools.resources.ProtocolException,
                                                      org.w3c.tools.resources.ResourceException
Perform the given proxied request.
Parameters:
request - The request to perform.
Returns:
A Reply instance.
Throws:
org.w3c.tools.resources.ProtocolException - if processing the request failed.
org.w3c.tools.resources.ResourceException - if the resource got a fatal error.
Overrides:
perform in class HTTPFrame

notifyUnload

public void notifyUnload()
This resource is being unloaded. Tell the HttpManager to save any pending data to stable storage.
Overrides:
notifyUnload in class org.w3c.tools.resources.FramedResource

registerResource

public void registerResource(org.w3c.tools.resources.FramedResource resource)
companion to initialize, called after the register
Overrides:
registerResource in class HTTPFrame

initialize

public void initialize(java.lang.Object[] values)
Overrides:
initialize in class org.w3c.tools.resources.FramedResource