You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2017/09/11 02:36:49 UTC
[05/23] james-project git commit: JAMES-2138 split webadmin modules
to avoid confusion in protocols
JAMES-2138 split webadmin modules to avoid confusion in protocols
- Brings consistency in the way we define Guice modules
- Extraction of protocols, extraction of WebAdmin
- Generalized alphabetic order sorting of Guice modules
- Corrects the problem of WebAdmin probe injection
- Adds Swagger routes to JPA and Memory
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e9cb6e90
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e9cb6e90
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e9cb6e90
Branch: refs/heads/master
Commit: e9cb6e908f27a2eb53156e6e03a3611d41a793af
Parents: 9b3adc1
Author: Matthieu Baechler <ma...@apache.org>
Authored: Mon Sep 4 10:55:34 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Sat Sep 9 10:45:52 2017 +0700
----------------------------------------------------------------------
.../smtp/host/CassandraJamesSmtpHostSystem.java | 3 +-
.../apache/james/CassandraJamesServerMain.java | 15 +++++----
server/container/guice/jpa-guice/pom.xml | 4 +++
.../org/apache/james/JPAJamesServerMain.java | 29 +++++++++-------
server/container/guice/memory-guice/pom.xml | 4 +++
.../org/apache/james/MemoryJamesServerMain.java | 26 ++++++++++-----
.../modules/server/SwaggerRoutesModule.java | 35 ++++++++++++++++++++
.../modules/server/SwaggerRoutesModules.java | 35 --------------------
8 files changed, 88 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cb6e90/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/host/CassandraJamesSmtpHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/host/CassandraJamesSmtpHostSystem.java b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/host/CassandraJamesSmtpHostSystem.java
index 5dcb1ae..4909779 100644
--- a/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/host/CassandraJamesSmtpHostSystem.java
+++ b/mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/host/CassandraJamesSmtpHostSystem.java
@@ -100,9 +100,10 @@ public class CassandraJamesSmtpHostSystem extends ExternalSessionFactory impleme
public InMemoryDNSService getInMemoryDnsService() {
return inMemoryDNSService;
}
+
protected GuiceJamesServer createJamesServer() {
return new GuiceJamesServer()
- .combineWith(CassandraJamesServerMain.cassandraServerModule, new SMTPServerModule(), new ProtocolHandlerModule())
+ .combineWith(CassandraJamesServerMain.cassandraServerModule, CassandraJamesServerMain.protocols, new ProtocolHandlerModule())
.overrideWith(new CassandraJmapServerModule(folder::getRoot, embeddedElasticSearch, cassandraHost, cassandraPort),
(binder) -> binder.bind(DNSService.class).toInstance(inMemoryDNSService));
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cb6e90/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
index 5421400..fc7b762 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
@@ -43,7 +43,7 @@ import org.apache.james.modules.server.DataRoutesModules;
import org.apache.james.modules.server.ElasticSearchMetricReporterModule;
import org.apache.james.modules.server.JMXServerModule;
import org.apache.james.modules.server.MailboxRoutesModule;
-import org.apache.james.modules.server.SwaggerRoutesModules;
+import org.apache.james.modules.server.SwaggerRoutesModule;
import org.apache.james.modules.server.WebAdminServerModule;
import com.google.inject.Module;
@@ -51,18 +51,22 @@ import com.google.inject.util.Modules;
public class CassandraJamesServerMain {
- public static final Module protocols = Modules.combine(
+ public static final Module webadmin = Modules.combine(
new CassandraRoutesModule(),
new DataRoutesModules(),
+ new MailboxRoutesModule(),
+ new SwaggerRoutesModule(),
+ new WebAdminServerModule());
+
+ public static final Module protocols = Modules.combine(
new IMAPServerModule(),
new LMTPServerModule(),
- new MailboxRoutesModule(),
new ManageSieveServerModule(),
new POP3ServerModule(),
new ProtocolHandlerModule(),
new SMTPServerModule(),
- new SwaggerRoutesModules(),
- new WebAdminServerModule());
+ new JMAPServerModule(),
+ webadmin);
public static final Module cassandraServerModule = Modules.combine(
new ActiveMQQueueModule(),
@@ -76,7 +80,6 @@ public class CassandraJamesServerMain {
new CassandraUsersRepositoryModule(),
new ElasticSearchMailboxModule(),
new ElasticSearchMetricReporterModule(),
- new JMAPServerModule(),
new MailboxModule(),
new TikaMailboxModule());
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cb6e90/server/container/guice/jpa-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/pom.xml b/server/container/guice/jpa-guice/pom.xml
index 99e7030..7104f98 100644
--- a/server/container/guice/jpa-guice/pom.xml
+++ b/server/container/guice/jpa-guice/pom.xml
@@ -113,6 +113,10 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-guice-webadmin-swagger</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-jpa-common-guice</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cb6e90/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java b/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
index c3d89f5..e4a63b2 100644
--- a/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
+++ b/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
@@ -38,6 +38,7 @@ import org.apache.james.modules.server.JMXServerModule;
import org.apache.james.modules.server.MailboxRoutesModule;
import org.apache.james.modules.server.NoJwtModule;
import org.apache.james.modules.server.RawPostDequeueDecoratorModule;
+import org.apache.james.modules.server.SwaggerRoutesModule;
import org.apache.james.modules.server.WebAdminServerModule;
import com.google.inject.Module;
@@ -45,27 +46,31 @@ import com.google.inject.util.Modules;
public class JPAJamesServerMain {
+ public static final Module webadmin = Modules.combine(
+ new WebAdminServerModule(),
+ new DataRoutesModules(),
+ new MailboxRoutesModule(),
+ new SwaggerRoutesModule());
+
public static final Module protocols = Modules.combine(
new IMAPServerModule(),
- new ProtocolHandlerModule(),
- new POP3ServerModule(),
- new SMTPServerModule(),
new LMTPServerModule(),
new ManageSieveServerModule(),
- new WebAdminServerModule(),
- new DataRoutesModules(),
- new MailboxRoutesModule());
+ new POP3ServerModule(),
+ new ProtocolHandlerModule(),
+ new SMTPServerModule(),
+ webadmin);
public static final Module jpaServerModule = Modules.combine(
- new JPAMailboxModule(),
- new JPADataModule(),
- new SieveFileRepositoryModule(),
new ActiveMQQueueModule(),
- new RawPostDequeueDecoratorModule(),
+ new DefaultProcessorsConfigurationProviderModule(),
+ new ElasticSearchMetricReporterModule(),
+ new JPADataModule(),
+ new JPAMailboxModule(),
new MailboxModule(),
new NoJwtModule(),
- new DefaultProcessorsConfigurationProviderModule(),
- new ElasticSearchMetricReporterModule());
+ new RawPostDequeueDecoratorModule(),
+ new SieveFileRepositoryModule());
public static void main(String[] args) throws Exception {
GuiceJamesServer server = new GuiceJamesServer()
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cb6e90/server/container/guice/memory-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/pom.xml b/server/container/guice/memory-guice/pom.xml
index 5f07851..f2df5be 100644
--- a/server/container/guice/memory-guice/pom.xml
+++ b/server/container/guice/memory-guice/pom.xml
@@ -106,6 +106,10 @@
<artifactId>james-server-guice-webadmin-mailbox</artifactId>
</dependency>
<dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>james-server-guice-webadmin-swagger</artifactId>
+ </dependency>
+ <dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cb6e90/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
index bfc412b..2cb650d 100644
--- a/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
+++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
@@ -34,6 +34,7 @@ import org.apache.james.modules.server.DataRoutesModules;
import org.apache.james.modules.server.JMXServerModule;
import org.apache.james.modules.server.MailboxRoutesModule;
import org.apache.james.modules.server.MemoryMailQueueModule;
+import org.apache.james.modules.server.SwaggerRoutesModule;
import org.apache.james.modules.server.WebAdminServerModule;
import com.google.inject.Module;
@@ -41,22 +42,29 @@ import com.google.inject.util.Modules;
public class MemoryJamesServerMain {
- public static final Module inMemoryServerModule = Modules.combine(
- new JMAPServerModule(),
- new IMAPServerModule(),
- new ProtocolHandlerModule(),
- new POP3ServerModule(),
- new SMTPServerModule(),
- new LMTPServerModule(),
- new ManageSieveServerModule(),
+ public static final Module webadmin = Modules.combine(
new WebAdminServerModule(),
new DataRoutesModules(),
new MailboxRoutesModule(),
+ new SwaggerRoutesModule());
+
+ public static final Module protocols = Modules.combine(
+ new IMAPServerModule(),
+ new JMAPServerModule(),
+ new LMTPServerModule(),
+ new ManageSieveServerModule(),
+ new POP3ServerModule(),
+ new ProtocolHandlerModule(),
+ new SMTPServerModule(),
+ webadmin);
+
+ public static final Module inMemoryServerModule = Modules.combine(
new MemoryDataModule(),
new MemoryDataJmapModule(),
new MemoryMailboxModule(),
new MemoryMailQueueModule(),
- new MailboxModule());
+ new MailboxModule(),
+ protocols);
public static void main(String[] args) throws Exception {
new GuiceJamesServer()
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cb6e90/server/container/guice/protocols/webadmin-swagger/src/main/java/org/apache/james/modules/server/SwaggerRoutesModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/webadmin-swagger/src/main/java/org/apache/james/modules/server/SwaggerRoutesModule.java b/server/container/guice/protocols/webadmin-swagger/src/main/java/org/apache/james/modules/server/SwaggerRoutesModule.java
new file mode 100644
index 0000000..bc25611
--- /dev/null
+++ b/server/container/guice/protocols/webadmin-swagger/src/main/java/org/apache/james/modules/server/SwaggerRoutesModule.java
@@ -0,0 +1,35 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.modules.server;
+
+import org.apache.james.webadmin.Routes;
+import org.apache.james.webadmin.swagger.routes.SwaggerRoutes;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.multibindings.Multibinder;
+
+public class SwaggerRoutesModule extends AbstractModule {
+
+ @Override
+ protected void configure() {
+ Multibinder<Routes> routesMultibinder = Multibinder.newSetBinder(binder(), Routes.class);
+ routesMultibinder.addBinding().to(SwaggerRoutes.class);
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cb6e90/server/container/guice/protocols/webadmin-swagger/src/main/java/org/apache/james/modules/server/SwaggerRoutesModules.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/webadmin-swagger/src/main/java/org/apache/james/modules/server/SwaggerRoutesModules.java b/server/container/guice/protocols/webadmin-swagger/src/main/java/org/apache/james/modules/server/SwaggerRoutesModules.java
deleted file mode 100644
index a633c4f..0000000
--- a/server/container/guice/protocols/webadmin-swagger/src/main/java/org/apache/james/modules/server/SwaggerRoutesModules.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.james.modules.server;
-
-import org.apache.james.webadmin.Routes;
-import org.apache.james.webadmin.swagger.routes.SwaggerRoutes;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-
-public class SwaggerRoutesModules extends AbstractModule {
-
- @Override
- protected void configure() {
- Multibinder<Routes> routesMultibinder = Multibinder.newSetBinder(binder(), Routes.class);
- routesMultibinder.addBinding().to(SwaggerRoutes.class);
- }
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org