Open Source Java

I have written or participated in a few open source Java projects which are described in this section.

JargX - JargX is a library that provides an oject-oriented API to parse command line parameters in Java applications. So what makes JargX different from other such libraries? Simplicity and power. JargX was designed with two key goals: 1) to require minimal client code; and 2) to encapsulate the enforcement of command line usage rules. JargX will transparently take care of required arguments, default argument values, argument type constraints, and generating a usage message to print for users. In addition, it an extensible framework that can be customized to add additional functionality.

SocketSwitchboard - In its simplest usage, SocketSwitchboard forwards all incoming traffic on a single network port to a designated host and port on a LAN or on the Internet. An XML configuration file is used to set up one or more of these "socket mappings." However, the configuration schema also allows the administrator to specify complex boolean access restrictions, called constraints, to be applied to incoming network connections. Configured in this way, SocketSwitchboard can act as a virtual router or proxy, allowing restricted access to network services. Currently, SocketSwitchboard supports constraints based on IP address range, IP address pattern match, hostname pattern match, time of day, day of week, and SSL client authentication. The constraint framework is extensible, allowing new constraint classes to be written and specified in the configuration. In addition, either or both ends of a socket mapping may be configured to require the use of SSL sockets. Using two instances of SocketSwitchboad configured to use SSL, one running on a server behind a firewall and the other on a mobile client, a poor man's VPN can be achieved.