Menu

Version 1.9 Release notes

Version 1.9 is now available

New PropertyTypes

  • New feature - New LatLngPropertyType which can parse a Latitude and Longitude value. Including a large library for LatLng calculcations.
  • New feature - New MimeTypePropertyType which can parse to a javax.activation.MimeType value.
  • New feature - New TimeSpanPropertyType which can parse to a dk.heick.properties.types.custom.TimeSpan value.
  • New feature - New ProxyPropertyType you can define a java.net.Proxy.
  • New feature - New reimplemented FilenameFilterPropertyType is now initialized with instances of AbstractStringFilenameFilter, currently two implementations RegularExpressionFilenameFilter and WildCardFilenameFilter.

New PropertyTypes Definition

  • Major New feature - DerivedPropertyType - The ability to load context derived from other Properties (multiple), example has a property which returns the contense of a file, where the file is also defined as a Property
  • Major New feature - DerivedFromTypePropertyType - Class which has derived functionallity from one Property to a Type. Generic class.
  • Major New feature - FileDerivedPropertyType - Class which load the contense of a file into type T, Generic class.
  • Major New feature - URLDerivedPropertyType - Class which load the contense of a URL into type T, Generic class.
  • Major New feature - TextFromFilePropertyType - Class which load the contense of a file into a String.
  • Major New feature - PublicKeyFilePropertyType - Load a public key from file.
  • Major New feature - PrivateKeyFilePropertyType - Load a private key from file.
  • Major New feature - CertificateSignedFilePropertyType - Loads and validates from certificate a signed file.
  • Major New feature - BytesFromFilePropertyType - Class which load the contense of a file into a byte array.
  • Major New feature - CertificatesFilePropertyType - Loads all cerfiticates from a a file.
  • Major New feature - CertificateKeyStoredPropertyType - Loads cerfiticate from a keystore.
  • Major New feature - KeySignedFilePropertyType - Loads and validates from key a signed file.
  • Major New feature - KeyStoreFilePropertyType - Loads a keystore
  • Major New feature - ImageFromFilePropertyType - Loads an image from an File.
  • Major New feature - ImageFromURLPropertyType - Loads an Image from URL.
  • Major New feature - TypeListFromTextFilePropertyType - Load a file where each line is converted to a <T> type, and a List of these is returned.

New PropertyIO Capabilities

  • Major New feature - Now able to set cache time on PropertyIO, so it will automatically reload after X ms, default is NONE(-1) is set with global parameter. Can be set individual.
  • Major New feature - It is now possible to set a cache time for PropertyIO's, the amount of milliseconds before the typed value cache is invalidated and the properties will be automatically reloaded at next access. The default value is set from PropertyFrameworkGlobals to -1, which mean that per default no cache timeout is enabled. The value can be set globally in or for the individual PropertyIO. This is usual done in the method PropertyCollection.preValidation().
  • New feature - New PropertyIO to load manifest files, ManifestPropertyIO.
  • New feature - AbstractURLPropertyIO added, as an abstract PropertyIO for getting Properties via an URL.
  • New feature - Now able to set cache time on PropertyIO, so it will automatically reload after X ms, 0 means never automatically reload.

Changed PropertyType Capabilities

  • New feature - FilterFileNode for FileStructurePropertyType.
  • Changes - Posssible to overload the DNS url use to verify the domain in EmailPropertyType, default is the internal URL provided.
  • Changes - New constructors added to URLPropertyType, so defaultValue URL given to the constructor as an String.
  • Changes - EmailPropertyType, do not use Preferences.getSystem(...), but instead have static methods for timeout and retries, used when checking the MX record for the email domain.
  • Bugfix - AbstractPropertyIO fixed an NullPointerException if the Properties could not be loaded in the "getValue(String)" method. Instead of a NullPointerException, null is returned.
  • Bugfix - URLPropertyType description now includes proxy and URLValidator setup.
  • Bugfix - Fixed EmailPropertyType bug when cheking email domains "Prefs at root 0x80000002. Windows RegCreateKeyEx(...)", used Preferences,getSystem(...)

Changed PropertyFrameworkGlobals Capabilities

  • Major New feature - Loading PropertyFrameworkGlobals from global properties file "jhpropertiestypes.global.properties"
  • New feature - Log performance for all methods, PropertyType around "toType" / PropertyIO around "getProperties" / PropertyCollection around "initialize". With a new PropertyFrameworkGlobals "logDebugFrameworkPerformance" as a property "global.log.debug.framework.performance".
  • Changes - Change default double precision in PropertyFrameworkGlobals to "0.00000000001".

Changed PropertyCollection Capabilities

  • New feature - PropertyCollectionLocator class which can get any registered Property.
  • New feature - PropertyCollectionRegistry has a lastUdpated added
  • New feature - PropertyCollection has new method "getName" which is used to identify the PropertyCollection in the PropertyCollectionRegistry.
  • New feature - PropertyCollection has new method "getRegistryTimeout()" which is used to specify how long a collection has to be stored in the PropertyCollectionRegistry.
  • Changes - Static class PropertyInitializationPriorityComparator in class PropertyCollectionFactory moved to seperate class in collections package, why? - It just seemed cleaner.
  • Changes - SystemPropertiesCollection now has a static initializer.

Other Changes and Bugfixes

  • New feature - URLUtils class added, can construct a URL without a checked exception.
  • New feature - ByteSizeVO now have a "parse(String)" method
  • New feature - Some new PropertyTypes have the javadoc annotation @Version, this is only when Im not sure they are completely correct.
  • Changes - Method in class "Property#isValid()" is now final.
  • Changes - In DefaultURLValidator the value for DEFAULT_TESTCONNECTION_TIMEOUT_IN_MILLISECONDS has been changed from 10000 to 4000 milliseconds.
  • Changes - Renamed "URLTester" to "URLValidator" to have consistent naming.
  • Changes - Renamed "DefaultURLTester" to "DefaultURLValidator" to have consistent naming.
  • Changes - Renamed "NoURLTester" to "NoURLValidator" to have consistent naming.
  • Changes - Renamed "URLPropertyType#getUrlTester" to "URLPropertyType#getURLValidator" to have consistent naming.
  • Changes - Renamed "URLPropertyType#setUrlTester" to "URLPropertyType#setURLValidator" to have consistent naming.
  • Changes - Renamed "URLPropertyType#NO_URL_TEST" to "URLPropertyType#NO_URL_VALIDATOR" to have consistent naming.
  • Changes - AbstractTreeNode.getFile() is not "final" any more. Reason that "FilterFileNode" needed to override it.
  • Changes - DefaultXmlFileValidator has a additional constructor which loads schema URL as class resource
  • Changes - Renamed "IListPropertyType" to "MarkerListPropertyType" and moved to package "dk.heick.properties.types.interfaces.markers". I dont like the "I*" notation.
  • Changes - Renamed "IPasswordPropertyType" to "MarkerPasswordPropertyType" and moved to package "dk.heick.properties.types.interfaces.markers". I dont like the "I*" notation.
  • Changes - Renamed "IPathPropertyType" to "MarkerPathPropertyType" and moved to package "dk.heick.properties.types.interfaces.markers". I dont like the "I*" notation.
  • Changes - Renamed "IProxyDependent" to "MarkerProxyDependent" and moved to package "dk.heick.properties.types.interfaces.markers". I dont like the "I*" notation.
  • Changes - Renamed "ISubPropertyType" to "MarkerSubPropertyType" and moved to package "dk.heick.properties.types.interfaces.markers". I dont like the "I*" notation.
  • Changes - Renamed arguments "name" to "propertyName" where ever its appropiate, to get the namespace more clearly defined.
  • Changes - Add "final" where ever a "String propertyName".
  • Changes - Updated code with consistent naming of "propertyName" instead of "name" in some case.
  • Changes - Upgraded the javadoc.
  • Bugfix - Removed spelling mistakes Propety to Property, and DTO to VO.

Web Changes

  • New feature - In JHPropertiesTypedWebDemo now has the ability to view all global settings and, and the ability to set default proxy.
Posted by Frederik Heick 2015-03-03

Log in to post a comment.