You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2021/06/17 03:16:04 UTC

[james-project] 02/05: JAMES-3589 drop the no longer needed Camel dependency

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 4290c12d102cc58e5c5327217aeb50abb9c7f1c4
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Jun 2 15:56:32 2021 +0700

    JAMES-3589 drop the no longer needed Camel dependency
---
 pom.xml                                            | 23 -----------------
 server/apps/spring-app/pom.xml                     | 22 ----------------
 server/container/guice/mailet/pom.xml              |  4 ---
 .../modules/server/CamelMailetContainerModule.java | 22 +++-------------
 .../server/CamelMailetContainerModuleTest.java     |  4 ---
 .../META-INF/org/apache/james/spring-server.xml    |  7 ------
 server/mailet/mailetcontainer-camel/pom.xml        |  4 ---
 .../impl/camel/CamelCompositeProcessor.java        | 29 +---------------------
 .../impl/camel/CamelMailetProcessor.java           | 15 +----------
 .../impl/camel/MatcherSplitter.java                |  7 +-----
 .../impl/camel/CamelCompositeProcessorTest.java    |  2 --
 .../impl/camel/CamelMailetProcessorTest.java       |  2 --
 12 files changed, 7 insertions(+), 134 deletions(-)

diff --git a/pom.xml b/pom.xml
index 866858c..59082b3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -591,7 +591,6 @@
         <activemq.version>5.16.1</activemq.version>
         <apache-mime4j.version>0.8.4</apache-mime4j.version>
         <apache.openjpa.version>3.1.2</apache.openjpa.version>
-        <camel.version>3.8.0</camel.version>
         <derby.version>10.14.2.0</derby.version>
         <log4j2.version>2.14.0</log4j2.version>
         <javax.inject.version>1</javax.inject.version>
@@ -2384,27 +2383,6 @@
                 <version>1.4</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-core</artifactId>
-                <version>${camel.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-spring</artifactId>
-                <version>${camel.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-web</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-support</artifactId>
-                <version>${camel.version}</version>
-            </dependency>
-            <dependency>
                 <groupId>org.apache.commons</groupId>
                 <artifactId>commons-collections4</artifactId>
                 <version>4.4</version>
@@ -3158,7 +3136,6 @@
                             <exclude>.*/**/*</exclude>
                             <!-- Schemas for offline use -->
                             <exclude>**/META-INF/XSD/activemq-core-*.xsd</exclude>
-                            <exclude>**/META-INF/XSD/camel-spring-*.xsd</exclude>
                             <exclude>**/META-INF/XSD/spring-beans-*.xsd</exclude>
                         </excludes>
                     </configuration>
diff --git a/server/apps/spring-app/pom.xml b/server/apps/spring-app/pom.xml
index a794c7b..1fd573f 100644
--- a/server/apps/spring-app/pom.xml
+++ b/server/apps/spring-app/pom.xml
@@ -509,28 +509,6 @@
             <artifactId>commons-daemon</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-core</artifactId>
-            <scope>runtime</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.sun</groupId>
-                    <artifactId>tools</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-spring</artifactId>
-            <scope>runtime</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.sun</groupId>
-                    <artifactId>tools</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
             <groupId>org.apache.derby</groupId>
             <artifactId>derby</artifactId>
             <scope>runtime</scope>
diff --git a/server/container/guice/mailet/pom.xml b/server/container/guice/mailet/pom.xml
index 1e349f7..d290fea 100644
--- a/server/container/guice/mailet/pom.xml
+++ b/server/container/guice/mailet/pom.xml
@@ -85,10 +85,6 @@
             <artifactId>guice</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-support</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
index 844667e..ebf1390 100644
--- a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
+++ b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
@@ -26,8 +26,6 @@ import java.util.Set;
 import java.util.function.Predicate;
 import java.util.stream.Stream;
 
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.SimpleRegistry;
 import org.apache.commons.configuration2.BaseHierarchicalConfiguration;
 import org.apache.commons.configuration2.HierarchicalConfiguration;
 import org.apache.commons.configuration2.ex.ConfigurationException;
@@ -115,15 +113,6 @@ public class CamelMailetContainerModule extends AbstractModule {
         transportProcessorChecks.addBinding().toInstance(BCC_Check);
     }
 
-    @Singleton
-    @Provides
-    public DefaultCamelContext provideCamelContext() {
-        DefaultCamelContext camelContext = new DefaultCamelContext();
-        camelContext.disableJMX();
-        camelContext.setRegistry(new SimpleRegistry());
-        return camelContext;
-    }
-
     @Provides
     @Singleton
     public JamesMailSpooler.Configuration spoolerConfiguration(MailRepositoryStore mailRepositoryStore, ConfigurationProvider configurationProvider) {
@@ -165,34 +154,31 @@ public class CamelMailetContainerModule extends AbstractModule {
         private final CamelCompositeProcessor camelCompositeProcessor;
         private final DefaultProcessorsConfigurationSupplier defaultProcessorsConfigurationSupplier;
         private final Set<ProcessorsCheck> processorsCheckSet;
-        private final DefaultCamelContext camelContext;
         private final JamesMailSpooler jamesMailSpooler;
         private final JamesMailSpooler.Configuration spoolerConfiguration;
 
-
         @Inject
         public MailetModuleInitializationOperation(ConfigurationProvider configurationProvider,
                                                    CamelCompositeProcessor camelCompositeProcessor,
                                                    Set<ProcessorsCheck> processorsCheckSet,
                                                    DefaultProcessorsConfigurationSupplier defaultProcessorsConfigurationSupplier,
-                                                   DefaultCamelContext camelContext, JamesMailSpooler jamesMailSpooler, JamesMailSpooler.Configuration spoolerConfiguration) {
+                                                   JamesMailSpooler jamesMailSpooler,
+                                                   JamesMailSpooler.Configuration spoolerConfiguration) {
             this.configurationProvider = configurationProvider;
             this.camelCompositeProcessor = camelCompositeProcessor;
             this.processorsCheckSet = processorsCheckSet;
             this.defaultProcessorsConfigurationSupplier = defaultProcessorsConfigurationSupplier;
-            this.camelContext = camelContext;
             this.jamesMailSpooler = jamesMailSpooler;
             this.spoolerConfiguration = spoolerConfiguration;
         }
 
         @Override
         public void initModule() throws Exception {
-            configureProcessors(camelContext);
+            configureProcessors();
             checkProcessors();
         }
 
-        private void configureProcessors(DefaultCamelContext camelContext) throws Exception {
-            camelCompositeProcessor.setCamelContext(camelContext);
+        private void configureProcessors() throws Exception {
             camelCompositeProcessor.configure(getProcessorConfiguration());
             camelCompositeProcessor.init();
 
diff --git a/server/container/guice/mailet/src/test/java/org/apache/james/modules/server/CamelMailetContainerModuleTest.java b/server/container/guice/mailet/src/test/java/org/apache/james/modules/server/CamelMailetContainerModuleTest.java
index d743302..cfd3fae 100644
--- a/server/container/guice/mailet/src/test/java/org/apache/james/modules/server/CamelMailetContainerModuleTest.java
+++ b/server/container/guice/mailet/src/test/java/org/apache/james/modules/server/CamelMailetContainerModuleTest.java
@@ -27,7 +27,6 @@ import static org.mockito.Mockito.when;
 import java.io.ByteArrayInputStream;
 import java.nio.charset.StandardCharsets;
 
-import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.commons.configuration2.BaseHierarchicalConfiguration;
 import org.apache.commons.configuration2.HierarchicalConfiguration;
 import org.apache.commons.configuration2.XMLConfiguration;
@@ -104,7 +103,6 @@ class CamelMailetContainerModuleTest {
             mock(CamelCompositeProcessor.class),
             NO_TRANSPORT_CHECKS,
             () -> defaultConfiguration,
-            mock(DefaultCamelContext.class),
             mock(JamesMailSpooler.class),
             mock(JamesMailSpooler.Configuration.class));
 
@@ -122,7 +120,6 @@ class CamelMailetContainerModuleTest {
             mock(CamelCompositeProcessor.class),
             NO_TRANSPORT_CHECKS,
             mock(CamelMailetContainerModule.DefaultProcessorsConfigurationSupplier.class),
-            mock(DefaultCamelContext.class),
             mock(JamesMailSpooler.class),
             mock(JamesMailSpooler.Configuration.class));
 
@@ -146,7 +143,6 @@ class CamelMailetContainerModuleTest {
             mock(CamelCompositeProcessor.class),
             NO_TRANSPORT_CHECKS,
             mock(CamelMailetContainerModule.DefaultProcessorsConfigurationSupplier.class),
-            mock(DefaultCamelContext.class),
             mock(JamesMailSpooler.class),
             mock(JamesMailSpooler.Configuration.class));
 
diff --git a/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml b/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
index a4fae9d..4d4168f 100644
--- a/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
+++ b/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
@@ -20,11 +20,9 @@
 
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:camel="http://camel.apache.org/schema/spring"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-          http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 
@@ -81,11 +79,6 @@
     <!-- Mailet Container -->
     <import resource="classpath:META-INF/spring/mailetcontainer-context.xml"/>
 
-    <!-- Camel Context -->
-    <camel:camelContext id="jamesCamelContext" trace="false">
-        <camel:jmxAgent id="agent" disabled="false"/>
-    </camel:camelContext>
-
     <!-- DNS Service -->
     <import resource="classpath:META-INF/spring/dns-context.xml"/>
 
diff --git a/server/mailet/mailetcontainer-camel/pom.xml b/server/mailet/mailetcontainer-camel/pom.xml
index 5cdaa67..611e78b 100644
--- a/server/mailet/mailetcontainer-camel/pom.xml
+++ b/server/mailet/mailetcontainer-camel/pom.xml
@@ -132,10 +132,6 @@
             <artifactId>jaxb-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-core</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-configuration2</artifactId>
         </dependency>
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
index 88107a1..53394c2 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
@@ -20,11 +20,8 @@
 package org.apache.james.mailetcontainer.impl.camel;
 
 import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
 import org.apache.commons.configuration2.HierarchicalConfiguration;
 import org.apache.commons.configuration2.tree.ImmutableNode;
 import org.apache.james.mailetcontainer.api.MailProcessor;
@@ -42,13 +39,12 @@ import org.apache.mailet.MailetContext;
  * It also offer the {@link AbstractStateCompositeProcessor} implementation
  * which allow to inject {@link Mail} into the routes.
  */
-public class CamelCompositeProcessor extends AbstractStateCompositeProcessor implements CamelContextAware {
+public class CamelCompositeProcessor extends AbstractStateCompositeProcessor {
 
     private final MetricFactory metricFactory;
     private final MailetContext mailetContext;
     private final MatcherLoader matcherLoader;
     private final MailetLoader mailetLoader;
-    private CamelContext camelContext;
 
     @Inject
     CamelCompositeProcessor(MetricFactory metricFactory, MailetContext mailetContext, MatcherLoader matcherLoader, MailetLoader mailetLoader) {
@@ -61,36 +57,13 @@ public class CamelCompositeProcessor extends AbstractStateCompositeProcessor imp
     @Override
     @PostConstruct
     public void init() throws Exception {
-        // Make sure the camel context get started
-        // See https://issues.apache.org/jira/browse/JAMES-1069
-        if (getCamelContext().getStatus().isStopped()) {
-            getCamelContext().start();
-        }
         super.init();
     }
 
-    @PreDestroy
-    public void destroy() throws Exception {
-        if (getCamelContext().getStatus().isStarted()) {
-            getCamelContext().stop();
-        }
-    }
-
-    @Override
-    public CamelContext getCamelContext() {
-        return camelContext;
-    }
-
-    @Override
-    public void setCamelContext(CamelContext camelContext) {
-        this.camelContext = camelContext;
-    }
-
     @Override
     protected MailProcessor createMailProcessor(String name, HierarchicalConfiguration<ImmutableNode> config) throws Exception {
         CamelMailetProcessor processor = new CamelMailetProcessor(metricFactory);
         try {
-            processor.setCamelContext(camelContext);
             processor.setMailetContext(mailetContext);
             processor.setMailetLoader(mailetLoader);
             processor.setMatcherLoader(matcherLoader);
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
index 4ae2905..adeda11 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
@@ -28,8 +28,6 @@ import java.util.stream.Stream;
 import javax.annotation.PostConstruct;
 import javax.mail.MessagingException;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
 import org.apache.commons.lang3.NotImplementedException;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.lifecycle.api.LifecycleUtil;
@@ -51,7 +49,7 @@ import com.google.common.collect.ImmutableSet;
  * {@link org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor} implementation which use Camel DSL for
  * the {@link Matcher} / {@link Mailet} routing
  */
-public class CamelMailetProcessor extends AbstractStateMailetProcessor implements CamelContextAware {
+public class CamelMailetProcessor extends AbstractStateMailetProcessor {
     private static class ProcessingStep {
         private static class Builder {
             @FunctionalInterface
@@ -118,7 +116,6 @@ public class CamelMailetProcessor extends AbstractStateMailetProcessor implement
     private static final Logger LOGGER = LoggerFactory.getLogger(CamelMailetProcessor.class);
 
     private final MetricFactory metricFactory;
-    private CamelContext context;
     private List<MatcherMailetPair> pairs;
     private Map<MatcherSplitter, CamelProcessor> pairsToBeProcessed;
 
@@ -177,16 +174,6 @@ public class CamelMailetProcessor extends AbstractStateMailetProcessor implement
             .encountered(afterMatching);
     }
 
-    @Override
-    public CamelContext getCamelContext() {
-        return context;
-    }
-
-    @Override
-    public void setCamelContext(CamelContext context) {
-        this.context = context;
-    }
-
     public List<MatcherMailetPair> getPairs() {
         return ImmutableList.copyOf(pairs);
     }
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
index dcbc5df..cc534e7 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
@@ -28,9 +28,6 @@ import java.util.Optional;
 
 import javax.mail.MessagingException;
 
-import org.apache.camel.Body;
-import org.apache.camel.Handler;
-import org.apache.camel.InOnly;
 import org.apache.james.core.MailAddress;
 import org.apache.james.mailetcontainer.impl.MatcherMailetPair;
 import org.apache.james.mailetcontainer.impl.ProcessorUtil;
@@ -53,7 +50,6 @@ import com.google.common.collect.ImmutableList;
  * A Splitter for use with Camel to split the MailMessage into many pieces if
  * needed. This is done by use a Matcher.
  */
-@InOnly
 public class MatcherSplitter {
     private static final Logger LOGGER = LoggerFactory.getLogger(MatcherSplitter.class);
 
@@ -83,8 +79,7 @@ public class MatcherSplitter {
      *            Mail which is stored in the @Body of the MailMessage
      * @return mailMessageList
      */
-    @Handler
-    public List<Mail> split(@Body Mail mail) throws MessagingException {
+    public List<Mail> split(Mail mail) throws MessagingException {
         Collection<MailAddress> matchedRcpts = null;
         Collection<MailAddress> origRcpts = new ArrayList<>(mail.getRecipients());
         long start = System.currentTimeMillis();
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
index 494dceb..1f6f954 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
@@ -18,7 +18,6 @@
  ****************************************************************/
 package org.apache.james.mailetcontainer.impl.camel;
 
-import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.commons.configuration2.HierarchicalConfiguration;
 import org.apache.commons.configuration2.tree.ImmutableNode;
 import org.apache.james.mailetcontainer.api.mock.MockMailetLoader;
@@ -37,7 +36,6 @@ public class CamelCompositeProcessorTest extends AbstractStateCompositeProcessor
             new MockMatcherLoader(),
             new MockMailetLoader());
         try {
-            processor.setCamelContext(new DefaultCamelContext());
             processor.configure(config);
             processor.init();
             return processor;
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessorTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessorTest.java
index a962dfd..f083e30 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessorTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessorTest.java
@@ -21,7 +21,6 @@ package org.apache.james.mailetcontainer.impl.camel;
 
 import static org.mockito.Mockito.mock;
 
-import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.commons.configuration2.HierarchicalConfiguration;
 import org.apache.commons.configuration2.tree.ImmutableNode;
 import org.apache.james.mailetcontainer.api.MailProcessor;
@@ -39,7 +38,6 @@ public class CamelMailetProcessorTest extends AbstractStateMailetProcessorTest {
         CamelMailetProcessor processor = null;
         try {
             processor = new CamelMailetProcessor(new RecordingMetricFactory());
-            processor.setCamelContext(new DefaultCamelContext());
             processor.setMailetContext(FakeMailContext.defaultContext());
             processor.setMailetLoader(new MockMailetLoader());
             processor.setMatcherLoader(new MockMatcherLoader());

---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org