Skip to content

Commit 0fdced4

Browse files
authored
Merge pull request #23 from PatternAtlas/spring-boot-2.4.1-and-hateoas-link-fix
Upgrade to Spring Boot 2.4.1 and fix generation of HATEOAS links for Design Models
2 parents 8b81dc3 + bb53173 commit 0fdced4

File tree

3 files changed

+17
-20
lines changed

3 files changed

+17
-20
lines changed

pom.xml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>2.2.0.RELEASE</version>
8+
<version>2.4.2</version>
99
<relativePath/> <!-- lookup parent from repository -->
1010
</parent>
1111

@@ -16,7 +16,7 @@
1616
<properties>
1717
<java.version>1.8</java.version>
1818
<springdoc-ui.version>1.4.0</springdoc-ui.version>
19-
<spring-oauth2.version>2.1.2.RELEASE</spring-oauth2.version>
19+
<spring-oauth2.version>2.3.6.RELEASE</spring-oauth2.version>
2020
</properties>
2121

2222
<dependencies>
@@ -32,7 +32,6 @@
3232
<dependency>
3333
<groupId>org.springframework.boot</groupId>
3434
<artifactId>spring-boot-starter-web</artifactId>
35-
<version>2.4.1</version>
3635
</dependency>
3736

3837
<dependency>
@@ -55,9 +54,8 @@
5554
</dependency>
5655

5756
<dependency>
58-
<groupId>org.springframework.hateoas</groupId>
59-
<artifactId>spring-hateoas</artifactId>
60-
<version>1.2.2</version>
57+
<groupId>org.springframework.boot</groupId>
58+
<artifactId>spring-boot-starter-hateoas</artifactId>
6159
</dependency>
6260

6361
<!-- Persistence -->

src/main/java/com/patternpedia/api/config/ResourceServerConfig.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
import org.springframework.context.annotation.Bean;
55
import org.springframework.context.annotation.Configuration;
66
import org.springframework.core.Ordered;
7-
import org.springframework.http.HttpMethod;
8-
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
97
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
108
import org.springframework.security.config.http.SessionCreationPolicy;
119
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -61,7 +59,7 @@ public FilterRegistrationBean customCorsFilter() {
6159
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
6260
CorsConfiguration config = new CorsConfiguration();
6361
config.setAllowCredentials(true);
64-
config.addAllowedOrigin("*");
62+
config.addAllowedOriginPattern("*");
6563
config.addAllowedHeader("*");
6664
config.addAllowedMethod("*");
6765
source.registerCorsConfiguration("/**", config);

src/main/java/com/patternpedia/api/rest/controller/DesignModelController.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.springframework.hateoas.CollectionModel;
1414
import org.springframework.hateoas.EntityModel;
1515
import org.springframework.hateoas.Link;
16+
import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder;
1617
import org.springframework.http.HttpStatus;
1718
import org.springframework.http.ResponseEntity;
1819
import org.springframework.web.bind.annotation.*;
@@ -52,24 +53,24 @@ private static List<Link> getDesignModelCollectionLinks() {
5253

5354

5455
private static List<Link> getDesignModelLinks(UUID designModelId, String selfRel) {
55-
Map<String, Object> linkMap = new HashMap<>();
56+
Map<String, WebMvcLinkBuilder> linkMap = new HashMap<>();
5657

57-
linkMap.put("designModels", methodOn(DesignModelController.class).getDesignModels());
58-
linkMap.put("designModel", methodOn(DesignModelController.class).getDesignModel(designModelId));
59-
linkMap.put("patterns", methodOn(DesignModelController.class).getDesignModelPatternInstances(designModelId));
60-
linkMap.put("edges", methodOn(DesignModelController.class).getDesignModelPatternEdges(designModelId));
61-
linkMap.put("edgeTypes", methodOn(DesignModelController.class).getDesignModelPatternEdgeTypes());
62-
linkMap.put("concreteSolutions", methodOn(DesignModelController.class).checkConcreteSolutions(designModelId));
63-
linkMap.put("aggregate", methodOn(DesignModelController.class).aggregateConcreteSolutions(designModelId, null));
58+
linkMap.put("designModels", linkTo(methodOn(DesignModelController.class).getDesignModels()));
59+
linkMap.put("designModel", linkTo(methodOn(DesignModelController.class).getDesignModel(designModelId)));
60+
linkMap.put("patterns", linkTo(methodOn(DesignModelController.class).getDesignModelPatternInstances(designModelId)));
61+
linkMap.put("edges", linkTo(methodOn(DesignModelController.class).getDesignModelPatternEdges(designModelId)));
62+
linkMap.put("edgeTypes", linkTo(methodOn(DesignModelController.class).getDesignModelPatternEdgeTypes()));
63+
linkMap.put("concreteSolutions",linkTo( methodOn(DesignModelController.class).checkConcreteSolutions(designModelId)));
64+
linkMap.put("aggregate", linkTo(methodOn(DesignModelController.class).aggregateConcreteSolutions(designModelId, null)));
6465

6566
List<Link> linkList = new ArrayList<>();
6667
if (linkMap.containsKey(selfRel)) {
67-
linkList.add(linkTo(linkMap.get(selfRel)).withSelfRel());
68+
linkList.add(linkMap.get(selfRel).withSelfRel());
6869
} else {
6970
log.error("_self link for " + selfRel + " not found in linkMap");
7071
}
71-
for (Map.Entry<String, Object> linkPair : linkMap.entrySet()) {
72-
linkList.add(linkTo(linkPair.getValue()).withRel(linkPair.getKey()));
72+
for (Map.Entry<String, WebMvcLinkBuilder> linkPair : linkMap.entrySet()) {
73+
linkList.add(linkPair.getValue().withRel(linkPair.getKey()));
7374
}
7475

7576
return linkList;

0 commit comments

Comments
 (0)