You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2018/07/12 19:41:49 UTC
svn commit: r1835771 -
/uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/sd/task/transport/HttpTaskTransportHandler.java
Author: cwiklik
Date: Thu Jul 12 19:41:49 2018
New Revision: 1835771
URL: http://svn.apache.org/viewvc?rev=1835771&view=rev
Log:
UIMA-5817 modified to use ephemeral port for jetty
Modified:
uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/sd/task/transport/HttpTaskTransportHandler.java
Modified: uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/sd/task/transport/HttpTaskTransportHandler.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/sd/task/transport/HttpTaskTransportHandler.java?rev=1835771&r1=1835770&r2=1835771&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/sd/task/transport/HttpTaskTransportHandler.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/sd/task/transport/HttpTaskTransportHandler.java Thu Jul 12 19:41:49 2018
@@ -21,6 +21,7 @@ package org.apache.uima.ducc.ps.sd.task.
import java.io.BufferedReader;
import java.io.IOException;
+import java.net.ServerSocket;
import java.util.Properties;
import javax.servlet.ServletException;
@@ -119,12 +120,33 @@ public class HttpTaskTransportHandler im
return server;
}
+ public int findFreePort() {
+ ServerSocket socket = null;
+ int port = 0;
+ try {
+ // by passing 0 as an arg, let ServerSocket choose an arbitrary
+ // port that is available.
+ socket = new ServerSocket(0);
+ port = socket.getLocalPort();
+ } catch (IOException e) {
+ } finally {
+ try {
+ // Clean up
+ if (socket != null) {
+ socket.close();
+ }
+ } catch( Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ return port;
+ }
@Override
public String initialize(Properties properties) throws TaskTransportException {
// TODO Auto-generated method stub
// Max cores
int cores = Runtime.getRuntime().availableProcessors();
- String portString = (String) properties.get(ServiceDriver.Port);
+// String portString = (String) properties.get(ServiceDriver.Port);
String maxThreadsString = (String) properties.get(ServiceDriver.MaxThreads);
String appName = (String) properties.get(ServiceDriver.Application);
@@ -142,14 +164,16 @@ public class HttpTaskTransportHandler im
// "Invalid value for jetty MaxThreads("+threadPool.getMaxThreads()+") - it should be greater or equal to "+cores+". Defaulting to Number of CPU Cores="+cores);
maxThreads = cores;
}
- if (portString != null) {
- try {
- httpPort = Integer.parseInt(portString.trim());
- } catch (NumberFormatException e) {
- logger.log(Level.WARNING,"Error",e);
- throw new TaskTransportException("Unable to start Server using provided port:"+httpPort);
- }
- }
+// if (portString != null) {
+// try {
+// httpPort = Integer.parseInt(portString.trim());
+// } catch (NumberFormatException e) {
+// logger.log(Level.WARNING,"Error",e);
+// throw new TaskTransportException("Unable to start Server using provided port:"+httpPort);
+// }
+// }
+ // get ephemeral port for Jetty
+ httpPort = findFreePort();
if (appName == null) {
appName = "test";
logger.log(Level.WARNING, "The "+ServiceDriver.Application+" property is not specified - using "+appName);
@@ -167,7 +191,7 @@ public class HttpTaskTransportHandler im
taskUrl = taskUrl.substring(0, taskUrl.length() - 1);
}
taskUrl += ":" + httpPort + "/" + appName;
- logger.log(Level.INFO, "Service Driver URL: " + taskUrl); // e.g. http://localhost:8888/test");
+ logger.log(Level.INFO, "Service Driver URL: " + taskUrl);
return taskUrl;
}