AU7490500A - Methods and apparatus for establishing and maintaining inernet domain name registrations - Google Patents

Methods and apparatus for establishing and maintaining inernet domain name registrations Download PDF

Info

Publication number
AU7490500A
AU7490500A AU74905/00A AU7490500A AU7490500A AU 7490500 A AU7490500 A AU 7490500A AU 74905/00 A AU74905/00 A AU 74905/00A AU 7490500 A AU7490500 A AU 7490500A AU 7490500 A AU7490500 A AU 7490500A
Authority
AU
Australia
Prior art keywords
string
see
nsiwholesaleapi
wspresponse
attr
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
AU74905/00A
Inventor
Larry Brem
Sanjeev Chauhan
Greg Korzeniewski
David Moston
Sujata Nakhre
Brian Taylor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Verisign Inc
Original Assignee
Network Solutions LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Network Solutions LLC filed Critical Network Solutions LLC
Publication of AU7490500A publication Critical patent/AU7490500A/en
Assigned to VERISIGN, INC. reassignment VERISIGN, INC. Amend patent request/document other than specification (104) Assignors: NETWORK SOLUTIONS, INC.
Abandoned legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computing Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Primary Health Care (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

WO 01/20484 PCT/USOO/25305 METHODS AND APPARATUS FOR ESTABLISHING AND MAINTAINING INTERNET DOMAIN NAME
REGISTRATIONS
WO 01/20484 PCT/USOO/25305 RELATED APPLICATION This application claims the benefit of U.S. Provisional Application No. 60/153,960, filed September 15, 1999, the disclosure of which is expressly incorporated herein by reference. Copending U.S. Patent Application Serial No. 09/544,305, filed April 6, 2000, is also expressly 5 incorporated herein by reference. FIELD OF THE INVENTION The present invention relates to the field of domain name registration. More particularly, the invention relates to methods and apparatus, which provides an application program interface to 0 enable the registration and maintenance of Internet domain names. BACKGROUND OF THE INVENTION The explosive growth of the Internet has created the need for orderly management of the process for creating domain name registrations (also known as Web addresses) and subsequent 5 administrative activities such as changes in ownership, renewals, and so forth. Until recently, Network Solutions, Inc. of Herndon, Virginia was the exclusive entity through which domain name registrations ("DNRs") were acquired and registered, at least for domain names ending in .com, .net, .org and .edu. In such role, Network Solutions, Inc. is known as a Registrar. Approximately five million Web addresses have been registered by Network Solutions, Inc. so far. 0 Presently-implemented systems for registration of Web Addresses rely almost exclusively on the use of e-mails between users and the Registrar for each step of the process. For example, - 2- WO 01/20484 PCT/USOO/25305 FIG. 4 shows the sequence of steps for registration, a customer (Registrant) prepares to register new Web Address 100; The Registrant fills out a Service Agreement (102). The Service Agreement is submitted by e-mail to the Registrant, for example, to hostmaster@intemic.net (step 104). The Request is 5 automatically assigned a tracking number 106. The Service Agreement is automatically checked for errors 108. The Service Agreement is processed if there are no errors and the registrant is notified via e-mail when completed 112. Web Address registration is complete with a message. For example, the message may read: "Your Web Address registration is complete" (step 114). The customer is invoiced for the Web Address registration, step 116, and pays for the registration (step 0 118). Finally, the Registrar sends a re-registration notice to registrant 60 days before the two year anniversary of the initial registration (step 120). Should there be an error in the Service Agreement, the registration process is not completed and an e-mail is sent to the customer informing it of the problem (step 110). 5 While this process works effectively, it is not without certain shortcomings. Most notably, the use of the Internet for e-mailing notices is not generally on a "real-time" basis. It may sometimes take several days for an e-mail to be delivered, particularly to parts of the world where the Internet support structure is not fully established. In addition, e-mails may become corrupted which creates further delays since the recipient must ask for the messages to be resent. 0 Further, recent events have resulted in the development of a concept termed "Wholesaling" by which other organizations, such as Internet Services Providers ("ISP"), Internet hosting providers, Internet portals and Electronic Commerce Providers are allowed to secure such DNRs on behalf of their own customers. In effect, such organizations act as their own Registrars by - 3- WO 01/20484 PCT/USOO/25305 offering their customers an interface which permits unsophisticated and sophisticated users to interface with the registration process and subsequent management thereof Ultimately, however, DNRs are still issued by the Registrar, Network Solutions, Inc. This expansion in the number of outlets for securing DNRs has led to the development of 5 systems and methods to facilitate wholesaling. Network Solutions, Inc. provides the NSI Wholesale Service Protocol ("WSP"), which establishes support of a real-time programmable interface for the purchase and management of Network Solutions, Inc. ("NSI") products and services a system. This system would permit users seeking registrations to complete the process, regardless of their level of expertise in computer 0 technology in general, and the Internet in particular. The WSP uses a simple, connection-based, synchronized, ASCII text-based protocol to communicate with an NSI Wholesale System over the Internet, thereby allowing Wholesalers to securely and reliably create, modify, and delete customer accounts and various products including the registration and management of Internet domain names. 5 The WSP consists of a set of commands that a Wholesaler may issue to create customers or domain-name-related products. Each command returns a set of 'properties' and major and minor error codes. In many cases, the result of one command is used as input to the next command. Wholesale commands are either synchronous or asynchronous. Generally, customer creation and management commands are synchronous, while domain creation and management 0 commands are asynchronous. An "as-fast-as-possible" fulfillment system for asynchronous commands maintains queues in order to guarantee that the order is not lost in the case of external system problems. Typical synchronous response times are several seconds or less, while asynchronous times, for example, to complete a registration, are typically less than a few minutes. -4- WO 01/20484 PCT/USOO/25305 There are two primary security mechanisms in the NSI Wholesale System. All Wholesalers must supply the IP addresses from which they will connect and establish Secure Socket Layer ("SSL") connections to the NSI Wholesale System. They also must use an account number and password when issuing session commands. NSI provides these ahead of time to Wholesalers. While this system provides numerous advantages over the prior art, there is a need to make the system universally available. Accordingly, there is presently a need for methods and apparatus which provides an application program interface to allow computer application programs of other users, to access the Wholesale system and to conduct transactions associated with the registration and management of Internet domain names in the same manner as the WSP. SUMMARY OF THE INVENTION To achieve these objects and other advantages and in accordance with the purposes of the invention, as embodied and broadly described herein. The present invention is directed to methods and apparatus for interfacing a user application program to a system for conducting transactions associated with managing Internet domain names by establishing over the Internet a connection between the user and the system; authenticating the right of the user to conduct a transaction associated with managing Internet domain names; establishing a secure socket layer within the application program interface and the system; receiving a request in the application program interface from the applications program to initiate a transaction following such authentication; and transmitting commands by the application program interface to the system effectuating the transaction. - 5- WO 01/20484 PCT/USOO/25305 BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an embodiment of the invention and together with the description, serve to explain the principles of the invention. In the drawings, FIG. 1 is a diagram of a preferred embodiment of the invention, wherein an application program interface, WSP Java API, implements the functionality of a WSP in a series of Java object classes; FIG. 2 shows an exemplary flowchart of the method for interfacing a user application program to a system for conducting transactions associated with managing Internet domain names; FIG. 3 shows an exemplary diagram of the apparatus for interfacing a user application program to a system for conducting transactions associated with managing Internet domain names. DETAILED DESCRIPTION Reference will now be made in detail to the present preferred embodiment of the invention, an example of which is illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like elements. The methods and apparatus provides an application program interface that is accessed by user application programs to establish a connection to a system for conducting transactions associated with managing Internet domain names. Referring to FIG. 1, a computer application program 12 typically provides an interface to the user to collect customer data. The computer application program 12 typically issues a session request to the application program interface, WSP Java API 14, in order to establish a session over the Internet 10 with the Wholesale System 16 and to issue various commands. - 6- WO 01/20484 PCT/USOO/25305 The WSP Java API 14 is essentially a Java 'wrapper' of the WSP. It consists of two main classes: NSIWholesaleAPI and WSPResponse. The NSIWholesaleAPI contains all of the methods for creating customers, products, and services. WSPResponse is a single class returned from most methods and contains the result of the issued command request and will optionally include any additional data that was generated by the request. One advantage of using WSP Java API 14 is that when the NSIWholesaleAPI object is created, the object creates a 'pool' of SSL connections to the Wholesale system 16. This class removes the need to issue a'session' command, and removes the burden from a Wholesaler of making and managing SSL connections. Multi-threaded applications may also use this connection pool. FIG. 2, shows an exemplary flowchart of the invention. A user 20, sends a request to the application program 12 to conduct a transaction associated with managing Internet domain names. The application program 12 typically provides an interface to a user to collect customer data. The application program 12 typically issues a session request to the application program interface 14 to establish a session over the Internet 10 with the Wholesale System 16. The application program interface 14 will authenticate a user's right to conduct a transaction by attempting to connect to the Wholesale System 16 using user account information received from the application program 12. If the authentication fails, the application program interface 14 will attempt two additional authentications. The application program interface 14 will send the result of the authentication to the application program 12. If the authentication is successful, the application program interface 14 will establish a secure socket layer with the Wholesale System 16. The application program 12 will send a request to the application program interface 14 to make available the set of commands through the instantiation of an object of class NSIWholesaleAPI. The application program 12 - 7- WO 01/20484 PCT/USOO/25305 may now send a request to any of the object methods to request the processing of a command. The application program interface 14 will receive the command request along with any data. The application program interface 14 will format the data and the command into a string as described in detail in the aforementioned copending U.S. Patent Application Serial No. 09/544,305. The application program 14 will then transmit the request across the Internet 10 to the Wholesale System 16 to effectuate the transaction. The Wholesale System 16 will process the request and will return the result of the transaction across the Internet 10 to the application program interface 14. The application program interface 14 will send a response to the application program 12. FIG. 3, is a diagram of an exemplary computer environment in which methods consistent with the present invention may be implemented. A component is provided for a user 20, to send a request to the application program 12 to conduct a transaction associated with managing Internet domain names. The application program 12 typically provides an interface to user 20 to collect customer data. The application program 12 typically issues a session request to the application program interface 14 to establish a session over the Internet 10 with the Wholesale System 16. A component is also provided for authenticating the right of the user 20 to conduct a transaction. The application program interface 14 will authenticate a user's right to conduct a transaction by attempting to connect to the Wholesale System 16 using the user account information received from the application program 12. If the authentication fails, the application program interface 14 will attempt two additional authentications. The application program interface 14 will send the result of the authentication to the application program 12. A component is also provided for establishing a secure socket layer if the authentication is successful. The application program interface 14 will establish a secure socket layer with the Wholesale System 16. A component is also provided for initiating a transaction following a successful authentication. The application - 8- WO 01/20484 PCT/USOO/25305 program 12 will send a request to the application program interface 14 to make available the set of commands that are available in the Wholesale System 16 through the instantiation of an object of class NSIWholesaleAPI. The application program 12 may now send a request to any of the object methods to request the processing of a command. The application program interface 14 will receive the command request along with any data. A component is also provided for transmitting commands through the secure socket layer. The application program interface 14 will format the data and command into a string as described in detail in the aforementioned copending U.S. Patent Application Serial No. 09/544,305. The application program 14 will then transmit the request across the Internet 10 to the Wholesale System 16 to effectuate the transaction. The Wholesale System 16 will process the request and return the result of the transaction across the Internet 10 to the application program interface 14. The application program interface 14 will send a response to the application program 12. The name of the WSP Java API configuration file is typically WSPj avaAPI .conf. This file contains specific information about each Wholesale user. The values for the parameters in that file are provided when a Wholesale agreement is completed with a Registrar, such as NSI. The file includes the following parameters: WholesaleAPI.minConnections=2 WholesaleAPI.maxConnections=2 WholesaleAPI.connectionSoTimeout=120000 WholesaleAPI.connectionProtocol=WSP1.5 WholesaleAPI .server=XXX.netsol .com WholesaleAPI.port=XOOO WholesaleAPI.retry=1 WholesaleAPI.WholesalerAccountId=12345678 WholesaleAPI.WholesalerPassword=XXXXXXXX - 9- WO 01/20484 PCT/USOO/25305 The values indicated with an "X" will change from user to user. The definition of each of these parameters is as follows: Configuration File Parameters Name Type Typical Value Definition minConnections Positive 2 through 10 Connection Pooling Tuning Parameter Integer maxConnections Positive minConnections Connection Pooling Tuning Parameter Integer through 5 connectionSoTimeout Positive 120000 Number of milliseconds of non-use Integer before the API will time out a connection Server String X.netsol.com Server name for Wholesale protocol at Registrar. The exact name will be provided when the Wholesale agreement is established. Port Integer XXXX IP Port on the server for connection WholesalerAccountId String XXX Unique identifier of each Wholesale partner WholesalerPassword String XXXXXXX Unique code, necessary for connection to NSI, for Wholesale operations CLASS HIERARCHY - 10- WO 01/20484 PCT/USOO/25305 o class java.lang.Obiect o class nsi.wholesale.toolkit.javaapi.NSIWholesaleAPI o class java.lang.Throwable (implements java.io.Serializable) o class java.lang.Exception o class nsi.wholesale.toolkit.j avaapi.NSIWholesaleException o class nsi.wholesale.toolkit.javaapi.WSPException o class nsi.wholesale.toolkit.javaapi.InvalidArgumentException o class nsi.wholesale.toolkit.javaapi.InvalidResponseFormatException o class nsi.wholesale.toolkit.javaapi.WSPResponse The NSIWholesaleAPI class constructs an instance of a new NSIWholesaleAPI object whose methods can be called to perform Wholesale-related activities, such as connecting to the Wholesale System 16 over the Internet through a SSL, and it allows the computer application program 12 to create and manage Internet domain names. The class definition for NSIWholesaleAPI includes the following: Constructor Summary NSIWholesaleAPI () Method Summary WSPResponse createBusinessAccount(String aCompanyName, String aCompanyType, String aAddress1, String aCity, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName) This method creates a business customer account and returns an automatically generated customer account id. WSPResponse createBusinessAccount(String aCompanyName, String aCompanyType, String aAddress1, String aCity, String aCountryCode, String aPhone, String aCustomerPassword, -11- WO 01/20484 PCT/USOO/25305 String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName, Properties optionalAttributes) This method creates a business customer account and returns an automatically generated customer account id. WSPResponse createBusinessAccount(String aCompanyName, String aCompanyType, String aAddressl, String aCity, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName, String aState, String aPostalCode) This method creates a business customer account and returns an automatically generated customer account id. WSPResponse createBusinessAccount (String aCompanyName, String aCompanyType, String aAddressl, String aCity, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName, String aState, String aPostalCode, Properties optionalAttributes) This method creates a business customer account and returns an automatically generated customer account id. WSPResponse createDnsHosting(String pCustomerAccountId, String pCustomerPassword, String aDomainName) This method registers a DNS Hosting product for an existing customer account. WSPResponse createDnsHosting(String pCustomerAccountId, String pCustomerPassword, String aDomainName, Properties optionalAttributes) This method registers a DNS Hosting product for an existing customer account. WSPResponse createDomain(String pCustomerAccountId, String pCustomerPassword, String aDomainName, String aHostIdl, String aHostId2, String aTechContactId) This method registers a new domain product for an existing customer account. WSPResponse createDomain(String pCustomerAccountId, String pCustomerPassword, String aDomainName, String aHostIdl, String aHostId2, String aTechContactId, Properties optionalAttributes) This method registers a new domain product for an existing customer account. WSPResponse createDomain(String pCustomerAccountId, String pCustomerPassword, String aDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId) This method registers a new domain product for an existing customer account. - 12- WO 01/20484 PCT/USOO/25305 WSPResponse createDomain(String pCustomerAccountId, String pCustomerPassword, String aDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId, Properties optionalAttributes) This method registers a new domain product for an existing customer account. WSPResponse createIndividualAccount(String aFirstName, String aLastName, String aAddressl, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity) This method creates an individual customer account and returns an automatically generated customer account id. WSPResponse createIndividualAccount(String aFirstName, String aLastName, String aAddressl, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity, Properties optionalAttributes) This method creates an individual customer account and returns an automatically generated customer account id. WSPResponse createIndividualAccount(String aFirstName, String aLastName, String aAddressl, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity, String aState, String aPostalCode) This method creates an individual customer account and returns an automatically generated customer account id. WSPResponse createIndividualAccount(String aFirstName, String aLastName, String aAddressl, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity, String aState, String aPostalCode, Properties optionalAttributes) This method creates an individual customer account and returns an automatically generated customer account id. WSPResponse createTechnicalContact(String aFirstName, String aLastName, String aOrganization, String aAddressl, String aCountryCode, String aPhone, String aEmail, String aTechContactPassword, String aCity) This method creates a technical contact and returns an automatically generated technical contact id (NIC Handle). WSPResponse createTechnicalContact(String aFirstName, String aLastName, String aOrganization, String aAddressl, String aCountryCode, String aPhone, String aEmail, String aTechContactPassword, String aCity, Properties optionalAttributes) This method creates a technical contact and returns an automatically generated technical contact id (NIC Handle). WSPResponse createTechnicalContact(String aFirstName, String aLastName, String aOrganization, String aAddressl, String aCountryCode, String aPhone, String aEmail, String aTechContactPassword, -13- WO 01/20484 PCT/USOO/25305 String aCity, String aState, String aPostalCode) This method creates a technical contact and returns an automatically generated technical contact id (NIC Handle). WSPResponse createTechnicalContact(String aFirstName, String aLastName, String aOrganization, String aAddressl, String aCountryCode, String aPhone, String aEmail, String aTechContactPassword, String aCity, String aState, String aPostalCode, Properties optionalAttributes) This method creates a technical contact and returns an -_ _ automatically generated technical contact id (NIC Handle). WSPResponse describe(String pTarget) This method provides information about a specified target. WSPResponse describe(String pTarget, Properties optionalAttributes) This method provides information about a specified target. WSPResponse generateDomainName (String pKeyWords) This method is used to generate a list of available domain names based on a specified list of keywords. WSPResponse generateDomainName (String pKeyWords, Properties optionalAttributes) This method is used to generate a list of available domain names based on a specified list of keywords. static String getJdkVersion() Static accessor method to get JDK version static long getSerialVersion() Static accessor method to get serial version static double getVersion() Static accessor method to get release version WSPResponse help() This method returns basic information about the supported protocol commands and classes. WSPResponse help(Properties optionalAttributes) This method returns basic information about the supported protocol commands and classes. static void init(Properties properties) Initializes the Wholesale Services Protocol API. static void init(String configFileName) Initializes the Wholesale Services Protocol API. WSPResponse lookupBusinessAccount() Retrieves a list of all business customer accounts linked to wholesaler. WSPResponse lookupBusinessAccount(Properties optionalAttributes) Retrieves a list of all business customer accounts linked to wholesaler. - 14- WO 01/20484 PCT/USOO/25305 WSPResponse lookupBusinessAccount (String pCustomerAccountId, String pCustomerPassword) Retrieves details of a specific business customer account. WSPResponse lookupBusinessAccount(String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) Retrieves details of a specific business customer account. WSPResponse lookupDnsHosting(String pCustomerAccountId, String pCustomerPassword) Retrieves a list of all domain names associated with DNS Hosting products owned by customer. WSPResponse lookupDnsHosting(String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) Retrieves a list of all domain names associated with DNS Hosting products owned by customer. WSPResponse lookupDnsHosting(String pCustomerAccountId, String pCustomerPassword, String pDomainName) Retrieves details of a specific DNS Hosting product owned by customer. WSPResponse lookupDnsHosting(String pCustomerAccountId, String pCustomerPassword, String pDomainName, Properties optionalAttributes) Retrieves details of a specific DNS Hosting product owned by customer. WSPResponse lookupDomain(String pCustomerAccountId, String pCustomerPassword) Retrieves a list of all domain products owned by customer. WSPResponse lookupDomain(String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) Retrieves a list of all domain products owned by customer. WSPResponse lookupDomain(String pCustomerAccountId, String pCustomerPassword, String pDomainName) Retrieves detail information about a specific domain product registered to a customer. WSPResponse lookupDomain (String pCustomerAccountId, String pCustomerPassword, String pDomainName, Properties optionalAttributes) Retrieves detail information about a specific domain product registered to a customer. WSPResponse lookupDomainByTechContact(String pCustomerAccountId, String pTechContactId, String pTechContactPassword) Retrieves a list of the customer's domain products for which the technical contact id is the technical contact. WSPResponse lookupDomainByTechContact(String pCustomerAccountId, String pTechContactId, String pTechContactPassword, Properties optionalAttributes) Retrieves a list of the customer's domain products for which the - 15- WO 01/20484 PCT/USOO/25305 technical contact id is the technical contact. WSPResponse lookupDomainByTechContact(String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName) Retrieves details of a specific domain product owned by customer, for which the technical contact id is the technical contact for the specific product. WSPResponse lookupDomainByTechContact(String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, Properties optionalAttributes) Retrieves details of a specific domain product owned by customer, for which the technical contact id is the technical contact for the specific product. WSPResponse lookupIndividualAccount() Retrieves a list of all individual accounts linked to a wholesaler. WSPResponse lookupIndividualAccount(Properties optionalAttributes) Retrieves a list of all individual accounts linked to a wholesaler. WSPResponse lookupIndividualAccount(String pCustomerAccountId, String pCustomerPassword) Retrieves details of a specific individual customer account. WSPResponse lookupIndividualAccount(String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) Retrieves details of a specific individual customer account. WSPResponse lookupTechnicalContact(String pTechContactId) Retrieves details of a specific technical contact. WSPResponse lookupTechnicalContact (String pTechContactId, Properties optionalAttributes) Retrieves details of a specific technical contact. WSPResponse modifyBusinessAccount(String pCustomerAccountId, String pCustomerPassword) This method is used to modify one or more attributes of an existing business (organization) customer account. WSPResponse modifyBusinessAccount(String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) This method is used to modify one or more attributes of an existing business (organization) customer account. WSPResponse modifyDomain(String pCustomerAccountId, String pIspPassword, String pDomainName, String aTechContactId) This method allows an Internet Service Provider (ISP) to modify the Technical Contact Id of a specific domain product. WSPResponse modifyDomain(String pCustomerAccountId, String pIspPassword, String pDomainName, String aTechContactId, Properties optionalAttributes) This method allows an Internet Service Provider (ISP) to modify the Technical Contact Id of a specific domain product. - 16- WO 01/20484 PCT/USOO/25305 WSPResponse modifyDomain(String pCustomerAccountId, String pCustomerPassword, String pDomainName, String alostIdi, String aHostId2, String aTechContactId) This method allows a customer to modify one or more attributes associated with a specific instance of a Domain product registered to that customer. WSPResponse modifyDomain(String pCustomerAccountId, String pCustomerPassword, String pDomainName, String aHostIdl, String aHostId2, String aTechContactId, Properties optionalAttributes) This method allows a customer to modify one or more attributes associated with a specific instance of a Domain product registered to that customer. WSPResponse modifyDomain(String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostId1, String aHostId2, String aTechContactId) This method allows a technical contact of a customer's domain product to modify one or more attributes associated with that specific instance of the Domain product registered to that customer. WSPResponse modifyDomain(String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostId1, String aHostd2, String aTechContactId, Properties optionalAttributes) This method allows a technical contact of a customer's domain product to modify one or more attributes associated with that specific instance of the Domain product registered to that customer. WSPResponse modifyDomain(String pCustomerAccountId, String pCustomerPassword, String pDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId) This method allows a customer to modify one or more attributes associated with a specific instance of a Domain product registered to that customer. WSPResponse modifyDomain(String pCustomerAccountId, String pCustomerPassword, String pDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId, Properties optionalAttributes) This method allows a customer to modify one or more attributes associated with a specific instance of a Domain product registered to that customer. WSPResponse modifyDomain (String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId) This method allows a technical contact of a customer's domain product to modify one or more attributes associated with that specific instance of the Domain product registered to that customer. - 17- WO 01/20484 PCT/USOO/25305 WSPResponse modifyDomain(String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String alostAddr2, String aTechContactId, Properties optionalAttributes) This method allows a technical contact of a customer's domain product to modify one or more attributes associated with that specific instance of the Domain product registered to that customer. WSPResponse modifyIndividualAccount(String pCustomerAccountId, String pCustomerPassword) This method is used to modify one or more attributes of an existing individual customer account. WSPResponse modifyIndividualAccount(String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) This method is used to modify one or more attributes of an existing individual customer account. WSPResponse modifyPassword(String pCustomerAccountId, String aCustomerPassword) This method is used to modify/reset a customer's account password. WSPResponse modifyPassword(String pCustomerAccountId, String aCustomerPassword, Properties optionalAttributes) This method is used.to modify/reset a customer's account password. WSPResponse modifyTechnicalContact (String pTechContactId, String pTechContactPassword) This method is used to modify one or more attributes of an existing technical contact. WSPResponse modifyTechnicalContact (String pTechContactId, String pTechContactPassword, Properties optionalAttributes) This method is used to modify one or more attributes of an existing technical contact. WSPResponse quit () This method terminates the wholesaler's access to session commands. WSPResponse quit (Properties optionalAttributes) This method terminates the wholesaler's access to session commands. void shutdown() This method shutsdown the Wholesaler Services Protocol API. WSPResponse verifyDomainName (String pDomainName) This method verifies whether or not a specified domain name is available. WSPResponse verifyDomainName (String pDomainName, Properties optionalAttributes) - 18- WO 01/20484 PCT/USOO/25305 This method verifies whether or not a specified domain name is available. WSPResponse verifyDomains(String pDomainTarget) This method verifies if series of domains are available. WSPResponse verifyDomains(String pDomainTarget, Properties optionalAttributes) This method verifies if series of domains are available. WSPResponse verifyPassword(String pCustomerAccountId, String pCustomerPassword) This method verifies whether or not a specified customer account id and password are valid. WSPResponse verifyPassword(String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) This method verifies whether or not a specified customer account id and password are valid. Methods inherited from class java.lang.Objiec t equals, getClass, hashCode, notify, notifyAll , toString, wait, wait, wai 5 The WSPResponse class represents the various components of a WSP response. A WSPResponse will be returned for command request that are issued through the application program interface 14. The response will describe, in as much detail as possible, the result of the issued request, and will optionally include any additional information that was generated by the request. A result consists of a "result code" followed by a descriptive "result message." The result D code consists of a major result code followed by a period ('.'), followed by a minor result code. The three-digit major result code provides a general indication of the success or failure of an issued request. In most cases, one or more result properties are returned. The three-digit minor result code may provide additional information about the major result code. Each command request has its own set of minor result code values or may have the value (000). The 5 WSPResponse and the result code are described in more detail in the aforementioned copending U.S. Patent Application Serial No. 09/544,305. A result property consists of a property key - 19- WO 01/20484 PCT/USOO/25305 followed by a colon (':'), followed by a property value. In some results, plain text is returned (e.g. information returned from the Help command). The result property is described in more detail in the aforementioned copending U.S. Patent Application Serial No. 09/544,305. The class definition for WSPResponse includes the following: Constructor Summary WSPResponse(String data) Parses a WSP text response and extracts and stores the various components. Method Summary static void displayResponse(WSPResponse response) prints debug-type representation of the WSP Response to standard output static String getJdkVersion() Static accessor method to get JDK version int getbajorResultCode() returns the WSP response major result code int getMinorResultCode() returns the WSP response minor result code Properties getProperties() Returns a property list containing all result property specifications, if applicable, extracted from the original WSP text response. static Properties getProperties(WSPResponse wspResponse) Returns a property list containing all result property specifications, if applicable, extracted from the original WSP text response. String getProperty(String resultPropertyKey) returns the result property value corresponding to the specified result property key, if found, extracted from the original WSP text response. String getRawResponse() Returns the original WSP text response string used to instantiate object. String getResultCode() returns the WSP response result code String getResultCodeAndMessage C) - 20- WO 01/20484 PCT/USOO/25305 returns the WSP response result code and result message String getResultMessage() Returns the result message extracted from the original WSP text response. static long getSerialVersion() Static accessor method to get serial version Vector getText() returns a vector containing lines of text returned in the WSP response. static double getVersion() Static accessor method to get release version String toString() returns the raw WSP response Methods inherited from class java.lang.Object equals, getClass, hashCode, notify, notifyAll, wait, wait, wait The NSIWholesaleException class is a user-defined exception class denoting a special error thrown by the methods in the class NSIWholesaleAPI. In particular, exceptions of the class NSIWholesaleException are thrown (a) when class initialization fails; (b) when a method in NSIWholesaleAPI is called without successfully initializing the class; (c) when a command cannot be completed (for example due to communications problems); or (d) to reframe an NSIException thrown at a lower level to give additional context information. The class WSPExcept ion is the parent for wholesale protocol exception classes which processes responses sent by Wholesale Server 16 to computer application program 12. This is a service class, not used explicitly. It furnishes the base methods for storing error information common to all exception classes. The classes InvalidArgumentException and InvalidResponseFormatException are the detail class children of WSPException. Both methods have the same internal functionality as -21- WO 01/20484 PCT/USOO/25305 WSPExcepton. In addition, both classes are independent, so that methods receiving the thrown exceptions know the type of error detected, even if the error context information is identical. In particular, the WSPResponse class throws InvalidArgumentException if the data returned by Wholesale Server 16 as part of a command, is invalid. The WSPResponse class throws class 5 InvalidResponseFormatException if the data returned by the Wholesale Server 16 as part of a command, is not properly formatted. The class definition for NSIWholesaleException includes the following: Constructor Summary NSIWholesaleException() NSIWholesaleException(String message) NSIWholesaleException(String message, Throwable throwable) NSIWholesaleException(Throwable throwable) Method Summary static String getJdkVersion() Static accessor method to get JDK version static long getSerialVersiono) Static accessor method to get serial version static double getVersion() Static accessor method to get release version String toString() 0 Methods inherited from class java.lang.Throwable fillInStackTrace, getLocalizedMessage, getMessage, printStackTrace, printStackTrace, printStackTrace - 22- WO 01/20484 PCT/USOO/25305 Methods inherited from class java.lang.Object equals, getClass, hashCode, notify, notifyAll, wait, wait, wait The class definition for WSPException includes the following: Constructor Summary WSPException () WSPException(String message) WSPException(String message, Throwable x) Method Summary static String getJdkVersion() Static accessor method to get JDK version String getMessage() static long getSerialVersion() Static accessor method to get serial version static double getVersion() Static accessor method to get release version Methods inherited from class java.lang.Throwable fillInStackTrace, getLocalizedMessage, printStackTrace, printStackTrace, printStackTrace, toString Methods inherited from class java.lang.Object equals, getClass, hashCode, notify, notifyAll, wait, wait, wait The class definition for InvalidArgumentException is as follows: Constructor Summary InvalidArgumentException () - 23- WO 01/20484 PCT/USOO/25305 InvalidArgumentException (String message) InvalidArgumentException (String message, Throwable x) Method Summary static String getJdkVersion() Static accessor method to get JDK version String getMessage() static long getSerialVersiono) Static accessor method to get serial version static double getVersion() Static accessor method to get release version Methods inherited from class java.lang.Throwable fillInStackTrace, getLocalizedMessage, printStackTrace, printStackTrace, printStackTrace, toString Methods inherited from class java.lang.Object equals, getClass, hashCode, notify, notifyAll, wait, wait, wait The class definition for InvalidResponseFormatException includes the following: Constructor Summary InvalidResponseFormatException () InvalidResponseFormatException(String message) InvalidResponseFormatException(String message, Throwable x) Method Summary static String getJdkVersion() - 24- WO 01/20484 PCT/USOO/25305 Static accessor method to get JDK version String getMessage() static long getSerialVersion() Static accessor method to get serial version static double getVersion() Static accessor method to get release version Methods inherited from class java.lang.Throwable fillInStackTrace, getLocalizedMessage, printStackTrace, printStackTrace, printStackTrace, toString Methods inherited from class java.lang.Object equals, getClass, hashCode, notify, notifyAll, wait, wait, wait The invention will be further clarified by the following example showing a computer program file for creating a session with a Wholesale system to begin Wholesale operation, which is intended to be purely exemplary of the invention. *-- --- Copyright (c) 2000 Network Solutions, Inc ----------<BR> * * This class is a demonstration program for use case 1: Creating a session * with NSI to begin wholesale operations. * * This class assumes the existance of the file WSPjavaAPI.conf, which was set * up in running the installation test earlier. * *<BR>------------------------------------------------------------<BR> */ // Imports import java.util.*; import java.io.*; import nsi.wholesale.toolkit.javaapi.util.resourcepool.*; import nsi.wholesale.toolkit.javaapi.*; // class NSIUseCasel //---- public static void main(String args[l) NSIWholesaleAPI api = null; // Use the properties from the configuration file to establish a session -25- WO 01/20484 PCT/USOO/25305 try { NSIWholesaleAPI. init ("WSPjavaAPI.conf"); } catch (NSIWholesaleException e) { System.out.print("Unable to initialize NSI Wholesale API:" + e); System. exit (1); } //Having initialized the NSI Wholesale API, we now need to // create an instance of the API by calling constructor NSIWholesaleAPI() try { api = new NSIWholesaleAPI(; catch (NSIWholesaleException e) System.out.print("Unable to initialize NSI Wholesale API:" + e); System.exit (1); // At this point, if no error has been thrown, then the session // is established, and a number of connections have been opened // in the connection pool. // // // Here, the call to methods on "api" are used to perform // wholesale related activities. For this use case, // there are none. // // End the session. This is done by calling the shutdown method on the // instance of the wholesale API that was created earlier. api.shutdown(); } The WSP Java API 14 is an implementation of the WSP. In every case where the WSP Java API 14 is used, the first steps are to initialize a session and then create an instance of the class to reference the methods. Individual calls to methods are instances of a single protocol exchange. Each call contains all necessary information (e.g., customer identification, contact information). Except for session information, no information carries over from method to method. As the example shows, the first evocation of a routine in the WSP Java API 14 is to the class method NSIWholesaleAPI.init to initialize the interface to the Wholesale System 16. The second evocation, creates an instance of the class NSIWholesaleAPI, which makes available to the application program 12 the methods to send commands to the Wholesale System 16. The application program 12 can now send command requests to the application program interface 14. - 26- WO 01/20484 PCT/USOO/25305 The last evocation is to the shutdown method, which ends the session with the Wholesale System 16. It is to be noted that in the above description, references to Network Solutions, Inc. and NSI, including but not limited to references which are imbedded in the examples given of classes, methods, constructors, drawings, and the like, are intended to be exemplary only and not restricted to any particular implementation. While the foregoing description is based on a client-server architecture, those skilled in the art will recognize that other types of architecture may be used consistent with the invention. In addition, while the foregoing description is based on a software implementation, other implementations may be used consistent with the invention. Further, while the foregoing description is based on the Java language, those skilled in the art will recognize that other types of language may be used consistent with the invention. Therefore, it is intended that this invention not be limited to the particular implementation and method disclosed herein, but that the invention include all implementations falling within the scope of the appended claims. The foregoing description is presented for illustration and explanation. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications of variations are possible in light of the above teachings or may be acquired from practice of the invention. The principles of the invention and its practical application enable one skilled in the art to utilize the invention in various embodiments and with various modifications as are suited to the use contemplated. The class definition for NSIWholesaleAPI is as follows:
//-------------------------------------------------------------------
// Package
/----------------------------------------------------------
package nsi.wholesale.toolkit.javaapi; - 27- WO 01/20484 PCT/USOO/25305
//------------------------------------------------------------
// Imports ... //-- import java.io.LineNumberReader; import java.io.FileReader; import java. io. IOException; import java.io.FileNotFoundException; import java.util.StringTokenizer; import java.util.Properties; import java.util.Enumeration; import java.util.NoSuchElementException; import nsi.wholesale.toolkit.javaapi.util.resourcepool.Resource; import nsi.wholesale.toolkit.javaapi.util.resourcepool.ResourceException; *-------------------------- Copyright (c) 2000 Network Solutions, Inc ------ --------------- <BR> ) * * This Java-based Wholesale Services Protocol (WSP) API provides * programmer access to the Wholesale Services Protocol Server. * The Wholesale Services Protocol (WSP) is a simple, connection-based, * ASCII text-based protocol. It allows wholesalers to securely and * reliably create, modify, and lookup customer accounts and various * products via a single client/server interface. * * * < B R >- -------------------------------------------------------------------- <BR> * $Log$
*<BR>
<BR> public class NSIWholesaleAPI { //---- ------------------------------------------------------- // Beginning of Required/Standard Fields //----- ------------------------------------------------------ /** Serial Version */ static long serialVersion = 1L; /** Release Version */ static double version = 1.1D; /** SCCS control ID */ static final String sccsID = "@(#) wholesale-sdk dl.12.1.3 08/04/00 10:27:19 NSIWholesaleAPI.java NSI"; /** JDK Version */ static String jdkVersion = 11.1.711; // Static Accessor Method(s)... /** Static accessor method to get serial version */ static public long getSerialversion() { return serialVersion; } /** Static accessor method to get release version */ -28- WO 01/20484 PCT/USOO/25305 static public double getVersion() { return version; /** Static accessor method to get JDK version */ static public String getJdkVersion() { return jdkVersion;
//------------------------------------------------------------
// End of Required/Standard Fields
//------------------------------------------------------------
-------------------------------------------------------------------
) / class (static) variable(s) ...
-------------------------------------------------------------------
/** The name of this class */ private static final String className = "NSIWholesaleAPI"; /** Connection pool */ protected static NSIWholesalePool pool = null; /** Retry count */ protected static int retry = 1; // Supported Commands
---------------------------------------------------------------
/** Ease-of-use constant for Command: Session */ public static final String COMMANDSESSION = "Session"; /** Ease-of-use constant for Command: Describe */ public static final String COMMANDDESCRIBE = "Describe"; /** Ease-of-use constant for Command: Verify */ public static final String COMMANDVERIFY = "Verify"; /** Ease-of-use constant for Command: Create */ public static final String COMMANDCREATE = "Create"; /** Ease-of-use constant for Command: Delete */ public static final String COMMAND DELETE = "Delete"; /** Ease-of-use constant for Command: Modify */ public static final String COMMANDMODIFY = "Modify"; /** Ease-of-use constant for Command: Renew */ public static final String COMMANDRENEW = "Renew"; /** Ease-of-use constant for Command: Generate */ public static final String COMMANDGENERATE = "Generate"; /** Ease-of-use constant for Command: Lookup */ public static final String COMMANDLOOKUP = "Lookup"; /** Ease-of-use constant for Command: Help */ public static final String COMMANDHELP = "Help"; /** Ease-of-use constant for Command: Quit */ public static final String COMMANDQUIT = "Quit"; // Supported Classes //-- --------------------------------------------------------- /** Ease-of-use constant for Class: DomainName */ public static final String CLASSDOMAINNAME = "DomainName"; /** Ease-of-use constant for Class: Domains */ public static final String CLASSDOMAINS = "Domains"; /** Ease-of-use constant for Class: Password */ public static final String CLASS PASSWORD = "Password"; /** Ease-of-use constant for Class: IndividualAccount */ public static final String CLASSINDIVIDUALACCOUNT = "IndividualAccount"; /** Ease-of-use constant for Class: BusinessAccount */ -29- WO 01/20484 PCT/USOO/25305 public static final String CLASSBUSINESSACCOUNT = "BusinessAccount"; /** Ease-of-use constant for Class: TechnicalContact */ public static final String CLASSTECHNICALCONTACT = "TechnicalContact"; /** Ease-of-use constant for Class: Domain */ public static final String CLASSDOMAIN = "Domain"; /** Ease-of-use constant for Class: DnsHosting */ public static final String CLASSDNSHOSTING = "DnsHosting"; // Supported Command-Class Combinations
------------------------------------------------------------
/** Ease-of-use constant for Command-Class Combination: VerifyDomainName public static final String COMBOVERIFYDOMAINNAME = COMMANDVERIFY + + CLASS DOMAIN NAME; /** Ease-of-use constant for Command-Class Combination: Verify Domains public static final String COMBOVERIFYDOMAINS = COMMANDVERIFY + " " + CLASSDOMAINS; /** Ease-of-use constant for Command-Class Combination: Verify Password public static final String COMBOVERIFYPASSWORD = COMMANDVERIFY + " + CLASSPASSWORD; /** Ease-of-use constant for Command-Class Combination: Create IndividualAccount */ public static final String COMBOCREATEINDIVIDUALACCOUNT = COMMANDCREATE + " " + CLASSINDIVIDUALACCOUNT; /** Ease-of-use constant for Command-Class Combination: Create BusinessAccount */ public static final String COMBOCREATEBUSINESSACCOUNT = COMMAND CREATE + " " + CLASS BUSINESS ACCOUNT; /** Ease-of-use constant for Command-Class Combination: Create TechnicalContact */ public static final String COMBOCREATETECHNICALCONTACT = 5 COMMANDCREATE + " " + CLASSTECHNICALCONTACT; /** Ease-of-use constant for Command-Class Combination: Create Domain */ public static final String COMBOCREATEDOMAIN = COMMANDCREATE + " " + CLASS DOMAIN; /** Ease-of-use constant for Command-Class Combination: Create DnsHosting */ public static final String COMBOCREATEDNSHOSTING = COMMANDCREATE + + CLASSDNSHOSTING; /** Ease-of-use constant for Command-Class Combination: Delete Domain */ public static final String COMBODELETEDOMAIN = COMMANDDELETE + " " + CLASSDOMAIN; /** Ease-of-use constant for Command-Class Combination: Delete DnsHosting */ public static final String COMBODELETEDNSHOSTING = COMMANDDELETE + + CLASSDNSHOSTING; /** Ease-of-use constant for Command-Class Combination: Delete IndividualAccount */ public static final String COMBODELETEINDIVIDUALACCOUNT = COMMAND DELETE + " " + CLASSINDIVIDUALACCOUNT; /** Ease-of-use constant for Command-Class Combination: Delete BusinessAccount */ - 30- WO 01/20484 PCT/USOO/25305 public static final String COMBODELETEBUSINESSACCOUNT COMMANDDELETE + " " + CLASSBUSINESSACCOUNT; /** Ease-of-use constant for Command-Class Combination: Modify Domain */ public static final String COMBOMODIFYDOMAIN = COMMANDMODIFY + + CLASSDOMAIN; /** Ease-of-use constant for Command-Class Combination: Modify IndividualAccount */ public static final String COMBOMODIFYINDIVIDUALACCOUNT = COMMAND MODIFY + " " + CLASSINDIVIDUALACCOUNT; /** Ease-of-use constant for Command-Class Combination: Modify BusinessAccount */ public static final String COMBOMODIFYBUSINESSACCOUNT = COMMAND MODIFY + " " + CLASSBUSINESSACCOUNT; /** Ease-of-use constant for Command-Class Combination: Modify TechnicalContact */ public static final String COMBOMODIFYTECHNICALCONTACT = COMMAND MODIFY + " " + CLASS TECHNICAL CONTACT; /** Ease-of-use constant for Command-Class Combination: Modify Password public static final String COMBOMODIFYPASSWORD = COMMANDMODIFY + + CLASSPASSWORD; /** Ease-of-use constant for Command-Class Combination: Renew Domain */ public static final String COMBORENEWDOMAIN = COMMANDRENEW + + CLASSDOMAIN; /** Ease-of-use constant for Command-Class Combination: Renew DnsHosting public static final String COMBORENEWDNSHOSTING = COMMANDRENEW + + CLASSDNSHOSTING; /** Ease-of-use constant for Command-Class Combination: Generate DomainName */ public static final String COMBOGENERATEDOMAINNAME = COMMANDGENERATE + + CLASSDOMAINNAME; /** Ease-of-use constant for Command-Class Combination: Lookup Domain */ public static final String COMBOLOOKUPDOMAIN = COMMANDLOOKUP + + CLASS DOMAIN; /** Ease-of-use constant for Command-Class Combination: Lookup DnsHosting */ public static final String COMBOLOOKUPDNSHOSTING = COMMANDLOOKUP + + CLASSDNSHOSTING; /** Ease-of-use constant for Command-Class Combination: Lookup IndividualAccount */ public static final String COMBOLOOKUP INDIVIDUALACCOUNT = COMMANDLOOKUP + " " + CLASSINDIVIDUALACCOUNT; /** Ease-of-use constant for Command-Class Combination: Lookup BusinessAccount */ public static final String COMBOLOOKUPBUSINESSACCOUNT = COMMANDLOOKUP + " " + CLASSBUSINESSACCOUNT; /** Ease-of-use constant for Command-Class Combination: Lookup TechnicalContact */ public static final String COMBOLOOKUPTECHNICALCONTACT = COMMANDLOOKUP + + CLASSTECHNICALCONTACT; // Supported Attributes -31- WO 01/20484 PCT/USOO/25305 // ----------------------------------------------------------- /** Ease-of-use constant for Attribute Key: FirstName */ public static final String ATTRFIRST NAME = "FirstName"; /** Ease-of-use constant for Attribute Key: LastName */ public static final String ATTRLAST NAME = "LastName"; /** Ease-of-use constant for Attribute Key: Addressl */ public static final String ATTRADDRESS1 = "Addressl"; /** Ease-of-use constant for Attribute Key: Address2 */ public static final String ATTRADDRESS2 = "Address2"; /** Ease-of-use constant for Attribute Key: Address3 */ public static final String ATTRADDRESS3 = "Address3"; /** Ease-of-use ~constant for Attribute Key: Address4 */ public static final String ATTRADDRESS4 = "Address4"; /** Ease-of-use constant for Attribute Key: Address5 */ public static final String ATTRADDRESSS = "Address5"; /** Ease-of-use constant for Attribute Key: City */ public static final String ATTRCITY = "City"; /** Ease-of-use constant for Attribute Key: State */ public static final String ATTRSTATE = "State"; /** Ease-of-use-constant for Attribute Key: PostalCode */ public static final String ATTRPOSTALCODE = "PostalCode"; /** Ease-of-use constant for Attribute Key: CountryCode */ public static final String ATTRCOUNTRYCODE = "CountryCode"; /** Ease-of-use constant for Attribute Key: Phone */ public static final String ATTRPHONE = "Phone"; /** Ease-of-use constant for Attribute Key: Fax */ public static final String ATTRFAX = "Fax"; /** Ease-of-use constant for Attribute Key: Email */ public static final String ATTREMAIL = "Email"; /** Ease-of-use constant for Attribute Key: CustomerAccountId */ public. static final String ATTRCUSTOMERACCOUNTID = "CustomerAccountId"; /** Ease-of-use constant for Attribute Key: CustomerPassword */ public static final String ATTRCUSTOMERPASSWORD = "CustomerPassword"; /** Ease-of-use constant for Attribute Key: AuthQuestion */ public static final String ATTRAUTHQUESTION = "AuthQuestion"; /** Ease.-of-use constant for Attribute Key: AuthAnswer */ public static final String ATTRAUTHANSWER = "AuthAnswer"; /** Ease-of-use constant for Attribute Key: CompanyName */ public static final String ATTRCOMPANYNAME = "CompanyName"; /** Ease-of-use constant for Attribute Key: CompanyType */ public static final String ATTRCOMPANYTYPE = "CompanyType"; /** Ease-of-use constant for Attribute Key: LegalContactFirstName */ public static final String ATTRLEGALCONTACTFIRSTNAME = "LegalContactFirstName"; /** Ease-of-use constant for Attribute Key: LegalContactLastName */ public static final String ATTRLEGALCONTACTLASTNAME = "LegalContactLastName"; /** Ease-of-use constant for Attribute Key: LegalContactAddressl */ public static final String ATTRLEGALCONTACTADDRESS1 = "LegalContactAddressl"; /** Ease-of-use constant for Attribute Key: LegalContactAddress2 */ public static final String ATTRLEGALCONTACTADDRESS2 = "LegalContactAddress2"; /** Ease-of-use constant for Attribute Key: LegalContactAddress3 */ public static final String ATTRLEGALCONTACTADDRESS3 = "LegalContactAddress3"; -32- WO 01/20484 PCT/USOO/25305 /** Ease-of-use constant for Attribute Key: LegalContactAddress4 */ public static final String ATTRLEGALCONTACTADDRESS4 = "LegalContactAddress4"; /** Ease-of-use constant for Attribute Key: LegalContactAddressS */ public static final String ATTRLEGALCONTACTADDRESS5 = "LegalContactAddress5"; /** Ease-of-use constant for Attribute Key: LegalContactCity */ public static final String ATTRLEGALCONTACTCITY = "LegalContactCity"; /** Ease-of-use constant for Attribute Key: LegalContactState */ public static final String ATTRLEGALCONTACTSTATE = "LegalContactState"; /** Ease-of-use constant for Attribute Key: LegalContactPostalCode */ public static final String ATTRLEGALCONTACTPOSTALCODE = "LegalContactPostalCode"; /** Ease-of-use constant for Attribute Key: LegalContactCountryCode */ public static final String ATTRLEGALCONTACTCOUNTRYCODE = "LegalContactCountryCode"; /** Ease-of-use constant for Attribute Key: LegalContactPhone */ public static final String ATTRLEGALCONTACTPHONE = "LegalContactPhone"; /** Ease-of-use constant for Attribute Key: LegalContactFax */ public static final String ATTRLEGALCONTACTFAX = "LegalContactFax"; /** Ease-of-use constant for Attribute Key: LegalContactEmail */ public static final String ATTRLEGALCONTACTEMAIL = "LegalContactEmail"; /** Ease-of-use constant for Attribute Key: Organization */ public static final String ATTRORGANIZATION = "Organization"; /** Ease-of-use constant for Attribute Key: TechContactPassword */ public static final String ATTRTECHCONTACTPASSWORD = "TechContactPassword"; /** Ease-of-use constant for Attribute Key: DomainName */ public static final String ATTRDOMAINNAME = "DomainName"; /** Ease-of-use constant for Attribute Key: HostNamel */ public static final String ATTRHOSTNAME1 = "HostNamel"; /** Ease-of-use constant for Attribute Key: HostAddrl */ public static final String ATTRHOSTADDR1 = "HostAddrl"; /** Ease-of-use constant for Attribute Key: HostName2 */ public static final String ATTRHOST NAME2 = "HostName2"; /** Ease-of-use constant for'Attribute Key: HostAddr2 */ public static final String ATTRHOSTADDR2 = "HostAddr2"; /** Ease-of-use constant for Attribute Key: HostIdl */ public static final String ATTRHOST ID1 = "HostIdl"; /** Ease-of-use constant for Attribute Key: HostId2 */ public static final String ATTRHOST ID2 = "HostId2"; /** Ease-of-use constant for Attribute Key: TechContactId */ public static final String ATTRTECHCONTACT ID = "TechContactId"; /** Ease-of-use constant for Attribute Key: IspPassword */ public static final String ATTRISPPASSWORD = "IspPassword"; /** Ease-of-use constant for Attribute Key: Protocol (returned by Describe) */ public static final String ATTRPROTOCOL = "Protocol"; /** Ease-of-use constant for Attribute Key: Dns Hosting Created (returned by Create DnsHosting) */ public static final String ATTRDNSHOSTINGCREATED = "Dns Hosting Created"; // Supported Parameters -33- WO 01/20484 PCT/USOO/25305 //-- -------------------------------------------------------- /** Ease-of-use constant for Parameter Key: -WholesalerAccountId */ public static final String PARMWHOLESALERACCOUNTID = WholesalerAccountId"; /** Ease-of-use constant for Parameter Key: -WholesalerPassword */ public static final String PARMWHOLESALERPASSWORD WholesalerPassword"; /** Ease-of-use constant for Parameter Key: -Target */ public static final String PARMTARGET = "-Target"; /** Ease-of-use constant for Parameter Key: -DomainTarget */ public static final String PARMDOMAINTARGET = "-DomainTarget"; /** Ease-of-use constant for Parameter Key: -KeyWords */ public static final String PARMKEYWORDS = "-KeyWords"; /** Ease-of-use constant for Parameter Key: -CustomerAccountId */ public static final String PARMCUSTOMERACCOUNTID = "-" + ATTRCUSTOMERACCOUNTID; /** Ease-of-use constant for Parameter Key: -CustomerPassword */ public static final String PARMCUSTOMERPASSWORD = "-" + ATTRCUSTOMERPASSWORD; /** Ease-of-use constant for Parameter Key: -DomainName */ public static final String PARMDOMAINNAME = "-" + ATTRDOMAINNAME; /** Ease-of-use constant for Parameter Key: -TechContactId */ public static final String PARMTECHCONTACTID = "-" + ATTR TECH CONTACT ID; /** Ease-of-use constant for Parameter Key: -TechContactPassword */ public static final String PARMTECHCONTACTPASSWORD = "-" + ATTRTECHCONTACTPASSWORD; /** Ease-of-use constant for Parameter Key: -IspPassword */ public static final String PARMISPPASSWORD = "-" + ATTRISP_PASSWORD;
//-------------------------------------------------------------------
// class (static) method(s) ...
//-------------------------------------------------------------------
* Initializes the Wholesale Services Protocol API. * * @param String name of configuration files containing property list * @return void * @see NSIWholesaleAPI#init * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException if initialization fails public static void init(String configFileName) throws NSIWholesaleException { System.out.println("NSIWholesaleAPI.init(String) started"); Properties configProps = new Properties(; try { LineNumberReader in = new LineNumberReader(new FileReader(configFileName)); String line = in.readLine(; while (line null) { line = line.trim(); if ( (line.length() > 0) && (line.startsWith("#") == false) ) try { -34- WO 01/20484 PCT/USOO/25305 StringTokenizer st = new StringTokenizer(line, "="); String propertyKey = st.nextToken(; String propertyValue = st.nextToken(); 5 configProps.put(propertyKey, propertyValue); } catch (NoSuchElementException nsee) ) System.err.println("NSIWholesaleAPI.init(String): Error Reading Config File" + nsee); throw new NSIWholesaleException("Error reading Configuration File " + configFileName); 5 } line = in.readLine(; } } 0 catch (FileNotFoundException fnfe) System.err.println( "NSIWholesaleAPI.init (String): Configuration File Not Found " + fnfe); throw new NSIWholesaleException("Configuration File Not Found " + configFileName); 5 } catch (IOException ioe) { System.err.println( "NSIWholesaleAPI.init(String) : 10 Exception reading configuration file " + ioe); throw new NSIWholesaleException("IO Exception reading 0 configuration file " + configFileName); } catch (Exception e) System.err.println( "NSIWholesaleAPI.init (String): Exception reading configuration file " + e); 5 throw new NSIWholesaleException("Exception reading configuration file " + configFileName); } NSIWholesaleAPI.init(configProps); 0 System.out.println( "NSIWholesaleAPI.init (String) completed successfully"); } 5 * Initializes the Wholesale Services Protocol API. * <BR> * All of the following parameters should be * passed in through the properties file: 0 <PRE> WholesaleAPI.minConnections Connections to use on startup (1,2,5, 10) WholesaleAPI.maxConnections Maximum Connections (5,10,20) 5 WholesaleAPI.connectionSoTimeout - (Provided by NSI) Enable/disable Socket SOTIMEOUT with the specified timeout, in milliseconds -35- WO 01/20484 PCT/USOO/25305 WholesaleAPI.connectionP.rotocol - (Provided by NSI) Wholesale Services Protocol Version WholesaleAPI.server - (Provided by NSI) The secure wholesale server at NSI WholesaleAPI.port - (Provided by NSI) The port on that machine WholesaleAPI.retry The retry count, if a transient error occurs (2,3) WholesaleAPI.WholesalerAccountId - (Provided by NSI) The Wholesaler Account number WholesaleAPI.WholesalerPassword - (Provided by NSI) The Password for that account </PRE> > * * @param properties Properties. file containing configuration settings * @return void * @see NSIWholesaleAPI#NSIWholesaleAPI * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException if ) initialization fails public static void init(Properties properties) throws NSIWholesaleException { System.out.println("NSIWholesaleAPI.init(Properties) started"); int min = parseInt( properties.getProperty("WholesaleAPI.minConnections")); int max = parseInt( properties.getProperty("WholesaleAPI.maxConnections")); int connectionSoTimeout = parseInt( properties.getProperty("WholesaleAPI.connectionSoTimeout")); String connectionProtocol = properties.getProperty("WholesaleAPI.connectionProtocol"); String server = properties.getProperty("WholesaleAPI.server"); int port = parseInt(properties.getProperty("WholesaleAPI.port")); retry = parseInt(properties.getProperty("WholesaleAPI.retry")); String wholesalerAccountId = properties.getProperty("WholesaleAPI.WholesalerAccountId"); String wholesalerPassword = properties.getProperty("WholesaleAPI.WholesalerPassword"); System.out.println("connectionProtocol = " + connectionProtocol); System.out.println("server = " + server); System.out.println("port = " + port); System.out.println("wholesalerAccountId = " + wholesalerAccountId); System.out.println("wholesalerPassword = " + wholesalerPassword); System.out.println("NSIWholesaleAPI.init(Properties) constructing new NSIWholesalePool"); pool = new NSIWholesalePool(server, port, min, max, wholesalerAccountId, wholesalerPassword, retry, connectionSoTimeout); NSIWholesaleAPI api = new NSIWholesaleAPI(; if (api.verifyConnectionProtocol(connectionProtocol) != true) api = null; -36- WO 01/20484 PCT/USOO/25305 throw new NSIWholesaleException("Failed to verify connection protocol " + connectionProtocol); api = null; System.out.println("NSIWholesaleAPI.init(Properties) completed successfully");
//-------------------------------------------------------------------
// static initializer block ...
//-------------------------------------------------------------------
/ ------------------------------------------------------------------ // instance Variable(s) ...
-------------------------------------------------------------------
//--- ------------------------------------------------------- // Constructor(s)
---------------------------------------------------------------
* Constructs a new NSIWholesaleAPI object. NSIWholesaleAPI MUST have * been initialized BEFORE any NSIWholesaleAPI objects can be constructed. * @see NSIWholesaleAPI#init * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException if NSIWholesaleAPI has not yet * been initialized public NSIWholesaleAPI() throws NSIWholesaleException if (pool == null) throw new NSIWholesaleException("Must initialize API before use"); }
/-----------------------------------------------------------------
// Accessors and Mutators /----------------- - ----------------------------------------------
//-------------------------------------------------------------------
// General Methods
---------------------------------------------------------------
//#--BEGIN API--------------------------------------------------------------- * This method is used to authenticate a wholesaler and to provide * the wholesaler with access to Session commands. Once a session * has been established, the Session command may not be issued * again * <BR><PRE> Expected Major Result Code: SESSIONCREATED * </PRE><BR> * @param pWholesalerAccountId the parameter value * @param pWholesalerPassword the parameter value * @return the Wholesale Server Protocol Server response -37- WO 01/20484 PCT/USOO/25305 * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see COMMAND SESSION * @see PARM WHOLESALEACCOUNTID * @see PARM WHOLESALE PASSWORD * @see WSPResponse#SESSIONCREATED * @see WSPResponse#AUTHENTICATIONFAILED * WSPResponse session( String pWholesalerAccountId, String pWholesalerPassword) throws NSIWholesaleException { return session( pWholesalerAccountId, pWholesalerPassword, new Properties(, 0);
}
* This method is used to authenticate a wholesaler and to provide * the wholesaler with access to Session commands. Once a session * has been established, the Session command may not be issued * again * <BR><PRE> Expected Major Result Code: SESSIONCREATED * </PRE><BR> * @param pWholesalerAccountId the parameter value * @param pWholesalerPassword the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see COMMAND SESSION * @see PARM WHOLESALE ACCOUNT ID * @see PARM WHOLESALE PASSWORD * @see WSPResponse#SESSIONCREATED * @see WSPResponse#AUTHENTICATIONFAILED * WSPResponse session( String pWholesalerAccountId, String pWholesalerPassword, Properties optionalAttributes) throws NSIWholesaleException { return session( pWholesalerAccountId, pWholesalerPassword, optionalAttributes, 0); } protected WSPResponse session( String pWholesalerAccountId, String pWholesalerPassword, Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + ".session(String, String, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } - 38- WO 01/20484 PCT/USOO/25305 NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMWHOLESALERACCOUNTID, pWholesalerAccountId); allParmsAndAttrs.put(PARMWHOLESALERPASSWORD, pWholesalerPassword); returnCode = conn.makeRequest(COMMANDSESSION, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) try { pool.release(conn); } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); } finally return session( pWholesalerAccountId, pWholesalerPassword, optionalAttributes, count + 1); } * This method provides information about a specified target. * Currently, the only supported target is "Protocol". * This target tells Describe to return the current protocol version * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR PROTOCOL * </PRE><BR> * @param pTarget the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND DESCRIBE * @see NSIWholesaleAPI#PARM TARGET * @see NSIWholesaleAPI#ATTRPROTOCOL 5 * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * - 39- WO 01/20484 PCT/USOO/25305 public WSPResponse describe(String pTarget) throws NSIWholesaleException { return describe(pTarget, new Properties(), 0); * This method provides information about a specified target. * Currently, the only supported target is "Protocol". * This target tells Describe to return the current protocol version * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR PROTOCOL * </PRE><BR> * @param pTarget the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND DESCRIBE * @see NSIWholesaleAPI#PARM TARGET * @see NSIWholesaleAPI#ATTRPROTOCOL * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse describe(String pTarget, Properties optionalAttributes) throws NSIWholesaleException return describe(pTarget, optionalAttributes, 0); I protected WSPResponse describe( String pTarget, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".describe(String, Properties, int) "; if (count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Properties(; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARM_TARGET, pTarget); returnCode = conn.makeRequest(COMMAND DESCRIBE, allParmsAndAttrs); -40- WO 01/20484 PCT/USOO/25305 pool.checkIn(conn); return returnCode; catch (Exception e) { try { 5 pool.release(conn); catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); finally return describe( pTarget, optionalAttributes, 5 count + 1); * This method verifies whether or not a specified domain name is available. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pDomainName the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when D unable to complete command * @see NSIWholesaleAPI#COMMAND VERIFY * @see NSIWholesaleAPI#CLASS DOMAIN NAME * @see NSIWholesaleAPI#COMBO VERIFYDOMAINNAME * @see NSIWholesaleAPI#PARM DOMAIN-NAME * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse verifyDomainName( String pDomainName) ) throws NSIWholesaleException return verifyDomainName( pDomainName, new Properties(, 0); 5 } * This method verifies whether or not a specified domain name is available. * <BR><PRE> ) Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pDomainName the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command -41- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#COMMAND VERIFY * @see NSIWholesaleAPI#CLASS DOMAIN NAME * @see NSIWholesaleAPI#COMBO VERIFY DOMAIN NAME * @see NSIWholesaleAPI#PARM DOMAIN-NAME * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse verifyDomainName( String pDomainName, Properties optionalAttributes) throws NSIWholesaleException { return verifyDomainName( pDomainName, optionalAttributes, 0); } protected WSPResponse verifyDomainName( String pDomainName, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".verifyDomainName(String, Properties, int) "; if (count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs .put (PARMDOMAINNAME, pDomainName); returnCode = conn.makeRequest (COMBOVERIFYDOMAINNAME, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally return verifyDomainName( pDomainName, optionalAttributes, count + 1); } - 42- WO 01/20484 PCT/USOO/25305 ) * This method verifies if series of domains are available. The command * will take the domain target string and add the .com, .net, and .org * TLD suffix and verify the domain name availability. * <BR><PRE> Expected Major Result Code: COMMAND EXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: DomainNamel: DomainName2: DomainName3: ...etc... * </PRE><BR> * @param pDomainTarget the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND VERIFY * @see NSIWholesaleAPI#CLASS DOMAINS * @see NSIWholesaleAPI#COMBO VERIFY-DOMAINS * @see NSIWholesaleAPI#PARMDOMAINTARGET * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse verifyDomains( String pDomainTarget) throws NSIWholesaleException return verifyDomains( pDomainTarget, new Properties(, 0); * This method verifies if series of domains are available. The command * will take the domain target string and add the .com, .net, and .org * TLD suffix and verify the domain name availability. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDED PROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: DomainNamel: DomainName2: DomainName3: ... etc... * </PRE><BR> * @param pDomainTarget the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND VERIFY * @see NSIWholesaleAPI#CLASS DOMAINS -43- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#COMBO VERIFY DOMAINS * @see NSIWholesaleAPI#PARMDOMAINTARGET * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse verifyDomains( String pDomainTarget, Properties optionalAttributes) throws NSIWholesaleException return verifyDomains( pDomainTarget, optionalAttributes, 0); } protected WSPResponse verifyDomains( String pDomainTarget, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".verifyDomains(String, Properties, int) "; if (count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMDOMAINTARGET, pDomainTarget); returnCode = conn.makeRequest(COMBOVERIFYDOMAINS, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) try { pool.release(conn); } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); } finally { return verifyDomains( pDomainTarget, optionalAttributes, count + 1); } - 44- WO 01/20484 PCT/USOO/25305 ) * This method verifies whether or not a specified customer account id and * password are valid. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND VERIFY * @see NSIWholesaleAPI#CLASS PASSWORD * @see NSIWholesaleAPI#COMBO VERIFY-PASSWORD * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM CUSTOMER-PASSWORD * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse verifyPassword( String pCustomerAccountId, String pCustomerPassword) throws NSIWholesaleException return verifyPassword( pCustomerAccountId, pCustomerPassword, new Propertieso, 0); * This method verifies whether or not a specified customer account id and * password are valid. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND VERIFY * @see NSIWholesaleAPI#CLASS PASSWORD * @see NSIWholesaleAPI#COMBO VERIFY-PASSWORD * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM CUSTOMER-PASSWORD * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse verifyPassword( -45- WO 01/20484 PCT/USOO/25305 String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) throws NSIWholesaleException return verifyPassword( pCustomerAccountId, pCustomerPassword, optionalAttributes, 0); } protected WSPResponse verifyPassword( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".verifyPassword(String, String, Properties, int) "; - if -(count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); returnCode = conn.makeRequest(COMBOVERIFYPASSWORD, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) try { pool.release(conn); catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); I finally return verifyPassword( pCustomerAccountId, pCustomerPassword, optionalAttributes, count + 1); } - 46- WO 01/20484 PCT/USOO/25305 * This method creates an individual customer account and returns an * automatically generated customer account id. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDED PROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR CUSTOMERACCOUNTID * </PRE><BR> * @param aFirstName the attribute value * @param aLastName the attribute value * @param aAddressl the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aCustomerPassword the attribute value * @param aAuthQuestion the attribute value * @param aAuthAnswer the attribute value * @param aCity the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#COMBO CREATE INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST-NAME * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR CUSTOMER-PASSWORD * @see NSIWholesaleAPI#ATTR AUTH QUESTION * @see NSIWholesaleAPI#ATTR AUTH ANSWER * @see NSIWholesaleAPI#ATTRCITY * * @see NSIWholesaleAPI#ATTR -STATE * @see NSIWholesaleAPI#ATTRPOSTAL CODE * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTREMAIL * @see NSIWholesaleAPI#ATTR_FAX * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMAND EXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRCUSTOMERACCOUNT ID * public WSPResponse createIndividualAccount( String aFirstName, 5 String aLastName, String aAddress1, String aCountryCode, - 47- WO 01/20484 PCT/USOO/25305 String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity) throws NSIWholesaleException return createIndividualAccount( aFirstName, aLastName, aAddress1, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aCity, new Properties(, 0); * This method creates an individual customer account and returns an * automatically generated customer account id. * <BR><PRE> Optional Attribute Key(s): 5 ATTRADDRESS2 ATTRADDRESS3 ATTRADDRESS4 ATTRADDRESS5 ATTR EMAIL ) ATTRFAX Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: 5 ATTRCUSTOMERACCOUNTID * </PRE><BR> * @param aFirstName the attribute value * @param aLastName the attribute value * @param aAddressl the attribute value 0 * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aCustomerPassword the attribute value * @param aAuthQuestion the attribute value * @param aAuthAnswer the attribute value 5 * @param aCity the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command 0 * @see NSIWholesaleAPI#COMMANDCREATE * @see NSIWholesaleAPI#CLASSINDIVIDUALACCOUNT * @see NSIWholesaleAPI#COMBOCREATEINDIVIDUALACCOUNT * @see NSIWholesaleAPI#ATTR FIRSTNAME * @see NSIWholesaleAPI#ATTR LAST-NAME 5 * @see NSIWholesaleAPI#ATTRADDRESS1 * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTRPHONE -48- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#ATTRCUSTOMERPASSWORD * @see NSIWholesaleAPI#ATTR AUTH QUESTION * @see NSIWholesaleAPI#ATTR AUTH ANSWER * @see NSIWholesaleAPI#ATTRCITY * * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTRPOSTALCODE * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTRADDRESS3 * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTREMAIL * @see NSIWholesaleAPI#ATTRFAX * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRCUSTOMERACCOUNT ID * public WSPResponse createIndividualAccount( String aFirstName, String aLastName, String aAddressl, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity, Properties optionalAttributes) throws NSIWholesaleException { return createIndividualAccount( aFirstName, aLastName, aAddress1, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aCity, optionalAttributes, 0); protected WSPResponse createIndividualAccount( String aFirstName, String aLastName, String aAddressl, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity, Properties optionalAttributes, int count) -49- WO 01/20484 PCT/USOO/25305 throws NSIWholesaleException String methodName = className + ".createIndividualAccount(StringX9, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(ATTRFIRSTNAME, aFirstName); allParmsAndAttrs.put(ATTRLASTNAME, aLastName); allParmsAndAttrs.put(ATTRADDRESS1, aAddressl); allParmsAndAttrs.put(ATTRCOUNTRYCODE, aCountryCode); allParmsAndAttrs.put(ATTRPHONE, aPhone); allParmsAndAttrs.put(ATTRCUSTOMERPASSWORD, aCustomerPassword); allParmsAndAttrs.put(ATTRAUTHQUESTION, aAuthQuestion); allParmsAndAttrs.put(ATTRAUTHANSWER, aAuthAnswer); allParmsAndAttrs.put(ATTRCITY, aCity); returnCode = conn.makeRequest(COMBOCREATEINDIVIDUALACCOUNT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) { try pool.release(conn); } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); } finally return createIndividualAccount( aFirstName, aLastName, aAddress1, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aCity, optionalAttributes, count + 1); } - 50- WO 01/20484 PCT/USOO/25305 * This method creates an individual customer account and returns an * automatically generated customer account id. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR CUSTOMER ACCOUNT ID * </PRE><BR> * @param aFirstName the attribute value * @param aLastName the attribute value * @param aAddressl the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aCustomerPassword the attribute value * @param aAuthQuestion the attribute value * @param aAuthAnswer the attribute value * @param aCity the attribute value * @param aState the attribute value * @param aPostalCode the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#COMBO CREATE INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST NAME * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR CUSTOMER-PASSWORD * @see NSIWholesaleAPI#ATTR AUTH QUESTION * @see NSIWholesaleAPI#ATTR AUTH ANSWER * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTRPOSTAL CODE * * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTREMAIL * @see NSIWholesaleAPI#ATTRFAX * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRCUSTOMERACCOUNT ID * public WSPResponse createIndividualAccount( String aFirstName, String aLastName, String aAddressl, String aCountryCode, -51- WO 01/20484 PCT/USOO/25305 String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity, String aState, String aPostalCode) throws NSIWholesaleException return createIndividualAccount( aFirstName, aLastName, aAddress1, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aCity, aState, aPostalCode, new Properties(, 0); } * This method creates an individual customer account and returns an * automatically generated customer account id. * <BR><PRE> Optional Attribute Key(s): ATTRADDRESS2 ATTRADDRESS3 ATTRADDRESS4 ATTR ADDRESS5 ATTREMAIL ATTRFAX Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR CUSTOMERACCOUNTID * </PRE><BR> * @param aFirstName the attribute value * @param aLastName the attribute value * @param aAddressl the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aCustomerPassword the attribute value * @param aAuthQuestion the attribute value * @param aAuthAnswer the attribute value * @param aCity the attribute value * @param aState the attribute value * @param aPostalCode the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASSINDIVIDUAL ACCOUNT -52- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#COMBOCREATEINDIVIDUALACCOUNT * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST NAME * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR CUSTOMER PASSWORD * @see NSIWholesaleAPI#ATTR AUTHQUESTION * @see NSIWholesaleAPI#ATTRAUTHANSWER * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTRPOSTALCODE * * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTREMAIL * @see NSIWholesaleAPI#ATTRFAX * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRCUSTOMERACCOUNTID * public WSPResponse createIndividualAccount( String aFirstName, String aLastName, String aAddressl, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity, String aState, String aPostalCode, Properties optionalAttributes) throws NSIWholesaleException { return createIndividualAccount( aFirstName, aLastName, aAddressl, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aCity, aState, aPostalCode, optionalAttributes, 0); } protected WSPResponse createIndividualAccount( String aFirstName, -53- WO 01/20484 PCT/USOO/25305 String aLastName, String aAddressl, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aCity, String aState, String aPostalCode, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".createIndividualAccount(StringXll, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Properties(; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs .put (ATTRFIRSTNAME, aFirstName); allParmsAndAttrs .put (ATTRLASTNAME, aLastName); allParmsAndAttrs .put (ATTRADDRESS1, aAddressl); allParmsAndAttrs .put (ATTRCOUNTRYCODE, aCountryCode); allParmsAndAttrs.put(ATTRPHONE, aPhone); allParmsAndAttrs .put (ATTRCUSTOMERPASSWORD, aCustomerPassword); allParmsAndAttrs .put (ATTRAUTHQUESTION, aAuthQuestion); allParmsAndAttrs.put(ATTRAUTHANSWER, aAuthAnswer); allParmsAndAttrs.put(ATTRCITY, aCity); allParmsAndAttrs.put(ATTRSTATE, aState); allParmsAndAttrs.put(ATTRPOSTALCODE, aPostalCode); returnCode = conn.makeRequest(COMBOCREATEINDIVIDUALACCOUNT, allParmsAndAttrs); pool. checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); finally { return createIndividualAccount( - 54- WO 01/20484 PCT/USOO/25305 aFirstName, aLastName, aAddress1, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aCity, aState, aPostalCode, optionalAttributes, count + 1); }} * This method creates a business customer account and returns an * automatically generated customer account id. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR CUSTOMERACCOUNTID * </PRE><BR> * @param aCompanyName the attribute value * @param aCompanyType the attribute value * @param aAddressl the attribute value * @param aCity the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aCustomerPassword the attribute value * @param aAuthQuestion the attribute value * @param aAuthAnswer the attribute value * @param aLegalContactFirstName the attribute value * @param aLegalContactLastName the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBO CREATEBUSINESS ACCOUNT * @see NSIWholesaleAPI#ATTR COMPANY NAME * @see NSIWholesaleAPI#ATTR COMPANY TYPE * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR CUSTOMER-PASSWORD * @see NSIWholesaleAPI#ATTR AUTHQUESTION * @see NSIWholesaleAPI#ATTR AUTH ANSWER * @see NSIWholesaleAPI#ATTR LEGAL CONTACT FIRST NAME * @see NSIWholesaleAPI#ATTRLEGALCONTACT LAST NAME * * @see NSIWholesaleAPI#ATTRSTATE - 55- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#ATTR POSTAL CODE * @see NSIWholesaleAPI#ATTR ADDRESS2 * @see NSIWholesaleAPI#ATTRADDRESS3 * @see NSIWholesaleAPI#ATTR ADDRESS4 * @see NSIWholesaleAPI#ATTRADDRESSS * @see NSIWholesaleAPI#ATTR EMAIL * @see NSIWholesaleAPI#ATTRFAX * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS1 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS2 * @see NSIWholesaleAPI#ATTRLEGALCONTACTADDRESS3 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS4 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS * @see NSIWholesaleAPI#ATTR LEGAL CONTACT CITY * @see NSIWholesaleAPI#ATTR LEGAL CONTACT STATE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT POSTAL CODE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT COUNTRY CODE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT PHONE * @see NSIWholesaleAPI#ATTR LEGALCONTACTFAX * @see NSIWholesaleAPI#ATTRLEGALCONTACTEMAIL * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTR CUSTOMER ACCOUNT ID * public WSPResponse createBusinessAccount( String aCompanyName, String aCompanyType, String aAddressl, String aCity, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName) throws NSIWholesaleException { return createBusinessAccount( aCompanyName, aCompanyType, aAddress1, aCity, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aLegalContactFirstName, aLegalContactLastName, new Properties(, 0); * This method creates a business customer account and returns an * automatically generated customer account id. -56- WO 01/20484 PCT/USOO/25305 * <BR><PRE> Optional Attribute Key(s): ATTR ADDRESS2 ATTRADDRESS3 ATTR ADDRESS4 ATTRADDRESS5 ATTREMAIL ATTR FAX ATTR LEGAL CONTACT ADDRESS1 ATTRLEGALCONTACTADDRESS2 ATTRLEGALCONTACTADDRESS3 ATTR LEGAL CONTACT ADDRESS4 ATTR LEGAL CONTACT ADDRESS5 ATTR LEGAL CONTACT CITY ATTR LEGAL CONTACT STATE ATTR LEGAL CONTACT POSTAL CODE ATTR LEGAL CONTACT COUNTRY CODE ATTRLEGALCONTACTPHONE ATTR LEGAL CONTACT FAX ATTRLEGALCONTACTEMAIL Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRCUSTOMERACCOUNTID * </PRE><BR> * @param aCompanyName the attribute value * @param aCompanyType the attribute value * @param aAddressl the attribute value * @param aCity the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aCustomerPassword the attribute value * @param aAuthQuestion the attribute value * @param aAuthAnswer the attribute value * @param aLegalContactFirstName the attribute value * @param aLegalContactLastName the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBO CREATEBUSINESSACCOUNT * @see NSIWholesaleAPI#ATTR COMPANY NAME * @see NSIWholesaleAPI#ATTR COMPANY-TYPE * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR CUSTOMER-PASSWORD * @see NSIWholesaleAPI#ATTR AUTH QUESTION * @see NSIWholesaleAPI#ATTR AUTHANSWER * @see NSIWholesaleAPI#ATTR LEGAL CONTACT FIRST NAME * @see NSIWholesaleAPI#ATTRLEGALCONTACT LAST NAME * * @see NSIWholesaleAPI#ATTRSTATE -57- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#ATTRPOSTAL CODE * @see NSIWholesaleAPI#ATTR ADDRESS2 * @see NSIWholesaleAPI#ATTRADDRESS3 * @see NSIWholesaleAPI#ATTRADDRESS4 * @see NSIWholesaleAPI#ATTR ADDRESS5 * @see NSIWholesaleAPI#ATTR EMAIL * @see NSIWholesaleAPI#ATTR FAX * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS1 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS2 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS3 * @see NSIWholesaleAPI#ATTRLEGALCONTACTADDRESS4 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS5 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT CITY * @see NSIWholesaleAPI#ATTRLEGALCONTACTSTATE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT POSTAL CODE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT COUNTRY CODE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT PHONE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT FAX * @see NSIWholesaleAPI#ATTRLEGALCONTACTEMAIL * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRCUSTOMERACCOUNTID */ public WSPResponse createBusinessAccount( String aCompanyName, String aCompanyType, String aAddressl, String aCity, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName, Properties optionalAttributes) throws NSIWholesaleException return createBusinessAccount aCompanyName, aCompanyType, aAddressl, aCity, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aLegalContactFirstName, aLegalContactLastName, optionalAttributes ) 0); protected WSPResponse createBusinessAccount String aCompanyName, -58- WO 01/20484 PCT/USOO/25305 String aCompanyType, String aAddress1, String aCity, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName, Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + ".createBusinessAccount(StringXll, Properties, int) "; if (count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(ATTRCOMPANYNAME, aCompanyName); allParmsAndAttrs.put(ATTRCOMPANYTYPE, aCompanyType); allParmsAndAttrs.put(ATTRADDRESS1, aAddress1); allParmsAndAttrs.put(ATTRCITY, aCity); allParmsAndAttrs.put(ATTRCOUNTRYCODE, aCountryCode); allParmsAndAttrs.put(ATTRPHONE, aPhone); allParmsAndAttrs.put(ATTRCUSTOMERPASSWORD, aCustomerPassword); allParmsAndAttrs.put(ATTRAUTHQUESTION, aAuthQuestion); allParmsAndAttrs.put(ATTRAUTHANSWER, aAuthAnswer); allParmsAndAttrs.put(ATTRLEGALCONTACTFIRSTNAME, aLegalContactFirstName); allParmsAndAttrs.put(ATTRLEGALCONTACTLASTNAME, aLegalContactLastName); returnCode = conn.makeRequest(COMBOCREATEBUSINESSACCOUNT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally -59- WO 01/20484 PCT/USOO/25305 return createBusinessAccount( aCompanyName, aCompanyType, aAddressl, aCity, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aLegalContactFirstName, aLegalContactLastName, optionalAttributes, count + 1); } } * This method creates a business customer account and returns an * automatically generated customer account id. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR CUSTOMER ACCOUNT ID * </PRE><BR> * @param aCompanyName the attribute value * @param aCompanyType the attribute value * @param aAddressl the attribute value * @param aCity the attribute value * @param aState the attribute value * @param aPostalCode the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aCustomerPassword the attribute value * @param aAuthQuestion the attribute value * @param aAuthAnswer the attribute value * @param aLegalContactFirstName the attribute value * @param aLegalContactLastName the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBO CREATEBUSINESSACCOUNT * @see NSIWholesaleAPI#ATTR COMPANY NAME * @see NSIWholesaleAPI#ATTR COMPANY TYPE * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTR POSTAL CODE * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR CUSTOMER PASSWORD * @see NSIWholesaleAPI#ATTR AUTHQUESTION * @see NSIWholesaleAPI#ATTRAUTHANSWER -60- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#ATTRLEGALCONTACTFIRSTNAME * @see NSIWholesaleAPI#ATTRLEGALCONTACTLASTNAME * * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTRADDRESS5 * @see NSIWholesaleAPI#ATTR E-MAIL * @see NSIWholesaleAPI#ATTR FAX * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS * @see NSIWholesaleAPI#ATTRLEGALCONTACTADDRESS4 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS * @see NSIWholesaleAPI#ATTR LEGAL CONTACT CITY * @see NSIWholesaleAPI#ATTR LEGAL CONTACT STATE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT POSTAL CODE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT COUNTRY CODE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT PHONE * @see NSIWholesaleAPI#ATTRLEGALCONTACTFAX * @see NSIWholesaleAPI#ATTRLEGALCONTACTEMAIL * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMAND EXECUTION SUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRCUSTOMERACCOUNT ID * public WSPResponse createBusinessAccount( String aCompanyName, String aCompanyType, String aAddressl, String aCity, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName, String aState, String aPostalCode) throws NSIWholesaleException return createnusinessAccount aCompanyName, aCompanyType, aAddressl, aCity, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aLegalContactFirstName, aLegalContactLastName, aState, aPostalCode, -61- WO 01/20484 PCT/USOO/25305 new Properties(, 0); * This method creates a business customer account and returns an * automatically generated customer account id. * <BR><PRE> Optional Attribute Key(s): ATTR ADDRESS2 ATTRADDRESS3 ATTRADDRESS4 ATTRADDRESS5 ATTREMAIL ATTRFAX ATTRLEGALCONTACTADDRESS1 ATTRLEGALCONTACTADDRESS2 ATTRLEGALCONTACTADDRESS3 ATTRLEGALCONTACTADDRESS4 ATTR LEGAL CONTACT ADDRESS5 ATTR LEGAL CONTACT CITY ATTRLEGALCONTACTSTATE ATTR LEGAL CONTACT POSTAL CODE ATTRLEGALCONTACTCOUNTRY CODE ATTRLEGALCONTACTPHONE ATTR LEGAL CONTACT FAX ATTRLEGALCONTACTEMAIL Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRCUSTOMERACCOUNTID * </PRE><BR> * @param aCompanyName the attribute value * @param aCompanyType the attribute value * @param aAddressl the attribute value * @param aCity the attribute value * @param aState the attribute value * @param aPostalCode the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aCustomerPassword the attribute value * @param aAuthQuestion the attribute value * @param aAuthAnswer the attribute value * @param aLegalContactFirstName the attribute value * @param aLegalContactLastName the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBO CREATEBUSINESSACCOUNT * @see NSIWholesaleAPI#ATTR COMPANY NAME * @see NSIWholesaleAPI#ATTR COMPANY TYPE * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTRSTATE -62- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#ATTR POSTAL CODE * @see NSIWholesaleAPI#ATTRCOUNTRYCODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR CUSTOMER-PASSWORD * @see NSIWholesaleAPI#ATTRAUTHQUESTION * @see NSIWholesaleAPI#ATTR AUTH ANSWER * @see NSIWholesaleAPI#ATTRLEGALCONTACTFIRSTNAME * @see NSIWholesaleAPI#ATTRLEGALCONTACTLASTNAME * * @see NSIWholesaleAPI#ATTRADDRESS2 * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTRADDRESS4 * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTREMAIL * @see NSIWholesaleAPI#ATTR FAX * @see NSIWholesaleAPI#ATTRLEGALCONTACTADDRESS1 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS * @see NSIWholesaleAPI#ATTRLEGALCONTACTADDRESS3 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS * @see NSIWholesaleAPI#ATTRLEGALCONTACT_ADDRESSS * @see NSIWholesaleAPI#ATTR LEGAL CONTACT CITY * @see NSIWholesaleAPI#ATTRLEGALCONTACTSTATE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT POSTAL CODE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT COUNTRY CODE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT PHONE * @see NSIWholesaleAPI#ATTRLEGALCONTACTFAX * @see NSIWholesaleAPI#ATTRLEGALCONTACTEMAIL * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRCUSTOMERACCOUNT ID * public WSPResponse createBusinessAccount( String aCompanyName, String aCompanyType, String aAddressl, String aCity, ) String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName, String aState, String aPostalCode, Properties optionalAttributes) throws NSIWholesaleExceptionf return createBusinessAccount aCompanyName, aCompanyType, aAddressl, aCity, aCountryCode, aPhone, - 63- WO 01/20484 PCT/USOO/25305 aCustomerPassword, aAuthQuestion, aAuthAnswer, aLegalContactFirstName, aLegalContactLastName, aState, aPostalCode, optionalAttributes, 0); } protected WSPResponse createBusinessAccount( String aCompanyName, String aCompanyType, String aAddressl, String aCity, String aCountryCode, String aPhone, String aCustomerPassword, String aAuthQuestion, String aAuthAnswer, String aLegalContactFirstName, String aLegalContactLastName, String aState, String aPostalCode, Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + ".createBusinessAccount(StringXl3, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOuto; Properties allParmsAndAttrs = new Properties() // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(ATTRCOMPANYNAME, aCompanyName); allParmsAndAttrs.put(ATTRCOMPANYTYPE, aCompanyType); allParmsAndAttrs.put(ATTR ADDRESS1, aAddress1); allParmsAndAttrs.put(ATTRCITY, aCity); allParmsAndAttrs.put(ATTRCOUNTRYCODE, aCountryCode); allParmsAndAttrs.put(ATTRPHONE, aPhone); allParmsAndAttrs.put(ATTRCUSTOMERPASSWORD, aCustomerPassword); allParmsAndAttrs.put(ATTRAUTHQUESTION, aAuthQuestion); allParmsAndAttrs.put(ATTRAUTHANSWER, aAuthAnswer); allParmsAndAttrs.put(ATTRLEGALCONTACTFIRSTNAME, aLegalContactFirstName); allParmsAndAttrs.put(ATTRLEGALCONTACTLASTNAME, aLegalContactLastName); -64- WO 01/20484 PCT/USOO/25305 allParmsAndAttrs.put(ATTR STATE, aState); allParmsAndAttrs.put(ATTRPOSTALCODE, aPostalCode); returnCode = conn.makeRequest (COMBOCREATEBUSINESSACCOUNT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); ) } finally return createBusinessAccount( aCompanyName, aCompanyType, aAddressl, aCity, aCountryCode, aPhone, aCustomerPassword, aAuthQuestion, aAuthAnswer, aLegalContactFirstName, aLegalContactLastName, aState, aPostalCode, optionalAttributes, count + 1); } } ) } * This method creates a technical contact and returns an * automatically generated technical contact id (NIC Handle). * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR TECH CONTACTID * </PRE><BR> * @param aFirstName the attribute value * @param aLastName the attribute value * @param aOrganization the attribute value * @param aAddressl the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aEmail the attribute value * @param aTechContactPassword the attribute value 5 * @param aCity the attribute value * @return the Wholesale Server Protocol Server response -65- WO 01/20484 PCT/USOO/25305 * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS TECHNICAL CONTACT * @see NSIWholesaleAPI#COMBO CREATE TECHNICAL-CONTACT * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST NAME * @see NSIWholesaleAPI#ATTR ORGANIZATION * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR EMAIL * @see NSIWholesaleAPI#ATTR TECH CONTACT-PASSWORD * @see NSIWholesaleAPI#ATTRCITY ) * * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTR POSTAL-CODE * @see NSIWholesaleAPI#ATTRFAX * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRTECHCONTACTID * 5 */ public WSPResponse createTechnicalContact( String aFirstName, String aLastName, String aOrganization, String aAddressl, String aCountryCode, String aPhone, String aEmail, String aTechContactPassword, 5 String aCity) throws NSIWholesaleException return createTechnicalContact( aFirstName, aLastName, D aOrganization, aAddressl, aCountryCode, aPhone, aEmail, 5 aTechContactPassword, aCity, new Propertieso), 0); } 0/* * This method creates a technical contact and returns an * automatically generated technical contact id (NIC Handle). * <BR><PRE> Optional Attribute Key(s): 5 ATTRFAX -66- WO 01/20484 PCT/USOO/25305 Expected Major Result Code: COMMAND EXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRTECHCONTACTID * </PRE><BR> * @param aFirstName the attribute value * @param aLastName the attribute value * @param aOrganization the attribute value * @param aAddressi the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aEmail the attribute value * @param aTechContactPassword the attribute value * @param aCity the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS TECHNICAL CONTACT * @see NSIWholesaleAPI#COMBO CREATE TECHNICAL CONTACT * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST NAME * @see NSIWholesaleAPI#ATTR ORGANIZATION * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR EMAIL * @see NSIWholesaleAPI#ATTR TECH CONTACT-PASSWORD * @see NSIWholesaleAPI#ATTRCITY * * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTRPOSTALCODE * @see NSIWholesaleAPI#ATTRFAX * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTR TECH CONTACT ID */ public WSPResponse createTechnicalContact( String aFirstName, String aLastName, String aOrganization, String aAddressl, String aCountryCode, String aPhone, String aEmail, String aTechContactPassword, String aCity, Properties optionalAttributes) throws NSIWholesaleException { return createTechnicalContact( aFirstName, aLastName, aOrganization, -67- WO 01/20484 PCT/USOO/25305 aAddressl, aCountryCode, aPhone, aEmail, aTechContactPassword, aCity, optionalAttributes, 0); } protected WSPResponse createTechnicalContact( String aFirstName, String aLastName, String aOrganization, String aAddressl, String aCountryCode, String aPhone, String aEmail, String aTechContactPassword, String aCity, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".createTechnicalContact(StringX9, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(mlethodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Properties(; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(ATTRFIRSTNAME, aFirstName); allParmsAndAttrs.put(ATTRLASTNAME, aLastName); allParmsAndAttrs.put(ATTRORGANIZATION, aOrganization); allParmsAndAttrs.put(ATTRADDRESS1, aAddressl); allParmsAndAttrs.put(ATTRCOUNTRYCODE, aCountryCode); allParmsAndAttrs.put(ATTRPHONE, aPhone); allParmsAndAttrs.put(ATTREMAIL, aEmail); allParmsAndAttrs.put(ATTRTECHCONTACTPASSWORD, aTechContactPassword); allParmsAndAttrs.put(ATTRCITY, aCity); returnCode = conn.makeRequest(COMBOCREATETECHNICALCONTACT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) try { pool.release(conn); } - 68- WO 01/20484 PCT/USOO/25305 catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); finally return createTechnicalContact( aFirstName, aLastName, aOrganization, aAddress1, aCountryCode, aPhone, aEmail, aTechContactPassword, aCity, optionalAttributes, count + 1); * This method creates a technical contact and returns an * automatically generated technical contact id (NIC Handle). * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR TECH CONTACTID * </PRE><BR> * @param aFirstName the attribute value * @param aLastName the attribute value * @param aOrganization the attribute value * @param aAddressl the attribute value * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aEmail the attribute value * @param aTechContactPassword the attribute value * @param aCity the attribute value * @param aState the attribute value * @param aPostalCode the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS TECHNICAL-CONTACT * @see NSIWholesaleAPI#COMBO CREATE TECHNICAL CONTACT * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST-NAME * @see NSIWholesaleAPI#ATTR ORGANIZATION * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR EMAIL * @see NSIWholesaleAPI#ATTRTECHCONTACTPASSWORD * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTRSTATE -69- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#ATTRPOSTAL CODE * * @see NSIWholesaleAPI#ATTRFAX * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRTECHCONTACTID * public WSPResponse createTechnicalContact( String aFirstName, String aLastName, String aOrganization, 5 String aAddressl, String aCountryCode, String aPhone, String aEmail, String aTechContactPassword, ) String aCity, String aState, String aPostalCode) throws NSIWholesaleException { return createTechnicalContact( 5 aFirstName, aLastName, aOrganization, aAddressl, aCountryCode, 0 aPhone, aEmail, aTechContactPassword, aCity, aState, 5 aPostalCode, new Propertieso, 0); } o * This method creates a technical contact and returns an * automatically generated technical contact id (NIC Handle). * <BR><PRE> Optional Attribute Key(s): ATTRFAX 5 Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR TECHCONTACTID * </PRE><BR> * @param aFirstName the attribute value * @param aLastName the attribute value * @param aOrganization the attribute value * @param aAddressl the attribute value 5 * @param aCountryCode the attribute value * @param aPhone the attribute value * @param aEmail the attribute value -70- WO 01/20484 PCT/USOO/25305 * @param aTechContactPassword the attribute value * @param aCity the attribute value * @param aState the attribute value * @param aPostalCode the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS TECHNICAL'CONTACT * @see NSIWholesaleAPI#COMBO CREATE TECHNICAL CONTACT * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST NAME * @see NSIWholesaleAPI#ATTR ORGANIZATION * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR EMAIL * @see NSIWholesaleAPI#ATTR TECH CONTACT-PASSWORD * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTRPOSTAL CODE * * @see NSIWholesaleAPI#ATTRFAX * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRTECHCONTACTID */ public WSPResponse createTechnicalContact( String aFirstName, String aLastName, String aOrganization, String aAddressl, String aCountryCode, String aPhone, String aEmail, String aTechContactPassword, String aCity, String aState, String aPostalCode, Properties optionalAttributes) throws NSIWholesaleException { return createTechnicalContact( aFirstName, aLastName, aOrganization, aAddress1, aCountryCode, aPhone, aEmail, aTechContactPassword, aCity, aState, aPostalCode, -71- WO 01/20484 PCT/USOO/25305 optionalAttributes, 0); protected WSPResponse createTechnicalContact( 5 String aFirstName, String aLastName, String aOrganization, String aAddressl, String aCountryCode, 0 String aPhone, String aEmail, String aTechContactPassword, String aCity, String aState, 5 String aPostalCode, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + 0 ".createTechnicalContact(StringXll, Properties, int) "; if (count > retry) { throw'new NSIWholesaleException(methodName + "Unable to complete command"); 5 NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(; 0 Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); 5 allParmsAndAttrs.put(ATTR_FIRSTNAME, aFirstName); allParmsAndAttrs.put(ATTR_LASTNAME, aLastName); allParmsAndAttrs.put(ATTR_ORGANIZATION, aOrganization); allParmsAndAttrs.put(ATTRADDRESS1, aAddressl); allParmsAndAttrs.put(ATTRCOUNTRYCODE, aCountryCode); 0 allParmsAndAttrs.put(ATTRPHONE, aPhone); allParmsAndAttrs.put(ATTREMAIL, aEmail); allParmsAndAttrs.put(ATTRTECHCONTACTPASSWORD, aTechContactPassword); allParmsAndAttrs.put(ATTR_CITY, aCity); 5 allParmsAndAttrs.put(ATTRSTATE, aState); allParmsAndAttrs.put(ATTRPOSTALCODE, aPostalCode); returnCode = conn.makeRequest(COMBOCREATETECHNICALCONTACT, allParmsAndAttrs); 0 pool. checkIn(conn); return returnCode; catch (Exception e) { try { pool.release(conn); 5 } catch (ResourceException re) { -72- WO 01/20484 PCT/USOO/25305 System.err.println(methodName + "Caught ResourceException" + re); finally return createTechnicalContact( aFirstName, aLastName, aOrganization, aAddressl, aCountryCode, aPhone, aEmail, aTechContactPassword, aCity, aState, aPostalCode, optionalAttributes, count + 1); } } * This method registers a new domain product for an existing * customer account. This request assumes that the domain * name will be hosted by some organization other than * Network Solutions. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDED PROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR ISP PASSWORD * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param aDomainName the attribute value * @param aHostNamel the attribute value * @param alostAddrl the attribute value * @param aHostName2 the attribute value * @param aHostAddr2 the attribute value * @param aTechContactId the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO CREATE-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM CUSTOMER-PASSWORD * @see NSIWholesaleAPI#ATTR DOMAIN NAME * @see NSIWholesaleAPI#ATTR HOST NAME * @see NSIWholesaleAPI#ATTR HOST ADDR1 * @see NSIWholesaleAPI#ATTRHOSTNAME2 -73- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#ATTRHOSTADDR2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRISPPASSWORD * public WSPResponse createDomain( String pCustomerAccountId, String pCustomerPassword, String aDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId throws NSIWholesaleException return createDomain( pCustomerAccountId, pCustomerPassword, aDomainName, aHostNamel, aHostAddrl, aHostName2, aHostAddr2, aTechContactId, new Properties(, 0); * This method registers a new domain product for an existing * customer account. This request assumes that the domain * name will be hosted by some organization other than * Network Solutions. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR ISP PASSWORD * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param aDomainName the attribute value * @param aHostNamel the attribute value * @param aHostAddrl the attribute value * @param aHostName2 the attribute value * @param aHostAddr2 the attribute value * @param aTechContactId the attribute value * @param optionalAttributes a property list of optional attributes -74- WO 01/20484 PCT/USOO/25305 * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO CREATE DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMER PASSWORD * @see NSIWholesaleAPI#ATTR DOMAIN NAME * @see NSIWholesaleAPI#ATTR HOST NAME * @see NSIWholesaleAPI#ATTR HOST ADDR1 * @see NSIWholesaleAPI#ATTR HOST NAME2 * @see NSIWholesaleAPI#ATTR HOST ADDR2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID ) * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRISPPASSWORD * public WSPResponse createDomain( String pCustomerAccountId, String pCustomerPassword, String aDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId, Properties optionalAttributes) throws NSIWholesaleException return createDomain( pCustomerAccountId, pCustomerPassword, aDomainName, aHostNamel, aHostAddrl, aHostName2, aHostAddr2, aTechContactId, optionalAttributes, 5 0) ; protected WSPResponse createDomain( String pCustomerAccountId, String pCustomerPassword, ) String aDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, 5 String aTechContactId, Properties optionalAttributes, int count) -75- WO 01/20484 PCT/USOO/25305 throws NSIWholesaleException int rc; String methodName = className + ".createDomain(StringX8, Properties, int) "; System.out.println("*** Made it into createDomain...") if (count > retry) { rc = refundCard(pCustomerAccountId, aDomainName, CreateDomainPrice, CreateDomainWNRP, optionalAttributes); throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; // Double check to see if the domain really is available (to minimize charges) // with immediate credits try { System.out.println("***Attempting to verify domain is available."); WSPResponse wspResponse = verifyDomainName( aDomainName); if (wspResponse.getMajorResultCode() == WSPResponse.COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED) { // See if credit card information is available, if so get transaction System.out.println("*** Begining to do Charge Card Validation."); rc = ChargeCard(pCustomerAccountId, aDomainName, CreateDomainPrice, CreateDomainWNRP, optionalAttributes); if (rc != 0) { // Bad credit card. Return bad code. throw new NSIWholesaleException(methodName + "Credit card 5 declined for:" + aDomainName); } else // Domain name not available. Return bad code. D throw new NSIWholesaleException(methodName + "Domain name not available:"+ aDomainName); } 5 catch (NSIWholesaleException e) throw new NSIWholesaleException("Domain name previously taken:" + aDomainName); I // All o.k. create the domain. 0 System.out.println("*** After the credit card interaction, going on to create a name."); try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(; 5 // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); -76- WO 01/20484 PCT/USOO/25305 allParmsAndAttrs put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); allParmsAndAttrs.put(ATTRDOMAINNAME, aDomainName); allParmsAndAttrs.put(ATTRHOSTNAME1, aHostNamel); allParmsAndAttrs.put(ATTRHOSTADDR1, aHostAddrl); allParmsAndAttrs.put(ATTRHOSTNAME2, aHostName2); allParmsAndAttrs.put(ATTR HOST ADDR2, aHostAddr2); allParmsAndAttrs.put(ATTRTECHCONTACTID, aTechContactId); returnCode = conn.makeRequest(COMBOCREATEDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) try { pool.release(conn); ) } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); } finally return createDomain( pCustomerAccountId, pCustomerPassword, aDomainName, aHostNamel, aHostAddrl, aHostName2, aHostAddr2, aTechContactId, optionalAttributes, count + 1); )} * This method registers a new domain product for an existing * customer account. This request assumes that the domain * name will be hosted by some organization other than * Network Solutions. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR ISP PASSWORD * </PRE><BR> 5 * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param aDomainName the attribute value -77- WO 01/20484 PCT/USOO/25305 * @param aHostIdl the attribute value * @param aHostId2 the attribute value * @param aTechContactId the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO CREATE DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM CUSTOMER PASSWORD * @see NSIWholesaleAPI#ATTR DOMAIN NAME * @see NSIWholesaleAPI#ATTR HOST ID1 * @see NSIWholesaleAPI#ATTR HOST ID2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRISPPASSWORD * public WSPResponse createDomain( String pCustomerAccountId, String pCustomerPassword, String aDomainName, String aHostIdl, String aHostId2, String aTechContactId throws NSIWholesaleException { return createDomain( pCustomerAccountId, pCustomerPassword, aDomainName, aHostIdl, aHostId2, aTechContactId, new Properties(, 0); * This method registers a new domain product for an existing * customer account. This request assumes that the domain * name will be hosted by some organization other than * Network Solutions. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDED PROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR ISP PASSWORD * </PRE><BR> -78- WO 01/20484 PCT/USOO/25305 * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param aDomainName the attribute value * @param alostIdl the attribute value * @param aHostId2 the attribute value * @param aTechContactId the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when ) unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO CREATE-DOMAIN * @see NSIWholesaleAPI#PARMCUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARM CUSTOMER PASSWORD * @see NSIWholesaleAPI#ATTR DOMAIN NAME * @see NSIWholesaleAPI#ATTR HOST ID1 * @see NSIWholesaleAPI#ATTR HOST ID2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMAND EXECUTION SUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRISPPASSWORD * public WSPResponse createDomain( String pCustomerAccountId, String pCustomerPassword, String aDomainName, String aHostIdl, String aHostId2, String aTechContactId, Properties optionalAttributes) throws NSIWholesaleException return createDomain( pCustomerAccountId, pCustomerPassword, aDomainName, aHostIdl, aHostId2, aTechContactId, optionalAttributes, 0); } protected WSPResponse createDomain( String pCustomerAccountId, String pCustomerPassword, String aDomainName, String aHostIdl, String aHostId2, String aTechContactId, Properties optionalAttributes, int count) throws NSIWholesaleException { -79- WO 01/20484 PCT/USOO/25305 String methodName = className + ".createDomain(StringX6, Properties, int) "1; if (count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso); // put optional attributes propertiesCat (allParmsAndAttrs, optionalAttributes); allParmsAndAttrs .put (PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs .put (PARMCUSTOMERPASSWORD, pCustomerPassword); allParmsAndAttrs .put (ATTRDOMAINNAME, aDomainName); allParmsAndAttrs .put (ATTRHOSTID1, aHostIdl); allParmsAndAttrs.put(ATTRHOSTID2, aHostId2); allParmsAndAttrs.put(ATTRTECHCONTACTID, aTechContactId); returnCode = conn.makeRequest (COMBOCREATEDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) { try { pool.release(conn); } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); } finally return createDomain( pCustomerAccountId, pCustomerPassword, aDomainName, aHostIdl, aHostId2, aTechContactId, optionalAttributes, count + 1); } } ) } * This method registers a DNS Hosting product for an existing * customer account. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. -80- WO 01/20484 PCT/USOO/25305 * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDED PROPERTIES BEINGRETURNED Expected Result Property Key(s) Returned: 5 ATTR DNS HOSTING CREATED ATTRISPPASSWORD * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param aDomainName the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE 5 * @see NSIWholesaleAPI#CLASS DNS HOSTING * @see NSIWholesaleAPI#COMBO CREATEDNSHOSTING * @see NSIWholesaleAPI#PARM CUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARM CUSTOMER PASSWORD * @see NSIWholesaleAPI#ATTRDOMAINNAME D * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED 5 * @see NSIWholesaleAPI#ATTR DNS HOSTING CREATED * @see NSIWholesaleAPI#ATTR ISP PASSWORD * public WSPResponse createDnsHosting( D String pCustomerAccountId, String pCustomerPassword, String aDomainName) throws NSIWholesaleException return createDnsHosting( 5 pCustomerAccountId,, pCustomerPassword, aDomainName, new Propertieso), 0); * This method registers a DNS Hosting product for an existing * customer account. * <BR>NOTE: This command is asynchronous. Receipt of the 5 * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMAND EXECUTION SUCCEEDED PROPERTIESBEINGRETURNED 0 Expected Result Property Key(s) Returned: ATTRDNSHOSTINGCREATED ATTR ISP PASSWORD * </PRE><BR> * @param pCustomerAccountId the parameter value 5 * @param pCustomerPassword the parameter value * @param aDomainName the attribute value * @param optionalAttributes a property list of optional attributes -81- WO 01/20484 PCT/USOO/25305 * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleExceptionI when unable to complete command * @see NSIWholesaleAPI#COMMAND CREATE * @see NSIWholesaleAPI#CLASS DNS HOSTING * @see NSIWholesaleAPI#COMBOCREATEDNSHOSTING * @see NSIWholesaleAPI#PARMCUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * @see NSIWholesaleAPI#ATTRDOMAINNAME ) * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRDNSHOSTINGCREATED * @see NSIWholesaleAPI#ATTRISPPASSWORD * public WSPResponse createDnsHosting( String pCustomerAccountId, String pCustomerPassword, String aDomainName, Properties optionalAttributes) throws NSIWholesaleException { return createDnsHosting( pCustomerAccountId, pCustomerPassword, aDomainName, optionalAttributes, 0); } protected WSPResponse createDnsHosting( String pCustomerAccountId, String pCustomerPassword, String aDomainName, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".createDnsHosting(String, String, String, Properties, int) "; if (count > retry) rc = refundCard(pCustomerAccountId, aDomainName, CreateDnsHostPrice, CreateDnsHostWNRP, optionalAttributes); 5 throw new NSIWholesaleException(methodName + "Unable to complete command"); NSIWholesaleConnection conn = null; WSPResponse returnCode; 0 // Double check to see if the domain really is available (to minimize charges) // with immediate credits try { System.out.println("***Attempting to verify domain for DNS 5 Hosting."); WSPResponse wspResponse = verifyDomainName( aDomainName); if (wspResponse-getMajorResultCode() == -82- WO 01/20484 PCT/USOO/25305 WSPResponse.COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED) // See if credit card information is available, if so get transaction System.out.println('*** Begining to do Charge Card Validation."); rc = ChargeCard(pCustomerAccountId, aDomainName, CreateDomainPrice, CreateDomainWNRP, optionalAttributes); if (rc != 0) { // Bad credit card. Return bad code. throw new NSIWholesaleException(methodName + "Credit card declined for:" + aDomainName); } else // Domain name not available. Return bad code. throw new NSIWholesaleException(methodName + "Domain name not available:"+ aDomainName); } } catch (NSIWholesaleException e) { throw new NSIWholesaleException("Domain name previously taken:" + aDomainName); } try conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); allParmsAndAttrs.put(ATTRDOMAINNAME, aDomainName); returnCode = conn.makeRequest(COMBOCREATEDNSHOSTING, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally return createDnsHosting( pCustomerAccountId, pCustomerPassword, aDomainName, -83- WO 01/20484 PCT/USOO/25305 optionalAttributes, count + 1); } } * This method allows a customer to modify one or more attributes * associated with a specific instance of a Domain product * registered to that customer. * This method will also convert a DNS Hosting product domain * into a standard domain. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param pDomainName the parameter value * @param aHostNamel the attribute value * @param aHostAddrl the attribute value * @param aHostName2 the attribute value * @param aHostAddr2 the attribute value * @param aTechContactId the attribute value * @return the Wholesale Server :Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO MODIFY-DOMAIN * @see NSIWholesaleAPI#PARMCUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * @see NSIWholesaleAPI#PARM DOMAIN NAME * @see NSIWholesaleAPI#ATTR HOST NAME * @see NSIWholesaleAPI#ATTR HOSTADDR1 * @see NSIWholesaleAPI#ATTR HOST NAME2 * @see NSIWholesaleAPI#ATTR HOST ADDR2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID * * @see WSPResponse#COMMAND FAILEDUNKNOWNERROR * @see WSPResponse#INVALIDVALUE * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#OBJECTNOTFOUND * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRTECHCONTACTID * public WSPResponse modifyDomain( String pCustomerAccountId, String pCustomerPassword, String pDomainName, String aHostNamel, -84- WO 01/20484 PCT/USOO/25305 String aHostAddrl, String aHostName2, String allostAddr2, String aTechContactId throws NSIWholesaleException return modifyDomain( pCustomerAccountId, pCustomerPassword, pDomainName, aHostNamel, aHostAddrl, aHostName2, aHostAddr2, aTechContactId, new Properties(), 0); } * This method allows a customer to modify one or more attributes * associated with a specific instance of a Domain product * registered to that customer. * This method will also convert a DNS Hosting product domain * into a standard domain. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param pDomainName the parameter value * @param aHostNamel the attribute value * @param aHostAddrl the attribute value * @param aHostName2 the attribute value * @parai aHostAddr2 the attribute value * @param aTechContactId the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO MODIFY-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARM CUSTOMER PASSWORD * @see NSIWholesaleAPI#PARM DOMAIN NAME * @see NSIWholesaleAPI#ATTR HOST NAME * @see NSIWholesaleAPI#ATTR HOSTADDR1 * @see NSIWholesaleAPI#ATTR HOSTNAME2 * @see NSIWholesaleAPI#ATTR HOSTADDR2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID ) * * @see WSPResponse#COMMAND FAILEDUNKNOWNERROR * @see WSPResponse#INVALIDVALUE -85- WO 01/20484 PCT/USOO/25305 * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#OBJECTNOTFOUND * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRTECHCONTACTID * public WSPResponse modifyDomain( String pCustomerAccountId, String pCustomerPassword, String pDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId, Properties optionalAttributes) throws NSIWholesaleException return modifyDomain( pCustomerAccountId, pCustomerPassword, pDomainName, aHostNamel, aHostAddrl, aHostName2, aHostAddr2, aTechContactId, optionalAttributes, 0); protected WSPResponse modifyDomain( String pCustomerAccountId, String pCustomerPassword, String pDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".modifyDomain(StringX8, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); I NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Propertieso); // put optional attributes -86- WO 01/20484 PCT/USOO/25305 propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); allParmsAndAttrs.put(PARMDOMAINNAME, pDomainName); allParmsAndAttrs.put(ATTRHOSTNAMEl, aHostNamel); allParmsAndAttrs.put(ATTRHOSTADDR1, aHostAddrl); allParmsAndAttrs.put(ATTR HOST NAME2, aHostName2); allParmsAndAttrs.put(ATTRHOSTADDR2, aHostAddr2); allParmsAndAttrs.put(ATTRTECHCONTACTID, aTechContactId); returnCode = conn.makeRequest(COMBOMODIFYDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); finally { return modifyDomain( pCustomerAccountId, pCustomerPassword, pDomainName, allostNamel, aHostAddrl, aHostName2, allostAddr2, aTechContactId, optionalAttributes, count + 1); * This method allows a customer to modify one or more attributes * associated with a specific instance of a Domain product * registered to that customer. * This method will also convert a DNS Hosting product domain * into a standard domain. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value -87- WO 01/20484 PCT/USOO/25305 * @param pDomainName the parameter value * @param aHostIdl the attribute value * @param aHostId2 the attribute value * @param aTechContactId the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO MODIFY-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM CUSTOMER PASSWORD * @see NSIWholesaleAPI#PARM DOMAIN-NAME * @see NSIWholesaleAPI#ATTR HOSTID1 * @see NSIWholesaleAPI#ATTR HOSTID2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR * @see WSPResponse#INVALIDVALUE * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#OBJECTNOTFOUND * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRTECHCONTACT ID * public WSPResponse modifyDomain(: String pCustomerAccountId, String pCustomerPassword, String pDomainName, String aHostIdl, String aHostId2, String aTechContactId throws NSIWholesaleException return modifyDomain( pCustomerAccountId, pCustomerPassword, pDomainName, aHostIdl, aHostId2, aTechContactId, new Properties(, 0); * This method allows a customer to modify one or more attributes * associated with a specific instance of a Domain product * registered to that customer. * This method will also convert a DNS Hosting product domain * into a standard domain. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIESBEINGRETURNED code * indicates that the command has been successfully queued. * <BR><PRE> -88- WO 01/20484 PCT/USOO/25305 Expected Major Result Code: COMMANDEXECUTION SUCCEEDEDNODATA BEING RETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param pDomainName the parameter value * @param aHostIdl the attribute value * @param aHostId2 the attribute value * @param aTechContactId the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO MODIFY DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM CUSTOMER-PASSWORD * @see NSIWholesaleAPI#PARM DOMAIN-NAME * @see NSIWholesaleAPI#ATTR HOST ID1 * @see NSIWholesaleAPI#ATTR HOSTID2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR * @see WSPResponse#INVALIDVALUE * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#OBJECTNOTFOUND * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see NSIWholesaleAPI#ATTRTECHCONTACTID * */ public WSPResponse modifyDomain( String pCustomerAccountId, String pCustomerPassword, String pDomainName, String aHostId1, String aHostId2, String aTechContactId, Properties optionalAttributes) throws NSIWholesaleException return modifyDomain( pCustomerAccountId, pCustomerPassword, pDomainName, aHostIdl, aHostId2, aTechContactId, optionalAttributes, 0); } protected WSPResponse modifyDomain( String pCustomerAccountId, String pCustomerPassword, String pDomainName, String aHostIdl, -89- WO 01/20484 PCT/USOO/25305 String aHostId2, String aTechContactId, Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + ".modifyDomain(StringX6, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); allParmsAndAttrs .put (PARMDOMAINNAME, pDomainName); allParmsAndAttrs.put(ATTRHOSTID1, aHostIdl); allParmsAndAttrs.put(ATTRHOSTID2, aHostld2); allParmsAndAttrs.put(ATTRTECHCONTACTID, aTechContactId); returnCode = conn.makeRequest(COMBOMODIFYDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally { return modifyDomain( pCustomerAccountId, pCustomerPassword, pDomainName, aHostIdl, aHostId2, aTechContactId, optionalAttributes, count + 1); } - 90- WO 01/20484 PCT/USOO/25305 * This method allows a technical contact of a customer's domain * product to modify one or more attributes * associated with that specific instance of the Domain product * registered to that customer. * This method will also convert a DNS Hosting product domain * into a standard domain. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pTechContactId the parameter value * @param pTechContactPassword the parameter value * @param pDomainName the parameter value * @param aHostNamel the attribute value * @param aHostAddrl the attribute value * @param aHostName2 the attribute value * @param aHostAddr2 the attribute value * @param aTechContactId the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND.MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO MODIFY-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM TECHCONTACTID * @see NSIWholesaleAPI#PARM TECHCONTACTPASSWORD * @see NSIWholesaleAPI#PARM DOMAIN-NAME * @see NSIWholesaleAPI#ATTR HOST NAME * @see NSIWholesaleAPI#ATTR HOST ADDR1 * @see NSIWholesaleAPI#ATTR HOSTNAME2 * @see NSIWholesaleAPI#ATTR HOST ADDR2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID ) * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR * @see WSPResponse#INVALIDVALUE * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse modifyDomain( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostNamel, 5 String aHostAddrl, String aHostName2, String aHostAddr2, - 91- WO 01/20484 PCT/USOO/25305 String aTechContactId throws NSIWholesaleException return modifyDomain( pCustomerAccountId, pTechContactId, pTechContactPassword, pDomainName, aHostNamel, aHostAddrl, aHostName2, aHostAddr2, aTechContactId, new Properties(), 0); } * This method allows a technical contact of a customer's domain * product to modify one or more attributes * associated with that specific instance of the Domain product * registered to that customer. * This method will also convert a DNS Hosting product domain * into a standard domain. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pTechContactId the parameter value * @param pTechContactPassword the parameter value * @param pDomainName the parameter value * @param aHostNamel the attribute value * @param alostAddrl the attribute value * @param aHostName2 the attribute value * @param aHostAddr2 the attribute value * @param aTechContactId the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO MODIFY-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARM TECHCONTACTID * @see NSIWholesaleAPI#PARM TECH CONTACT PASSWORD * @see NSIWholesaleAPI#PARM DOMAIN-NAME * @see NSIWholesaleAPI#ATTR HOST NAME * @see NSIWholesaleAPI#ATTR HOSTADDR1 * @see NSIWholesaleAPI#ATTR HOSTNAME2 * @see NSIWholesaleAPI#ATTR HOST ADDR2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR -92- WO 01/20484 PCT/USOO/25305 * @see WSPResponse#INVALIDVALUE * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse modifyDomain( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String aHostAddr2, String aTechContactId, Properties optionalAttributes) throws NSIWholesaleException ( return modifyDomain( pCustomerAccountId, pTechContactId, pTechContactPassword, pDomainName, aHostNamel, allostAddrl, aHostName2, aHostAddr2, aTechContactId, optionalAttributes, 0); protected WSPResponse modifyDomain( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostNamel, String aHostAddrl, String aHostName2, String allostAddr2, String aTechContactId, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".modifyDomain(StringX9, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); I NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso; -93- WO 01/20484 PCT/USOO/25305 // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMTECHCONTACTID, pTechContactId); allParmsAndAttrs.put(PARMTECHCONTACTPASSWORD, pTechContactPassword); allParmsAndAttrs.put(PARMDOMAINNAME, pDomainName); allParmsAndAttrs.put(ATTRHOSTNAMEl, aHostNamel); allParmsAndAttrs.put(ATTRHOSTADDR1, aHostAddrl); allParmsAndAttrs.put(ATTRHOSTNAME2, aHostName2); allParmsAndAttrs.put(ATTRHOSTADDR2, aHostAddr2); allParmsAndAttrs.put(ATTRTECHCONTACTID, aTechContactId); returnCode = conn.makeRequest(COMBOMODIFYDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) { try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally { return modifyDomain( pCustomerAccountId, pTechContactId, pTechContactPassword, pDomainName, aHostNamel, aHostAddrl, aHostName2, aHostAddr2, aTechContactId, optionalAttributes, count + 1); } * This method allows a technical contact of a customer's domain * product to modify one or more attributes * associated with that specific instance of the Domain product * registered to that customer. * This method will also convert a DNS Hosting product domain * into a standard domain. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> -94- WO 01/20484 PCT/USOO/25305 Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pTechContactId the parameter value * @param pTechContactPassword the parameter value * @param pDomainName the parameter value * @param alostIdl the attribute value * @param aHostId2 the attribute value * @param aTechContactId the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBOMODIFYDOMAIN * @see NSIWholesaleAPI#PARM CUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARMTECHCONTACTID * @see NSIWholesaleAPI#PARMTECHCONTACTPASSWORD * @see NSIWholesaleAPI#PARM DOMAIN-NAME * @see NSIWholesaleAPI#ATTRHOSTID1 * @see NSIWholesaleAPI#ATTR HOSTID2 * @see NSIWholesaleAPI#ATTRTECHCONTACTID * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR * @see WSPResponse#INVALIDVALUE * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED */ public WSPResponse modifyDomain( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostIdl, String aHostId2, String aTechContactId throws NSIWholesaleException { return modifyDomain( pCustomerAccountId, pTechContactId, pTechContactPassword, pDomainName, aHostIdl, aHostId2, aTechContactId, new Propertieso), 0); 5 * This method allows a technical contact of a customer's domain * product to modify one or more attributes * associated with that specific instance of the Domain product -95- WO 01/20484 PCT/USOO/25305 * registered to that customer. * This method will also convert a DNS Hosting product domain * into a standard domain. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDEDNODATA BEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pTechContactId the parameter value * @param pTechContactPassword the parameter value * @param pDomainName the parameter value * @param aHostIdl the attribute value * @param aHostId2 the attribute value * @param aTechContactId the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO MODIFY DOMAIN * @see NSIWholesaleAPI#PARMCUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARM TECHCONTACTID * @see NSIWholesaleAPI#PARM TECH CONTACT PASSWORD * @see NSIWholesaleAPI#PARM DOMAIN-NAME * @see NSIWholesaleAPI#ATTR HOST ID1 * @see NSIWholesaleAPI#ATTR HOST ID2 * @see NSIWholesaleAPI#ATTR TECH CONTACT ID * * @see WSPResponse#COMMANDFAILEDUNKNOWNERROR * @see WSPResponse#INVALIDVALUE 5 * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse modifyDomain( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostIdl, String aHostId2, String aTechContactId, Properties optionalAttributes) ) throws NSIWholesaleException return modifyDomain( pCustomerAccountId, pTechContactId, pTechContactPassword, 5 pDomainName, aHostIdl, aHostId2, -96- WO 01/20484 PCT/USOO/25305 aTechContactId, optionalAttributes, 0); protected WSPResponse modifyDomain( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, String aHostIdl, String aHostId2, String aTechContactId, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".modifyDomain(StringX7, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMTECHCONTACTID, pTechContactId); allParmsAndAttrs.put(PARMTECHCONTACTPASSWORD, pTechContactPassword); allParmsAndAttrs .put (PARMDOMAINNAME, pDomainName); allParmsAndAttrs.put(ATTRHOSTID1, aHostIdl); allParmsAndAttrs.put(ATTRHOSTID2, aHostId2); allParmsAndAttrs.put(ATTRTECHCONTACTID, aTechContactId); returnCode = conn.makeRequest(COMBOMODIFYDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) { try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally return modifyDomain( pCustomerAccountId, pTechContactId, -97- WO 01/20484 PCT/USOO/25305 pTechContactPassword, pDomainName, aHostIdl, aHostId2, aTechContact Id, optionalAttributes, count + 1); } } * This method allows an Internet Service Provider (ISP) * to modify the Technical Contact Id of a specific domain product. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIESBEING RETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATA BEING RETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pIspPassword the parameter value * @param pDomainName the parameter value * @param aTechContactId the attribute value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO MODIFY-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNTID * @see NSIWholesaleAPI#PARM ISPPASSWORD * @see NSIWholesaleAPI#PARM DOMAIN-NAME * @see NSIWholesaleAPI#ATTR TECH CONTACT ID * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse modifyDomain( String pCustomerAccountId, String pIspPassword, String pDomainName, String aTechContactId throws NSIWholesaleException return modifyDomain( pCustomerAccountId, pIspPassword, pDomainName, aTechContactId, new Properties(, 0); } - 98- WO 01/20484 PCT/USOO/25305 * This method allows an Internet Service Provider (ISP) * to modify the Technical Contact Id of a specific domain product. * <BR>NOTE: This command is asynchronous. Receipt of the * COMMAND EXECUTION SUCCEEDED PROPERTIESBEINGRETURNED code * indicates that the command has been successfully queued. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDED NO DATA BEING RETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pIspPassword the parameter value * @param pDomainName the parameter value * @param aTechContactId the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO MODIFY-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNTID * @see NSIWholesaleAPI#PARM ISPPASSWORD * @see NSIWholesaleAPI#PARM DOMAIN NAME * @see NSIWholesaleAPI#ATTRTECHCONTACT ID * * @see WSPResponse#INVALIDVALUE * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse modifyDomain( String pCustomerAccountId, String pIspPassword, String pDomainName, String aTechContactId, Properties optionalAttributes) throws NSIWholesaleException return modifyDomain( pCustomerAccountId, pIspPassword, pDomainName, aTechContactId, optionalAttributes, 0); } protected WSPResponse modifyDomain( String pCustomerAccountId, String pIspPassword, String pDomainName, String aTechContactId, Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + ".modifyDomain(StringX4, Properties, int) "; if (count > retry) { - 99- WO 01/20484 PCT/USOO/25305 throw new NSIWholesaleException(methodName + "Unable to complete command"); NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso; // put optional attributes propertiesCat (allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs .put (PARMISPPASSWORD, pIspPassword); allParmsAndAttrs.put(PARMDOMAINNAME, pDomainName); allParmsAndAttrs.put(ATTRTECHCONTACTID, aTechContactId); returnCode = conn.makeRequest (COMBOMODIFYDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) { try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); finally return modifyDomain( pCustomerAccountId, pIspPassword, pDomainName, aTechContact Id, optionalAttributes, count + 1); ) } 5/ * This method is used to modify one or more attributes * of an existing individual customer account. * <BR><PRE> Expected Major Result Code: ) COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @return the Wholesale Server Protocol Server response 5 * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMANDMODIFY - 100- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#CLASS INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#COMBO MODIFY INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD > * * @see NSIWholesaleAPI#ATTR CUSTOMER-PASSWORD * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST NAME * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR ADDRESS2 * @see NSIWholesaleAPI#ATTR ADDRESS3 * @see NSIWholesaleAPI#ATTR ADDRESS4 * @see NSIWholesaleAPI#ATTR ADDRESS * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTR POSTAL CODE * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR FAX * @see NSIWholesaleAPI#ATTR EMAIL * @see NSIWholesaleAPI#ATTR AUTHQUESTION * @see NSIWholesaleAPI#ATTRAUTHANSWER * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * */ public WSPResponse modifyIndividualAccount( String pCustomerAccountId, String pCustomerPassword) throws NSIWholesaleException { return modifyIndividualAccount( pCustomerAccountId, pCustomerPassword, new Properties(, 0); * This method is used to modify one or more attributes * of an existing individual customer account. * <BR><PRE> Optional Attribute Key(s): ATTR CUSTOMER-PASSWORD ATTRFIRSTNAME ATTRLASTNAME ATTRADDRESS1 ATTRADDRESS2 ATTR ADDRESS3 ATTRADDRESS4 ATTRADDRESS5 ATTRCITY ATTR STATE ATTR POSTAL CODE ATTR COUNTRY CODE ATTR PHONE ATTRFAX - 101- WO 01/20484 PCT/USOO/25305 ATTR EMAIL ATTR AUTHQUESTION ATTRAUTHANSWER Expected Major Result Code: COMMANDEXECUTION SUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#COMBO MODIFYINDIVIDUALACCOUNT * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * * @see NSIWholesaleAPI#ATTR CUSTOMER-PASSWORD * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST NAME * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR ADDRESS2 * @see NSIWholesaleAPI#ATTR ADDRESS3 * @see NSIWholesaleAPI#ATTR ADDRESS4 * @see NSIWholesaleAPI#ATTRADDRESS5 * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTR POSTAL-CODE * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR FAX * @see NSIWholesaleAPI#ATTR EMAIL * @see NSIWholesaleAPI#ATTR AUTHQUESTION * @see NSIWholesaleAPI#ATTRAUTHANSWER * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse modi.fyIndividualAccount( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) throws NSIWholesaleException { return modifyIndividualAccount( pCustomerAccountId, pCustomerPassword, optionalAttributes, 0); protected WSPResponse modifyIndividualAccount( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes, - 102- WO 01/20484 PCT/USOO/25305 int count) throws NSIWholesaleException String methodName = className + ".modifyIndividualAccount(String, String, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkouto; Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); returnCode = conn.makeRequest(COMBOMODIFYINDIVIDUALACCOUNT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) { try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally return modifyIndividualAccount( pCustomerAccountId, pCustomerPassword, optionalAttributes, count + 1); } } } * This method is used to modify one or more attributes * of an existing business (organization) customer account. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @return the Wholesale Server Protocol Server response -103- WO 01/20484 PCT/USOO/25305 * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBO MODIFYBUSINESSACCOUNT * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * * @see NSIWholesaleAPI#ATTRCUSTOMERPASSWORD * @see NSIWholesaleAPI#ATTR COMPANY NAME * @see NSIWholesaleAPI#ATTRCOMPANY TYPE * @see NSIWholesaleAPI#ATTRADDRESS1 * @see NSIWholesaleAPI#ATTRADDRESS2 * @see NSIWholesaleAPI#ATTRADDRESS3 * @see NSIWholesaleAPI#ATTRADDRESS4 * @see NSIWholesaleAPI#ATTRADDRESS5 * @see NSIWholesaleAPI#ATTRCITY * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTRPOSTALCODE * @see NSIWholesaleAPI#ATTRCOUNTRYCODE * @see NSIWholesaleAPI#ATTRPHONE * @see NSIWholesaleAPI#ATTRFAX * @see NSIWholesaleAPI#ATTREMAIL * @see NSIWholesaleAPI#ATTRAUTHQUESTION * @see NSIWholesaleAPI#ATTR -AUTH ANSWER * @see NSIWholesaleAPI#ATTRLEGALCONTACTFIRSTNAME * @see NSIWholesaleAPI#ATTRLEGALCONTACTLASTNAME * @see NSIWholesaleAPI#ATTRLEGALCONTACTADDRESS1 * @see NSIWholesaleAPI#ATTR_-LEGALCONTACTADDRESS2 * @see NSIWholesaleAPI#ATTRLEGALCONTACTADDRESS3 * @see NSIWholesaleAPI#ATTR_-LEGALCONTACTADDRESS4 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS5 * @see NSIWholesaleAPI#ATTR_-LEGALCONTACTCITY * @see NSIWholesaleAPI#ATTRLEGALCONTACTSTATE * @see NSIWholesaleAPI#ATTR_-LEGALCONTACTPOSTALCODE * @see NSIWholesaleAPI#ATTRLEGALCONTACTCOUNTRYCODE * @see NSIWholesaleAPI#ATTR_-LEGALCONTACTPHONE * @see NSIWholesaleAPI#ATTRLEGALCONTACTFAX * @see NSIWholesaleAPI#ATTR LEGAL CONTACT FAX * " @see WSPResponse#GENERAL_-ACCESS_-DENIED " @see WSPResponse#INVALIDVALUE " @see WSPResponse#COMMANDEXECUTIONSUCCEEDED NO DATA BEINGRETURNED * public WSPResponse modifyBusinessAccount( String pCustomerAccountld, String pCustomerPassword) throws NSIWholesaleException return modifyBusinessAccount( pCustomerAccount Id, pCustomerPas sword, new Propertieso, 0); * *This method is used to modify one or more attributes - 104- WO 01/20484 PCT/USOO/25305 * of an existing business (organization) customer.account. * <BR><PRE> Optional Attribute Key(s): ATTR CUSTOMER PASSWORD ATTR COMPANY NAME ATTRCOMPANYTYPE ATTR ADDRESS ATTR ADDRESS2 ATTR ADDRESS3 ATTR ADDRESS4 ATTR ADDRESS5 ATTR CITY ATTR STATE ATTRPOSTALCODE ATTR COUNTRY CODE ATTR PHONE ATTR FAX ATTR EMAIL ATTR AUTHQUESTION ATTR AUTH ANSWER ATTR LEGALCONTACTFIRSTNAME ATTR LEGALCONTACTLASTNAME ATTR LEGALCONTACTADDRESS1 ATTR LEGALCONTACTADDRESS2 ATTR LEGALCONTACTADDRESS3 ATTR LEGALCONTACTADDRESS4 ATTR LEGALCONTACTADDRESS5 ATTR LEGALCONTACTCITY ATTR LEGALCONTACTSTATE ATTR LEGALCONTACTPOSTALCODE ATTR LEGALCONTACTCOUNTRYCODE ATTR LEGALCONTACTPHONE ATTR LEGALCONTACTFAX ATTRLEGALCONTACTEMAIL Expected Major Result Code: COMMAND EXECUTIONSUCCEEDEDNODATA BEING RETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMANDMODIFY * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBOMODIFYBUSINESSACCOUNT * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * * @see NSIWholesaleAPI#ATTR CUSTOMER-PASSWORD * @see NSIWholesaleAPI#ATTR COMPANY NAME * @see NSIWholesaleAPI#ATTR COMPANY TYPE * @see NSIWholesaleAPI#ATTRADDRESS1 * @see NSIWholesaleAPI#ATTR ADDRESS2 * @see NSIWholesaleAPI#ATTRADDRESS3 * @see NSIWholesaleAPI#ATTR ADDRESS4 - 105- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#ATTR ADDRESS5 * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTR STATE * @see NSIWholesaleAPI#ATTR POSTAL CODE * @see NSIWholesaleAPI#ATTRCOUNTRYCODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTRFAX * @see NSIWholesaleAPI#ATTR EMAIL * @see NSIWholesaleAPI#ATTR AUTHQUESTION * @see NSIWholesaleAPI#ATTR AUTH ANSWER * @see NSIWholesaleAPI#ATTR LEGALCONTACTFIRSTNAME * @see NSIWholesaleAPI#ATTRLEGALCONTACTLASTNAME * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS1 * @see NSIWholesaleAPI#ATTRLEGALCONTACTADDRESS2 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS3 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS4 * @see NSIWholesaleAPI#ATTR LEGAL CONTACT ADDRESS * @see NSIWholesaleAPI#ATTR LEGALCONTACTCITY * @see NSIWholesaleAPI#ATTRLEGALCONTACTSTATE * @see NSIWholesaleAPI#ATTR LEGALCONTACTPOSTALCODE * @see NSIWholesaleAPI#ATTRLEGALCONTACTCOUNTRYCODE * @see NSIWholesaleAPI#ATTR LEGAL CONTACT PHONE * @see NSIWholesaleAPI#ATTR LEGALCONTACTFAX * @see NSIWholesaleAPI#ATTR LEGAL CONTACT FAX * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse modifyBusinessAccount( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) throws NSIWholesaleException { return modifyBusinessAccount( pCustomerAccountId, pCustomerPassword, optionalAttributes, 0); } protected WSPResponse modifyBusinessAccount( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".modifyBusinessAccount(String, String, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try -106- WO 01/20484 PCT/USOO/25305 conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); returnCode = conn.makeRequest(COMBOMODIFYBUSINESSACCOUNT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally return modifyBusinessAccount( pCustomerAccountId, pCustomerPassword, optionalAttributes, count + 1); } } * This method is used to modify one or more attributes * of an existing technical contact. * <BR><PRE> Expected Maj.or Result Code: COMMAND EXECUTION SUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pTechContactId the parameter value * @param pTechContactPassword the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS TECHNICAL-CONTACT * @see NSIWholesaleAPI#COMBO MODIFY TECHNICAL CONTACT * @see NSIWholesaleAPI#PARM TECH CONTACT ID * @see NSIWholesaleAPI#PARMTECHCONTACTPASSWORD * * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTRLASTNAME * @see NSIWholesaleAPI#ATTRORGANIZATION * @see NSIWholesaleAPI#ATTR ADDRESS1 * @see NSIWholesaleAPI#ATTR CITY * @see NSIWholesaleAPI#ATTRSTATE - 107- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#ATTR POSTAL-CODE * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTRPHONE * @see NSIWholesaleAPI#ATTR FAX * @see NSIWholesaleAPI#ATTREMAIL * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED */ public WSPResponse modifyTechnicalContact( String pTechContactId, String pTechContactPassword) throws NSIWholesaleException { return modifyTechnicalContact( pTechContactId, pTechContactPassword, - new Properties(), 0); * This method is used to modify one or more attributes * of an existing technical contact. * <BR><PRE> Optional Attribute Key(s): ATTRFIRSTNAME ATTRLASTNAME ATTR ORGANIZATION ATTRADDRESS1 ATTRCITY ATTRSTATE ATTRPOSTALCODE ATTR COUNTRY CODE ATTREMAIL ATTR FAX ATTRPHONE Expected Major Result Code: COMMAND EXECUTION SUCCEEDED NO DATABEINGRETURNED * </PRE><BR> * @param pTechContactId the parameter value * @param pTechContactPassword the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS TECHNICAL CONTACT * @see NSIWholesaleAPI#COMBO MODIFYTECHNICALCONTACT * @see NSIWholesaleAPI#PARM TECH CONTACT ID * @see NSIWholesaleAPI#PARMTECHCONTACTPASSWORD * * @see NSIWholesaleAPI#ATTR FIRST NAME * @see NSIWholesaleAPI#ATTR LAST NAME * @see NSIWholesaleAPI#ATTR ORGANIZATION * @see NSIWholesaleAPI#ATTRADDRESS1 - 108- WO 01/20484 PCT/USOO/25305 . @see NSIWholesaleAPI#ATTRCITY * @see NSIWholesaleAPI#ATTRSTATE * @see NSIWholesaleAPI#ATTRPOSTALCODE * @see NSIWholesaleAPI#ATTR COUNTRY CODE * @see NSIWholesaleAPI#ATTR PHONE * @see NSIWholesaleAPI#ATTR FAX * @see NSIWholesaleAPI#ATTREMAIL * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#INVALIDVALUE * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse modifyTechnicalContact( String pTechContactId, String pTechContactPassword, Properties optionalAttributes) throws NSIWholesaleException { return modifyTechnicalContact( pTechContactId, pTechContactPassword, optionalAttributes, 0); } protected WSPResponse modifyTechnicalContact( String pTechContactId, String pTechContactPassword, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".modifyTechnicalContact(String, String, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMTECHCONTACTID, pTechContactId); allParmsAndAttrs.put(PARMTECHCONTACTPASSWORD, pTechContactPassword); returnCode = conn.makeRequest(COMBOMODIFYTECHNICALCONTACT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); -109- WO 01/20484 PCT/USOO/25305 } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); 5 } finally { return modifyTechnicalContact( pTechContact Id, pTechContactPassword, 0 optionalAttributes, count + 1); } } } 5 * This method is used to modify/reset a customer's account password. * <BR><PRE> 0 Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value * @param aCustomerPassword the attribute value 5 * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS PASSWORD 0 * @see NSIWholesaleAPI#COMBO MODIFY-PASSWORD * @see NSIWholesaleAPI#PARM CUSTOMERACCOUNTID * @see NSIWholesaleAPI#ATTR CUSTOMER PASSWORD * * @see WSPResponse#GENERALACCESSDENIED 5 * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse modifyPassword( String pCustomerAccountId, 0 String aCustomerPassword) throws NSIWholesaleException return modifyPassword( pCustomerAccountId, aCustomerPassword, 5 new Propertieso, 0); } * This method is used to modify/reset a customer's account password. 0 * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * </PRE><BR> * @param pCustomerAccountId the parameter value 5 * @param aCustomerPassword the attribute value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response -110- WO 01/20484 PCT/USOO/25305 * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND MODIFY * @see NSIWholesaleAPI#CLASS PASSWORD * @see NSIWholesaleAPI#COMBO MODIFY-PASSWORD * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#ATTRCUSTOMERPASSWORD * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * public WSPResponse modifyPassword( String pCustomerAccountId, String aCustomerPassword, Properties optionalAttributes) throws NSIWholesaleException { return modifyPassword( pCustomerAccountId, aCustomerPassword, optionalAttributes, 0); } protected WSPResponse modifyPassword( String pCustomerAccountId, String aCustomerPassword, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".modifyPassword(String, String, Properties, int) "; if (count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(; Properties allParmsAndAttrs = new Propertieso); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNT_ID, pCustomerAccountId); allParmsAndAttrs.put(ATTRCUSTOMERPASSWORD, aCustomerPassword); returnCode = conn.makeRequest(COMBOMODIFYPASSWORD, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) try { pool.release(conn); - 111- WO 01/20484 PCT/USOO/25305 } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); 5 } finally { return modifyPassword( pCustomerAccountId, aCustomerPassword, 0 optionalAttributes, count + 1); } } } 5 * This method is used to generate a list of available * domain names based on a specified list of keywords. * <BR><PRE> 0 Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: DomainNameO: DomainNamel: 5 DomainName2: DomainName3: ...etc... * </PRE><BR> * @param pKeyWords the parameter value 0 * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND GENERATE * @see NSIWholesaleAPI#CLASS DOMAIN NAME 5 * @see NSIWholesaleAPI#COMBO GENERATEDOMAINNAME * @see NSIWholesaleAPI#PARMKEYWORDS * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see 0 WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse generateDomainName( String pKeyWords) 5 throws NSIWholesaleException return generateDomainName( pKeyWords, new Propertieso, 0); o ) * This method is used to generate a list of available * domain names based on a specified list of keywords. * <BR><PRE> 5 Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: -112- WO 01/20484 PCT/USOO/25305 DomainNameO: DomainNamel: DomainName2: DomainName3: ...etc... * </PRE><BR> * @param pKeyWords the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND GENERATE * @see NSIWholesaleAPI#CLASS DOMAIN NAME * @see NSIWholesaleAPI#COMBO GENERATE DOMAIN-NAME * @see NSIWholesaleAPI#PARMKEYWORDS * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED */ public WSPResponse generateDomainName( String pKeyWords, Properties optionalAttributes) throws NSIWholesaleException { return generateDomainName( pKeyWords, optionalAttributes, 0); ) } protected WSPResponse generateDomainName( String pKeyWords, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".generateDomainName(String, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMKEYWORDS, pKeyWords); returnCode = conn.makeRequest(COMBOGENERATEDOMAINNAME, allParmsAndAttrs); pool.checkIn(conn); return returnCode; -113- WO 01/20484 PCT/USOO/25305 ) catch (Exception e) try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally return generateDomainName( pKeyWords, optionalAttributes, count + 1); }} * Retrieves a list of all domain products owned by customer. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: DomainNamel: DomainName2: DomainName3: ...etc... * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO LOOKUP-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD ) * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupDomain( String pCustomerAccountId, String pCustomerPassword) throws NSIWholesaleException { return lookupDomain( pCustomerAccountId, pCustomerPassword, new Properties(, 0); } - 114- WO 01/20484 PCT/USOO/25305 * Retrieves a list of all domain products owned by customer. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: DomainNamel: DomainName2: DomainName3: ...etc... * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * oparam optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO LOOKUP-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupDomain( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) throws NSIWholesaleException return lookupDomain( pCustomerAccountId, pCustomerPassword, optionalAttributes, 0); } protected WSPResponse lookupDomain( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".lookupDomain(String, String, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkout(; Properties allParmsAndAttrs = new Properties(; -115- WO 01/20484 PCT/USOO/25305 // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); returnCode = conn.makeRequest(COMBOLOOKUPDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally { return lookupDomain( pCustomerAccountId, pCustomerPassword, optionalAttributes, count + 1); }} * Retrieves detail information about a specific domain product * registered to a customer. This form of the lookup domain * command will also retrieve the status of the domain while * it is being processed or after it has failed. * <BR><PRE> Expected Major Result Code: COMMAND EXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRDOMAINNAME ATTRTECHCONTACTID ATTR HOSTNAME1 ATTRHOSTADDR1 ATTRHOSTID1 ATTRHOSTNAME2 ATTRHOSTADDR2 ATTR HOSTID2 * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param pDomainName the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMANDLOOKUP - 116- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#CLASSDOMAIN * @see NSIWholesaleAPI#COMBOLOOKUPDOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM CUSTOMER PASSWORD * @see NSIWholesaleAPI#PARMDOMAINNAME * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#OBJECTNOTFOUND * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED * public WSPResponse lookupDomain( String pCustomerAccountId, String pCustomerPassword, String pDomainName) throws NSIWholesaleException return lookupDomain( pCustomerAccountId, pCustomerPassword, pDomainName, new Properties(), 0); * Retrieves detail information about a specific domain product * registered to a customer. This form of the lookup domain * command will also retrieve the status of the domain while * it is being processed or after it has failed. * <BR><PRE> Expected Major Result Code: COMMAND EXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRDOMAINNAME ATTRTECHCONTACTID ATTRHOSTNAMEl ATTRHOSTADDR1 ATTR HOSTID1 ATTRHOSTNAME2 ATTRHOSTADDR2 ATTR HOSTID2 * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param pDomainName the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO LOOKUP-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM CUSTOMER PASSWORD * @see NSIWholesaleAPI#PARMDOMAIN NAME * - 117- WO 01/20484 PCT/USOO/25305 * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#OBJECTNOTFOUND * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED * public WSPResponse lookupDomain( String pCustomerAccountId, String pCustomerPassword, String pDomainName, Properties optionalAttributes) throws NSIWholesaleException return lookupDomain( pCustomerAccountId, pCustomerPassword, pDomainName, optionalAttributes, 0); } protected WSPResponse lookupDomain( String pCustomerAccountId, String pCustomerPassword, String pDomainName, Properties optionalAttributes, int count) throws NSIWholesaleException ( String methodName = className + ".lookupDomainCString, String, String, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOuto; Properties allParmsAndAttrs = new Propertieso; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); allParmsAndAttrs.put(PARMDOMAINNAME, pDomainName); returnCode = conn.makeRequest(COMBOLOOKUPDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); } - 118- WO 01/20484 PCT/USOO/25305 catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); } finally { return lookupDomain( pCustomerAccountId, pCustomerPassword, pDomainName, optionalAttributes, count + 1); } } } * Retrieves a list of the customer's domain products * for which the technical contact id is the technical contact. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: DomainNamel: DomainName2: DomainName3: ...etc... * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pTechContactId the parameter value * @param pTechContactPassword the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO LOOKUP-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM TECH CONTACT ID * @see NSIWholesaleAPI#PARMTECHCONTACTPASSWORD * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupDomainByTechContact( String pCustomerAccountId, String pTechContactId, String pTechContactPassword) throws NSIWholesaleException { return lookupDomainByTechContact( pCustomerAccountId, pTechContactId, pTechContactPassword, new Properties(), - 119- WO 01/20484 PCT/USOO/25305 0) } * Retrieves a list of the customer's domain products * for which the technical contact id is the technical contact. * <BR><PRE> Expected Major Result Code: COMMAND EXECUTION SUCCEEDED PROPERTIES BEINGRETURNED Expected Result Property Key(s) Returned: DomainNamel: DomainName2: DomainName3: ...etc... * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pTechContactId the parameter value * @param pTechContactPassword the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO LOOKUP-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM TECH CONTACT ID * @see NSIWholesaleAPI#PARMTECHCONTACTPASSWORD * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupDomainByTechContact( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, Properties optionalAttributes) throws NSIWholesaleException { return lookupDomainByTechContact( pCustomerAccountId, pTechContactId, pTechContactPassword, optionalAttributes, 0); } protected WSPResponse lookupDomainByTechContact( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + ".lookupDomainByTechContact(String, String, String, Properties, int) "; if (count > retry) { - 120- WO 01/20484 PCT/USOO/25305 throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMTECHCONTACTID, pTechContactId); allParmsAndAttrs.put(PARMTECHCONTACTPASSWORD, pTechContactPassword); returnCode = conn.makeRequest(COMBOLOOKUPDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) { try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally { return lookupDomainByTechContact( pCustomerAccountId, pTechContactId, pTechContactPassword, optionalAttributes, count + 1); } D } 5 * Retrieves details of a specific domain product owned by customer, * for which the technical contact id is the technical contact for * the specific product. * <BR><PRE> Expected Major Result Code: 0 COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRDOMAINNAME ATTRTECHCONTACTID ATTR HOSTNAMEl 5 ATTRHOSTADDR1 ATTRHOSTID1 ATTRHOSTNAME2 - 121- WO 01/20484 PCT/USOO/25305 ATTR HOSTADDR2 ATTRHOST ID2 * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pTechContactId the parameter value * @param pTechContactPassword the parameter value * @param pDomainName the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO LOOKUP-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARM TECH CONTACT ID * @see NSIWholesaleAPI#PARM TECHCONTACTPASSWORD * @see NSIWholesaleAPI#PARM DOMAIN NAME * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED * public WSPResponse lookupDomainByTechContact( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName) throws NSIWholesaleException { return lookupDomainByTechContact( pCustomerAccountId, pTechContactId, pTechContactPassword, pDomainName, new Properties(, 0); } * Retrieves details of a specific domain product owned by customer, * for which the technical contact id is the technical contact for * the specific product. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRDOMAINNAME ATTRTECHCONTACTID ATTR HOSTNAME1 ATTRHOSTADDR1 ATTRHOSTID1 ATTRHOSTNAME2 ATTRHOSTADDR2 ATTR HOSTID2 * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pTechContactId the parameter value - 122- WO 01/20484 PCT/USOO/25305 * @param pTechContactPassword the parameter value * @param pDomainName the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS DOMAIN * @see NSIWholesaleAPI#COMBO LOOKUP-DOMAIN * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNTID * @see NSIWholesaleAPI#PARM TECHCONTACTID * @see NSIWholesaleAPI#PARM TECHCONTACTPASSWORD * @see NSIWholesaleAPI#PARMDOMAINNAME * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED * public WSPResponse lookupDomainByTechContact( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, String pDomainName, Properties optionalAttributes) throws NSIWholesaleException { return lookupDomainByTechContact( pCustomerAccountId, pTechContactId, pTechContactPassword, pDomainName, optionalAttributes, 0); 5 ) protected WSPResponse lookupDomainByTechContact( String pCustomerAccountId, String pTechContactId, String pTechContactPassword, 3 String pDomainName, Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + 5 ".lookupDomainByTechContact(StringX4, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } 0 NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); 5 Properties allParmsAndAttrs = new Properties(; // put optional attributes -123- WO 01/20484 PCT/USOO/25305 propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMTECHCONTACTID, pTechContactId); allParmsAndAttrs.put(PARMTECHCONTACTPASSWORD, pTechContactPassword); allParmsAndAttrs.put (PARMDOMAINNAME, pDomainName); returnCode = conn.makeRequest(COMBOLOOKUPDOMAIN, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) { try { pool.release(conn); I catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); } finally { return lookupDomainByTechContact( pCustomerAccountId, pTechContactId, pTechContactPassword, pDomainName, optionalAttributes, count +-1); }} * Retrieves a list of all domain names associated with * DNS Hosting products owned by customer. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: DomainNamel: DomainName2: DomainName3: ...etc... * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NS.IWholesaleAPI#COMMANDLOOKUP * @see NSIWholesaleAPI#CLASS DNS HOSTING * @see NSIWholesaleAPI#COMBO LOOKUP DNS HOSTING * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMER PASSWORD * - 124- WO 01/20484 PCT/USOO/25305 * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupDnsHosting( String pCustomerAccountId, String pCustomerPassword) throws NSIWholesaleException { return lookupDnsHosting( pCustomerAccountId, pCustomerPassword, new Properties(, 0); } * Retrieves a list of all domain names associated with * DNS Hosting products owned by customer. * <BR><PRE> Expected Major Result Code: COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED Expected Result Property Key(s) Returned: DomainNamel: DomainName2: DomainName3: ...etc ... * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS DNS HOSTING * @see NSIWholesaleAPI#COMBOLOOKUPDNSHOSTING * @see NSIWholesaleAPI#PARM CUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupDnsHosting( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) throws NSIWholesaleException { return lookupDnsHosting( pCustomerAccountId, pCustomerPassword, optionalAttributes, 0); - 125- WO 01/20484 PCT/USOO/25305 protected WSPResponse lookupDnsHosting( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".lookupDnsHosting(String, String, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs .put (PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs .put (PARMCUSTOMERPASSWORD, pCustomerPassword); returnCode = conn.makeRequest (COMBOLOOKUPDNSHOSTING, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); ) } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally { return lookupDnsHosting( pCustomerAccountId, pCustomerPassword, optionalAttributes, count + 1); } } * Retrieves details of a specific * DNS Hosting product owned by customer. * Used to verify a domain name is part of a DNS Hosting Product 5 * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDED PROPERTIESBEINGRETURNED - 126- WO 01/20484 PCT/USOO/25305 Expected Result Property Key.(s) Returned: ATTRDOMAINNAME * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param pDomainName the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMANDLOOKUP * @see NSIWholesaleAPI#CLASS DNS HOSTING * @see NSIWholesaleAPI#COMBOLOOKUPDNSHOSTING * @see NSIWholesaleAPI#PARMCUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * @see NSIWholesaleAPI#PARMDOMAINNAME * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#OBJECTNOTFOUND * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED * public WSPResponse lookupDnsHosting( String pCustomerAccountId, String pCustomerPassword, String pDomainName) throws NSIWholesaleException { return lookupDnsHosting( pCustomerAccountId, pCustomerPassword, pDomainName, new Properties(, 0); * Retrieves details of a specific * DNS Hosting product owned by customer. * Used to verify a domain name is part of a DNS Hosting Product * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR DOMAINNAME * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param pDomainName the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMANDLOOKUP * @see NSIWholesaleAPI#CLASSDNSHOSTING * @see NSIWholesaleAPI#COMBOLOOKUPDNSHOSTING * @see NSIWholesaleAPI#PARMCUSTOMERACCOUNTID * @see NSIWholesaleAPI#PARMCUSTOMER PASSWORD - 127- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#PARMDOMAINNAME * * @see WSPResponse#GENERAL ACCESS DENIED * @see WSPResponse#OBJECTNOTFOUND * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED * public WSPResponse lookupDnsHosting( String pCustomerAccountId, String pCustomerPassword, String pDomainName, Properties optionalAttributes) throws NSIWholesaleException { return lookupDnsHosting( pCustomerAccountId, pCustomerPassword, pDomainName, optionalAttributes, 0); protected WSPResponse lookupDnsHosting( String pCustomerAccountId, String pCustomerPassword, String pDomainName, Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + ".lookupDnsHosting(String, String, String, Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); I NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs .put (PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs .put (PARM_CUSTOMERPASSWORD, pCustomerPassword); allParmsAndAttrs .put (PARM_DOMAINNAME, pDomainName); returnCode = conn.makeRequest (COMBOLOOKUPDNSHOSTING, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) { try { - 128- WO 01/20484 PCT/USOO/25305 pool.release(conn); } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); } finally { return lookupDnsHosting( pCustomerAccountId, pCustomerPassword, pDomainName, optionalAttributes, count + 1); } } * Retrieves a list of all individual accounts linked to a wholesaler. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: CustomerAccountId1: CustomerAccountId2: CustomerAccountId3: ... etc ... * </PRE><BR> * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASSINDIVIDUALACCOUNT * @see NSIWholesaleAPI#COMBO LOOKUP INDIVIDUAL ACCOUNT * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupIndividualAccount() throws NSIWholesaleException { return lookupIndividualAccount( new Propertieso), 0); * Retrieves a list of all individual accounts linked to a wholesaler. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: CustomerAccountId1: CustomerAccountId2: CustomerAccountId3: .. .etc ... - 129- WO 01/20484 PCT/USOO/25305 * </PRE><BR> * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#COMBO LOOKUP INDIVIDUAL ACCOUNT * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupIndividualAccount( Properties optionalAttributes) throws NSIWholesaleException { return lookupIndividualAccount( optionalAttributes, 0); } protected WSPResponse lookupIndividualAccount( Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".lookupIndividualAccount(Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(; // put optional attributes .propertiesCat(allParmsAndAttrs, optionalAttributes); returnCode = conn.makeRequest(COMBOLOOKUPINDIVIDUALACCOUNT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) { try { pool.release(conn); } catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); } finally return lookupIndividualAccount( optionalAttributes, count + 1); -130- WO 01/20484 PCT/USOO/25305 * Retrieves details of a specific individual customer account. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTR FIRST-NAME ATTR LAST NAME ATTR PHONE ATTR AUTHQUESTION ATTR AUTHANSWER ATTR FAX ATTR EMAIL ATTR ADDRESS1 ATTR ADDRESS2 ATTR ADDRESS3 ATTR ADDRESS4 ATTR ADDRESS5 ATTR CITY ATTR STATE ATTRPOSTALCODE ATTRCOUNTRYCODE * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#COMBO LOOKUP INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupIndividualAccount( String pCustomerAccountId, String pCustomerPassword) throws NSIWholesaleException { return lookupIndividualAccount( pCustomerAccountId, pCustomerPassword, new Properties(, 0); * Retrieves details of a specific individual customer account. * <BR><PRE> - 131- WO 01/20484 PCT/USOO/25305 Expected Major Result Code: COMMAND EXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRFIRSTNAME ATTR LAST NAME ATTRPHONE ATTR AUTHQUESTION ATTR AUTHANSWER ATTRFAX ATTR EMAIL ATTRADDRESS1 ATTR ADDRESS2 ATTR ADDRESS3 ATTRADDRESS4 ATTR ADDRESS5 ATTRCITY ATTR STATE ATTR POSTAL CODE ATTR COUNTRY-CODE * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS INDIVIDUAL ACCOUNT * @see NSIWholesaleAPI#COMBO LOOKUPINDIVIDUALACCOUNT * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupIndividualAccount( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) throws NSIWholesaleException { return lookupIndividualAccount( pCustomerAccountId, pCustomerPassword, optionalAttributes, 0); } protected WSPResponse lookupIndividualAccount( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + ".lookupIndividualAccount(String, String, Properties, int) "; if (count > retry) { - 132- WO 01/20484 PCT/USOO/25305 throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); returnCode = conn.makeRequest(COMBOLOOKUPINDIVIDUALACCOUNT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); I finally return lookupIndividualAccount( pCustomerAccountId, pCustomerPassword, optionalAttributes, count + 1); } } * Retrieves a list of all business customer accounts linked to wholesaler. * <BR><PRE> Expected Major Result Code: COMMAND EXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: CustomerAccountId1: CustomerAccountId2: CustomerAccountId3: ...etc... * </PRE><BR> * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command -133- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#COMMANDLOOKUP * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBO LOOKUP BUSINESS ACCOUNT * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupBusinessAccount() throws NSIWholesaleException { return lookupBusinessAccount( new Propertieso, 0); } * Retrieves a list of all business customer accounts linked to wholesaler. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: CustomerAccountIdl: CustomerAccountId2: CustomerAccountId3: ...etc ... * </PRE><BR> * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBOLOOKUPBUSINESSACCOUNT * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDNODATABEINGRETURNED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupBusinessAccount( Properties optionalAttributes) throws NSIWholesaleException { return lookupBusinessAccount( optionalAttributes, 0); protected WSPResponse lookupBusinessAccount( Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + " .lookupBusinessAccount (Properties, int) " ; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } - 134- WO 01/20484 PCT/USOO/25305 NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); returnCode = conn.makeRequest(COMBOLOOKUPBUSINESSACCOUNT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) { try { pool.release(conn); } catch (ResourceException re) System.err.println(methodName + "u ResourceException" + re); finally return lookupBusinessAccount( 5 optionalAttributes, count + 1); } } * Retrieves details of a specific business customer account. * <BR><PRE> 5 Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRCOMPANYNAME ATTR COMPANY-TYPE 0 ATTREMAIL ATTR PHONE ATTRFAX ATTRADDRESS1 ATTR ADDRESS2 5 ATTRADDRESS3 ATTRADDRESS4 ATTRADDRESS5 ATTRCITY ATTR STATE 0 ATTRPOSTALCODE ATTRCOUNTRYCODE ATTRLEGALCONTACTFIRSTNAME ATTRLEGALCONTACTLAST NAME ATTR LEGALCONTACTPHONE i5 ATTRLEGALCONTACTFAX ATTRLEGALCONTACTEMAIL ATTR LEGALCONTACTCITY - 135- WO 01/20484 PCT/USOO/25305 ATTR LEGAL CONTACT STATE ATTR LEGAL CONTACT POSTAL CODE ATTR LEGAL CONTACT COUNTRY CODE ATTR LEGAL CONTACT ADDRESS1 ATTRLEGALCONTACTADDRESS2 ATTRLEGALCONTACTADDRESS3 ATTR LEGAL CONTACT ADDRESS4 ATTRLEGALCONTACTADDRESS5 * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBO LOOKUP BUSINESS ACCOUNT * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARMCUSTOMERPASSWORD * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupBusinessAccount( String pCustomerAccountId, String pCustomerPassword) throws NSIWholesaleException { return lookupBusinessAccount( pCustomerAccountId, pCustomerPassword, new Properties(, 0); * Retrieves details of a specific business customer account. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRCOMPANYNAME ATTRCOMPANYTYPE ATTR EMAIL ATTRPHONE ATTRFAX ATTRADDRESS1 ATTRADDRESS2 ATTR ADDRESS3 ATTRADDRESS4 ATTRADDRESSS ATTRCITY ATTRSTATE ATTRPOSTALCODE ATTRCOUNTRYCODE ATTRLEGALCONTACTFIRSTNAME ATTRLEGALCONTACT LASTNAME - 136- WO 01/20484 PCT/USOO/25305 ATTR LEGAL CONTACT PHONE ATTR LEGAL CONTACT FAX ATTRLEGALCONTACTEMAIL ATTRLEGALCONTACTCITY ATTR LEGALCONTACTSTATE ATTRLEGALCONTACTPOSTALCODE ATTR LEGALCONTACTCOUNTRYCODE ATTR LEGALCONTACTADDRESS1 ATTR LEGALCONTACTADDRESS2 ATTR LEGALCONTACTADDRESS3 ATTRLEGALCONTACTADDRESS4 ATTRLEGALCONTACTADDRESS5 * </PRE><BR> * @param pCustomerAccountId the parameter value * @param pCustomerPassword the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS BUSINESS ACCOUNT * @see NSIWholesaleAPI#COMBO LOOKUPBUSINESSACCOUNT * @see NSIWholesaleAPI#PARM CUSTOMER ACCOUNT ID * @see NSIWholesaleAPI#PARM CUSTOMER PASSWORD > * * @see WSPResponse#GENERALACCESSDENIED * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupBusinessAccount( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes) throws NSIWholesaleException { return lookupBusinessAccount( pCustomerAccountId, pCustomerPassword, optionalAttributes, 0); protected WSPResponse lookupBusinessAccount( String pCustomerAccountId, String pCustomerPassword, Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".lookupBusinessAccount(String, String, Properties, int) "; if (count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); NSIWholesaleConnection conn = null; WSPResponse returnCode; try { - 137- WO 01/20484 PCT/USOO/25305 conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMCUSTOMERACCOUNTID, pCustomerAccountId); allParmsAndAttrs.put(PARMCUSTOMERPASSWORD, pCustomerPassword); returnCode = conn.makeRequest(COMBOLOOKUPBUSINESSACCOUNT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) { try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally return lookupBusinessAccount( pCustomerAccountId, pCustomerPassword, optionalAttributes, count + 1); } } * Retrieves details of a specific technical contact. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTION SUCCEEDED PROPERTIESBEINGRETURNED Expected Result Property Key(s) Returned: ATTRORGANIZATION ATTRPHONE ATTR FAX ATTREMAIL ATTRADDRESS1 ATTRCITY ATTRSTATE ATTRPOSTALCODE ATTR COUNTRYCODE * </PRE><BR> * @param pTechContactId the parameter value * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS TECHNICAL CONTACT * @see NSIWholesaleAPI#COMBO LOOKUP TECHNICAL CONTACT - 138- WO 01/20484 PCT/USOO/25305 * @see NSIWholesaleAPI#PARMTECHCONTACTID * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupTechnicalContact( String pTechContactId) throws NSIWholesaleException return lookupTechnicalContact( pTechContactId, new Propertieso, 0); * Retrieves details of a specific technical contact. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEING RETURNED Expected Result Property Key(s) Returned: ATTR ORGANIZATION ATTR PHONE ATTRFAX ATTR EMAIL ATTR ADDRESS1 ATTR CITY ATTR STATE ATTR POSTAL CODE ATTR COUNTRY-CODE * </PRE><BR> * @param pTechContactId the parameter value * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMAND LOOKUP * @see NSIWholesaleAPI#CLASS TECHNICAL CONTACT * @see NSIWholesaleAPI#COMBO LOOKUP TECHNICAL-CONTACT * @see NSIWholesaleAPI#PARMTECHCONTACTID ) * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED * public WSPResponse lookupTechnicalContact( String pTechContactId, Properties optionalAttributes) throws NSIWholesaleException { return lookupTechnicalContact( pTechContactId, optionalAttributes, 0); protected WSPResponse lookupTechnicalContact( String pTechContactId, Properties optionalAttributes, int count) - 139- WO 01/20484 PCT/USOO/25305 throws NSIWholesaleException { String methodName = className + ".lookupTechnicalContact(String, Properties, int) "; if (count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(); // put optional attributes propertiesCat (allParmsAndAttrs, optionalAttributes); allParmsAndAttrs.put(PARMTECHCONTACTID, pTechContactId); returnCode = conn .makeRequest (COMBOLOOKUPTECHNICALCONTACT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally { return lookupTechnicalContact( pTechContact Id, optionalAttributes, count + 1); } } * This method returns basic information about the supported * protocol commands and classes. 5 * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED Expected Text Returned: ...The Help Text... ) Expected Result Property Key(s) Returned: textl: text2: text3: ...etc... 5 * </PRE><BR> * @return the Wholesale Server Protocol Server response -140- WO 01/20484 PCT/USOO/25305 * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see WSPResponse#getProperties * @see NSIWholesaleAPI#COMMANDHELP * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED * public WSPResponse help() throws NSIWholesaleException return help( new Properties(), 0); * This method returns basic information about the supported * protocol commands and classes. * <BR><PRE> Expected Major Result Code: COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED Expected Text Returned: ..The Help Text... Expected Result Property Key(s) Returned: textl: text2: text3: ...etc... * </PRE><BR> * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see WSPResponse#getProperties * @see NSIWholesaleAPI#COMMANDHELP * * @see WSPResponse#COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED * public WSPResponse help( Properties optionalAttributes) throws NSIWholesaleException return help( optionalAttributes, 0); } protected WSPResponse help( Properties optionalAttributes, int count) throws NSIWholesaleException String methodName = className + ".help(Properties, int) "; if (count > retry) throw new NSIWholesaleException(methodName + "Unable to complete command"); NSIWholesaleConnection conn = null; WSPResponse returnCode; - 141- WO 01/20484 PCT/USOO/25305 try conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Properties(; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); returnCode = conn.makeRequest(COMMANDHELP, allParmsAndAttrs); pool.checkIn(conn); return returnCode; } catch (Exception e) try { pool.release(conn); } catch (ResourceException re) { System.err.println(methodName + "Caught ResourceException" + re); } finally { return help( optionalAttributes, count + 1); } } * This method terminates the wholesaler's access to session commands. * <BR><PRE> Expected Major Result Code: COMMANDSUCCEEDEDCLOSINGCONNECTION * </PRE><BR> * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMANDQUIT * * @see WSPResponse#COMMANDSUCCEEDEDCLOSINGCONNECTION * public WSPResponse quito throws NSIWholesaleException { return quit( new Propertieso), 0); } * This method terminates the wholesaler's access to session commands. * <BR><PRE> Expected Major Result Code: COMMANDSUCCEEDEDCLOSINGCONNECTION * </PRE><BR> * @param optionalAttributes a property list of optional attributes * @return the Wholesale Server Protocol Server response * @exception nsi.wholesale.toolkit.javaapi.NSIWholesaleException when unable to complete command * @see NSIWholesaleAPI#COMMANDQUIT - 142- WO 01/20484 PCT/USOO/25305 * * @see WSPResponse#COMMANDSUCCEEDEDCLOSINGCONNECTION * public WSPResponse quit( Properties optionalAttributes) throws NSIWholesaleException return quit( optionalAttributes, 0); protected WSPResponse quit( Properties optionalAttributes, int count) throws NSIWholesaleException { String methodName = className + ".quit(Properties, int) "; if (count > retry) { throw new NSIWholesaleException(methodName + "Unable to complete command"); } NSIWholesaleConnection conn = null; WSPResponse returnCode; try { conn = (NSIWholesaleConnection)pool.checkOut(); Properties allParmsAndAttrs = new Propertieso; // put optional attributes propertiesCat(allParmsAndAttrs, optionalAttributes); returnCode = conn.makeRequest (COMMANDQUIT, allParmsAndAttrs); pool.checkIn(conn); return returnCode; catch (Exception e) { try { pool.release(conn); I catch (ResourceException re) System.err.println(methodName + "Caught ResourceException" + re); I finally { return quit( optionalAttributes, count + 1); } //#--END API----- * This method shutsdown the Wholesaler Services Protocol API. * @return void * - 143- WO 01/20484 PCT/USOO/25305 public void shutdown() System.out.println("NSIWholesaleAPI.shutdown: " + "Calling pool.shutdownO..."); //pool.shutdown(); try { //pool.close(); pool.close(60000, 60000); } catch (ResourceException re) { System.err.println("Exception Caught: " + re); } System.out.println("NSIWholesaleAPI.shutdown: " + "pool.shutdown() returned!"); / /**************************************************************. // Support Functions * This method parses the string argument as a signed decimal integer * @param valueString the string to be parsed as an int * @return an int representing the valueString * @see java.lang.Integer#parseInt * protected static int parseInt(String valueString) { try { return Integer.parseInt(valueString); catch (NumberFormatException nfe) { return 0; } } * This method concatinates the source property list onto the end of the * target propery list. Filtering is done to remove properties associated with * credit card charges. * @param target the target (destination) property list * @param source the source property list * @return void * @see java.util.Properties * protected static void propertiesCat(Properties target, Properties source) { String methodName = className + ".propertiesCat(Properties, Properties) "; if ((target == null) || (source == null)) { return; } // concatinate source properties onto target properties if (source.isEmpty() == false) { try { String key; - 144- WO 01/20484 PCT/USOO/25305 String value; Enumeration e = source.propertyNameso; while (e.hasMoreElementso)) { key = (String)e.nextElement(; value = source.getProperty(key); target.put(key, value); } catch (NoSuchElementException nsee) System.err.println(methodName + "Invalid Properties"); nsee.printStackTrace(); } } return; } * This method concatinates the source property list onto the end of the * target propery list. * @param protocol client (your) protocol * @return true if your protocol matches wholesale services protocol, * otherwise false * @see NSIWholesaleAPI#ATTR PROTOCOL * @see NSIWholesaleAPI#Describe * protected boolean verifyConnectionProtocol(String protocol) throws NSIWholesaleException { String methodName = className + ".verifyConnectionProtocol(String) WSPResponse wspResponse = describe(ATTRPROTOCOL); if (wspResponse == null) { System.err.println(methodName + "Unable to verify connection protocol " + protocol); return false; } if (wspResponse.getMajorResultCode() == WSPResponse.COMMANDEXECUTIONSUCCEEDEDPROPERTIESBEINGRETURNED) { String wspProtocol = wspResponse.getProperty(ATTRPROTOCOL); if (wspProtocol == null) { System.err.println(methodName + "Unable to verify connection protocol " + protocol); return false; if (protocol.equals(wspProtocol)) { System.out.println(methodName + "Successfully verified connection protocol " + protocol); return true; I else { System.err.println(methodName + "Failed to verify connection protocol: " + "Your Protocol = <" + protocol + "> while Wholesale Services Protocol = <" + wspProtocol + return false; - 145- WO 01/20484 PCT/USOO/25305 ) else { System.err.println(methodName + "Unable to verify connection protocol " + protocol); return false; } } // - - - - - - -- - - - - - -------------- -- ----- - - - - - - // End of file NSIWholesaleAPI.java //------------ Copyright (c) 2000 Network Solutions, Inc ----------- The class definition for WSPResponse is as follows:
//-------------------------------------------------------------------
// Package
-------------------------------------------------------------------
package nsi.wholesale.toolkit.javaapi;
//
// Imports... //-- import java.util.NoSuchElementException; import java.util.StringTokenizer; import java.util.Hashtable; import java.util.Vector; import java.util.Enumeration; import java.util.Properties; import java.text.*; * -------- Copyright (c) 2000 Network Solutions, Inc ------------<BR> * This class represents the various components of a * Wholesale Services Protocol (WSP) Response. * A WSP response will be returned for each request that is issued * throught the protocol. A response will describe, in as much detail * as possible, the outcome of the issued request, and will optionally * include any additional information that was generated by the request. * A result consists of a 'result code' followed by a descriptive * 'result message'. A 'result code' consists of a major result code * followed by a period ('.'), followed by a minor result code. * The three-digit major result code provides a general indication of * the success or failure of an issued request. * In most cases, one or more result properties are returned. A result * property consists of a property key followed by a colon (' * followed by a property value. * In other cases, plain text is returned (e.g. the information returned * from the Help command). Both of these cases are indicated by specific * result codes. * * @author David A. Moston * @see NSIWholesaleAPI - 146- WO 01/20484 PCT/USOO/25305 * @since 27 July 2000 * @version 1.0 * * *<BR>---------------------------------<BR> * $Log$ *<BR>--------------------------------------------------------------------<BR> public class WSPResponse //--- --------------------------------------------------- // Beginning of Required/Standard Fields
-------------------------------------------------------------------
/** Serial Version */ static long serialVersion = 1L; /** Release Version */ static double version = 1.OD; /** SCCS control ID */ static final String sccsID = "@(#) wholesale-sdkdl.12.1.3 08/04/00 10:27:15 WSPResponse.java NSI"; /** JDK Version */ static String jdkVersion = "1.1.7"; // Static Accessor Method(s)... /** Static accessor method to get serial version */ static public long getSerialVersiono) { return serialVersion; } /** Static accessor method to get release version */ static public double getVersion() { return version; } /** Static accessor method to get JDK version */ static public String getJdkVersion() { return jdkVersion;
/-------------------------------------------------------------------
// End of Required/Standard Fields
-------------------------------------------------------------------
/-------------------------------------------------------------------
// class (static) variable(s) ...
-------------------------------------------------------------------
/** The name of this class */ private static final String className = "WSPResponse"; /** Ease-of-use constant for Major Result Code: Minimum. (Note: this is NOT a valid/supported major result code) All valid/supported major result codes will be greater than the minimum and less than the maximum, respectively */ public static final int MAJORRESULTCODEMIN = 99; /** Ease-of-use constant for Major Result Code[General Information]: Minimum. (Note: this is NOT a valid/supported major result code) */ public static final int MAJORRESULTCODEGENERALINFORMATIONMIN = 99; /** Ease-of-use constant for Major Result Code[General Information]: General information */ - 147- WO 01/20484 PCT/USOO/25305 public static final int GENERALINFORMATION = 100; /** Ease-of-use constant for Major Result Code[General Information]: Maximum. (Note: this is NOT a valid/supported major result code) */ public static final int MAJORRESULTCODEGENERALINFORMATIONMAX = 199; /** Ease-of-use constant for Major Result Code[Success]: Minimum. (Note: this is NOT a valid/supported major result code) */ public static final int MAJOR RESULT CODE SUCCESS MIN = 199; /** Ease-of-use constant for Major Result Code[Success]: Authentication successful */ public static final int AUTHENTICATIONSUCCESSFUL = 210; /** Ease-of-use constant for Major Result Code[Success]: Session created public static final int SESSIONCREATED = 220; /** Ease-of-use constant for Major Result Code[Success]: Command succeeded, closing connection */ public static final int COMMAND SUCCEEDEDCLOSINGCONNECTION = 221; /** Ease-of-use constant for Major Result Code[Success]: Command accepted, now executing */ public static final int COMMANDACCEPTEDNOWEXECUTING = 230; /** Ease-of-use constant for.Major Result Code[Success]: Command not available */ public static final int COMMANDNOTAVAILABLE = 231; /** Ease-of-use constant for Major Result Code[Success]: Command execution succeeded, no data being returned; Ok */ public static final int COMMANDEXECUTIONSUCCEEDEDNODATA BEING RETURNED = 240; /** Ease-of-use constant for Major Result Code[Success]: Command execution succeeded, properties being returned */ public static final int COMMAND EXECUTION SUCCEEDED PROPERTIES BEING RETURNED = 241; /** Ease-of-use constant for Major Result Code[Success]: Command execution succeeded, text being returned */ public static final int COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED = 242; /** Ease-of-use constant for Major Result Code[Success]: Maximum. (Note: this is NOT a valid/supported major result code) */ public static final int MAJORRESULTCODESUCCESSMAX = 299; /** Ease-of-use constant for Major Result Code[Failure]: Minimum. (Note: this is NOT a valid/supported major result code) */ public static final int MAJOR RESULT CODE FAILURE MIN = 299; /** Ease-of-use constant for Major Result Code[Failure]: Authentication failed */ public static final int AUTHENTICATION FAILED = 310; /** Ease-of-use constant for Major Result Code[Failure]: Too many connections */ public static final int TOOMANYCONNECTIONS = 320; /** Ease-of-use constant for Major Result Code[Failure]: Too many connections from current wholesaler */ public static final int TOOMANYCONNECTIONSFROMCURRENTWHOLESALER = 321; /** Ease-of-use constant for Major Result Code[Failure]: Wholesaler account has been suspened */ public static final int WHOLESALERACCOUNTHASBEENSUSPENDED = 322; - 148- WO 01/20484 PCT/USOO/25305 /** Ease-of-use constant for Major Result Code(Failure]: Session timed out */ public static final int SESSIONTIMED OUT = 323; /** Ease-of-use constant for Major Result Code[Failure]: Server closing connection - Command timed out */ public static final int SERVERCLOSINGCONNECTION = 324; /** Ease-of-use constant for Major Result Code[Failure]: Invalid command public static final int INVALIDCOMMAND = 330; /** Ease-of-use constant for Major Result Code[Failure]: Invalid class public static final int INVALIDCLASS = 331; /** Ease-of-use constant for Major Result Code[Failure]: Formatting error */ public static final int FORMATTINGERROR = 332; /** Ease-of-use constant for Major Result Code[Failure]: Missing required parameter */ public static final int MISSINGREQUIREDPARAMETER = 333; /** Ease-of-use constant for Major Result Code[Failure]: Invalid attribute */ public static final int INVALIDATTRIBUTE = 334; /** Ease-of-use constant for Major Result Code[Failure]: Invalid value public static final int INVALIDVALUE = 335; /** Ease-of-use constant for Major Result Code[Failure]: Missing required attribute */ public static final int MISSINGREQUIREDATTRIBUTE = 336; /** Ease-of-use constant for Major Result Code[Failure]: Missing required value */ public static final int MISSINGREQUIREDVALUE = 337; /** Ease-of-use constant for Major Result Code[Failure]: Missing parameter */ public static final int INVALIDPARAMETER = 338; /** Ease-of-use constant for Major Result Code[Failure]: Command failed, unknown error - Command failed, internal errors public static final mnt COMMAND_-FAILEDUNKNOWNERROR = 340; /** Ease-of-use constant for Major Result Code [Failure]: object not found */ public static final mnt OBJECT_-NOT_-FOUND = 341; /** Ease-of-use constant for Major Result Code [Failure] : Command access denied */ public static final mnt COMMAND_-ACCESS_-DENIED = 342; /** Ease-of-use constant for Major Result Code [Failure] : General access denied - Access to request denied */ public static final mnt GENERAL_-ACCESSDENIED = 343; /** Ease-of-use constant for Major Result Code [Failure]: maximum. (Note: this is NOT a valid/supported major result code) * public static final int MAJORRESULTCODEFAILUREMAX = 399; /** Ease-of-use constant for Major Result Code: Maximum. (Note: this is NOT a valid/supported major result code) All valid/supported major result codes will be greater than the minimum and less than the maximum, respectively public static final int MAJORRESULTCODEMAX = 400; //---------------------------------- ------------------ -149- WO 01/20484 PCT/USOO/25305 // class (static) method(s) ...
-------------------------------------------------------------------
/-------------------------------------------------------------------
// static initializer block ...
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// instance Variable(s) ...
-------------------------------------------------------------------
* WSP response result code (consisting of a major result code, * followed by a period ('.'), followed by a minor result code). private String resultCode = null; * WSP response major result code private int majorResultCode = 0; * WSP response minor result code private int minorResultCode = 0; * The original WSP text response string used to instantiate object. * The raw WSP response consists of one or more <CRLF> delimited lines, * terminated by a line containing only a period ('.'), followed by <CRLF>. private String rawResponse = null; * The result message extracted from the original WSP text response. private String resultMessage = null; The WSP response attributes extracted from the original WSP text response. private Hashtable attributes = null;
---------------------------------------------------------------
// Constructors
---------------------------------------------------------------
* * Parses a WSP text response and extracts and stores the * various components. 5 * * @param data the raw WSP response text * - 150- WO 01/20484 PCT/USOO/25305 * @exception InvalidArgumentException if <code>data</code> is null. * @exception InvalidResponseFormatException if <code>data</code> is. * not a properly formatted * WSP response. public WSPResponse (String data) throws InvalidArgumentException, InvalidResponseFormatException if (data == null) { throw new InvalidArgumentException("null argument: data"); parseRawResponse(data); setRawResponse(data); } * Create a new WSPResponse based on value inputs. * * @param majorCode the major code for the WSPResponse. * @param minorCode the minor code for the WSPResponse. * @param message the text string associated with the message. * @param assocProps the properties associated with this message. * * * @exception InvalidArgumentException if majorCode or minorCode is or * not in the appropriate range. public WSPResponse (int majorCode, int minorCode, String message, Properties assocProps) throws InvalidArgumentException ( if ((majorCode == null) 1| (minorCode == null) || (majorCode < MAJORRESULTCODEMIN ) (majorCode > MAJOR_RESULT_CODE_MAX) |1 (minorCode < 0 ) (minorCode > 999)) { throw new InvalidArgumentException("null argument: data"); majorResultCode = majorCode; minorResultCode = minorCode; resultMessage = new String(message); if (assocProps != null) { Enumeration enum = assocProps.propertyNames(); while (enum.hasMoreElements() { String propkey = (String) enum.nextElemento; String value = prop.getProperty(prop_key); addAttribute (propkey, value); } } DecimalFormat myFmt = new DecimalFormat(; myFmt .setMinimumIntegerDigits (3); myFmt .setMaximumIntegerDigits (3); myFmt .setMaximumFractionDigits (3); myFmt.setMinimumFractionDigits(3); double x = majorCode + minorCode/1000.0; resultCode = myFmt.format(x); -151- WO 01/20484 PCT/USOO/25305
-------------------------------------------------------------------
// Accessors and Mutators
*----------------------------------------------------------
* Returns the original WSP text response string used to instantiate * object. * * @return the original WSP text response. public String getRawResponse () { return rawResponse; } * Returns the result message extracted from the original WSP * text response. * * @return the WSP response result message. public String getResultMessage () { return resultMessage; * Returns any attributes, if applicable, extracted from the original * WSP text response. * * @return response attributes if any exist, null otherwise. Hashtable getAttributes () { return attributes; } * returns the result property value corresponding to the specified * result property key, if found, extracted from the original * WSP text response. * * @param resultPropertyKey a result property key * @return the corresponding result property value, otherwise null public String getProperty (String resultPropertyKey) String resultPropertyValue = null; Hashtable attributes = getAttributes(; if (attributes == null) { return resultPropertyValue; I Vector vector = (Vector) attributes.get(resultPropertyKey); if (vector == null) return resultPropertyValue; - 152- WO 01/20484 PCT/USOO/25305 for (int i = 0; i < vector.size(); i++) { resultPropertyValue = (String)vector.elementAt(i); } return resultPropertyValue; } * Returns a property list containing all result property specifications, * if applicable, extracted from the original WSP text response. * Note: when the major result code = COMMANDEXECUTION SUCCEEDEDTEXTBEINGRETURNED * text is being returned in the response, as opposed to result property specifications. * Since there are no defined result property keys for returned text, a dummy * result property key is generated for each line of text. * That dummy result property key will look like 'text#', where # * is a number from 1 to N (N being the number of lines of text returned). * For example, the first dummy result property key will be 'textl'. * For example, the tenth dummy result property key will be 'text10'. * * * @return response attributes if any exist, null otherwise. * @see WSPResponse#getText public Properties getProperties () Properties props = new Propertieso); Hashtable attributes = getAttributes(); if (attributes == null) { return null; Enumeration enum = attributes.keyso); int lineNumber = 0; while (enum.hasMoreElements() { lineNumber++; String key = null; Vector vector = null; key = (String) enum.nextElement(; //if Command execution succeeded; text being returned if (getMajorResultCode() == COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED) { key = "text" + lineNumber; // Create a "dummy" key for this line of text } vector = (Vector) attributes.get(key); for (int i=0; i < vector.sizeo); i++) { - 153- WO 01/20484 PCT/USOO/25305 props.put(key, (String)vector.elementAt(i)); } } return props; } * Returns a property list containing all result property specifications, * if applicable, extracted from the original WSP text response.
* Note: when the major result code = COMMANDEXECUTION SUCCEEDEDTEXTBEINGRETURNED * text is being returned in the response, as opposed to result property specifications. * Since there are no defined result property keys for returned text, a dummy * result property key is generated for each line of text. * That dummy result property key will look like 'text#', where # * is a numberfrom 1 to N (N being the number of lines of text returned). * For example, the first dummy result property key will be 'text1l'. * For example, the tenth dummy result property key will be 'text10'. * * @param wspResponse the WSP response * @return response attributes if any exist, null otherwise. * @see WSPResponse#getText public static Properties getProperties (WSPResponse wspResponse) { return wspResponse.getProperties(); * returns a vector containing lines of text returned in the WSP response. * Note: when the major result code is COMMANDEXECUTION SUCCEEDEDTEXTBEINGRETURNED, * text is being returned in the response, as opposed to result property specifications. * There are no result property keys defined for text. * This method returns a vector of Strings. Each element (String) in the vector is a line of text. * * @param wspResponse the WSP response * * @return a vector containing lines of text returned, otherwise null * @see WSPResponse#getProperties public Vector getText () Vector text = new Vector(; //if not: Command execution succeeded; text being returned if (getMajorResultCode() != COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED) { return null; - 154- WO 01/20484 PCT/USOO/25305 Hashtable attributes = getAttributes(; if (attributes == null) { return null; Enumeration enum = attributes.keys (); int lineNumber = 0; while (enum.hasMoreElements() lineNumber++; String key = null; Vector vector = null; key = (String) enum.nextElemento); //Command execution succeeded; text being returned key = "text" + lineNumber; // Create a "dummy" key for this line of text vector = (Vector) attributes.get(key); for (int i=0; i < vector.size(); i++) { text.addElement((String)vector.elementAt(i)); } } return text; * sets the raw response text * * @param aRawResponse the raw WSP response text * @return void private void setRawResponse (String aRawResponse) rawResponse = aRawResponse; } * sets the response result code * * @param inResultCode the WSP response result code * return void */ private void setResultCode (String inResultCode) { resultCode = inResultCode; } * returns the WSP response result code and result message * * @return the WSP response result code and result message public String getResultCodeAndMessage () return (getResultCode() + " " + getResultMessageo); - 155- WO 01/20484 PCT/USOO/25305 } * returns the WSP response result code * * @return the WSP response result code public String getResultCode () { return resultCode; } * returns the WSP response major result code * * @return the WSP response major result code public int getMajorResultCode () { parseResultCode(); return majorResultCode; } * returns the WSP response minor result code * * @return the WSP response minor result code public int getMinorResultCode C) { parseResultCode(); return minorResultCode; } * sets the WSP response result message * * @param aResultMessage the WSP response result message * @return void private void setResultMessage (String aResultMessage) { resultMessage = aResultMessage; } * sets the WSP response attributes * * @param hash the WSP response attributes * @return void private void setAttributes (Hashtable hash) attributes = hash;
---------------------------------------------------------------
// General Methods
-------------------------------------------------------------------
- 156- WO 01/20484 PCT/USOO/25305 * parses the current result code into major and minor result codes. * * @return true if result code is successfully parsed, otherwise false private boolean parseResultCode () boolean rc = true; String methodName = className + ".parseResultCode() "; String sResultCode = getResultCode(; String sMajorResultCode = null; String sMinorResultCode = null; int iMajorResultCode = 0; int iMinorResultCode = 0; try { StringTokenizer st = new StringTokenizer(sResultCode, "."); sMajorResultCode = st.nextToken(; sMinorResultCode = st.nextToken(); iMajorResultCode = Integer.parseInt(sMajorResultCode); iMinorResultCode = Integer.parseInt(sMinorResultCode); catch(NoSuchElementException nsee) System.err.println(methodName + "Unable to parse result code + sResultCode + "'>"); nsee.printStackTrace(); } catch(NumberFormatException nfe) System.err.println(methodName + "Invalid result code <" + sResultCode + nfe.printStackTrace(); } finally { if (iMajorResultCode <= 0) rc = false; } else majorResultCode = iMajorResultCode; minorResultCode = iMinorResultCode; } return rc; * prints debug-type representation of the WSP Response to standard output * * @param response a WSP resonse * @return'void public static void displayResponse (WSPResponse response) System.out.println("Result Code: " + response.getResultCode()); -157- WO 01/20484 PCT/USOO/25305 System.out.println("Major Result Code: " + response.getMajorResultCode(); System.out.println("Minor Result Code: " + response.getMinorResultCode(); System.out.println("Result Message: " + response.getResultMessageo); Hashtable attributes = response.getAttributes(); if (attributes == null) { System.out.println("Result Properties: NONE"); return; } System.out.println("Result Properties:"); Enumeration enum = attributes.keyso; while (enum.hasMoreElements() String key = null; Vector vector = null; key = (String) enum.nextElement(); vector = (Vector) attributes.get(key); for (int i=0; i < vector.size(; i++) { System.out.println(key + ":" + (String)vector.elementAt(i)); } } } * returns the raw WSP response * * @return a string representing the raw WSP response public String toString () if (rawResponse != null) { return rawResponse; } if (responseCode == null) fabricatedResponse = new String("001.001"); } else { fabricatedResponse = new String(responseCode); } if (resultMessage == null) fabricatedResponse = new String(fabricatedResponse+"<<Message is null>>\r\n"); } else { fabricatedResponse = new String(fabricatedResponse+resultMessage+"\r\n"); } if (attributes != null) Enumeration enum = attributes.keyso; - 158- WO 01/20484 PCT/USOO/25305 while (enum.hasMoreElements() String key = null; Vector vector = null; key = (String) enum.nextElemento; vector = (Vector) attributes.get(key); for (int i=O; i < vector.size(; i++) { fabricatedResponse = new String(fabricatedResponse+ key + + (String)vector.elementAt(i) + "l\r\n"); } } fabricatedResponse = new String(fabricatedResponse+".\r\n"): return fabricatedResponse; } * Parse raw WSP text response and extract and store all components * * @param data the raw WSP text response * @return void * @exception InvalidResponseFormatException upon detection of an invalid response format private void parseRawResponse (String data) throws InvalidResponseFormatException String methodName = className + ".parseRawResponse(String) "; // // Split data by <CRLF> // StringTokenizer st = new StringTokenizer(data, "\r\n"); // // Get the first line of the response // String responseLine = "i; try { responseLine = st.nextToken(; catch (NoSuchElementException e) { throw new InvalidResponseFormatException( "Missing first line"); } // // Extract "result code" and "result message" from first line // of response. - 159- WO 01/20484 PCT/USOO/25305 // int spaceIndex = responseLine.indexOf(' '); // // If there is no space in the string, then the format is invalid. // First line must be "code message" // if (spaceIndex == -1) throw new InvalidResponseFormatException( "missing/invalid code and message"); // The code is comprised of the set of characters spanning the // the first character to the space - // String myresultCode = responseLine.substring(O, spaceIndex); // // trim any whitespace from both ends of code // myresultCode = myresultCode.trim(; // // Attempt to convert the string result code to an integer // setResultCode(myresultCode); // // Extract the result message now // String desc = null; // // The result message is comprised of all characters spanning from // the first character after the space to the end of the entire string // desc = responseLine.substring(spaceIndex + 1, responseLine.lengtho)); // // trim any whitespace from both ends of code // desc = desc.trimi); if (desc.length() == 0) throw new InvalidResponseFormatException( "Missing result message"); I setResultMessage(desc); String key; - 160- WO 01/20484 PCT/USOO/25305 String value; int colonIndex = 0; //if Command execution succeeded; text being returned if (getMajorResultCode() == COMMANDEXECUTIONSUCCEEDEDTEXTBEINGRETURNED) { int lineNumber = 0; try while (st.hasMoreTokens() lineNumber++; // // Create a "dummy" key for this line of text // key = "text" + lineNumber; // // Get the next line from the response // value = st.nextToken(; // // Break from the loop if we hit the response terminator // if (value.trim(.equals(".")) { break; } // // Save attribute // //addAttribute(key.toLowerCase(), value); addAttribute(key, value); // end while // end try catch (NoSuchElementException e) { throw new InvalidResponseFormatException( "Error splitting response by '\r\n'", e); } / end catch } else { // // Iterate through the rest of the response, searching for // attributes. Break from the loop when we encounter the // response terminator // try { while (st.hasMoreTokens() ) { // // Get the next line from the response // - 161- WO 01/20484 PCT/USOO/25305 responseLine = st.nextTokeno; // // Try to find the colon (':') in the string // colonIndex = responseLine.indexOf(''1); // // If the colon is missing, then check to see if we've // encountered the response terminator. If we haven't, // then the response is formatted improperly // if (colonIndex == -1) { responseLine = responseLine.trim(; // // Break from the loop if we hit the response terminator // if (responseLine.equals(".")) break; } else throw new InvalidResponseFormatException( "Invalid attribute key-value pair"); } } // // The attribute key is everything before the colon // key = responseLine.substring(0, colonIndex); key = key.trim(; // // The attribute value is everything after the colon // value = responseLine.substring(colonIndex + 1); value = value.trim(; // // Save attribute // //addAttribute(key.toLowerCase(), value); addAttribute(key, value); // end while } / end try catch (NoSuchElementException e) throw new InvalidResponseFormatException( -162- WO 01/20484 PCT/USOO/25305 "Error splitting response by '\r\n'", e); } / end catch } }//parseRawRespose * Attributes are stored in a hashtable. Since there can be multiple * values for the same key, we store all values in vectors. Everytime * a value is added for a key that already exists, we just add that * value to that key's vector. If a key does not yet exist, then * we create a new vector and add the value to it. * * @param key a result property key * @param value a result property value * @return void private void addAttribute (String key, String value) { Hashtable hash = getAttributes(); if (hash == null) { hash = new Hashtableo; setAttributes(hash); } Vector vector = (Vector) hash.get(key); if (vector == null) { vector = new Vector(l); hash.put(key, vector); } vector.addElement(value); }
//-----------------------------------------------------------------
// End of file WSPResponse.java ------------ Copyright (c) 2000 Network Solutions, Inc ----------- - 163-

Claims (9)

1. A method for interfacing a user application program to a system for conducting a transaction associated with managing Internet domain names, comprising the steps of: receiving a request in an application program interface from the application program to establish over the Internet a session between the user and the system; authenticating the right of the user to conduct a transaction associated with managing Internet domain names; establishing a secure socket layer within the application program interface and the system; receiving a request in the application program interface from the applications program to initiate a transaction following such authentication; and transmitting commands from the application program interface, to the system effectuating the transaction.
2. A method as set forth in claim 1, further comprising the step of: notifying the application program as to the status of processing of the command. -164- WO 01/20484 PCT/USOO/25305
3. A method as set forth in claim 2, wherein: the notifying step comprises the step of returning a response to the application program containing a statement indicating whether the transaction has been fulfilled.
4. A method as set forth in claim 3, wherein: the statement comprises a message which includes an ASCII text portion, followed by a delimiter portion.
5. A method as set forth in claim 4, wherein: the ASCII text portion is selected from a predefined dictionary of statements.
6. A method as set forth in claim 1, wherein: authenticating the user is determined from the Internet Protocol address, secure socket layer encryption, and user name and password provided by the application program.
7. A method as set forth in claim 1, wherein: the authenticating step includes the step of at least one additional attempt to authenticate the user following a first failed attempt. - 165- WO 01/20484 PCT/USOO/25305
8. A method as set forth in claim 7, wherein: following said at least one additional attempt to authenticate the user is denied further attempts to be authenticated should said at least one additional attempt fail.
9. Apparatus for interfacing a user application program to a system for conducting transactions associated with managing Internet Domain Names comprising: a component for receiving a request from an applications program to establish over the Internet a connection between a user and the system; a component for authenticating the right of the user to conduct a transaction associated with managing Internet domain names; a component for establishing a secure socket layer within the apparatus; a component for initiating a transaction following such authentication and following receipt of a request from the applications program; and a component for transmitting commands for effectuating the transaction via the secure socket layer to the system. - 166-
AU74905/00A 1999-09-15 2000-09-15 Methods and apparatus for establishing and maintaining inernet domain name registrations Abandoned AU7490500A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15396099P 1999-09-15 1999-09-15
US60153960 1999-09-15
PCT/US2000/025305 WO2001020484A2 (en) 1999-09-15 2000-09-15 Methods and apparatus for establishing and maintaining inernet domain name registrations

Publications (1)

Publication Number Publication Date
AU7490500A true AU7490500A (en) 2001-04-17

Family

ID=22549429

Family Applications (1)

Application Number Title Priority Date Filing Date
AU74905/00A Abandoned AU7490500A (en) 1999-09-15 2000-09-15 Methods and apparatus for establishing and maintaining inernet domain name registrations

Country Status (11)

Country Link
EP (1) EP1222790A2 (en)
JP (1) JP2003523650A (en)
KR (1) KR20020042834A (en)
CN (1) CN1390416A (en)
AU (1) AU7490500A (en)
BR (1) BR0013989A (en)
CA (1) CA2384834A1 (en)
IL (1) IL148628A0 (en)
MX (1) MXPA02002789A (en)
NO (1) NO20021259L (en)
WO (1) WO2001020484A2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311399B2 (en) 1999-09-07 2016-04-12 C. Douglass Thomas System and method for providing an updating on-line forms and registrations
US7747592B2 (en) 1999-09-07 2010-06-29 Thomas C Douglass Method and system for monitoring domain name registrations
US7991851B2 (en) 2002-02-28 2011-08-02 International Business Machines Corporation Remote user substitution at ODBC/CLI level and stored procedure authorization
CN100373903C (en) * 2002-10-31 2008-03-05 华为技术有限公司 Method of proceeding port wholesale according to region name
US7320073B2 (en) 2003-04-07 2008-01-15 Aol Llc Secure method for roaming keys and certificates

Also Published As

Publication number Publication date
NO20021259L (en) 2002-05-15
WO2001020484A2 (en) 2001-03-22
EP1222790A2 (en) 2002-07-17
CA2384834A1 (en) 2001-03-22
BR0013989A (en) 2002-07-30
MXPA02002789A (en) 2003-10-14
JP2003523650A (en) 2003-08-05
WO2001020484B1 (en) 2002-04-11
WO2001020484A3 (en) 2001-12-27
NO20021259D0 (en) 2002-03-13
CN1390416A (en) 2003-01-08
KR20020042834A (en) 2002-06-07
IL148628A0 (en) 2002-09-12

Similar Documents

Publication Publication Date Title
US6728884B1 (en) Integrating heterogeneous authentication and authorization mechanisms into an application access control system
US7020457B2 (en) System and method for proxy-enabling a wireless device to an existing IP-based service
US20040199520A1 (en) Method for checking the availability of a domain name
US20040199608A1 (en) Method for gathering domain name registration information from a registrant via a Registrar&#39;s web site
EP0952717B1 (en) Apparatus and method for securing documents posted from a web resource
US6654759B1 (en) Method for access via various protocols to objects in a tree representing at least one system resource
US7299299B2 (en) Shared registration system for registering domain names
US6665674B1 (en) Framework for open directory operation extensibility
US6308212B1 (en) Web user interface session and sharing of session environment information
US20040199493A1 (en) Method for registering a stream of domain names received via a registrar&#39;s web site
US7412501B2 (en) Event consumers for an event management system
US20040199620A1 (en) Method for transfering a registered domain name from a first registrar to a second registrar
US6973463B2 (en) Replication architecture for a directory server
WO2001033381A9 (en) Shared internet storage resource, user interface system, and method
US6567919B1 (en) Authenticated communication procedure for network computers
US20030055877A1 (en) Remote client manager that facilitates an extendible, modular application server system distributed via an electronic data network and method of distributing same
US6877026B2 (en) Bulk import in a directory server
AU7490500A (en) Methods and apparatus for establishing and maintaining inernet domain name registrations
US20030105723A1 (en) Method and system for disclosing information during online transactions
WO1999022332A1 (en) A system and method for acquiring remote programs for performing a task
Cisco Cisco Access Registrar 1.6 Release Notes
JP3528065B2 (en) Inherited access control method on computer network
Cisco Cisco User Control Point 1.0 Release Notes
Cisco 1.5 Release Notes for Cisco Access Registrar
Cisco Cisco BBSM 5.1 Service Pack 2

Legal Events

Date Code Title Description
MK1 Application lapsed section 142(2)(a) - no request for examination in relevant period
TC Change of applicant's name (sec. 104)

Owner name: VERISIGN, INC.

Free format text: FORMER NAME: NETWORK SOLUTIONS, INC.