Merge branch '2.2.x' into 2.3.x

This commit is contained in:
Madhura Bhave 2020-12-10 12:37:16 -08:00
commit aa24d623fe
5 changed files with 24 additions and 12 deletions

View File

@ -37,12 +37,19 @@ public class PublishToSdkmanCommand implements Command {
private static final Logger logger = LoggerFactory.getLogger(PublishToSdkmanCommand.class);
private static final String PUBLISH_TO_SDKMAN_COMMAND = "publishToSdkman";
private final SdkmanService service;
public PublishToSdkmanCommand(SdkmanService service) {
this.service = service;
}
@Override
public String getName() {
return PUBLISH_TO_SDKMAN_COMMAND;
}
@Override
public void run(ApplicationArguments args) throws Exception {
logger.debug("Running 'push to SDKMAN' command");

View File

@ -25,7 +25,6 @@ import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.http.MediaType;
import org.springframework.http.RequestEntity;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.client.RestTemplate;
/**
@ -47,13 +46,15 @@ public class SdkmanService {
private final RestTemplate restTemplate;
private final SdkmanProperties properties;
private final String CONSUMER_KEY_HEADER = "Consumer-Key";
private final String CONSUMER_TOKEN_HEADER = "Consumer-Token";
public SdkmanService(RestTemplateBuilder builder, SdkmanProperties properties) {
String consumerKey = properties.getConsumerKey();
String consumerToken = properties.getConsumerToken();
if (StringUtils.hasLength(consumerKey)) {
builder = builder.basicAuthentication(consumerKey, consumerToken);
}
this.restTemplate = builder.build();
this.properties = properties;
}
public void publish(String version, boolean makeDefault) {
@ -67,6 +68,8 @@ public class SdkmanService {
private void broadcast(String version) {
BroadcastRequest broadcastRequest = new BroadcastRequest(version);
RequestEntity<BroadcastRequest> broadcastEntity = RequestEntity.post(URI.create(SDKMAN_URL + "announce/struct"))
.header(CONSUMER_KEY_HEADER, this.properties.getConsumerKey())
.header(CONSUMER_TOKEN_HEADER, this.properties.getConsumerToken())
.contentType(MediaType.APPLICATION_JSON).body(broadcastRequest);
this.restTemplate.exchange(broadcastEntity, String.class);
logger.debug("Broadcast complete");
@ -76,6 +79,8 @@ public class SdkmanService {
logger.debug("Making this version the default");
Request request = new Request(version);
RequestEntity<Request> requestEntity = RequestEntity.post(URI.create(SDKMAN_URL + "default"))
.header(CONSUMER_KEY_HEADER, this.properties.getConsumerKey())
.header(CONSUMER_TOKEN_HEADER, this.properties.getConsumerToken())
.contentType(MediaType.APPLICATION_JSON).body(request);
this.restTemplate.exchange(requestEntity, String.class);
logger.debug("Make default complete");
@ -84,6 +89,8 @@ public class SdkmanService {
private void release(String version) {
ReleaseRequest releaseRequest = new ReleaseRequest(version, String.format(DOWNLOAD_URL, version, version));
RequestEntity<ReleaseRequest> releaseEntity = RequestEntity.post(URI.create(SDKMAN_URL + "release"))
.header(CONSUMER_KEY_HEADER, this.properties.getConsumerKey())
.header(CONSUMER_TOKEN_HEADER, this.properties.getConsumerToken())
.contentType(MediaType.APPLICATION_JSON).body(releaseRequest);
this.restTemplate.exchange(releaseEntity, String.class);
logger.debug("Release complete");

View File

@ -25,7 +25,6 @@ import org.springframework.boot.test.autoconfigure.web.client.RestClientTest;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.test.web.client.MockRestServiceServer;
import org.springframework.util.Base64Utils;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.content;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.header;
@ -80,10 +79,8 @@ class SdkmanServiceTests {
private void setupExpectation(String url, String body) {
this.server.expect(requestTo(url)).andExpect(method(HttpMethod.POST)).andExpect(content().json(body))
.andExpect(header("Authorization",
"Basic " + Base64Utils.encodeToString(String
.format("%s:%s", this.properties.getConsumerKey(), this.properties.getConsumerToken())
.getBytes())))
.andExpect(header("Consumer-Key", "sdkman-consumer-key"))
.andExpect(header("Consumer-Token", "sdkman-consumer-token"))
.andExpect(header("Content-Type", MediaType.APPLICATION_JSON.toString())).andRespond(withSuccess());
}

View File

@ -4,6 +4,6 @@ source $(dirname $0)/common.sh
version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' )
java -jar /spring-boot-release-scripts.jar publishToSdkman $RELEASE_TYPE $version $BRANCH || {exit 1;}
java -jar /spring-boot-release-scripts.jar publishToSdkman $RELEASE_TYPE $version $BRANCH || { exit 1; }
echo "Push to SDKMAN complete"

View File

@ -2,6 +2,7 @@
platform: linux
inputs:
- name: artifactory-repo
- name: git-repo
params:
RELEASE_TYPE:
BRANCH: