xPL4Java - Server, Tools, Applications and Framework for Java

xPL4Java is a collections of applications, tools and framework for running xPL applications on any platform that supports Java.  xPL4Java
is both the collective name for all these items and the name of the underlying framework (something developers need to create new xPL applications).  A well written xPL4Java based application should run on any platform with no changes.

xPL4Java requires a modern version of Java.  Specifically, any Java version 1.5 or later (sometimes called Java 5).  You can download this Java for Windows, Linux and Solaris from the Javasoft web site. Do note that there are a lot of different download -- you only need the Java Runtime Environment (also known as the JRE).  The other downloads are geared for developers and are enormous and full of cruft most users will never use.  For Mac OSX users, you can download it from the Apple Java Website.  There are likely other implementations of Java out there for other platforms if you look around.


xPLHub (also available a a tgz file)
This is a Java based, standalone, ready-to-run xPL Hub (you do not need to have xPL4Java installed to run this).  All computers running xPL applications need to have a hub running on them or they will NOT work.  There are a number of hubs available for download at the xPL Hubs download site that you can use.  However, you may find there there is no hub for your particular platform or you just want a hub that is written in Java.    Source is available and included in the download.

xPL4Java  -- Version 1.4a
This is the "core" of xPL4Java.  Any application that is meant to be installed in the xPL4Java server needs this running on your computer.   In short, if you were directed to this page and are not interested in the other things listed, this is what you came for. This also includes a powerful scripting engine that allows you to write simple scripts to react to xPL devices and control them.

xPL4Java 1.4 adds support for a fully compliant xPLHAL engine.  This lets you create determinators, events, etc in the xPLHALMgr and have the engine/server run on any platform you want.  NOTE: Right now, you need windows to run the client side -- xPLHALMgr -- but only when making changes.  You can then shut it down and the xPL4Java xPLHAL engine will continue to work.  You MUST use the latest xPLHALMgr application -- older ones will not work with this xPLHAL engine.

xPL4Java also folds in previously optional modules (scripting, xPLio, etc) into the base release.  However, non-escential modules are not enabled by default.  Read up on how to enable such modules in the CHANGELOG.txt that accompanies the download.

For developers, xPL4Java includes a complete implementation of the xPL protocol, including device configuration, filters and groups.  It also provides a handy server for running multiple xPL4Java applications under a single Java JVM instance.  Writing your xPL applcations to work in this server is very eay and documented.  The xPL4Java server is not for GUI applications as the server itself is designed so it can run as a service under windows or on a computer with now GUI available.  However, GUI apps do benefit tremendously from the rest of the xPL4Java framework.  There are also examples of creating xPL4Java modules (that plug into the server) and GUI apps that use xPL4Java.

UPB4Java -- Version 1.2b
Included as part of UPB4Java, this is an xPL4Java server module that acts as a gateway between the UPB (Universal Powerline Bus) automation protocol and the xPL network. via the xPL lighting schema. As with all items here, it includes a pre-built module jar file and source.

DCM -- Version 1.1d (also available as a tgz file)
DCM is short for Device Configuration Manager.  DCM will list all the xPL devices on your network and will let you configure them to your needs (if they are, in fact, configurable).  Many xPL devices and applications can be configured and tailored to meet your particular installation, but they require an application to let you work with that configuration.  DCM is similar to the xPLHAL program, though xPLHAL provides many more functions than just device configuration.  But as xPLHAL is only available for Windows, other folks had no other configuration tools before DCM.  Even Windows users may find the interface of DCM more to their liking (slightly different take on configuring devices than xPLHAL).

DCM is, of course, Java based and a standalone, ready-to-run application.  You do not need to have xPL4Java installed on the computer before running it.  DCM also allows you to log xPL messages and to send xPL messages to devices.

XPE -- Version 1.0c (also available as a tgz file)
XPE is short for xPL Plugin Editor and is a Java based tool for creating and editing xPL plugin files.   These files are used by programs like xPLHAL to tailor their behavior appropriate to each xPL device.  This allows other tools to learn how to control your xPL device and what options can be offered to a user.  This is primarily a xPL developers tool. 

XPE is, if course, java based and a standalone, ready-to-run application.  You do not need to have xPL4Java installed on the computer before running it.

jRGBLED -- Version 1.2 (also available as a tgz file)
jRGBLED is both a GUI configuration tool and an xPL4Java module for controlling and using the RGBLED controller.  This controller allows you to control upto 13 RGBLEDs on a single board (and you can hook up multiple boards for a max of over 2500+ RGBLEDs).  LEDs can be set to anyone one of 16.7 million colors or have animation defined (like gently wash from a bright red to a dull red over 1 second to give a pulsing effect).  The xPL module allows controlling the lights, defining the animations and all other functions the boards protocol allows.

Page last updated March 22, 2008


xPL4Java is copyright 2007, Gerald R Duprey Jr
xPL4Java is licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License