@NotNull
PactLoader pactBrokerLoader(ValueResolver resolver, List<String> tags)
throws IOException {
Resource repo = this.stubRunnerOptions.getStubRepositoryRoot();
String schemeSpecificPart = schemeSpecificPart(repo.getURI());
URI pactBrokerUrl = URI.create(schemeSpecificPart);
String stubRunnerUsername = this.stubRunnerOptions.getUsername();
String stubRunnerPassword = this.stubRunnerOptions.getPassword();
return new PactBrokerLoader(new PactBroker() {
@Override
public Class<? extends Annotation> annotationType() {
return PactBroker.class;
}
@Override
public String host() {
return resolver
.resolveValue("pactbroker.host:" + pactBrokerUrl.getHost());
}
@Override
public String port() {
return resolver
.resolveValue("pactbroker.port:" + pactBrokerUrl.getPort());
}
@Override
public String scheme() {
return resolver
.resolveValue("pactbroker.protocol:" + pactBrokerUrl.getScheme());
}
@Override
public String[] tags() {
return tags.toArray(new String[0]);
}
@Override
public String[] consumers() {
return new String[] { resolver.resolveValue("pactbroker.consumers:") };
}
@Override
public PactBrokerAuth authentication() {
return new PactBrokerAuth() {
@Override
public Class<? extends Annotation> annotationType() {
return PactBrokerAuth.class;
}
@Override
public String scheme() {
return resolver.resolveValue("pactbroker.auth.scheme:Basic");
}
@Override
public String username() {
return resolver.resolveValue(
"pactbroker.auth.username:" + stubRunnerUsername);
}
@Override
public String password() {
return resolver.resolveValue(
"pactbroker.auth.password:" + stubRunnerPassword);
}
@Override
public String token() {
return resolver.resolveValue("pactbroker.auth.token:");
}
};
}
@Override
public Class<? extends ValueResolver> valueResolver() {
return SystemPropertyResolver.class;
}
});
}