AO Net Types Changelog


Snapshot Notes

  • Minimum Java version changed from 1.7 to 1.8.
  • Fixed bug in URIParametersUtils.addParams(…) that failed to separate existing parameters from new parameters with a &.


Release Notes

  • Pulled networking utilities out of AOCode Public.
  • 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.


Release Notes

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


Release Notes

  1. Updated some javadocs to reflect APIs recently deprecated.


Release Notes

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


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
  • 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
    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.