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 c2c89da9c6e1d99913655e6ee290ff3c0fbb8513 Author: Benoit TELLIER <btell...@linagora.com> AuthorDate: Sun Nov 17 10:21:49 2024 +0100 JAMES-4090 Add an interface: DisconnectorNotifier We supply right away an In VM implementation. We can then later supply a rabbitMQ based implementation in order to support broadcast. --- .../james/modules/server/ServerRouteModule.java | 4 ++++ .../org/apache/james/DisconnectorNotifier.java} | 24 ++++++++++++++-------- .../protocols/lib/netty/CertificateReloadable.java | 2 -- .../protocols/webadmin/webadmin-protocols/pom.xml | 4 ++++ .../protocols/webadmin/ProtocolServerRoutes.java | 6 +++--- 5 files changed, 27 insertions(+), 13 deletions(-) diff --git a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/ServerRouteModule.java b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/ServerRouteModule.java index 7d34b6114b..f3e3af0556 100644 --- a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/ServerRouteModule.java +++ b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/ServerRouteModule.java @@ -19,6 +19,7 @@ package org.apache.james.modules.server; +import org.apache.james.DisconnectorNotifier; import org.apache.james.core.Disconnector; import org.apache.james.protocols.lib.netty.AbstractServerFactory; import org.apache.james.protocols.webadmin.ProtocolServerRoutes; @@ -41,5 +42,8 @@ public class ServerRouteModule extends AbstractModule { bind(Disconnector.class).to(Disconnector.CompositeDisconnector.class); bind(Disconnector.CompositeDisconnector.class).in(Scopes.SINGLETON); + + bind(DisconnectorNotifier.class).to(DisconnectorNotifier.InVMDisconnectorNotifier.class); + bind(DisconnectorNotifier.InVMDisconnectorNotifier.class).in(Scopes.SINGLETON); } } diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/CertificateReloadable.java b/server/data/data-api/src/main/java/org/apache/james/DisconnectorNotifier.java similarity index 69% copy from server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/CertificateReloadable.java copy to server/data/data-api/src/main/java/org/apache/james/DisconnectorNotifier.java index 9fdf4195cf..e0f4b3786e 100644 --- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/CertificateReloadable.java +++ b/server/data/data-api/src/main/java/org/apache/james/DisconnectorNotifier.java @@ -16,18 +16,26 @@ * specific language governing permissions and limitations * * under the License. * ****************************************************************/ -package org.apache.james.protocols.lib.netty; -import java.util.stream.Stream; +package org.apache.james; +import jakarta.inject.Inject; + +import org.apache.james.core.Disconnector; import org.apache.james.core.Username; -public interface CertificateReloadable { - interface Factory { - Stream<? extends CertificateReloadable> certificatesReloadable(); - } +public interface DisconnectorNotifier extends Disconnector { + class InVMDisconnectorNotifier implements DisconnectorNotifier { + private final Disconnector disconnector; - void reloadSSLCertificate() throws Exception; + @Inject + public InVMDisconnectorNotifier(Disconnector disconnector) { + this.disconnector = disconnector; + } - int getPort(); + @Override + public void disconnect(Username username) { + disconnector.disconnect(username); + } + } } diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/CertificateReloadable.java b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/CertificateReloadable.java index 9fdf4195cf..79656203f5 100644 --- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/CertificateReloadable.java +++ b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/CertificateReloadable.java @@ -20,8 +20,6 @@ package org.apache.james.protocols.lib.netty; import java.util.stream.Stream; -import org.apache.james.core.Username; - public interface CertificateReloadable { interface Factory { Stream<? extends CertificateReloadable> certificatesReloadable(); diff --git a/server/protocols/webadmin/webadmin-protocols/pom.xml b/server/protocols/webadmin/webadmin-protocols/pom.xml index 48e0f6b0f2..6c29a73f63 100644 --- a/server/protocols/webadmin/webadmin-protocols/pom.xml +++ b/server/protocols/webadmin/webadmin-protocols/pom.xml @@ -30,6 +30,10 @@ <description>Finner grained management for protocols</description> <dependencies> + <dependency> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-data-api</artifactId> + </dependency> <dependency> <groupId>${james.groupId}</groupId> <artifactId>james-server-protocols-library</artifactId> diff --git a/server/protocols/webadmin/webadmin-protocols/src/main/java/org/apache/james/protocols/webadmin/ProtocolServerRoutes.java b/server/protocols/webadmin/webadmin-protocols/src/main/java/org/apache/james/protocols/webadmin/ProtocolServerRoutes.java index 9dffaa7d53..b21d58e481 100644 --- a/server/protocols/webadmin/webadmin-protocols/src/main/java/org/apache/james/protocols/webadmin/ProtocolServerRoutes.java +++ b/server/protocols/webadmin/webadmin-protocols/src/main/java/org/apache/james/protocols/webadmin/ProtocolServerRoutes.java @@ -24,7 +24,7 @@ import java.util.Set; import jakarta.inject.Inject; -import org.apache.james.core.Disconnector; +import org.apache.james.DisconnectorNotifier; import org.apache.james.core.Username; import org.apache.james.protocols.lib.netty.CertificateReloadable; import org.apache.james.util.Port; @@ -44,10 +44,10 @@ public class ProtocolServerRoutes implements Routes { public static final String SERVERS = "servers"; private final Set<CertificateReloadable.Factory> servers; - private final Disconnector disconnector; + private final DisconnectorNotifier disconnector; @Inject - public ProtocolServerRoutes(Set<CertificateReloadable.Factory> servers, Disconnector disconnector) { + public ProtocolServerRoutes(Set<CertificateReloadable.Factory> servers, DisconnectorNotifier disconnector) { this.servers = servers; this.disconnector = disconnector; } --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org