############################################################################# # # The information in this document is proprietary # to VeriSign and the VeriSign Registry Business. # It may not be used, reproduced or disclosed without # the written approval of the General Manager of # VeriSign Global Registry Services. # # PRIVILEDGED AND CONFIDENTIAL # VERISIGN PROPRIETARY INFORMATION # REGISTRY SENSITIVE INFORMATION # # Copyright (c) 2005 VeriSign, Inc. All rights reserved. # ############################################################################## Basic Installation ================== The EPP Contact SDK is provided in Java. The minimum requirement is JDK 1.4. See the sections below for specific configuration instructions. The EPP Contact SDK includes the EPP Gen SDK files along with the files associated with EPP Contact Mapping. The distribution is pre-built in the lib directory. The pre-built EPP Contact library is lib/epp/epp-contact.jar and the dependent EPP Gen library is lib/epp/epp-gen.jar. Test code files with a Tst.java postfix are used to test the SDK and used as sample code. Ant 1.6.0 is included in the SDK under the lib/ant directory and is used to build the SDK, running the Server Stub, and running the client tests. Running either a build.sh for UNIX or build.bat for Windows will launch the included Ant 1.6.0. The version of Ant can be overridden by defining the ANT_HOME environment variable. The JAVA_HOME environment variable must be set. The Ant targets included with each build.xml include the following: clean Clean compiled files compile Compile source files dist Creates the distributions (-Dbuild.version required) dist-bin Creates the binary distribution (-Dbuild.version required) dist-src Creates the source distribution (-Dbuild.version required) doc Creates the HTML API documentation jar Generates JAR file start-server Starts the TCP server stub test Runs all tests (CODEC and TCP) test-client Runs tests over TCP against TCP server stub test-client-server Runs full client server test over TCP test-codec Runs CODEC unit tests Each directory contains the following files: build.xml - Ant 1.6.0 build description file. common-targets.xml - Common targets for the source and binary distributions build.sh - UNIX build script using Ant 1.6.0 and build.xml. The same tasks defined in build.xml can be used as arguments to build.sh build.bat - Windows build script using Ant 1.6.0 and build.xml. The same tasks defined in build.xml can be used as arguments to build.bat build.properties - Ant properties that include directory path properties epp.config - Configuration file used by the EPP Server Stub and the test programs. See the comments for each configuration parameter in epp.config for more detail. logconfig.xml - Log4J configuration file Adding Contact to SDK Bundle (NameStore) ========================================= Each EPP SDK mapping or extension can be packaged seperately or as part of an SDK bundle like NameStore/SRS or DotName. The Contact SDK can be integrated into a bundle by doing the followin: 1. Extract the source distribution into the same directory as the bundle source distribution. For example, the following will add the Contact SDK to the Namestore SDK bundle: % tar xvfz epp-namestore-3.2.0.2-src.tar.gz % tar xvfz epp-contact-1.0.0.0-src.tar.gz Both the bundle SDK and the Contact SDK will extract files under the eppsdk directory. To note, common components like the gen directory will be overwritten by the last extract, so ensure that the common components are compatible. 2.If the source distribution, build both the Contact SDK and the bundle SDK, which will create the SDK .jar files under eppsdk/lib/epp. For example, the following will build the Contact SDK and the NameStore SDK bundle: % cd eppsdk/bundles/namestore % build.sh jar % cd ../../contact % build.sh jar 3. Add com.verisign.epp.codec.contact.EPPContactMapFactory to the EPP.MapFactories of the SDK bundle. For example, the NameStore 3.2.0.2 SDK bundle eppsdk/bundles/namestore/epp.config file should have the EPP.MapFactories setting as: EPP.MapFactories = \ com.verisign.epp.codec.rccdomain.EPPDomainMapFactory \ com.verisign.epp.codec.rcccontact.EPPContactMapFactory \ com.verisign.epp.codec.rcchost.EPPHostMapFactory \ com.verisign.epp.codec.rccjob.EPPJobMapFactory \ com.verisign.epp.codec.domain.EPPDomainMapFactory \ com.verisign.epp.codec.host.EPPHostMapFactory \ com.verisign.epp.codec.lowbalancepoll.EPPLowBalancePollMapFactory \ com.verisign.epp.codec.rgppoll.EPPRgpPollMapFactory \ com.verisign.epp.codec.cls.bid.EPPClsBidMapFactory \ com.verisign.epp.codec.cls.item.EPPClsItemMapFactory \ com.verisign.epp.codec.contact.EPPContactMapFactory 4. Add com.verisign.epp.serverstub.ContactHandler to the EPP.ServerEventHandlers of the SDK bundle. For example, the NameStore 3.2.0.2 SDK bundle eppsdk/bundles/namestore/epp.config file should have the EPP.ServerEventHandlers setting as: EPP.ServerEventHandlers = \ com.verisign.epp.serverstub.GenHandler \ com.verisign.epp.serverstub.RccDomainHandler \ com.verisign.epp.serverstub.RccContactHandler \ com.verisign.epp.serverstub.RccHostHandler \ com.verisign.epp.serverstub.RccJobHandler \ com.verisign.epp.serverstub.NSDomainHandler \ com.verisign.epp.serverstub.NamestoreExtHostHandler \ com.verisign.epp.serverstub.GenHandler \ com.verisign.epp.serverstub.BidStubHandler \ com.verisign.epp.serverstub.ItemStubHandler \ com.verisign.epp.serverstub.ContactHandler 4. Add com.verisign.epp.serverstub.ContactPollHandler to the EPP.PollHandlers of the SDK bundle. For example, the NameStore 3.2.0.2 SDK bundle eppsdk/bundles/namestore/epp.config file should have the EPP.PollHandlers setting as: EPP.PollHandlers= \ com.verisign.epp.serverstub.NSPollHandler \ com.verisign.epp.serverstub.DomainPollHandler \ com.verisign.epp.serverstub.RccDomainPollHandler \ com.verisign.epp.serverstub.RgpDomainPollHandler \ com.verisign.epp.serverstub.LowBalancePollHandler \ com.verisign.epp.serverstub.ClsPollHandler \ com.verisign.epp.serverstub.ContactPollHandler 5. Update the SDK bundle test.classpath to include the Contact SDK .jar file. For example, to add a reference to epp-contact.jar in the NameStore SDK bundle, add to the namestore.test.classpath path defined in eppsdk/bundle/namestore/build.xml. The full NameStore SDK bundle namestore.test.classpath setting would look like: 6. Add com.verisign.epp.codec.contact.EPPContactTst to the test-codec target of the SDK bundle. For example, to include the contact Codec test to the NameStore SDK bundle, add the following to the junit task of the test-codec target in eppsdk/bundles/namestore/common-targets.xml: 6. Add com.verisign.epp.interfaces.EPPContactTst to the test-client-server and test-client targets of the SDK bundle. For example, to include the contact Codec test to the NameStore SDK bundle, add the following to the junit task of the test-client-server and test-client targets in eppsdk/bundles/namestore/common-targets.xml: 7. Optionally add an ant task to the compile target of SDK bundle to ensure that the bundle build also includes a build of the Contact SDK. For example, to add executing the jar target of the Contact build to the NameStore source distribution build.xml, add the following to the compile target of the eppsdk/bundles/namestore/build.xml file: 8. Run the tests to test that the contact changes were correctly made. For example, do the following to run all of the NameStore SDK bundle tests: % cd eppsdk/bundles/namestore % build.[sh|bat] test Running non-SSL Mode ============================== To build and run the EPP SDK sample programs (default configuration), do the following: cd contact build.sh test-client-server non-SSL is the default configuration for the SDK. The start-server target can be used to start the Stub Server for running an independent client test. Running SSL Mode ============================== contact/epp.config must be changed to run in SSL mode. Comment out the following lines in contact/epp.config: EPP.ClientSocketName = com.verisign.epp.transport.client.EPPPlainClientSocket EPP.ServerSocketName = com.verisign.epp.transport.server.EPPPlainServer Un-comment the following lines in sample/epp.config: EPP.ClientSocketName = com.verisign.epp.transport.client.EPPSSLClientSocket EPP.ServerSocketName = com.verisign.epp.transport.server.EPPSSLServer Follow the same instructions as "Running non-SSL Mode" after making the above configuration changes. SSL Certificate Configuration ============================== The EPP SDK includes a self-signed certificate in the eppsdk/lib/keystore/testkeys file which is referenced for both the client code and the Server Stub. For interfacing with a OT&E or Production Server, an official keystore needs to be referenced. The following epp.config properties should be modified: EPP.SSLKeyFileName - Path to the keystore file EPP.SSLPassPhrase - Keystore passphrase EPP.SSLKeyPassPhrase - Optional private key passphrase. If undefined, it defaults to the EPP.SSLPassPhrase value EPP.SSLTrustStoreFileName - Optional path to trust keystore. If undefined the JDK trust keystore will be used EPP.SSLTrustStorePassPhrase- Optional trust keystore passphrase