Upgrade to Jakarta EE 10
* Fix mail module to fit to the latest mail API requirements * Fix the last Sonar smell in the `SmbShare` * Remove redundant dependency for `hamcrest-core` in various modules
This commit is contained in:
30
build.gradle
30
build.gradle
@@ -70,15 +70,15 @@ ext {
|
||||
groovyVersion = '4.0.6'
|
||||
hamcrestVersion = '2.2'
|
||||
hazelcastVersion = '5.1.4'
|
||||
hibernateVersion = '6.1.4.Final'
|
||||
hibernateVersion = '6.1.5.Final'
|
||||
hsqldbVersion = '2.7.0'
|
||||
h2Version = '2.1.214'
|
||||
jacksonVersion = '2.14.0'
|
||||
jaxbVersion = '3.0.2'
|
||||
jaxbVersion = '4.0.1'
|
||||
jcifsVersion = '2.1.32'
|
||||
jeroMqVersion = '0.5.2'
|
||||
jmsApiVersion = '3.0.0'
|
||||
jpaApiVersion = '3.0.3'
|
||||
jmsApiVersion = '3.1.0'
|
||||
jpaApiVersion = '3.1.0'
|
||||
jrubyVersion = '9.3.8.0'
|
||||
jsonpathVersion = '2.7.0'
|
||||
junit4Version = '4.13.2'
|
||||
@@ -88,7 +88,7 @@ ext {
|
||||
kryoVersion = '5.3.0'
|
||||
lettuceVersion = '6.2.1.RELEASE'
|
||||
log4jVersion = '2.19.0'
|
||||
mailVersion = '2.0.1'
|
||||
mailVersion = '1.0.0'
|
||||
micrometerVersion = '1.10.0'
|
||||
micrometerTracingVersion = '1.0.0'
|
||||
mockitoVersion = '4.8.0'
|
||||
@@ -551,7 +551,6 @@ project('spring-integration-core') {
|
||||
optionalApi 'org.jetbrains.kotlinx:kotlinx-coroutines-reactor'
|
||||
|
||||
testImplementation "org.aspectj:aspectjweaver:$aspectjVersion"
|
||||
testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
|
||||
testImplementation 'io.micrometer:micrometer-observation-test'
|
||||
testImplementation ('io.micrometer:micrometer-tracing-integration-test') {
|
||||
exclude group: 'io.opentelemetry'
|
||||
@@ -621,7 +620,6 @@ project('spring-integration-ftp') {
|
||||
optionalApi "org.apache.ftpserver:ftpserver-core:$ftpServerVersion"
|
||||
|
||||
testImplementation project(':spring-integration-file').sourceSets.test.output
|
||||
testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -698,7 +696,6 @@ project('spring-integration-ip') {
|
||||
api project(':spring-integration-core')
|
||||
testImplementation project(':spring-integration-stream')
|
||||
testImplementation project(':spring-integration-event')
|
||||
testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
|
||||
|
||||
testRuntimeOnly "com.esotericsoftware:kryo:$kryoVersion"
|
||||
testRuntimeOnly 'com.fasterxml.jackson.core:jackson-databind'
|
||||
@@ -761,14 +758,13 @@ project('spring-integration-jpa') {
|
||||
dependencies {
|
||||
api project(':spring-integration-core')
|
||||
api 'org.springframework:spring-orm'
|
||||
optionalApi "org.eclipse.persistence:org.eclipse.persistence.jpa:$jpaApiVersion"
|
||||
optionalApi "jakarta.persistence:jakarta.persistence-api:$jpaApiVersion"
|
||||
|
||||
testImplementation('org.springframework.data:spring-data-jpa') {
|
||||
exclude group: 'org.springframework'
|
||||
}
|
||||
testImplementation "com.h2database:h2:$h2Version"
|
||||
testImplementation "org.hibernate.orm:hibernate-core:$hibernateVersion"
|
||||
testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -781,7 +777,6 @@ project('spring-integration-kafka') {
|
||||
}
|
||||
|
||||
testImplementation "org.springframework.kafka:spring-kafka-test:$springKafkaVersion"
|
||||
testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
|
||||
testImplementation 'com.fasterxml.jackson.core:jackson-databind'
|
||||
}
|
||||
}
|
||||
@@ -792,8 +787,10 @@ project('spring-integration-mail') {
|
||||
api project(':spring-integration-core')
|
||||
api 'org.springframework:spring-context-support'
|
||||
|
||||
providedImplementation "com.sun.mail:jakarta.mail:$mailVersion"
|
||||
providedImplementation "org.eclipse.angus:jakarta.mail:$mailVersion"
|
||||
|
||||
testImplementation "com.icegreen:greenmail:$greenmailVersion"
|
||||
|
||||
testRuntimeOnly 'org.apache.logging.log4j:log4j-jul'
|
||||
}
|
||||
}
|
||||
@@ -820,8 +817,8 @@ project('spring-integration-r2dbc') {
|
||||
exclude group: 'org.springframework'
|
||||
}
|
||||
api 'org.springframework:spring-r2dbc'
|
||||
|
||||
testImplementation "io.r2dbc:r2dbc-h2:$r2dbch2Version"
|
||||
testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -846,7 +843,6 @@ project('spring-integration-redis') {
|
||||
}
|
||||
|
||||
testImplementation "io.lettuce:lettuce-core:$lettuceVersion"
|
||||
testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
|
||||
testImplementation 'com.fasterxml.jackson.core:jackson-databind'
|
||||
}
|
||||
|
||||
@@ -1036,9 +1032,7 @@ project('spring-integration-ws') {
|
||||
testImplementation "jakarta.jms:jakarta.jms-api:$jmsApiVersion"
|
||||
testImplementation "org.igniterealtime.smack:smack-tcp:$smackVersion"
|
||||
testImplementation "org.igniterealtime.smack:smack-extensions:$smackVersion"
|
||||
testImplementation "jakarta.mail:jakarta.mail-api:$mailVersion"
|
||||
|
||||
testRuntimeOnly "com.sun.mail:jakarta.mail:$mailVersion"
|
||||
testImplementation "org.eclipse.angus:angus-mail:$mailVersion"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1083,8 +1077,6 @@ project('spring-integration-zeromq') {
|
||||
api "org.zeromq:jeromq:$jeroMqVersion"
|
||||
|
||||
optionalApi 'com.fasterxml.jackson.core:jackson-databind'
|
||||
|
||||
testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -270,8 +270,8 @@ public class ImapMailReceiverTests {
|
||||
user.deliver(GreenMailUtil.createTextEmail("user", "sender", "subject", "body",
|
||||
imapIdleServer.getImap().getServerSetup()));
|
||||
AbstractMailReceiver receiver = new ImapMailReceiver();
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
receiver = receiveAndMarkAsReadDontDeleteGuts(receiver, msg1, msg2);
|
||||
verify(msg1, times(1)).setFlag(Flag.SEEN, true);
|
||||
verify(msg2, times(1)).setFlag(Flag.SEEN, true);
|
||||
@@ -310,11 +310,11 @@ public class ImapMailReceiverTests {
|
||||
return receiver;
|
||||
}
|
||||
|
||||
@Test // INT-2991 Flag.SEEN was set twice when a filter is used
|
||||
@Test
|
||||
public void receiveAndMarkAsReadDontDeletePassingFilter() throws Exception {
|
||||
AbstractMailReceiver receiver = new ImapMailReceiver();
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
Expression selectorExpression = new SpelExpressionParser().parseExpression("true");
|
||||
receiver.setSelectorExpression(selectorExpression);
|
||||
receiver = receiveAndMarkAsReadDontDeleteGuts(receiver, msg1, msg2);
|
||||
@@ -323,11 +323,11 @@ public class ImapMailReceiverTests {
|
||||
verify(receiver, times(0)).deleteMessages(Mockito.any());
|
||||
}
|
||||
|
||||
@Test // INT-2991 filtered messages were marked SEEN
|
||||
@Test
|
||||
public void receiveAndMarkAsReadDontDeleteFiltered() throws Exception {
|
||||
AbstractMailReceiver receiver = new ImapMailReceiver();
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
given(msg2.getSubject()).willReturn("foo"); // should not be marked seen
|
||||
Expression selectorExpression = new SpelExpressionParser()
|
||||
.parseExpression("subject == null OR !subject.equals('foo')");
|
||||
@@ -401,8 +401,8 @@ public class ImapMailReceiverTests {
|
||||
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
|
||||
folderField.set(receiver, folder);
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
willAnswer(invocation -> {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
|
||||
@@ -437,8 +437,8 @@ public class ImapMailReceiverTests {
|
||||
folderField.set(receiver, folder);
|
||||
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
willAnswer(invocation -> null).given(receiver).openFolder();
|
||||
|
||||
@@ -466,8 +466,8 @@ public class ImapMailReceiverTests {
|
||||
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
|
||||
folderField.set(receiver, folder);
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
willAnswer(invocation -> {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
|
||||
@@ -502,8 +502,8 @@ public class ImapMailReceiverTests {
|
||||
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
|
||||
folderField.set(receiver, folder);
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
willAnswer(invocation -> {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
|
||||
@@ -536,7 +536,7 @@ public class ImapMailReceiverTests {
|
||||
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter);
|
||||
adapterAccessor.setPropertyValue("mailReceiver", receiver);
|
||||
|
||||
MimeMessage mailMessage = mock(MimeMessage.class);
|
||||
Message mailMessage = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Flags flags = mock(Flags.class);
|
||||
given(mailMessage.getFlags()).willReturn(flags);
|
||||
final Message[] messages = new Message[]{ mailMessage };
|
||||
@@ -604,7 +604,7 @@ public class ImapMailReceiverTests {
|
||||
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter);
|
||||
adapterAccessor.setPropertyValue("mailReceiver", receiver);
|
||||
|
||||
MimeMessage mailMessage = mock(MimeMessage.class);
|
||||
Message mailMessage = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Flags flags = mock(Flags.class);
|
||||
given(mailMessage.getFlags()).willReturn(flags);
|
||||
final Message[] messages = new Message[]{ mailMessage };
|
||||
@@ -651,7 +651,7 @@ public class ImapMailReceiverTests {
|
||||
|
||||
willAnswer(invocation -> folder).given(receiver).getFolder();
|
||||
|
||||
MimeMessage mailMessage = mock(MimeMessage.class);
|
||||
Message mailMessage = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Flags flags = mock(Flags.class);
|
||||
given(mailMessage.getFlags()).willReturn(flags);
|
||||
final Message[] messages = new Message[]{ mailMessage };
|
||||
@@ -724,7 +724,7 @@ public class ImapMailReceiverTests {
|
||||
|
||||
willAnswer(invocation -> folder).given(receiver).getFolder();
|
||||
|
||||
MimeMessage mailMessage = mock(MimeMessage.class);
|
||||
Message mailMessage = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Flags flags = mock(Flags.class);
|
||||
given(mailMessage.getFlags()).willReturn(flags);
|
||||
final Message[] messages = new Message[]{ mailMessage };
|
||||
@@ -864,7 +864,7 @@ public class ImapMailReceiverTests {
|
||||
given(folder.exists()).willReturn(true);
|
||||
given(folder.isOpen()).willReturn(true);
|
||||
|
||||
Message message = new MimeMessage(null, new ClassPathResource("test.mail").getInputStream());
|
||||
Message message = GreenMailUtil.newMimeMessage(new ClassPathResource("test.mail").getInputStream());
|
||||
given(folder.search(Mockito.any())).willReturn(new Message[]{ message });
|
||||
given(store.getFolder(Mockito.any(URLName.class))).willReturn(folder);
|
||||
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
|
||||
@@ -878,8 +878,8 @@ public class ImapMailReceiverTests {
|
||||
|
||||
@Test
|
||||
public void testNullMessages() throws Exception {
|
||||
Message message1 = mock(Message.class);
|
||||
Message message2 = mock(Message.class);
|
||||
Message message1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message message2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
final Message[] messages1 = new Message[]{ null, null, message1 };
|
||||
final Message[] messages2 = new Message[]{ message2 };
|
||||
final SearchTermStrategy searchTermStrategy = mock(SearchTermStrategy.class);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -29,16 +29,18 @@ import jakarta.mail.Flags;
|
||||
import jakarta.mail.Flags.Flag;
|
||||
import jakarta.mail.Folder;
|
||||
import jakarta.mail.Message;
|
||||
import jakarta.mail.internet.MimeMessage;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
|
||||
import com.icegreen.greenmail.util.GreenMailUtil;
|
||||
|
||||
/**
|
||||
* @author Oleg Zhurakousky
|
||||
* @author Gary Russell
|
||||
* @author Artem Bilan
|
||||
*
|
||||
*/
|
||||
public class Pop3MailReceiverTests {
|
||||
@@ -57,9 +59,9 @@ public class Pop3MailReceiverTests {
|
||||
when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
|
||||
folderField.set(receiver, folder);
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
final Message[] messages = new Message[] { msg1, msg2 };
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
doAnswer(invocation -> {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
|
||||
int folderOpenMode = (Integer) accessor.getPropertyValue("folderOpenMode");
|
||||
@@ -92,9 +94,9 @@ public class Pop3MailReceiverTests {
|
||||
when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
|
||||
folderField.set(receiver, folder);
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
final Message[] messages = new Message[] { msg1, msg2 };
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
doAnswer(invocation -> null).when(receiver).openFolder();
|
||||
|
||||
doAnswer(invocation -> messages).when(receiver).searchForNewMessages();
|
||||
@@ -119,9 +121,9 @@ public class Pop3MailReceiverTests {
|
||||
when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
|
||||
folderField.set(receiver, folder);
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
final Message[] messages = new Message[] { msg1, msg2 };
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
doAnswer(invocation -> null).when(receiver).openFolder();
|
||||
|
||||
doAnswer(invocation -> messages).when(receiver).searchForNewMessages();
|
||||
@@ -146,9 +148,9 @@ public class Pop3MailReceiverTests {
|
||||
when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
|
||||
folderField.set(receiver, folder);
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
final Message[] messages = new Message[] { msg1, msg2 };
|
||||
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
|
||||
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
doAnswer(invocation -> null).when(receiver).openFolder();
|
||||
|
||||
doAnswer(invocation -> messages).when(receiver).searchForNewMessages();
|
||||
|
||||
@@ -41,6 +41,7 @@ import jcifs.smb.SmbFile;
|
||||
* @author Markus Spann
|
||||
* @author Gregory Bragg
|
||||
* @author Adam Jones
|
||||
* @author Artem Bilan
|
||||
*
|
||||
* @since 6.0
|
||||
*/
|
||||
@@ -139,4 +140,25 @@ public class SmbShare extends SmbFile {
|
||||
super.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests to see if two {@link SmbShare} objects are equal.
|
||||
* Relies on a super implementation.
|
||||
* @param other another {@link SmbShare} object to compare for equality.
|
||||
* @return equality result.
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object other) { // NOSONAR
|
||||
return super.equals(other);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a cache code from the super class.
|
||||
* @return A hashcode for this share
|
||||
*/
|
||||
@Override
|
||||
public int hashCode() { // NOSONAR
|
||||
return super.hashCode();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user