Skip to content
This repository was archived by the owner on Sep 16, 2024. It is now read-only.

Commit 84739df

Browse files
committed
#427 Added copy constructors for config classes
1 parent 5e05d6a commit 84739df

File tree

6 files changed

+137
-1
lines changed

6 files changed

+137
-1
lines changed

src/main/java/com/marklogic/mgmt/ManageConfig.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ public class ManageConfig extends RestConfig {
2525
private String securityUsername;
2626
private String securityPassword;
2727
private SSLContext securitySslContext;
28-
2928
private boolean cleanJsonPayloads = false;
3029

3130
public ManageConfig() {
@@ -42,6 +41,13 @@ public ManageConfig(String host, int port, String username, String password) {
4241
setSecurityPassword(password);
4342
}
4443

44+
public ManageConfig(ManageConfig other) {
45+
super(other);
46+
this.securityUsername = other.securityUsername;
47+
this.securityPassword = other.securityPassword;
48+
this.securitySslContext = other.securitySslContext;
49+
this.cleanJsonPayloads = other.cleanJsonPayloads;
50+
}
4551
@Override
4652
public String toString() {
4753
return String.format("[ManageConfig host: %s, port: %d, username: %s, security username: %s]", getHost(),

src/main/java/com/marklogic/mgmt/admin/AdminConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,7 @@ public AdminConfig(String host, int port, String username, String password) {
2020
super(host, port, username, password);
2121
}
2222

23+
public AdminConfig(AdminConfig other) {
24+
super(other);
25+
}
2326
}

src/main/java/com/marklogic/rest/util/RestConfig.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,19 @@ public RestConfig(String host, int port, String username, String password) {
3232
this.password = password;
3333
}
3434

35+
public RestConfig(RestConfig other) {
36+
this(other.host, other.port, other.username, other.password);
37+
if (other.scheme != null) {
38+
this.scheme = other.scheme;
39+
}
40+
this.configureSimpleSsl = other.configureSimpleSsl;
41+
this.useDefaultKeystore = other.useDefaultKeystore;
42+
this.sslProtocol = other.sslProtocol;
43+
this.trustManagementAlgorithm = other.trustManagementAlgorithm;
44+
this.sslContext = other.sslContext;
45+
this.hostnameVerifier = other.hostnameVerifier;
46+
}
47+
3548
@Override
3649
public String toString() {
3750
return String.format("[scheme: %s, host: %s, port: %d, username: %s]", scheme, host, port, username);
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.marklogic.mgmt;
2+
3+
import com.marklogic.client.ext.modulesloader.ssl.SimpleX509TrustManager;
4+
import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
5+
import org.junit.jupiter.api.Test;
6+
7+
import static org.junit.jupiter.api.Assertions.*;
8+
9+
public class ManageConfigTest {
10+
11+
@Test
12+
void copyConstructor() {
13+
ManageConfig first = new ManageConfig("host", 8003, "user", "pwd");
14+
first.setScheme("https");
15+
first.setConfigureSimpleSsl(true);
16+
first.setHostnameVerifier(new AllowAllHostnameVerifier());
17+
first.setSslContext(SimpleX509TrustManager.newSSLContext());
18+
first.setSslProtocol("TLSv1.3");
19+
first.setTrustManagementAlgorithm("something");
20+
first.setUseDefaultKeystore(true);
21+
first.setSecurityUsername("secuser");
22+
first.setSecurityPassword("secpwd");
23+
first.setSecuritySslContext(SimpleX509TrustManager.newSSLContext());
24+
first.setCleanJsonPayloads(true);
25+
26+
ManageConfig second = new ManageConfig(first);
27+
28+
assertEquals("host", second.getHost());
29+
assertEquals(8003, second.getPort());
30+
assertEquals("user", second.getUsername());
31+
assertEquals("pwd", second.getPassword());
32+
assertEquals("https", second.getScheme());
33+
assertTrue(second.isConfigureSimpleSsl());
34+
assertNotNull(second.getHostnameVerifier());
35+
assertNotNull(second.getSslContext());
36+
assertEquals("TLSv1.3", second.getSslProtocol());
37+
assertEquals("something", second.getTrustManagementAlgorithm());
38+
assertTrue(second.isUseDefaultKeystore());
39+
assertEquals("secuser", second.getSecurityUsername());
40+
assertEquals("secpwd", second.getSecurityPassword());
41+
assertNotNull(second.getSecuritySslContext());
42+
assertTrue(second.isCleanJsonPayloads());
43+
}
44+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.marklogic.mgmt.admin;
2+
3+
import com.marklogic.client.ext.modulesloader.ssl.SimpleX509TrustManager;
4+
import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
5+
import org.junit.jupiter.api.Test;
6+
7+
import static org.junit.jupiter.api.Assertions.*;
8+
9+
public class AdminConfigTest {
10+
11+
@Test
12+
void copyConstructor() {
13+
AdminConfig first = new AdminConfig("host", 8003, "user", "pwd");
14+
first.setScheme("https");
15+
first.setConfigureSimpleSsl(true);
16+
first.setHostnameVerifier(new AllowAllHostnameVerifier());
17+
first.setSslContext(SimpleX509TrustManager.newSSLContext());
18+
first.setSslProtocol("TLSv1.3");
19+
first.setTrustManagementAlgorithm("something");
20+
first.setUseDefaultKeystore(true);
21+
22+
AdminConfig second = new AdminConfig(first);
23+
assertEquals("host", second.getHost());
24+
assertEquals(8003, second.getPort());
25+
assertEquals("user", second.getUsername());
26+
assertEquals("pwd", second.getPassword());
27+
assertEquals("https", second.getScheme());
28+
assertTrue(second.isConfigureSimpleSsl());
29+
assertNotNull(second.getHostnameVerifier());
30+
assertNotNull(second.getSslContext());
31+
assertEquals("TLSv1.3", second.getSslProtocol());
32+
assertEquals("something", second.getTrustManagementAlgorithm());
33+
assertTrue(second.isUseDefaultKeystore());
34+
}
35+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.marklogic.rest.util;
2+
3+
import com.marklogic.client.ext.modulesloader.ssl.SimpleX509TrustManager;
4+
import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
5+
import org.junit.jupiter.api.Test;
6+
7+
import static org.junit.jupiter.api.Assertions.*;
8+
9+
public class RestConfigTest {
10+
11+
@Test
12+
void copyConstructor() {
13+
RestConfig first = new RestConfig("host", 8003, "user", "pwd");
14+
first.setScheme("https");
15+
first.setConfigureSimpleSsl(true);
16+
first.setHostnameVerifier(new AllowAllHostnameVerifier());
17+
first.setSslContext(SimpleX509TrustManager.newSSLContext());
18+
first.setSslProtocol("TLSv1.3");
19+
first.setTrustManagementAlgorithm("something");
20+
first.setUseDefaultKeystore(true);
21+
22+
RestConfig second = new RestConfig(first);
23+
assertEquals("host", second.getHost());
24+
assertEquals(8003, second.getPort());
25+
assertEquals("user", second.getUsername());
26+
assertEquals("pwd", second.getPassword());
27+
assertEquals("https", second.getScheme());
28+
assertTrue(second.isConfigureSimpleSsl());
29+
assertNotNull(second.getHostnameVerifier());
30+
assertNotNull(second.getSslContext());
31+
assertEquals("TLSv1.3", second.getSslProtocol());
32+
assertEquals("something", second.getTrustManagementAlgorithm());
33+
assertTrue(second.isUseDefaultKeystore());
34+
}
35+
}

0 commit comments

Comments
 (0)