PATH |
WOApplication
Inherits from: Object
Implements: NSKeyValueCoding NSKeyValueCoding.ErrorHandling NSKeyValueCodingAdditions
Package: com.webobjects.appserver
Class Description
The primary role of the WOApplication class is to coordinate the handling of HTTP requests. Each application must have exactly one WOApplication object (or, simply, application object). The application object receives client requests from an HTTP server adaptor, manages the processing that generates a response, and returns that response-typically an object representing a web page-to the adaptor. The adaptor, in turn, forwards the response in a suitable form to the HTTP server that originated the request.
In handling requests, an application object creates and manages one or more sessions; a session (represented by a WOSession object) dedicates resources to a period of access by a single user and stores persistent state during that period. Conceptually, each cycle of the request-response loop (or transaction) takes place within a session.
Besides acting as a facilitator between the adaptor and the rest of the application during request handling, WOApplication performs many secondary functions. It returns pages based on component name, caches page instances and component definitions, provides some facilities for error handling and script debugging, coordinates the different levels of multi-threaded execution, and furnishes a variety of data.
Typical deployment schemes balance the processing load by having multiple application instances per server adaptor. A single application, in turn, can interact with multiple adaptors; for example, an application can simultaneously communicate with secure-socket and Distributed Object adaptors as well as HTTP adaptors.
You can instantiate ready-made application objects from the WOApplication class or you can obtain the application object from a custom subclass of WOApplication. Custom WOApplication subclasses are common in WebObjects applications since there is often a need to override the awake, sleep, and request-handling methods. Compiled WOApplication subclasses can take any name, but if the name is anything other than "Application" you must implement your own main function to instantiate the application object from this class. However, if the class name is "Application," you don't need to modify main. In scripted applications, the code in the Application.wos file becomes the implementation logic of a WOApplication subclass automatically created at run time; the application object is instantiated from this subclass.
Constants
WOApplication declares class variables:
Class Variable | Description |
ApplicationDidDispatchRequestNotification | This class variable contains a String that names the notification posted at the very beginning of WOApplication's dispatchRequest(WORequest) method. |
ApplicationDidFinishLaunchingNotification | This class variable contains a String that names the notification posted by WOApplication's run() method after the application is launched. This notification is posted when the run() method logs the "Waiting for requests..." message to the console. |
ApplicationWillDispatchRequestNotification | This class variable contains a String that names the notification posted at the end of WOApplication's dispatchRequest(WORequest) method. |
ApplicationWillFinishLaunchingNotification | This class variable contains a String that names the notification posted at the very beginning of WOApplication's run() method. |
Interfaces Implemented
NSKeyValueCoding takeValueForKey valueForKey NSKeyValueCoding.ErrorHandling handleQueryWithUnboundKey handleTakeValueForUnboundKey unableToSetNullForKey NSKeyValueCodingAdditions takeValuesFromRequest valueForKeyPath
Method Types
Creating WOApplication Obtaining attributes adaptorsDispatchRequestsConcurrently allowsConcurrentRequestHandling isConcurrentRequestHandlingEnabled baseURL name number path Locking lock unlock Managing adaptors adaptorWithName adaptors Managing sessions setSessionStore sessionStore saveSessionForContext restoreSessionWithID createSessionForRequest Managing pages setPageCacheSize pageCacheSize permanentPageCacheSize setPermanentPageCacheSize setPageRefreshOnBacktrackEnabled isPageRefreshOnBacktrackEnabled pageWithName pageWithName Creating elements dynamicElementWithName Running run setTimeOut timeOut defaultRequestHandler terminate terminateAfterTimeInterval Handling requests appendToResponse awake createContextForRequest createSessionForRequest defaultRequestHandler defaultRequestHandlerClassName dispatchRequest handlerForRequest invokeAction registeredRequestHandlerKeys registerRequestHandler removeRequestHandlerForKey requestHandlerForKey setDefaultRequestHandler sleep takeValuesFromRequest Handling errors handleSessionCreationErrorInContext handlePageRestorationErrorInContext handleSessionRestorationErrorInContext handleException Script debugging logString debugString printsHTMLParserDiagnostics setPrintsHTMLParserDiagnostics logTakeValueForDeclarationNamed logSetValueForDeclarationNamed Statistics report setStatisticsStore statisticsStore statistics Monitor support monitorEnabled monitoringEnabled activeSessionsCount refuseNewSessions isRefusingNewSessions setMinimumActiveSessionsCount minimumActiveSessionsCount terminateAfterTimeInterval Resource manager support setResourceManager resourceManager User defaults loadFrameworks setLoadFrameworks isDebuggingEnabled autoOpenInBrowser setAutoOpenInBrowser isDirectConnectEnabled setDirectConnectEnabled cgiAdaptorURL setCGIAdaptorURL isCachingEnabled setCachingEnabled applicationBaseURL setApplicationBaseURL frameworksBaseURL setFrameworksBaseURL recordingPath setRecordingPath projectSearchPath setProjectSearchPath isMonitorEnabled setMonitorEnabled monitorHost setMonitorHost SMTPHost setSMTPHost adaptor setAdaptor port setPort listenQueueSize setListenQueueSize workerThreadCount setWorkerThreadCount additionalAdaptors setAdditionalAdaptors includeCommentsInResponses setIncludeCommentsInResponses componentRequestHandlerKey setComponentRequestHandlerKey directActionRequestHandlerKey setDirectActionRequestHandlerKey resourceRequestHandlerKey setResourceRequestHandlerKey sessionTimeout setSessionTimeOut Convenience Methods sharedEditingContext
Constructors
WOApplication
public WOApplication()
- Session store is in the server.
- Page cache size is 30 pages.
- Client caching of pages is enabled ( isPageRefreshOnBacktrackEnabled returns false).
A exception is thrown if initialization does not succeed.
Note: The global variable "WOApp" is initialized in this method. |
Static Methods
application
public static WOApplication application()
You may call this method, but do not override it.
licensedRequestLimit
public static final int licensedRequestLimit()
licensedRequestWindow
public static final long licensedRequestWindow()
licensingAllowsMultipleInstances
public static final boolean licensingAllowsMultipleInstances()
licensingAllowsMultipleThreads
public static final boolean licensingAllowsMultipleThreads()
canAccessFieldsDirectly
public static boolean canAccessFieldsDirectly()
true
, indicating that key/value coding is allowed to access fields in this object if an appropriate method isn't present.
main
public static void main(String[] argv[])
public static void main(String[] argv[], Class applicationClass)
Instance Methods
activeSessionsCount
public synchronized int activeSessionsCount()
The number returned here is only accurate if the application stores state in memory in the server, which is the default. If you use a custom state-storage strategy, there may be no way to tell how many sessions are active for a given application instance.
See Also: minimumActiveSessionsCount, setMinimumActiveSessionsCount
adaptorWithName
public WOAdaptor adaptorWithName( String aName, NSDictionary someArguments)
See Also: adaptors
adaptor
public String adaptor()
See Also: setAdaptor
adaptors
public NSArray adaptors()
adaptorsDispatchRequestsConcurrently
public final boolean adaptorsDispatchRequestsConcurrently()
true
if at least one adaptor contains multiple threads and will attempt to concurrently invoke the request handlers.
additionalAdaptors
public NSArray additionalAdaptors()
See Also: setAdditionalAdaptors
allowsConcurrentRequestHandling
public boolean allowsConcurrentRequestHandling()
true
if concurrent request handling is allowed.
See Also: isConcurrentRequestHandlingEnabled
appendToResponse
public void appendToResponse( WOResponse aResponse, WOContext aContext)
See Also: invokeAction
applicationBaseURL
public String applicationBaseURL()
See Also: setApplicationBaseURL
autoOpenInBrowser
public boolean autoOpenInBrowser()
awake
public void awake()
See Also: sleep
baseURL
public String baseURL()
WebObjects/Examples/HelloWorld.woa.
cgiAdaptorURL
public String cgiAdaptorURL()
See Also: setCGIAdaptorURL
componentRequestHandlerKey
public String componentRequestHandlerKey()
createContextForRequest
public WOContext createContextForRequest(WORequestaRequest)
createRequest
public WORequest createRequest( String aMethod, String aURL, String anHTTPVersion, NSDictionary someHeaders, NSData aContent, NSDictionary someInfo)
createResponseInContext
public WOResponse createResponseInContext(WOContext aContext)
createSessionForRequest
public WOSession createSessionForRequest(WORequest aRequest)
- First it looks for a compiled class of name "Session" that is a subclass of WOSession.
- If such a class does not exist, it looks for a ".wos" script with the name of "Session" in the application wrapper (".woa" directory).
- If the Session.wos script exists, the method parses the script and dynamically adds a scripted-class subclass of WOSession to the runtime.
The method then returns an allocated and initialized (using the default WOSession constructor) session instance of the selected class. It throws an exception if it is unable to create a new session.
Note: An implication of the foregoing description is that the names of compiled WOSession subclasses should be "Session"; if not, you will have to override this method to use the proper class to create the session object. |
See Also: restoreSessionWithID, saveSessionForContext
defaultRequestHandler
public WORequestHandler defaultRequestHandler()
http://somehost/cgi-bin/WebObjects/AppName.woa
The way that URLs of that type are handled is determined by the default request handler.
defaultRequestHandlerClassName
public String defaultRequestHandlerClassName()
debugString
public void debugString(String aFormatString)
You control whether this method displays output with the WODebuggingEnabled user default option. If WODebuggingEnabled is true, then the debugString messages display their output. If WODebuggingEnabled is false, the debugString messages don't display their output.
directActionRequestHandlerKey
public String directActionRequestHandlerKey()
dispatchRequest
public WOResponse dispatchRequest(WORequest aRequest)
dynamicElementWithName
public WOElement dynamicElementWithName( String aName, NSDictionary someAssociations, WOElement anElement NSArray languages)
The arguments aName and someAssociations are derived from a corresponding line in the declarations file. aName is a String that identifies the kind of element to create. Generally aName specifies a built-in WOElement such as WOString, but it may also identify a reusable component. (For more information, see the chapter "Using Reusable Components" in the WebObjects Developer's Guide.) For example, in the dynamicElementWithName message for the following declaration:
APP_STRING: WOString {value = applicationString;};
aName contains the string "WOString".
The someAssociations dictionary contains an entry for each attribute specified in the corresponding declaration. For the declaration above, someAssociations contains a single entry for WOString's value attribute. The keys of someAssociations are the attribute names and the values are WOAssociation objects.
WOApplication's implementation of dynamicElementWithName first searches for a WOElement named aName. If a WOElement is found, the method creates an instance and returns it. Otherwise, it searches for a component-either scripted or compiled-to return instead. If neither are found, this method returns null
.
finalize
protected void finalize() throws Throwable
frameworksBaseURL
public String frameworksBaseURL()
See Also: setFrameworksBaseURL
handleException
public WOResponse handleException( Exception anException, WOContext aContext)
See Also: handleSessionCreationErrorInContext, handleSessionRestorationErrorInContext
handlePageRestorationErrorInContext
public WOResponse handlePageRestorationErrorInContext(WOContext aContext)
See Also: handleException, handleSessionCreationErrorInContext, handleSessionRestorationErrorInContext
handleQueryWithUnboundKey
public Object handleQueryWithUnboundKey(String key)
handleSessionCreationErrorInContext
public WOResponse handleSessionCreationErrorInContext(WOContext aContext)
See Also: handleException, handlePageRestorationErrorInContext, handleSessionRestorationErrorInContext
handleSessionRestorationErrorInContext
public WOResponse handleSessionRestorationErrorInContext(WOContext aContext)
See Also: handleException, handlePageRestorationErrorInContext, handleSessionCreationErrorInContext
handleTakeValueForUnboundKey
public void handleTakeValueForUnboundKey(Object value, String key)
handlerForRequest
public WORequestHandler handlerForRequest(WORequest aRequest)
See Also: registerRequestHandler, registeredRequestHandlerKeys, requestHandlerForKey
includeCommentsInResponses
public boolean includeCommentsInResponses()
See Also: setIncludeCommentsInResponses
invokeAction
public WOActionResults invokeAction( WORequest aRequest, WOContext aContext)
See Also: appendToResponse
isCachingEnabled
public boolean isCachingEnabled()
See Also: setCachingEnabled, pageCacheSize
isConcurrentRequestHandlingEnabled
public final boolean isConcurrentRequestHandlingEnabled()
true
if adaptors dispatch requests concurrently and allowsConcurrentRequestHandling has been overridden to allow concurrent request handling.
See Also: allowsConcurrentRequestHandling
isDebuggingEnabled
public boolean isDebuggingEnabled()
true
, debugString prints out. Most startup-time status message are supressed if this method returns false
. By default, debugging is enabled. This is the cover method for the user default WODebuggingEnabled.
See Also: debugString
isDirectConnectEnabled
public boolean isDirectConnectEnabled()
See Also: cgiAdaptorURL
isMonitorEnabled
public boolean isMonitorEnabled()
true
if the application can contact Monitor upon startup and subsequently let Monitor gather statistics. It returns false
if no communication with Monitor can take place. By default, it can communicate with a Monitor application. 'This is a cover method for the user default WOMonitorEnabled.
See Also: setMonitorEnabled, monitorHost, setMonitorHost
isPageRefreshOnBacktrackEnabled
public boolean isPageRefreshOnBacktrackEnabled()
false
by default.
See Also: setPageRefreshOnBacktrackEnabled
isRefusingNewSessions
public boolean isRefusingNewSessions()
true
if the application instance is refusing new sessions, and false
otherwise. When the application instance refuses new sessions, the WebObjects adaptor tries to start the session in another instance of the same application. If no other instance is running and accepting new sessions, the user receives an error message.
isTerminating
public boolean isTerminating()
See Also: setTimeOut, defaultRequestHandler, terminateAfterTimeInterval, timeOut
lifebeatDestinationPort
public int lifebeatDestinationPort()
WOLifebeatDestinationPort
key and by the setLifebeatDestinationPort(int) method.
lifebeatEnabled
public boolean lifebeatEnabled()
lifebeatInterval
public int lifebeatInterval()
listenQueueSize
public Number listenQueueSize()
See Also: setListenQueueSize
loadFrameworks
public NSArray loadFrameworks()
See Also: setLoadFrameworks
lock
public void lock()
logSetValueForDeclarationNamed
public void logSetValueForDeclarationNamed( String aDeclarationName, String aDeclarationType, String aBindingName, String anAssociationDescription, Object aValue)
true
for the declaration in which the association appears. (Setting a value means the child component/element is setting a value in the parent). See logTakeValueForDeclarationNamed for a description of each of the arguments to this method.
logString
public void logString(String aString)
int i = 500; float f = 2.045; WOApplication.logString("Amount = " + i + ", Rate = " + f ", Total = " + i*f);
logTakeValueForDeclarationNamed
public void logTakeValueForDeclarationNamed( String aDeclarationName, String aDeclarationType, String aBindingName, String anAssociationDescription, Object aValue)
true
for the declaration in which the association appears. (Taking a value means the child component/element is taking a value from the parent). Override this method to alter the format of the log message. The arguments of this method are defined in the following example of a WebObjects declaration.
aDeclarationName : aDeclarationType { aBindingName = anAssociationDescription; }
Also, aValue is the value which is being pushed to or pulled from the child to the parent.
maxSocketIdleTime
public Number maxSocketIdleTime()
WOMaxSocketIdleTime
key and by the setMaxSocketIdleTime(Number) method.
See Also: setMaxSocketIdleTime
minimumActiveSessionsCount
public int minimumActiveSessionsCount()
true
, the application instance terminates. The default is 0.
See Also: activeSessionsCount, refuseNewSessions, setMinimumActiveSessionsCount
monitorEnabled
public boolean monitorEnabled()
monitoringEnabled
public boolean monitoringEnabled()
true
if the application is "monitorable" by the Monitor application, and false
otherwise. An application is "monitorable" if it was able to find a running Monitor upon startup and it is able to successfully communicate with that Monitor.
By default, all applications are monitorable if the Monitor application is running on the same machine as the application. You can specifically disable monitoring using the -WOMonitorEnabled NO option on the application command line. If you want the application to be monitorable and the Monitor is running on another host, you can start up the application through Monitor, or you can specify Monitor's host on the application command line this way:
MyApp.exe -WOMonitorEnabled YES -WOMonitorHost monitorHost ...
monitorHost
public String monitorHost()
true
. This is a cover for the user default WOMonitorHost.
See Also: setMonitorHost, isMonitorEnabled
name
public String name()
number
public String number()
outputPath
public String outputPath()
pageCacheSize
public int pageCacheSize()
See Also: setPageCacheSize
pageWithName
public WOComponent pageWithName( String aName, WORequest aRequest)
null
, the "Main" component is assumed. If the method cannot create a valid page instance, it throws
an exception.
As part of its implementation, this method creates a context with aRequest and calls pageWithName.
See Also: restorePageForContextID (WOSession), savePage (WOSession)
pageWithName
public WOComponent pageWithName( String aName, WOContext aContext)
null
, the "Main" component is assumed. If the method cannot create a valid page instance, it throws
an exception.
See Also: pageWithName, restorePageForContextID (WOSession), savePage (WOSession)
path
public String path()
permanentPageCacheSize
public int permanentPageCacheSize()
See Also: savePageInPermanentCache ( WOApplication)
port
public Number port()
See Also: setPort
printsHTMLParserDiagnostics
public boolean printsHTMLParserDiagnostics()
Returns whether the HTML parser prints diagnostic information to stdout when it encounters unbalanced HTML containers or other syntactically incorrect HTML. This method returns false
by default.
See Also: isDebuggingEnabled debugString
projectSearchPath
public NSArray projectSearchPath()
See Also: setProjectSearchPath
recordingPath
public String recordingPath()
null
.
If this method returns a path, all requests and responses are recorded in the HTTP format in numbered files (0000-request, 0000-response, 0001-request, 0001-response, and so on), and saved under the recording path specified. This directory is then used by the Playback tool to test the application. You will most likely set this as a command line argument (-WORecordingPath pathname), exercise your application to record a scenario you would like to test, and then stop the application. Afterward you can restart the application without the WORecordingPath argument, and point Playback to the recording directory just created to replay your sequence of requests and compare the responses received with the ones recorded.
See Also: setRecordingPath
refuseNewSessions
public synchronized void refuseNewSessions(boolean flag)
true
, the application does not create new sessions; when it receives a request from a new user, it refuses that request, and the adaptor must try to find another application instance that can process the request. If flag is false
, the application creates new sessions. false
is the default.
You use this method with setMinimumActiveSessionsCount to gracefully shut down application instances. Use setMinimumActiveSessionsCount to set the active session minimum to a certain number. When number of active sessions reaches the number you set and isRefusingNewSessions returns true
, the application terminates.
See Also: activeSessionsCount, isRefusingNewSessions, minimumActiveSessionsCount, setMinimumActiveSessionsCount
registerRequestHandler
public void registerRequestHandler( WORequestHandler aHandler, String aKey)
See Also: removeRequestHandlerForKey, registeredRequestHandlerKeys, requestHandlerForKey
registeredRequestHandlerKeys
public NSArray registeredRequestHandlerKeys()
See Also: handlerForRequest, requestHandlerForKey
removeRequestHandlerForKey
public WORequestHandler removeRequestHandlerForKey(String aRequestHandlerKey)
See Also: registerRequestHandler, requestHandlerForKey
requestHandlerForKey
public WORequestHandler requestHandlerForKey(String key)
See Also: handlerForRequest, registerRequestHandler, registeredRequestHandlerKeys
requestHandlingLock
public Object requestHandlingLock()
null
if the application isn't multithreaded.
resourceManager
public WOResourceManager resourceManager()
See Also: setResourceManager
resourceRequestHandlerKey
public String resourceRequestHandlerKey()
See Also: setResourceRequestHandlerKey
restoreSessionWithID
public WOSession restoreSessionWithID( String aSessionID, WOContext aContext)
See Also: createSessionForRequest, saveSessionForContext
run
public void run()
See Also: setTimeOut, defaultRequestHandler, terminateAfterTimeInterval
saveSessionForContext
public void saveSessionForContext(WOContext aContext)
See Also: restoreSessionWithID
sessionStore
public WOSessionStore sessionStore()
See Also: setSessionStore
sessionStoreClassName
public String sessionStoreClassName()
WOSessionStoreClassName
key. The default value for this key is "WOServerSessionStore".
sessionTimeout
public Number sessionTimeOut()
See Also: setSessionTimeOut
setAdaptor
public void setAdaptor(String anAdaptorName)
See Also: adaptor
setAdditionalAdaptors
public void setAdditionalAdaptors(NSArray anAdaptorPlist)
See Also: additionalAdaptors
setAllowsConcurrentRequestHandling
public void setAllowsConcurrentRequestHandling(boolean aValue)
WOAllowsConcurrentRequestHandling
(interpreted as a boolean) determines whether concurrent request handling is allowed.
setApplicationBaseURL
public void setApplicationBaseURL(String aBaseURL)
See Also: applicationBaseURL
setAutoOpenInBrowser
public void setAutoOpenInBrowser(boolean isEnabled)
true
, the application launches the web browser. If false
, the application does not launch the browser. Browser launching is enabled by default as long as there is a WOAdaptorURL key in the file NeXT_ROOT/NextLibrary/WOAdaptors/Configuration/WebServerConfig.plist.
To disable web browser launching, you must send this message in your subclass's constructor.
See Also: autoOpenInBrowser
setCachingEnabled
public void setCachingEnabled(boolean flag)
See Also: isCachingEnabled, pageCacheSize
setCGIAdaptorURL
public void setCGIAdaptorURL(String aURL)
See Also: cgiAdaptorURL
setComponentRequestHandlerKey
public void setComponentRequestHandlerKey(String key)
See Also: componentRequestHandlerKey
setDefaultRequestHandler
public void setDefaultRequestHandler(WORequestHandler aHandler)
Sets the default request handler.
See Also: defaultRequestHandler
setDirectActionRequestHandlerKey
public void setDirectActionRequestHandlerKey(String key)
See Also: directActionRequestHandlerKey
setDirectConnectEnabled
public void setDirectConnectEnabled(boolean flag)
Direct connect actually transforms your application in a simple web server of its own. In particular, it is then able to find and return its images and resources as if it were a web server. It is very useful in development mode: You don't need a web server. Just point your URL to the port where your application is listening, and the application will handle all urls.
If this flag is true
, the following happens:
- When using autoOpenInBrowser, a direct connect URL will be used.
- When using WOMailDelivery to mail pages with dynamic links in them, these links will be generated with a complete direct connect URL format. People receiving these mails will be able to access the application with direct connect.
- All files on the system are accessible through the resource request handler. On the other hand, if this flag is
false
, the resource request handler can be used to retrieve data objects from memory only, and no more reading in the file system is permitted (secure mode for deployment).
See Also: isDirectConnectEnabled, cgiAdaptorURL
setFrameworksBaseURL
public void setFrameworksBaseURL(String aString)
See Also: frameworksBaseURL
setIncludeCommentsInResponses
public void setIncludeCommentsInResponses(boolean flag)
See Also: includeCommentsInResponses
setListenQueueSize
public void setListenQueueSize(Number aListenQueueSize)
See Also: listenQueueSize
setLoadFrameworks
public void setLoadFrameworks(NSArray frameworkList)
See Also: loadFrameworks
setMaxSocketIdleTime
public void setMaxSocketIdleTime(Number maxSocketIdleTime)
WOMaxSocketIdleTime
key.
setMinimumActiveSessionsCount
public void setMinimumActiveSessionsCount(int anInt)
You use this method to gracefully shut down application instances. If the active sessions count reaches this number andisRefusingNewSessions returns true
, the application terminates. You might want to terminate application instances periodically for performance reasons; some applications leak a certain amount of memory per transaction, and shutting down and restarting instances of those applications can free up that memory.
See Also: activeSessionsCount, isRefusingNewSessions, minimumActiveSessionsCount, refuseNewSessions
setMonitorEnabled
public void setMonitorEnabled(boolean flag)
true
, the application can contact Monitor upon startup and subsequently let Monitor gather statistics. If flag is false
, no comunication with Monitor can take place. By default, it can communicate with a Monitor application.
See Also: isMonitorEnabled
setMonitorHost
public void setMonitorHost(String hostName)
true
.
See Also: monitorHost, isMonitorEnabled
setPageCacheSize
public void setPageCacheSize(int anInt)
You turn page-instance caching off by invoking this method with an argument of zero. In this case, when the user backtracks to a page, the page is not stored in the session and so must be re-created "from scratch."
See Also: pageCacheSize
setPageRefreshOnBacktrackEnabled
public void setPageRefreshOnBacktrackEnabled(boolean flag)
true
, disables caching of pages by the client by setting the page's expiration-time header to the current date and time. (By default, this attribute is set to false
.) Disabling of client caching affects what happens during backtracking. With client caching turned off, the browser resends the URL to the server for the page requested by backtracking. The application must return a new page to the browser (corresponding to a new WOComponent instance). This behavior is desirable when you do not want the user to backtrack to a page that might be obsolete because of changes that have occurred in the session.
When this flag is turned on and a request corresponding to a client backtrack occurs, the retrieved page will only be asked to regenerate its response. The first two phases of a normal request-response loop (value extraction from the request and action invocation) do not occur.
See Caching Strategies in the class description for further details.
See Also: isPageRefreshOnBacktrackEnabled
setPermanentPageCacheSize
public void setPermanentPageCacheSize(int aSize)
See Also: permanentPageCacheSize
setPort
public void setPort(Number port)
See Also: port
setPrintsHTMLParserDiagnostics
public void setPrintsHTMLParserDiagnostics(boolean flag)
Sets whether the HTML parser prints diagnostic information to stdout when it encounters unbalanced HTML containers or other syntactically incorrect HTML. This diagnostic information is not printed by default.
See Also: debugString
setProjectSearchPath
public void setProjectSearchPath(NSArray searchPath)
See Also: projectSearchPath
setRecordingPath
public void setRecordingPath(String path)
null
as the path if you don't want to save recording information. By default, recording information is not saved.
If you save recording information, all requests and responses are recorded in the HTTP format in numbered files (0000-request, 0000-response, 0001-request, 0001-response, and so on), and saved under the recording path specified. This directory is then used by the Playback tool to test the application. You will most likely set this as a command line argument (-WORecordingPath pathname), exercise your application to record a scenario you would like to test, and then stop the application. Afterward you can restart the application without the WORecordingPath argument, and point Playback to the recording directory just created to replay your sequence of requests and compare the responses received with the ones recorded.
See Also: recordingPath
setResourceManager
public void setResourceManager(WOResourceManager aResourceManager)
See Also: resourceManager
setResourceRequestHandlerKey
public void setResourceRequestHandlerKey(String key)
See Also: resourceRequestHandlerKey
setSessionStore
public void setSessionStore(WOSessionStore aSessionStore)
See Also: sessionStore
setSessionStoreClassName
public void setSessionStoreClassName(String aString)
WOSessionStoreClassName
key.
setSessionTimeOut
public void setSessionTimeOut(Number aTimeOut)
See Also: sessionTimeout
setSMTPHost
public void setSMTPHost(String hostName)
See Also: SMTPHost
setSocketCacheSize
public void setSocketCacheSize(Number socketCacheSize)
WOSocketCacheSize
key, which has a default value of 100.
setSocketMonitorSleepTime
public void setSocketMonitorSleepTime(Number socketMonitorSleepTime)
WOSocketMonitorSleepTime
key will be used (the default value for this key is 50 msec).
setStatisticsStore
public void setStatisticsStore(WOStatisticsStore aStatisticsStore)
See Also: statisticsStore
setWorkerThreadCount
public void setWorkerThreadCount(Number aWorkerThreadCount)
See Also: workerThreadCount
setTimeOut
public void setTimeOut(double aTimeInterval)
This method differs from terminateAfterTimeInterval in that with this method, the application must be idle for aTimeInterval seconds for the application to terminate. terminateAfterTimeInterval terminates the application whether it is active or not.
See Also: timeOut
sharedEditingContext
public com.webobjects.eocontrol.EOSharedEditingContext sharedEditingContext()
This is a convenience method that returns the default shared editing context.
See Also: EOSharedEditingContext class description in the EOControl Framework
sleep
public void sleep()
SMTPHost
public String SMTPHost()
See Also: setSMTPHost
socketCacheSize
public Number socketCacheSize()
See Also: setSocketCacheSize
socketMonitorSleepTime
public Number socketMonitorSleepTime()
See Also: setSocketMonitorSleepTime
statistics
public NSDictionary statistics()
WOApplication.application().statisticsStore().statistics()
statisticsStore
public WOStatisticsStore statisticsStore()
See Also: setStatisticsStore
takeValueForKey
public void takeValueForKey(Object value, String key)
takeValueForKeyPath
public void takeValueForKeyPath(Object value, String keyPath)
takeValuesFromRequest
public void takeValuesFromRequest( WORequest aRequest, WOContext aContext)
See Also: appendToResponse, invokeAction
terminate
public void terminate()
See Also: isTerminating, setTimeOut
terminateAfterTimeInterval
public void terminateAfterTimeInterval(double aTimeInterval)
This method differs from setTimeOut in that it does not set idle time; terminateAfterTimeInterval shuts down the application regardless of whether it is idle.
timeOut
public double timeOut()
See Also: setTimeOut
toString
public String toString()
unableToSetNullForKey
public void unableToSetNullForKey(String key)
unlock
public void unlock()
validationFailedWithException
public synchronized void validationFailedWithException( Throwable exception, Object value, String keyPath, WOComponent aComponent, WOSession aSession)
valueForKey
public Object valueForKey(String key)
valueForKeyPath
public Object valueForKeyPath(String keyPath)
workerThreadCount
public Number workerThreadCount()
See Also: setWorkerThreadCount
© 2001 Apple Computer, Inc. (Last Published April 15, 2001)