summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/pom.xml25
-rw-r--r--api/src/main/java/org/openslx/taskmanager/api/AbstractTask.java7
-rw-r--r--api/src/main/java/org/openslx/taskmanager/api/Environment.java (renamed from daemon/src/main/java/org/openslx/taskmanager/Environment.java)52
-rw-r--r--api/src/main/java/org/openslx/taskmanager/api/SystemCommandTask.java41
-rw-r--r--daemon/pom.xml78
-rw-r--r--daemon/src/main/java/org/openslx/taskmanager/App.java26
-rw-r--r--daemon/src/main/java/org/openslx/taskmanager/Global.java5
-rw-r--r--daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java17
-rw-r--r--daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerTcp.java40
-rw-r--r--daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerUdp.java5
-rw-r--r--daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java5
-rw-r--r--daemon/src/main/properties/log4j2.properties21
-rw-r--r--daemon/src/test/java/org/openslx/taskmanager/AppTest.java38
-rwxr-xr-xextra/tmcli25
-rw-r--r--pom.xml20
15 files changed, 251 insertions, 154 deletions
diff --git a/api/pom.xml b/api/pom.xml
index 48a9beb..272f144 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -6,7 +6,7 @@
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>taskmanager-api</name>
- <url>http://maven.apache.org</url>
+ <url>https://git.openslx.org/openslx-ng/taskman-lite.git</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -17,13 +17,16 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.1</version>
+ <version>3.8.1</version>
<configuration>
- <source>1.7</source>
- <target>1.7</target>
+ <source>1.8</source>
+ <target>1.8</target>
+ <release>8</release>
+ <compilerArgument>-Xlint:all</compilerArgument>
</configuration>
</plugin>
<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
@@ -44,21 +47,21 @@
<dependencies>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.17</version>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>[2.17,2.9999]</version>
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.7.5</version>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>[2.17,2.9999]</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
- <version>2.2.4</version>
+ <version>[2.0,2.9999]</version>
<scope>compile</scope>
</dependency>
</dependencies>
diff --git a/api/src/main/java/org/openslx/taskmanager/api/AbstractTask.java b/api/src/main/java/org/openslx/taskmanager/api/AbstractTask.java
index 18cbe76..43240ce 100644
--- a/api/src/main/java/org/openslx/taskmanager/api/AbstractTask.java
+++ b/api/src/main/java/org/openslx/taskmanager/api/AbstractTask.java
@@ -2,7 +2,8 @@ package org.openslx.taskmanager.api;
import java.util.UUID;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.openslx.taskmanager.api.TaskStatus.StatusCode;
import com.google.gson.annotations.Expose;
@@ -11,7 +12,7 @@ public abstract class AbstractTask implements Runnable
{
private static final long RELEASE_DELAY = 10l * 60l * 1000l;
- private static final Logger LOG = Logger.getLogger( AbstractTask.class );
+ private static final Logger LOG = LogManager.getLogger( AbstractTask.class );
/*
* To be set from task invocation (json data)
@@ -199,7 +200,7 @@ public abstract class AbstractTask implements Runnable
this.status.statusCode = StatusCode.PARENT_FAILED;
LOG.debug( "Parent " + this.parentTask + " of " + this.id + " failed." );
}
- this.parentTask = null;
+ this.parent = null;
break;
default:
break;
diff --git a/daemon/src/main/java/org/openslx/taskmanager/Environment.java b/api/src/main/java/org/openslx/taskmanager/api/Environment.java
index acbfad4..e5705db 100644
--- a/daemon/src/main/java/org/openslx/taskmanager/Environment.java
+++ b/api/src/main/java/org/openslx/taskmanager/api/Environment.java
@@ -1,13 +1,16 @@
-package org.openslx.taskmanager;
+package org.openslx.taskmanager.api;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.Map.Entry;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* Holds the environment that tasks running a system command *should*
@@ -16,28 +19,40 @@ import org.apache.log4j.Logger;
public class Environment
{
- private static final Logger log = Logger.getLogger( Environment.class );
+ private static final Logger log = LogManager.getLogger( Environment.class );
- private static Map<String, String> env = new LinkedHashMap<>();
+ private static Map<String, String> env = null;
public static boolean load( String fileName )
{
+ if ( env != null )
+ throw new RuntimeException( "Already loaded" );
try {
+ Pattern regex = Pattern.compile( "^([a-zA-Z0-9_]+)(|=.*)$" );
FileReader fileReader = new FileReader( fileName );
BufferedReader bufferedReader = new BufferedReader( fileReader );
Map<String, String> env = new LinkedHashMap<>();
String line = null;
while ( ( line = bufferedReader.readLine() ) != null ) {
- if ( !line.matches( "^[a-zA-Z0-9_]+=" ) )
+ Matcher m = regex.matcher( line );
+ if ( !m.matches() )
continue;
- String[] part = line.split( "=", 2 );
- env.put( part[0], part[1] );
+ String name = m.group( 1 );
+ String value = m.group( 2 );
+ if ( value.isEmpty() ) {
+ value = System.getenv( name );
+ } else {
+ value = value.substring( 1 );
+ }
+ if ( value != null ) {
+ env.put( name, value );
+ }
}
bufferedReader.close();
- Environment.env = env;
+ Environment.env = Collections.unmodifiableMap( env );
log.info( "Loaded " + env.size() + " environment lines." );
} catch ( IOException e ) {
log.info( "Could not load environment definition from " + fileName + ". Processes might use the same environment as this thread." );
@@ -45,23 +60,10 @@ public class Environment
}
return true;
}
-
- public static void set( Map<String, String> environment )
+
+ public static Map<String, String> get()
{
- environment.clear();
- environment.putAll( env );
- }
-
- public static String[] get()
- {
- // Get reference to env so it doesn't change while in this function (load() from other thread)
- Map<String, String> env = Environment.env;
- String ret[] = new String[ env.size() ];
- int i = 0;
- for ( Entry<String, String> it : env.entrySet() ) {
- ret[i++] = it.getKey() + "=" + it.getValue();
- }
- return ret;
+ return env;
}
}
diff --git a/api/src/main/java/org/openslx/taskmanager/api/SystemCommandTask.java b/api/src/main/java/org/openslx/taskmanager/api/SystemCommandTask.java
index 18c8ecc..4754dca 100644
--- a/api/src/main/java/org/openslx/taskmanager/api/SystemCommandTask.java
+++ b/api/src/main/java/org/openslx/taskmanager/api/SystemCommandTask.java
@@ -7,13 +7,15 @@ import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
public abstract class SystemCommandTask extends AbstractTask
{
- private static final Logger log = Logger.getLogger( SystemCommandTask.class );
+ private static final Logger log = LogManager.getLogger( SystemCommandTask.class );
private String[] command = null;
@@ -39,8 +41,8 @@ public abstract class SystemCommandTask extends AbstractTask
if ( command == null || command.length == 0 ) {
return processEnded( -1 );
}
- for (String a : command) {
- if (a == null) {
+ for ( String a : command ) {
+ if ( a == null ) {
log.warn( "An argument from initCommandLine is null: " + Arrays.toString( command ) );
return processEnded( -5 );
}
@@ -48,7 +50,12 @@ public abstract class SystemCommandTask extends AbstractTask
ProcessBuilder pb = new ProcessBuilder( command );
pb.directory( new File( "/" ) );
- initEnvironment( pb.environment() );
+ Map<String, String> env = pb.environment();
+ if ( Environment.get() != null ) {
+ env.clear();
+ env.putAll( Environment.get() );
+ }
+ initEnvironment( env );
try {
@@ -104,23 +111,15 @@ public abstract class SystemCommandTask extends AbstractTask
// Wait for everything
int retval = 124; // Default to 124, which is what the timeout util does
- if ( this.timeoutSeconds <= 0 ) {
- retval = process.waitFor();
- } else {
- int togo = timeoutSeconds * 10;
- while ( togo-- > 0 ) {
- try {
+ try {
+ if ( this.timeoutSeconds <= 0 ) {
+ retval = process.waitFor();
+ } else {
+ if ( process.waitFor( this.timeoutSeconds, TimeUnit.SECONDS ) ) {
retval = process.exitValue();
- break;
- } catch ( IllegalThreadStateException e1 ) {
- // Still running....
- try {
- Thread.sleep( 100 );
- } catch ( Exception e2 ) {
- // Bummer....
- }
}
}
+ } catch ( IllegalThreadStateException e1 ) {
}
try {
stdout.join( 500 );
@@ -149,8 +148,9 @@ public abstract class SystemCommandTask extends AbstractTask
Thread.currentThread().interrupt();
return false;
} finally {
- if ( process != null )
+ if ( process != null ) {
process.destroy();
+ }
}
}
@@ -211,6 +211,7 @@ public abstract class SystemCommandTask extends AbstractTask
/**
* Override this to modify the environment of the process to be started.
+ *
* @param environment
*/
protected void initEnvironment( Map<String, String> environment )
diff --git a/daemon/pom.xml b/daemon/pom.xml
index 0d75e1a..62ae204 100644
--- a/daemon/pom.xml
+++ b/daemon/pom.xml
@@ -6,24 +6,51 @@
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>taskmanager-daemon</name>
- <url>http://maven.apache.org</url>
-
+ <url>https://git.openslx.org/openslx-ng/taskman-lite.git</url>
+ <scm>
+ <connection>scm:git:git://git.openslx.org/openslx-ng/taskman-lite.git</connection>
+ </scm>
<properties>
+ <main.class>org.openslx.taskmanager.App</main.class>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>buildnumber-maven-plugin</artifactId>
+ <version>3.0.0</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>create</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <doCheck>false</doCheck>
+ <doUpdate>false</doUpdate>
+ <timezone>UTC</timezone>
+ <timestampPropertyName>build.time</timestampPropertyName>
+ <scmBranchPropertyName>revision.branch</scmBranchPropertyName>
+ <buildNumberPropertyName>revision.version</buildNumberPropertyName>
+ </configuration>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.6.1</version>
+ <version>3.8.1</version>
<configuration>
- <source>1.7</source>
- <target>1.7</target>
+ <source>1.8</source>
+ <target>1.8</target>
+ <release>8</release>
+ <compilerArgument>-Xlint:all</compilerArgument>
</configuration>
</plugin>
<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
@@ -36,8 +63,15 @@
<configuration>
<archive>
<manifest>
- <mainClass>org.openslx.taskmanager.App</mainClass>
+ <mainClass>${main.class}</mainClass>
+ <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
+ <manifestEntries>
+ <Build-Timestamp>${build.time}</Build-Timestamp>
+ <Revision-Branch>${revision.branch}</Revision-Branch>
+ <Revision-Version>${revision.version}</Revision-Version>
+ </manifestEntries>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
@@ -45,21 +79,41 @@
</configuration>
</plugin>
</plugins>
+ <resources>
+ <resource>
+ <directory>src/main/properties</directory>
+ <includes>
+ <include>*.properties</include>
+ </includes>
+ </resource>
+ </resources>
</build>
<dependencies>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.openslx.taskmanager</groupId>
<artifactId>taskmanager-api</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>org.openslx.bwlp</groupId>
+ <artifactId>master-sync-shared</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>[2.17,2.9999]</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>[2.17,2.9999]</version>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
diff --git a/daemon/src/main/java/org/openslx/taskmanager/App.java b/daemon/src/main/java/org/openslx/taskmanager/App.java
index d64929d..ac3dc71 100644
--- a/daemon/src/main/java/org/openslx/taskmanager/App.java
+++ b/daemon/src/main/java/org/openslx/taskmanager/App.java
@@ -4,12 +4,16 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import org.apache.log4j.BasicConfigurator;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.Configurator;
+import org.apache.logging.log4j.core.config.DefaultConfiguration;
+import org.openslx.taskmanager.api.Environment;
import org.openslx.taskmanager.main.Taskmanager;
import org.openslx.taskmanager.network.NetworkHandlerTcp;
import org.openslx.taskmanager.network.NetworkHandlerUdp;
import org.openslx.taskmanager.network.RequestParser;
+import org.openslx.util.AppUtil;
/**
* Hello world!
@@ -18,11 +22,19 @@ import org.openslx.taskmanager.network.RequestParser;
public class App
{
- private static final Logger log = Logger.getLogger( App.class );
+ private static final Logger log = LogManager.getLogger( App.class );
+
+ private static final String NAME = "bwLehrpool-Taskmanager";
public static void main( String[] args ) throws InterruptedException, IOException
{
- BasicConfigurator.configure();
+ // setup basic logging appender to log output on console if no external appender (log4j.properties) is configured
+ if (org.apache.logging.log4j.core.Logger.class.cast(LogManager.getRootLogger()).getAppenders().isEmpty()) {
+ Configurator.initialize(new DefaultConfiguration());
+ }
+
+ AppUtil.logHeader(log, App.NAME, App.class.getPackage().getImplementationVersion());
+
if (Global.PORT_UDP == -1 && Global.PORT_TCP == -1) {
log.fatal( "Neither UDP nor TCP configured" );
System.exit( 1 );
@@ -36,13 +48,13 @@ public class App
NetworkHandlerTcp tcp = null;
if (Global.PORT_UDP != -1) {
udp = new NetworkHandlerUdp( Global.PORT_UDP, Global.LISTEN_ADDRESS, parser );
- threads.add( new Thread( udp ) );
+ threads.add( new Thread( udp, "UDP:" + Global.PORT_UDP ) );
}
if (Global.PORT_TCP != -1) {
tcp = new NetworkHandlerTcp( Global.PORT_TCP, Global.LISTEN_ADDRESS, parser );
- threads.add( new Thread( tcp ) );
+ threads.add( new Thread( tcp, "TCP:" + Global.PORT_TCP ) );
}
- threads.add( new Thread( tm ) );
+ threads.add( new Thread( tm, "Taskmanager" ) );
// Wait for everything
for (Thread t : threads) {
t.start();
diff --git a/daemon/src/main/java/org/openslx/taskmanager/Global.java b/daemon/src/main/java/org/openslx/taskmanager/Global.java
index 5be8196..cdba3f8 100644
--- a/daemon/src/main/java/org/openslx/taskmanager/Global.java
+++ b/daemon/src/main/java/org/openslx/taskmanager/Global.java
@@ -11,13 +11,14 @@ import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermission;
import java.util.Properties;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.openslx.taskmanager.util.Util;
public class Global
{
- private static final Logger log = Logger.getLogger( Global.class );
+ private static final Logger log = LogManager.getLogger( Global.class );
public static final String TASK_PACKAGE_NAME = "org.openslx.taskmanager.tasks";
diff --git a/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java b/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java
index 7b854c3..77d3405 100644
--- a/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java
+++ b/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java
@@ -6,10 +6,13 @@ import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.Semaphore;
+import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.openslx.taskmanager.Global;
import org.openslx.taskmanager.api.AbstractTask;
import org.openslx.taskmanager.api.CancellableTask;
@@ -24,10 +27,18 @@ import com.google.gson.JsonSyntaxException;
public class Taskmanager implements FinishCallback, Runnable
{
- private static final Logger log = Logger.getLogger( Taskmanager.class );
+ private static final Logger log = LogManager.getLogger( Taskmanager.class );
private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor( 8, 32, 1, TimeUnit.MINUTES,
- new ArrayBlockingQueue<Runnable>( 4 ) );
+ new ArrayBlockingQueue<Runnable>( 4 ), new ThreadFactory() {
+ AtomicInteger id = new AtomicInteger();
+
+ @Override
+ public Thread newThread( Runnable r )
+ {
+ return new Thread( r, "Task-" + id.incrementAndGet() );
+ }
+ } );
/**
* gson object for (de)serialization
diff --git a/daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerTcp.java b/daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerTcp.java
index 540ff42..6492f2e 100644
--- a/daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerTcp.java
+++ b/daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerTcp.java
@@ -9,10 +9,13 @@ import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.SynchronousQueue;
+import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.openslx.taskmanager.Global;
/**
@@ -22,14 +25,22 @@ import org.openslx.taskmanager.Global;
public class NetworkHandlerTcp extends NetworkHandlerBase
{
- private static final Logger log = Logger.getLogger( NetworkHandlerTcp.class );
+ private static final Logger log = LogManager.getLogger( NetworkHandlerTcp.class );
/**
* UDP socket for sending and receiving.
*/
private final ServerSocket socket;
- private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor( 1, 8, 1, TimeUnit.MINUTES, new SynchronousQueue<Runnable>() );
+ private final ThreadPoolExecutor threadPool = new ThreadPoolExecutor( 0, 64, 1, TimeUnit.MINUTES, new SynchronousQueue<Runnable>(), new ThreadFactory() {
+ AtomicInteger id = new AtomicInteger();
+
+ @Override
+ public Thread newThread( Runnable r )
+ {
+ return new Thread( r, "TCP-" + id.incrementAndGet() );
+ }
+ } );
/**
* Initialize the NetworkHandler by starting threads and opening the socket.
@@ -77,7 +88,7 @@ public class NetworkHandlerTcp extends NetworkHandlerBase
} finally {
Thread.currentThread().interrupt();
Global.doShutdown = true;
- log.info( "UDP receiver finished." );
+ log.info( "TCP receiver finished." );
}
}
@@ -86,7 +97,7 @@ public class NetworkHandlerTcp extends NetworkHandlerBase
private final Socket socket;
private DataOutputStream writer = null;
private DataInputStream reader = null;
-
+
public ClientTask( Socket client )
{
this.socket = client;
@@ -97,7 +108,6 @@ public class NetworkHandlerTcp extends NetworkHandlerBase
{
try {
try {
- socket.setSoTimeout( (int)TimeUnit.MINUTES.toMillis( 15 ) );
reader = new DataInputStream( socket.getInputStream() );
writer = new DataOutputStream( socket.getOutputStream() );
} catch ( IOException e ) {
@@ -145,7 +155,7 @@ public class NetworkHandlerTcp extends NetworkHandlerBase
}
}
}
-
+
private void sendMsg( String reply ) throws SendException
{
sendMsg( reply.getBytes( StandardCharsets.UTF_8 ) );
@@ -154,6 +164,7 @@ public class NetworkHandlerTcp extends NetworkHandlerBase
private void sendMsg( byte[] reply ) throws SendException
{
try {
+ socket.setSoTimeout( (int)TimeUnit.SECONDS.toMillis( 15 ) );
writer.writeInt( reply.length );
writer.write( reply );
} catch ( IOException e ) {
@@ -165,6 +176,7 @@ public class NetworkHandlerTcp extends NetworkHandlerBase
{
int bytes;
try {
+ socket.setSoTimeout( (int)TimeUnit.MINUTES.toMillis( 15 ) );
bytes = reader.readInt();
} catch ( IOException e ) {
// This should be fine... Client went away
@@ -178,16 +190,24 @@ public class NetworkHandlerTcp extends NetworkHandlerBase
return ""; // Nothing to read
byte[] buffer = new byte[ bytes ];
try {
+ socket.setSoTimeout( (int)TimeUnit.SECONDS.toMillis( 2 ) );
reader.readFully( buffer );
} catch ( IOException e ) {
log.warn( "Client went away when trying to read payload" );
return null;
}
return new String( buffer, StandardCharsets.UTF_8 );
- }
+ }
+
+ }
+
+ private static class SendException extends Exception
+ {
+ /**
+ * Version for serialization.
+ */
+ private static final long serialVersionUID = 7591668934699490535L;
}
-
- private static class SendException extends Exception {}
}
diff --git a/daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerUdp.java b/daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerUdp.java
index 7a25ed1..767e6a4 100644
--- a/daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerUdp.java
+++ b/daemon/src/main/java/org/openslx/taskmanager/network/NetworkHandlerUdp.java
@@ -10,7 +10,8 @@ import java.nio.charset.StandardCharsets;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.openslx.taskmanager.Global;
/**
@@ -20,7 +21,7 @@ import org.openslx.taskmanager.Global;
public class NetworkHandlerUdp extends NetworkHandlerBase
{
- private static final Logger log = Logger.getLogger( NetworkHandlerUdp.class );
+ private static final Logger log = LogManager.getLogger( NetworkHandlerUdp.class );
private Thread sendThread = null;
/**
diff --git a/daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java b/daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java
index 55a44a5..09b94ce 100644
--- a/daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java
+++ b/daemon/src/main/java/org/openslx/taskmanager/network/RequestParser.java
@@ -3,7 +3,8 @@ package org.openslx.taskmanager.network;
import java.nio.charset.StandardCharsets;
import java.util.zip.Deflater;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.openslx.taskmanager.api.BoundedLog;
import org.openslx.taskmanager.api.TaskStatus;
import org.openslx.taskmanager.main.Taskmanager;
@@ -14,7 +15,7 @@ import com.google.gson.GsonBuilder;
public class RequestParser
{
- private static final Logger log = Logger.getLogger( RequestParser.class );
+ private static final Logger log = LogManager.getLogger( RequestParser.class );
/**
* Our very own gson instance (for serializing replies)
diff --git a/daemon/src/main/properties/log4j2.properties b/daemon/src/main/properties/log4j2.properties
new file mode 100644
index 0000000..563fe8d
--- /dev/null
+++ b/daemon/src/main/properties/log4j2.properties
@@ -0,0 +1,21 @@
+status=error
+name=log4j2PropertiesConfig
+
+#
+# root level logging configuration
+#
+rootLogger.level=all
+rootLogger.appenderRefs=stdout
+rootLogger.appenderRef.stdout.ref=logToConsole
+
+#
+# configuration for console output
+#
+appenders=console
+
+appender.console.type=Console
+appender.console.name=logToConsole
+appender.console.layout.type=PatternLayout
+appender.console.layout.pattern=[%t] %-5p %F - %m%n
+appender.console.filter.threshold.type=ThresholdFilter
+appender.console.filter.threshold.level=info
diff --git a/daemon/src/test/java/org/openslx/taskmanager/AppTest.java b/daemon/src/test/java/org/openslx/taskmanager/AppTest.java
deleted file mode 100644
index feac8e7..0000000
--- a/daemon/src/test/java/org/openslx/taskmanager/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.openslx.taskmanager;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}
diff --git a/extra/tmcli b/extra/tmcli
new file mode 100755
index 0000000..981e0b1
--- /dev/null
+++ b/extra/tmcli
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+if [ "$1" = "status" ]; then
+ shift
+ while [ $# -gt 0 ]; do
+ printf "%s" "bla, status, $1" | socat -T1 - udp-datagram:127.0.0.1:9915 | cut -c 5-
+ shift
+ done
+elif [ "$1" = "exec" ]; then
+ name="$2"
+ shift 2
+ jq='{}'
+ while [ $# -gt 1 ]; do
+ jq=$( printf "%s" "$jq" | jq --arg key "${1#--}" --arg val "$2" '. += { ($key): $val }' )
+ shift 2
+ done
+ echo "Sending:"
+ echo "$jq"
+ printf "%s" "bla, $name, $jq" | socat -T1 - udp-datagram:127.0.0.1:9915 | cut -c 5-
+else
+ echo "unknown command, try status or exec"
+ exit 1
+fi
+
+
diff --git a/pom.xml b/pom.xml
index 64bafdb..1a3f77e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,30 +9,12 @@
<packaging>pom</packaging>
<name>taskmanager</name>
- <url>http://google.de/</url>
+ <url>https://git.openslx.org/openslx-ng/taskman-lite.git</url>
<modules>
<module>daemon</module>
<module>api</module>
</modules>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.6.1</version>
- <configuration>
- <source>1.7</source>
- <target>1.7</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
-
</project>