Skip to content

Commit afd923d

Browse files
author
akankari
committed
- Adding a default timeout value in case the property is not specified in properties file
- Adding http timeouts in HttpUtility
1 parent 6832ebd commit afd923d

3 files changed

Lines changed: 31 additions & 11 deletions

File tree

src/main/java/net/authorize/util/Constants.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,8 @@ public final class Constants {
2828
public static final String PROP_MD5_HASHKEY_APPLEPAY = "md5.hash.key.applepay";
2929

3030
public static final String HTTP_CONNECTION_TIME_OUT = "http.ConnectionTimeout";
31+
public static final int HTTP_CONNECTION_TIME_OUT_DEFAULT_VALUE = 30000;
32+
3133
public static final String HTTP_READ_TIME_OUT = "http.ReadTimeout";
34+
public static final int HTTP_READ_TIME_OUT_DEFAULT_VALUE = 30000;
3235
}

src/main/java/net/authorize/util/HttpClient.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@
1111
import java.util.HashMap;
1212
import java.util.Map;
1313

14-
import net.authorize.Environment;
15-
import net.authorize.ResponseField;
16-
import net.authorize.Transaction;
17-
1814
import org.apache.commons.logging.Log;
1915
import org.apache.commons.logging.LogFactory;
2016
import org.apache.http.HttpEntity;
@@ -24,12 +20,14 @@
2420
import org.apache.http.conn.params.ConnRoutePNames;
2521
import org.apache.http.entity.StringEntity;
2622
import org.apache.http.impl.client.DefaultHttpClient;
27-
import org.apache.http.params.BasicHttpParams;
2823
import org.apache.http.params.CoreProtocolPNames;
2924
import org.apache.http.params.HttpConnectionParams;
30-
import org.apache.http.params.HttpParams;
3125
import org.apache.http.protocol.HTTP;
3226

27+
import net.authorize.Environment;
28+
import net.authorize.ResponseField;
29+
import net.authorize.Transaction;
30+
3331

3432
/**
3533
* Transportation object used to facilitate the communication with the respective gateway.
@@ -49,6 +47,9 @@ public class HttpClient {
4947

5048
static {
5149
LogHelper.info(logger, "Use Proxy: '%s'", UseProxy);
50+
51+
httpConnectionTimeout = (httpConnectionTimeout == 0 ? Constants.HTTP_CONNECTION_TIME_OUT_DEFAULT_VALUE : httpConnectionTimeout );
52+
httpReadTimeout = (httpReadTimeout == 0 ? Constants.HTTP_READ_TIME_OUT_DEFAULT_VALUE : httpReadTimeout);
5253
}
5354
/**
5455
* Creates the http post object for an environment and transaction container.

src/main/java/net/authorize/util/HttpUtility.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,16 @@
1515

1616
import javax.xml.bind.JAXBException;
1717

18-
import net.authorize.Environment;
19-
import net.authorize.api.contract.v1.ANetApiRequest;
20-
import net.authorize.api.contract.v1.ANetApiResponse;
21-
2218
import org.apache.commons.logging.Log;
2319
import org.apache.commons.logging.LogFactory;
2420
import org.apache.http.client.methods.HttpPost;
2521
import org.apache.http.entity.StringEntity;
2622
import org.apache.http.params.CoreProtocolPNames;
23+
import org.apache.http.params.HttpConnectionParams;
24+
25+
import net.authorize.Environment;
26+
import net.authorize.api.contract.v1.ANetApiRequest;
27+
import net.authorize.api.contract.v1.ANetApiResponse;
2728

2829
/**
2930
* Helper methods for http calls
@@ -34,6 +35,15 @@ public final class HttpUtility {
3435

3536
private static Log logger = LogFactory.getLog(HttpUtility.class);
3637

38+
static int httpConnectionTimeout = Environment.getIntProperty(Constants.HTTP_CONNECTION_TIME_OUT);
39+
static int httpReadTimeout = Environment.getIntProperty(Constants.HTTP_READ_TIME_OUT);
40+
41+
static {
42+
43+
httpConnectionTimeout = (httpConnectionTimeout == 0 ? Constants.HTTP_CONNECTION_TIME_OUT_DEFAULT_VALUE : httpConnectionTimeout );
44+
httpReadTimeout = (httpReadTimeout == 0 ? Constants.HTTP_READ_TIME_OUT_DEFAULT_VALUE : httpReadTimeout);
45+
}
46+
3747
/**
3848
* Default C'tor, cannot be instantiated
3949
*/
@@ -60,7 +70,13 @@ static HttpPost createPostRequest(Environment env, ANetApiRequest request) throw
6070
logger.debug(String.format("MerchantInfo->LoginId/TransactionKey: '%s':'%s'", request.getMerchantAuthentication().getName(), request.getMerchantAuthentication().getTransactionKey() ));
6171
logger.debug(String.format("Posting request to Url: '%s'", postUrl));
6272
httpPost = new HttpPost(postUrl);
63-
httpPost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
73+
httpPost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
74+
75+
//set the tcp connection timeout
76+
httpPost.getParams().setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT, httpConnectionTimeout);
77+
//set the time out on read-data request
78+
httpPost.getParams().setIntParameter(HttpConnectionParams.SO_TIMEOUT, httpReadTimeout);
79+
6480
httpPost.setHeader("Content-Type", "text/xml; charset=utf-8");
6581

6682
String xmlRequest = XmlUtility.getXml(request);

0 commit comments

Comments
 (0)