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

Commit 04b816b

Browse files
committed
chore: Start and stop the connector server
1 parent ce6cd7a commit 04b816b

8 files changed

Lines changed: 313 additions & 9 deletions

File tree

src/main/java/io/contract_testing/contractcase/ContractCaseCoreError.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,15 @@ public ContractCaseCoreError(Throwable e) {
3030
}
3131
}
3232

33+
public ContractCaseCoreError(@NotNull String message, Throwable cause) {
34+
super(message, cause);
35+
if (cause instanceof ContractCaseCoreError) {
36+
this.location = ((ContractCaseCoreError) cause).getLocation();
37+
} else {
38+
this.location = ConnectorExceptionMapper.stackTraceToString(cause);
39+
}
40+
}
41+
3342
public String getLocation() {
3443
return location;
3544
}

src/main/java/io/contract_testing/contractcase/ContractDefiner.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.contract_testing.contractcase.IndividualFailedTestConfig.IndividualFailedTestConfigBuilder;
44
import io.contract_testing.contractcase.case_example_mock_types.mocks.base.AnyMockDescriptor;
55
import io.contract_testing.contractcase.client.InternalDefinerClient;
6+
import io.contract_testing.contractcase.client.server.ContractCaseProcess;
67
import org.jetbrains.annotations.NotNull;
78

89
public class ContractDefiner {
@@ -12,6 +13,8 @@ public class ContractDefiner {
1213

1314

1415
public ContractDefiner(final @NotNull ContractCaseConfig config) {
16+
ContractCaseProcess.getInstance().start();
17+
1518
LogPrinter logPrinter = new LogPrinter();
1619
InternalDefinerClient definer = null;
1720
try {

src/main/java/io/contract_testing/contractcase/ContractVerifier.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import io.contract_testing.contractcase.client.InternalVerifierClient;
77
import io.contract_testing.contractcase.client.MaintainerLog;
8+
import io.contract_testing.contractcase.client.server.ContractCaseProcess;
89
import io.contract_testing.contractcase.edge.ConnectorExceptionMapper;
910
import io.contract_testing.contractcase.edge.ConnectorFailure;
1011
import io.contract_testing.contractcase.edge.ConnectorFailureKindConstants;
@@ -16,14 +17,15 @@
1617
import java.util.List;
1718
import org.jetbrains.annotations.NotNull;
1819

19-
public class ContractVerifier {
20+
public class ContractVerifier implements AutoCloseable {
2021

2122
private final InternalVerifierClient verifier;
2223

2324
private final List<ConnectorFailure> failures = new ArrayList<>();
2425

2526
public ContractVerifier(ContractCaseConfig config) {
2627
LogPrinter logPrinter = new LogPrinter();
28+
ContractCaseProcess.getInstance().start();
2729

2830
InternalVerifierClient verification = null;
2931
try {
@@ -108,4 +110,9 @@ public void runVerification(ContractCaseConfig configOverrides) {
108110

109111
}
110112
}
113+
114+
@Override
115+
public void close() {
116+
verifier.close();
117+
}
111118
}

src/main/java/io/contract_testing/contractcase/client/AbstractRpcConnector.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.protobuf.StringValue;
66
import io.contract_testing.contractcase.ContractCaseCoreError;
77
import io.contract_testing.contractcase.LogPrinter;
8+
import io.contract_testing.contractcase.client.server.ContractCaseProcess;
89
import io.contract_testing.contractcase.edge.ConnectorFailure;
910
import io.contract_testing.contractcase.edge.ConnectorFailureKindConstants;
1011
import io.contract_testing.contractcase.edge.ConnectorResult;
@@ -29,9 +30,7 @@
2930

3031
abstract class AbstractRpcConnector<T extends AbstractMessage, B extends Builder<B>> {
3132

32-
private static final int DEFAULT_PORT = 50200;
33-
34-
private final ConcurrentMap<String, CompletableFuture<BoundaryResult>> responseFutures = new ConcurrentHashMap<String, CompletableFuture<BoundaryResult>>();
33+
private final ConcurrentMap<String, CompletableFuture<BoundaryResult>> responseFutures = new ConcurrentHashMap<>();
3534
private final AtomicInteger nextId = new AtomicInteger();
3635
private final SendingWorker<T> worker;
3736
private Status errorStatus;
@@ -46,8 +45,7 @@ public AbstractRpcConnector(
4645
@NotNull ConfigHandle configHandle,
4746
@NotNull RunTestCallback runTestCallback) {
4847
this.channel = ManagedChannelBuilder
49-
// TODO: Allow configuration of the port
50-
.forAddress("localhost", DEFAULT_PORT)
48+
.forAddress("localhost", ContractCaseProcess.getInstance().getPortNumber())
5149
.usePlaintext()
5250
.build();
5351
this.worker = new SendingWorker<T>(createConnection(

src/main/java/io/contract_testing/contractcase/client/InternalVerifierClient.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import java.util.List;
1313
import org.jetbrains.annotations.NotNull;
1414

15-
public class InternalVerifierClient {
15+
public class InternalVerifierClient implements AutoCloseable {
1616

1717
private final List<String> parentVersions;
1818
private final RpcForVerification rpcConnector;
@@ -74,5 +74,8 @@ private ConnectorResult begin(ContractCaseConfig wireConfig) {
7474
.build()), "begin");
7575
}
7676

77-
77+
@Override
78+
public void close() {
79+
rpcConnector.close();
80+
}
7881
}

src/main/java/io/contract_testing/contractcase/client/MaintainerLog.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,20 @@
22

33
public class MaintainerLog {
44

5+
private MaintainerLog() {
6+
}
7+
58
public static final String CONTRACT_CASE_JAVA_WRAPPER = "ContractCase Java DSL";
69

10+
public static boolean shouldDebug() {
11+
final String caseConnectorDebug = System.getenv("CASE_CONNECTOR_DEBUG");
12+
return caseConnectorDebug != null && !caseConnectorDebug.equals("0")
13+
&& !caseConnectorDebug.equalsIgnoreCase("false") && !caseConnectorDebug.equals("");
14+
}
15+
716
public static void log(String s) {
8-
// System.err.println(Thread.currentThread() + ": " + s);
17+
if (shouldDebug()) {
18+
System.err.println(Thread.currentThread() + ": " + s);
19+
}
920
}
1021
}

src/main/java/io/contract_testing/contractcase/client/RpcForVerification.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,6 @@ VerificationRequest.Builder makeInvokeTest(StringValue invokerId) {
4747
);
4848
}
4949

50+
5051
}
5152

0 commit comments

Comments
 (0)