Skip to content

Commit 8672d16

Browse files
committed
updated spring-cloud-contract exampled to current versions
1 parent 3eefd80 commit 8672d16

9 files changed

Lines changed: 74 additions & 54 deletions

File tree

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
apply plugin: 'org.springframework.boot'
2-
31
buildscript {
42
repositories {
53
mavenLocal()
@@ -10,17 +8,27 @@ buildscript {
108
}
119
}
1210

13-
1411
repositories {
1512
mavenLocal()
1613
jcenter()
1714
}
1815

16+
apply plugin: 'java'
17+
apply plugin: 'org.springframework.boot'
18+
apply plugin: 'io.spring.dependency-management'
19+
20+
dependencyManagement {
21+
imports {
22+
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springcloud_version}"
23+
}
24+
}
25+
1926
dependencies {
20-
compile("org.springframework.boot:spring-boot-starter-data-jpa:${springboot_version}")
21-
compile("org.springframework.boot:spring-boot-starter-web:${springboot_version}")
22-
compile("org.springframework.cloud:spring-cloud-starter-feign:1.4.1.RELEASE")
27+
compile("org.springframework.boot:spring-boot-starter-data-jpa")
28+
compile("org.springframework.boot:spring-boot-starter-web")
29+
compile("org.springframework.cloud:spring-cloud-starter-openfeign")
30+
compile('org.springframework.cloud:spring-cloud-starter-netflix-ribbon')
2331
compile('com.h2database:h2:1.4.196')
24-
testCompile("org.springframework.cloud:spring-cloud-starter-contract-stub-runner:${verifier_version}")
25-
testCompile("org.springframework.boot:spring-boot-starter-test:${springboot_version}")
32+
testCompile("org.springframework.cloud:spring-cloud-starter-contract-stub-runner")
33+
testCompile("org.springframework.boot:spring-boot-starter-test")
2634
}
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
springboot_version=1.5.9.RELEASE
2-
verifier_version=1.2.2.RELEASE
1+
springboot_version=2.0.4.RELEASE
2+
springcloud_version=Finchley.SR1
3+
springcloudcontract_version=2.0.1.RELEASE

spring-cloud/spring-cloud-contract-consumer/src/main/java/io/reflectoring/ConsumerApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
5-
import org.springframework.cloud.netflix.feign.EnableFeignClients;
5+
import org.springframework.cloud.openfeign.EnableFeignClients;
66

77
@SpringBootApplication
88
@EnableFeignClients

spring-cloud/spring-cloud-contract-consumer/src/main/java/io/reflectoring/UserClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.reflectoring;
22

3-
import org.springframework.cloud.netflix.feign.FeignClient;
3+
import org.springframework.cloud.openfeign.FeignClient;
44
import org.springframework.web.bind.annotation.PathVariable;
55
import org.springframework.web.bind.annotation.RequestBody;
66
import org.springframework.web.bind.annotation.RequestMapping;
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
package io.reflectoring;
22

3-
import org.junit.Ignore;
43
import org.junit.Test;
54
import org.junit.runner.RunWith;
65
import org.springframework.beans.factory.annotation.Autowired;
76
import org.springframework.boot.test.context.SpringBootTest;
87
import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner;
8+
import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties;
99
import org.springframework.test.context.junit4.SpringRunner;
10-
import static org.assertj.core.api.Assertions.assertThat;
10+
import static org.assertj.core.api.Assertions.*;
1111

1212
@RunWith(SpringRunner.class)
1313
@SpringBootTest
14-
@AutoConfigureStubRunner(ids = "io.reflectoring:user-service:+:stubs:6565", workOffline = true)
15-
@Ignore("Cannot work on CI because workOffline is set to true.")
14+
@AutoConfigureStubRunner(ids = "io.reflectoring:user-service:+:stubs:6565",
15+
stubsMode = StubRunnerProperties.StubsMode.LOCAL)
1616
public class UserClientTest {
1717

18-
@Autowired
19-
private UserClient userClient;
18+
@Autowired
19+
private UserClient userClient;
2020

21-
@Test
22-
public void createUserCompliesToContract() {
23-
User user = new User();
24-
user.setFirstName("Arthur");
25-
user.setLastName("Dent");
26-
IdObject id = userClient.createUser(user);
27-
assertThat(id.getId()).isEqualTo(42L);
28-
}
21+
@Test
22+
public void createUserCompliesToContract() {
23+
User user = new User();
24+
user.setFirstName("Arthur");
25+
user.setLastName("Dent");
26+
IdObject id = userClient.createUser(user);
27+
assertThat(id.getId()).isEqualTo(42L);
28+
}
2929

3030
}
Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,55 @@
1-
apply plugin: 'spring-cloud-contract'
2-
apply plugin: 'maven-publish'
3-
4-
group = 'io.reflectoring'
5-
version = '1.0.0'
6-
7-
81
buildscript {
92
repositories {
103
mavenLocal()
114
mavenCentral()
12-
maven { url "http://repo.spring.io/snapshot" }
13-
maven { url "http://repo.spring.io/milestone" }
14-
maven { url "http://repo.spring.io/release" }
155
}
166
dependencies {
177
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springboot_version}"
18-
classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${verifier_version}"
19-
classpath "org.springframework.cloud:spring-cloud-contract-spec-pact:${verifier_version}"
8+
classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${springcloudcontract_version}"
9+
classpath "org.springframework.cloud:spring-cloud-contract-spec-pact:${springcloudcontract_pact_version}"
2010
classpath 'au.com.dius:pact-jvm-model:2.4.18'
2111
}
2212
}
2313

24-
2514
repositories {
2615
mavenLocal()
2716
mavenCentral()
28-
jcenter()
29-
maven { url "http://repo.spring.io/snapshot" }
30-
maven { url "http://repo.spring.io/milestone" }
31-
maven { url "http://repo.spring.io/release" }
17+
}
18+
19+
apply plugin: 'java'
20+
apply plugin: 'org.springframework.boot'
21+
apply plugin: 'io.spring.dependency-management'
22+
apply plugin: 'spring-cloud-contract'
23+
apply plugin: 'maven-publish'
24+
25+
group = 'io.reflectoring'
26+
version = '1.0.0'
27+
28+
dependencyManagement {
29+
imports {
30+
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springcloud_version}"
31+
}
3232
}
3333

3434
dependencies {
35-
compile("org.springframework.boot:spring-boot-starter-data-jpa:${springboot_version}")
36-
compile("org.springframework.boot:spring-boot-starter-web:${springboot_version}")
35+
compile("org.springframework.boot:spring-boot-starter-data-jpa")
36+
compile("org.springframework.boot:spring-boot-starter-web")
3737
compile('com.h2database:h2:1.4.196')
3838
testCompile('org.codehaus.groovy:groovy-all:2.4.6')
39-
testCompile("org.springframework.cloud:spring-cloud-starter-contract-verifier:${verifier_version}")
40-
testCompile("org.springframework.cloud:spring-cloud-contract-spec:${verifier_version}")
41-
testCompile("org.springframework.boot:spring-boot-starter-test:${springboot_version}")
39+
testCompile("org.springframework.cloud:spring-cloud-starter-contract-verifier")
40+
testCompile("org.springframework.cloud:spring-cloud-contract-spec:${springcloudcontract_pact_version}")
41+
testCompile("org.springframework.boot:spring-boot-starter-test")
4242
}
4343

4444
contracts {
4545
baseClassMappings {
4646
baseClassMapping(".*userservice.*", "io.reflectoring.UserServiceBase")
4747
}
48-
}
48+
}
49+
50+
// a hack to locally publish the contract stubs when executing the build task
51+
// so that it works in the CI build without a Nexus or Artifactory server
52+
build.doLast {
53+
tasks.generatePomFileForStubsPublication.execute()
54+
tasks.publishStubsPublicationToMavenLocal.execute()
55+
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
springboot_version=1.5.9.RELEASE
2-
verifier_version=1.2.2.RELEASE
1+
springboot_version=2.0.4.RELEASE
2+
springcloud_version=Finchley.SR1
3+
springcloudcontract_version=2.0.1.RELEASE
4+
springcloudcontract_pact_version=1.2.5.RELEASE

spring-cloud/spring-cloud-contract-provider/src/main/java/io/reflectoring/UserController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ public ResponseEntity<IdObject> createUser(@RequestBody @Valid User user) {
2626

2727
@PutMapping(path = "/user-service/users/{id}")
2828
public ResponseEntity<User> updateUser(@RequestBody @Valid User user, @PathVariable long id) {
29-
User userFromDb = userRepository.findOne(id);
29+
User userFromDb = userRepository.findById(id).get();
3030
userFromDb.updateFrom(user);
3131
userFromDb = userRepository.save(userFromDb);
3232
return ResponseEntity.ok(userFromDb);
3333
}
3434

3535
@GetMapping(path = "/user-service/users/{id}")
3636
public ResponseEntity<User> getUser(@PathVariable("id") Long id) {
37-
return ResponseEntity.ok(userRepository.findOne(id));
37+
return ResponseEntity.ok(userRepository.findById(id).get());
3838
}
3939

4040

spring-cloud/spring-cloud-contract-provider/src/test/java/io/reflectoring/UserServiceBase.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.reflectoring;
22

3+
import java.util.Optional;
4+
35
import io.restassured.module.mockmvc.RestAssuredMockMvc;
46
import org.junit.Before;
57
import org.junit.runner.RunWith;
@@ -35,7 +37,7 @@ public void setup() {
3537
when(userRepository.save(any(User.class))).thenReturn(savedUser);
3638
RestAssuredMockMvc.webAppContextSetup(webApplicationContext);
3739

38-
when(userRepository.findOne(eq(42L))).thenReturn(savedUser);
40+
when(userRepository.findById(eq(42L))).thenReturn(Optional.of(savedUser));
3941
}
4042

4143
}

0 commit comments

Comments
 (0)