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

tallison pushed a commit to branch branch_1x
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/branch_1x by this push:
     new 5d027aa  TIKA-3210 -- tika-status should allow an id per server in 
/status endpoint; also add num restarts to status endpoint
5d027aa is described below

commit 5d027aa3ee0ff0f7efd7cc7a75c558bdf3a7617c
Author: tallison <[email protected]>
AuthorDate: Mon Oct 19 16:01:23 2020 -0400

    TIKA-3210 -- tika-status should allow an id per server in /status endpoint; 
also add num restarts to status endpoint
---
 .../java/org/apache/tika/server/ServerStatus.java  |  17 +++-
 .../java/org/apache/tika/server/TikaServerCli.java |  12 ++-
 .../org/apache/tika/server/TikaServerWatchDog.java |  35 +++++--
 .../tika/server/resource/TikaServerStatus.java     |   2 +
 .../java/org/apache/tika/server/CXFTestBase.java   |   4 +-
 .../apache/tika/server/DetectorResourceTest.java   |   2 +-
 .../org/apache/tika/server/ServerStatusTest.java   |   4 +-
 .../org/apache/tika/server/StackTraceOffTest.java  |   2 +-
 .../org/apache/tika/server/StackTraceTest.java     |   2 +-
 .../tika/server/TikaServerIntegrationTest.java     | 109 +++++++++++++++++++++
 .../apache/tika/server/TikaServerStatusTest.java   |   7 +-
 .../org/apache/tika/server/TikaWelcomeTest.java    |   2 +-
 .../apache/tika/server/TranslateResourceTest.java  |   2 +-
 13 files changed, 175 insertions(+), 25 deletions(-)

diff --git a/tika-server/src/main/java/org/apache/tika/server/ServerStatus.java 
b/tika-server/src/main/java/org/apache/tika/server/ServerStatus.java
index 32d74cf..bc9ad0a 100644
--- a/tika-server/src/main/java/org/apache/tika/server/ServerStatus.java
+++ b/tika-server/src/main/java/org/apache/tika/server/ServerStatus.java
@@ -76,6 +76,8 @@ public class ServerStatus {
     };
     private static final Logger LOG = 
LoggerFactory.getLogger(ServerStatus.class);
 
+    private final String serverId;
+    private final int numRestarts;
     private AtomicLong counter = new AtomicLong(0);
     private Map<Long, TaskStatus> tasks = new HashMap<>();
     private final boolean isLegacy;
@@ -83,11 +85,13 @@ public class ServerStatus {
 
     private volatile long lastStarted = Instant.now().toEpochMilli();
 
-    public ServerStatus() {
-        isLegacy = false;
+    public ServerStatus(String serverId, int numRestarts) {
+        this(serverId, numRestarts, false);
     }
 
-    public ServerStatus(boolean isLegacy) {
+    public ServerStatus(String serverId, int numRestarts, boolean isLegacy) {
+        this.serverId = serverId;
+        this.numRestarts = numRestarts;
         this.isLegacy = isLegacy;
     }
 
@@ -144,4 +148,11 @@ public class ServerStatus {
         return status == STATUS.OPERATING;
     }
 
+    public String getServerId() {
+        return serverId;
+    }
+
+    public int getNumRestarts() {
+        return numRestarts;
+    }
 }
diff --git 
a/tika-server/src/main/java/org/apache/tika/server/TikaServerCli.java 
b/tika-server/src/main/java/org/apache/tika/server/TikaServerCli.java
index d1b6baf..4e81582 100644
--- a/tika-server/src/main/java/org/apache/tika/server/TikaServerCli.java
+++ b/tika-server/src/main/java/org/apache/tika/server/TikaServerCli.java
@@ -26,6 +26,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
@@ -92,6 +93,7 @@ public class TikaServerCli {
     private static final List<String> ONLY_IN_SPAWN_CHILD_MODE =
             Arrays.asList(new String[] { "taskTimeoutMillis", 
"taskPulseMillis",
             "pingTimeoutMillis", "pingPulseMillis", "maxFiles", "javaHome", 
"maxRestarts",
+                    "numRestarts",
             "childStatusFile", "maxChildStartupMillis", "tmpFilePrefix"});
 
     private static Options getOptions() {
@@ -104,6 +106,7 @@ public class TikaServerCli {
         options.addOption("dml", "digestMarkLimit", true, "max number of bytes 
to mark on stream for digest");
         options.addOption("l", "log", true, "request URI log level ('debug' or 
'info')");
         options.addOption("s", "includeStack", false, "whether or not to 
return a stack trace\nif there is an exception during 'parse'");
+        options.addOption("i", "id", true, "id to use for server in server 
status endpoint");
         options.addOption("status", false, "enable the status endpoint");
         options.addOption("?", "help", false, "this help message");
         options.addOption("enableUnsecureFeatures", false, "this is required 
to enable fileUrl.");
@@ -123,7 +126,7 @@ public class TikaServerCli {
         options.addOption("childStatusFile", true, "Only in spawn child mode: 
temporary file used as mmap to communicate " +
                 "with parent process -- do not use this! Should only be 
invoked by parent process.");
         options.addOption("tmpFilePrefix", true, "Only in spawn child mode: 
prefix for temp file - for debugging only");
-
+        options.addOption("numRestarts", true, "Only in spawn child mode: 
number of times that the child has had to be restarted.");
         return options;
     }
 
@@ -269,10 +272,13 @@ public class TikaServerCli {
                 inputStreamFactory = new DefaultInputStreamFactory();
             }
 
+            String serverId = line.hasOption("i") ? line.getOptionValue("i") : 
UUID.randomUUID().toString();
+            LOG.debug("SERVER ID:" +serverId);
             ServerStatus serverStatus;
             //if this is a child process
             if (line.hasOption("child")) {
-                serverStatus = new ServerStatus();
+                serverStatus = new ServerStatus(serverId, 
Integer.parseInt(line.getOptionValue("numRestarts")),
+                        false);
                 //redirect!!!
                 InputStream in = System.in;
                 System.setIn(new ByteArrayInputStream(new byte[0]));
@@ -291,7 +297,7 @@ public class TikaServerCli {
 
                 serverThread.start();
             } else {
-                serverStatus = new ServerStatus(true);
+                serverStatus = new ServerStatus(serverId, 0, true);
             }
             TikaResource.init(tika, digester, inputStreamFactory, 
serverStatus);
             JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
diff --git 
a/tika-server/src/main/java/org/apache/tika/server/TikaServerWatchDog.java 
b/tika-server/src/main/java/org/apache/tika/server/TikaServerWatchDog.java
index 1358f37..91ce2a1 100644
--- a/tika-server/src/main/java/org/apache/tika/server/TikaServerWatchDog.java
+++ b/tika-server/src/main/java/org/apache/tika/server/TikaServerWatchDog.java
@@ -43,6 +43,7 @@ import java.time.Duration;
 import java.time.Instant;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 import static java.nio.file.StandardOpenOption.READ;
@@ -66,23 +67,24 @@ public class TikaServerWatchDog {
 
 
     public void execute(String[] args, ServerTimeouts serverTimeouts) throws 
Exception {
+        args = addIdIfMissing(args);
         LOG.info("server watch dog is starting up");
         startPingTimer(serverTimeouts);
         try {
-            childProcess = new ChildProcess(args, serverTimeouts);
-            setChildStatus(CHILD_STATUS.RUNNING);
             int restarts = 0;
+            childProcess = new ChildProcess(args, restarts, serverTimeouts);
+            setChildStatus(CHILD_STATUS.RUNNING);
             while (true) {
                 if (!childProcess.ping()) {
                     LOG.debug("bad ping, initializing");
+                    restarts++;
                     setChildStatus(CHILD_STATUS.INITIALIZING);
                     lastPing = null;
                     childProcess.close();
                     LOG.debug("About to restart the child process");
-                    childProcess = new ChildProcess(args, serverTimeouts);
+                    childProcess = new ChildProcess(args, restarts, 
serverTimeouts);
                     LOG.info("Successfully restarted child process -- {} 
restarts so far)", restarts);
                     setChildStatus(CHILD_STATUS.RUNNING);
-                    restarts++;
                     if (serverTimeouts.getMaxRestarts() > -1 && restarts >= 
serverTimeouts.getMaxRestarts()) {
                         LOG.warn("hit max restarts: "+restarts+". Stopping 
now");
                         break;
@@ -102,6 +104,21 @@ public class TikaServerWatchDog {
         }
     }
 
+    private String[] addIdIfMissing(String[] args) {
+        for (String arg : args) {
+            //id is already specified, leave the array as is
+            if (arg.equals("-i") || arg.equals("--id")) {
+                return args;
+            }
+        }
+
+        String[] newArgs = new String[args.length+2];
+        System.arraycopy(args, 0, newArgs, 0, args.length);
+        newArgs[args.length] = "--id";
+        newArgs[args.length+1] = UUID.randomUUID().toString();
+        return newArgs;
+    }
+
     private void startPingTimer(ServerTimeouts serverTimeouts) {
         //if the child thread is in stop-the-world mode, and isn't
         //reading the ping, this thread checks to make sure
@@ -222,7 +239,7 @@ public class TikaServerWatchDog {
         private final Path childStatusFile;
         private final ByteBuffer statusBuffer = ByteBuffer.allocate(16);
 
-        private ChildProcess(String[] args, ServerTimeouts serverTimeouts) 
throws Exception {
+        private ChildProcess(String[] args, int numRestarts, ServerTimeouts 
serverTimeouts) throws Exception {
             String prefix = DEFAULT_CHILD_STATUS_FILE_PREFIX;
             for (int i = 0; i < args.length; i++) {
                 if (args[i].equals("-tmpFilePrefix")) {
@@ -232,7 +249,7 @@ public class TikaServerWatchDog {
 
             this.childStatusFile = Files.createTempFile(prefix, "");
             this.serverTimeouts = serverTimeouts;
-            this.process = startProcess(args, childStatusFile);
+            this.process = startProcess(args, numRestarts, childStatusFile);
 
             //wait for file to be written/initialized by child process
             Instant start = Instant.now();
@@ -368,7 +385,7 @@ public class TikaServerWatchDog {
 
         }
 
-        private Process startProcess(String[] args, Path childStatusFile) 
throws IOException {
+        private Process startProcess(String[] args, int numRestarts, Path 
childStatusFile) throws IOException {
 
             ProcessBuilder builder = new ProcessBuilder();
             builder.redirectError(ProcessBuilder.Redirect.INHERIT);
@@ -391,7 +408,9 @@ public class TikaServerWatchDog {
             argList.add("org.apache.tika.server.TikaServerCli");
             argList.addAll(childArgs);
             argList.add("-child");
-            LOG.debug("child process commandline: " +argList.toString());
+            argList.add("--numRestarts");
+            argList.add(Integer.toString(numRestarts));
+            LOG.info("child process commandline: " +argList.toString());
             builder.command(argList);
             Process process = builder.start();
             //redirect stdout to parent stderr to avoid error msgs
diff --git 
a/tika-server/src/main/java/org/apache/tika/server/resource/TikaServerStatus.java
 
b/tika-server/src/main/java/org/apache/tika/server/resource/TikaServerStatus.java
index 2e55221..fbbf382 100644
--- 
a/tika-server/src/main/java/org/apache/tika/server/resource/TikaServerStatus.java
+++ 
b/tika-server/src/main/java/org/apache/tika/server/resource/TikaServerStatus.java
@@ -36,9 +36,11 @@ public class TikaServerStatus {
     @Produces("application/json")
     public Map<String, Object> getStatus() {
         Map<String, Object> map = new LinkedHashMap<>();
+        map.put("server_id", serverStatus.getServerId());
         map.put("status", serverStatus.getStatus());
         map.put("millis_since_last_parse_started", 
serverStatus.getMillisSinceLastParseStarted());
         map.put("files_processed", serverStatus.getFilesProcessed());
+        map.put("num_restarts", serverStatus.getNumRestarts());
         return map;
     }
 }
diff --git a/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java 
b/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java
index 8b5f153..ada3ce7 100644
--- a/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java
+++ b/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java
@@ -94,7 +94,7 @@ public abstract class CXFTestBase {
         this.tika = new TikaConfig(getTikaConfigInputStream());
         TikaResource.init(tika,
                 new CommonsDigester(DIGESTER_READ_LIMIT, "md5,sha1:32"),
-                new DefaultInputStreamFactory(), new ServerStatus(true));
+                new DefaultInputStreamFactory(), new ServerStatus("", 0,true));
         JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
         //set compression interceptors
         sf.setOutInterceptors(
@@ -142,7 +142,7 @@ public abstract class CXFTestBase {
         server.destroy();
     }
 
-    protected String getStringFromInputStream(InputStream in) throws Exception 
{
+    static String getStringFromInputStream(InputStream in) throws Exception {
         return IOUtils.toString(in, UTF_8);
     }
 
diff --git 
a/tika-server/src/test/java/org/apache/tika/server/DetectorResourceTest.java 
b/tika-server/src/test/java/org/apache/tika/server/DetectorResourceTest.java
index 5b1e7b7..a5ed5b3 100644
--- a/tika-server/src/test/java/org/apache/tika/server/DetectorResourceTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/DetectorResourceTest.java
@@ -45,7 +45,7 @@ public class DetectorResourceTest extends CXFTestBase {
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         sf.setResourceClasses(DetectorResource.class);
         sf.setResourceProvider(DetectorResource.class,
-                new SingletonResourceProvider(new DetectorResource(new 
ServerStatus())));
+                new SingletonResourceProvider(new DetectorResource(new 
ServerStatus("", 0))));
 
     }
 
diff --git 
a/tika-server/src/test/java/org/apache/tika/server/ServerStatusTest.java 
b/tika-server/src/test/java/org/apache/tika/server/ServerStatusTest.java
index 39d1583..0ad8f26 100644
--- a/tika-server/src/test/java/org/apache/tika/server/ServerStatusTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/ServerStatusTest.java
@@ -33,7 +33,7 @@ public class ServerStatusTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void testBadId() throws Exception {
-        ServerStatus status = new ServerStatus();
+        ServerStatus status = new ServerStatus("", 0);
         status.complete(2);
     }
 
@@ -44,7 +44,7 @@ public class ServerStatusTest {
         int filesToProcess = 20;
         ExecutorService service = Executors.newFixedThreadPool(numThreads);
         ExecutorCompletionService<Integer> completionService = new 
ExecutorCompletionService<>(service);
-        ServerStatus serverStatus = new ServerStatus();
+        ServerStatus serverStatus = new ServerStatus("", 0);
         for (int i = 0; i < numThreads; i++) {
             completionService.submit(new MockTask(serverStatus, 
filesToProcess));
         }
diff --git 
a/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java 
b/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
index 5e0bf63..58ca94f 100644
--- a/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
@@ -66,7 +66,7 @@ public class StackTraceOffTest extends CXFTestBase {
         List<ResourceProvider> rCoreProviders = new 
ArrayList<ResourceProvider>();
         rCoreProviders.add(new SingletonResourceProvider(new 
MetadataResource()));
         rCoreProviders.add(new SingletonResourceProvider(new 
RecursiveMetadataResource()));
-        rCoreProviders.add(new SingletonResourceProvider(new 
DetectorResource(new ServerStatus())));
+        rCoreProviders.add(new SingletonResourceProvider(new 
DetectorResource(new ServerStatus("", 0))));
         rCoreProviders.add(new SingletonResourceProvider(new TikaResource()));
         rCoreProviders.add(new SingletonResourceProvider(new 
UnpackerResource()));
         sf.setResourceProviders(rCoreProviders);
diff --git 
a/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java 
b/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
index f32d991..5115fd0 100644
--- a/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
@@ -60,7 +60,7 @@ public class StackTraceTest extends CXFTestBase {
         List<ResourceProvider> rCoreProviders = new 
ArrayList<ResourceProvider>();
         rCoreProviders.add(new SingletonResourceProvider(new 
MetadataResource()));
         rCoreProviders.add(new SingletonResourceProvider(new 
RecursiveMetadataResource()));
-        rCoreProviders.add(new SingletonResourceProvider(new 
DetectorResource(new ServerStatus())));
+        rCoreProviders.add(new SingletonResourceProvider(new 
DetectorResource(new ServerStatus("", 0))));
         rCoreProviders.add(new SingletonResourceProvider(new TikaResource()));
         rCoreProviders.add(new SingletonResourceProvider(new 
UnpackerResource()));
         sf.setResourceProviders(rCoreProviders);
diff --git 
a/tika-server/src/test/java/org/apache/tika/server/TikaServerIntegrationTest.java
 
b/tika-server/src/test/java/org/apache/tika/server/TikaServerIntegrationTest.java
index c36ab90..abce3cf 100644
--- 
a/tika-server/src/test/java/org/apache/tika/server/TikaServerIntegrationTest.java
+++ 
b/tika-server/src/test/java/org/apache/tika/server/TikaServerIntegrationTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.tika.server;
 
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.tika.TikaTest;
@@ -61,6 +63,7 @@ public class TikaServerIntegrationTest extends TikaTest {
     private static final String TEST_STDOUT_STDERR = "mock/testStdOutErr.xml";
     private static final String TEST_STATIC_STDOUT_STDERR = 
"mock/testStaticStdOutErr.xml";
     private static final String META_PATH = "/rmeta";
+    private static final String STATUS_PATH = "/status";
 
     private static final long MAX_WAIT_MS = 60000;
 
@@ -184,6 +187,112 @@ public class TikaServerIntegrationTest extends TikaTest {
     }
 
     @Test
+    public void testSameServerIdAfterOOM() throws Exception {
+
+        Thread serverThread = new Thread() {
+            @Override
+            public void run() {
+                TikaServerCli.main(
+                        new String[]{
+                                "-spawnChild", "-JXmx256m",
+                                "-p", INTEGRATION_TEST_PORT,
+                                "-pingPulseMillis", "100",
+                                "--status",
+                                "-tmpFilePrefix", "tika-server-oom"
+
+                        });
+            }
+        };
+        serverThread.start();
+        awaitServerStartup();
+        String serverId = getServerId();
+        Response response = null;
+        try {
+            response = WebClient
+                    .create(endPoint + META_PATH)
+                    .accept("application/json")
+                    .put(ClassLoader
+                            .getSystemResourceAsStream(TEST_OOM));
+        } catch (Exception e) {
+            //oom may or may not cause an exception depending
+            //on the timing
+        }
+        //give some time for the server to crash/kill itself
+        Thread.sleep(2000);
+        try {
+            testBaseline();
+            assertEquals(serverId, getServerId());
+            assertEquals(1, getNumRestarts());
+        } finally {
+            serverThread.interrupt();
+        }
+    }
+
+    @Test
+    public void testSameDeclaredServerIdAfterOOM() throws Exception {
+        String serverId = "qwertyuiop";
+        Thread serverThread = new Thread() {
+            @Override
+            public void run() {
+                TikaServerCli.main(
+                        new String[]{
+                                "-spawnChild", "-JXmx256m",
+                                "-p", INTEGRATION_TEST_PORT,
+                                "-pingPulseMillis", "100",
+                                "--status",
+                                "--id",
+                                serverId,
+                                "-tmpFilePrefix", "tika-server-oom"
+
+                        });
+            }
+        };
+        serverThread.start();
+        awaitServerStartup();
+        Response response = null;
+        try {
+            response = WebClient
+                    .create(endPoint + META_PATH)
+                    .accept("application/json")
+                    .put(ClassLoader
+                            .getSystemResourceAsStream(TEST_OOM));
+        } catch (Exception e) {
+            //oom may or may not cause an exception depending
+            //on the timing
+        }
+        //give some time for the server to crash/kill itself
+        Thread.sleep(2000);
+        try {
+            testBaseline();
+            assertEquals(serverId, getServerId());
+        } finally {
+            serverThread.interrupt();
+        }
+    }
+
+    private String getServerId() throws Exception {
+        Response response = WebClient
+                    .create(endPoint + STATUS_PATH)
+                    .accept("application/json")
+                    .get();
+        String jsonString =
+                CXFTestBase.getStringFromInputStream((InputStream) 
response.getEntity());
+        JsonObject root = JsonParser.parseString(jsonString).getAsJsonObject();
+        return root.get("server_id").getAsJsonPrimitive().getAsString();
+    }
+
+    private int getNumRestarts() throws Exception {
+        Response response = WebClient
+                .create(endPoint + STATUS_PATH)
+                .accept("application/json")
+                .get();
+        String jsonString =
+                CXFTestBase.getStringFromInputStream((InputStream) 
response.getEntity());
+        JsonObject root = JsonParser.parseString(jsonString).getAsJsonObject();
+        return root.get("num_restarts").getAsJsonPrimitive().getAsInt();
+    }
+
+    @Test
     public void testSystemExit() throws Exception {
 
         Thread serverThread = new Thread() {
diff --git 
a/tika-server/src/test/java/org/apache/tika/server/TikaServerStatusTest.java 
b/tika-server/src/test/java/org/apache/tika/server/TikaServerStatusTest.java
index 28e62e7..f6a9af8 100644
--- a/tika-server/src/test/java/org/apache/tika/server/TikaServerStatusTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/TikaServerStatusTest.java
@@ -17,6 +17,7 @@ import javax.ws.rs.core.Response;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -24,12 +25,12 @@ import static org.junit.Assert.assertTrue;
 public class TikaServerStatusTest extends CXFTestBase {
 
     private final static String STATUS_PATH = "/status";
-
+    private final static String SERVER_ID = UUID.randomUUID().toString();
     @Override
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         sf.setResourceClasses(TikaServerStatus.class);
         sf.setResourceProvider(TikaServerStatus.class,
-                new SingletonResourceProvider(new TikaServerStatus(new 
ServerStatus())));
+                new SingletonResourceProvider(new TikaServerStatus(new 
ServerStatus(SERVER_ID, 0))));
     }
 
     @Override
@@ -45,6 +46,7 @@ public class TikaServerStatusTest extends CXFTestBase {
         String jsonString =
                 getStringFromInputStream((InputStream) response.getEntity());
         JsonObject root = JsonParser.parseString(jsonString).getAsJsonObject();
+        assertTrue(root.has("server_id"));
         assertTrue(root.has("status"));
         assertTrue(root.has("millis_since_last_parse_started"));
         assertTrue(root.has("files_processed"));
@@ -52,5 +54,6 @@ public class TikaServerStatusTest extends CXFTestBase {
         assertEquals(0, root.getAsJsonPrimitive("files_processed").getAsInt());
         long millis = 
root.getAsJsonPrimitive("millis_since_last_parse_started").getAsInt();
         assertTrue(millis > 0 && millis < 360000);
+        assertEquals(SERVER_ID, 
root.getAsJsonPrimitive("server_id").getAsString());
     }
 }
diff --git 
a/tika-server/src/test/java/org/apache/tika/server/TikaWelcomeTest.java 
b/tika-server/src/test/java/org/apache/tika/server/TikaWelcomeTest.java
index a52a79a..f0f3dac 100644
--- a/tika-server/src/test/java/org/apache/tika/server/TikaWelcomeTest.java
+++ b/tika-server/src/test/java/org/apache/tika/server/TikaWelcomeTest.java
@@ -45,7 +45,7 @@ public class TikaWelcomeTest extends CXFTestBase {
         List<ResourceProvider> rpsCore =
            new ArrayList<ResourceProvider>();
        rpsCore.add(new SingletonResourceProvider(new TikaVersion()));
-       rpsCore.add(new SingletonResourceProvider(new DetectorResource(new 
ServerStatus())));
+       rpsCore.add(new SingletonResourceProvider(new DetectorResource(new 
ServerStatus("", 0))));
        rpsCore.add(new SingletonResourceProvider(new MetadataResource()));
         List<ResourceProvider> all = new ArrayList<ResourceProvider>(rpsCore);
         all.add(new SingletonResourceProvider(new TikaWelcome(rpsCore)));
diff --git 
a/tika-server/src/test/java/org/apache/tika/server/TranslateResourceTest.java 
b/tika-server/src/test/java/org/apache/tika/server/TranslateResourceTest.java
index c52db65..501dcdd 100644
--- 
a/tika-server/src/test/java/org/apache/tika/server/TranslateResourceTest.java
+++ 
b/tika-server/src/test/java/org/apache/tika/server/TranslateResourceTest.java
@@ -47,7 +47,7 @@ public class TranslateResourceTest extends CXFTestBase {
        protected void setUpResources(JAXRSServerFactoryBean sf) {
                sf.setResourceClasses(TranslateResource.class);
                sf.setResourceProvider(TranslateResource.class,
-                               new SingletonResourceProvider(new 
TranslateResource(new ServerStatus())));
+                               new SingletonResourceProvider(new 
TranslateResource(new ServerStatus("", 0))));
 
        }
 

Reply via email to