root/trunk/src/java/org/jcoderz/commons/connector/http/transport/HttpClientConnection.java

Revision 1011, 4.8 kB (checked in by amandel, 4 years ago)

Aligned svn keyword settings.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
Line 
1/*
2 * $Id$
3 *
4 * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 *
10 *    * Redistributions of source code must retain the above copyright
11 *      notice, this list of conditions and the following disclaimer.
12 *    * Redistributions in binary form must reproduce the above
13 *      copyright notice, this list of conditions and the following
14 *      disclaimer in the documentation and/or other materials
15 *      provided with the distribution.
16 *    * Neither the name of the jCoderZ.org Project nor the names of
17 *      its contributors may be used to endorse or promote products
18 *      derived from this software without specific prior written
19 *      permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33package org.jcoderz.commons.connector.http.transport;
34
35import java.io.InputStream;
36import java.security.KeyStore;
37
38
39/**
40 * Interface used by the commons http connector to use the jakarta
41 * commons-httpclient.
42 *
43 */
44public interface HttpClientConnection
45{
46   /**
47    * Establishes the connection to the target host using the given parameter
48    * values. At this step only the underlaying objects will be created and
49    * initializied. The physical connection will be open later on.
50    *
51    * @param url the URL to connect to
52    * @param connectTimeout the connect timeout used for connecting the host
53    * @param readTimeout the read timeout used whilst reading the response
54    *                      from the target host
55    */
56   void establishConnection (
57      String url, int connectTimeout, int readTimeout);
58
59   /**
60    * Releases the connection for reuse.
61    * The physical connection is afterwards still open.
62    */
63   void releaseConnection ();
64
65   /**
66    * Closes the physical connection.
67    */
68   void closeConnection ();
69
70   /**
71    * Executes sending the request and receiving the response.
72    *
73    * @throws HttpConnectionException in case of a connection failure
74    */
75   void execute ()
76         throws HttpConnectionException;
77
78   /**
79    * Sets the request body to send.
80    *
81    * @param body the message body to send
82    */
83   void setRequestBody (InputStream body);
84
85   /**
86    * Gets the response body received from the target host.
87    *
88    * @return byte[] - the body of the response message
89    * @throws HttpEmptyResponseException if response body is empty
90    */
91   byte[] getResponseBody ()
92         throws HttpEmptyResponseException;
93
94   /**
95    * Gets the response header parameter value for a given key.
96    *
97    * @param key the parameter key to obtain the value for
98    * @return String - the parameter value for the given key
99    */
100   String getResponseHeader (String key);
101
102   /**
103    * Sets parameter necessary for SSL connection.
104    *
105    * @param keyStore
106    *          the keystore given from Signature Service
107    * @param trustStore
108    *          the truststore given from Signature Service
109    * @param keyAlias
110    *          the alias of the key used from keystore
111    * @param keyAliasPassword
112    *          the password of the key in use
113    */
114   void initSsl (
115         KeyStore keyStore,
116         KeyStore trustStore,
117         String keyAlias,
118         String keyAliasPassword);
119
120   /**
121    * Sets parameter necessary for SSL connection.
122    * Here: the keystores are loaded from the file system.
123    *
124    * @param keyAlias
125    *          the alias of the key used from keystore
126    * @param keyAliasPassword
127    *          the password of the key in use
128    */
129   void initSsl (
130         String keyAlias,
131         String keyAliasPassword);
132
133   /**
134    * Sets the event listener used for SLA logging.
135    *
136    * @param listener the listener to set
137    * @param context the context to set
138    */
139   void setEventListener (HttpConnectorEventListener listener,
140         ConnectorContext context);
141
142   /**
143    * Sets request header to send and response header to validate.
144    * @param header the header object
145    */
146   void setRequestResponseHeader (HttpRequestResponseHeader header);
147}
Note: See TracBrowser for help on using the browser.