Commit Graph

24 Commits

Author SHA1 Message Date
Jonathan Bernard
db15eb8f88 HttpContext: Lightweight HTTP protocol support. 2013-03-14 04:50:43 -05:00
Jonathan Bernard
c887a49f8c Added LightOptionParser, NullOutputStream, bugfixes.
LightOptionParser
-----------------

Lightweight, fairly featureful option parsing mechanism idiomatic to Groovy.
Takes in a map of parameter definitions and returns a map of option values and
arguments.

NullOutputStream
----------------

Ignores all data sent its way.

ParameterizedSocket
-------------------

Added trace and debug logging to the message handling code.

SmartConfig
-----------

Fixed a bug where a property lookup on a non-existent property with no default
given caused a null pointer exception trying to resolve the class of the default
value.
2012-11-27 08:40:17 -06:00
Jonathan Bernard
a186d6a09d LoggerOutputStream: Trimmed extra newlines before logging. 2012-11-22 16:02:56 -06:00
Jonathan Bernard
b9fa0d0bbf LoggerOutputStream bugfix, ParameterizedSocket changes.
ParameterizedSocket
-------------------

Moved from transmitting a list of strings (represented by ASCII data separated
by ASCII record separators `0x1E`) to a combination of strings and paired
strings. Basically, instead of each record being processed as a whole, a record
may optionall contain the ASCII unit separator `0x1F`. If it does, the record
will be split and treated as a key-value pair. This is implemented in the
`ParameterizedSocket.Message` class.o

LoggerOutputStream
------------------

Was not initializing the internal buffer.
2012-11-22 15:24:55 -06:00
Jonathan Bernard
21cdf6909c Added ParameterizedSocket and LoggerOutputStream classes.
ParameterizedSocket
-------------------

This is a wrapper around the basic java.net.Socket class that supports sending
and receiving messages with parameters. It exposes two methods:
`void sendMessage(String... message)` and `String[] receiveMessage()`. The
line-level format of the message is:

    START_TOKEN param [SEPARATOR param ...] END_TOKEN

Where `START_TOKEN` is the ASCII "Start heading" control code `0x01`,
`SEPARATOR` is the ASCII "record separator" code `0x1E`, and `END_TOKEN` is the
ASCII "end of transmission" code `0x03`.

LoggerOutputStream
------------------

An OutputStream implementation that flushes to an org.slf4j.Logger instance.
The log level is configurable. It is important to note that data written to
the stream accumulates in an internal buffer until `flush()` is called. At this
point the data is written out as one log message to the logger. It is expected
that one would wrap this stream in an auto-flushing PrintStream or PrintWriter
in actual use.
2012-11-21 13:33:15 -06:00
Jonathan Bernard
01c2f4930a ExtRobot: added default delay time, bugfix. 2012-11-21 13:32:46 -06:00
Jonathan Bernard
d2706e30bb Moved to common build v1.10 2012-11-21 13:32:07 -06:00
Jonathan Bernard
d185cfb4dd Added ExtRobot: extensions to Java Robot class. 2012-11-11 18:23:19 -06:00
Jonathan Bernard
82b0afc490 Bugfix to build script.
In the future it would be wise to upgrade to the latest version of the common
build script.
2012-11-11 18:20:28 -06:00
Jonathan Bernard
e12a605b5c Added JarUtils: programatically extract JAR files. 2012-01-02 15:08:26 -06:00
Jonathan Bernard
2308280480 Bugfix.
Default behavior in SmartConfig was wrong. What it should be (and now is) is
when a value is requested but not present, the value is set and returned with
the default if given, or null is returned if no default is given.
2011-12-05 22:18:26 -06:00
Jonathan Bernard
1227d53a14 Small updates to SmartConfig.
* Changed the behavior of SmartConfig when setting file type properties. Now it
  tries to coerce the given value into a File object if it is not already a File
  object.
* Changed the behavior of SmartConfig when retrieving a property without
  specifying a default value. Now it returns null if the property is not set and
  no default is given.
2011-12-05 22:12:20 -06:00
Jonathan Bernard
08810e88ed Added WrappedPrinter, SmartConfig.load()
* Added `SmartConfig.load()` to allow runtime reloading of config.
* Added `WrappedPrinter` which allows you to print horizontally aligned and
  offset text blocks in a monotype environment.
2011-10-25 15:05:02 -05:00
Jonathan Bernard
2950bd67db Added ConsoleProgressBar. 2011-01-25 15:56:02 -06:00
Jonathan Bernard
9457a6b7dd Really added keySet(). 2011-01-21 16:13:26 -06:00
Jonathan Bernard
7b3be90fe1 Updated SmartConfig
Added support for file/directory property types.
Removed some extraneous logging checks.
2011-01-21 14:03:05 -06:00
Jonathan Bernard
2d7e8e67ca Updated common build script. 2011-01-21 13:43:54 -06:00
Jonathan Bernard
b19d1cbe80 Updated SmartConfig, added keySet() method. 2011-01-21 13:41:29 -06:00
Jonathan Bernard
df8fcac2d2 Added slf4j, needed for SmartConfig to build. 2011-01-21 13:01:04 -06:00
Jonathan Bernard
9a179af663 Implementation of SmartConfig 2011-01-21 12:58:35 -06:00
Jonathan Bernard
10b1b15a4a Version 1.0 committed using standard build process. 2011-01-21 11:33:24 -06:00
Jonathan Bernard
8a6181fc84 Upgraded common build script. 2011-01-21 11:21:03 -06:00
Jonathan Bernard
2b256c1d27 Added standard build process. 2011-01-21 11:14:27 -06:00
Jonathan Bernard
2f79d7e1a3 Initial commit. 2010-10-15 10:00:20 -05:00