Comet Way Agents
Quick Links
Download

Click one of the buttons below to download the latest build of the Comet Way Agent Kernel for your favorite platform. After you have downloaded, open the README.html file to get started.

Comet Way Agent Kernel 3.0
for Solaris/Unix/Linux/Mac OS X

Comet Way Agent Kernel 2.6
for Solaris/Unix/Linux/Mac OS X

Comet Way Agent Kernel 2.6
for Microsoft Windows

Comet Way Agent Kernel 2.0
for J2ME Platforms

Browse 3.0 JavaDocs Online
Download 3.0 JavaDocs (.tar.gz) Download 2.6 JavaDocs (.zip)

Comet Way Agent Index

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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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 PropertyDescription
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.