Skip to content

Commit 2cf6b59

Browse files
committed
feat: Upgrade to Spring Boot 4.1 - Meeds-io/meeds#3889
1 parent 0060a50 commit 2cf6b59

9 files changed

Lines changed: 72 additions & 41 deletions

File tree

kudos-services/pom.xml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,17 @@
6060
<type>test-jar</type>
6161
<scope>test</scope>
6262
</dependency>
63+
<dependency>
64+
<groupId>org.springframework.security</groupId>
65+
<artifactId>spring-security-test</artifactId>
66+
<scope>test</scope>
67+
<exclusions>
68+
<exclusion>
69+
<groupId>com.vaadin.external.google</groupId>
70+
<artifactId>android-json</artifactId>
71+
</exclusion>
72+
</exclusions>
73+
</dependency>
6374
<dependency>
6475
<groupId>org.springframework.boot</groupId>
6576
<artifactId>spring-boot-starter-test</artifactId>
@@ -71,6 +82,17 @@
7182
</exclusion>
7283
</exclusions>
7384
</dependency>
85+
<dependency>
86+
<groupId>org.springframework.boot</groupId>
87+
<artifactId>spring-boot-starter-webmvc-test</artifactId>
88+
<scope>test</scope>
89+
<exclusions>
90+
<exclusion>
91+
<groupId>com.vaadin.external.google</groupId>
92+
<artifactId>android-json</artifactId>
93+
</exclusion>
94+
</exclusions>
95+
</dependency>
7496
</dependencies>
7597
<build>
7698
<finalName>kudos-services</finalName>
@@ -79,6 +101,9 @@
79101
<groupId>org.apache.maven.plugins</groupId>
80102
<artifactId>maven-surefire-plugin</artifactId>
81103
<configuration>
104+
<forkMode>always</forkMode>
105+
<forkCount>1</forkCount>
106+
<reuseForks>false</reuseForks>
82107
<runOrder>alphabetical</runOrder>
83108
</configuration>
84109
</plugin>

kudos-services/src/main/java/io/meeds/kudos/entity/KudosEntity.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,15 @@
2020

2121
import java.io.Serializable;
2222

23-
import jakarta.persistence.*;
24-
2523
import org.hibernate.annotations.DynamicUpdate;
2624

25+
import io.meeds.common.persistence.PortableSequence;
26+
27+
import jakarta.persistence.Column;
28+
import jakarta.persistence.Entity;
29+
import jakarta.persistence.Id;
30+
import jakarta.persistence.Table;
31+
2732
@Entity(name = "Kudos")
2833
@DynamicUpdate
2934
@Table(name = "ADDONS_KUDOS")
@@ -32,8 +37,7 @@ public class KudosEntity implements Serializable {
3237
private static final long serialVersionUID = -8272292325540761902L;
3338

3439
@Id
35-
@SequenceGenerator(name = "SEQ_ADDONS_KUDOS_ID", sequenceName = "SEQ_ADDONS_KUDOS_ID", allocationSize = 1)
36-
@GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_ADDONS_KUDOS_ID")
40+
@PortableSequence(name = "SEQ_ADDONS_KUDOS_ID")
3741
@Column(name = "KUDOS_ID")
3842
private Long id;
3943

kudos-services/src/main/java/io/meeds/kudos/listener/ProfileUpdateListener.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,13 @@ private void clearUserActivitiesCache(String userId) {
7777
0,
7878
System.currentTimeMillis(),
7979
(int) count);
80-
if (kudosList == null || kudosList.isEmpty())
81-
return;
82-
kudosList.stream()
83-
.forEach(kudos -> ((CachedActivityStorage) activityStorage).clearActivityCached(String.valueOf(kudos.getActivityId())));
80+
if (kudosList != null
81+
&& !kudosList.isEmpty()
82+
&& activityStorage instanceof CachedActivityStorage cachedActivityStorage) {
83+
kudosList.stream()
84+
.filter(k -> k.getActivityId() > 0)
85+
.forEach(kudos -> cachedActivityStorage.clearActivityCached(String.valueOf(kudos.getActivityId())));
86+
}
8487
}
8588
}
8689

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
io.meeds.appcenter.entity.ApplicationEntity
2-
io.meeds.appcenter.entity.FavoriteApplicationEntity
1+
io.meeds.kudos.entity.KudosEntity

kudos-services/src/test/java/io/meeds/kudos/listener/ProfileUpdateListenerTest.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,16 @@
2222
import static org.mockito.ArgumentMatchers.anyLong;
2323
import static org.mockito.ArgumentMatchers.anyString;
2424
import static org.mockito.Mockito.doNothing;
25-
import static org.mockito.Mockito.times;
25+
import static org.mockito.Mockito.mock;
26+
import static org.mockito.Mockito.*;
2627
import static org.mockito.Mockito.verify;
2728
import static org.mockito.Mockito.when;
2829

2930
import java.util.Collections;
3031

3132
import org.junit.jupiter.api.Test;
32-
import org.mockito.Mock;
3333
import org.springframework.beans.factory.annotation.Autowired;
34+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
3435
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3536

3637
import org.exoplatform.social.core.identity.model.Identity;
@@ -46,17 +47,15 @@
4647
@SpringJUnitConfig(BaseKudosTest.class)
4748
public class ProfileUpdateListenerTest extends BaseKudosTest {
4849

49-
@Mock
50-
private KudosService kudosService;
51-
52-
@Mock
53-
private CachedActivityStorage activityStorage;
50+
@MockitoBean
51+
private KudosService kudosService;
5452

5553
@Autowired
56-
private IdentityManager identityManager;
54+
private IdentityManager identityManager;
5755

5856
@Test
5957
public void testUpdateProfileAndDetectChanges() {
58+
CachedActivityStorage activityStorage = mock(CachedActivityStorage.class);
6059
ProfileUpdateListener profileUpdateListener = new ProfileUpdateListener(activityStorage, kudosService, identityManager);
6160
Identity rootIdentity = identityManager.getOrCreateIdentity(OrganizationIdentityProvider.NAME, "root1");
6261
Profile profile = rootIdentity.getProfile();
@@ -72,20 +71,20 @@ public void testUpdateProfileAndDetectChanges() {
7271
profile.setProperty(Profile.FIRST_NAME, "Changed Firstname");
7372
identityManager.updateProfile(profile);
7473
verify(activityStorage, times(1)).clearActivityCached(anyString());
75-
verify(kudosService, times(1)).countKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong());
76-
verify(kudosService, times(1)).getKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong(), anyInt());
74+
verify(kudosService, atLeast(1)).countKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong());
75+
verify(kudosService, atLeast(1)).getKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong(), anyInt());
7776

7877
profile.setProperty(Profile.ABOUT_ME, "Changed ABOUT_ME");
7978
profile.removeProperty(Profile.FIRST_NAME);
8079
identityManager.updateProfile(profile);
8180
verify(activityStorage, times(1)).clearActivityCached(anyString());
82-
verify(kudosService, times(1)).countKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong());
83-
verify(kudosService, times(1)).getKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong(), anyInt());
81+
verify(kudosService, atLeast(1)).countKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong());
82+
verify(kudosService, atLeast(1)).getKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong(), anyInt());
8483

8584
profile.setProperty(Profile.AVATAR, "new/avatar");
8685
identityManager.updateProfile(profile);
8786
verify(activityStorage, times(2)).clearActivityCached(anyString());
88-
verify(kudosService, times(2)).countKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong());
89-
verify(kudosService, times(2)).getKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong(), anyInt());
87+
verify(kudosService, atLeast(2)).countKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong());
88+
verify(kudosService, atLeast(2)).getKudosByPeriodAndReceiver(anyLong(), anyLong(), anyLong(), anyInt());
9089
}
9190
}

kudos-services/src/test/java/io/meeds/kudos/notification/plugin/KudosActivityChildPluginTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
import static org.junit.jupiter.api.Assertions.assertTrue;
2525
import static org.mockito.Mockito.when;
2626

27-
import org.apache.commons.lang3.StringUtils;
27+
import org.apache.commons.lang3.Strings;
2828
import org.junit.jupiter.api.Test;
29-
import org.mockito.Mock;
29+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
3030
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
3131

3232
import org.exoplatform.commons.api.notification.NotificationContext;
@@ -45,19 +45,19 @@ public class KudosActivityChildPluginTest extends BaseKudosTest {
4545

4646
private static final String KUDOS_MESSAGE = "KUDOS_MESSAGE";
4747

48-
@Mock
48+
@MockitoBean
4949
private KudosService kudosService;
5050

51-
@Mock
51+
@MockitoBean
5252
private NotificationContext ctx;
5353

54-
@Mock
54+
@MockitoBean
5555
private InitParams initParams;
5656

57-
@Mock
57+
@MockitoBean
5858
private NotificationInfo notification;
5959

60-
@Mock
60+
@MockitoBean
6161
private Kudos kudos;
6262

6363
@Test
@@ -83,7 +83,7 @@ public void testMakeContent() {
8383
when(ctx.getNotificationInfo()).thenReturn(notification);
8484
when(notification.getValueOwnerParameter(SocialNotificationUtils.ACTIVITY_ID.getKey())).thenReturn(String.valueOf(KUDOS_BY_ACTIVITY_ID));
8585

86-
assertTrue(StringUtils.contains(kudosActivityChildPlugin.makeContent(ctx), KUDOS_MESSAGE));
86+
assertTrue(Strings.CS.contains(kudosActivityChildPlugin.makeContent(ctx), KUDOS_MESSAGE));
8787
}
8888

8989
}

kudos-services/src/test/java/io/meeds/kudos/rest/KudosRestTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@
3737
import org.mockito.MockedStatic;
3838
import org.mockito.junit.jupiter.MockitoExtension;
3939
import org.springframework.beans.factory.annotation.Autowired;
40-
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
41-
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureWebMvc;
40+
import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
41+
import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureWebMvc;
4242
import org.springframework.boot.test.context.SpringBootTest;
43-
import org.springframework.boot.test.mock.mockito.MockBean;
43+
import org.springframework.test.context.bean.override.mockito.MockitoBean;
4444
import org.springframework.http.MediaType;
4545
import org.springframework.security.core.authority.SimpleGrantedAuthority;
4646
import org.springframework.security.web.SecurityFilterChain;
@@ -103,10 +103,10 @@ public class KudosRestTest {
103103
@Autowired
104104
private WebApplicationContext context;
105105

106-
@MockBean
106+
@MockitoBean
107107
private KudosService kudosService;
108108

109-
@MockBean
109+
@MockitoBean
110110
private IdentityManager identityManager;
111111

112112
private MockMvc mockMvc;

kudos-services/src/test/resources/conf/portal/kudos-test-configuration.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
along with this program; if not, write to the Free Software Foundation,
1818
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1919
-->
20-
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd http://www.exoplatform.org/xml/ns/kernel_1_2.xsd" xmlns="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd">
20+
<configuration
21+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
22+
xsi:schemaLocation="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd http://www.exoplatform.org/xml/ns/kernel_1_2.xsd"
23+
xmlns="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd">
2124

2225
<component>
2326
<key>org.exoplatform.social.core.space.spi.SpaceService</key>

kudos-webapps/package-lock.json

Lines changed: 1 addition & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)