org.w3c.jigsaw.proxy
Class ForwardFrame

java.lang.Object
  extended by org.w3c.tools.resources.AttributeHolder
      extended by org.w3c.tools.resources.Resource
          extended by org.w3c.tools.resources.FramedResource
              extended by org.w3c.tools.resources.ResourceFrame
                  extended by org.w3c.tools.resources.ProtocolFrame
                      extended by org.w3c.jigsaw.frames.HTTPFrame
                          extended by org.w3c.jigsaw.proxy.ForwardFrame
All Implemented Interfaces:
java.lang.Cloneable, java.util.EventListener, AttributeChangedListener, FrameEventListener
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  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.
protected static HttpWarning WARN_HEURISTIC
          The HTTP warning used to indicate a heuristic expiration time.
 
Fields inherited from class org.w3c.jigsaw.frames.HTTPFrame
acceptRanges, allowed, ATTR_ALLOW_DEL, ATTR_BROWSABLE, ATTR_CHARSET, ATTR_CONTENT_ENCODING, ATTR_CONTENT_LANGUAGE, ATTR_CONTENT_LENGTH, ATTR_CONTENT_TYPE, ATTR_ICON, ATTR_ICONDIR, ATTR_INDEX, ATTR_INDEXES, ATTR_MAXAGE, ATTR_MD5, ATTR_PUTABLE, ATTR_QUALITY, ATTR_RELOCATE, ATTR_STYLE_LINK, ATTR_TITLE, browsetype, COND_FAILED, COND_OK, COND_WEAK, 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, co, id
 
Fields inherited from class org.w3c.tools.resources.AttributeHolder
attributes, values
 
Constructor Summary
ForwardFrame()
           
 
Method Summary
protected  Reply dupReply(Request request, Reply rep)
          Duplicate the given client side reply into a server side one.
protected  Request dupRequest(Request request)
          Duplicate a server side request into a client side request.
 java.lang.String getLocalRoot()
          Get the local root resource name.
 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)
          Initialize the frames of that framed resource.
 void notifyUnload()
          This resource is being unloaded.
 ReplyInterface perform(RequestInterface ri)
          Perform the given proxied request.
 void registerResource(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, checkExpect, checkIfMatch, checkIfModifiedSince, checkIfNoneMatch, checkIfUnmodifiedSince, checkRequest, checkValidators, computeContainerListing, computeETag, computeTrashDir, computeTrashFile, createDefaultReply, createFileReply, delete, deleteDirectoryResource, deleteFileResource, deleteMe, deleteOtherResource, extended, get, getAllow, getAllowDeleteFlag, getBrowsableFlag, getBrowseType, getCharset, getContentEncoding, getContentLanguage, getContentLength, getContentType, getDirectoryListing, getDirectoryResource, getDirectoryResource, getETag, getFileResource, getFileResource, getHelpURL, getHelpURL, getIcon, getIconDirectory, getIndex, getIndexes, getMaxAge, getMD5Flag, getOtherResource, getPutableFlag, getQuality, getRelocateFlag, getStyleSheetURL, getTitle, getURL, handleRangeRequest, head, headDirectoryResource, headFileResource, headOtherResource, initialize, link, lookup, lookupDirectory, lookupFile, lookupOther, lookupResource, options, performFrames, pickleValues, post, put, putFileResource, putOtherResource, registerOtherResource, setValue, trace, unlink, unsafeGetQuality, 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, setSilentValue, setSilentValue, 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, isUnloaded, setContext, setContext, setValue, unsafeGetContext, unsafeGetFrame, unsafeGetFrames, unsafeGetIdentifier, unsafeGetResourceReference, unsafeGetURLPath, unsafeGetValue, updateAttributes
 
Methods inherited from class org.w3c.tools.resources.AttributeHolder
definesAttribute, definesAttribute, getAttributes, getBoolean, getChar, getClone, getClone, getDouble, getFloat, getInt, getLong, getString, getValue, lookupAttribute, print, setBoolean, setChar, setDouble, setFloat, setInt, setLong, setString, setValue, unsafeDefinesAttribute, unsafeGetDouble, unsafeGetString
 
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.


WARN_HEURISTIC

protected static HttpWarning WARN_HEURISTIC
The HTTP warning used to indicate a heuristic expiration time.


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 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 ResourceReference getLocalRootResource()

updateStatistics

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


dupRequest

protected Request dupRequest(Request request)
                      throws 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:
HTTPException - if processing the request failed.
java.io.IOException - if an IO error occurs.

dupReply

protected Reply dupReply(Request request,
                         Reply rep)
                  throws 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:
HTTPException - If some HTTP errors occured in the process.
java.io.IOException - If setting the streams failed.

perform

public ReplyInterface perform(RequestInterface ri)
                       throws ProtocolException,
                              ResourceException
Perform the given proxied request.

Overrides:
perform in class HTTPFrame
Parameters:
request - The request to perform.
Returns:
A Reply instance.
Throws:
ProtocolException - if processing the request failed.
ResourceException - if the resource got a fatal error.

notifyUnload

public void notifyUnload()
This resource is being unloaded. Tell the HttpManager to save any pending data to stable storage.

Overrides:
notifyUnload in class FramedResource

registerResource

public void registerResource(FramedResource resource)
companion to initialize, called after the register

Overrides:
registerResource in class HTTPFrame
Parameters:
resource - The resource associated with this frame.

initialize

public void initialize(java.lang.Object[] values)
Description copied from class: FramedResource
Initialize the frames of that framed resource.

Overrides:
initialize in class FramedResource
Parameters:
values - Default attribute values.