You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-dev@ws.apache.org by "Julio Francisco Veronelli (JIRA)" <xm...@ws.apache.org> on 2006/07/31 20:35:15 UTC

[jira] Commented: (XMLRPC-101) Possibility to subclass XmlRpcSunHttpTransport for added functionality

    [ http://issues.apache.org/jira/browse/XMLRPC-101?page=comments#action_12424598 ] 
            
Julio Francisco Veronelli commented on XMLRPC-101:
--------------------------------------------------

I copy the method i'm trying to overwrite as an example. I think it would be a nice improvement to be able to create a customized connection by overwriting a method in XmlRpcSunHttpTransport.

  public Object sendRequest(XmlRpcRequest pRequest) throws XmlRpcException {
    XmlRpcHttpClientConfig config = (XmlRpcHttpClientConfig)pRequest.getConfig();
    URLConnection result = null;
    try {
      //TIP set trusted certificates
      if ((_sslFactory == null) && (_keystore != null)) {
        TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
        tmf.init(_keystore);
        SSLContext sslContext = SSLContext.getInstance("TLS");
        sslContext.init(null,tmf.getTrustManagers(),null);
        _sslFactory = sslContext.getSocketFactory();
      }
      //TIP create connection
      URL url = config.getServerURL();
      if (_proxy != null) result = url.openConnection(_proxy);
      else result = url.openConnection();
      if ((_sslFactory != null) && (result instanceof HttpsURLConnection))
        ((HttpsURLConnection)result).setSSLSocketFactory(_sslFactory);
      result.setUseCaches(false);
      result.setDoInput(true);
      result.setDoOutput(true);
    }
    catch (GeneralSecurityException ex) {
      throw new XmlRpcException("Failed to set certificate trust chain",ex);
    }
    catch (Exception ex) {
      throw new XmlRpcException("Failed to create URLConnection: " + ex.getMessage(),ex);
    }
    return super.sendRequest(pRequest);
  }

> Possibility to subclass XmlRpcSunHttpTransport for added functionality
> ----------------------------------------------------------------------
>
>                 Key: XMLRPC-101
>                 URL: http://issues.apache.org/jira/browse/XMLRPC-101
>             Project: XML-RPC
>          Issue Type: Improvement
>          Components: Source
>    Affects Versions: 3.0rc1
>            Reporter: Julio Francisco Veronelli
>            Priority: Trivial
>
> Could it be possible to make the URLConnection in class org.apache.xmlrpc.client.XmlRpcSunHttpTransport protected instead of private? That is:
> protected URLConnection conn;
> REASON:
> That way is much easier to subclass for added functionality. In particular, i'm subclassing it to set a java.net.Proxy or a java.security.KeyStore used for setting a SSL connection.
> In XML-RPC 3.0a1 it was easy to do, all that was needed was to subclass method newConnection(). In 3.0RC1 that method is gone, and overwriting sendRequest(XmlRpcRequest) is not possible, since conn is private.
> I tried also extending XmlRpcHttpTransport, but it is not possible, because org.apache.xmlrpc.client.XmlRpcStreamTransport.RequestWriter is protected and cannot be accessed.
> Thanks in advance.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: xmlrpc-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: xmlrpc-dev-help@ws.apache.org