EMMA Coverage Report (generated Sun Sep 18 11:34:27 PHT 2011)
[all classes][org.apache.maven.continuum.project.builder]

COVERAGE SUMMARY FOR SOURCE FILE [EasySSLSocketFactory.java]

nameclass, %method, %block, %line, %
EasySSLSocketFactory.java100% (1/1)20%  (2/10)7%   (10/145)9%   (3/33)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class EasySSLSocketFactory100% (1/1)20%  (2/10)7%   (10/145)9%   (3/33)
connectSocket (Socket, String, int, InetAddress, int, HttpParams): Socket 0%   (0/1)0%   (0/46)0%   (0/12)
createEasySSLContext (): SSLContext 0%   (0/1)0%   (0/31)0%   (0/6)
createSocket (): Socket 0%   (0/1)0%   (0/11)0%   (0/3)
createSocket (Socket, String, int, boolean): Socket 0%   (0/1)0%   (0/22)0%   (0/3)
equals (Object): boolean 0%   (0/1)0%   (0/11)0%   (0/1)
getSSLContext (): SSLContext 0%   (0/1)0%   (0/9)0%   (0/3)
hashCode (): int 0%   (0/1)0%   (0/3)0%   (0/1)
isSecure (Socket): boolean 0%   (0/1)0%   (0/2)0%   (0/1)
<static initializer> 100% (1/1)100% (4/4)100% (1/1)
EasySSLSocketFactory (): void 100% (1/1)100% (6/6)100% (2/2)

1package org.apache.maven.continuum.project.builder;
2 
3/*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements.  See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership.  The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License.  You may obtain a copy of the License at
11 *
12 *   http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied.  See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21 
22import java.io.IOException;
23import java.net.InetAddress;
24import java.net.InetSocketAddress;
25import java.net.Socket;
26import java.net.UnknownHostException;
27 
28import javax.net.ssl.SSLContext;
29import javax.net.ssl.SSLSocket;
30import javax.net.ssl.TrustManager;
31 
32import org.apache.http.conn.ConnectTimeoutException;
33import org.apache.http.conn.scheme.LayeredSocketFactory;
34import org.apache.http.conn.scheme.SocketFactory;
35import org.apache.http.params.HttpConnectionParams;
36import org.apache.http.params.HttpParams;
37import org.slf4j.Logger;
38import org.slf4j.LoggerFactory;
39 
40/**
41 * This socket factory will create ssl socket that accepts self signed certificate
42 *
43 * @author olamy
44 * @version $Id: EasySSLSocketFactory.java 764863 2009-04-14 16:28:12Z evenisse $
45 * @since 1.2.3
46 */
47public class EasySSLSocketFactory
48    implements SocketFactory, LayeredSocketFactory
49{
50    private static final Logger log = LoggerFactory.getLogger( EasySSLSocketFactory.class );
51 
52    private SSLContext sslcontext = null;
53 
54    private static SSLContext createEasySSLContext()
55        throws IOException
56    {
57        try
58        {
59            SSLContext context = SSLContext.getInstance( "SSL" );
60            context.init( null, new TrustManager[]{new EasyX509TrustManager( null )}, null );
61            return context;
62        }
63        catch ( Exception e )
64        {
65            LoggerFactory.getLogger( EasySSLSocketFactory.class ).error( e.getMessage(), e );
66            throw new IOException( e.getMessage() );
67        }
68    }
69 
70    private SSLContext getSSLContext()
71        throws IOException
72    {
73        if ( this.sslcontext == null )
74        {
75            this.sslcontext = createEasySSLContext();
76        }
77        return this.sslcontext;
78    }
79 
80    /**
81     * @see org.apache.http.conn.scheme.SocketFactory#connectSocket(java.net.Socket, java.lang.String, int, java.net.InetAddress, int, org.apache.http.params.HttpParams)
82     */
83    public Socket connectSocket( Socket sock, String host, int port, InetAddress localAddress, int localPort,
84                                 HttpParams params )
85        throws IOException, UnknownHostException, ConnectTimeoutException
86    {
87        int connTimeout = HttpConnectionParams.getConnectionTimeout( params );
88        int soTimeout = HttpConnectionParams.getSoTimeout( params );
89 
90        InetSocketAddress remoteAddress = new InetSocketAddress( host, port );
91        SSLSocket sslsock = (SSLSocket) ( ( sock != null ) ? sock : createSocket() );
92 
93        if ( ( localAddress != null ) || ( localPort > 0 ) )
94        {
95            // we need to bind explicitly
96            if ( localPort < 0 )
97            {
98                localPort = 0; // indicates "any"
99            }
100            InetSocketAddress isa = new InetSocketAddress( localAddress, localPort );
101            sslsock.bind( isa );
102        }
103 
104        sslsock.connect( remoteAddress, connTimeout );
105        sslsock.setSoTimeout( soTimeout );
106        return sslsock;
107 
108    }
109 
110    /**
111     * @see org.apache.http.conn.scheme.SocketFactory#createSocket()
112     */
113    public Socket createSocket()
114        throws IOException
115    {
116        if ( log.isDebugEnabled() )
117        {
118            log.debug( "create socket" );
119        }
120        return getSSLContext().getSocketFactory().createSocket();
121    }
122 
123    /**
124     * @see org.apache.http.conn.scheme.SocketFactory#isSecure(java.net.Socket)
125     */
126    public boolean isSecure( Socket socket )
127        throws IllegalArgumentException
128    {
129        return true;
130    }
131 
132    /**
133     * @see org.apache.http.conn.scheme.LayeredSocketFactory#createSocket(java.net.Socket, java.lang.String, int, boolean)
134     */
135    public Socket createSocket( Socket socket, String host, int port, boolean autoClose )
136        throws IOException, UnknownHostException
137    {
138        if ( log.isDebugEnabled() )
139        {
140            log.debug( "create socket host " + host + ", port " + port );
141        }
142        return getSSLContext().getSocketFactory().createSocket();
143    }
144 
145    // -------------------------------------------------------------------
146    //  javadoc in org.apache.http.conn.scheme.SocketFactory says :
147    //  Both Object.equals() and Object.hashCode() must be overridden 
148    //  for the correct operation of some connection managers
149    // -------------------------------------------------------------------
150 
151    public boolean equals( Object obj )
152    {
153        return ( ( obj != null ) && obj.getClass().equals( EasySSLSocketFactory.class ) );
154    }
155 
156    public int hashCode()
157    {
158        return EasySSLSocketFactory.class.hashCode();
159    }
160 
161 
162}

[all classes][org.apache.maven.continuum.project.builder]
EMMA 2.0.5312 (C) Vladimir Roubtsov