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

Reply via email to