summaryrefslogtreecommitdiff
path: root/setup_native/source/registration/com/sun/star/servicetag/SunConnection.java
diff options
context:
space:
mode:
Diffstat (limited to 'setup_native/source/registration/com/sun/star/servicetag/SunConnection.java')
-rw-r--r--setup_native/source/registration/com/sun/star/servicetag/SunConnection.java296
1 files changed, 0 insertions, 296 deletions
diff --git a/setup_native/source/registration/com/sun/star/servicetag/SunConnection.java b/setup_native/source/registration/com/sun/star/servicetag/SunConnection.java
deleted file mode 100644
index 4a3d2ee9722f..000000000000
--- a/setup_native/source/registration/com/sun/star/servicetag/SunConnection.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: SunConnection.java,v $
- *
- * $Revision: 1.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package com.sun.star.servicetag;
-
-import java.io.*;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.io.OutputStreamWriter;
-import java.util.Locale;
-import javax.net.ssl.HttpsURLConnection;
-
-/**
- * Sun Connection Class for Product Registration.
- *
- * Registration Web Application Interface
- * 1) POST the product registry to the output stream of the registration
- * relay service.
- * 2) Open the webapp URL from a browser with the following parameters:
- * registry-urn
- * product=jdk
- * locale=<locale-lang>
- *
- * @see https://sn-tools.central.sun.com/twiki/pub/ServiceTags/RegistrationRelayService/
- *
- */
-class SunConnection {
-
- private static String JDK_REGISTRATION_URL =
- "https://inventory.sun.com/RegistrationWeb/register";
- private static String SANDBOX_TESTING_URL =
- "https://connection-tst.sun.com/RegistrationWeb/register";
-
- // System properties for testing
- private static String SVCTAG_REGISTER_TESTING = "servicetag.register.testing";
- private static String SVCTAG_REGISTRATION_URL = "servicetag.registration.url";
- private static String SVCTAG_CONNECTION_TIMEOUT = "servicetag.connection.timeout";
-
- private SunConnection() {
- }
-
- /**
- * Returns a URL for JDK registration interfacing with the Sun Connection
- * registration relay service in this form:
- * <registration-url>/<registry_urn>?product=jdk&locale=<locale-lang>
- *
- * The <registration-url> can be overridden by an environment
- * variable or a system property.
- *
- * 1) "servicetag.register.testing" system property to switch to the
- * Sun Connection registration sandbox testing.
- * 2) "servicetag.registration.url" system property to override
- * the URL
- * 3) Default production URL
- *
- */
- static URL getRegistrationURL(String registrationURN) {
- String url = System.getProperty(SVCTAG_REGISTRATION_URL);
- if (url == null) {
- if (System.getProperty(SVCTAG_REGISTER_TESTING) != null) {
- url = SANDBOX_TESTING_URL;
- } else {
- url = JDK_REGISTRATION_URL;
- }
- }
-
- // trim whitespaces
- url = url.trim();
- if (url.length() == 0) {
- throw new InternalError("Empty registration url set");
- }
-
- // Add the registry_urn in the URL's query
- String registerURL = rewriteURL(url, registrationURN);
- try {
- return new URL(registerURL);
- } catch (MalformedURLException ex) {
- // should never reach here
- InternalError x =
- new InternalError(ex.getMessage());
- x.initCause(ex);
- throw x;
- }
- }
-
- private static String rewriteURL(String url, String registryURN) {
- StringBuilder sb = new StringBuilder(url.trim());
- int len = sb.length();
- if (sb.charAt(len-1) != '/') {
- sb.append('/');
- }
- sb.append(registryURN);
- sb.append("?");
- sb.append("product=jdk");
- sb.append("&");
- sb.append("locale=").append(Locale.getDefault().getLanguage());
- return sb.toString();
- }
-
- /**
- * Registers all products in the given product registry. If it fails
- * to post the service tag registry, open the browser with the offline
- * registration page.
- *
- * @param regData registration data to be posted to the Sun Connection
- * for registration.
- *
- * @throws IOException if I/O error occurs in this operation
- */
- public static void register(RegistrationData regData) throws IOException {
- // Gets the URL for SunConnection registration relay service
- URL url = getRegistrationURL(regData.getRegistrationURN());
-
- // Post the Product Registry to Sun Connection
- boolean succeed = postRegistrationData(url, regData);
- if (succeed) {
- // service tags posted successfully
- // now prompt for registration
- openBrowser(url);
- } else {
- // open browser with the offline registration page
- openOfflineRegisterPage();
- }
- }
-
- /**
- * Opens a browser for JDK product registration.
- * @param url Registration Webapp URL
- */
- private static void openBrowser(URL url) throws IOException {
- if (!BrowserSupport.isSupported()) {
- if (Util.isVerbose()) {
- System.out.println("Browser is not supported");
- }
- return;
- }
-
- try {
- BrowserSupport.browse(url.toURI());
- } catch (URISyntaxException ex) {
- InternalError x = new InternalError("Error in registering: " + ex.getMessage());
- x.initCause(ex);
- throw x;
- } catch (IllegalArgumentException ex) {
- if (Util.isVerbose()) {
- ex.printStackTrace();
- }
- } catch (UnsupportedOperationException ex) {
- // ignore if not supported
- if (Util.isVerbose()) {
- ex.printStackTrace();
- }
- }
- }
-
- /**
- * POST service tag registry to Sun Connection
- * @param loc the URL of the webapp to handle the POST request
- * @param streg the Service Tag registry
- * @return true if posting succeeds; otherwise, false.
- */
- private static boolean postRegistrationData(URL url,
- RegistrationData registration) {
- try {
- HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
- con.setDoInput(true);
- con.setDoOutput(true);
- con.setUseCaches(false);
- con.setAllowUserInteraction(false);
-
- // default 10 seconds timeout
- String timeout = System.getProperty(SVCTAG_CONNECTION_TIMEOUT, "10");
- con.setConnectTimeout(Util.getIntValue(timeout) * 1000);
-
- if (Util.isVerbose()) {
- System.out.println("Connecting to post registration data at " + url);
- }
-
- con.setRequestMethod("POST");
- con.setRequestProperty("Content-Type", "text/xml;charset=\"utf-8\"");
- con.connect();
-
- OutputStream out = con.getOutputStream();
- registration.storeToXML(out);
- out.flush();
- out.close();
-
- int returnCode = con.getResponseCode();
- if (Util.isVerbose()) {
- System.out.println("POST return status = " + returnCode);
- printReturnData(con, returnCode);
- }
- return (returnCode == HttpURLConnection.HTTP_OK);
- } catch (MalformedURLException me) {
- // should never reach here
- InternalError x = new InternalError("Error in registering: " + me.getMessage());
- x.initCause(me);
- throw x;
- } catch (Exception ioe) {
- // SocketTimeoutException, IOException or UnknownHostException
- if (Util.isVerbose()) {
- ioe.printStackTrace();
- }
- return false;
- }
- }
-
- /**
- * Opens the offline registratioin page in the browser.
- *
- */
- private static void openOfflineRegisterPage()
- throws IOException {
- if (!BrowserSupport.isSupported()) {
- if (Util.isVerbose()) {
- System.out.println("Browser is not supported");
- }
- return;
- }
-
- File registerPage = Installer.getRegistrationHtmlPage();
- try {
- BrowserSupport.browse(registerPage.toURI());
- } catch (FileNotFoundException ex) {
- // should never reach here
- InternalError x =
- new InternalError("Error in launching " + registerPage + ": " + ex.getMessage());
- x.initCause(ex);
- throw x;
- } catch (IllegalArgumentException ex) {
- if (Util.isVerbose()) {
- ex.printStackTrace();
- }
- } catch (UnsupportedOperationException ex) {
- // ignore if not supported
- if (Util.isVerbose()) {
- ex.printStackTrace();
- }
- }
- }
-
- private static void printReturnData(HttpURLConnection con, int returnCode)
- throws IOException {
- BufferedReader reader = null;
- try {
- if (returnCode < 400) {
- reader = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
- } else {
- reader = new BufferedReader(
- new InputStreamReader(con.getErrorStream()));
- }
- StringBuilder sb = new StringBuilder();
- String line;
- while ((line = reader.readLine()) != null) {
- sb.append(line).append("\n");
- }
- System.out.println("Response is : ");
- System.out.println(sb.toString());
- } finally {
- if (reader != null) {
- reader.close();
- }
- }
- }
-}