Skip to content

Commit d5d8d62

Browse files
sanagaraj-pivotalashakirin
authored andcommitted
Fixing ehcache issue found at spring-pet-clinic project #294 (#311)
Co-authored-by: Andrei Shakirin <[email protected]>
1 parent ff59266 commit d5d8d62

File tree

6 files changed

+62
-1
lines changed

6 files changed

+62
-1
lines changed

applications/spring-shell/src/test/java/org/springframework/sbm/BootUpgrade_27_30_IntegrationTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,13 @@
1919
import org.junit.jupiter.api.Tag;
2020
import org.junit.jupiter.api.Test;
2121
import org.openrewrite.maven.MavenParser;
22+
import org.openrewrite.maven.tree.Dependency;
23+
import org.openrewrite.maven.tree.MavenResolutionResult;
2224
import org.openrewrite.xml.tree.Xml;
2325

2426
import java.nio.file.Path;
27+
import java.util.List;
28+
import java.util.Optional;
2529

2630
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
2731

@@ -48,6 +52,34 @@ void migrateSimpleApplication() {
4852
verifyConstructorBindingRemoval();
4953
verifyCrudRepoAddition();
5054
verifyAutoConfigurationIsRefactored();
55+
verifyEhCacheVersionIsUpgraded();
56+
}
57+
58+
private void verifyEhCacheVersionIsUpgraded() {
59+
String pomContent = loadFile(Path.of("pom.xml"));
60+
61+
Xml.Document mavenAsXMLDocument = parsePom(pomContent);
62+
63+
List<Dependency> dependencies = mavenAsXMLDocument
64+
.getMarkers()
65+
.findFirst(MavenResolutionResult.class)
66+
.get()
67+
.getPom()
68+
.getRequestedDependencies();
69+
70+
Optional<Dependency> ehcacheResult = dependencies
71+
.stream()
72+
.filter(dependency -> dependency.getArtifactId().equals("ehcache"))
73+
.findFirst();
74+
75+
assertThat(ehcacheResult).isPresent();
76+
77+
Dependency ehcacheDependency = ehcacheResult.get();
78+
79+
assertThat(ehcacheDependency.getArtifactId()).isEqualTo("ehcache");
80+
assertThat(ehcacheDependency.getGav().getGroupId()).isEqualTo("org.ehcache");
81+
assertThat(ehcacheDependency.getGav().getVersion()).isNull();
82+
assertThat(ehcacheDependency.getClassifier()).isEqualTo("jakarta");
5183
}
5284

5385
private void verifyAutoConfigurationIsRefactored() {
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
**Features used in the current project**
2+
3+
* ehcache in pom is mentioned this helps validate our migration to spring 3 where ehcache classifier has to be used to resolve version.
4+
* Uses Constructor binding on classes which will be removed when migrating to Spring 3
5+
* Uses PagingAndSortingRepo interface where CrudRepo has been removed.
6+
* Uses properties that will be removed/moved on spring 3 migration
7+
* Uses micrometer packages which are moved to a new structure.
8+

applications/spring-shell/src/test/resources/testcode/boot-migration-27-30/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
<groupId>io.micrometer</groupId>
2727
<artifactId>micrometer-registry-prometheus</artifactId>
2828
</dependency>
29+
<dependency>
30+
<groupId>org.ehcache</groupId>
31+
<artifactId>ehcache</artifactId>
32+
</dependency>
2933
<dependency>
3034
<groupId>org.springframework.boot</groupId>
3135
<artifactId>spring-boot-starter-data-jpa</artifactId>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.springboot.example.ehcache;
2+
3+
import org.ehcache.event.CacheEvent;
4+
import org.ehcache.event.CacheEventListener;
5+
6+
public class EventLogger implements CacheEventListener<Object, Object> {
7+
@Override
8+
public void onEvent(CacheEvent<?, ?> cacheEvent) {
9+
System.out.println("My ehcache event listener is called");
10+
}
11+
}

applications/spring-shell/src/test/resources/testcode/boot-migration-27-30/src/main/java/org/springboot/example/upgrade/StudentRepoReactiveSorting.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.springboot.example.upgrade;
22

3-
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
43
import org.springframework.data.repository.reactive.ReactiveSortingRepository;
54

65
public interface StudentRepoReactiveSorting extends ReactiveSortingRepository<Student, Long> {

components/sbm-recipes-boot-upgrade/src/main/resources/recipes/boot-2.7-3.0-dependency-version-update.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@
4040
displayName: Upgrade to Spring Data 3.0
4141
description: 'Upgrade to Spring Data to 3.0 from any prior version.'
4242
recipeList:
43+
- org.openrewrite.maven.ChangeDependencyClassifier:
44+
groupId: org.ehcache
45+
artifactId: ehcache
46+
newClassifier: jakarta
47+
- org.openrewrite.maven.ChangeDependencyVersion:
48+
dependencyPattern: org.ehcache:ehcache
49+
newVersion: 3.10.0
4350
- org.openrewrite.maven.UpgradeParentVersion:
4451
groupId: org.springframework.boot
4552
artifactId: spring-boot-starter-parent

0 commit comments

Comments
 (0)