Package com.canoo.webtest.extension.applet.runner.https

Source Code of com.canoo.webtest.extension.applet.runner.https.Handler

// Copyright (c) 2002-2005 Canoo Engineering AG, Switzerland. All Rights Reserved.
package com.canoo.webtest.extension.applet.runner.https;

import com.canoo.webtest.engine.Configuration;
import com.canoo.webtest.extension.applet.runner.http.HttpURLConnection;
import com.canoo.webtest.interfaces.IConnectionInitializer;
import com.canoo.webtest.interfaces.IPropertyHandler;
import com.canoo.webtest.security.ConnectionInitializationException;
import com.canoo.webtest.steps.request.TargetHelper;
import org.apache.commons.httpclient.HttpsURL;
import org.apache.log4j.Logger;

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLStreamHandler;

/**
* @author Denis N. Antonioli
*/
public class Handler extends URLStreamHandler
{
    private static final Logger LOG = Logger.getLogger(Handler.class);
    private static boolean sAlreadyInitialized;
    private static Configuration sConfig;

    public static final IPropertyHandler SYSTEM_PROPERTY_HANDLER = new IPropertyHandler()
    {
        public String getProperty(String propertyName) {
            return System.getProperty(propertyName);
        }
    };

    static {
        sConfig = new Configuration();
        sConfig.setPropertyHandler(SYSTEM_PROPERTY_HANDLER);
        sConfig.setProtocol("https");
    }

    public static boolean isAlreadyInitialized() {
        return sAlreadyInitialized;
    }

    static void initializeCustomConnectionInitializer() {
        if (sAlreadyInitialized) {
            return;
        }
        sAlreadyInitialized = true;

        String customInitializerClassName = sConfig.getExternalProperty(TargetHelper.CONNECTION_INITIALIZER_KEY);
        if (customInitializerClassName == null) {
            return;
        }

        allocateAndInit(customInitializerClassName);
    }

    static void allocateAndInit(final String customInitializerClassName) {
        IConnectionInitializer customInitializer;
        try {
            customInitializer = (IConnectionInitializer) Class.forName(customInitializerClassName).newInstance();
        } catch (Exception e) {
            LOG.info("exception instantiating Connection Initializer " + e.getMessage(), e);
            throw (RuntimeException) e;
        }
        try {
            customInitializer.initializeConnection(sConfig);
            LOG.info("custom connection initializer set-up.");
        } catch (ConnectionInitializationException e) {
            LOG.error(e.getMessage(), e);
        }
    }

    protected int getDefaultPort() {
        return HttpsURL.DEFAULT_PORT;
    }

    protected URLConnection openConnection(URL url) throws IOException {
        initializeCustomConnectionInitializer();
        return new HttpURLConnection(url);
    }
}
TOP

Related Classes of com.canoo.webtest.extension.applet.runner.https.Handler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.