JAMES-4025 Relocate JMAPCommonModule -> JMAPDraftCommonModule + JMAPWithoutDraftCommonModule
diff --git a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java
index 31210a9..7f7ff39 100644
--- a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java
+++ b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java
@@ -48,7 +48,7 @@
import org.apache.james.jmap.core.VacationResponseCapabilityFactory$;
import org.apache.james.jmap.core.WebSocketCapabilityFactory$;
import org.apache.james.jmap.draft.DraftMethodsModule;
-import org.apache.james.jmap.draft.JMAPCommonModule;
+import org.apache.james.jmap.draft.JMAPDraftCommonModule;
import org.apache.james.jmap.draft.JMAPDraftConfiguration;
import org.apache.james.jmap.draft.methods.RequestHandler;
import org.apache.james.jmap.mailet.filter.JMAPFiltering;
@@ -120,7 +120,8 @@
@Override
protected void configure() {
- install(new JMAPCommonModule());
+ install(new JMAPDraftCommonModule());
+ install(new JMAPWithoutDraftCommonModule());
install(new DraftMethodsModule());
install(new RFC8621MethodsModule());
install(binder -> binder
diff --git a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPWithoutDraftCommonModule.java b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPWithoutDraftCommonModule.java
new file mode 100644
index 0000000..4bef219
--- /dev/null
+++ b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPWithoutDraftCommonModule.java
@@ -0,0 +1,57 @@
+/****************************************************************
+ * 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.jmap;
+
+import org.apache.james.jmap.json.ObjectMapperFactory;
+import org.apache.james.jmap.methods.BlobManager;
+import org.apache.james.jmap.methods.BlobManagerImpl;
+import org.apache.james.jmap.methods.JmapResponseWriter;
+import org.apache.james.jmap.methods.JmapResponseWriterImpl;
+import org.apache.james.jmap.model.message.view.MessageFastViewFactory;
+import org.apache.james.jmap.model.message.view.MessageFullViewFactory;
+import org.apache.james.jmap.model.message.view.MessageHeaderViewFactory;
+import org.apache.james.jmap.model.message.view.MessageMetadataViewFactory;
+import org.apache.james.util.date.DefaultZonedDateTimeProvider;
+import org.apache.james.util.date.ZonedDateTimeProvider;
+import org.apache.james.util.mime.MessageContentExtractor;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Scopes;
+
+public class JMAPWithoutDraftCommonModule extends AbstractModule {
+
+ @Override
+ protected void configure() {
+ bind(MessageFullViewFactory.class).in(Scopes.SINGLETON);
+ bind(MessageMetadataViewFactory.class).in(Scopes.SINGLETON);
+ bind(MessageHeaderViewFactory.class).in(Scopes.SINGLETON);
+ bind(MessageFastViewFactory.class).in(Scopes.SINGLETON);
+
+ bind(MessageContentExtractor.class).in(Scopes.SINGLETON);
+ bind(DefaultZonedDateTimeProvider.class).in(Scopes.SINGLETON);
+ bind(ZonedDateTimeProvider.class).to(DefaultZonedDateTimeProvider.class);
+
+ bind(BlobManagerImpl.class).in(Scopes.SINGLETON);
+ bind(BlobManager.class).to(BlobManagerImpl.class);
+ bind(ObjectMapperFactory.class).in(Scopes.SINGLETON);
+ bind(JmapResponseWriterImpl.class).in(Scopes.SINGLETON);
+ bind(JmapResponseWriter.class).to(JmapResponseWriterImpl.class);
+ }
+}
diff --git a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/DraftMethodsModule.java b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/DraftMethodsModule.java
index ebaa64e..e9ccbb2 100644
--- a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/DraftMethodsModule.java
+++ b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/DraftMethodsModule.java
@@ -48,11 +48,6 @@
import org.apache.james.jmap.http.InjectionKeys;
import org.apache.james.jmap.http.JWTAuthenticationStrategy;
import org.apache.james.jmap.http.QueryParameterAccessTokenAuthenticationStrategy;
-import org.apache.james.jmap.json.ObjectMapperFactory;
-import org.apache.james.jmap.methods.BlobManager;
-import org.apache.james.jmap.methods.BlobManagerImpl;
-import org.apache.james.jmap.methods.JmapResponseWriter;
-import org.apache.james.jmap.methods.JmapResponseWriterImpl;
import org.apache.james.jmap.methods.Method;
import org.apache.james.metrics.api.MetricFactory;
import org.apache.james.utils.ClassName;
@@ -80,11 +75,7 @@
@Override
protected void configure() {
bind(JmapRequestParserImpl.class).in(Scopes.SINGLETON);
- bind(JmapResponseWriterImpl.class).in(Scopes.SINGLETON);
- bind(ObjectMapperFactory.class).in(Scopes.SINGLETON);
-
bind(JmapRequestParser.class).to(JmapRequestParserImpl.class);
- bind(JmapResponseWriter.class).to(JmapResponseWriterImpl.class);
bindConstant().annotatedWith(Names.named(GetMessageListMethod.MAXIMUM_LIMIT)).to(GetMessageListMethod.DEFAULT_MAXIMUM_LIMIT);
@@ -111,10 +102,6 @@
setMessagesProcessors.addBinding().to(SetMessagesCreationProcessor.class);
setMessagesProcessors.addBinding().to(SetMessagesDestructionProcessor.class);
setMessagesProcessors.addBinding().to(SendMDNProcessor.class);
-
-
- bind(BlobManagerImpl.class).in(Scopes.SINGLETON);
- bind(BlobManager.class).to(BlobManagerImpl.class);
}
@Provides
diff --git a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPCommonModule.java b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPDraftCommonModule.java
similarity index 79%
rename from server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPCommonModule.java
rename to server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPDraftCommonModule.java
index 8abd462..5b4f147 100644
--- a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPCommonModule.java
+++ b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPDraftCommonModule.java
@@ -32,15 +32,8 @@
import org.apache.james.jmap.draft.crypto.SignedTokenManager;
import org.apache.james.jmap.draft.model.MailboxFactory;
import org.apache.james.jmap.draft.send.MailSpool;
-import org.apache.james.jmap.model.message.view.MessageFastViewFactory;
-import org.apache.james.jmap.model.message.view.MessageFullViewFactory;
-import org.apache.james.jmap.model.message.view.MessageHeaderViewFactory;
-import org.apache.james.jmap.model.message.view.MessageMetadataViewFactory;
import org.apache.james.lifecycle.api.ConfigurationSanitizer;
import org.apache.james.lifecycle.api.StartUpCheck;
-import org.apache.james.util.date.DefaultZonedDateTimeProvider;
-import org.apache.james.util.date.ZonedDateTimeProvider;
-import org.apache.james.util.mime.MessageContentExtractor;
import org.apache.james.utils.InitializationOperation;
import org.apache.james.utils.InitilizationOperationBuilder;
@@ -50,37 +43,27 @@
import com.google.inject.multibindings.ProvidesIntoSet;
import com.google.inject.name.Names;
-public class JMAPCommonModule extends AbstractModule {
+public class JMAPDraftCommonModule extends AbstractModule {
private static final long DEFAULT_TOKEN_EXPIRATION_IN_MS = TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);
@Override
protected void configure() {
bind(JamesSignatureHandler.class).in(Scopes.SINGLETON);
- bind(DefaultZonedDateTimeProvider.class).in(Scopes.SINGLETON);
bind(SignedTokenManager.class).in(Scopes.SINGLETON);
bind(AccessTokenManagerImpl.class).in(Scopes.SINGLETON);
bind(MailSpool.class).in(Scopes.SINGLETON);
bind(MailboxFactory.class).in(Scopes.SINGLETON);
-
- bind(MessageFullViewFactory.class).in(Scopes.SINGLETON);
- bind(MessageMetadataViewFactory.class).in(Scopes.SINGLETON);
- bind(MessageHeaderViewFactory.class).in(Scopes.SINGLETON);
- bind(MessageFastViewFactory.class).in(Scopes.SINGLETON);
-
- bind(MessageContentExtractor.class).in(Scopes.SINGLETON);
bind(SecurityKeyLoader.class).in(Scopes.SINGLETON);
bind(SignatureHandler.class).to(JamesSignatureHandler.class);
- bind(ZonedDateTimeProvider.class).to(DefaultZonedDateTimeProvider.class);
+
bind(SimpleTokenManager.class).to(SignedTokenManager.class);
bind(SimpleTokenFactory.class).to(SignedTokenFactory.class);
bindConstant().annotatedWith(Names.named(AccessTokenRepository.TOKEN_EXPIRATION_IN_MS)).to(DEFAULT_TOKEN_EXPIRATION_IN_MS);
bind(AccessTokenManager.class).to(AccessTokenManagerImpl.class);
-
-
Multibinder.newSetBinder(binder(), StartUpCheck.class)
.addBinding().to(JMAPConfigurationStartUpCheck.class);