From: Vidar H. <vho...@us...> - 2002-03-22 10:17:30
|
Update of /cvsroot/epp-rtk/name-rtk-addon/java/src/com/gnr/rtk/addon/example In directory usw-pr-cvs1:/tmp/cvs-serv6059/src/com/gnr/rtk/addon/example Added Files: EmailFwdBatchExample.java ExampleBase.java NamewatchBatchExample.java NamewatchExample.java Log Message: Initial checkin of the name-rtk-addon java part. --- NEW FILE: EmailFwdBatchExample.java --- /************************************************************************ * dotName Java EPP RTK addon * Copyright (C) 2002 Global Name Registry * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Contact information: ep...@gn... * * EPP RTK * GNR Ltd. * 125 High Holborn * London WC1V 6QA * United Kingdom ************************************************************************/ /* * $Header: /cvsroot/epp-rtk/name-rtk-addon/java/src/com/gnr/rtk/addon/example/EmailFwdBatchExample.java,v 1.1 2002/03/22 10:17:27 vhokstad Exp $ * $Revision: 1.1 $ * $Date: 2002/03/22 10:17:27 $ */ package com.gnr.rtk.addon.example; import java.util.*; import java.io.*; import com.tucows.oxrs.epp.rtk.*; import com.tucows.oxrs.epp.rtk.xml.*; import org.openrtk.idl.epp.*; import org.openrtk.idl.epp.domain.*; import com.gnr.rtk.addon.idl.emailfwd.*; import com.gnr.rtk.addon.*; import com.gnr.rtk.addon.example.*; /** * Example code for the Global Name Registry EmailFwd object, that shows how to create * email forwarding objects using an email forwarding batch file as used in version 2 of * the landrush process as input. Note that this code has not been through GNRs full QA * process, and is provided with no warranty or similar - see the LICENSE.TXT file for * full information. * <p> * If a dual registration is attempted, the description field will contain first the * domain registration response, then the e-mail forwarding registration response. * Note that for duals, if the domain registration fails, the e-mail forwarding * registration is NOT ATTEMPTED. * <p> * YOU ARE ADVISED TO TEST THIS PROGRAM THOROUGHLY BEFORE USE, AND USE IT WITH SMALL * BATCH FILES FIRST, IN CASE SOMETHING GOES WRONG. * <p> * NOTE: The input differs from the landrush 2.0 format in that no LOCAL handles can be * used. All handles *MUST* be registry handles. To achieve this, register contacts first, * and use the returned handles only. * <p> * NOTE2: The output format differs in that the result code used is the EPP result code, * not the result codes listed in the technical toolkit for landrush. * <p> * NOTE3: No validation is done on the input files. You are advised to check your input * files carefully, and preferrably run the validation script provided by GNR for landrush * before running this program. * <p> * NOTE4: No failed nameserver info will be returned, as the domain registration will either * fail totally, or succeed fully. * <p> * @author Vidar Hokstad * @version $Revision: 1.1 $ $Date: 2002/03/22 10:17:27 $ * @see com.tucows.oxrs.epp.rtk.EPPClient * @see com.tucows.oxrs.epp.rtk.xml.EPPGreeting * @see com.gnr.rtk.addon.example.ExampleBase * @see com.gnr.rtk.addon.EPPEmailFwdCreate **/ public class EmailFwdBatchExample extends ExampleBase { private static String USAGE = "Usage: com.gnr.rtk.addon.example.EmailFwdBatchExample epp_host_name epp_host_port epp_client_id epp_password landrush_file"; /** * Create an epp_EmailFwdPeriod object for the specified number of years **/ private static epp_EmailFwdPeriod createEmailFwdPeriod(int period) { epp_EmailFwdPeriod p = new epp_EmailFwdPeriod(); p.m_unit = epp_EmailFwdPeriodUnitType.YEAR; // We only allow registrations in whole years at present p.m_value = (short)period; return p; } /** * Create an epp_DomainPeriod object for the specified number of years **/ private static epp_DomainPeriod createDomainPeriod(int period) { epp_DomainPeriod p = new epp_DomainPeriod(); p.m_unit = epp_DomainPeriodUnitType.YEAR; // We only allow registrations in whole years at present p.m_value = (short)period; return p; } /** * Create an e-mail forwarding **/ private static epp_EmailFwdCreateRsp emailfwdCreate(String epp_client_id, String name, String fwdto, int period, String registrant, epp_EmailFwdContact contacts[], String password) { System.out.println("EMAILFWD_CREATE: begin"); // --- Fill in the request structure epp_EmailFwdCreateReq create_request = new epp_EmailFwdCreateReq(); create_request.m_cmd = createCommand(epp_client_id); create_request.m_name = name; create_request.m_fwdto = fwdto; create_request.m_period = createEmailFwdPeriod(period); create_request.m_registrant = registrant; create_request.m_contacts = contacts; create_request.m_auth_info = createPwAuthInfo(password); // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("EMAILFWD_CREATE: Sending registration for "+name); // Create the command object EPPEmailFwdCreate create = new EPPEmailFwdCreate(); create.setRequestData(create_request); epp_EmailFwdCreateRsp create_response = null; epp_Response response = null; try { // Process the request create = (EPPEmailFwdCreate) epp_client.processAction(create); // Retrieve response data and extract the generic response create_response = create.getResponseData(); if (create_response != null) response = create_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (create_response == null || response == null) { System.out.println("ERROR: No response found"); return null; } return create_response; } /** * Create a domain name **/ private static epp_DomainCreateRsp domainCreate(String epp_client_id, String name, int period, String nameservers[], String registrant, epp_DomainContact contacts[], String password) { System.out.println("DOMAIN_CREATE: begin"); // --- Fill in the request structure epp_DomainCreateReq create_request = new epp_DomainCreateReq(); create_request.m_cmd = createCommand(epp_client_id); create_request.m_name = name; create_request.m_period = createDomainPeriod(period); create_request.m_name_servers = nameservers; create_request.m_registrant = registrant; create_request.m_contacts = contacts; create_request.m_auth_info = createPwAuthInfo(password); // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("DOMAIN_CREATE: Sending registration for "+name); // Create the command object EPPDomainCreate create = new EPPDomainCreate(); create.setRequestData(create_request); epp_DomainCreateRsp create_response = null; epp_Response response = null; try { // Process the request create = (EPPDomainCreate) epp_client.processAction(create); // Retrieve response data and extract the generic response create_response = create.getResponseData(); if (create_response != null) response = create_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (create_response == null || response == null) { System.out.println("ERROR: No response found"); return null; } return create_response; } /** * Main of the example. Performs the Domain/E-mail forwarding creations **/ public static void main(String args[]) { epp_Command command_data = null; epp_AuthInfo domain_auth_info = null; Date namewatch_exp_date = null; if (args.length < 5) { System.err.println(USAGE); System.exit(1); } // calling setDebugLevel() with no params makes the RTK // read the "rtk.debuglevel" property from rtk.properties file RTKBase.setDebugLevel(); String epp_host_name = args[0]; String epp_host_port_string = args[1]; String epp_client_id = args[2]; String epp_password = args[3]; String namewatch_file = args[4]; // Connect to the server if (!connect(epp_host_name, epp_host_port_string, epp_client_id, epp_password)) { System.err.println("Unable to connect to EPP server. Exiting"); System.exit(1); } try { File inputFile = new File(namewatch_file); BufferedReader inf = new BufferedReader(new FileReader(inputFile)); File outputFile = new File(namewatch_file + ".result"); PrintWriter outf = new PrintWriter(new FileWriter(outputFile)); String buf = inf.readLine(); System.out.println("Banner: '" + buf + "'"); StreamTokenizer st = new StreamTokenizer(inf); st.quoteChar((int)'\"'); st.eolIsSignificant(true); while (st.nextToken() != StreamTokenizer.TT_EOF) { String transaction_id = st.sval; st.nextToken(); String auth_info = st.sval; st.nextToken(); String domainname = st.sval; st.nextToken(); String dperiod = st.sval; st.nextToken(); String emailfwd = st.sval; st.nextToken(); String eperiod = st.sval; st.nextToken(); String registrant = st.sval; st.nextToken(); String admin = st.sval; st.nextToken(); String tech = st.sval; st.nextToken(); String billing = st.sval; st.nextToken(); String fwdto = st.sval; List hosts = (List)new ArrayList(); int count = 0; while (st.nextToken() != StreamTokenizer.TT_EOL) { hosts.add(st.sval); count++; } if (count > 13) { System.err.println("ERROR: Trying to add more than 13 nameservers at line " + st.lineno()); } String resultcode = ""; String description = ""; String creation_date = "0000-00-00"; String expiration_date = "0000-00-00"; // Register the domain if (domainname != null && domainname != "") { epp_DomainContact contacts[] = new epp_DomainContact[3]; contacts[0] = new epp_DomainContact(); contacts[0].m_id = admin; contacts[0].m_type = epp_DomainContactType.ADMIN; contacts[1] = new epp_DomainContact(); contacts[1].m_id = tech; contacts[1].m_type = epp_DomainContactType.TECH; contacts[2] = new epp_DomainContact(); contacts[2].m_id = billing; contacts[2].m_type = epp_DomainContactType.BILLING; epp_DomainCreateRsp create_response = domainCreate(epp_client_id, domainname, Integer.parseInt(dperiod), EPPXMLBase.convertListToStringArray(hosts), registrant, contacts, auth_info); if (create_response != null) { epp_Result[] results = create_response.m_rsp.m_results; resultcode = Integer.toString(results[0].m_code); description = results[0].m_msg; if (create_response.m_creation_date != null) creation_date = create_response.m_creation_date.substring(0,10); if (create_response.m_expiration_date != null) expiration_date = create_response.m_expiration_date.substring(0,10); } else { System.err.println("ERROR: null response from emailfwdCreate"); } } // Register the e-mail forwarding if ((resultcode.equals("") || resultcode.equals("1000")) && emailfwd != null && !emailfwd.equals("")) { epp_EmailFwdContact contacts[] = new epp_EmailFwdContact[3]; contacts[0] = new epp_EmailFwdContact(); contacts[0].m_id = admin; contacts[0].m_type = epp_EmailFwdContactType.ADMIN; contacts[1] = new epp_EmailFwdContact(); contacts[1].m_id = tech; contacts[1].m_type = epp_EmailFwdContactType.TECH; contacts[2] = new epp_EmailFwdContact(); contacts[2].m_id = billing; contacts[2].m_type = epp_EmailFwdContactType.BILLING; epp_EmailFwdCreateRsp create_response = emailfwdCreate(epp_client_id, emailfwd,fwdto, Integer.parseInt(eperiod), registrant, contacts, auth_info); if (create_response != null) { epp_Result[] results = create_response.m_rsp.m_results; resultcode = Integer.toString(results[0].m_code); if (description.equals("")) description = results[0].m_msg; else description = description + " -- " + results[0].m_msg; if (create_response.m_creation_date != null) creation_date = create_response.m_creation_date.substring(0,10); if (create_response.m_expiration_date != null) expiration_date = create_response.m_expiration_date.substring(0,10); } else { System.err.println("ERROR: null response from emailfwdCreate"); } } outf.println("\"" + resultcode + "\" \"" + domainname + "\" \"" + emailfwd + "\" \"" + registrant + "\" \"" + registrant + "\" \"" + transaction_id + "\" \"" + creation_date + "\" \"" + expiration_date + "\" \"" + description + "\""); } inf.close(); outf.close(); } catch (IOException io) { System.err.println("Error occured during processing. Aborting"); System.err.println(io); disconnect(epp_client_id); System.exit(1); } // disonnect from the server if (!disconnect(epp_client_id)) { System.err.println("Error during disconnect from EPP server. Exiting"); System.exit(1); } } } --- NEW FILE: ExampleBase.java --- /************************************************************************ * dotName Java EPP RTK addon * Copyright (C) 2002 Global Name Registry * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Contact information: ep...@gn... * * EPP RTK * GNR Ltd. * 125 High Holborn * London WC1V 6QA * United Kingdom ************************************************************************/ /* * $Header: /cvsroot/epp-rtk/name-rtk-addon/java/src/com/gnr/rtk/addon/example/ExampleBase.java,v 1.1 2002/03/22 10:17:27 vhokstad Exp $ * $Revision: 1.1 $ * $Date: 2002/03/22 10:17:27 $ */ package com.gnr.rtk.addon.example; import java.util.*; import java.io.*; import com.tucows.oxrs.epp.rtk.*; import com.tucows.oxrs.epp.rtk.xml.*; import org.openrtk.idl.epp.*; import com.gnr.rtk.addon.*; /** * Base class for the example classes that provide a few basic methods that are * common to all the examples. * * @author Vidar Hokstad * @version $Revision: 1.1 $ $Date: 2002/03/22 10:17:27 $ * @see com.tucows.oxrs.epp.rtk.EPPClient * @see com.tucows.oxrs.epp.rtk.xml.EPPGreeting * @see com.gnr.rtk.addon.example.NamewatchExample * @see com.gnr.rtk.addon.example.NamewatchBatchExample **/ public class ExampleBase { protected static EPPClient epp_client; // --- Generic helper functions /** * Create an auth info structure if a non-empty password has been provide **/ protected static epp_AuthInfo createPwAuthInfo(String password) { epp_AuthInfo auth_info = null; if (password != null && password != "") { auth_info = new epp_AuthInfo(); auth_info.m_value = password; auth_info.m_type = epp_AuthInfoType.PW; } return auth_info; } /** * Create a new basic epp_Command structure with a client trid **/ protected static epp_Command createCommand(String epp_client_id) { epp_Command command_data = new epp_Command(); // The client_trid is an optional value that can be used // by registrars for tracking and logging of requests. // Registries may mandate certain policies for how to use it. command_data.m_client_trid = getClientTrid(epp_client_id); return command_data; } /** * Example of how to create a value for the client_trid * This field is for tracking purposes only, and can be formatted * more or less as you wish, but is intended to be unique per * transaction (that is *not* guaranteed for this test implementation) **/ protected static String getClientTrid(String epp_client_id) { return "ABC:"+epp_client_id+":"+System.currentTimeMillis(); } /** * connect to an EPP server */ protected static boolean connect(String epp_host_name, String epp_host_port_string, String epp_client_id, String epp_password) { int epp_host_port = Integer.parseInt(epp_host_port_string); epp_client = new EPPClient(epp_host_name, epp_host_port, epp_client_id, epp_password); try { epp_client.setLang("en"); // The protocol used is set by the rtk.transport property // in etc/rtk.properties System.out.println("CONNECT: Connecting to the EPP Server and getting the greeting"); epp_Greeting greeting = epp_client.connectAndGetGreeting(); System.out.println("CONNECT: greeting.m_server_id ["+greeting.m_server_id+"]"); System.out.println("CONNECT: greeting.m_server_date ["+greeting.m_server_date+"]"); String client_trid = getClientTrid(epp_client_id); System.out.println("CONNECT: Logging into the EPP Server"); // If epp_client.setEPPServices() or epp_client.setEPPUnspecServices() // have been called, epp_client.login() uses services values set by user, // otherwise, epp_client.login() fills in default service values for you // which are contact, domain and host (pretty standard stuff). epp_client.login(client_trid); return true; } catch ( epp_XMLException xcp ) { System.err.println("epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } return false; } /** * disconnect from the EPP server */ protected static boolean disconnect(String epp_client_id) { try { // All done with this session, so let us log out... System.out.println("DISCONNECT: Logging out from the EPP Server"); epp_client.logout(getClientTrid(epp_client_id)); // ... and disconnect System.out.println("DISCONNECT: Disconnecting from the EPP Server"); epp_client.disconnect(); return true; } catch ( epp_XMLException xcp ) { System.err.println("epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } return false; } } --- NEW FILE: NamewatchBatchExample.java --- /************************************************************************ * dotName Java EPP RTK addon * Copyright (C) 2002 Global Name Registry * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Contact information: ep...@gn... * * EPP RTK * GNR Ltd. * 125 High Holborn * London WC1V 6QA * United Kingdom ************************************************************************/ /* * $Header: /cvsroot/epp-rtk/name-rtk-addon/java/src/com/gnr/rtk/addon/example/NamewatchBatchExample.java,v 1.1 2002/03/22 10:17:27 vhokstad Exp $ * $Revision: 1.1 $ * $Date: 2002/03/22 10:17:27 $ */ package com.gnr.rtk.addon.example; import java.util.*; import java.io.*; import com.tucows.oxrs.epp.rtk.*; import com.tucows.oxrs.epp.rtk.xml.*; import org.openrtk.idl.epp.*; import com.gnr.rtk.addon.idl.namewatch.*; import com.gnr.rtk.addon.*; import com.gnr.rtk.addon.example.*; /** * Example code for the Global Name Registry Namewatch object, that shows how to create * Namewatch objects using a Namewatch batch file as used in version 2 of the landrush * process as input. Note that this code has not been through GNRs full QA process, and * is provided with no warranty or similar - see the LICENSE.TXT file for full information. * <p> * NOTE: The input differs from the landrush 2.0 format in that no LOCAL handles can be * used. All handles *MUST* be registry handles. To achieve this, register contacts first, * and use the returned handles only. * <p> * NOTE2: The output format differs in that the result code used is the EPP result code, * not the result codes listed in the technical toolkit for landrush. * <p> * NOTE3: No validation is done on the input files. You are advised to check your input * files carefully, and preferrably run the validation script provided by GNR for landrush * before running this program. * * * @author Vidar Hokstad * @version $Revision: 1.1 $ $Date: 2002/03/22 10:17:27 $ * @see com.tucows.oxrs.epp.rtk.EPPClient * @see com.tucows.oxrs.epp.rtk.xml.EPPGreeting * @see com.gnr.rtk.addon.example.ExampleBase * @see com.gnr.rtk.addon.EPPNamewatchCreate **/ public class NamewatchBatchExample extends ExampleBase { private static String USAGE = "Usage: com.gnr.rtk.addon.example.NamewatchBatchExample epp_host_name epp_host_port epp_client_id epp_password namewatch_landrush_file"; // -------- Helper functions for Namewatch tests ---------------------------------------- /** * Create an epp_NamewatchPeriod object for the specified number of years **/ private static epp_NamewatchPeriod createNamewatchPeriod(int period) { epp_NamewatchPeriod p = new epp_NamewatchPeriod(); p.m_unit = epp_NamewatchPeriodUnitType.YEAR; // We only allow registrations in whole years at present p.m_value = (short)period; return p; } /** * Create a namewatch **/ private static epp_NamewatchCreateRsp namewatchCreate(String epp_client_id, String namewatch_string, String registrant, String rptto, String frequency, int period, String password) { System.out.println("NAMEWATCH_CREATE: begin"); // --- Fill in the request structure epp_NamewatchCreateReq create_request = new epp_NamewatchCreateReq(); create_request.m_cmd = createCommand(epp_client_id); create_request.m_name = namewatch_string; create_request.m_registrant = registrant; create_request.m_rptto = new epp_NamewatchRptTo(rptto, EPPNamewatchBase.namewatchFreqFromString(frequency)); create_request.m_period = createNamewatchPeriod(period); create_request.m_auth_info = createPwAuthInfo(password); // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("NAMEWATCH_CREATE: Sending registration"); // Create the command object EPPNamewatchCreate namewatch_create = new EPPNamewatchCreate(); namewatch_create.setRequestData(create_request); epp_NamewatchCreateRsp create_response = null; epp_Response response = null; try { // Process the request namewatch_create = (EPPNamewatchCreate) epp_client.processAction(namewatch_create); // Retrieve response data and extract the generic response create_response = namewatch_create.getResponseData(); if (create_response != null) response = create_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (create_response == null || response == null) { System.out.println("ERROR: No response found"); return null; } return create_response; } /** * Main of the example. Performs the Namewatch creations **/ public static void main(String args[]) { epp_Command command_data = null; epp_AuthInfo domain_auth_info = null; Date namewatch_exp_date = null; if (args.length < 5) { System.err.println(USAGE); System.exit(1); } // calling setDebugLevel() with no params makes the RTK // read the "rtk.debuglevel" property from rtk.properties file RTKBase.setDebugLevel(); String epp_host_name = args[0]; String epp_host_port_string = args[1]; String epp_client_id = args[2]; String epp_password = args[3]; String namewatch_file = args[4]; // Connect to the server if (!connect(epp_host_name, epp_host_port_string, epp_client_id, epp_password)) { System.err.println("Unable to connect to EPP server. Exiting"); System.exit(1); } try { File inputFile = new File(namewatch_file); BufferedReader inf = new BufferedReader(new FileReader(inputFile)); File outputFile = new File(namewatch_file + ".result"); PrintWriter outf = new PrintWriter(new FileWriter(outputFile)); String buf = inf.readLine(); System.out.println("Banner: '" + buf + "'"); StreamTokenizer st = new StreamTokenizer(inf); st.quoteChar((int)'\"'); st.eolIsSignificant(true); while (st.nextToken() != StreamTokenizer.TT_EOF) { String transaction_id = st.sval; st.nextToken(); String auth_info = st.sval; st.nextToken(); String unique_identifier = st.sval; st.nextToken(); String namewatch_string = st.sval; st.nextToken(); String period = st.sval; st.nextToken(); String registrant = st.sval; st.nextToken(); String report_frequency = st.sval.toLowerCase(); st.nextToken(); String report_email = st.sval; if (st.nextToken() != StreamTokenizer.TT_EOL) { System.err.print("ERROR: Line contains too many fields: "); System.err.println(st.lineno()); } epp_NamewatchCreateRsp create_response = namewatchCreate(epp_client_id, namewatch_string, registrant, report_email, report_frequency, Integer.parseInt(period) , auth_info); if (create_response != null) { // Output result code and message epp_Result[] results = create_response.m_rsp.m_results; // Work around for known bug in OT&E playground if (create_response.m_creation_date == null) create_response.m_creation_date = "0000-00-00"; outf.println("\"" + results[0].m_code + "\" \"" + unique_identifier + "\" \"" + create_response.m_roid + "\" \"" + transaction_id + "\" \"" + create_response.m_creation_date.substring(0,10) + "\" \"" + create_response.m_expiration_date.substring(0,10) + "\" \"" + results[0].m_msg + "\""); } else { System.err.println("ERROR: null response from namewatchCreate"); } } inf.close(); outf.close(); } catch (IOException io) { System.err.println("Error occured during processing. Aborting"); System.err.println(io); disconnect(epp_client_id); System.exit(1); } // disonnect from the server if (!disconnect(epp_client_id)) { System.err.println("Error during disconnect from EPP server. Exiting"); System.exit(1); } } } --- NEW FILE: NamewatchExample.java --- /************************************************************************ * dotName Java EPP RTK addon * Copyright (C) 2002 Global Name Registry * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Contact information: ep...@gn... * * EPP RTK * GNR Ltd. * 125 High Holborn * London WC1V 6QA * United Kingdom ************************************************************************/ /* * $Header: /cvsroot/epp-rtk/name-rtk-addon/java/src/com/gnr/rtk/addon/example/NamewatchExample.java,v 1.1 2002/03/22 10:17:27 vhokstad Exp $ * $Revision: 1.1 $ * $Date: 2002/03/22 10:17:27 $ */ package com.gnr.rtk.addon.example; import java.util.*; import java.io.*; import com.tucows.oxrs.epp.rtk.*; import com.tucows.oxrs.epp.rtk.xml.*; import org.openrtk.idl.epp.*; import com.gnr.rtk.addon.idl.namewatch.*; import com.gnr.rtk.addon.*; import com.gnr.rtk.addon.example.*; /** * Example code for the Global Name Registry Namewatch object. Also shows creation of * EPPClient instance, login, logout and disconnect. Note that this code is not intended to be * an exhaustive overview of the classes or a set of utility to functions for using them, but * a set of examples to help people new to the RTK to start exploring it. * * @author Vidar Hokstad (with parts from the core Java RTK by Daniel Manley) * @version $Revision: 1.1 $ $Date: 2002/03/22 10:17:27 $ * @see com.tucows.oxrs.epp.rtk.EPPClient * @see com.tucows.oxrs.epp.rtk.xml.EPPGreeting * @see com.gnr.rtk.addon.EPPNamewatchInfo * @see com.gnr.rtk.addon.EPPNamewatchCreate * @see com.gnr.rtk.addon.EPPNamewatchUpdate * @see com.gnr.rtk.addon.EPPNamewatchRenew * @see com.gnr.rtk.addon.EPPNamewatchTransfer * @see com.gnr.rtk.addon.EPPNamewatchDelete **/ public class NamewatchExample extends ExampleBase { private static String USAGE = "Usage: com.gnr.rtk.addon.example.NamewatchExample epp_host_name epp_host_port epp_client_id epp_password epp_namewatch_string"; // -------- Helper functions for Namewatch tests ---------------------------------------- /** * Create an epp_NamewatchPeriod object for the specified number of years **/ private static epp_NamewatchPeriod createNamewatchPeriod(int period) { epp_NamewatchPeriod p = new epp_NamewatchPeriod(); p.m_unit = epp_NamewatchPeriodUnitType.YEAR; // We only allow registrations in whole years at present p.m_value = (short)period; return p; } /** * Create a namewatch **/ private static String namewatchCreate(String epp_client_id, String namewatch_string, String registrant, String rptto, String frequency, int period, String password) { System.out.println("NAMEWATCH_CREATE: begin"); // --- Fill in the request structure epp_NamewatchCreateReq create_request = new epp_NamewatchCreateReq(); create_request.m_cmd = createCommand(epp_client_id); create_request.m_name = namewatch_string; create_request.m_registrant = registrant; create_request.m_rptto = new epp_NamewatchRptTo(rptto, EPPNamewatchBase.namewatchFreqFromString(frequency)); create_request.m_period = createNamewatchPeriod(period); create_request.m_auth_info = createPwAuthInfo(password); // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("NAMEWATCH_CREATE: Sending registration"); // Create the command object EPPNamewatchCreate namewatch_create = new EPPNamewatchCreate(); namewatch_create.setRequestData(create_request); epp_NamewatchCreateRsp create_response = null; epp_Response response = null; try { // Process the request namewatch_create = (EPPNamewatchCreate) epp_client.processAction(namewatch_create); // Retrieve response data and extract the generic response create_response = namewatch_create.getResponseData(); if (create_response != null) response = create_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (create_response == null || response == null) { System.out.println("ERROR: No response found"); return ""; } // Output result code and message epp_Result[] results = response.m_results; System.out.println("NAMEWATCH_CREATE: m_code=[" + results[0].m_code+"] m_msg=[" + results[0].m_msg + "]"); System.out.println("NAMEWATCH_CREATE: name=["+create_response.m_name+"]"); System.out.println("NAMEWATCH_CREATE: roid=["+create_response.m_roid+"]"); System.out.println("NAMEWATCH_CREATE: end."); return create_response.m_roid; } /** * Renew a namewatch **/ private static void namewatchRenew(String epp_client_id, String roid, String expirydate, int period) { System.out.println("NAMEWATCH_RENEW: begin"); // --- Fill in the request structure epp_NamewatchRenewReq request = new epp_NamewatchRenewReq(); request.m_cmd = createCommand(epp_client_id); request.m_roid = roid; request.m_current_expiration_date = expirydate; request.m_period = createNamewatchPeriod(period); // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("NAMEWATCH_RENEW: Sending request"); // Create the command object EPPNamewatchRenew command = new EPPNamewatchRenew(); command.setRequestData(request); epp_NamewatchRenewRsp request_response = null; epp_Response response = null; try { // Process the request command = (EPPNamewatchRenew) epp_client.processAction(command); // Retrieve response data and extract the generic response request_response = command.getResponseData(); if (request_response != null) response = request_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (request_response == null || response == null) { System.out.println("ERROR: No response found"); return; } // Output result code and message epp_Result[] results = response.m_results; System.out.println("NAMEWATCH_RENEW: m_code=[" + results[0].m_code+"] m_msg=[" + results[0].m_msg + "]"); System.out.println("NAMEWATCH_RENEW: m_roid=["+request_response.m_roid+"]"); System.out.println("NAMEWATCH_RENEW: m_expiration_date=["+request_response.m_expiration_date+"]"); System.out.println("NAMEWATCH_RENEW: end."); } /** * Namewatch info request **/ private static epp_NamewatchInfoRsp namewatchInfo(String epp_client_id, String roid) { System.out.println("NAMEWATCH_INFO: begin"); // --- Fill in the request structure epp_NamewatchInfoReq info_request = new epp_NamewatchInfoReq(); info_request.m_cmd = createCommand(epp_client_id); info_request.m_roid = roid; // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("NAMEWATCH_INFO: Sending request"); // Create the command object EPPNamewatchInfo namewatch_info = new EPPNamewatchInfo(); namewatch_info.setRequestData(info_request); epp_NamewatchInfoRsp info_response = null; epp_Response response = null; try { // Process the request namewatch_info = (EPPNamewatchInfo) epp_client.processAction(namewatch_info); // Retrieve response data and extract the generic response info_response = namewatch_info.getResponseData(); if (info_response != null) response = info_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (info_response == null || response == null) { System.out.println("ERROR: No response found"); return null; } // Output result code and message epp_Result[] results = response.m_results; System.out.println("NAMEWATCH_INFO: m_code=[" + results[0].m_code+"] m_msg=[" + results[0].m_msg + "]"); System.out.println("NAMEWATCH_INFO: name=["+info_response.m_name+"]"); System.out.println("NAMEWATCH_INFO: roid=["+info_response.m_roid+"]"); System.out.println("NAMEWATCH_INFO: registrant=["+info_response.m_registrant+"]"); System.out.println("NAMEWATCH_INFO: rptto.email=["+info_response.m_rptto.m_email+"], rptto.freq=[" + EPPNamewatchBase.namewatchFreqToString(info_response.m_rptto.m_freq) + "]"); System.out.println("NAMEWATCH_INFO: status {"); for (int i=0; i< info_response.m_status.length; i++) { System.out.println("NAMEWATCH_INFO: type=["+ EPPNamewatchBase.namewatchStatusToString(info_response.m_status[i].m_type) + "]"); System.out.println("NAMEWATCH_INFO: lang=["+ info_response.m_status[i].m_lang + "]"); System.out.println("NAMEWATCH_INFO: value=["+ info_response.m_status[i].m_value + "]"); } System.out.println("NAMEWATCH_INFO: }"); System.out.println("NAMEWATCH_INFO: clID=["+info_response.m_client_id+"]"); System.out.println("NAMEWATCH_INFO: crID=["+info_response.m_created_by+"]"); System.out.println("NAMEWATCH_INFO: crDate=["+info_response.m_created_date+"]"); System.out.println("NAMEWATCH_INFO: upID=["+info_response.m_updated_by+"]"); System.out.println("NAMEWATCH_INFO: upDate=["+info_response.m_updated_date+"]"); System.out.println("NAMEWATCH_INFO: exDate=["+info_response.m_expiration_date+"]"); System.out.println("NAMEWATCH_INFO: trDate=["+info_response.m_transfer_date+"]"); System.out.println("NAMEWATCH_INFO: end."); return info_response; } /** * Namewatch delete **/ private static void namewatchDelete(String epp_client_id, String roid) { System.out.println("NAMEWATCH_DELETE: begin"); // --- Fill in the request structure epp_NamewatchDeleteReq delete_request = new epp_NamewatchDeleteReq(); delete_request.m_cmd = createCommand(epp_client_id); delete_request.m_roid = roid; // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("NAMEWATCH_DELETE: Sending request"); // Create the command object EPPNamewatchDelete namewatch_delete = new EPPNamewatchDelete(); namewatch_delete.setRequestData(delete_request); epp_NamewatchDeleteRsp delete_response = null; epp_Response response = null; try { // Process the request namewatch_delete = (EPPNamewatchDelete) epp_client.processAction(namewatch_delete); // Retrieve response data and extract the generic response delete_response = namewatch_delete.getResponseData(); if (delete_response != null) response = delete_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (delete_response == null || response == null) { System.out.println("ERROR: No response found"); return; } // Output result code and message epp_Result[] results = response.m_results; System.out.println("NAMEWATCH_DELETE: m_code=[" + results[0].m_code+"] m_msg=[" + results[0].m_msg + "]"); System.out.println("NAMEWATCH_DELETE: end."); return; } /** * Transfer query **/ private static void namewatchTransfer(String epp_client_id, String roid, epp_TransferOpType type, String password, int period) { System.out.println("NAMEWATCH_TRANSFER: begin"); // --- Fill in the request structure epp_NamewatchTransferReq request = new epp_NamewatchTransferReq(); request.m_cmd = createCommand(epp_client_id); request.m_roid = roid; // Period is only relevant if you are actually doing a transfer, in which case registries may require // you to renew for at least one year at the same time. if (period != 0) request.m_period = createNamewatchPeriod(period); request.m_trans = new epp_TransferRequest(); request.m_trans.m_op = type; request.m_trans.m_auth_info = createPwAuthInfo(password); // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("NAMEWATCH_RENEW: Sending request"); // Create the command object EPPNamewatchTransfer command = new EPPNamewatchTransfer(); command.setRequestData(request); epp_NamewatchTransferRsp request_response = null; epp_Response response = null; try { // Process the request command = (EPPNamewatchTransfer) epp_client.processAction(command); // Retrieve response data and extract the generic response request_response = command.getResponseData(); if (request_response != null) response = request_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (request_response == null || response == null) { System.out.println("ERROR: No response found"); return; } // Output result code and message epp_Result[] results = response.m_results; System.out.println("NAMEWATCH_TRANSFER: m_code=[" + results[0].m_code+"] m_msg=[" + results[0].m_msg + "]"); System.out.println("NAMEWATCH_TRANSFER: m_transfer_status=["+EPPXMLBase.transferStatusToString(request_response.m_transfer_status)+"]"); System.out.println("NAMEWATCH_TRANSFER: end."); } /** * Change information about a Namewatch **/ private static void namewatchUpdateChange(String epp_client_id, String roid, String registrant, String rptTo, String frequency, String password) { System.out.println("NAMEWATCH_UPDATE(change): begin"); // --- Fill in the request structure epp_NamewatchUpdateReq request = new epp_NamewatchUpdateReq(); request.m_cmd = createCommand(epp_client_id); request.m_roid = roid; request.m_change = new epp_NamewatchUpdateChange(); if (registrant != null) request.m_change.m_registrant = registrant; if (rptTo != null) { request.m_change.m_rptto = new epp_NamewatchRptTo(rptTo, EPPNamewatchBase.namewatchFreqFromString(frequency)); } if (password != null) request.m_change.m_auth_info = createPwAuthInfo(password); // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("NAMEWATCH_UPDATE(change): Sending request"); // Create the command object EPPNamewatchUpdate command = new EPPNamewatchUpdate(); command.setRequestData(request); epp_NamewatchUpdateRsp request_response = null; epp_Response response = null; try { // Process the request command = (EPPNamewatchUpdate) epp_client.processAction(command); // Retrieve response data and extract the generic response request_response = command.getResponseData(); if (request_response != null) response = request_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (request_response == null || response == null) { System.out.println("ERROR: No response found"); return; } // Output result code and message epp_Result[] results = response.m_results; System.out.println("NAMEWATCH_UPDATE(change): m_code=[" + results[0].m_code+"] m_msg=[" + results[0].m_msg + "]"); System.out.println("NAMEWATCH_UPDATE(change): end."); } /** * Add or remove status information about a Namewatch * * @param epp_client_id The ID of this EPP client * @param addRemove true to add a status, false if you wish to remove a status * @param status The status you wish to change * @param lang The language used for the reason string or null * @param reason The reason for the status or null. **/ private static void namewatchUpdateAddRemove(String epp_client_id, String roid, boolean addRemove, String status, String lang, String reason) { System.out.println("NAMEWATCH_UPDATE(addRemove): begin"); // --- Fill in the request structure epp_NamewatchUpdateReq request = new epp_NamewatchUpdateReq(); request.m_cmd = createCommand(epp_client_id); request.m_roid = roid; request.m_change = new epp_NamewatchUpdateChange(); epp_NamewatchUpdateAddRemove update_type = new epp_NamewatchUpdateAddRemove(); if (addRemove) request.m_add = update_type; else request.m_remove = update_type; update_type.m_status = new epp_NamewatchStatus[1]; update_type.m_status[0] = new epp_NamewatchStatus(); update_type.m_status[0].m_type = EPPNamewatchBase.namewatchStatusFromString(status); update_type.m_status[0].m_lang = lang; update_type.m_status[0].m_value = reason; // --- Ask the EPPClient to process the request, and retrieve a response from the server System.out.println("NAMEWATCH_UPDATE(addRemove): Sending request"); // Create the command object EPPNamewatchUpdate command = new EPPNamewatchUpdate(); command.setRequestData(request); epp_NamewatchUpdateRsp request_response = null; epp_Response response = null; try { // Process the request command = (EPPNamewatchUpdate) epp_client.processAction(command); // Retrieve response data and extract the generic response request_response = command.getResponseData(); if (request_response != null) response = request_response.m_rsp; } catch ( epp_XMLException xcp ) { System.err.println("ERROR: epp_XMLException! ["+xcp.m_error_message+"]"); } catch ( epp_Exception xcp ) { System.err.println("ERROR: epp_Exception!"); epp_Result[] results = xcp.m_details; System.err.println("\tresult: ["+results[0]+"]"); } catch ( Exception xcp ) { System.err.println("ERROR: Exception! ["+xcp.getClass().getName()+"] ["+xcp.getMessage()+"]"); xcp.printStackTrace(); } if (request_response == null || response == null) { System.out.println("ERROR: No response found"); return; } // Output result code and message epp_Result[] results = response.m_results; System.out.println("NAMEWATCH_UPDATE(addRemove): m_code=[" + results[0].m_code+"] m_msg=[" + results[0].m_msg + "]"); System.out.println("NAMEWATCH_UPDATE(addRemove): end."); } /** * Main of the example. Performs Namewatch info, create, update, renew, transfer and delete. * * Most of the tests that should fail will succeed in the .name OT&E development environment, * as the OT&E development environment does not keep state of objects. They should however * give the expected results once the real certification environment goes live. **/ public static void main(String args[]) { System.out.println("Start of the Namewatch example"); epp_Command command_data = null; epp_AuthInfo domain_auth_info = null; Date namewatch_exp_date = null; if (args.length < 5) { System.err.println(USAGE); System.exit(1); } // calling setDebugLevel() with no params makes the RTK // read the "rtk.debuglevel" property from rtk.properties file RTKBase.setDebugLevel(); String epp_host_name = args[0]; String epp_host_port_string = args[1]; String epp_client_id = args[2]; String epp_password = args[3]; String epp_namewatch_string = args[4]; System.out.println("WARNING: Most of the tests marked [SHOULD_FAIL] will succeed in the .name OT&E playground, as the"); System.out.println(" playground environment does not keep state of objects and only return example responses"); System.out.println(" based on the data passed. The tests should give the expected result in the OT&E certification"); System.out.println(" environment available from April 15th"); // Connect to the server if (!connect(epp_host_name, epp_host_port_string, epp_client_id, epp_password)) { System.err.println("Unable to connect to EPP server. Exiting"); System.exit(1); } String roid1; // We use this to store roids that are needed in later tests String roid2; // As above epp_NamewatchInfoRsp info1; // We save this to use in a renew request System.out.println("--- TEST 001 [SHOULD_SUCCEED]: Create namewatch."); roid1 = namewatchCreate(epp_client_id, epp_namewatch_string, "MyContactID", "te...@ni...", "weekly", 5 , "abc123"); System.out.println("--- TEST 002 [SHOULD_SUCCEED]: Register same string again. Namewatch allows duplicate registration, so this should succeed"); roid2 = namewatchCreate(epp_client_id, epp_namewatch_string, "MyContactID", "te...@ni...", "weekly", 5 , "abc123"); System.out.println("--- TEST 003 [SHOULD_SUCCEED]: Request info for the returned roid"); info1 = namewatchInfo(epp_client_id, roid1); System.out.println("--- TEST 004 [SHOULD_FAIL]: Request info for non-existant roid"); namewatchInfo(epp_client_id, "thisRoidShouldNotExist-NAME"); System.out.println("--- TEST 005 [SHOULD_SUCCEED]: Delete the second Namewatch registered"); namewatchDelete(epp_client_id, roid2); System.out.println("--- TEST 006 [SHOULD_FAIL]: Request info for the just deleted Namewatch"); namewatchInfo(epp_client_id, roid2); System.out.println("--- TEST 007 [SHOULD_SUCCEED]: Renew Namewatch for 1 year"); namewatchRenew(epp_client_id, roid1, info1.m_expiration_date, 1); System.out.println("--- TEST 008 [SHOULD_SUCCEED]: Requesting transfer status. Should not show any transfer in progress"); namewatchTransfer(epp_client_id, roid1, epp_TransferOpType.QUERY, "abc123",0); System.out.println("--- TEST 009 [SHOULD_FAIL]: Approving transfer. Should fail as there is no transfer pending"); namewatchTransfer(epp_client_id, roid1, epp_TransferOpType.APPROVE, "abc123",0); System.out.println("--- TEST 009 [SHOULD_FAIL]: Rejecting transfer. Should fail as there is no transfer pending"); namewatchTransfer(epp_client_id, roid1, epp_TransferOpType.APPROVE, "abc123",0); System.out.println("--- TEST 009 [SHOULD_FAIL]: Requesting transfer. Should fail as we already own the object"); namewatchTransfer(epp_client_id, roid1, epp_TransferOpType.REQUEST, "abc123",1); System.out.println("--- TEST 010 [SHOULD_SUCCEED]: Changing e-mail reporting address for Namewatch"); namewatchUpdateChange(epp_client_id, roid1, null , "reports@sometestcustomer.test", "weekly", null); System.out.println("--- TEST 011 [SHOULD_SUCCEED]: Requesting info"); namewatchInfo(epp_client_id, roid1); System.out.println("--- TEST 012 [SHOULD_SUCCEED]: Adding a status"); namewatchUpdateAddRemove(epp_client_id, roid1, true, "clientTransferProhibited", "en","Customer has defaulted on payment"); System.out.println("--- TEST 013 [SHOULD_SUCCEED]: Requesting info. Confirm that above status was added"); namewatchInfo(epp_client_id, roid1); // disonnect from the server if (!disconnect(epp_client_id)) { System.err.println("Error during disconnect from EPP server. Exiting"); System.exit(1); } } } |