Horizon Changelog

What's new in Horizon 20-09-01

Nov 25, 2020
  • Horizon has been through a major overhaul of its design and implementation,
  • and it is, from this release and on, NO LONGER COMPATIBLE with the previous releases.

New in Horizon 15-05-01 (May 13, 2015)

  • The method setContext(...) is removed from horizon.web.RequestHandler.
  • The method initParam(...) is added to horizon.web.HorizonServlet and horizon.web.RequestHandler.
  • The methods sendMessages(...) and send(...) are added to horizon.mail.MailSession.

New in Horizon 15-03-01 (Mar 2, 2015)

  • The method download(...) is added to horizon.web.RequestHandler.
  • horizon.database.DBAccess is changed to fix the bug in disabling auto-commit while getting a connection from a datasource.

New in Horizon 15-01-01 (Jan 6, 2015)

  • The method notEmpty(...) is added to horizon.system.AbstractObject and horizon.persistence.AbstractPersistent.
  • The methods of horizon.database.DBAction's subclasses are changed to handle resources more rigorously on exception.
  • The methods doGet(), doPut(), doPost(), doDelete() are added to horizon.web.RequestHandler.

New in Horizon 14-07-01 (Jul 2, 2014)

  • The method horizon.web.HorizonServlet.prepare(...) is changed to set character encoding of a ServletRequest only. The behavior that sets headers of a ServletResponse is moved to horizon.web.RequestHandler.
  • The methods contentType() and setContentType(...) are added to horizon.web.RequestHandler.Result.
  • The methods setHtmlHeader() and setNoCacheHeader() is added to horizon.web.RequestHandler.
  • The methods forward(...) and redirect(...) of horizon.web.RequestHandler are changed to set headers of a ServletResponse as text/html if the content type of the response is of text/html.
  • The signature of the following methods of horizon.data.Records are changed to take a Collection as an argument. values(...) sum(...), average(...)

New in Horizon 14-05-05 (May 5, 2014)

  • This is a release of an after-the-last-minute correction horizon.util.LRUCache is removed from the distribution because it is not a work of Horizon and was included in the last release by mistake
  • @Column annotation is changed so that it is inherited through a class hierarchy for methods that are overridden but not @Column-annotated as well as for other inherited methods

New in Horizon 14-05-01 (May 1, 2014)

  • tag has an 'info' attribute added.
  • horizon.database.DataSetBuilder is changed to throw an exception when it cannot find primary keys from the result of a query specified with a primary table.
  • horizon.database.Query is changed to support unnamed database queries as well as named queries.
  • The method toString(...) is added to horizon.data.hierarchy.CompositeElement.Support.

New in Horizon 14-03-01 (Mar 3, 2014)

  • horizon.util.Args is added to help working with command line arguments.
  • The is back to the database configuration(horizon/database.xml) as an optional element.
  • horizon.util.FileSupport is changed:
  • to have some of its internal methods as public.
  • to fix the bug in the copy(...) method.

New in Horizon 14-01-01 (Jan 6, 2014)

  • The methods 'getIDs(...)' are added to horizon.data.hierarchy.CompositeElement.
  • The bug is fixed in binding null to parameters of PreparedStatements against an Oracle database
  • horizon.util.ResourceLoader is changed to look up a resource file either from class path or from file path

New in Horizon 13-11-10 (Nov 11, 2013)

  • The method 'primitiveDefault(...)' is added to horizon.data.Convert.
  • The horizon.system.Assert.rootCause(...) method is changed to examine an InvocationTargetException as well.
  • horizon.persistence.Persistent.Info.Mapper is fixed to handle the case where it is attempted to assign null to primitive fields.
  • horizon.util.FileSupport is changed as below:
  • The static method get() is added to return the singleton FileSupport.
  • The method read(...) is changed to an object method.
  • The method config() is added to horizon.jndi.ObjectLocator.
  • The NotFound exception is added to the horizon.web.RequestHandler class.

New in Horizon 13-09-01 (Sep 2, 2013)

  • The method 'validateAddress(...)' is added to horizon.mail.Mail.
  • horizon.data.FieldValues is changed as below:
  • The constructor FieldValues(boolean) is removed.
  • The method setString(boolean) is added.
  • A bug in horizon.system.Assert.isEmpty(Object) is fixed.
  • horizon.persistence.Persistent.Info.Mapper is changed to provide easy message on exception.

New in Horizon 13-07-01 (Jul 2, 2013)

  • horizon.web.HorizonServlet.prepare(...) is changed.
  • A bug in horizon.web.RequestParameter.getUploads(...) is fixed.

New in Horizon 13-05-01 (Jul 2, 2013)

  • Database configuration is changed so that you no longer have to specify the catalog name of a database connection.
  • The Support utility class is added to the horizon.data.hierarchy.CompositeElement interface.
  • horizon.data.hierarchy.* is changed to use String instead of Object for identifiers of HierarchyElements.
  • A bug in horizon.util.Xmlement is fixed.

New in Horizon 13-03-18 (Jul 2, 2013)

  • horizon.util.ResourceLoader is changed to use the class's ClassLoader instead of the system ClassLoader in loading resources on the CLASSPATH.
  • A couple of convenience methods send(...) is added to horizon.jms.TopicAccess and horizon.jms.QueueAccess respectively to help sending messages to a JMS destination.
  • horizon.database.DataSetBuilder is changed to use a fixed-size cache of horizon.data.RecordInfo.
  • The method 'entries()' is added to horizon.data.FieldValues.

New in Horizon 13-01-21 (Jul 2, 2013)

  • The method 'exists(java.lang.String)' is added to horizon.web.RequestParameter.
  • The attribute 'ellipsis' is added to the tag.
  • horizon.web.RequestHandler is changed as follows: The constructor RequestHandler(ServletContext) is removed. A ServletConfig is added to the class as a member field.
  • A bug in the DataRecord.clone method is fixed.

New in Horizon 12-11-24 (Jul 2, 2013)

  • Column annotation is added to the persistence framework, making it easy to map fields of a Persistent object and those of a DataRecord.