Skip to content

Commit 026d306

Browse files
committed
Full customization of shared client
1 parent 067d8de commit 026d306

File tree

2 files changed

+13
-19
lines changed

2 files changed

+13
-19
lines changed

src/main/java/com/whatsapp/api/WhatsappApiServiceGenerator.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020

2121
import java.io.IOException;
2222
import java.lang.annotation.Annotation;
23-
import java.time.Duration;
2423
import java.util.Objects;
2524
import java.util.concurrent.TimeUnit;
25+
import java.util.function.Consumer;
2626

2727
/**
2828
* The type Whatsapp api service generator.
@@ -81,7 +81,9 @@ public static OkHttpClient createDefaultHttpClient() {
8181
* @see <a
8282
* href="https://square.github.io/okhttp/4.x/okhttp/okhttp3/-ok-http-client/-builder/proxy-authenticator/">Proxy
8383
* Authenticator</a>
84+
* @deprecated use {@link #customizeSharedClient(Consumer)}
8485
*/
86+
@Deprecated
8587
public static void setHttpProxy(String host, int port, String username, String pwd) {
8688
Objects.requireNonNull( host, "Host cannot be null" );
8789
CustomHttpProxySelector proxySelector = new CustomHttpProxySelector( host, port );
@@ -102,17 +104,11 @@ public static void setHttpProxy(String host, int port, String username, String p
102104
.build();
103105
}
104106

105-
public static void setTimeouts(final Duration callTimout, final Duration connectTimeout,
106-
final Duration readTimeout) {
107-
108-
Objects.requireNonNull( callTimout, "Call duration cannot be null" );
109-
Objects.requireNonNull( connectTimeout, "Connect duration cannot be null" );
110-
Objects.requireNonNull( readTimeout, "Read duration cannot be null" );
111-
sharedClient = sharedClient.newBuilder()
112-
.callTimeout( callTimout )
113-
.connectTimeout( connectTimeout )
114-
.readTimeout( readTimeout )
115-
.build();
107+
public static void customizeSharedClient(Consumer<OkHttpClient.Builder> customizer){
108+
Objects.requireNonNull( customizer, "Function required" );
109+
var builder = sharedClient.newBuilder();
110+
customizer.accept( builder );
111+
sharedClient = builder.build();
116112
}
117113

118114
/**

src/test/java/com/whatsapp/api/WhatsappApiServiceGeneratorTest.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.net.ProxySelector;
1717
import java.net.URISyntaxException;
1818
import java.time.Duration;
19+
import java.util.function.Consumer;
1920

2021
import static org.junit.jupiter.api.Assertions.*;
2122

@@ -120,22 +121,19 @@ void testSetHttpProxy_WithAuthentication() {
120121

121122
/**
122123
* Method under test:
123-
* {@link WhatsappApiServiceGenerator#setTimeouts(Duration, Duration, Duration)}
124+
* {@link WhatsappApiServiceGenerator#customizeSharedClient(Consumer)}
124125
*/
125126
@Test
126-
void testSetTimeouts() {
127+
void customizeSharedClient() {
127128

128129
assertEquals( 20 * 1000, WhatsappApiServiceGenerator.getSharedClient().callTimeoutMillis() );
129130

130131
// Set timeout in shared client
131-
WhatsappApiServiceGenerator.setTimeouts( Duration.ofMinutes( 1L ), Duration.ofMinutes( 2L ), Duration.ofMinutes( 3L ) );
132+
WhatsappApiServiceGenerator.customizeSharedClient(
133+
builder -> builder.callTimeout( Duration.ofMinutes( 1L ) ) );
132134

133135
// Check if timeout is set
134136
assertEquals( 60 * 1000, WhatsappApiServiceGenerator.getSharedClient().callTimeoutMillis() );
135-
136-
assertEquals( 2 * 60 * 1000, WhatsappApiServiceGenerator.getSharedClient().connectTimeoutMillis() );
137-
138-
assertEquals( 3 * 60 * 1000, WhatsappApiServiceGenerator.getSharedClient().readTimeoutMillis() );
139137
}
140138

141139
}

0 commit comments

Comments
 (0)