AbstractJFrameAgent
public class com.cometway.swing.AbstractJFrameAgent
extends com.cometway.ak.Agent
This abstract Agent contains basic functionality useable by an agent that manages a JFrame. Methods in this abstract implementation can be overridden to create and manage any subclass of JFrame. Convenience methods are provided for handling menus and the menubar, as well as the Look and Feel used by Swing.
AbstractJFrameController
public class com.cometway.swing.AbstractJFrameController
extends com.cometway.swing.AbstractJFrameAgent
This class acts as an agent-based proxy for a swing JFrame. It creates an inner class called ControlledFrame whose paint method is proxied to the drawFrame method which is intended to be overridden by subclasses of this class. The createFrame method can also be overridden if more control over the JFrame is needed. This agent registers itself with the Service Manager and calls createFrame upon starting.
Agent
public class com.cometway.ak.Agent
extends com.cometway.props.Props
implements com.cometway.ak.AgentInterface
An abstract implementation of the AgentInterface. There is built-in support for routing agent output to the agent's output and error streams, and masking this output through the use of hide_println, hide_debug, and hide_warning props.
| Agent Property | Description |
| Boolean hide_debug |
Disables debug output when set to true. |
| Boolean hide_println |
Disables standard output when set to true. |
| Boolean hide_warning |
Disables warning output when set to true. |
| String id |
Unique ID for this agent. |
| String name |
Name of this agent. |
AgentKernel
public class com.cometway.ak.AgentKernel
extends com.cometway.ak.Agent
implements com.cometway.ak.AgentKernelInterface
Reference implementation of the AgentKernelInterface.
| Agent Property | Description |
| Integer next_agent_id |
ID of the next agent that will be created. |
AgentReplicator
public class com.cometway.ak.AgentReplicator
extends com.cometway.ak.Agent
Used to create multiple instances of the same kind of agent. agent_classname specifies the classname of the agent to start; number_of_agents specifies the number of agent_classname to start.
AgentServer
public class com.cometway.om.AgentServer
extends com.cometway.ak.ServiceAgent
implements com.cometway.om.AgentServerInterface
A standard server interface to the agent kernel.
| Agent Property | Description |
| String om_service_name |
Service name of the IObjectManager implementation to use. |
| String service_name |
Service name used by this agent to register itself. |
AutoReplyAgent
public class com.cometway.email.AutoReplyAgent
extends com.cometway.ak.RequestAgent
This agent sets itself up to receive messages from a ReceiveEmailAgent and automatically respond to the sender using the SendEmailAgent. In most cases, this will be subclassed and the getReply method should be overridden.
| Agent Property | Description |
| String reply_message |
A message sent in reply to a request. |
| String reply_subject |
A subject of a message sent in reply. |
| String reply_to |
Reply To email address used by this agent when sending email messages. |
| String send_email_service_name |
Service name of the SendEmailInterface to use for sending email. |
| String service_name |
Service name used by this agent to register itself. |
CRLFConversionAgent
public class com.cometway.tools.CRLFConversionAgent
extends com.cometway.ak.Agent
This agent converts the CRLF format of files recursively contained in the scan_dir, specified by the output_format (system, unix, macintosh, or dos). If recursive is set to false only files in the scan_dir are changed.
| Agent Property | Description |
| String output_format |
CRLF format of the output file (system, unix, macintosh, or dos). |
| Boolean recursive |
This agent operates recursively when set to true. |
| String scan_dir |
The directory to be scanned by this agent. |
CheckConnectivityAgent
public class com.cometway.net.CheckConnectivityAgent
extends com.cometway.ak.ServiceAgent
implements com.cometway.net.CheckConnectivityInterface
This ServiceAgent runs on a thread and checks if it can reach a specified host at a set interval. This agent implements the CheckConnectivityInterface which provides a method, isReachable(), that returns true if the specified host can be connected to. There are 2 types of connectivity tests, determined by the "check_method" property. If this property is set to "ping", then an ICMP echo and/or TCP ECHO is sent to the host. If this property is set to "connect", then a TCP connection is attempted to the host on the specified port.
| Agent Property | Description |
| String check_interval_ms |
|
| String check_method |
|
| String connect_port |
|
| String service_name |
Service name used by this agent to register itself. |
| String target_host |
|
| String timeout_ms |
|
DeleteFileAgent
public class com.cometway.io.DeleteFileAgent
extends com.cometway.ak.Agent
This agent deletes the files specified by delete_files.
| Agent Property | Description |
| String delete_files |
A comma separated list of filenames to delete. |
DelimitedLineExportAgent
public class com.cometway.io.DelimitedLineExportAgent
extends com.cometway.ak.Agent
This agent exports the contents of a Props list to a tab delimited text file suitable for import by other applications such as FileMaker or Excel.
| Agent Property | Description |
| String database_name |
The service name prefix where PropsList databases are found. |
| String delimiter_char |
|
| String from_fields |
Comma separated list of database fields from which the data will be read. |
| String save_file |
The file this agent will save to. |
| String to_fields |
Comma separated list of database fields where the data will be written. |
DelimitedLineImportAgent
public class com.cometway.io.DelimitedLineImportAgent
extends com.cometway.io.Agent
This agent reads lines from the specified delimited text file and copies its records into the specified PropsList. All lines are assumed to be separated by a newline.
| Agent Property | Description |
| String database_name |
The service name prefix where PropsList databases are found. |
| String delimiter_char |
|
| String load_file |
The file this agent will load from. |
EmailBugReportAgent
public class com.cometway.email.EmailBugReportAgent
extends com.cometway.ak.ServiceAgent
implements com.cometway.util.ISchedulable,com.cometway.email.BugReportInterface
This agent registers itself with the Service Manager as a BugReportInterface and periodically submits the bug reports collects as an email message to a list of recipients using the SendEmailInterface registered with the Service Manager as "send_email".
| Agent Property | Description |
| String recipients |
A comma separated list of email addresses to which an email message will be sent by this agent. |
| String reply_to |
Reply To email address used by this agent when sending email messages. |
| String report_title |
Title of the report generated by this agent. |
| String schedule |
Schedule used by this agent. |
| String service_name |
Service name used by this agent to register itself. |
EmailListAgent
public class com.cometway.email.EmailListAgent
extends com.cometway.props.PropsListIteratorAgent
Sends emails to a list of recipients specified in a PropsList database.
| Agent Property | Description |
| String database_name |
The service name prefix where PropsList databases are found. |
| String email_key |
Key used to retrieve an email address from a PropsList database. |
| String message_url |
URL to a message. |
| String name_key |
Key used to retrieve a name from a PropsList database. |
| String reply_to |
Reply To email address used by this agent when sending email messages. |
| String subject |
The subject of an email message. |
EmailReporter
public class com.cometway.email.EmailReporter
extends com.cometway.ak.ScheduledAgent
implements com.cometway.util.ReporterInterface
This is a Reporter Agent that extends FileLoggerAgent in order to log AK agent output to sequentially named text files. Upon loading, this agent replaces the default Reporter.
| Agent Property | Description |
| String recipients |
A comma separated list of email addresses to which an email message will be sent by this agent. |
| String reply_to |
Reply To email address used by this agent when sending email messages. |
| String report_title |
Title of the report generated by this agent. |
| String schedule |
Schedule used by this agent. |
| Boolean send_debug |
Debug messages are sent. |
| String send_email_service_name |
Service name of the SendEmailInterface to use for sending email. |
| Boolean send_error |
Error messages are sent. |
| Boolean send_println |
Standard messages are sent. |
| Boolean send_warning |
Warning messages are sent. |
FileLoggerAgent
public class com.cometway.io.FileLoggerAgent
extends com.cometway.ak.ServiceAgent
This agent handles logging. Currently, the only method of logging available is to a file. A logging requests are sent to this agent via the log(String) method and the agent will syncrhonized a log it to the file. These calls are syncrhonized so applications that need to be optimized for speed may want to minimize it's logging.
| Agent Property | Description |
| String log_file_date_format |
SimpleDateFormat string used to generate the log file name. |
| String log_file_dir |
Directory where log files are created. |
| String log_file_suffix |
Added to the end of generated log filenames. |
| Integer logs_per_file |
Maximum number of log entries before a new log file is generated. |
| String service_name |
Service name used by this agent to register itself. |
FileObjectManager
public class com.cometway.om.FileObjectManager
extends com.cometway.ak.ServiceAgent
implements com.cometway.om.IObjectManager
The FileObjectManager manages Props objects and persists them as files, using FilePropsContainers. A Props object must first be created by calling createObject with an ObjectType to get an ObjectID which matches that props Object. The only ObjectType supported in this Manager is the PropsType. Since only Props Objects are stored, using other types will fail. The actual Props object can be fetched by calling getObject with the ObjectID. The ObjectID associated with its props is: new ObjectID(props.getString("type"),props.getString("id")); Props objects can be listed by calling listObjects with an Object which listObjects will use as a queryObject. If this object is null, all ObjectID's will be listed. If this Object is an instanceof ObjectType, then all the ObjectID's of the props objects of this type will be returned. If this Object is an instanceof Pair, then the ObjectID whos props contains a property name that is the String stored in Pair.first() with a value that is equal to the String stored in Pair.second(). Props objects can be removed by calling removeObject with an ObjectID.
| Agent Property | Description |
| String root_dir |
Path to the root directory. |
| String service_name |
Service name used by this agent to register itself. |
FileReaper
public class com.cometway.io.FileReaper
extends com.cometway.ak.ScheduledAgent
implements com.cometway.util.ISchedulable
This agent uses a Scheduler to periodically wakeup when it scans the directory specified by scan_dir and deletes all files older than file_lifespan_ms (specified in milliseconds). Optionally, the property filename_suffix can be specified to delete only files with a specific extension (such as .txt).
| Agent Property | Description |
| String file_lifespan_ms |
|
| String scan_dir |
The directory to be scanned by this agent. |
| String schedule |
Schedule used by this agent. |
FileReporter
public class com.cometway.io.FileReporter
extends com.cometway.io.FileLoggerAgent
implements com.cometway.util.ReporterInterface
This is a Reporter Agent that extends FileLoggerAgent in order to log Agent Kernel agent output to sequentially named text files. Upon loading, this agent replaces the default Reporter.
| Agent Property | Description |
| Boolean echo_debug |
Debug output is echoed to the default reporter if true. |
| Boolean echo_error |
Error output is echoed to the default reporter if true. |
| Boolean echo_println |
Standard output is echoed to the default reporter if true. |
| Boolean echo_warning |
Warning output is echoed to the default reporter if true. |
| Boolean log_debug |
Debug output is logged. |
| Boolean log_error |
Error output is logged. |
| String log_file_date_format |
SimpleDateFormat string used to generate the log file name. |
| String log_file_dir |
Directory where log files are created. |
| String log_file_suffix |
Added to the end of generated log filenames. |
| Boolean log_println |
Standard output is logged. |
| Boolean log_warning |
Warning output is logged. |
| Integer logs_per_file |
Maximum number of log entries before a new log file is generated. |
HTTPAccessRestriction
public class com.cometway.httpd.HTTPAccessRestriction
extends WebServerExtension
This WebServerExtension controls access restriction. Access can be granted or denied based on the path URI, request headers, the client's IP address, or properties set in the HTTPAgentRequest (possibly set by another extension). There are a set deny and allow properties that contains properties for matching against each of these 3 things. If the 'default_behavior' is set to 'allow', the deny properties are used, if it is set to 'deny', the allow properties are used. The order to determine if a request is allowed or denied is URI path, request headers, IP, then properties. This extension can also apply to a specific path by using the 'affected_path' property. If this property is set, this extension will only apply to requests with a URI path that starts with this property. Restrictions can be further narrowed by using the 'affected_method' property. By default, all methods (GET, POST, HEAD, etc) are affected, but if this property is set, only that particular method will be affected by this extension.
Note: The allow/deny IPs only works if the 'use_inet_address_methods' are set to true in the WebServer, otherwise, no IP information is passed to the extension.
| Agent Property | Description |
| String affected_method |
If this property is non-empty, this extension will only apply to the request method (GET, POST, HEAD, etc.) given by this property. |
| String affected_path |
If this property is non-empty, this extension will only apply to requests whose URI path start with this property. |
| String allow_ips |
A comma separated list of IP addresses or partial IP addresses that are allowed (or * for all) if the default behavior is "deny". |
| String allow_properties |
A comma separated list of name=value pairs, if no =value is given, an allow is given if the property exists, otherwise the property must have the given value, used if the default behavior is "deny". |
| String default_behavior |
This determines by default whether all requests should be allowed or denied, can be either "allow" or "deny" (default: allow) |
| String deny_ips |
A comma separated list of IP addresses or partial IP addresses that are denied (or * for all) if the default behavior is "allow" (default: ) |
| String deny_properties |
A comma separated list of name=value pairs, if no =value is given, a deny is given if the property exists, otherwise the property must have the given value, used if the default behavior is "allow" (default: ) |
| String deny_response |
This is the response if a request is to be denied. This is either a 3 number return code or "drop", where the connection is simply dropped (default: 403) |
| String header_matches_allow |
A comma separated list of patterns (regexp) that are allowed in the header fields if the default behavior is "deny" (default: ) |
| String header_matches_deny |
A comma separated list of patterns (regexp) that are denied in the header fields if the default behavior is "allow" (default: ) |
| String path_matches_allow |
A comma separated list of patterns (regexp) that are allowed in the URI path if the default behavior is "deny" (default: ) |
| String path_matches_deny |
A comma deparated list of patterns (regexp) that are denied in the URI path if the default behavior is "allow" (default: ) |
HTTPAuthenticationAgent
public class com.cometway.httpd.HTTPAuthenticationAgent
extends com.cometway.ak.AgentRequest
This agent is used by the WebServer to handle authorization of password protected accesses.
The authentication file defines the realms and the usernames and
passwords which are used to authenticate accesses to the paths
associated with each realm. The authentication file is delimited
by newlines and must end with a newline. Each realm is declared
with a PATH and the REALM name, space seperated, followed by
usernames and passwords, in pairs which are seperated by a space.
If multiple hostnames require authentication, a HOSTNAME (no spaces)
can be provided in the beginning of the PATH/REALM/username/password
list to denote which host those realms should apply to. A special
HOSTNAME can be used to denote a default set of realms, if there are
no matches to any other HOSTNAMEs, the default is used. If only one
set of realms are required (no multiple hostnames), the HOSTNAME field
can be left out.
The fields in the authentication file has these restrictions:
HOSTNAME - cannot contain any spaces, must be either default or
a qualified hostname that is passed to the webserver via the
Host: field. The HOSTNAME can also contain a ':' followed
by a port number. If the port number is excluded, and a port number
is included in the Host: field, then all ports will be mapped.
PATH - must start with AND end with a/, cannot contain any spaces,
if the PATH contains escape characters (for example: a space), it
must be escaped using a % and a 2 digit hex value representing
the ASCII character. Characters that will need to be escaped are as
follows: spaces and everything EXCEPT letters, numbers, the '*', '-',
'.', '@', '_', and '/'. Spaces MUST be encoded as %32.
REALM - The realm name can by any alphanumeric string and can include spaces,
commas, periods, colons, semicolons, exclaimation points, and dashes.
username - This is an alphanumeric string that CANNOT include spaces or punctuation.
password - This is a string that can contain all letters, numbers, punctuation, and
spaces.
The general format of the authentication file is as follows:
HOSTNAME0
PATH0 REALM0
username0 password0
username1 password1
username2 password2
username3 password3
PATH1 REALM1
username0 password0
username1 password1
HOSTNAME1
PATH2 REALM2
username0 password0
username1 password1
PATH3 REALM3
username0 password0
etc...
Examples:
Here we have an example of a webserver serving a single domain
default
/protected/ Protected Realm
foo bar
/images/protected%32images/ Protected Image Realm
foo bar
So here the URI '/protected/sensitive_stuff' will fall under the Protected Realm,
and a username/password of foo/bar will authenticate with this realm. The
URI '/images/mypicture.gif' does not fall under a realm and will not need authentication,
however; the URI '/images/protected images/private_picture.gif' does fall under the
Protected Image Realm and will require the foo/bar password. Note the space in the
directory 'protected images', and how it is required that the PATH be listed as
'protected%32images' in the authentication file.
In this example, we have a webserver that serves 2 domains as well as an HTTPS
service. Since the HTTPS runs on a different port, special attention is given to
the port numbers in the PATH field of the authentication file.
host.domain1.org:80
/protected/ Protected Realm
abc 123
xyz 321
host.domain1.org:443
/protected/ Protected HTTPS Realm
abc 789
host.domain2.org
/protected/ Domain2 Protected Realm
foo bar
The domain 'host.domain1.org' has been split into 2 seprated HOSTNAME entries: one for the
HTTP requests (port 80) and one for the HTTPS requests (port 443). Given the URL
'http://host.domain1.org/protected/data.txt' a username/password of abc/123 or
xyz/321 must be given to be authenticated. Given the URL
'https://host.domain1.org/protected/secure_data.txt', the username/password abc/789
must be used because it is being accessed through port 443 (https). However, the second
domain, host.domain2.org, doesn't have a port listed. Therefore, the 2 URLs
'http://host.domain2.org/protected/data.txt' AND 'https://host.domain2.org/protected/secure.txt'
may use the same username/password to be authenticated.
| Agent Property | Description |
| String authentication_files |
A comma separated list of files where authentication information is stored. |
| String domains |
A comma separated list of domain names to which this agent is related. |
| String service_name |
Service name used by this agent to register itself. |
| String webserver_service_name |
Service name of the webserver to which this agent is related. |
HTTPDownloaderAgent
public class com.cometway.net.HTTPDownloaderAgent
extends com.cometway.ak.Agent
Downloads a document from the specified URL and writes it into a file.
| Agent Property | Description |
| String download_url |
URL of a file to download. |
| Integer http_timeout |
Number of milliseconds to wait before failing a HTTP request. |
| String output_file |
Path of a file where the agent results will be written. |
| String password |
Password used by this agent. |
| Boolean replace_existing_file |
Deletes existing files before writing a new file at the same location when set to true. |
| String user_agent |
The string used to identify this agent to the server. |
| String username |
Username used by this agent. |
| Boolean verbose |
Additional output is sent to the reporter when this is set to true. |
HTTPFileDownloadAgent
public class com.cometway.httpd.HTTPFileDownloadAgent
extends com.cometway.ak.RequestAgent
This agent is used to throttle specific content to web browsers. It can be used to limit maximum connections downloading content and the amount of bandwidth each connection is using.
| Agent Property | Description |
| String html_directory |
Directory where HTML files are stored. |
| String log_file |
The file that is used as a log file. |
| Integer max_bandwidth |
The number of bytes per second (bps) allowed for each connection. |
| Integer max_sessions |
The maximum number of concurrent connections. |
| String service_name |
Service name used by this agent to register itself. |
HTTPFileServerAgent
public class com.cometway.httpd.HTTPFileServerAgent
extends com.cometway.httpd.WebServerExtension
This agent is used by the WebServer to handle requests for HTML files and other static documents from the file system.
| Agent Property | Description |
| Boolean allow_directory_lists |
Enables the dynamic generation of directory listings. |
| Boolean alpha_sort_index |
The index will be sorted alphanumerically when set to true. |
| String default_index |
URL that is loaded when only '/' is requested. |
| String domains |
A comma separated list of domain names to which this agent is related. |
| String dont_index_list |
A comma separated list of regular expressions. Any files that match will not be listed in the automatically generated directory listing. |
| String html_directory |
Directory where HTML files are stored. |
| String service_name |
Service name used by this agent to register itself. |
| String webserver_service_name |
Service name of the webserver to which this agent is related. |
HTTPPathRewrite
public class com.cometway.httpd.HTTPPathRewrite
extends com.cometway.httpd.WebServerExtension
This WebServerExtension reads in a file of match and replace pairs, separated
by a space. These can be regular expressions similar to the s/match/replace/ used
by sed or perl. These pairs are applied to the 'path' property of the HTTPAgentRequest
but not the 'request' property. This WebServerExtension will always pass through,
regardless of whether the path has been altered or not. The pairs are applied in the
order they were read from the file, and stops when one of the match/replace pairs
changes the path. Example match file:
^/images/(.*) /specials/all_images/$1
.*confidential.* /access_denied.html
The first line will change '/images/wallpapers/1.jpg' to '/specials/all_images/wallpapers/1.jpg'
The second will change '/1/2/confidential_20071031.pdf' to '/access_denied.html'
| Agent Property | Description |
| String domains |
A comma separated list of domain names to which this agent is related. |
| String service_name |
Service name used by this agent to register itself. |
| String webserver_service_name |
Service name of the webserver to which this agent is related. |
HTTPProxyAgent
public class com.cometway.httpd.HTTPProxyAgent
extends com.cometway.httpd.WebServerExtension
implements java.lang.Runnable
This agent handles proxies to other web servers. A file needs to be provided
which lists the full URLs or URIs to proxy and where they should be proxied to.
The proxy config file consists of name/value pairs separated by newlines. Lines
beginning with the # character are ignored as comments. The value of each
name/value pair must be a full URL. The following are some valid name/value pairs
that can be used in the config file:
/directory=http://www.domain.com/directory.agent
/dir/page.html=http://www.domain2.com/index.html
http://www.domain.com/index.html=http://www.domain2.com/index.html
http://domain.com/index.html=http://www.domain2.com/index.html
http://www.anotherdomain.com/=http://www.domain2.com:8080/
Both the name and the value of each name/value pair is assumed to be literal, so
they will cnly match the exact path/host of the http request.
Loose proxies are ones where the entire path is passed to the proxied host. Loose
proxies are denoted as "*=":
http://www.domain.com/search/*=http://www.google.com/
In this example, http://www.domain.com/search/ will be proxied to http://www.google.com/
and http://www.domain.com/search/search?q=help will be proxied to http://www.google.com/search?q=help
Essentially, everything after the name in the name/value pair, will be passed onto what
the value is.
| Agent Property | Description |
| Integer check_interval |
The time in milliseconds between checks. |
| String domains |
A comma separated list of domain names to which this agent is related. |
| Integer initial_wait_time |
The number of milliseconds to wait before taking a first action. |
| Boolean modify_proxied_request |
|
| String proxy_file |
File that contains proxy lookup table information. |
| String proxy_socket_cache_timeout |
Sets the number of milliseconds for how long cached sockets should be considered alive. |
| Integer proxy_socket_timeout |
The timeout set for the Socket used to connect to the server that is being proxied to. |
| String service_name |
Service name used by this agent to register itself. |
| String webserver_service_name |
Service name of the webserver to which this agent is related. |
HTTPPutAgent
public class com.cometway.httpd.HTTPPutAgent
extends com.cometway.httpd.WebServerExtension
implements java.lang.Runnable
This agent can be loaded to support traditional HTTP Put functionality, saving files received to the specified "html_directory". You must specify this agent's service name for the "put_agent" property in the webserver. This agent can be easily replaced by a different RequestAgent for custom handling of HTTP Put requests.
| Agent Property | Description |
| String domains |
A comma separated list of domain names to which this agent is related. |
| String html_directory |
Directory where HTML files are stored. |
| Boolean make_directories |
Automatically create required subdirectories necessary to create the specified file. |
| String service_name |
Service name used by this agent to register itself. |
| String webserver_service_name |
Service name of the webserver to which this agent is related. |
HTTPRedirectAgent
public class com.cometway.httpd.HTTPRedirectAgent
extends com.cometway.httpd.WebServerExtension
implements java.lang.Runnable
This Request Agent is used by the WebServer. The WebServer uses this agent
to determine whether a web request should be redirected and if so, the
request is given to this agent for it to handle. This agent requires a file
which lists the requests which to redirect. Requests with more than one
redirect (listed in the file) will be cycled. The file format is name/value
pairs delimited by newlines and lines starting with '#' are ignored.
There are 2 kinds of name/value pairs used in the redirect config file. The
first is a direct mapping in the format NAME=VALUE. This mapping tells the
redirect agent what PATH should be redirected to what PATH. The PATH can
consist of a full URL or the full URI path. The following are examples of
valid direct mapped name/value pairs:
/page.html=/redirected_page.html
/directory/=http://www.myotherdomain.com/directory2/
http://www.mydomain.com/mydir/=http://web1.mydomain.com/mydir2/page.html
This, however, would not be a valid name/value pair:
http://www.domain.com/page.html=/page2.html
A direct mapped name which contains a host must have a host in its value.
A direct mapping will not recurse subdirectories in a path and each path
is regarded as literal. Direct mapped names can by mapped to multiple values
if the values are separated by commas. The redirect agent will cycle through
the different paths given as the value.
The second kind of mapping maps only hosts to hosts, and passes the path along
for the mapped host. This is an example of a host mapping:
http://myhost.com>http://www.myhost.com
No path information is included in the syntax of this mapping, only the host
names. Any path intended for myhost.com will be mapped to the host
www.myhost.com. This mapping is especially useful when the webserver is
multihomed. Multiple hosts can all by mapped to a single host.
Cycles in the redirect mappings are not checked, if the redirect mapping has cycles
there will be an infinite loop of redirects.
| Agent Property | Description |
| Boolean check_hosts |
Flag to check whether hosts are up or not. |
| Integer check_interval |
The time in milliseconds between checks. |
| Integer default_port |
The default HTTP port. |
| String domains |
A comma separated list of domain names to which this agent is related. |
| Integer initial_wait_time |
The number of milliseconds to wait before taking a first action. |
| String redirect_file |
File containing the redirection index used by this agent. |
| String service_name |
Service name used by this agent to register itself. |
| String webserver_service_name |
Service name of the webserver to which this agent is related. |
HTTPSetProperty
public class com.cometway.httpd.HTTPSetProperty
extends com.cometway.httpd.WebServerExtension
This WebServerExtension reads in a file of patterns and properties pairs, separated
by a space. The patterns are regular expressions and will be applied to the entire
request header (the 'request' property in the HTTPAgentRequest). If there is a match
the name/value pair given will be set in the HTTPAgentRequest. If the value of the
name/value pair is '$MATCH', the value will be the matched String. All patterns are
checked even if there are multiple matches. This WebServerExtension will always
pass through regardless of any matches. Example match file:
Firefox/2.0.0.8 browser_type=newest firefox
Mozilla/[0-9]\.[0-9] mozilla_version=$MATCH
The 'browser_tyoe' property will be set to 'newest firefox' if the String 'Firefox/2.0.0.8' appears anywhere in the HTTP request header. The 'mozilla_version' property will be set to the matching String if 'Mozilla/[0-9\.[0-9]' matches anything in the HTTP request header.
| Agent Property | Description |
| String domains |
A comma separated list of domain names to which this agent is related. |
| String service_name |
Service name used by this agent to register itself. |
| String webserver_service_name |
Service name of the webserver to which this agent is related. |
HTTPThrottledFileServer
public class com.cometway.httpd.HTTPThrottledFileServer
extends com.cometway.httpd.HTTPFileServerAgent
This agent is used by the WebServer to handle requests for HTML files and other static documents from the file system. It is a subclass of the HTTPFileServerAgent and used in place of the HTTPFileServerAgent when content needs to be throttled at a certain bandwidth. This agent provides additional options for logging the amount of bandwidth used, limiting the maximum number of concurrent downloading sessions, and the ammount of bandwidth each connection can use.
| Agent Property | Description |
| Boolean allow_directory_lists |
Enables the dynamic generation of directory listings. |
| Boolean alpha_sort_index |
The index will be sorted alphanumerically when set to true. |
| String default_index |
URL that is loaded when only '/' is requested. |
| String domains |
A comma separated list of domain names to which this agent is related. |
| String dont_index_list |
A comma separated list of regular expressions. Any files that match will not be listed in the automatically generated directory listing. |
| String html_directory |
Directory where HTML files are stored. |
| String log_file |
The file that is used as a log file. |
| Integer max_bandwidth |
The number of bytes per second (bps) allowed for each connection. |
| Integer max_sessions |
The maximum number of concurrent connections. |
| String service_name |
Service name used by this agent to register itself. |
| String webserver_service_name |
Service name of the webserver to which this agent is related. |
JDBCAgent
public class com.cometway.jdbc.JDBCAgent
extends com.cometway.ak.ServiceAgent
The JDBCAgent is a service that manages JDBC connections using the JDBC driver and URL specified in the properties.
| Agent Property | Description |
| String jdbc_driver |
Class name of an installed JDBC driver. |
| String jdbc_password |
Password for authenticating to a JDBC source. |
| String jdbc_url |
URL of a JDBC database to use. |
| String jdbc_username |
Username for authenticating to a JDBC source. |
| String service_name |
Service name used by this agent to register itself. |
JDBCCreateTableAgent
public class com.cometway.jdbc.JDBCCreateTableAgent
extends com.cometway.jdbc.JDBCAgent
Creates a new table using the specified table name, and field properties.
| Agent Property | Description |
| String jdbc_driver |
Class name of an installed JDBC driver. |
| String jdbc_password |
Password for authenticating to a JDBC source. |
| String jdbc_url |
URL of a JDBC database to use. |
| String jdbc_username |
Username for authenticating to a JDBC source. |
| String table_fields |
A comma separated list of database field names. |
| String table_name |
Name of the database table. |
| String table_types |
|
JDBCDropTableAgent
public class com.cometway.jdbc.JDBCDropTableAgent
extends com.cometway.jdbc.JDBCAgent
Drops the specified database table.
| Agent Property | Description |
| String jdbc_driver |
Class name of an installed JDBC driver. |
| String jdbc_password |
Password for authenticating to a JDBC source. |
| String jdbc_url |
URL of a JDBC database to use. |
| String jdbc_username |
Username for authenticating to a JDBC source. |
| String table_name |
Name of the database table. |
JDBCExecutive
public class com.cometway.jdbc.JDBCExecutive
extends com.cometway.jdbc.JDBCAgent
This agent executes the SQL command specified by sql_statement through a JDBC interface.
| Agent Property | Description |
| String jdbc_driver |
Class name of an installed JDBC driver. |
| String jdbc_password |
Password for authenticating to a JDBC source. |
| String jdbc_url |
URL of a JDBC database to use. |
| String jdbc_username |
Username for authenticating to a JDBC source. |
| String sql_statement |
A statement or query for execution by a SQL database. |
JDBCExportAgent
public class com.cometway.jdbc.JDBCExportAgent
extends com.cometway.jdbc.PooledJDBCAgent
This agent exports the specified fields from a PropsList to the specified field and field types in a SQL table through a JDBC connection to the database. Note: This has only been tested with MS-SQL using the JTDS driver so far.
| Agent Property | Description |
| String database_name |
The service name prefix where PropsList databases are found. |
| String from_fields |
Comma separated list of database fields from which the data will be read. |
| String jdbc_driver |
Class name of an installed JDBC driver. |
| String jdbc_password |
Password for authenticating to a JDBC source. |
| String jdbc_url |
URL of a JDBC database to use. |
| String jdbc_username |
Username for authenticating to a JDBC source. |
| String to_fields |
Comma separated list of database fields where the data will be written. |
| String to_table |
Name of the table where the data will be written. |
| String to_types |
Comma separated list of database types. |
JDBCServiceAgent
public class com.cometway.jdbc.JDBCServiceAgent
extends com.cometway.jdbc.JDBCAgent
The JDBCAgent is a service that manages JDBC connections using the JDBC driver and URL specified in the properties.
| Agent Property | Description |
| String jdbc_driver |
Class name of an installed JDBC driver. |
| String jdbc_password |
Password for authenticating to a JDBC source. |
| String jdbc_url |
URL of a JDBC database to use. |
| String jdbc_username |
Username for authenticating to a JDBC source. |
| String service_name |
Service name used by this agent to register itself. |
JDBCToXMLAgent
public class com.cometway.jdbc.JDBCToXMLAgent
extends com.cometway.ak.ServiceAgent
This agent uses the JDBCAgent to access a relational database and output data from specified tables in XML format. The tables to be parsed are specified in the property table_names.
| Agent Property | Description |
| String service_name |
Service name used by this agent to register itself. |
| String table_names |
Names of the SQL tables to use. |
LightBox
public class com.cometway.swing.LightBox
extends com.cometway.swing.AbstractJFrameController
This agent displays a frame that contains Lights, or more accurately colored squares, that are drawn in a grid style array. The LightBox agent registers itself with the Service Manager so that it may be found and used by other agents to display state information.
| Agent Property | Description |
| Boolean cell_circles |
Cells are drawn as circles. |
| Boolean cell_filled |
Cells are drawn filled. |
| Integer cell_height |
Height of cells drawn in pixels. |
| Integer cell_width |
Width of cells drawn in pixels. |
| String frame_title |
Title to be displayed in the window frame. |
| Boolean frame_visible |
Frame is initially visible when set to true. |
| Integer grid_height |
Height of the grid to be drawn. |
| Boolean grid_visible |
Lines of the grid are drawn when set to true. |
| Integer grid_width |
Width of the grid to be drawn. |
| Integer offset |
Number of pixels bordering the grid. |
| String service_name |
Service name used by this agent to register itself. |
LogMonitorAgent
public class com.cometway.io.LogMonitorAgent
extends com.cometway.ak.Agent
Monitors a log file on its own Thread and calls its own processLine() method for each new line of input, causing that line to be output to the agent's reporter. This class can be extended for your own customized log file monitoring applications by overriding the processLine() method.
| Agent Property | Description |
| String log_file |
The file that is used as a log file. |
LogViewerPage
public class com.cometway.httpd.LogViewerPage
extends com.cometway.ak.RequestAgent
implements java.lang.Runnable
This agent registers itself into the ServiceManager and accepts http requests to view information stored in log files. Given a directory, this agent will look for all the files in that directory and treat them as log files. The agent uses a mapping which provides information about how these files should be displayed. The logfile mapping maps a name to a text pattern. The agent will display the names and the matching lines of the log files.
| Agent Property | Description |
| Integer check_interval |
The time in milliseconds between checks. |
| Boolean is_logger_output |
If true, the log entries will be formatted as if they were HTTP log entries. Otherwise they will be treated as raw entries and will not be formatted |
| String log_dir |
Directory where log files are created. |
| String log_file_suffix |
Added to the end of generated log filenames. |
| String log_map_file |
The filename of the file that maps a name to a pattern. This allows the LogViewerPage to only show you log entry matches that contain certain patterns. |
| Integer max_show_log_length |
This is the maximum length of log data that will be displayed by the LogViewerPage at once. |
| String service_name |
Service name used by this agent to register itself. |
| Boolean show_memory_usage |
Attempt to display memory usage |
MessageAgent
public class com.cometway.ak.MessageAgent
extends com.cometway.ak.ServiceAgent
implements com.cometway.ak.MessageAgentInterface
A Message Agent is a Service Agent which implements the MessageAgentInterface. Extending this class provides the basic functionality which registers the agent with the Service Manager upon startup making it available to other agents as a request service.
| Agent Property | Description |
| String service_name |
Service name used by this agent to register itself. |
MoveFileAgent
public class com.cometway.io.MoveFileAgent
extends com.cometway.ak.Agent
This agent moves the files specified by from_files to the new filenames specified by to_files.
| Agent Property | Description |
| String from_files |
A comma separated list of filenames. |
| String to_files |
A comma separated list of filenames. |
ObjectManager
public class com.cometway.om.ObjectManager
extends com.cometway.ak.ServiceAgent
implements com.cometway.om.IObjectManager
Reference implementation of a non-persistent IObjectManager as an agent. Normal operations are reported through debug for educational purposes. You should want to add the hide_debug=true property during normal use.
| Agent Property | Description |
| String service_name |
Service name used by this agent to register itself. |
PropsEditor
public class com.cometway.swing.PropsEditor
extends com.cometway.swing.AbstractJFrameAgent
This agent is used by the StartupEditor agent application. This agent can be used to present a JFrame containing a JTable-based Agent Props editor. The edit_props property must be set to reference the Props that will be edited before this agent is started.
| Agent Property | Description |
| Integer frame_height |
Height of the window frame in pixels. |
| Boolean frame_visible |
Frame is initially visible when set to true. |
| Integer frame_width |
Width of the window frame in pixels. |
PropsListAgent
public class com.cometway.props.PropsListAgent
extends com.cometway.ak.ServiceAgent
This agent creates and registers a PropsList to the service manager. It can be extended to provide alternate storage layers, or used externally with associated Import and Export agents.
| Agent Property | Description |
| String service_name |
Service name used by this agent to register itself. |
PropsListIteratorAgent
public class com.cometway.props.PropsListIteratorAgent
extends com.cometway.ak.Agent
This agent can be extended to iterate over a PropsList passing each Props value to the handleRequest method when the agent is started, or it's iterate method is called.
| Agent Property | Description |
| String database_name |
The service name prefix where PropsList databases are found. |
ReceiveEmailAgent
public class com.cometway.email.ReceiveEmailAgent
extends com.cometway.ak.Agent
implements java.lang.Runnable
This agent receives SMTP messages on a server socket (port 25 by default) and forwards them to RequestAgents registered to the Service Manager using the recipients email address (ie: name@domain) or email account name only (ie: name). On UNIX operating systems, root access is required to serve on port 25. You will also need to kill sendmail or any other SMTP servers that may already be using port 25. It may also be necessary to add a MX DNS entry for your server in order to allow SMTP messages to be routed properly to your server (read "DNS & BIND" from O'Reilly publishing more a good reference on DNS).
| Agent Property | Description |
| Integer bind_port |
The TCP/IP server port created by this agent. |
| Integer max_connections |
Maximum number of simultaneous TCP/IP connections accepted by this agent. Any connection made after this number has been reached will hang for the thread_pool_timeout time or until another thread in the pool is freed. |
ReceivePOP3EmailAgent
public class com.cometway.email.ReceivePOP3EmailAgent
extends com.cometway.ak.ScheduledAgent
This agent periodically checks for new POP3 messages, passing routing the message to the registered RequestAgent matching the message recipient's email address.
| Agent Property | Description |
| Boolean delete_messages |
Delete messages from the server after retrieving them successfully. |
| Integer max_trys |
Maximum number of trys before failing. |
| String password |
Password used by this agent. |
| String pop3_host |
POP3 host used by this agent. |
| Integer pop3_port |
Port for the POP3 server used by this agent. |
| String schedule |
Schedule used by this agent. |
| String username |
Username used by this agent. |
RequestAgent
public class com.cometway.ak.RequestAgent
extends com.cometway.ak.ServiceAgent
implements com.cometway.ak.RequestAgentInterface
A Request Agent is a Service Agent which implements the RequestAgentInterface. Extending this class provides the basic functionality which registers the agent with the Service Manager upon startup making it available to other agents as a request service.
| Agent Property | Description |
| String service_name |
Service name used by this agent to register itself. |
RequestDumperAgent
public class com.cometway.email.RequestDumperAgent
extends com.cometway.ak.RequestAgent
This is a simple agent which dumps the contents of the requests it receives. This can be used for debugging messages received by the ReceiveEmailAgent.
| Agent Property | Description |
| String service_name |
Service name used by this agent to register itself. |
RequestFilterAgent
public class com.cometway.email.RequestFilterAgent
extends com.cometway.ak.RequestAgent
implements java.lang.Runnable
This agent proxies requests to another request agent and in the process, it caches the props for each request. When this agent starts up, it grabs a reference to the RequestAgent that its requests are proxying to from the ServiceManager, then registers itself. Cached requests are filtered depending on the filter_interval property and the requests that made it through the filter are emailed to the list of email addresses provided by the recipients property. Note: It may be a bad idea for this agent to proxy AgentRequests that may contain references to resources that needs to be released. The props from AgentRequests are not released for garbage collection until the filtering has been done.
RunnableAgent
public class com.cometway.ak.RunnableAgent
extends com.cometway.ak.Agent
implements java.lang.Runnable
This agent calls its own run() method on its own Thread.
| Agent Property | Description |
| String agent_classname |
Java class name of an agent to be instantiated. |
| String thread_sleep_ms |
|
ScheduledAgent
public class com.cometway.ak.ScheduledAgent
extends com.cometway.ak.Agent
implements com.cometway.util.ISchedulable
Implementation of a scheduled agent. Subclass this agent and override the wakeup method that is called as specified by the schedule property. Creates and uses a Schedule as specified by the schedule property.
| Agent Property | Description |
| String schedule |
Schedule used by this agent. |
Scheduler
public class com.cometway.ak.Scheduler
extends com.cometway.ak.ServiceAgent
implements java.lang.Runnable
com.cometway.util.IScheduler
com.cometway.util.IScheduleChangeListener
The Scheduler is a ServiceAgent which implements the com.cometway.util.IScheduler interface. It maintains a pool of threads that periodically wake up any com.cometway.util.IScheduleable that has been scheduled.
| Agent Property | Description |
| Integer load_sleep_time |
Number of milliseconds the load monitor thread uses to sleep. |
| Integer number_of_threads |
Number of threads allocated by this agent for processing requests. |
| String service_name |
Service name used by this agent to register itself. |
SecureServiceManager
public class com.cometway.ak.SecureServiceManager
extends com.cometway.ak.RequestAgent
implements com.cometway.ak.RequestAgentInterface
Reference implementation of the ServiceManagerInterface. There's nothing implicitly "secure" about this implementation. This agent will generate HTML detailing its registered directory if service_name is setup (default: /admin/services.agent).
| Agent Property | Description |
| String service_name |
Service name used by this agent to register itself. |
SecureWebServer
public class com.cometway.httpd.SecureWebServer
extends com.cometway.httpd.WebServer
This extension to WebServer supports SSL connections.
| Agent Property | Description |
| String authentication_agent |
|
| String bind_address |
This is the local address the agent will bind its server socket to. By default, the agent will bind to all available addresses. |
| Integer bind_port |
The TCP/IP server port created by this agent. |
| String html_response_agent |
Service name of the agent that implements a HTMLResponseInterface. The WebServer will fetch this Agent from the ServiceManager to be used for returning HTML responses, like error messages and other common responses. |
| String index_agent |
Service name of the request agent that should receive requests by default. |
| Boolean log_requests |
Requests are logged when set to true. |
| Integer max_connections |
Maximum number of simultaneous TCP/IP connections accepted by this agent. Any connection made after this number has been reached will hang for the thread_pool_timeout time or until another thread in the pool is freed. |
| Integer max_field_length |
This is the maximum length of a field of the request. If any field in the request exceeds this length, a request entity too long will be returned. If your agent requires long request fields, such as large cookies, this property may need to be increased. |
| String max_multipart_length |
|
| Integer max_uri_length |
Maximum length URI accepted by the server. |
| String mime_types_file |
File containing an index of file extensions and their corresponding MIME types. |
| Boolean multihome |
Multiple domain names are mapped if this property is set to true. |
| String proxy_agent |
|
| String redirect_agent |
|
| String refuse_requests |
This is a comma separated list of text that is used to match against the request URI. If the URI contains any of these Strings, the connection is immediately dropped and no response is given. |
| String service_name |
Service name used by this agent to register itself. |
| Integer socket_initial_timeout |
This property serves 2 purposes. The first is an initial read timeout. Upon a client connection to the agent, the client will have this many milliseconds to start sending the first line of the request, otherwise the agent will immediately respond with a request timed out. The second use for this property is the polling time for a thread in the ThreadPool to free up. |
| Integer socket_linger_time |
This property is obsolete and is no longer used. |
| Integer socket_timeout |
After the agent receives the first line of a client request, the socket's timeout is set to this property. This timeout is meant to be far more lenient than the initial timeout, whose purpose is to prevent DOSing and idling clients. |
| Boolean strict_http_version |
If this property is set to true, the agent will only accept HTTP/1.1 requests. Any HTTP/1.0 requests will yield a 505 Version not supported response. |
| Integer thread_pool_timeout |
Number of milliseconds to wait before reclaiming a thread. |
| Boolean use_inet_address_methods |
Use getInetAddress socket method to gather client connection information. |
SendEmailAgent
public class com.cometway.email.SendEmailAgent
extends com.cometway.ak.ServiceAgent
implements java.lang.Runnable, com.cometway.email.SendEmailInterface
This agent queues up email messages and sends them to the smtp_host at regular intervals. There are a variety of properties that can be configured which define how and when these messages are sent. This agent implements the SendEmailInterface and registers with the Service Manager for other agents to use.
| Agent Property | Description |
| String auth_password |
An alphanumeric password used for authentication. |
| String auth_username |
An alphanumeric username used for authentication. |
| Integer max_queue_size |
Maximum number of messages to keep in this agent's queue. |
| String service_name |
Service name used by this agent to register itself. |
| String smtp_host |
SMTP host used by this agent to send email messages. |
| Integer smtp_port |
Port of the SMTP host used by this agent to send email messages. |
| Integer smtp_sleep_ms |
Number of milliseconds to wait before sending queued email messages. |
| Integer smtp_timeout_ms |
Number of milliseconds to wait before failing an SMTP connection. |
ServiceAgent
public class com.cometway.ak.ServiceAgent
extends com.cometway.ak.Agent
Abstract agent that automatically registers with the service manager using the service name specified by the service_name property.
| Agent Property | Description |
| String service_name |
Service name used by this agent to register itself. |
ServiceManager
public class com.cometway.ak.ServiceManager
extends com.cometway.ak.Agent
implements com.cometway.ak.ServiceManagerInterface
Reference implementation of the ServiceManagerInterface.
SessionManager
public class com.cometway.om.SessionManager
extends com.cometway.ak.ServiceAgent
implements com.cometway.om.SessionManagerInterface
Reference implementation of the SessionManagerInterface.
| Agent Property | Description |
| String om_service_name |
Service name of the IObjectManager implementation to use. |
| String service_name |
Service name used by this agent to register itself. |
| String session_type |
ObjectType used to create session objects in the Object Manager. |
SessionReaper
public class com.cometway.om.SessionReaper
extends com.cometway.ak.ScheduledAgent
The Session Reaper is a Scheduled Agent which periodically checks for expired Sessions that were created by the Session Manager. Although this agent has no direct interactions with the Session Manager itself, it is aware that session information is stored in the Object Manager tagged with a property called timestamp. Any session object that has a timestamp value (in milliseconds) that is greater than the session_timeout_ms property is removed from the Object Manager. The Session Reaper check for expired objects using the specified schedule, Object Manager service, and session object type.
| Agent Property | Description |
| String om_service_name |
Service name of the IObjectManager implementation to use. |
| String schedule |
Schedule used by this agent. |
| Integer session_timeout_ms |
Number of milliseconds to wait before timing out a session. |
| String session_type |
ObjectType used to create session objects in the Object Manager. |
ShellCommandAgent
public class com.cometway.util.ShellCommandAgent
extends com.cometway.ak.Agent
This agent executes a shell command and outputs the result. The property command_line contains the shell command and related variables. An input stream is currently not supported. Upon completion result_code contains the result returned by the process when it exited, std_output contains any text outputed by the application, error_output contains any text outputed by application errors.
| Agent Property | Description |
| String command_line |
A shell command to be executed by this agent. |
StartupAgent
public class com.cometway.ak.StartupAgent
extends com.cometway.ak.Agent
implements java.io.FilenameFilter
This is the default Startup Agent for the Comet Way Agent Kernel. On startup, it scans the startup_dir for files ending in .startup, alphabetizes these filenames, and proceeds by loading a Props file for each, which it passes to the Agent Kernel to create and start an agent based on each set of Props.
| Agent Property | Description |
| String startup_dir |
Directory from where startup files are loaded. |
StartupAgentBuilder
public class com.cometway.tools.StartupAgentBuilder
extends com.cometway.ak.StartupAgent
This is an alternate StartupAgent which can be used with the AK -startup_agent command line option. Upon running, it scans the startup directory, and creates a source file named StaticStartupAgent.java which is hard coded to startup the agents as specified in the startup directory.
| Agent Property | Description |
| String output_classname |
Classname used by this agent when creating a .java file. |
| String startup_dir |
Directory from where startup files are loaded. |
StartupEditor
public class com.cometway.swing.StartupEditor
extends com.cometway.swing.AbstractJFrameAgent
This is a Startup Agent which can be used to edit Agent Kernel .startup files. To use this agent, you must invoke the com.cometway.ak.AK class using the -startup_agent com.cometway.swing.Startup editor option. This will load the current startup configuration into the Startup Editor application, where changes to the agent Props files can be made using a Swing based GUI. Saving the configuration will delete the old .startup files, and write out the new configuration.
| Agent Property | Description |
| Integer frame_height |
Height of the window frame in pixels. |
| String frame_title |
Title to be displayed in the window frame. |
| Boolean frame_visible |
Frame is initially visible when set to true. |
| Integer frame_width |
Width of the window frame in pixels. |
| String lnf_classname |
Class name of the look and feel class. Use 'java' for the default look and feel, or 'system' for the system-specific look and feel. |
| Integer next_agent_id |
ID of the next agent that will be created. |
| String output_classname |
Classname used by this agent when creating a .java file. |
| String startup_dir |
Directory from where startup files are loaded. |
| String startup_file |
Path to the XML-based startup file. |
SystemExitAgent
public class com.cometway.util.SystemExitAgent
extends com.cometway.ak.Agent
This agent calls System.exit() with the specified exit code (0 by default). The VM will immediately cease to function and your process will be ended forever.
| Agent Property | Description |
| Integer exit_code |
The exit code returned by this agent. |
WebServer
public class com.cometway.httpd.WebServer
extends com.cometway.ak.Agent
implements java.lang.Runnable
Routes HTTP requests from a server socket.
| Agent Property | Description |
| String authentication_agent |
|
| String bind_address |
This is the local address the agent will bind its server socket to. By default, the agent will bind to all available addresses. |
| Integer bind_port |
The TCP/IP server port created by this agent. |
| String html_response_agent |
Service name of the agent that implements a HTMLResponseInterface. The WebServer will fetch this Agent from the ServiceManager to be used for returning HTML responses, like error messages and other common responses. |
| String index_agent |
Service name of the request agent that should receive requests by default. |
| Boolean log_requests |
Requests are logged when set to true. |
| Integer max_connections |
Maximum number of simultaneous TCP/IP connections accepted by this agent. Any connection made after this number has been reached will hang for the thread_pool_timeout time or until another thread in the pool is freed. |
| Integer max_field_length |
This is the maximum length of a field of the request. If any field in the request exceeds this length, a request entity too long will be returned. If your agent requires long request fields, such as large cookies, this property may need to be increased. |
| String max_multipart_length |
|
| Integer max_uri_length |
Maximum length URI accepted by the server. |
| String mime_types_file |
File containing an index of file extensions and their corresponding MIME types. |
| Boolean multihome |
Multiple domain names are mapped if this property is set to true. |
| String proxy_agent |
|
| String redirect_agent |
|
| String refuse_requests |
This is a comma separated list of text that is used to match against the request URI. If the URI contains any of these Strings, the connection is immediately dropped and no response is given. |
| String service_name |
Service name used by this agent to register itself. |
| Integer socket_initial_timeout |
This property serves 2 purposes. The first is an initial read timeout. Upon a client connection to the agent, the client will have this many milliseconds to start sending the first line of the request, otherwise the agent will immediately respond with a request timed out. The second use for this property is the polling time for a thread in the ThreadPool to free up. |
| Integer socket_linger_time |
This property is obsolete and is no longer used. |
| Integer socket_timeout |
After the agent receives the first line of a client request, the socket's timeout is set to this property. This timeout is meant to be far more lenient than the initial timeout, whose purpose is to prevent DOSing and idling clients. |
| Boolean strict_http_version |
If this property is set to true, the agent will only accept HTTP/1.1 requests. Any HTTP/1.0 requests will yield a 505 Version not supported response. |
| Integer thread_pool_timeout |
Number of milliseconds to wait before reclaiming a thread. |
| Boolean use_inet_address_methods |
Use getInetAddress socket method to gather client connection information. |
WebServerExtension
public class com.cometway.httpd.WebServerExtension
extends com.cometway.ak.ServiceAgent
Abstract class representing an extension for the com.cometway.httpd.WebServer class.
This class needs to set a 'domains' property and
a 'webserver_service_name' property. It also needs a 'service_name'.
The order which extensions are applied is determined by the 'agent_id'.
The 'domains' property is a comma separated list of domain names that this extension
applies to. If the property is 'all', then all domains are applicable, if it is set
to 'default' then the default domain (for example, no multihoming) is used.
If a PropsListServiceManager is used, the 'webserver_service_name' and 'domains'
does not need to be set, however, the domain and port needs to be in the service_name.
for example: 'extension://www.domain.com:80'. However, lists of domains,
'all' and 'default' can no longer be used, but the service_name can be a regular expression
that can encompass domains/ports that match the pattern, for example:
'extension://.*domain.com:[0-9]*'.
| Agent Property | Description |
| String domains |
A comma separated list of domain names to which this agent is related. |
| String webserver_service_name |
Service name of the webserver to which this agent is related. |
XMLPropsList
public class com.cometway.xml.XMLPropsList
extends com.cometway.props.PropsListAgent
Creates and registers a PropsList loaded and/or saved to a XML formatted file.
| Agent Property | Description |
| String load_file |
The file this agent will load from. |
| String save_file |
The file this agent will save to. |
| String schedule |
Schedule used by this agent. |
| String service_name |
Service name used by this agent to register itself. |
XMLPropsListExportAgent
public class com.cometway.xml.XMLPropsListExportAgent
extends com.cometway.ak.Agent
Exports the contents of a PropsList to the specified XML formatted file.
| Agent Property | Description |
| String container_tag |
The name of the containing XML tag. |
| String database_name |
The service name prefix where PropsList databases are found. |
| String props_tag |
The name of the XML tag containing Props data. |
| String save_file |
The file this agent will save to. |
XMLPropsListImportAgent
public class com.cometway.xml.XMLPropsListImportAgent
extends com.cometway.ak.Agent
Imports the specified XML formatted file data into a PropsList.
| Agent Property | Description |
| String container_tag |
The name of the containing XML tag. |
| String database_name |
The service name prefix where PropsList databases are found. |
| String load_file |
The file this agent will load from. |
| String props_tag |
The name of the XML tag containing Props data. |
XMLRequestAgent
public class com.cometway.xml.XMLRequestAgent
extends com.cometway.ak.RequestAgent
This is an abstract RequestAgent with convenience methods for producing a streamed (indeterminate length) XML-based response.