Skip to content

Commit f92d9ff

Browse files
committed
refactor: simplify samples and add security contracts
- Replace Bar/Foo with Item record in all samples - Remove HATEOAS from contracts sample - Add Spring Security with authenticated/unauthenticated contracts - Add tests for @PathVariable and @RequestParam with UUID and FriendlyId types - Update contract files with proper package declarations
1 parent de2898d commit f92d9ff

37 files changed

Lines changed: 650 additions & 375 deletions

File tree

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ Dependencies
111111
<dependency>
112112
<groupId>com.devskiller.friendly-id</groupId>
113113
<artifactId>friendly-id</artifactId>
114-
<version>1.1.0</version>
114+
<version>2.0.0-alpha6</version>
115115
</dependency>
116116
```
117117

@@ -161,7 +161,7 @@ The FriendlyID library includes a Spring configuration to make it easy to add sh
161161
<dependency>
162162
<groupId>com.devskiller.friendly-id</groupId>
163163
<artifactId>friendly-id-spring-boot-starter</artifactId>
164-
<version>1.1.0</version>
164+
<version>2.0.0-alpha6</version>
165165
</dependency>
166166
```
167167

@@ -205,7 +205,7 @@ First, add the following Jackson module dependency:
205205
<dependency>
206206
<groupId>com.devskiller.friendly-id</groupId>
207207
<artifactId>friendly-id-jackson-datatype</artifactId>
208-
<version>1.1.0</version>
208+
<version>2.0.0-alpha6</version>
209209
</dependency>
210210
```
211211
Then register the `FriendlyIdModule` module as follows:
@@ -224,7 +224,7 @@ First, add the dependency:
224224
<dependency>
225225
<groupId>com.devskiller.friendly-id</groupId>
226226
<artifactId>friendly-id-jooq</artifactId>
227-
<version>1.1.0</version>
227+
<version>2.0.0-alpha6</version>
228228
</dependency>
229229
```
230230

@@ -251,7 +251,7 @@ First, add the dependency:
251251
<dependency>
252252
<groupId>com.devskiller.friendly-id</groupId>
253253
<artifactId>friendly-id-jpa</artifactId>
254-
<version>1.1.0</version>
254+
<version>2.0.0-alpha6</version>
255255
</dependency>
256256
```
257257

@@ -279,7 +279,7 @@ First, add the dependency:
279279
<dependency>
280280
<groupId>com.devskiller.friendly-id</groupId>
281281
<artifactId>friendly-id-openfeign</artifactId>
282-
<version>1.1.0</version>
282+
<version>2.0.0-alpha6</version>
283283
</dependency>
284284
```
285285

friendly-id-samples/friendly-id-contracts/pom.xml

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,32 +20,39 @@
2020
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2121
<java.version>21</java.version>
2222
<spring-cloud-contract.version>5.0.1</spring-cloud-contract.version>
23+
<rest-assured.version>6.0.0</rest-assured.version>
2324
</properties>
2425

2526
<dependencies>
2627
<dependency>
2728
<groupId>org.springframework.boot</groupId>
2829
<artifactId>spring-boot-starter-web</artifactId>
2930
</dependency>
31+
<dependency>
32+
<groupId>org.springframework.boot</groupId>
33+
<artifactId>spring-boot-starter-security</artifactId>
34+
</dependency>
35+
<dependency>
36+
<groupId>org.springframework.security</groupId>
37+
<artifactId>spring-security-test</artifactId>
38+
<scope>test</scope>
39+
</dependency>
3040
<dependency>
3141
<groupId>org.springframework.cloud</groupId>
3242
<artifactId>spring-cloud-starter-contract-verifier</artifactId>
3343
<scope>test</scope>
3444
</dependency>
45+
<dependency>
46+
<groupId>io.rest-assured</groupId>
47+
<artifactId>spring-mock-mvc</artifactId>
48+
<version>${rest-assured.version}</version>
49+
<scope>test</scope>
50+
</dependency>
3551
<dependency>
3652
<groupId>com.devskiller.friendly-id</groupId>
3753
<artifactId>friendly-id-spring-boot-starter</artifactId>
3854
<version>${project.version}</version>
3955
</dependency>
40-
<dependency>
41-
<groupId>org.springframework.boot</groupId>
42-
<artifactId>spring-boot-starter-hateoas</artifactId>
43-
</dependency>
44-
<dependency>
45-
<groupId>org.atteo</groupId>
46-
<artifactId>evo-inflector</artifactId>
47-
<version>1.2.2</version>
48-
</dependency>
4956
<!-- Jackson 3 modules are now included automatically by Spring Boot 4 -->
5057

5158
<dependency>
@@ -124,6 +131,12 @@
124131
<configuration>
125132
<basePackageForTests>com.devskiller.friendly_id.sample.contracts</basePackageForTests>
126133
<baseClassForTests>com.devskiller.friendly_id.sample.contracts.ContractVerifierBase</baseClassForTests>
134+
<baseClassMappings>
135+
<baseClassMapping>
136+
<contractPackageRegex>.*authenticated.*</contractPackageRegex>
137+
<baseClassFQN>com.devskiller.friendly_id.sample.contracts.AuthenticatedContractBase</baseClassFQN>
138+
</baseClassMapping>
139+
</baseClassMappings>
127140
<testFramework>JUNIT5</testFramework>
128141
</configuration>
129142
</plugin>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.devskiller.friendly_id.sample.contracts;
2+
3+
import org.springframework.web.bind.annotation.GetMapping;
4+
import org.springframework.web.bind.annotation.RequestMapping;
5+
import org.springframework.web.bind.annotation.RestController;
6+
7+
@RestController
8+
@RequestMapping("/admin")
9+
public class AdminController {
10+
11+
@GetMapping("/status")
12+
public String status() {
13+
return "OK";
14+
}
15+
}

friendly-id-samples/friendly-id-contracts/src/main/java/com/devskiller/friendly_id/sample/contracts/BarController.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

friendly-id-samples/friendly-id-contracts/src/main/java/com/devskiller/friendly_id/sample/contracts/BarResource.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

friendly-id-samples/friendly-id-contracts/src/main/java/com/devskiller/friendly_id/sample/contracts/BarResourceAssembler.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

friendly-id-samples/friendly-id-contracts/src/main/java/com/devskiller/friendly_id/sample/contracts/FooController.java

Lines changed: 0 additions & 58 deletions
This file was deleted.

friendly-id-samples/friendly-id-contracts/src/main/java/com/devskiller/friendly_id/sample/contracts/FooResource.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

friendly-id-samples/friendly-id-contracts/src/main/java/com/devskiller/friendly_id/sample/contracts/FooResourceAssembler.java

Lines changed: 0 additions & 28 deletions
This file was deleted.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.devskiller.friendly_id.sample.contracts;
2+
3+
import java.util.UUID;
4+
5+
import com.devskiller.friendly_id.FriendlyIdFormat;
6+
import com.devskiller.friendly_id.IdFormat;
7+
import com.devskiller.friendly_id.type.FriendlyId;
8+
9+
/**
10+
* Example record demonstrating different UUID serialization formats.
11+
*
12+
* @param id UUID serialized as FriendlyId string (default behavior)
13+
* @param rawId UUID serialized as raw UUID string
14+
* @param friendlyUuid UUID explicitly serialized as FriendlyId string
15+
* @param friendlyId FriendlyId value object type
16+
*/
17+
public record Item(
18+
UUID id,
19+
@IdFormat(FriendlyIdFormat.RAW) UUID rawId,
20+
@IdFormat(FriendlyIdFormat.URL62) UUID friendlyUuid,
21+
FriendlyId friendlyId
22+
) {
23+
}

0 commit comments

Comments
 (0)