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 ma...@apache.org on 2015/11/03 17:50:38 UTC

svn commit: r1712339 - in /james/project/trunk/server: container/cassandra-guice/src/main/java/org/apache/james/modules/server/ container/cassandra-guice/src/test/resources/ dns-service/dnsservice-dnsjava/ dns-service/dnsservice-dnsjava/src/main/java/o...

Author: matthieu
Date: Tue Nov  3 16:50:38 2015
New Revision: 1712339

URL: http://svn.apache.org/viewvc?rev=1712339&view=rev
Log:
JAMES-1626 Add DNSService support in cassandra-guice application

Added:
    james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml
Modified:
    james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
    james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml
    james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java

Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java?rev=1712339&r1=1712338&r2=1712339&view=diff
==============================================================================
--- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java (original)
+++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/server/DNSServiceModule.java Tue Nov  3 16:50:38 2015
@@ -18,23 +18,45 @@
  ****************************************************************/
 package org.apache.james.modules.server;
 
-import com.google.inject.Provides;
+import com.google.inject.Inject;
 import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.dnsjava.DNSJavaService;
 
 import com.google.inject.AbstractModule;
+import org.apache.james.utils.ClassPathConfigurationProvider;
+import org.apache.james.utils.ConfigurationPerformer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DNSServiceModule extends AbstractModule {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(DNSServiceModule.class);
+
     @Override
     protected void configure() {
-
+        bind(DNSService.class).to(DNSJavaService.class);
+        Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(DNSServiceConfigurationPerformer.class);
     }
 
-    @Provides
     @Singleton
-    private DNSService provideDNSService() {
-        return new DNSJavaService();
+    public static class DNSServiceConfigurationPerformer implements ConfigurationPerformer {
+
+        private final ClassPathConfigurationProvider classPathConfigurationProvider;
+        private final DNSJavaService dnsService;
+
+        @Inject
+        public DNSServiceConfigurationPerformer(ClassPathConfigurationProvider classPathConfigurationProvider,
+                                                DNSJavaService dnsService) {
+            this.classPathConfigurationProvider = classPathConfigurationProvider;
+            this.dnsService = dnsService;
+        }
+
+        public void initModule() throws Exception {
+            dnsService.setLog(LOGGER);
+            dnsService.configure(classPathConfigurationProvider.getConfiguration("dnsservice"));
+            dnsService.init();
+        }
     }
 }
\ No newline at end of file

Added: james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml
URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml?rev=1712339&view=auto
==============================================================================
--- james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml (added)
+++ james/project/trunk/server/container/cassandra-guice/src/test/resources/dnsservice.xml Tue Nov  3 16:50:38 2015
@@ -0,0 +1,29 @@
+<?xml version="1.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.                                           
+ -->
+
+<dnsservice>
+  <servers>
+    <server>8.8.8.8</server>
+    <server>62.210.16.6</server>
+  </servers>
+  <autodiscover>false</autodiscover>
+  <authoritative>false</authoritative>
+  <maxcachesize>50000</maxcachesize>
+</dnsservice>

Modified: james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml
URL: http://svn.apache.org/viewvc/james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml?rev=1712339&r1=1712338&r2=1712339&view=diff
==============================================================================
--- james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml (original)
+++ james/project/trunk/server/dns-service/dnsservice-dnsjava/pom.xml Tue Nov  3 16:50:38 2015
@@ -60,6 +60,10 @@
             <artifactId>dnsjava</artifactId>
         </dependency>
         <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.geronimo.specs</groupId>
             <artifactId>geronimo-annotation_1.1_spec</artifactId>
         </dependency>

Modified: james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java?rev=1712339&r1=1712338&r2=1712339&view=diff
==============================================================================
--- james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java (original)
+++ james/project/trunk/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java Tue Nov  3 16:50:38 2015
@@ -44,6 +44,7 @@ import org.xbill.DNS.TextParseException;
 import org.xbill.DNS.Type;
 
 import javax.annotation.PostConstruct;
+import javax.inject.Singleton;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
@@ -56,6 +57,7 @@ import java.util.List;
 /**
  * Provides DNS client functionality to services running inside James
  */
+@Singleton
 public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled, Configurable {
 
     /**



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