Extract duplicated code in servlets to abstract class
Change-Id: Ifb99a64eb2b3db15a2b54714813b296a0784f7b7
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java
index 7a378a5..56cc176 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java
@@ -14,7 +14,6 @@
package com.ericsson.gerrit.plugins.highavailability.forwarder.rest;
-import static java.nio.charset.StandardCharsets.UTF_8;
import static javax.servlet.http.HttpServletResponse.SC_CONFLICT;
import static javax.servlet.http.HttpServletResponse.SC_METHOD_NOT_ALLOWED;
import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
@@ -25,15 +24,11 @@
import com.google.gwtorm.server.OrmException;
import java.io.IOException;
import java.util.concurrent.locks.Lock;
-import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-public abstract class AbstractIndexRestApiServlet<T> extends HttpServlet {
+public abstract class AbstractIndexRestApiServlet<T> extends AbstractRestApiServlet {
private static final long serialVersionUID = -1L;
- private static final Logger logger = LoggerFactory.getLogger(AbstractIndexRestApiServlet.class);
private final IndexName indexName;
private final boolean allowDelete;
@@ -90,8 +85,7 @@
}
private void process(HttpServletRequest req, HttpServletResponse rsp, Operation operation) {
- rsp.setContentType("text/plain");
- rsp.setCharacterEncoding(UTF_8.name());
+ setHeaders(rsp);
String path = req.getPathInfo();
T id = parse(path.substring(path.lastIndexOf('/') + 1));
logger.debug("{} {} {}", operation, indexName, id);
@@ -116,12 +110,4 @@
Context.unsetForwardedEvent();
}
}
-
- private void sendError(HttpServletResponse rsp, int statusCode, String message) {
- try {
- rsp.sendError(statusCode, message);
- } catch (IOException e) {
- logger.error("Failed to send error messsage: {}", e.getMessage(), e);
- }
- }
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractRestApiServlet.java
new file mode 100644
index 0000000..cff54cd
--- /dev/null
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractRestApiServlet.java
@@ -0,0 +1,41 @@
+// Copyright (C) 2018 The Android Open Source Project
+//
+// Licensed 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 com.ericsson.gerrit.plugins.highavailability.forwarder.rest;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+import java.io.IOException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class AbstractRestApiServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+ protected final Logger logger = LoggerFactory.getLogger(getClass());
+
+ protected static void setHeaders(HttpServletResponse rsp) {
+ rsp.setContentType("text/plain");
+ rsp.setCharacterEncoding(UTF_8.name());
+ }
+
+ protected void sendError(HttpServletResponse rsp, int statusCode, String message) {
+ try {
+ rsp.sendError(statusCode, message);
+ } catch (IOException e) {
+ logger.error("Failed to send error messsage: {}", e.getMessage(), e);
+ }
+ }
+}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServlet.java
index e70f75c..d82b8e2 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServlet.java
@@ -25,17 +25,13 @@
import com.google.inject.Singleton;
import java.io.IOException;
import java.util.List;
-import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
@Singleton
-class CacheRestApiServlet extends HttpServlet {
+class CacheRestApiServlet extends AbstractRestApiServlet {
private static final int CACHENAME_INDEX = 1;
private static final long serialVersionUID = -1L;
- private static final Logger logger = LoggerFactory.getLogger(CacheRestApiServlet.class);
private final ForwardedCacheEvictionHandler forwardedCacheEvictionHandler;
@@ -46,8 +42,7 @@
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse rsp) {
- rsp.setContentType("text/plain");
- rsp.setCharacterEncoding("UTF-8");
+ setHeaders(rsp);
try {
List<String> params = Splitter.on('/').splitToList(req.getPathInfo());
String cacheName = params.get(CACHENAME_INDEX);
@@ -63,12 +58,4 @@
sendError(rsp, SC_BAD_REQUEST, e.getMessage());
}
}
-
- private static void sendError(HttpServletResponse rsp, int statusCode, String message) {
- try {
- rsp.sendError(statusCode, message);
- } catch (IOException e) {
- logger.error("Failed to send error messsage: {}", e.getMessage(), e);
- }
- }
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServlet.java
index c6c1e5b..7ac4115 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServlet.java
@@ -33,16 +33,12 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.io.IOException;
-import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
@Singleton
-class EventRestApiServlet extends HttpServlet {
+class EventRestApiServlet extends AbstractRestApiServlet {
private static final long serialVersionUID = -1L;
- private static final Logger logger = LoggerFactory.getLogger(EventRestApiServlet.class);
private final ForwardedEventHandler forwardedEventHandler;
@@ -53,8 +49,7 @@
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse rsp) {
- rsp.setContentType("text/plain");
- rsp.setCharacterEncoding("UTF-8");
+ setHeaders(rsp);
try {
if (!MediaType.parse(req.getContentType()).is(JSON_UTF_8)) {
sendError(
@@ -81,12 +76,4 @@
.create();
return gson.fromJson(jsonEvent, Event.class);
}
-
- private static void sendError(HttpServletResponse rsp, int statusCode, String message) {
- try {
- rsp.sendError(statusCode, message);
- } catch (IOException e) {
- logger.error("Failed to send error messsage: {}", e.getMessage(), e);
- }
- }
}
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexAccountRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexAccountRestApiServlet.java
index 65ddcb2..dae8f71 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexAccountRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexAccountRestApiServlet.java
@@ -19,13 +19,10 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.io.IOException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
@Singleton
class IndexAccountRestApiServlet extends AbstractIndexRestApiServlet<Account.Id> {
private static final long serialVersionUID = -1L;
- private static final Logger logger = LoggerFactory.getLogger(IndexAccountRestApiServlet.class);
private final AccountIndexer indexer;
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServlet.java
index ff6391a..f786dc6 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServlet.java
@@ -23,13 +23,10 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.io.IOException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
@Singleton
class IndexChangeRestApiServlet extends AbstractIndexRestApiServlet<Change.Id> {
private static final long serialVersionUID = -1L;
- private static final Logger logger = LoggerFactory.getLogger(IndexChangeRestApiServlet.class);
private final ChangeIndexer indexer;
private final SchemaFactory<ReviewDb> schemaFactory;
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexGroupRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexGroupRestApiServlet.java
index 0f92b8a..1cfb606 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexGroupRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexGroupRestApiServlet.java
@@ -19,13 +19,10 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.io.IOException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
@Singleton
class IndexGroupRestApiServlet extends AbstractIndexRestApiServlet<AccountGroup.UUID> {
private static final long serialVersionUID = -1L;
- private static final Logger logger = LoggerFactory.getLogger(IndexGroupRestApiServlet.class);
private final GroupIndexer indexer;