AO Net Types Changelog

ao-net-types-3.0.0-SNAPSHOT

Snapshot Notes

  • Updated to Checkstyle 10.18.1.
  • When parameter values are an Enum, the parameter value is obtained from Enum.name() instead of Enum.toString(). This is to intuitively use enums as parameters when Enum.toString() is overridden.

ao-net-types-2.0.2

Release Notes

  • Updated dependencies.

ao-net-types-2.0.1

Release Notes

  • Characters that are unprintable invalid within US-ASCII are no longer encoded or decoded during URI to/from IRI conversions. Previously, an invalid IRI could be encoded into a valid URI, and a valid URI could be decoded to an invalid IRI.

ao-net-types-2.0.0

Release Notes

  • Now supports Java 9+ modules with included module-info.class.
  • Maven artifact relocated from com.aoindustries:ao-net-types to com.aoapps:ao-net-types.
  • Package renamed from com.aoindustries.net to com.aoapps.net.
  • SQL schema renamed from com.aoindustries.net to com.aoapps.net.

ao-net-types-1.3.0

Release Notes

  • MutableURIParameters.addParameter(…) and MutableURIParameters.addParametesr(…)renamed to add(…), and now returns MutableURIParameters for method chaining.
  • Parameter values may now be provided as Object. The conversion to string may be deferred, or the value may be streamed instead of being converted to a string.
  • New overload of MutableURIParameters.add(…) that accepts Object[] for multiple values.
  • New static methods URIParametersMap.of(…) for streamlined inline construction for up to five parameters.
  • URIParametersMap optimized to store first value using Collections.singletonList(…). This should help in the most common case where a parameter has a single value.
  • URIParametersUtils now supports appending query string to Appendable and out StringBuffer, in addition to the previous StringBuilder.
  • URIParameters now extends Writable, which allows for optimizing streaming without building full intermediate strings.

ao-net-types-1.2.4

Release Notes

  • Eliminated unnecessary uses of java.io.ObjectInputValidation where immediate validation from readObject(…) or readExternal(…) is sufficient.

ao-net-types-1.2.3

Release Notes

  • Fixed database dump/restore data ordering problems by skipping some validation steps when the user is postgres. Please replace the following functions:
    1. DomainName.validate-function.sql

ao-net-types-1.2.2

Release Notes

  • Defined SQLSTATE values for all SQLException.
  • Split development-only classes into a new sub-project in devel/. This sub-project is used only for development and is never deployed to artifact repositories.
  • Fixed database dump/restore data ordering problems by skipping some validation steps when the user is postgres. Please replace the following functions:
    1. DomainName.validate-function.sql

ao-net-types-1.2.1

Release Notes

  • Minimum Java version changed from 1.7 to 1.8.
  • Reduced use of property substitutions in pom.xml. This is to help 3rd-party parsers that fail to perform full Maven-compatible substitutions.
  • Fixed bug in URIParametersUtils.addParams(…) that failed to separate existing parameters from new parameters with a &.
  • Updated dependencies.

ao-net-types-1.2.0

Release Notes

  • Pulled networking utilities out of AO Hodgepodge.
  • New class AnyURI optimized for high performance manipulation of URL scheme, hier-part, query string, and fragment.
  • UrlUtils.encodeUrlPath(String, String) renamed to URIEncoder.encodeURI(String) and now encodes the entire URL. Also no longer does any URL transformations for tel: scheme. Added streaming variants of URIEncoder.encodeURI(…), too.
  • UrlUtils.decodeUrlPath(String, String) renamed to URIDecoder.decodeURI(String) and now decodes the entire URL. Added streaming variants of URIDecoder.decodeURI(…), too.
  • New methods URIEncoder.encodeURIComponent(…) for encoding URI path components or fragments.
  • New methods URIDecoder.decodeURIComponent(…) for decoding URI path components or fragments.
  • Renamed HttpParameters* to URIParameters*.
  • URIParametersUtils.addParams(…) now returns the original string when no parameters added.
  • Implementation changed from encoding URI in response encoding to UTF-8 per B.2.1 Non-ASCII characters in URI attribute values.
  • All implementations of URIParameters.toString() now encode a query string in UTF-8.
  • New method MutableURIParameters.addParameters(String, Iterable) to add multiple values at once.
  • No longer URL rewriting file: and data: URLs.

ao-net-types-1.1.2

Release Notes

  • Using managed dependencies:
    1. This project uses managed dependencies.
    2. This project's managed dependencies may also be imported by other projects.

ao-net-types-1.1.1

Release Notes

  • Updated some javadocs to reflect APIs recently deprecated.

ao-net-types-1.1.0

Release Notes

  • Minimum Java version changed from 1.6 to 1.7.
  • New self-validating type Path.
  • New DomainName constants:
    1. LOCALHOST
    2. LOCALHOST_LOCALDOMAIN
  • Bracketed IPv6 addresses […] now supported in parsing and validating both InetAddress and HostAddress.
  • Improved performance of InetAddress.validate(String) by no longer internally throwing and catching exceptions during parsing.
  • SCTP also has ports in range 1-65535, like TCP and UDP.
  • Added SQL implementation in alternate "sql" classifier.

ao-net-types-1.0.0

Release Notes

  • New project for Networking-related value types.
  • Pulled existing network value types out of AOServ Client into this new AO Net Types project.
  • Renamed NetPort to Port.
  • Added full listing of Protocols from iana.org.
  • Added AddressFamily enumeration and InetAddress.getAddressFamily() method. Deprecated InetAddress.isIPv4() and InetAddress.isIPv6().
  • Ports are now a combination of port number and protocol instead of just port number. For example, 143/TCP.
  • PortRanges are a combination of port range and protocol. For example, 8080-8087/TCP.
  • InetAddress improvements:
    1. Fixed bug in IPv4 multicast network mask.
    2. IPv4 addresses are now internally stored in the IPv4-mapped space instead of IPv4-compatibility. This resolves the ambiguity between unspecified IPv6 :: and IPv4 0.0.0.0.
    3. All bit sequences internally represented by constants to aid in code readability and correctness.
    4. Separated isTeredo() from is6to4().
    5. Added missing TEST-NET-2 and TEST-NET-3 in isDocumentation().
    6. Added isGlobalUnicast() to check for Global Unicast addresses.
    7. Internal representation is now two long fields instead of a LongLong object.
    8. IPv4-compatibility addresses are deprecated. They are no longer considered members of various IPv4-mapped network ranges.
  • New AddressType enum corresponding to RFC 4291, Section 2.4. Address Type Identification.
  • New InetAddressPrefix that is a compound type of InetAddress and an associated prefix.
  • New InetAddressPrefixes constants of standard network prefixes.
  • New Protocol.getProtocolByKeyword(String) method to get protocols by their standard keyword.
  • Updated dependencies.