Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 36 additions & 24 deletions src/main/java/com/adyen/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,28 +57,40 @@ public Client(Config config) {
}

public Client(String username, String password, Environment environment, String applicationName) {
this(username, password, environment, null, applicationName);
}

public Client(String username, String password, Environment environment, String liveEndpointUrlPrefix, String applicationName) {

this.config = new Config();
this.config.setUsername(username);
this.config.setPassword(password);
this.setEnvironment(environment);
this.setEnvironment(environment, liveEndpointUrlPrefix);
this.config.setApplicationName(applicationName);
}

/**
* @deprecated As of library version 1.6.1, timeouts should be set by {@link #setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis)} or directly by {@link com.adyen.Config#setConnectionTimeoutMillis(int connectionTimeoutMillis)}.
*/
@Deprecated
public Client(String username, String password, Environment environment, int connectionTimeoutMillis) {

this.config = new Config();
this.config.setUsername(username);
this.config.setPassword(password);
this.setEnvironment(environment);
this(username, password, environment, null);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

public Client(String apiKey, Environment environment) {
/**
* @deprecated As of library version 1.6.1, timeouts should be set by {@link #setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis)} or directly by {@link com.adyen.Config#setConnectionTimeoutMillis(int connectionTimeoutMillis)}.
*/
@Deprecated
public Client(String username, String password, Environment environment, int connectionTimeoutMillis, String liveEndpointUrlPrefix) {

this.config = new Config();
this.config.setApiKey(apiKey);
this.setEnvironment(environment);
this(username, password, environment, liveEndpointUrlPrefix, null);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

public Client(String apiKey, Environment environment) {
this(apiKey, environment, null);
}

public Client(String apiKey, Environment environment, String liveEndpointUrlPrefix) {
Expand All @@ -87,28 +99,23 @@ public Client(String apiKey, Environment environment, String liveEndpointUrlPref
this.setEnvironment(environment, liveEndpointUrlPrefix);
}

/**
* @deprecated As of library version 1.6.1, timeouts should be set by {@link #setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis)} or directly by {@link com.adyen.Config#setConnectionTimeoutMillis(int connectionTimeoutMillis)}.
*/
@Deprecated
public Client(String apiKey, Environment environment, int connectionTimeoutMillis) {

this.config = new Config();
this.config.setApiKey(apiKey);
this.setEnvironment(environment);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

public Client(String username, String password, Environment environment, int connectionTimeoutMillis, String liveEndpointUrlPrefix) {

this.config = new Config();
this.config.setUsername(username);
this.config.setPassword(password);
this.setEnvironment(environment, liveEndpointUrlPrefix);
this(apiKey, environment);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

/**
* @deprecated As of library version 1.6.1, timeouts should be set by {@link #setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis)} or directly by {@link com.adyen.Config#setConnectionTimeoutMillis(int connectionTimeoutMillis)}.
*/
@Deprecated
public Client(String apiKey, Environment environment, int connectionTimeoutMillis, String liveEndpointUrlPrefix) {

this.config = new Config();
this.config.setApiKey(apiKey);
this.setEnvironment(environment, liveEndpointUrlPrefix);
this(apiKey, environment, liveEndpointUrlPrefix);
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
}

Expand Down Expand Up @@ -176,4 +183,9 @@ public void setApplicationName(String applicationName) {
this.config.setApplicationName(applicationName);
}

public void setTimeouts(int connectionTimeoutMillis, int readTimeoutMillis) {
this.config.setConnectionTimeoutMillis(connectionTimeoutMillis);
this.config.setReadTimeoutMillis(readTimeoutMillis);
}

}
9 changes: 9 additions & 0 deletions src/main/java/com/adyen/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class Config {
protected String applicationName;
protected String apiKey;
protected int connectionTimeoutMillis;
protected int readTimeoutMillis;

//HPP specific
protected String hppEndpoint;
Expand Down Expand Up @@ -153,4 +154,12 @@ public void setConnectionTimeoutMillis(int connectionTimeoutMillis) {
this.connectionTimeoutMillis = connectionTimeoutMillis;
}

public int getReadTimeoutMillis() {
return readTimeoutMillis;
}

public void setReadTimeoutMillis(int readTimeoutMillis) {
this.readTimeoutMillis = readTimeoutMillis;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,18 @@ public String request(String endpoint, String json, Config config, boolean isApi
@Override
public String request(String requestUrl, String requestBody, Config config, boolean isApiKeyRequired, RequestOptions requestOptions) throws IOException, HTTPClientException {
HttpURLConnection httpConnection = createRequest(requestUrl, config.getApplicationName(), requestOptions);

String apiKey = config.getApiKey();
int connectionTimeoutMillis = config.getConnectionTimeoutMillis();
// Use Api key if required or if provided
if (isApiKeyRequired || (apiKey != null && ! apiKey.isEmpty())) {
setApiKey(httpConnection, apiKey);
} else {
setBasicAuthentication(httpConnection, config.getUsername(), config.getPassword());
}

httpConnection.setConnectTimeout(connectionTimeoutMillis);
httpConnection.setConnectTimeout(config.getConnectionTimeoutMillis());
httpConnection.setReadTimeout(config.getReadTimeoutMillis());

setContentType(httpConnection, APPLICATION_JSON_TYPE);

return doPostRequest(httpConnection, requestBody);
Expand Down