Change Log : jHomeNet commons package Written by : Dave Irwin (jhomenet at gmail.com) ______________________________________________________________________________ Version 0.4 DESCRIPTION ----------- Fourth major release of the jHomeNet commons package after the jHomeNet server redesign. This release includes a number of different additional features that have been added as well as changes to the existing design. Refer to the Bug Fixes/New Features/Changes descriptions below for more specific information. The biggest addition in this release is the inclusion of the Sensor Responsive System. The sensor responsive system can be used to execute certain responses based on a set of conditions. For example, a condition might be if the temperature of a certain temperate sensor is create than a 90F, execute an email response that would automatically send an email with pertitent information. This version is not binary compatible with previous releases. RELEASE DATE ------------ July 16, 2007 BUG FIXES/NEW FEATURES/CHANGES ------------------------------ ** Bug fixes * ** New Features * Added a sensor responsive event response. This response will create a new system event that is logged and can later be viewed through the event viewer. Currently the event responses takes a simple string description as a parameter. Future versions may supported passing other types of parameters. This change also included updating the existing Hibernate mapping files for a sensor responsive response to support persisting the event response in the database. Affected files/classes include: jhomenet.commons.responsive.response.EventResponse.java jhomenet.commons.responsive.response.Response.hbm.xml [Hibernate mapping file] User(s): dhi (7/7/2007) * Created a new system event logging mechanism that can be used to log system events during the operation of the jHomeNet suite of applications. The event logging mechanisms consists of both Event objects and an EventLogger that is used to manage the list of events. Affected classes/files include: jhomenet.commons.event.AbstractEvent.java jhomenet.commons.event.AbstractEventLogger.java jhomenet.commons.event.DefaultEvent.java jhomenet.commons.event.Event.java jhomenet.commons.event.EventCategory.java jhomenet.commons.event.EventType.java jhomenet.commons.event.Event.hbm.xml [Hibernate mapping file] jhomenet.commons.persistence.hibernate.StringEnumUsertype.java jhomenet.commons.persistence.hibernate.UserTypes.hbm.xml [Hibernate mapping file] User(s): dhi (6/20/2007) ** Changes * Made a change to the ResponsiveManager API. This includes added new load() methods that are to be used to load entities from the persistence layer. This is necessary because previous implementations used the "get()" methods to both retrieve entities from the persistence layer and return a list of entities to the calling classes. This is both time consuming and unnecessary. Instead, this new design allows for a single load() to be called during startup. Affected classes/files include: jhomenet.commons.ResponsiveManager.java User(s): dhi (7/5/2007) * Made a major revision to the sensor responsive API. This included creating a new responsive executor class that is used to actually evaluate the expressions. Currently, the default executor uses the BeanShell interpreter but the API has been built with the flexibility to insert alternative executors in the future as desired. However, this flexibility required a change in the ExecutorContext interface and corresponding dependent classes. Affected classes/files include: jhomenet.commons.responsive.AbstractResponsiveExecutor.java [new] jhomenet.commons.responsive.BeanshellExecutor.java [refactored] jhomenet.commons.responsive.ResponsiveExecutor.java [new] jhomenet.commons.responsive.SchedulerAdapter.java [new] jhomenet.commons.responsive.condition.ExecutorOperatorContext.java [refactored] jhomenet.commons.responsive.condition.Expression.java jhomenet.commons.responsive.condition.ExpressionFactory.java jhomenet.commons.responsive.condition.SensorCondition.java jhomenet.commons.responsive.condition.ValueCondition.java jhomenet.commons.responsive.condition.ValueConditionOperator.java [new] User(s): dhi (7/1/2007) * Added the ability to persist certain sensor responsive entities. Currently, this includes sensor responsive conditions, triggers, and responses. As of this release, persisting sensor responsive plans is not supported. Affected classes/files include: jhomenet.commons.persistence.ResponsivePersistenceFacade.java jhomenet.commons.persistence.hibernate.UserTypes.hbm.xml [Hibernate] jhomenet.commons.responsive.condition.Condition.java jhomenet.commons.responsive.condition.SensorCondition.java jhomenet.commons.responsive.condition.StateCondition.java jhomenet.commons.responsive.condition.ValueCondition.java jhomenet.commons.responsive.condition.Condition.hbm.xml [Hibernate] jhomenet.commons.responsive.condition.Expression.hbm.xml [Hibernate] User(s): dhi (6/29/2007) * Made a major revision to the HomenetHardware API. In particular, I deleted the HardwareDataList object from the jhomenet.commons.hw.data package and then removed any references to the HardwareDataList object. In its place I replaced it with a simple List object. This change propagated through several HomenetHardware sub-classes. The reason for this change was to reduce the overall complexity as it wasn't necessary to have a separate HardwareDataList object to hold the hardware data. As part of this work, also changed the contructor API to allow a hardware object to be created without the hardware address and setup descriptions parameters. This was done because a no-argument constructor is required by Hibernate to enable hardware object persistence. Affected classes/files include: jhomenet.commons.hw.HomenetHardware.java jhomenet.commons.hw.device.Device.java [New class] jhomenet.commons.hw.sensor.Sensor.java jhomenet.commons.hw.sensor.StateSensor.java jhomenet.commons.hw.sensor.ValueSensor.java jhomenet.server.hw.device.LightSwitchDevice.java [New class] jhomenet.server.hw.sensor.BarometricSensor.java jhomenet.server.hw.sensor.HumiditySensor.java jhomenet.server.hw.sensor.HvacSensor.java jhomenet.server.hw.sensor.LightningSensor.java jhomenet.server.hw.sensor.LightSensor.java jhomenet.server.hw.sensor.RainSensor.java jhomenet.server.hw.sensor.TempSensor.java jhomenet.server.hw.sensor.WindDirectionSensor.java jhomenet.server.hw.sensor.WindSpeedSensor.java User(s): dhi (6/22/2007) * Modified the ServerContext API to include a wider range of object references. Affected classes/files include: jhomenet.commons.ServerContext.java User(s): dhi (6/19/2007) * Moved the PollingIntervalUserType class from the jhomenet.commons.persistence package to the jhomenet.commons.persistence.hibernate package. Affected classes/files include: jhomenet.commons.persistence.hibernate.PollingIntervalUserType.java jhomenet.server.hw.Hardware.hbm.xml [Hibernate mapping file] User(s): dhi (6/18/2007) ** Known Issues NOTE: All bug submissions should be done through the Sourceforge website. Any outstanding bugs at the release time will be included in this list along with the Sourceforge bug id. * ______________________________________________________________________________ Version 0.3 DESCRIPTION ----------- Third major release of the jHomeNet commons package after the jHomeNet server redesign. This version is not binary compatible with previous releases. RELEASE DATE ------------ March 15, 2007 BUG FIXES/NEW FEATURES/CHANGES ------------------------------ ** Bug fixes * ** New Features * ** Changes * Made some major changes to the services API. * Changed the sensor's capture() method API. In particular, the capture() method now returns a reference to a HardwareDataList object which contains data for all of the hardware's I/O channels for a given timestamp. Previous versions of the Sensor class's capture method didn't return anything, rather the data had to be retrieved through the appropriate getter methods. Also updated the Sensor class's toString() method. * Added the ability to unregister hardware through the IHardwareManager interface. * Disabled the value sensor daily logger functionality. * Added source file documentation. ============================================================================== Find below the change history for older releases. ============================================================================== ______________________________________________________________________________ Version 0.2 DESCRIPTION ----------- Second major release of the jHomeNet commons library after the jHomeNet server redesign. RELEASE DATE ------------ February 11, 2007 BUG FIXES/NEW FEATURES/CHANGES ------------------------------ ** Bug fixes * ** New Features * ** Changes * Minor changes to the hardware hierarchy API. Support added for setting the hardware channel descriptions. * Updated the hardware state classes including the Roseta class. Find below the change history for older releases. ______________________________________________________________________________ Version 0.1 DESCRIPTION ----------- First major release after the jHomeNet server redesign. A lot of functionality was shifted out of the jHomeNet server package and into the jHomeNet commons package. RELEASE DATE ------------ January 15, 2007 BUG FIXES/NEW FEATURES/CHANGES ------------------------------ ** Bug fixes * ** New Features * Refactored the DAO persistence layer related classes from the jHomeNet server to the commons library. ** Changes *