Skip to content

Commit

Permalink
Merge 5011e99 into b76d35a
Browse files Browse the repository at this point in the history
  • Loading branch information
Felipe444 committed Feb 1, 2019
2 parents b76d35a + 5011e99 commit 9d03e89
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 54 deletions.
23 changes: 12 additions & 11 deletions judge-d-agent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<properties>
<springBootVersion>1.5.9.RELEASE</springBootVersion>
<swaggerVersion>2.7.0</swaggerVersion>
<pactGenVersion>1.3.3</pactGenVersion>
</properties>

<dependencyManagement>
Expand Down Expand Up @@ -63,17 +64,6 @@
<artifactId>kubernetes-client</artifactId>
<version>3.1.10</version>
</dependency>

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swaggerVersion}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swaggerVersion}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
Expand Down Expand Up @@ -106,6 +96,17 @@
<version>1.2.4.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>3.2.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.hltech</groupId>
<artifactId>pact-gen</artifactId>
<version>${pactGenVersion}</version>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Set;

@FeignClient("judge-d-server")
public interface JudgeDPublisher {

@PutMapping(path = "environments/{environment}", produces = "application/json")
void publish(@RequestParam("environment") String environment, @RequestBody Set<ServiceForm> serviceForms);
void publish(@PathVariable("environment") String environment, @RequestBody Set<ServiceForm> serviceForms);

@Getter
@AllArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,14 @@ public class BeanFactory {

private static final Logger LOGGER = LoggerFactory.getLogger(BeanFactory.class);

@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper();
}

@Bean
public JudgeDPublisher judgeDEnvironmentPublisher(Feign feign, @Value("${hltech.contracts.judge-d.baseUrl}") String baseUrl) {
return new CachingDelegatingDPublisher(feign.newInstance(new Target.HardCodedTarget<>(JudgeDPublisher.class, baseUrl)));
return feign.newInstance(new Target.HardCodedTarget<>(JudgeDPublisher.class, baseUrl));
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,17 @@
import java.util.Set;

@Slf4j
public class CachingDelegatingDPublisher implements JudgeDPublisher {
public class CachingDelegatingDPublisher {

private final JudgeDPublisher judgeDPublisher;

private Set<ServiceForm> previouslySentEnvironment;
private Set<JudgeDPublisher.ServiceForm> previouslySentEnvironment;

public CachingDelegatingDPublisher(JudgeDPublisher judgeDPublisher) {
this.judgeDPublisher = judgeDPublisher;
}

@Override
public void publish(String environment, Set<ServiceForm> serviceForms) {
public void publish(String environment, Set<JudgeDPublisher.ServiceForm> serviceForms) {
if (previouslySentEnvironment == null || !previouslySentEnvironment.equals(serviceForms)) {
log.info("publishing services to Judge-D: " + serviceForms);

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.hltech.contracts.judged.agent

import com.fasterxml.jackson.databind.ObjectMapper
import com.hltech.contracts.judged.agent.config.BeanFactory
import com.hltech.pact.gen.PactGenerator
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.ActiveProfiles
import org.springframework.test.context.ContextConfiguration
import spock.lang.Specification

@SpringBootTest(classes = BeanFactory)
@ActiveProfiles("test")
@ContextConfiguration
class ContractTestsGenerator extends Specification {

@Autowired
ObjectMapper objectMapper

PactGenerator pactGenerator = new PactGenerator()

def "should generate pact file"() {
expect:
pactGenerator.writePactFiles("com.hltech.contracts.judged.agent", "judge-d-agent", objectMapper, new File("target/pacts"))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package com.hltech.contracts.judged.agent.hltech

import com.fasterxml.jackson.databind.node.JsonNodeFactory
import com.fasterxml.jackson.databind.node.ObjectNode
import com.google.common.collect.ImmutableMap
import feign.Feign
import feign.Target
import io.fabric8.kubernetes.api.model.Container
Expand All @@ -14,27 +13,17 @@ import io.fabric8.kubernetes.api.model.PodSpec
import io.fabric8.kubernetes.api.model.PodStatus
import io.fabric8.kubernetes.client.KubernetesClient
import io.fabric8.kubernetes.client.dsl.MixedOperation
import org.assertj.core.util.Lists
import org.assertj.core.util.Maps
import spock.lang.Specification
import org.springframework.http.ResponseEntity
import spock.lang.Subject

import static com.google.common.collect.Lists.newArrayList

class HLTechServiceLocatorUT extends Specification {

private Feign feign
private KubernetesClient kubernetesClient
private def feign = Mock(Feign)
private def kubernetesClient = Mock(KubernetesClient)

@Subject
private HLTechServiceLocator serviceLocator

def setup(){
feign = Mock()
kubernetesClient = Mock()
serviceLocator = new HLTechServiceLocator(kubernetesClient, feign)
}
private HLTechServiceLocator serviceLocator = new HLTechServiceLocator(kubernetesClient, feign)

def 'should find all correctly configured services'(){
given: "data of pods"
Expand Down
5 changes: 5 additions & 0 deletions judge-d-agent/src/test/resources/application-test.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
server.port=0

hltech.contracts.judge-d.baseUrl=http://localhost:8080/
hltech.contracts.judge-d.environment=test
hltech.contracts.judge-d.requiredLabel=app

0 comments on commit 9d03e89

Please sign in to comment.