View Javadoc

1   /*
2    * (C)opyright 2010, Nikolaos Georgosopoulos
3    *
4    * This file is part of URLChecker.
5   
6       URLChecker is free software: you can redistribute it and/or modify
7       it under the terms of the Lesser General Public License as published by
8       the Free Software Foundation, either version 3 of the License, or
9       (at your option) any later version.
10  
11      URLChecker is distributed in the hope that it will be useful,
12      but WITHOUT ANY WARRANTY; without even the implied warranty of
13      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14      GNU General Public License for more details.
15  
16      You should have received a copy of the Lesser General Public License
17      along with URLChecker.  If not, see <http://www.gnu.org/licenses/>.
18  
19   */
20  package net.sf.urlchecker.v2.communication;
21  
22  import org.apache.commons.configuration.ConfigurationException;
23  import org.apache.http.client.HttpClient;
24  
25  /**
26   * The new CommunicationBuilder Class. This and the CheckUrlsCommand in the v2
27   * are mandatory to use the new HttpClient.
28   * 
29   * <p>
30   * <b> $Id: CommunicationBuilder.java 183 2010-12-17 19:10:21Z georgosn $</b>
31   * </p>
32   * 
33   * @author $LastChangedBy: georgosn $
34   * @version $LastChangedRevision: 183 $
35   */
36  public class CommunicationBuilder {
37  
38      /**
39       * Returns the multithreaded client configured by the default
40       * httpconfigurations file in the class-path.
41       * 
42       * @return the multithreaded client
43       * @throws org.apache.commons.configuration.ConfigurationException
44       *             the configuration exception
45       */
46      public HttpClient getMultithreadedClient() throws ConfigurationException {
47          return CommunicationFactory.getInstance().configureClient(true);
48      }
49  
50      /**
51       * Returns the multithreaded client configured by the given file if it
52       * exists in the class path. If the file cannot be found the
53       * httpconfigurations.xml will be tried and if nothing found the internal
54       * default configuration will be used.
55       * 
56       * @param fileName
57       *            the file name
58       * @return the multithreaded client
59       * @throws org.apache.commons.configuration.ConfigurationException
60       *             the configuration exception
61       */
62      public HttpClient getMultithreadedClient(String fileName)
63              throws ConfigurationException {
64          return CommunicationFactory.getInstance().configureClient(true,
65                  fileName);
66      }
67  
68      /**
69       * Return the singlethreaded client configured by the default
70       * httpconfigurations file in the class-path.
71       * 
72       * @return the singlethreaded client
73       * @throws org.apache.commons.configuration.ConfigurationException
74       *             the configuration exception
75       */
76      public HttpClient getSinglethreadedClient() throws ConfigurationException {
77          return CommunicationFactory.getInstance().configureClient(false);
78      }
79  
80      /**
81       * Gets the singlethreaded client configured by the given file if it exists
82       * in the class path. If the file cannot be found the httpconfigurations.xml
83       * will be tried and if nothing found the internal default configuration
84       * will be used.
85       * 
86       * @param fileName
87       *            the file name
88       * @return the singlethreaded client
89       * @throws org.apache.commons.configuration.ConfigurationException
90       *             the configuration exception
91       */
92      public HttpClient getSinglethreadedClient(String fileName)
93              throws ConfigurationException {
94          return CommunicationFactory.getInstance().configureClient(false,
95                  fileName);
96      }
97  
98      /**
99       * Shutdown communication. Releases any connections opened and forgotten. If
100      * used, the client is lost and needs to be reconfigured for another use.
101      */
102     public void shutdownCommunication() {
103         CommunicationFactory.getInstance().shutdown();
104     }
105 }