@Override
  protected void configureFrom(Properties properties) {
    super.configureFrom(properties);

    proxyPort = getInteger(properties, "betamax.proxyPort", DEFAULT_PROXY_PORT);
    proxyTimeoutSeconds = getInteger(properties, "betamax.proxyTimeout", DEFAULT_PROXY_TIMEOUT);
    sslSupport = getBoolean(properties, "betamax.sslSupport");
  }
  @Override
  protected void configureWithDefaults() {
    super.configureWithDefaults();

    proxyPort = DEFAULT_PROXY_PORT;
    proxyTimeoutSeconds = DEFAULT_PROXY_TIMEOUT;
    sslSupport = false;
    sslSocketFactory = DEFAULT_SSL_SOCKET_FACTORY;
  }
 @Override
 public void start(String tapeName, Map arguments) {
   if (interceptor == null) {
     try {
       interceptor = new ProxyServer(this);
     } catch (UnknownHostException e) {
       throw new RuntimeException("Unable to start proxy", e);
     }
   }
   if (!interceptor.isRunning()) {
     interceptor.start();
   }
   super.start(tapeName, arguments);
 }
 @Override
 public void stop() {
   interceptor.stop();
   super.stop();
 }