Verisign EPP SDK Change Log
===================

Changes in version 1.15.0.2 (12.13.2021)
-----------------------------------
* Patched the reference of the log4j2 libraries (org.apache.logging.log4j:log4j-slf4j-impl, org.apache.logging.log4j:log4j-core, and org.apache.logging.log4j:log4j-api) from version 2.14.1 to version 2.15.0 to address a log4j2 zero-day vulnerability in CVE-2021-44228. (James F. Gould)

Changes in version 1.15.0.1 (07.02.2021)
-----------------------------------
* Removed old v01 version of the registry mapping, and updated the dependencies in launchpolicy and loginsecpolicy.(James F. Gould)   
* Updated from draft-ietf-regext-epp-registry-maintenance-14 to draft-ietf-regext-epp-registry-maintenance-15. (James F. Gould)
* Removed the premium domain extension from the bundle. (James F. Gould)
* Added the com.verisign.epp.codec.unhandlednamespaces.v1_0.EPPUnhandledNamespacesMonitor interface and the com.verisign.epp.codec.unhandlednamespaces.v1_0.EPPUnhandledNamespacesMonitorLogger implementation class with integration into the filter classes (EPPUnhandledNamespacesPollMessageFilter and EPPUnhandledNamespacesResponseFilter). (James F. Gould)
* Removed old versions of the registry fee extension (draft-brown-epp-fees-06, draft-brown-epp-fees-07, draft-ietf-regext-epp-fees-00, draft-ietf-regext-epp-fees-08). (James F. Gould)
* Updated from draft-ietf-regext-secure-authinfo-transfer-04 to draft-ietf-regext-secure-authinfo-transfer-07. (James F. Gould)

Changes in version 1.15.0.0 (06.18.2021)
-----------------------------------
* Updated draft-ietf-regext-unhandled-namespaces to RFC 9038. (James F. Gould)
* Removed the JOBS Contact Extension from the bundle. (James F. Gould)
* Added the Maintenance EPP Mapping to the bundle, starting with draft-ietf-regext-epp-registry-maintenance-14. (James F. Gould)
* Removed the logger configuration properties from epp.config, which include EPP.LogMode, EPP.LogLevel, EPP.LogCfgFile, and EPP.LogCfgFileWatch. (James F. Gould)
* Changed the use of the Log4J 1 API for logging to use SLF4J along with support for multiple backend loggers, including Log4J 1, Log4J 2, and Logback.  The backend logger will be auto-configured based on the logger libraries and configuration file included in the classpath.  Log4J 2 is set as the default backend logger. (James F. Gould)

Changes in version 1.14.0.7 (12.15.2020)
-----------------------------------
* Added the testClientInitiatedRenegotation test to com.verisign.epp.interfaces.EPPSessionTst to use the RenogotiationSession to verify that client-initiated renegotiation is disabled. (James F. Gould)
* Added setting the jdk.tls.rejectClientInitiatedRenegotiation system propery when launching the Stub Server to disable client-initiated renegotiation. (James F. Gould)
* Created the com.verisign.epp.interfaces.RenogotiationSession class to test whether the EPP server support client-initiated renegotiation. (James F. Gould)
* Made the getter methods of com.verisign.epp.client.EPPSSLClientSocket public to enable testing client-initiated renegotiation. (James F. Gould)
* Added the option of passing the cause for the com.verisign.epp.exception.EPPCommandException. (James F. Gould)
* Updated the Login Security Extension to only support the RFC (1.0) version. (James F. Gould)

Changes in version 1.14.0.6 (11.30.2020)
-----------------------------------
* Updated documentation for com.verisign.epp.util.EPPCatFactory. (James F. Gould)
* Added the com/verisign/epp/pool/*Tst.class classes for the testClient and the testClientServer Gradle tasks. (James F. Gould)
* Added support for the minAbsoluteTimeout and maxAbsoluteTimeout session pool (single and system) properties to randomize the absolute timeout on a per session basis between the minimum and maximum absolute timeout.  The absoluteTimeout property is overridden by the setting of both the minAbsoluteTimeout and maxAbsoluteTimeout properties.  (James F. Gould)

Changes in version 1.14.0.5 (09.24.2020)
-----------------------------------
* Revised the test cases in com.verisign.epp.codec.domain.EPPDomainTst.testDomainUpdate to exactly match the example provided in RFC 5731 and to add a case for an update with the host attribute model. (James F. Gould)
* Changed the addresses attribute and associated accessor methods in com.verisign.epp.codec.domain.EPPHostAttr to be Vector<EPPHostAddress> and created the hasAddresses() : boolean and addAddress(EPPHostAddress) methods. (James F. Gould)
* Changed the com.verisign.epp.codec.domain.EPPDomainAddRemove servers attributes and the associated accessor methods to use Vector<?> instead of Vector<String> to support both host objects (String) and host attributes (EPPHostAttr).  Created the addServer(EPPHostAttr) method for host attribute to match the addServer(String) method for host object. (James F. Gould)
* Cleaned up the jobContact classes by adding the com.verisign.epp.codec.jobscontact.Bool class for the custom boolean value ('Yes' or 'No'), added "has" methods, and revamped the encode, decode, and equals based on the more recent extensions. (James F. Gould)
* Replaced draft-ietf-regext-unhandled-namespaces-01 with draft-ietf-regext-unhandled-namespaces-03. (James F. Gould)

Changes in version 1.14.0.4 (09.02.2020)
-----------------------------------
* Updated com.verisign.epp.transport.client.EPPSSLClientSocket and com.verisign.epp.transport.client.EPPPlainClientSocket classes to use the EPP.ConTimeOut property for the connection timeout and the EPP.ReadTimeOut property for the read timeout.  Previously, the EPP.ConTimeOut only applied to the read timeout and was not used for the connection timeout.  The EPPEnv.getReadTimeOut() method was added for the EPP.ReadTimeOut property.  The EPP.ConTimeOut property value will be used for the EPP.ReadTimeOut if the EPP.ReadTimeOut property is not set. (James F. Gould)

Changes in version 1.14.0.3 (08.31.2020)
-----------------------------------
* Updated the com.verisign.epp.codec.domain.EPPDomainTst to use the new "add" methods for com.verisign.epp.codec.domain.EPPDomainAddRemove. (James F. Gould)
* Added "add" for the list attributes and "has" methods for all attributes in com.verisign.epp.codec.domain.EPPDomainAddRemove. (James F. Gould)
* Fixed reference of Vector<String> with Vector<EPPDomainStatus> for the statuses in com.verisign.epp.codec.domain.EPPDomainAddRemove. (James F. Gould)


Changes in version 1.14.0.2 (08.25.2020)
-----------------------------------
* Added use of generics to the Vector attributes of com.verisign.epp.codec.domain.EPPDomainAddRemove. (James F. Gould)
* Added EPPUtil.namespaceToNamespaceSuffix(String), EPPUtil.findUnsupportedExtNamespaceSuffixes(List<String>, List<EPPCodecComponent), EPPCommand.findUnsupportedExtNamespaceSuffixes(List<String), EPPResponse.findUnsupportedExtNamespaceSuffixes(List<String) for easier configuration and logging using XML namespace suffixes. (James F. Gould)

Changes in version 1.14.0.1 (08.24.2020)
-----------------------------------
* Added EPPUtil.findExtNamespaces(List<EPPCodecComponent>, List<String), EPPUtil.findExtNamespaceSuffixes(List<EPPCodecComponent>, List<String), EPPCommand.findExtNamespaces(List<String), EPPCommand.findExtNamespaceSuffixes(List<String), EPPResponse.findExtNamespaces(List<String), EPPResponse.findExtNamespaceSuffixes(List<String) for more quickly identifying command and response extensions. (James F. Gould)
* Replaced draft-ietf-regext-login-security-08 and draft-ietf-regext-login-security-09 with epp-login-security-rfc8807. (James F. Gould)


Changes in version 1.14.0.0 (06.25.2020)
-----------------------------------
* The Pool.[Client|Server|XMLSignature].<property> properties have been replaced with a single property per pool (EPP.[SchemaCachingParserPool|TransformerPool|XMLSignaturePool].size), where the pools are used in both the client and the server.  The prior properties will be ignored and the default pool size is set to 10 if the new properties do not exist.  Look to the new bundles/verisign/epp.config for use of the new pool properties. (James F. Gould)
* Replaced PoolMan with Apache Commons Pool 2 for the parser and transformer pools.  The Singleton classes com.verisign.epp.pool.parser.EPPSchemaCachingParserPool, com.verisign.epp.pool.parser.EPPXMLSignatureParserPool, com.verisign.epp.pool.transformer.EPPTransformerPool, and epp.verisign.epp.util.EPPStrictContactParserPool needed to be created along with changes to the com.verisign.epp.util.EPPXMLByteArray, com.verisign.epp.util.EPPXMLStream, and other classes dependent on the pools. (James F. Gould)
* Replaced the use of Apache Commons Pool 1 with Apache Commons Pool 2 for use in com.verisign.epp.pool.EPPSessionPool and associated classes.  The maxActive pool property is deprecated for the maxTotal property and the initMaxActive property is deprecated for the initMaxTotal property.  Removed use of the poolableClassName property. (James F. Gould)
* Changed to use gradle 6.4 in gradle-wrapper.properties. (James F. Gould)
* Updated from dnsjava version 2.1.9 to version 3.1.0. (James F. Gould)


Changes in version 1.13.0.0 (06.12.2020)
-----------------------------------
* Replaced draft-ietf-regext-secure-authinfo-transfer-01 with draft-ietf-regext-secure-authinfo-transfer-02. (James F. Gould)
* Added com.verisign.epp.util.EPPUtil.findUnsupportedExtNamespaces(List<String>, List<EPPCodecComponent>), com.verisign.epp.codec.gen.EPPCommand.findUnsupportedExtNamespaces(List<String>), and com.verisign.epp.codec.gen.EPPResponse.findUnsupportedExtNamespaces(List<String>) to identify unsupported EPP extensions, and the associated unit tests in com.verisign.epp.util.EPPCodecTst.testFindDUnsupportedExtensions(). (James F. Gould)
* Revised com.verisign.epp.codec.domain.EPPDomainCreateCmd to use generics for the Vector lists as a prototype for revising the EPP SDK to leverage generics while maintaining interface backward compatibility.  Added has and add methods for each of the list properties (contacts, servers).  Revised the servers list to work only with name server objects and added a new serverAttrs list and corresponding methods to use host attributes. (James F. Gould)
* Revised com.verisign.epp.codec.domain.EPPDomainInfoResp to use generics for the Vector lists as a prototype for revising the EPP SDK to leverage generics while maintaining interface backward compatibility.  Added has and add methods for each of the list properties (statuses, contacts, nses, and hosts).  Revised the nses list to work only with name server objects and added a new nsAttrs list and corresponding methods to use host attributes. (James F. Gould)
* Replaced draft-ietf-regext-login-security-07 with draft-ietf-regext-login-security-09. (James F. Gould)
* Replaced draft-ietf-regext-epp-fees-20 with RFC 8748. (James F. Gould)
* Created separate "unhandlednamespaces" directory for draft-ietf-regext-unhandled-namespaces, with support for a draft-ietf-regext-unhandled-namespaces URI and versioning with creation of com.verisign.epp.codec.unhandlednamespaces.v01.EPPUnhandledNamespacesExtFactory. (James F. Gould)
* Added support for a URI and versioning for draft-ietf-regext-secure-authinfo-transfer with creation of com.verisign.epp.codec.secureauthinfo.v01.EPPSecureAuthInfoExtFactory. (James F. Gould)

Changes in version 1.12.0.12 (01.13.2020)
-----------------------------------
* Removed the package-info.java files from the small number of packages that included it, to be consistent and to remove confusion. (James F. Gould)
* Fixed a large set of javadoc errors and warnings. (James F. Gould)


Changes in version 1.12.0.11 (12.26.2019)
-----------------------------------
* Updated com.verisign.epp.interfaces.EPPSessionTst to address a "missing type arguments for generic class Class<T>" warning. (James F. Gould)
* Created the com.verisign.epp.interfaces.EPPSession.initLoginAdapter() method and ensured that it is called in all of the com.verisign.epp.interfaces.EPPSession.init methods. (James F. Gould)

Changes in version 1.12.0.10 (12.13.2019)
-----------------------------------
* Updated draft draft-ietf-regext-epp-fees and fee-1.0.xsd for draft-ietf-regext-epp-fees-19. (James F. Gould)
* Updated the EPPPollQueueMgr.delete method to use the <poll> element instead of the "epp" prefixed <epp:poll> element in the value of the error response, since the "epp" namespace prefix is undefined. (James F. Gould)
* Added support for draft-ietf-regext-login-security-04. (James F. Gould)
* Fixed an issue with the logging of the received packets on the client-side by updating the com.verisign.epp.interfaces.EPPSession class. (James F. Gould)
* Fixed the list of javadoc warnings. (James F. Gould)
* Removed old versions of the Login Security Extension. which include v01, v02, and v03.  Versions v04 and v1_0 are kept. (James F. Gould)
* Replaced the use of Ant for builds to Gradle. (James Tao and James F. Gould)

Changes in version 1.12.0.9 (09.30.2019)
-----------------------------------
* Updated the order that the factories and handlers are loaded in com.verisign.epp.serverstub.Server.initializeDispatcher(), where the extension factories, then the map factories, and finally the handlers are loaded.  This addresses a corner case where the com.verisign.epp.serverstub.ContactHandler is loading the strict contact parser pool prior to the XML schemas linked to the factories are loaded. (James F. Gould)
* Fixed the logic of replacing "contact-1.0-relaxed.xsd" with "contact-1.0.xsd" in com.verisign.epp.util.EPPStrictContactParser, where previously "contact-1.0-relaxed.xsd" was removed and "contact-1.0.xsd" was not added. (James F. Gould)


Changes in version 1.12.0.8 (09.13.2019)
-----------------------------------
* Updated draft draft-ietf-regext-epp-fees to draft-ietf-regext-epp-fees-18. (James F. Gould)
* Updated EPPSession.getnewPassword() to EPPSession.getNewPassword(). (James F. Gould)
* Removed unused com.verisign.epp.transport.EPPEventHandler and com.verisign.epp.transport.EPPEventTstHandler. (James F. Gould)

Changes in version 1.12.0.7 (09.10.2019)
-----------------------------------
* Added masking of password and new password in com.verisign.epp.namestore.util.EPPSecureSendReceiveLogger for com.verisign.epp.codec.loginsec.v02.EPPLoginSec, com.verisign.epp.codec.loginsec.v03.EPPLoginSec, com.verisign.epp.codec.loginsec.v03.EPPLoginSec, or com.verisign.epp.codec.loginsec.v1_0.EPPLoginSec extensions to login command. (James F. Gould)


Changes in version 1.12.0.6 (09.03.2019)
-----------------------------------
* Fixed com.verisign.epp.codec.loginsec.v1_0.EPPLoginSecUserAgent and com.verisign.epp.codec.loginsec.v04.EPPLoginSecUserAgent getTech(String) : void method to setTech(String) : void. (James F. Gould)
* Creates sources.jar file named epp-verisign-${build.version}-sources.jar in the epp lib directory and added the DotName extensions (defreg, emailfwd, namewatch, and persreg) to it. (Dan Keathley)


Changes in version 1.12.0.5 (08.26.2019)
-----------------------------------
* Added generation of the EPP SDK POM file when creating the epp-verisign-<version>.jar file. (Dan Keathley)


Changes in version 1.12.0.4 (08.22.2019)
-----------------------------------
* Created the com.verisign.epp.util.EPPDisabledEntityResolver class and use it when the EPP.UseEntityResolver property is set to false to ensure no XML schemas are dynamically resolved. (James F. Gould)
* Added support for draft-ietf-regext-login-security-03. (James F. Gould)
* Added support for draft-gould-regext-login-security-policy-03. (James F. Gould)

Changes in version 1.12.0.3 (07.31.2019)
-----------------------------------
* Set the default value in epp.config for the property EPP.UseEntityResolver=false to disable the entity resolver. (James F. Gould)
* Set the XML parser features that mitigate the XML eXternal Entity Injection (XXE) vulnerability in com.verisign.epp.util.EPPSchemaCachingParser. (James F. Gould)

Changes in version 1.12.0.2 (06.26.2019)
-----------------------------------
* Corrected items in the Verisign Bundle EPP SDK Programmer's Guide based on what was done for version 1.11.0.7. (James F. Gould)
* Added the initialize(Properties), initialize(String, ClassLoader), and initialize() methods to com.verisign.epp.interfaces.EPPApplication to support different methods of initializing the EPP SDK. (James F. Gould)

Changes in version 1.12.0.1 (06.19.2019)
-----------------------------------
* Removed decode support for the preWhois and postWhois elements in the restore report command of draft-hollenbeck-epp-rgp-03. (James F. Gould)

Changes in version 1.12.0.0 (06.14.2019)
-----------------------------------
* Removed all use of the "xsi:schemaLocation" XML attribute, the use of the "http://www.w3.org/2001/XMLSchema-instance" XML namespace, and the passing of the schemaLocation to the com.verisign.epp.codec.gen.EPPService class. (James F. Gould)
* Added com.verisign.epp.util.EPPUtil.findDuplicateExtNamespaces(List<EPPCodecComponent>), com.verisign.epp.codec.gen.EPPCommand.findDuplicateExtNamespaces(), and com.verisign.epp.codec.gen.EPPResponse.findDuplicateExtNamespaces() to identify duplicate EPP extensions, and the associated unit tests in com.verisign.epp.util.EPPCodecTst.testFindDuplicateExtensions(). (James F. Gould)
* Cleaned up the com.verisign.epp.codec.domain code, by not hard coding the XML namespace prefix on decode, cleaning up the imports, cleaning up the comments, and generally making it more consistent with the newer code. (James F. Gould)
* Added support for removing the auth info via the <domain:null> element by adding a new ELM_NULL authorization type and the removePassword() method to com.verisign.epp.codec.gen.EPPAuthInfo. (James F. Gould)

Changes in version 1.11.0.7 (06.26.2019)
-----------------------------------
* Corrected items in the Verisign Bundle EPP SDK Programmer's Guide. (James F. Gould)

Changes in version 1.11.0.6 (05.13.2019)
-----------------------------------
* Updated draft draft-ietf-regext-epp-fees to draft-ietf-regext-epp-fees-16. (James F. Gould)
* Updated change poll extension to RFC 8590. (James F. Gould)
* Updated the EPP extension RFCs to include both the TXT and HTML documents and to follow the naming convention epp-<extension>-rfc<rfc-number>.<ext>. (James F. Gould)
* Updated organization mapping and organization extension to RFC 8543 and RFC 8544, respectively. (James F. Gould)
* Updated from XercesJ 2.11.0 to 2.12.0. (James F. Gould)
* Added support for draft-ietf-regext-login-security-01. (James F. Gould)

Changes in version 1.11.0.5 (02.01.2019)
-----------------------------------
* Updated com.verisign.epp.codec.fee.v1_0.EPPFeeValue to not default the applied attribute to "immediate" and added support for the "lang" attribute.  Added support for the "lang" attribute to com.verisign.epp.codec.fee.v1_0.EPPFeeCredit. (James F. Gould)
* Updated compilation to target Java 8 instead of Java 7. (James F. Gould)
* Updated to compile and run with Java 11.  Added jaxb-api-2.3.1.jar and fixed many warnings due to deprecated classes and methods. (James F. Gould)
* Replaced draft-gould-regext-login-security-03 with draft-ietf-regext-login-security-00. (James F. Gould)
* Added support for draft-gould-casanova-regext-unhandled-namespaces-00. (James F. Gould)
* Updated draft-ietf-regext-org to draft-ietf-regext-org-12. (James F. Gould)
* Updated draft-ietf-regext-org-ext draft to draft-ietf-regext-org-ext-11. (James F. Gould)
* Added support for draft-gould-regext-login-security-policy-03. (James F. Gould)
* Added support for draft-gould-regext-login-security-03. (James F. Gould)
* Added support for draft-gould-regext-launch-policy-01. (James F. Gould)
* Updated draft-ietf-regext-change-poll to draft-ietf-regext-change-poll-11. (James F. Gould)
* Updated draft-ietf-regext-verificationcode to draft-ietf-regext-verificationcode-06. (James F. Gould)
* Added support for draft-gould-carney-regext-registry-04. (James F. Gould)
* Updated draft-ietf-regext-change-poll to draft-ietf-regext-change-poll-10. (James F. Gould)
* Added support for draft-ietf-regext-validate-04. (James F. Gould)
* Updated draft-gould-idn-table to draft-gould-idn-table-07. (James F. Gould)
* Updated draft-ietf-regext-org to draft-ietf-regext-org-11. (James F. Gould)
* Updated draft draft-ietf-regext-epp-fees to draft-ietf-regext-epp-fees-15. (James F. Gould)
* Updated draft draft-ietf-regext-change-poll to draft-ietf-regext-change-poll-09. (James F. Gould)
* Added support for draft-gould-regext-login-security-policy-00. (James F. Gould)

Changes in version 1.11.0.4 (09.12.2018)
-----------------------------------
* Added the getXmlSchemas method to com.verisign.epp.util.EPPSchemaCachingParser class and created the com.verisign.epp.util.EPPStrictContactParser class to have a parser that overrides the relaxed contact validation with the EPP.Contact.RelaxedValidation epp.config property to test variable validation based on the contact identifier.  Added initialization of a strict XML parser pool and use of the strict XML parser pool for the create or update of the "strict" contact in the com.verisign.epp.serverstub.ContactHandler class. (James F. Gould)
* Added EPPSessionTst.doPollConsume() test method to consume all of the poll queue messages in the server.  This is a useful test for unhandled namespaces. (James F. Gould)
* Removed whowas and suggestion from the SDK. (James F. Gould)
* Added the com.verisign.epp.framework.EPPRegistryPolicyAdapter interface, the first class implementation with com.verisign.epp.codec.launchpolicy.v01.EPPLaunchPolicyAdapter, and revised the com.verisign.epp.serverstub.registry.v01.RegistryHandler to adapt inbound and outbound policy extensions using com.verisign.epp.serverstub.RegistryPolicyCompositeAdapter.  This enables the use of any registry policy extension with a single set of registry handlers. (James F. Gould)
* Added support for draft-gould-regext-launch-policy-01. (James F. Gould)
* Fixed documentation typos in com.verisign.epp.codec.contact.EPPContactPostalDefinition that referred to EPPContactPostalDefination instead of EPPContactPostalDefinition. (James F. Gould)
* Updated draft draft-ietf-regext-epp-fees to draft-ietf-regext-epp-fees-13. (James F. Gould)
* Updated draft draft-ietf-regext-allocation-token to draft-ietf-regext-allocation-token-11, with the addition of the com.verisign.epp.codec.allocationtoken.EPPAllocationTokenInfo class to support including the empty <allocationToken:info> element with a domain info command. (James F. Gould)
* Updated draft draft-ietf-regext-change-poll to draft-ietf-regext-change-poll-08. (James F. Gould)
* Created the com.verisign.epp.codec.EPPPollMessageFilter interface that is implemented by the com.verisign.epp.codec.EPPXmlMsgPollMessageFilter, com.verisign.epp.codec.EPPExtValuePollMessageFilter, and com.verisign.epp.codec.EPPFullExtValuePollMessageFilter classes.  The optional EPP.PollMessageFilter property is defined to set the desired filter for use within com.verisign.epp.serverstub.GenHandler.doPoll(EPPEvent, Object) when processing the poll messages. (James F. Gould)
* Updated draft-ietf-regext-org to draft-ietf-regext-org-10. (James F. Gould)
* Updated draft-ietf-regext-org-ext draft to draft-ietf-regext-org-ext-09. (James F. Gould)
* Added support for draft-ietf-regext-org-07 by adding com.verisign.epp.codec.org.EPPOrgPendActionMsg, com.verisign.epp.serverstub.OrgPollHandler, and revising com.verisign.epp.serverstub.OrgHandler to handle a pending create and insert a pending action poll message based on a revised com.verisign.epp.interfaces.EPPOrgTst. (James F. Gould)
* Added support for draft-gould-carney-regext-registry-03. (James F. Gould)
* Replaced the expired test SMDs, SMD CRL, and revoked SMD list based on a posting by ICANN. (James F. Gould)
* Added support for draft-gould-regext-login-security-02. (James F. Gould)
* Fixed some of the XML namespace prefix and URI handling from within com.verisign.epp.codec.gen.EPPValue to support the different poll message filters. (James F. Gould)
* Renamed com.verisign.epp.codec.gen.EPPPollMessageFilter to com.verisign.epp.codec.gen.EPPXmlMsgPollMessageFilter, added com.verisign.epp.codec.gen.EPPExtValuePollMessageFilter, and added com.verisign.epp.codec.gen.EPPFullExtValuePollMessageFilter to support three different approaches to filtering poll message data that is unsupported by the client based on the client's login services.  The com.verisign.epp.serverstub.GenHandler.doPoll(EPPEvent, Object) is predfined to filter via EPPFullExtValuePollMessageFilter, but the filtering can be replaced to use one of the other filters.  (James F. Gould)
* Removed com.verisign.epp.util.TestErrorHandler and replaced it's used with com.verisign.epp.util.EPPXMLErrorHandler in the test classes. (James F. Gould)
* Added the maskString(String) : String method to the EPPSendReceiverLogger class and it's derived classes for use in the EPPXMLErrorHandler class for masking sensitive XML parser errors like the 'pwType'. (James F. Gould)

Changes in version 1.11.0.3 (05.02.2018)
-----------------------------------
* Deprecated com.verisign.epp.namestore.interfaces.NSSubProduct.  Removed BZ and revised COM, NET, ORG, and NAME to use the a-label TLD in com.verisign.epp.namestore.interfaces.NSSubProduct. (James F. Gould)
* Changed the target JDK to be 1.7 instead of 1.6 due to changing to use TLSv1.2 as the default EPP.SSLProtocol setting. (James F. Gould)
* Changed to use TLSv1.2 as the default EPP.SSLProtocol setting across each of the epp.config files. (James F. Gould)
* Added support for draft-ietf-regext-epp-fees-10 that adds the urn:ietf:params:xml:ns:fee-1.0 XML namespace with it's associated fee-1.0.xsd XML schema, the com.verisign.epp.codec.fee.v1_0 package, and related classes. (James F. Gould)
* Added support for draft-ietf-regext-epp-fees-08 that adds the urn:ietf:params:xml:ns:fee-0.23 XML namespace with it's associated fee-0.23.xsd XML schema, the com.verisign.epp.codec.fee.v23 package, and related classes. (James F. Gould)
* Added the com.verisign.epp.interfaces.EPPLoginAdapter class, the optional "EPP.LoginAdapter" epp.config property, and added invoking the set LoginAdapter within com.verisign.epp.interfaces.EPPSession to support adding an EPP login extension. (James F. Gould)
* Added hasService(String) : boolean and hasExtensionService(String) : boolean to com.verisign.epp.codec.gen.EPPServiceMenu and com.verisign.epp.codec.gen.EPPGreeting to be able to easily identify whether the server supports a specific object or extension service. (James F. Gould)
* Added EPP.UseUserAgent (EPPEnv.isUseUserAgent() : boolean) and EPP.SDKVersion (EPPEnv.getSDKVersion() : boolean) epp.config properties to support providing the user agent information in the login security extension. (James F. Gould)
* Added support for the Login Security Extension. (James F. Gould)
* Added the getNamespace() : String method to the com.verisign.epp.codec.gen.EPPCodecComponent interface and all of the implemented classes to make all components self describing for the XML namespace. (James F. Gould)
* Added the com.verisign.epp.codec.gen.EPPPollMessageFilter utility class to filter EPP poll message responses based on the login services (object and command / response) supported by the client. (James F. Gould)
* Modified the com.verisign.epp.serverstub.GenHandler.doPoll(EPPEvent, Object) method to call com.verisign.epp.codec.gen.EPPPollMessageFilter in no-op and standard mode to demonstrate filtering the poll messages based on the client login services. (James F. Gould)
* Modified the com.verisign.epp.serverstub.Server.initializeDispatcher() method to register all map factories defined by the EPP.MapFactories property, since the poll message only map factories (EPPLowBalancePollMapFactory and EPPRgpPollMapFactory) were not getting loaded by the handlers defined by the EPP.ServerEventHandlers property. (James F. Gould)
* Added the getNamespace() : String method to some of the responses (EPPRgpPollResponse, EPPRelatedDomainExtDeleteResp, EPPBalanceInfoResp, EPPLowBalancePollResponse, EPPNameVerificationPendActionMsg) to ensure that they return the correct XML namespace. (James F. Gould)
* Removed old fee extension versions including v06, v07, and v08. (James F. Gould)
* Replaced references of reseller and resellerext to org and orgext. (James F. Gould)
* Removed the packet debug logging directly within EPPXMLByteArray and EPPXMLStream to ensure that all data is masked with the EPPSecureSendReceiveLogger configured. (James F. Gould)
* Added maskMessage(EPPCodecComponent) : EPPCodecComponent method to EPPSendReceiveLogger as a utility method to use to optionally mask attributes across all EPPCodecComponent toString() : String methods by revising EPPUtil.toString(EPPCodecComponent) : String to use the configured EPPSendReceiveLogger.maskMessage(EPPCodecComponent) method. (James F. Gould)


Changes in version 1.11.0.2 (09.08.2017)
-----------------------------------
* Added an additional check in com.verisign.epp.util.EPPSchemaCachingEntityResolver to ensure that XML schemas in the classpath are the only XML schemas that can be dynamically loaded. (James F. Gould)

Changes in version 1.11.0.1 (08.25.2017)
-----------------------------------
* Commented out inclusion of the passphrase attributes (identityPassPhrase, identityKeyPassPhrase, and trustStorePassPhrase) in the EPPSSLConfig.toString() : String method to meet logging security best practice. (James F. Gould)
* Added support for secure packet logging by creating the com.verisign.epp.util.EPPSendReceiveLogger interface along with the default com.verisign.epp.util.EPPRawSendReceiveLogger class and the com.verisign.epp.namestore.util.EPPSecureSendReceiveLogger class.  The default is to use the EPPRawSendReceiveLogger with the option of overriding the default using the EPP.SendReceiveLogger epp.config property.  Set the property to com.verisign.epp.namestore.util.EPPSecureSendReceiveLogger to get the password and auth info attributes logged with the "MASKED" value. (James F. Gould)

Changes in version 1.11.0.0 (04.27.2017)
-----------------------------------
* Fixed a bug in com.verisign.epp.codec.emailFwd.EPPEmailFwdCheckResult that set the check reason to the email forwarding name on decode.  Updated the EPPEmailFwdCheckResult.equals methods to ensure that all attributes are checked.  Made related cleanup changes to com.verisign.epp.codec.defReg.EPPDefRegCheckResult.  (James F. Gould)

Changes in version 1.10.0.3 (03.24.2017)
-----------------------------------
* Made setting of the XML entity resolver, based on the com.verisign.epp.util.EPPSchemaCachingEntityResolver, a configurable setting using the optional EPP.UseEntityResolver config property, with a default value of true. (James F. Gould)

Changes in version 1.10.0.2 (01.06.2017)
-----------------------------------
* Revised the contact disclose API in the com.verisign.epp.codec.contact.EPPContactDisclose class.  All of the disclose attributes were changed from String's to boolean's and the use of Vector's was removed.  The existing String attribute methods were deprecated and the EPPContactDiscloseName, EPPContactDiscloseOrg, and EPPContactDiscloseAddress classes were deprecated. (James F. Gould)

Changes in version 1.10.0.1 (12.15.2016)
-----------------------------------
* Added relaxed contact validation support used to transition a thin registry to thick.  Relaxed validation leverages a new contact XSD (contact-1.0-relaxed.xsd) that makes the <contact:name>, <contact:addr>, <contact:city>, <contact:street>, <contact:cc>, and <contact:email> elements optional.  The new optional EPP.Contact.RelaxedValidation epp.config property must be set to true for the client and server stub to use and validate to the relaxed schema. (Suvelee Sarpotdar)

Changes in version 1.10.0.0 (11.17.2016)
-----------------------------------
* Removed the setting for the EntityResolver in com.verisign.epp.util.EPPSchemaCachingParser and deprecated com.verisign.epp.util.EPPSchemaCachingEntityResolver, since the XML schemas are pre-cached in com.verisign.epp.util.EPPSchemaCachingParser, so there is no need to dynamically load them anymore. (James F. Gould)
* Replaced reference of com.sun.org.apache.xerces.internal.dom.DocumentImpl to org.apache.xerces.dom.DocumentImpl in EPPUtil. (James F. Gould)
* Added logging to EPPGenHandler.handleEvent(EPPEvent, Object). (James F. Gould)
* Added getFirstPostalInfo() : EPPContactPostalDefinition to EPPContactInfoResp and EPPContact. (James F. Gould)
* Added EPPDomainInfoResp.getContactByType(String) : EPPDomainContact, EPPDomainInfoResp.getAdminContact() : EPPDomainContact, EPPDomainInfoResp.getTechContact() : EPPDomainContact, and EPPDomainInfoResp.getBillingContact() : EPPDomainContact. (James F. Gould)
* Added com.verisign.epp.pool.EPPClientTransIdGenerator interface, concrete com.verisign.epp.pool.ClientTransIdGenerator class, and the optional clientTransIdGenerator pool property to define the concrete EPPClientTransIdGenerator to use for generating client transaction identifiers for the login and logout commands for the pool.  (James F. Gould)
* Added EPPSession.sendMessage(EPPMessage) to help in testing a negative test case, but also as a potentially useful method for sending any EPPMessage to the session. (James F. Gould)
* Added more debug logging to EPPSSLImpl. (James F. Gould)
* Added validation of the EPPMessage type in the EPPDispatcher and the EPPByteArrayDispatcher to ensure that receiving an EPPResponse or EPPGreeting in the server will return an appropriate error message. (James F. Gould)

Changes in version 1.9.0.1 (04.20.2016)
-----------------------------------
* Added support for running the com.verisign.epp.verificationcode.china.ChinaVerificationCodeTst test without the VSP pool and by loading the DNVC from the dnvc.b64 file and the RNVC from the rnvc.b64 file. (James F. Gould)
* Added support for draft-brown-epp-fees-07. (James F. Gould)
* Added additional SSL Protocol options in the comments of the EPP.SSLProtocol property and set the default protocol to TLSv1 in the epp.config. (James F. Gould)
* Changed the com.verisign.epp.codec.verificationcode.EPPSignedCode.decode(byte[] aSignedCodeArray) : void from protected to public. (James F. Gould)

Changes in version 1.9.0.0 (03.10.2016)
-----------------------------------
* Updated the EPPUtil.decodeBooleanAttr(Element, String) method to properly identify a non-existent attribute and to enhance the format of the EPPDecodeException value to easier support. (James F. Gould)
* Made the refundable and grace-period attributes of com.verisign.epp.codec.fee.v09.EPPFeeValue truly optional with no default value, while the applied attribute remained with the "immediate" default value based on the default value in the XSD.  Added "has" methods for these attributes, changed the refundable to a Boolean to support a null value, and changed the encode and decode methods to handle non-existent attributes. (James F. Gould)
* Added convenient constructor that takes both a EPPFeeValue and a currency (String) parameter for the com.verisign.epp.codec.fee.v09 classes of EPPFeeTransform, EPPFeeCreate, EPPFeeRenew, EPPFeeTransfer, and EPPFeeUpdate. (James F. Gould)
* Added methods for passing and returning the Base64 encoded signed code into com.verisign.epp.codec.verificationcode.EPPEncodedSignedCodeValue.  The new EPPEncodedSignedCodeValue methods: decodeValue(byte[]), decodeValue(String), encodeValue(boolean) : String, encodeValueByteArray() : byte[], and encodeValueByteArray(boolean) : byte[] where added. (James F. Gould)


Changes in version 1.8.0.4 (02.18.2016)
-----------------------------------
* Fixed a schema validation error with the change poll message produced by Stub Server. (James F. Gould)

Changes in version 1.8.0.3 (02.18.2016)
-----------------------------------
* Updated com.verisign.epp.verificationcode.china.ChinaVerificationCodeTst with matching changes in com.verisign.epp.sreverstub.NSDomainHandler to provide a more realistic change poll message. (James F. Gould)

Changes in version 1.8.0.2 (02.04.2016)
-----------------------------------
* Added the com.verisign.epp.verificationcode.china.ChinaVerificationCodeTst along with associated changes to the build and stub server behavior to support a test of the 7 predefined verification flows that will work against the Stub Server and the OT&E servers. (James F. Gould)
* Added com.verisign.epp.pool.EPPSessionPool.hasSystemSessionPool(String) : boolean method to determine if a specific system session pool existed. (James F. Gould)
* Fixed com.verisign.epp.codec.verificationcode.EPPVerificationCode.getVspId() : int to return UNDEFINED instead of throwing NumberFormatException when the vspId is not an integer. (James F. Gould)

Changes in version 1.8.0.1 (01.28.2016)
-----------------------------------
* Added validation of the verification code (vsp-id and code types) using formatted trust anchor alias names in the trust store. (James F. Gould)

Changes in version 1.8.0.0 (01.22.2016)
-----------------------------------
* Added hasTrustAnchor(): boolean and getTrustAnchor() : TrustAnchor to EPPSignedCode for getting the matching trust anchor from the PKIXParameters upon successful validation. (James F. Gould)
* Added support for draft-zhou-eppext-reseller-mapping-02 and draft-zhou-eppext-reseller-02.  (James F. Gould)

Changes in version 1.7.0.1 (12.07.2015)
-----------------------------------
* Added EPPCodecException.SAX_EXCEPTION to support throwing a specific exception when the signed code or signed mark do not pass XML schema validation. (James F. Gould)

Changes in version 1.7.0.0 (12.03.2015)
-----------------------------------
* Turned on error handling with EPPXMLErrorHandler by default within EPPSchemaCachingParser.  It can be disabled by called EPPSchemaCachingParser.setErrorHandler(null). (James F. Gould)
* Added support for an XMLSignature Parser Pool to increase performance in parsing and validating the XML Signature for the Verification Code extension and the Launch extension. (James F. Gould)
* Added support for draft-gould-eppext-verificationcode-03, which added regular expression pattern for the format of the verification code token value in the XML schema. (James F. Gould)
* Added support for draft-brown-epp-fees-05 and draft-brown-epp-fees-06. (James F. Gould)

Changes in version 1.6.0.2 (11.09.2015)
-----------------------------------
* Added support for draft-gould-eppext-verificationcode-02, which added support for the notApplicable status and profile status value.

Changes in version 1.6.0.1 (11.03.2015)
-----------------------------------
* Fixed the 'Exception decoding dateTime "": java.lang.IllegalArgumentException' caused by not checking for empty due or date attributes in com.verisign.epp.codec.verificationcode.VerificationCode.decode(). (James F. Gould)
* Bumped down the info level logs to debug level logs in com.verisign.epp.util.EPPSchemaCachingParser. (James F. Gould)

Changes in version 1.6.0.0 (10.21.2015)
-----------------------------------
* Added the Verification Code Extension (verificationcode), that complies with draft-gould-eppext-verificationcode-00, to the Verisign Bundle. (James F. Gould)
* Added the China Name Verification Mapping (vsp), that complies with a preview of draft-xie-eppext-nv-mapping-01, to the Verisign Bundle. (James F. Gould)

Changes in version 1.5.0.0 (04.10.2015)
-----------------------------------
* Added the EPPSession.sendPacket(byte []) method and EPPXMLStream.writePacket(byte[], OutputStream) to enable sending a packet through the session within having to go through the Codec. (James F. Gould)
* Added the Change Poll Mapping (changepoll), that complies with draft-gould-change-poll-02, to the Verisign Bundle.  (James F. Gould)
* Added the Registry Fee Extension (fee), that complies with draft-brown-epp-fees-03 and draft-brown-epp-fees-04, to the Verisign Bundle.  (James F. Gould)
* Added the Allocation Token Extension (allocationtoken), that complies with draft-gould-allocation-token-02, to the Verisign Bundle.  (James F. Gould)
* Updated Launch Phase Extension (launch) to comply with draft-ietf-eppext-launchphase-03 and subsequently draft-ietf-eppext-launchphase-05, by adding support for the Trademark Check Form. (James F. Gould)
* Added the IDN Map Extension (idnmap), that complies with draft-ietf-eppext-idnmap-01, to the Verisign Bundle. (James F. Gould)
* Added the subID attribute in the info element of NameSuggestion. (Vincent Raemy)
* Added the IDN Table Mapping (idntable), that complies with draft-gould-idn-table-02, to the Verisign Bundle. (James F. Gould)

Changes in version 1.4.0.0 (05.01.2014)
-----------------------------------
* Switched to be dependent on Java 6 instead of Java 5.  The launch extension already was dependent on Java 6 and with the new dependency on the use of JAXB, the entire SDK is being moved to be dependent on Java 6. (James F. Gould)
* Fixed a bug with encoding the XSD dateTime type in EPPUtil by using 4 digit precision for the seconds.  The fix was to use a default of 3 digit precision (milliseconds) on the encode and to use JAXB DatatypeConverter.parseDateTime for parsing the dataTime value.  Access methods were added (getTimeInstantFormat(): String and setTimeInstantFormat(String)) to enable changing the encoding format if needed.  (James F. Gould)

Changes in version 1.3.0.0 (12.03.2013)
-----------------------------------
* Updated to the 25nov13 test SMD's (SMD's without whitespace) and test SMD Revocation List.  The SMD Revocation List was converted from UTF-8 to ASCII. (James F. Gould)
* Updated to support draft-tan-epp-launchphase-12 by updating the launch-1.0.xsd, updating the draft-tan-epp-launchphase.txt in the doc directory, and updating the code and tests to support the new validatorID optional attribute. (James F. Gould)

Changes in version 1.2.0.0 (09.16.2013)
-----------------------------------
* Fixed the XML namespace handling in the com.verisign.epp.codec.registry.EPPRegistryRegEx class and some of the client classes to com.verisign.epp.codec.registry.EPPRegistryRegEx. (James F. Gould)
* Changed com.verisign.epp.codec.signedMark.EPPSignedMark to handle XML parsing exception. This is specially required while parsing the XML obtained from the encoded SMD. (Vijay Garothaya)

Changes in version 1.1.0.4 (09.11.2013)
-----------------------------------
* Changed com.verisign.epp.namestore.interfaces.NSDomain to extend com.verisign.epp.namestore.interfaces.EPPRelatedDomain instead of com.verisign.epp.namestore.interfaces.EPPDomain, since EPPRelatedDomain extends EPPDomain and adds important additional methods needed in NSDomain. (James F. Gould)
* Broaden the tld type in NameSuggestion to support unicode values. (Vincent Raemy)
* Updated the related domain extension to use generics throughout and added some additional convenience methods to simplify the API. (James F. Gould)
* Added new "restricted" status for NameSuggestion. (Vincent Raemy)
* Added a new "uTld" attribute in grid for NameSuggestion. (Vincent Raemy)

Changes in version 1.1.0.3 (09.04.2013)
-----------------------------------
* Added Domain Info Form and the Related Info Form to the info command of the Related Domain Extension, version 1.2.   Added support for the two forms to com.verisign.epp.codec.relateddomainext.EPPRelatedDomainExtInfo as well as com.verisign.epp.interfaces.EPPRelatedDomain. (James F. Gould)
* Added the EPPSignedMark(EPPEncodedSignedMark) constructor to convert an encodedSignedMark to a signedMark. (James F. Gould)
* Addressed issue with using the sample SMD's with the signedMark and the default XML parser setting of normalizing the XML.  In the event of using a signedMark, the XML is parsed a second time with the parser normalization disabled for the signedMark to pass validation.  This included setting a "PACKET" SessionData attribute in the EPPXMLAssembler for use in the LaunchDomainHandler.doDomainCreate method to re-parse the packet. (James F. Gould).



Changes in version 1.1.0.2 (08.16.2013)
-----------------------------------
* Added a call to parser.setFeature(EPPSchemaCachingParser.NORMALIZE_DATA, false) in EPPSignedMark.parseAndGetDocElement(byte[]) and changed the default for the NORMALIZE_DATA feature to true in EPPSchemaCachingParser, since changing it to false does not trim the "token" type XML elements.  (James F. Gould).


Changes in version 1.1.0.1 (08.15.2013)
-----------------------------------
* Changed the EPPUtil TIME_INSTANT_FORMAT constant back to use four digit time precision to be consistent with the format used previously.  (James F. Gould).

Changes in version 1.1.0.0 (08.14.2013)
-----------------------------------
* Created constructor to directly decode the SMD InputStream in com.verisign.epp.codec.signedMark.EPPEncodedSignedMark. (James F. Gould)
* Split com.verisign.epp.codec.signedMark.EPPSignedMark into com.verisign.epp.codec.signedMark.EPPSignedMark and com.verisign.epp.codec.signedMark.EPPEncodedSignedMark to isolate the base64 encoding and to address issues with retaining any extra whitespace contained in the signed mark to address the validation issue with the ICANN sample SMD's. (Vijay Garothaya)
* Updated the com.verisign.epp.codec.launch.EPPLaunchTst tests to include validation of all of the ICANN sample Signed Mark Data (SMD) files.  Added the ICANN sample SMD files to the distribution to support the tests. (James F. Gould)
* The certs.crl file was split into the eppsdk.crl and the tmch-pilot.crl.  The eppsdk.crl includes the CRL for the signed marks signed by the EPP SDK and the tmch-pilot.crl includes the CRL provided by ICANN for testing. (James F. Gould)
* Added the test ICANN CA certificate to signedMarkTrust.jks to support validating the ICANN sample Signed Mark Data (SMD). (James F. Gould)
* Added SMD revocation list validation to the LaunchDomainHandler class. (James F. Gould)
* Added the ICANN test SMD revocation list (smd-test-revocation.csv) to the distribution to support the testing of the ICANN sample Signed Mark Data (SMD). (James F. Gould)
* Created the com.verisign.epp.codec.signedMark.SMDRevocationList and com.verisign.epp.codec.signedMark.RevokedSMD classes to decode the SMD revocation list and to include the SMDRevocationList.isRevoked(EPPSignedMark) : boolean method to determine if a signed mark is revoked. (James F. Gould)


Changes in version 1.0.0.5 (07.14.2013)
-----------------------------------
* Added multiple domain command (create, update, delete, renew, transfer) support to Related Domain Extension. (James F. Gould)


Changes in version 1.0.0.4 (07.08.2013)
-----------------------------------
* Updated the EPP Registry Mapping to version 1.5 and updated the code to match. (James F. Gould)


Changes in version 1.0.0.3 (06.03.2013)
-----------------------------------
* Integrated the related domain extension into the bundle. (James F. Gould)

Changes in version 1.0.0.2 (05.17.2013)
-----------------------------------
* Updated to include draft-tan-epp-launchphase-11 that moved the <launch:chkData> under the <extension> element, which resulted in removing the EPPLaunchCheckResp.java, removing the EPPLaunchMapFactory, and adding EPPLaunchChkData.java. (James F. Gould)
* Updated the registry mapping to include additional attributes. (James F. Gould)


Changes in version 1.0.0.1 (05.07.2013)
-----------------------------------
* Updated to include draft-tan-epp-launchphase-10 and draft-lozano-tmch-smd-02, called 10/02.  (James F. Gould)
* Updated the dependent jar files. (James F. Gould)
* Added support for a Transformer pool based on the Parser pool properties based on the expense of instantiating a Transformer instance. (James F. Gould)

Changes in version 1.0.0.0 (04.16.2013)
-----------------------------------
* Updated Registry mapping to replace the claims1 and claims2 phases with the claims phase. (James F. Gould)
* Updated Registry mapping to support sharePolicy for internal hosts and contacts. (James F. Gould)
* Upgraded Launch extension to match draft-tan-epp-launchphase-09. (James F. Gould)
* Integrated the Name Store/SRS Bundle 3.15.0.5 EPP SDK, the NAME Bundle 1.5.0.1 EPP SDK, and the Launch 2.0.1.0 EPP SDK into a single EPP SDK distribution.  (James F. Gould)
