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:46 UTC

[02/23] james-project git commit: JAMES-2138 Top-level entities are usually in plural form

JAMES-2138 Top-level entities are usually in plural form


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/840a885c
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/840a885c
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/840a885c

Branch: refs/heads/master
Commit: 840a885caf0bc5761e4d52f835a3df4626dea429
Parents: 73b650e
Author: Matthieu Baechler <ma...@apache.org>
Authored: Mon Sep 4 10:17:42 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Sat Sep 9 10:40:29 2017 +0700

----------------------------------------------------------------------
 .../james/modules/server/DataRoutesModules.java |   4 +-
 .../integration/JwtFilterIntegrationTest.java   |   4 +-
 .../WebAdminServerIntegrationTest.java          |   4 +-
 .../james/webadmin/routes/DomainRoutes.java     | 191 -----------
 .../james/webadmin/routes/DomainsRoutes.java    | 191 +++++++++++
 .../james/webadmin/routes/DomainRoutesTest.java | 319 -------------------
 .../webadmin/routes/DomainsRoutesTest.java      | 319 +++++++++++++++++++
 7 files changed, 516 insertions(+), 516 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/840a885c/server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java b/server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java
index 3fb6669..48233d7 100644
--- a/server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java
+++ b/server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java
@@ -20,7 +20,7 @@
 package org.apache.james.modules.server;
 
 import org.apache.james.webadmin.Routes;
-import org.apache.james.webadmin.routes.DomainRoutes;
+import org.apache.james.webadmin.routes.DomainsRoutes;
 import org.apache.james.webadmin.routes.UserRoutes;
 
 import com.google.inject.AbstractModule;
@@ -31,7 +31,7 @@ public class DataRoutesModules extends AbstractModule {
     @Override
     protected void configure() {
         Multibinder<Routes> routesMultibinder = Multibinder.newSetBinder(binder(), Routes.class);
-        routesMultibinder.addBinding().to(DomainRoutes.class);
+        routesMultibinder.addBinding().to(DomainsRoutes.class);
         routesMultibinder.addBinding().to(UserRoutes.class);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/840a885c/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/JwtFilterIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/JwtFilterIntegrationTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/JwtFilterIntegrationTest.java
index e15f178..97e6deb 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/JwtFilterIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/JwtFilterIntegrationTest.java
@@ -36,7 +36,7 @@ import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.WebAdminGuiceProbe;
 import org.apache.james.webadmin.authentication.AuthenticationFilter;
 import org.apache.james.webadmin.authentication.JwtFilter;
-import org.apache.james.webadmin.routes.DomainRoutes;
+import org.apache.james.webadmin.routes.DomainsRoutes;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
@@ -52,7 +52,7 @@ import com.jayway.restassured.response.Header;
 public class JwtFilterIntegrationTest {
 
     private static final String DOMAIN = "domain";
-    private static final String SPECIFIC_DOMAIN = DomainRoutes.DOMAINS + SEPARATOR + DOMAIN;
+    private static final String SPECIFIC_DOMAIN = DomainsRoutes.DOMAINS + SEPARATOR + DOMAIN;
     private static final String VALID_TOKEN_ADMIN_TRUE = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbkBvcGVuL" +
         "XBhYXMub3JnIiwiYWRtaW4iOnRydWUsImlhdCI6MTQ4OTAzODQzOH0.rgxCkdWEa-92a4R-72a9Z49k4LRvQDShgci5Y7qWRUP9IGJCK-lMkrHF" +
         "4H0a6L87BYppxVW701zaZ6dNxRMvHnjLBBWnPsC2B0rkkr2hEL2zfz7sb-iNGV-J4ICx97t8-TfQ5rz3VOX0FwdusPL_rJtmlGEGRivPkR6_aBe1" +

http://git-wip-us.apache.org/repos/asf/james-project/blob/840a885c/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
index bb243cc..028f8b3 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
@@ -35,7 +35,7 @@ import org.apache.james.modules.MailboxProbeImpl;
 import org.apache.james.probe.DataProbe;
 import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.WebAdminGuiceProbe;
-import org.apache.james.webadmin.routes.DomainRoutes;
+import org.apache.james.webadmin.routes.DomainsRoutes;
 import org.apache.james.webadmin.routes.UserMailboxesRoutes;
 import org.apache.james.webadmin.routes.UserRoutes;
 import org.apache.james.webadmin.swagger.routes.SwaggerRoutes;
@@ -54,7 +54,7 @@ public class WebAdminServerIntegrationTest {
 
     public static final String DOMAIN = "domain";
     public static final String USERNAME = "username@" + DOMAIN;
-    public static final String SPECIFIC_DOMAIN = DomainRoutes.DOMAINS + SEPARATOR + DOMAIN;
+    public static final String SPECIFIC_DOMAIN = DomainsRoutes.DOMAINS + SEPARATOR + DOMAIN;
     public static final String SPECIFIC_USER = UserRoutes.USERS + SEPARATOR + USERNAME;
     public static final String MAILBOX = "mailbox";
     public static final String SPECIFIC_MAILBOX = SPECIFIC_USER + SEPARATOR + UserMailboxesRoutes.MAILBOXES + SEPARATOR + MAILBOX;

http://git-wip-us.apache.org/repos/asf/james-project/blob/840a885c/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainRoutes.java
deleted file mode 100644
index 60c8952..0000000
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainRoutes.java
+++ /dev/null
@@ -1,191 +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.webadmin.routes;
-
-import static org.apache.james.webadmin.Constants.SEPARATOR;
-
-import java.util.List;
-import javax.inject.Inject;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
-import org.apache.james.domainlist.api.DomainList;
-import org.apache.james.domainlist.api.DomainListException;
-import org.apache.james.webadmin.Constants;
-import org.apache.james.webadmin.Routes;
-import org.apache.james.webadmin.utils.JsonTransformer;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-
-import spark.Request;
-import spark.Response;
-import spark.Service;
-
-@Api(tags = "Domains")
-@Path(DomainRoutes.DOMAINS)
-@Produces("application/json")
-public class DomainRoutes implements Routes {
-
-    private static final String DOMAIN_NAME = ":domainName";
-    private static final Logger LOGGER = LoggerFactory.getLogger(DomainRoutes.class);
-
-    public static final String DOMAINS = "/domains";
-    public static final String SPECIFIC_DOMAIN = DOMAINS + SEPARATOR + DOMAIN_NAME;
-    public static final int MAXIMUM_DOMAIN_SIZE = 256;
-
-
-    private final DomainList domainList;
-    private final JsonTransformer jsonTransformer;
-    private Service service;
-
-    @Inject
-    public DomainRoutes(DomainList domainList, JsonTransformer jsonTransformer) {
-        this.domainList = domainList;
-        this.jsonTransformer = jsonTransformer;
-    }
-
-    @Override
-    public void define(Service service) {
-        this.service = service;
-
-        defineGetDomains();
-
-        defineDomainExists();
-
-        defineAddDomain();
-
-        defineDeleteDomain();
-    }
-
-    @DELETE
-    @Path("/{domainName}")
-    @ApiOperation(value = "Deleting a domain")
-    @ApiImplicitParams({
-            @ApiImplicitParam(required = true, dataType = "string", name = "domainName", paramType = "path")
-    })
-    @ApiResponses(value = {
-            @ApiResponse(code = 204, message = "OK. Domain is removed."),
-            @ApiResponse(code = 500, message = "Internal server error - Something went bad on the server side.")
-    })
-    public void defineDeleteDomain() {
-        service.delete(SPECIFIC_DOMAIN, this::removeDomain);
-    }
-
-    @PUT
-    @Path("/{domainName}")
-    @ApiOperation(value = "Creating new domain")
-    @ApiImplicitParams({
-            @ApiImplicitParam(required = true, dataType = "string", name = "domainName", paramType = "path")
-    })
-    @ApiResponses(value = {
-            @ApiResponse(code = 204, message = "OK. New domain is created."),
-            @ApiResponse(code = 400, message = "Invalid request for domain creation"),
-            @ApiResponse(code = 500, message = "Internal server error - Something went bad on the server side.")
-    })
-    public void defineAddDomain() {
-        service.put(SPECIFIC_DOMAIN, this::addDomain);
-    }
-
-    @GET
-    @Path("/{domainName}")
-    @ApiImplicitParams({
-            @ApiImplicitParam(required = true, dataType = "string", name = "domainName", paramType = "path")
-    })
-    @ApiOperation(value = "Testing existence of a domain.")
-    @ApiResponses(value = {
-            @ApiResponse(code = 204, message = "The domain exists", response = String.class),
-            @ApiResponse(code = 404, message = "The domain does not exist."),
-            @ApiResponse(code = 500, message = "Internal server error - Something went bad on the server side.")
-    })
-    public void defineDomainExists() {
-        service.get(SPECIFIC_DOMAIN, this::exists);
-    }
-
-    @GET
-    @ApiOperation(value = "Getting all domains")
-    @ApiResponses(value = {
-            @ApiResponse(code = 204, message = "OK", response = List.class),
-            @ApiResponse(code = 500, message = "Internal server error - Something went bad on the server side.")
-    })
-    public void defineGetDomains() {
-        service.get(DOMAINS,
-            (request, response) -> domainList.getDomains(),
-            jsonTransformer);
-    }
-
-    private String removeDomain(Request request, Response response) {
-        try {
-            String domain = request.params(DOMAIN_NAME);
-            removeDomain(domain);
-        } catch (DomainListException e) {
-            LOGGER.info("{} did not exists", request.params(DOMAIN_NAME));
-        }
-        response.status(204);
-        return Constants.EMPTY_BODY;
-    }
-
-    private void removeDomain(String domain) throws DomainListException {
-        Preconditions.checkArgument(!Strings.isNullOrEmpty(domain));
-        domainList.removeDomain(domain);
-    }
-
-    private String addDomain(Request request, Response response) {
-        try {
-            addDomain(request.params(DOMAIN_NAME));
-            response.status(204);
-        } catch (DomainListException e) {
-            LOGGER.info("{} already exists", request.params(DOMAIN_NAME));
-            response.status(204);
-        } catch (IllegalArgumentException e) {
-            LOGGER.info("Invalid request for domain creation");
-            response.status(400);
-        }
-        return Constants.EMPTY_BODY;
-    }
-
-    private void addDomain(String domain) throws DomainListException {
-        Preconditions.checkArgument(!Strings.isNullOrEmpty(domain));
-        Preconditions.checkArgument(!domain.contains("@"));
-        Preconditions.checkArgument(domain.length() < MAXIMUM_DOMAIN_SIZE);
-        domainList.addDomain(domain);
-    }
-
-    private String exists(Request request, Response response) throws DomainListException {
-        if (!domainList.containsDomain(request.params(DOMAIN_NAME))) {
-            response.status(404);
-        } else {
-            response.status(204);
-        }
-        return Constants.EMPTY_BODY;
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/840a885c/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainsRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainsRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainsRoutes.java
new file mode 100644
index 0000000..6b6fb9a
--- /dev/null
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainsRoutes.java
@@ -0,0 +1,191 @@
+/****************************************************************
+ * 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.webadmin.routes;
+
+import static org.apache.james.webadmin.Constants.SEPARATOR;
+
+import java.util.List;
+import javax.inject.Inject;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
+import org.apache.james.domainlist.api.DomainList;
+import org.apache.james.domainlist.api.DomainListException;
+import org.apache.james.webadmin.Constants;
+import org.apache.james.webadmin.Routes;
+import org.apache.james.webadmin.utils.JsonTransformer;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+
+import spark.Request;
+import spark.Response;
+import spark.Service;
+
+@Api(tags = "Domains")
+@Path(DomainsRoutes.DOMAINS)
+@Produces("application/json")
+public class DomainsRoutes implements Routes {
+
+    private static final String DOMAIN_NAME = ":domainName";
+    private static final Logger LOGGER = LoggerFactory.getLogger(DomainsRoutes.class);
+
+    public static final String DOMAINS = "/domains";
+    public static final String SPECIFIC_DOMAIN = DOMAINS + SEPARATOR + DOMAIN_NAME;
+    public static final int MAXIMUM_DOMAIN_SIZE = 256;
+
+
+    private final DomainList domainList;
+    private final JsonTransformer jsonTransformer;
+    private Service service;
+
+    @Inject
+    public DomainsRoutes(DomainList domainList, JsonTransformer jsonTransformer) {
+        this.domainList = domainList;
+        this.jsonTransformer = jsonTransformer;
+    }
+
+    @Override
+    public void define(Service service) {
+        this.service = service;
+
+        defineGetDomains();
+
+        defineDomainExists();
+
+        defineAddDomain();
+
+        defineDeleteDomain();
+    }
+
+    @DELETE
+    @Path("/{domainName}")
+    @ApiOperation(value = "Deleting a domain")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, dataType = "string", name = "domainName", paramType = "path")
+    })
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "OK. Domain is removed."),
+            @ApiResponse(code = 500, message = "Internal server error - Something went bad on the server side.")
+    })
+    public void defineDeleteDomain() {
+        service.delete(SPECIFIC_DOMAIN, this::removeDomain);
+    }
+
+    @PUT
+    @Path("/{domainName}")
+    @ApiOperation(value = "Creating new domain")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, dataType = "string", name = "domainName", paramType = "path")
+    })
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "OK. New domain is created."),
+            @ApiResponse(code = 400, message = "Invalid request for domain creation"),
+            @ApiResponse(code = 500, message = "Internal server error - Something went bad on the server side.")
+    })
+    public void defineAddDomain() {
+        service.put(SPECIFIC_DOMAIN, this::addDomain);
+    }
+
+    @GET
+    @Path("/{domainName}")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, dataType = "string", name = "domainName", paramType = "path")
+    })
+    @ApiOperation(value = "Testing existence of a domain.")
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "The domain exists", response = String.class),
+            @ApiResponse(code = 404, message = "The domain does not exist."),
+            @ApiResponse(code = 500, message = "Internal server error - Something went bad on the server side.")
+    })
+    public void defineDomainExists() {
+        service.get(SPECIFIC_DOMAIN, this::exists);
+    }
+
+    @GET
+    @ApiOperation(value = "Getting all domains")
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "OK", response = List.class),
+            @ApiResponse(code = 500, message = "Internal server error - Something went bad on the server side.")
+    })
+    public void defineGetDomains() {
+        service.get(DOMAINS,
+            (request, response) -> domainList.getDomains(),
+            jsonTransformer);
+    }
+
+    private String removeDomain(Request request, Response response) {
+        try {
+            String domain = request.params(DOMAIN_NAME);
+            removeDomain(domain);
+        } catch (DomainListException e) {
+            LOGGER.info("{} did not exists", request.params(DOMAIN_NAME));
+        }
+        response.status(204);
+        return Constants.EMPTY_BODY;
+    }
+
+    private void removeDomain(String domain) throws DomainListException {
+        Preconditions.checkArgument(!Strings.isNullOrEmpty(domain));
+        domainList.removeDomain(domain);
+    }
+
+    private String addDomain(Request request, Response response) {
+        try {
+            addDomain(request.params(DOMAIN_NAME));
+            response.status(204);
+        } catch (DomainListException e) {
+            LOGGER.info("{} already exists", request.params(DOMAIN_NAME));
+            response.status(204);
+        } catch (IllegalArgumentException e) {
+            LOGGER.info("Invalid request for domain creation");
+            response.status(400);
+        }
+        return Constants.EMPTY_BODY;
+    }
+
+    private void addDomain(String domain) throws DomainListException {
+        Preconditions.checkArgument(!Strings.isNullOrEmpty(domain));
+        Preconditions.checkArgument(!domain.contains("@"));
+        Preconditions.checkArgument(domain.length() < MAXIMUM_DOMAIN_SIZE);
+        domainList.addDomain(domain);
+    }
+
+    private String exists(Request request, Response response) throws DomainListException {
+        if (!domainList.containsDomain(request.params(DOMAIN_NAME))) {
+            response.status(404);
+        } else {
+            response.status(204);
+        }
+        return Constants.EMPTY_BODY;
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/840a885c/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainRoutesTest.java
deleted file mode 100644
index f17acd3..0000000
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainRoutesTest.java
+++ /dev/null
@@ -1,319 +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.webadmin.routes;
-
-import static com.jayway.restassured.RestAssured.given;
-import static com.jayway.restassured.RestAssured.when;
-import static com.jayway.restassured.RestAssured.with;
-import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
-import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
-import static org.apache.james.webadmin.Constants.SEPARATOR;
-import static org.apache.james.webadmin.WebAdminServer.NO_CONFIGURATION;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.is;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.net.InetAddress;
-import java.nio.charset.StandardCharsets;
-
-import org.apache.james.dnsservice.api.DNSService;
-import org.apache.james.domainlist.api.DomainList;
-import org.apache.james.domainlist.api.DomainListException;
-import org.apache.james.domainlist.memory.MemoryDomainList;
-import org.apache.james.metrics.logger.DefaultMetricFactory;
-import org.apache.james.webadmin.WebAdminServer;
-import org.apache.james.webadmin.utils.JsonTransformer;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import com.jayway.restassured.RestAssured;
-import com.jayway.restassured.builder.RequestSpecBuilder;
-import com.jayway.restassured.http.ContentType;
-import de.bechte.junit.runners.context.HierarchicalContextRunner;
-
-@RunWith(HierarchicalContextRunner.class)
-public class DomainRoutesTest {
-    public static final String DOMAIN = "domain";
-
-    private WebAdminServer webAdminServer;
-
-    private void createServer(DomainList domainList) throws Exception {
-        webAdminServer = new WebAdminServer(
-            new DefaultMetricFactory(),
-            new DomainRoutes(domainList, new JsonTransformer()));
-        webAdminServer.configure(NO_CONFIGURATION);
-        webAdminServer.await();
-
-        RestAssured.requestSpecification = new RequestSpecBuilder()
-        		.setContentType(ContentType.JSON)
-        		.setAccept(ContentType.JSON)
-        		.setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)))
-        		.setPort(webAdminServer.getPort().toInt())
-        		.setBasePath(DomainRoutes.DOMAINS)
-        		.build();
-
-    }
-
-    @After
-    public void stop() {
-        webAdminServer.destroy();
-    }
-
-    public class NormalBehaviour {
-
-        @Before
-        public void setUp() throws Exception {
-            DNSService dnsService = mock(DNSService.class);
-            when(dnsService.getHostName(any())).thenReturn("localhost");
-            when(dnsService.getLocalHost()).thenReturn(InetAddress.getByName("localhost"));
-
-            MemoryDomainList domainList = new MemoryDomainList(dnsService);
-            domainList.setAutoDetectIP(false);
-            createServer(domainList);
-        }
-
-        @Test
-        public void getDomainsShouldBeEmptyByDefault() {
-            given()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[]"));
-        }
-
-        @Test
-        public void putShouldReturnErrorWhenUsedWithEmptyDomain() {
-            given()
-                .put(SEPARATOR)
-            .then()
-                .statusCode(404);
-        }
-
-        @Test
-        public void deleteShouldReturnErrorWhenUsedWithEmptyDomain() {
-            given()
-                .delete(SEPARATOR)
-            .then()
-                .statusCode(404);
-        }
-
-        @Test
-        public void putShouldBeOk() {
-            given()
-                .put(DOMAIN)
-            .then()
-                .statusCode(204);
-        }
-
-        @Test
-        public void getDomainsShouldDisplayAddedDomains() {
-            with()
-                .put(DOMAIN);
-
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(containsString(DOMAIN));
-        }
-
-        @Test
-        public void putShouldReturnUserErrorWhenNameContainsAT() {
-            when()
-                .put(DOMAIN + "@" + DOMAIN)
-            .then()
-                .statusCode(400);
-        }
-
-        @Test
-        public void putShouldReturnUserErrorWhenNameContainsUrlSeparator() {
-            when()
-                .put(DOMAIN + "/" + DOMAIN)
-            .then()
-                .statusCode(404);
-        }
-
-        @Test
-        public void putShouldReturnUserErrorWhenNameIsTooLong() {
-            when()
-                .put(DOMAIN + "0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789." +
-                    "0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789." +
-                    "0123456789.0123456789.0123456789.")
-            .then()
-                .statusCode(400);
-        }
-
-        @Test
-        public void putShouldWorkOnTheSecondTimeForAGivenValue() {
-            with()
-                .put(DOMAIN);
-
-            when()
-                .put(DOMAIN)
-            .then()
-                .statusCode(204);
-        }
-
-        @Test
-        public void deleteShouldRemoveTheGivenDomain() {
-            with()
-                .put(DOMAIN);
-
-            when()
-                .delete(DOMAIN)
-            .then()
-                .statusCode(204);
-
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[]"));
-        }
-
-        @Test
-        public void deleteShouldBeOkWhenTheDomainIsNotPresent() {
-            given()
-                .delete(DOMAIN)
-            .then()
-                .statusCode(204);
-        }
-
-        @Test
-        public void getDomainShouldReturnOkWhenTheDomainIsPresent() {
-            with()
-                .put(DOMAIN);
-
-            when()
-                .get(DOMAIN)
-            .then()
-                .statusCode(204);
-        }
-
-        @Test
-        public void getDomainShouldReturnNotFoundWhenTheDomainIsAbsent() {
-            given()
-                .get(DOMAIN)
-            .then()
-                .statusCode(404);
-        }
-
-    }
-
-    public class ExceptionHandling {
-
-        private DomainList domainList;
-        private String domain;
-
-        @Before
-        public void setUp() throws Exception {
-            domainList = mock(DomainList.class);
-            createServer(domainList);
-            domain = "domain";
-        }
-
-        @Test
-        public void deleteShouldReturnErrorOnUnknownException() throws Exception {
-            doThrow(new RuntimeException()).when(domainList).removeDomain(domain);
-
-            when()
-                .delete(DOMAIN)
-            .then()
-                .statusCode(500);
-        }
-
-        @Test
-        public void putShouldReturnErrorOnUnknownException() throws Exception {
-            doThrow(new RuntimeException()).when(domainList).addDomain(domain);
-
-            when()
-                .put(DOMAIN)
-            .then()
-                .statusCode(500);
-        }
-
-        @Test
-        public void getDomainShouldReturnErrorOnUnknownException() throws Exception {
-            when(domainList.containsDomain(domain)).thenThrow(new RuntimeException());
-
-            when()
-                .get(DOMAIN)
-            .then()
-                .statusCode(500);
-        }
-
-        @Test
-        public void getDomainsShouldReturnErrorOnUnknownException() throws Exception {
-            when(domainList.getDomains()).thenThrow(new RuntimeException());
-
-            when()
-                .get()
-            .then()
-                .statusCode(500);
-        }
-
-        @Test
-        public void deleteShouldReturnOkWhenDomainListException() throws Exception {
-            doThrow(new DomainListException("message")).when(domainList).removeDomain(domain);
-
-            when()
-                .delete(DOMAIN)
-            .then()
-                .statusCode(204);
-        }
-
-        @Test
-        public void putShouldReturnOkWhenDomainListException() throws Exception {
-            doThrow(new DomainListException("message")).when(domainList).addDomain(domain);
-
-            when()
-                .put(DOMAIN)
-            .then()
-                .statusCode(204);
-        }
-
-        @Test
-        public void getDomainShouldReturnErrorOnDomainListException() throws Exception {
-            when(domainList.containsDomain(domain)).thenThrow(new DomainListException("message"));
-
-            when()
-                .get(DOMAIN)
-            .then()
-                .statusCode(500);
-        }
-
-        @Test
-        public void getDomainsShouldReturnErrorOnDomainListException() throws Exception {
-            when(domainList.getDomains()).thenThrow(new DomainListException("message"));
-
-            when()
-                .get()
-            .then()
-                .statusCode(500);
-        }
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/840a885c/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
new file mode 100644
index 0000000..23739f9
--- /dev/null
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
@@ -0,0 +1,319 @@
+/****************************************************************
+ * 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.webadmin.routes;
+
+import static com.jayway.restassured.RestAssured.given;
+import static com.jayway.restassured.RestAssured.when;
+import static com.jayway.restassured.RestAssured.with;
+import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
+import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
+import static org.apache.james.webadmin.Constants.SEPARATOR;
+import static org.apache.james.webadmin.WebAdminServer.NO_CONFIGURATION;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.is;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.net.InetAddress;
+import java.nio.charset.StandardCharsets;
+
+import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.domainlist.api.DomainList;
+import org.apache.james.domainlist.api.DomainListException;
+import org.apache.james.domainlist.memory.MemoryDomainList;
+import org.apache.james.metrics.logger.DefaultMetricFactory;
+import org.apache.james.webadmin.WebAdminServer;
+import org.apache.james.webadmin.utils.JsonTransformer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import com.jayway.restassured.RestAssured;
+import com.jayway.restassured.builder.RequestSpecBuilder;
+import com.jayway.restassured.http.ContentType;
+import de.bechte.junit.runners.context.HierarchicalContextRunner;
+
+@RunWith(HierarchicalContextRunner.class)
+public class DomainsRoutesTest {
+    public static final String DOMAIN = "domain";
+
+    private WebAdminServer webAdminServer;
+
+    private void createServer(DomainList domainList) throws Exception {
+        webAdminServer = new WebAdminServer(
+            new DefaultMetricFactory(),
+            new DomainsRoutes(domainList, new JsonTransformer()));
+        webAdminServer.configure(NO_CONFIGURATION);
+        webAdminServer.await();
+
+        RestAssured.requestSpecification = new RequestSpecBuilder()
+        		.setContentType(ContentType.JSON)
+        		.setAccept(ContentType.JSON)
+        		.setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)))
+        		.setPort(webAdminServer.getPort().toInt())
+        		.setBasePath(DomainsRoutes.DOMAINS)
+        		.build();
+
+    }
+
+    @After
+    public void stop() {
+        webAdminServer.destroy();
+    }
+
+    public class NormalBehaviour {
+
+        @Before
+        public void setUp() throws Exception {
+            DNSService dnsService = mock(DNSService.class);
+            when(dnsService.getHostName(any())).thenReturn("localhost");
+            when(dnsService.getLocalHost()).thenReturn(InetAddress.getByName("localhost"));
+
+            MemoryDomainList domainList = new MemoryDomainList(dnsService);
+            domainList.setAutoDetectIP(false);
+            createServer(domainList);
+        }
+
+        @Test
+        public void getDomainsShouldBeEmptyByDefault() {
+            given()
+                .get()
+            .then()
+                .statusCode(200)
+                .body(is("[]"));
+        }
+
+        @Test
+        public void putShouldReturnErrorWhenUsedWithEmptyDomain() {
+            given()
+                .put(SEPARATOR)
+            .then()
+                .statusCode(404);
+        }
+
+        @Test
+        public void deleteShouldReturnErrorWhenUsedWithEmptyDomain() {
+            given()
+                .delete(SEPARATOR)
+            .then()
+                .statusCode(404);
+        }
+
+        @Test
+        public void putShouldBeOk() {
+            given()
+                .put(DOMAIN)
+            .then()
+                .statusCode(204);
+        }
+
+        @Test
+        public void getDomainsShouldDisplayAddedDomains() {
+            with()
+                .put(DOMAIN);
+
+            when()
+                .get()
+            .then()
+                .statusCode(200)
+                .body(containsString(DOMAIN));
+        }
+
+        @Test
+        public void putShouldReturnUserErrorWhenNameContainsAT() {
+            when()
+                .put(DOMAIN + "@" + DOMAIN)
+            .then()
+                .statusCode(400);
+        }
+
+        @Test
+        public void putShouldReturnUserErrorWhenNameContainsUrlSeparator() {
+            when()
+                .put(DOMAIN + "/" + DOMAIN)
+            .then()
+                .statusCode(404);
+        }
+
+        @Test
+        public void putShouldReturnUserErrorWhenNameIsTooLong() {
+            when()
+                .put(DOMAIN + "0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789." +
+                    "0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789.0123456789." +
+                    "0123456789.0123456789.0123456789.")
+            .then()
+                .statusCode(400);
+        }
+
+        @Test
+        public void putShouldWorkOnTheSecondTimeForAGivenValue() {
+            with()
+                .put(DOMAIN);
+
+            when()
+                .put(DOMAIN)
+            .then()
+                .statusCode(204);
+        }
+
+        @Test
+        public void deleteShouldRemoveTheGivenDomain() {
+            with()
+                .put(DOMAIN);
+
+            when()
+                .delete(DOMAIN)
+            .then()
+                .statusCode(204);
+
+            when()
+                .get()
+            .then()
+                .statusCode(200)
+                .body(is("[]"));
+        }
+
+        @Test
+        public void deleteShouldBeOkWhenTheDomainIsNotPresent() {
+            given()
+                .delete(DOMAIN)
+            .then()
+                .statusCode(204);
+        }
+
+        @Test
+        public void getDomainShouldReturnOkWhenTheDomainIsPresent() {
+            with()
+                .put(DOMAIN);
+
+            when()
+                .get(DOMAIN)
+            .then()
+                .statusCode(204);
+        }
+
+        @Test
+        public void getDomainShouldReturnNotFoundWhenTheDomainIsAbsent() {
+            given()
+                .get(DOMAIN)
+            .then()
+                .statusCode(404);
+        }
+
+    }
+
+    public class ExceptionHandling {
+
+        private DomainList domainList;
+        private String domain;
+
+        @Before
+        public void setUp() throws Exception {
+            domainList = mock(DomainList.class);
+            createServer(domainList);
+            domain = "domain";
+        }
+
+        @Test
+        public void deleteShouldReturnErrorOnUnknownException() throws Exception {
+            doThrow(new RuntimeException()).when(domainList).removeDomain(domain);
+
+            when()
+                .delete(DOMAIN)
+            .then()
+                .statusCode(500);
+        }
+
+        @Test
+        public void putShouldReturnErrorOnUnknownException() throws Exception {
+            doThrow(new RuntimeException()).when(domainList).addDomain(domain);
+
+            when()
+                .put(DOMAIN)
+            .then()
+                .statusCode(500);
+        }
+
+        @Test
+        public void getDomainShouldReturnErrorOnUnknownException() throws Exception {
+            when(domainList.containsDomain(domain)).thenThrow(new RuntimeException());
+
+            when()
+                .get(DOMAIN)
+            .then()
+                .statusCode(500);
+        }
+
+        @Test
+        public void getDomainsShouldReturnErrorOnUnknownException() throws Exception {
+            when(domainList.getDomains()).thenThrow(new RuntimeException());
+
+            when()
+                .get()
+            .then()
+                .statusCode(500);
+        }
+
+        @Test
+        public void deleteShouldReturnOkWhenDomainListException() throws Exception {
+            doThrow(new DomainListException("message")).when(domainList).removeDomain(domain);
+
+            when()
+                .delete(DOMAIN)
+            .then()
+                .statusCode(204);
+        }
+
+        @Test
+        public void putShouldReturnOkWhenDomainListException() throws Exception {
+            doThrow(new DomainListException("message")).when(domainList).addDomain(domain);
+
+            when()
+                .put(DOMAIN)
+            .then()
+                .statusCode(204);
+        }
+
+        @Test
+        public void getDomainShouldReturnErrorOnDomainListException() throws Exception {
+            when(domainList.containsDomain(domain)).thenThrow(new DomainListException("message"));
+
+            when()
+                .get(DOMAIN)
+            .then()
+                .statusCode(500);
+        }
+
+        @Test
+        public void getDomainsShouldReturnErrorOnDomainListException() throws Exception {
+            when(domainList.getDomains()).thenThrow(new DomainListException("message"));
+
+            when()
+                .get()
+            .then()
+                .statusCode(500);
+        }
+
+    }
+
+}


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