You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/02/10 14:36:42 UTC
[james-project] 06/09: JAMES-3683 Introduce a redis.properties configuration file
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 7f6c503f4df8d94f0d440a99f892a0f7ff7b4d2d
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Feb 7 10:57:16 2022 +0700
JAMES-3683 Introduce a redis.properties configuration file
---
server/mailet/rate-limiter-redis/README.adoc | 30 +++++-----------------
.../mailet/rate-limiter-redis/docker-compose.yml | 1 +
.../mailet/rate-limiter-redis/mailetcontainer.xml | 1 -
server/mailet/rate-limiter-redis/pom.xml | 11 ++++++++
server/mailet/rate-limiter-redis/redis.properties | 1 +
.../rate/limiter/redis/RedisRateLimiter.scala | 19 +++++++-------
.../redis/RedisRateLimiterConfiguration.scala | 6 ++---
.../james/rate/limiter/api/RateLimiter.scala | 5 ----
.../rate/limiter/memory/MemoryRateLimiter.scala | 17 ++++++------
.../james/transport/mailets/GlobalRateLimit.scala | 9 +++----
.../mailets/PerRecipientRateLimitMailet.scala | 5 ++--
.../transport/mailets/PerSenderRateLimit.scala | 9 +++----
.../transport/mailets/GlobalRateLimitTest.scala | 4 +--
.../mailets/PerRecipientRateLimitMailetTest.scala | 4 +--
.../transport/mailets/PerSenderRateLimitTest.scala | 4 +--
15 files changed, 58 insertions(+), 68 deletions(-)
diff --git a/server/mailet/rate-limiter-redis/README.adoc b/server/mailet/rate-limiter-redis/README.adoc
index 404c455..2602c3c 100644
--- a/server/mailet/rate-limiter-redis/README.adoc
+++ b/server/mailet/rate-limiter-redis/README.adoc
@@ -13,31 +13,15 @@ for the underlying rate limiting.
`extension.properties`:
----
-guice.extension.module=org.apache.james.rate.limiter.redis.R
+guice.extension.module=org.apache.james.rate.limiter.redis.RedisRateLimiterModule
----
-- 4. Use the rate limiting mailets within `mailetcontainer.xml`
+- 4. Provide a `redis.properties` file:
-We provide a sample `docker-compose` demonstrating this setup.
-
-== Additionnal mailet parameters
-
-Mailets need to specify the `redisURL` tag.
-
-This consists in a list of urls to contact the Redis servers.
-
-Specifying a single URL will connect to a single Redis instance.
-
-Specifying a coma delimited list of URLs will connect to Redis as a cluster.
-
-Eg:
+----
+redisURL=redis://redis:6379
+----
-```
-<mailet matcher="All" class="PerSenderRateLimit">
- <redisURL>redis://localhost:6379</redisURL>
- <keyPrefix>myPrefix</keyPrefix>
- <duration>1h</duration>
- <count>10</count>
-</mailet>
-``
+- 5. Use the rate limiting mailets within `mailetcontainer.xml`
+We provide a sample `docker-compose` demonstrating this setup.
\ No newline at end of file
diff --git a/server/mailet/rate-limiter-redis/docker-compose.yml b/server/mailet/rate-limiter-redis/docker-compose.yml
index d21bf4c..45b1db8 100644
--- a/server/mailet/rate-limiter-redis/docker-compose.yml
+++ b/server/mailet/rate-limiter-redis/docker-compose.yml
@@ -14,4 +14,5 @@ services:
volumes:
- $PWD/target/james-server-rate-limiter-redis-3.7.0-SNAPSHOT-jar-with-dependencies.jar:/root/extensions-jars/james-server-rate-limiter-redis.jar
- $PWD/extensions.properties:/root/conf/extensions.properties
+ - $PWD/redis.properties:/root/conf/redis.properties
- $PWD/mailetcontainer.xml:/root/conf/mailetcontainer.xml
diff --git a/server/mailet/rate-limiter-redis/mailetcontainer.xml b/server/mailet/rate-limiter-redis/mailetcontainer.xml
index 1dd804c..8804b31 100644
--- a/server/mailet/rate-limiter-redis/mailetcontainer.xml
+++ b/server/mailet/rate-limiter-redis/mailetcontainer.xml
@@ -102,7 +102,6 @@
<processor state="relay" enableJmx="true">
<mailet matcher="All" class="PerSenderRateLimit">
- <redisURL>redis://redis:6379</redisURL>
<keyPrefix>myPrefix</keyPrefix>
<duration>1h</duration>
<count>10</count>
diff --git a/server/mailet/rate-limiter-redis/pom.xml b/server/mailet/rate-limiter-redis/pom.xml
index 878b6e8..1665ac8 100644
--- a/server/mailet/rate-limiter-redis/pom.xml
+++ b/server/mailet/rate-limiter-redis/pom.xml
@@ -49,6 +49,12 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
+ <artifactId>james-server-guice-configuration</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
<artifactId>james-server-rate-limiter</artifactId>
</dependency>
<dependency>
@@ -97,6 +103,11 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-configuration2</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<scope>test</scope>
diff --git a/server/mailet/rate-limiter-redis/redis.properties b/server/mailet/rate-limiter-redis/redis.properties
new file mode 100644
index 0000000..20c1718
--- /dev/null
+++ b/server/mailet/rate-limiter-redis/redis.properties
@@ -0,0 +1 @@
+redisURL=redis://redis:6379
\ No newline at end of file
diff --git a/server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiter.scala b/server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiter.scala
index e30a810..f2b3f7b 100644
--- a/server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiter.scala
+++ b/server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiter.scala
@@ -19,14 +19,15 @@
package org.apache.james.rate.limiter.redis
-import com.google.inject.AbstractModule
+import com.google.inject.{AbstractModule, Provides}
import es.moki.ratelimitj.core.limiter.request.{AbstractRequestRateLimiterFactory, ReactiveRequestRateLimiter, RequestLimitRule}
import es.moki.ratelimitj.redis.request.{RedisClusterRateLimiterFactory, RedisSlidingWindowRequestRateLimiter, RedisRateLimiterFactory => RedisSingleInstanceRateLimitjFactory}
import io.lettuce.core.RedisClient
import io.lettuce.core.cluster.RedisClusterClient
+import javax.inject.Inject
import org.apache.james.rate.limiter.api.Increment.Increment
-import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimiterFactoryProvider, RateLimitingKey, RateLimitingResult, Rule, Rules}
-import org.apache.mailet.MailetConfig
+import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimitingKey, RateLimitingResult, Rule, Rules}
+import org.apache.james.utils.PropertiesProvider
import org.reactivestreams.Publisher
import reactor.core.scala.publisher.SMono
@@ -34,15 +35,15 @@ import scala.jdk.CollectionConverters._
class RedisRateLimiterModule() extends AbstractModule {
override def configure(): Unit =
- bind(classOf[RateLimiterFactoryProvider])
- .to(classOf[RedisRateLimiterFactoryProvider])
-}
+ bind(classOf[RateLimiterFactory])
+ .to(classOf[RedisRateLimiterFactory])
-class RedisRateLimiterFactoryProvider extends RateLimiterFactoryProvider {
- override def create(mailetConfig: MailetConfig): RateLimiterFactory = new RedisRateLimiterFactory(RedisRateLimiterConfiguration.from(mailetConfig))
+ @Provides
+ def provideConfig(propertiesProvider: PropertiesProvider): RedisRateLimiterConfiguration =
+ RedisRateLimiterConfiguration.from(propertiesProvider.getConfiguration("redis"))
}
-class RedisRateLimiterFactory(redisConfiguration: RedisRateLimiterConfiguration) extends RateLimiterFactory {
+class RedisRateLimiterFactory @Inject()(redisConfiguration: RedisRateLimiterConfiguration) extends RateLimiterFactory {
val rateLimitjFactory: AbstractRequestRateLimiterFactory[RedisSlidingWindowRequestRateLimiter] =
if (redisConfiguration.redisURI.value.size > 1) {
new RedisClusterRateLimiterFactory(RedisClusterClient.create(redisConfiguration.redisURI.value.asJava))
diff --git a/server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiterConfiguration.scala b/server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiterConfiguration.scala
index 7a84e19..1bd9be1 100644
--- a/server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiterConfiguration.scala
+++ b/server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiterConfiguration.scala
@@ -26,12 +26,12 @@ import eu.timepit.refined
import eu.timepit.refined.api.Refined
import eu.timepit.refined.collection.NonEmpty
import io.lettuce.core.RedisURI
+import org.apache.commons.configuration2.Configuration
import org.apache.james.rate.limiter.redis.RedisUris.RedisUris
-import org.apache.mailet.MailetConfig
object RedisRateLimiterConfiguration {
- def from(mailetConfig: MailetConfig): RedisRateLimiterConfiguration =
- from(mailetConfig.getInitParameter("redisURL"))
+ def from(config: Configuration): RedisRateLimiterConfiguration =
+ from(config.getString("redisURL"))
def from(redisUri: String, windowPrecision: Option[Duration] = None): RedisRateLimiterConfiguration = {
Preconditions.checkArgument(redisUri != null && !redisUri.isBlank)
diff --git a/server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/api/RateLimiter.scala b/server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/api/RateLimiter.scala
index 83c69ba..1be822e 100644
--- a/server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/api/RateLimiter.scala
+++ b/server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/api/RateLimiter.scala
@@ -26,7 +26,6 @@ import eu.timepit.refined.api.Refined
import eu.timepit.refined.numeric.Positive
import org.apache.james.rate.limiter.api.AllowedQuantity.AllowedQuantity
import org.apache.james.rate.limiter.api.Increment.Increment
-import org.apache.mailet.MailetConfig
import org.reactivestreams.Publisher
trait RateLimitingKey {
@@ -78,10 +77,6 @@ trait RateLimiterFactory {
def withSpecification(rules: Rules): RateLimiter
}
-trait RateLimiterFactoryProvider {
- def create(mailetConfig: MailetConfig): RateLimiterFactory
-}
-
sealed trait RateLimitingResult {
def merge(other: RateLimitingResult): RateLimitingResult
}
diff --git a/server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/memory/MemoryRateLimiter.scala b/server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/memory/MemoryRateLimiter.scala
index c57e9d8..9b62411 100644
--- a/server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/memory/MemoryRateLimiter.scala
+++ b/server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/memory/MemoryRateLimiter.scala
@@ -24,9 +24,9 @@ import java.time.Duration
import com.google.inject.AbstractModule
import es.moki.ratelimitj.core.limiter.request.{RequestLimitRule, RequestRateLimiter}
import es.moki.ratelimitj.inmemory.request.InMemorySlidingWindowRequestRateLimiter
+import javax.inject.Inject
import org.apache.james.rate.limiter.api.Increment.Increment
-import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimiterFactoryProvider, RateLimitingKey, RateLimitingResult, Rule, Rules}
-import org.apache.mailet.MailetConfig
+import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimitingKey, RateLimitingResult, Rule, Rules}
import org.reactivestreams.Publisher
import reactor.core.scala.publisher.SMono
@@ -34,15 +34,16 @@ import scala.jdk.CollectionConverters._
class MemoryRateLimiterModule() extends AbstractModule {
override def configure(): Unit =
- bind(classOf[RateLimiterFactoryProvider])
- .to(classOf[MemoryRateLimiterFactoryProvider])
+ bind(classOf[RateLimiterFactory])
+ .to(classOf[MemoryRateLimiterFactory])
}
-class MemoryRateLimiterFactoryProvider() extends RateLimiterFactoryProvider {
- override def create(mailetConfig: MailetConfig): RateLimiterFactory = new MemoryRateLimiterFactory()
-}
+class MemoryRateLimiterFactory (precision: Option[Duration] = None) extends RateLimiterFactory {
+ @Inject()
+ def this() = {
+ this(None)
+ }
-class MemoryRateLimiterFactory(precision: Option[Duration] = None) extends RateLimiterFactory {
override def withSpecification(rules: Rules): RateLimiter = {
MemoryRateLimiter(new InMemorySlidingWindowRequestRateLimiter(rules.rules
.map(convert)
diff --git a/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/GlobalRateLimit.scala b/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/GlobalRateLimit.scala
index 6d30f7a..1b891b0 100644
--- a/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/GlobalRateLimit.scala
+++ b/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/GlobalRateLimit.scala
@@ -22,7 +22,7 @@ package org.apache.james.transport.mailets
import java.time.Duration
import javax.inject.Inject
-import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimiterFactoryProvider, RateLimitingKey, RateLimitingResult}
+import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimitingKey, RateLimitingResult}
import org.apache.mailet.Mail
import org.apache.mailet.base.GenericMailet
import org.reactivestreams.Publisher
@@ -88,14 +88,14 @@ case class GlobalRateLimiter(rateLimiter: Option[RateLimiter], keyPrefix: Option
* </code></pre>
*
* <p>Note that to use this extension you need to place the rate-limiter JAR in the <code>extensions-jars</code> folder
- * and need to configure a viable option to invoke <code>RateLimiterFactoryProvider</code> which can be done by
+ * and need to configure a viable option to invoke <code>RateLimiterFactory</code> which can be done by
* loading <code>org.apache.james.rate.limiter.memory.MemoryRateLimiterModule</code> Guice module within the
* <code>guice.extension.module</code> in <code>extensions.properties</code> configuration file. Note that other Rate
* limiter implementation might require extra configuration parameters within your mailet.</p>
*
- * @param rateLimiterFactoryProvider Allows instantiations of the underlying rate limiters.
+ * @param rateLimiterFactory Allows instantiations of the underlying rate limiters.
*/
-class GlobalRateLimit @Inject()(rateLimiterFactoryProvider: RateLimiterFactoryProvider) extends GenericMailet {
+class GlobalRateLimit @Inject()(rateLimiterFactory: RateLimiterFactory) extends GenericMailet {
private var countRateLimiter: GlobalRateLimiter = _
private var recipientsRateLimiter: GlobalRateLimiter = _
private var sizeRateLimiter: GlobalRateLimiter = _
@@ -104,7 +104,6 @@ class GlobalRateLimit @Inject()(rateLimiterFactoryProvider: RateLimiterFactoryPr
private var keyPrefix: Option[KeyPrefix] = _
override def init(): Unit = {
- val rateLimiterFactory = rateLimiterFactoryProvider.create(getMailetConfig)
val duration: Duration = parseDuration()
keyPrefix = Option(getInitParameter("keyPrefix")).map(KeyPrefix)
diff --git a/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerRecipientRateLimitMailet.scala b/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerRecipientRateLimitMailet.scala
index b6f6c23..31e2d7f 100644
--- a/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerRecipientRateLimitMailet.scala
+++ b/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerRecipientRateLimitMailet.scala
@@ -26,7 +26,7 @@ import com.google.common.collect.ImmutableList
import javax.inject.Inject
import org.apache.james.core.MailAddress
import org.apache.james.lifecycle.api.LifecycleUtil
-import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimiterFactoryProvider, RateLimitingKey, RateLimitingResult}
+import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimitingKey, RateLimitingResult}
import org.apache.james.util.ReactorUtils.DEFAULT_CONCURRENCY
import org.apache.mailet.Mail
import org.apache.mailet.base.GenericMailet
@@ -50,12 +50,11 @@ case class RecipientKey(keyPrefix: Option[KeyPrefix], entityType: EntityType, ma
}${entityType.asString()}_${mailAddress.asString()}"
}
-class PerRecipientRateLimitMailet @Inject()(rateLimiterFactoryProvider: RateLimiterFactoryProvider) extends GenericMailet {
+class PerRecipientRateLimitMailet @Inject()(rateLimiterFactory: RateLimiterFactory) extends GenericMailet {
private var exceededProcessor: String = _
private var rateLimiters: Seq[PerRecipientRateLimiter] = _
override def init(): Unit = {
- val rateLimiterFactory: RateLimiterFactory = rateLimiterFactoryProvider.create(getMailetConfig)
val duration: Duration = parseDuration()
val keyPrefix: Option[KeyPrefix] = Option(getInitParameter("keyPrefix")).map(KeyPrefix)
exceededProcessor = getInitParameter("exceededProcessor", Mail.ERROR)
diff --git a/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerSenderRateLimit.scala b/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerSenderRateLimit.scala
index edd83e6..cc4129b 100644
--- a/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerSenderRateLimit.scala
+++ b/server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerSenderRateLimit.scala
@@ -24,7 +24,7 @@ import java.time.Duration
import com.google.common.annotations.VisibleForTesting
import javax.inject.Inject
import org.apache.james.core.MailAddress
-import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimiterFactoryProvider, RateLimitingKey, RateLimitingResult}
+import org.apache.james.rate.limiter.api.{AcceptableRate, RateExceeded, RateLimiter, RateLimiterFactory, RateLimitingKey, RateLimitingResult}
import org.apache.mailet.Mail
import org.apache.mailet.base.GenericMailet
import org.reactivestreams.Publisher
@@ -88,14 +88,14 @@ case class SenderKey(keyPrefix: Option[KeyPrefix], entityType: EntityType, mailA
* </code></pre>
*
* <p>Note that to use this extension you need to place the rate-limiter JAR in the <code>extensions-jars</code> folder
- * and need to configure a viable option to invoke <code>RateLimiterFactoryProvider</code> which can be done by
+ * and need to configure a viable option to invoke <code>RateLimiterFactory</code> which can be done by
* loading <code>org.apache.james.rate.limiter.memory.MemoryRateLimiterModule</code> Guice module within the
* <code>guice.extension.module</code> in <code>extensions.properties</code> configuration file. Note that other Rate
* limiter implementation might require extra configuration parameters within your mailet.</p>
*
- * @param rateLimiterFactoryProvider Allows instantiations of the underlying rate limiters.
+ * @param rateLimiterFactory Allows instantiations of the underlying rate limiters.
*/
-class PerSenderRateLimit @Inject()(rateLimiterFactoryProvider: RateLimiterFactoryProvider) extends GenericMailet {
+class PerSenderRateLimit @Inject()(rateLimiterFactory: RateLimiterFactory) extends GenericMailet {
private var countRateLimiter: PerSenderRateLimiter = _
private var recipientsRateLimiter: PerSenderRateLimiter = _
private var sizeRateLimiter: PerSenderRateLimiter = _
@@ -104,7 +104,6 @@ class PerSenderRateLimit @Inject()(rateLimiterFactoryProvider: RateLimiterFactor
private var keyPrefix: Option[KeyPrefix] = _
override def init(): Unit = {
- val rateLimiterFactory = rateLimiterFactoryProvider.create(getMailetConfig)
val duration: Duration = parseDuration()
keyPrefix = Option(getInitParameter("keyPrefix")).map(KeyPrefix)
diff --git a/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/GlobalRateLimitTest.scala b/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/GlobalRateLimitTest.scala
index c79c2a3..96a2b51 100644
--- a/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/GlobalRateLimitTest.scala
+++ b/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/GlobalRateLimitTest.scala
@@ -20,7 +20,7 @@
package org.apache.james.transport.mailets
import org.apache.james.core.MailAddress
-import org.apache.james.rate.limiter.memory.MemoryRateLimiterFactoryProvider
+import org.apache.james.rate.limiter.memory.MemoryRateLimiterFactory
import org.apache.mailet.base.test.{FakeMail, FakeMailetConfig}
import org.apache.mailet.{Mail, MailetConfig}
import org.assertj.core.api.Assertions.assertThat
@@ -31,7 +31,7 @@ import scala.jdk.CollectionConverters._
class GlobalRateLimitTest {
def testee(mailetConfig: MailetConfig): GlobalRateLimit = {
- val mailet = new GlobalRateLimit(new MemoryRateLimiterFactoryProvider())
+ val mailet = new GlobalRateLimit(new MemoryRateLimiterFactory())
mailet.init(mailetConfig)
mailet
}
diff --git a/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerRecipientRateLimitMailetTest.scala b/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerRecipientRateLimitMailetTest.scala
index 7e7a3b6..f45002b 100644
--- a/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerRecipientRateLimitMailetTest.scala
+++ b/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerRecipientRateLimitMailetTest.scala
@@ -20,7 +20,7 @@
package org.apache.james.transport.mailets
import org.apache.james.core.MailAddress
-import org.apache.james.rate.limiter.memory.MemoryRateLimiterFactoryProvider
+import org.apache.james.rate.limiter.memory.MemoryRateLimiterFactory
import org.apache.mailet.base.test.{FakeMail, FakeMailContext, FakeMailetConfig}
import org.apache.mailet.{Mail, MailetConfig}
import org.assertj.core.api.Assertions.{assertThat, assertThatCode, assertThatThrownBy}
@@ -34,7 +34,7 @@ import scala.jdk.CollectionConverters._
class PerRecipientRateLimitMailetTest {
def testee(mailetConfig: MailetConfig) : PerRecipientRateLimitMailet = {
- val mailet: PerRecipientRateLimitMailet = new PerRecipientRateLimitMailet(new MemoryRateLimiterFactoryProvider())
+ val mailet: PerRecipientRateLimitMailet = new PerRecipientRateLimitMailet(new MemoryRateLimiterFactory())
mailet.init(mailetConfig)
mailet
}
diff --git a/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerSenderRateLimitTest.scala b/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerSenderRateLimitTest.scala
index aa3cce6..fcfd01c 100644
--- a/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerSenderRateLimitTest.scala
+++ b/server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerSenderRateLimitTest.scala
@@ -20,7 +20,7 @@
package org.apache.james.transport.mailets
import org.apache.james.core.MailAddress
-import org.apache.james.rate.limiter.memory.MemoryRateLimiterFactoryProvider
+import org.apache.james.rate.limiter.memory.MemoryRateLimiterFactory
import org.apache.mailet.base.test.{FakeMail, FakeMailetConfig}
import org.apache.mailet.{Mail, MailetConfig}
import org.assertj.core.api.Assertions.{assertThat, assertThatCode, assertThatThrownBy}
@@ -31,7 +31,7 @@ import scala.jdk.CollectionConverters._
class PerSenderRateLimitTest {
def testee(mailetConfig: MailetConfig): PerSenderRateLimit = {
- val mailet = new PerSenderRateLimit(new MemoryRateLimiterFactoryProvider())
+ val mailet = new PerSenderRateLimit(new MemoryRateLimiterFactory())
mailet.init(mailetConfig)
mailet
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org