Update dependencies and build container.

This commit is contained in:
Mark Nellemann 2022-12-06 10:15:23 +01:00
parent cf377adecd
commit 3e21ea395e
6 changed files with 94 additions and 97 deletions

View file

@ -12,14 +12,14 @@ repositories {
} }
dependencies { dependencies {
annotationProcessor 'info.picocli:picocli-codegen:4.6.3' annotationProcessor 'info.picocli:picocli-codegen:4.7.0'
implementation 'info.picocli:picocli:4.6.3' implementation 'info.picocli:picocli:4.7.0'
implementation 'org.slf4j:slf4j-api:2.0.3' implementation 'org.slf4j:slf4j-api:2.0.5'
implementation 'org.slf4j:slf4j-simple:2.0.3' implementation 'org.slf4j:slf4j-simple:2.0.5'
testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0' testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0'
testImplementation 'org.slf4j:slf4j-api:2.0.3' testImplementation 'org.slf4j:slf4j-api:2.0.5'
testRuntimeOnly 'org.slf4j:slf4j-simple:2.0.3' testRuntimeOnly 'org.slf4j:slf4j-simple:2.0.5'
} }
application { application {

View file

@ -1,3 +1,3 @@
id = syslogd id = syslogd
group = biz.nellemann.syslogd group = biz.nellemann.syslogd
version = 1.2.7 version = 1.2.8

View file

@ -168,8 +168,7 @@ public class Application implements Callable<Integer>, LogReceiveListener {
private InetSocketAddress getInetSocketAddress(URI input) { private InetSocketAddress getInetSocketAddress(URI input) {
InetSocketAddress inetSocketAddress = new InetSocketAddress(input.getHost(), input.getPort()); return new InetSocketAddress(input.getHost(), input.getPort());
return inetSocketAddress;
} }

View file

@ -133,7 +133,7 @@ public class SyslogPrinter {
sb.append(String.format(" \"level\": \"%s\",", msg.severity)); sb.append(String.format(" \"level\": \"%s\",", msg.severity));
sb.append(String.format(" \"application\": \"%s\"", msg.application)); sb.append(String.format(" \"application\": \"%s\"", msg.application));
sb.append("}, \"values\": [ "); sb.append("}, \"values\": [ ");
sb.append(String.format("[ \"%d\", \"%s\" ]", msg.timestamp.getEpochSecond() * 1000000000l, getMessageLine(msg))); sb.append(String.format("[ \"%d\", \"%s\" ]", msg.timestamp.getEpochSecond() * 1000000000L, getMessageLine(msg)));
sb.append(" ] } ] }"); sb.append(" ] } ] }");
log.debug(sb.toString()); log.debug(sb.toString());
return sb.toString(); return sb.toString();

View file

@ -29,8 +29,8 @@ public class UdpClient implements LogForwardListener {
private final static Logger log = LoggerFactory.getLogger(UdpClient.class); private final static Logger log = LoggerFactory.getLogger(UdpClient.class);
private InetSocketAddress inetSocketAddress; private final InetSocketAddress inetSocketAddress;
private DatagramSocket socket; private final DatagramSocket socket;
public UdpClient(InetSocketAddress inetSocketAddress) throws SocketException { public UdpClient(InetSocketAddress inetSocketAddress) throws SocketException {
this.inetSocketAddress = inetSocketAddress; this.inetSocketAddress = inetSocketAddress;
@ -40,12 +40,10 @@ public class UdpClient implements LogForwardListener {
public void send(String msg) { public void send(String msg) {
byte[] buf = msg.getBytes(StandardCharsets.US_ASCII); byte[] buf = msg.getBytes(StandardCharsets.US_ASCII);
DatagramPacket packet = new DatagramPacket(buf, buf.length, inetSocketAddress.getAddress(), inetSocketAddress.getPort()); DatagramPacket packet = new DatagramPacket(buf, buf.length, inetSocketAddress.getAddress(), inetSocketAddress.getPort());
if(this.socket != null) { try {
try { socket.send(packet);
socket.send(packet); } catch (IOException e) {
} catch (IOException e) { log.error("send() - Could not send packet: " + e.getMessage());
log.error("send() - Could not send packet: " + e.getMessage());
}
} }
} }

View file

@ -6,92 +6,92 @@ package biz.nellemann.syslogd.parser;
public class JsonUtil { public class JsonUtil {
public static String encode(String input) { public static String encode(String input) {
StringBuilder output = new StringBuilder(); StringBuilder output = new StringBuilder();
for(int i=0; i<input.length(); i++) { for (int i = 0; i < input.length(); i++) {
char ch = input.charAt(i); char ch = input.charAt(i);
int chx = (int) ch;
// let's not put any nulls in our strings // let's not put any nulls in our strings
if(chx == 0) { if ((int) ch == 0) {
continue; continue;
}
if(ch == '\n') {
output.append("\\n");
} else if(ch == '\t') {
output.append("\\t");
} else if(ch == '\r') {
output.append("\\r");
} else if(ch == '\\') {
output.append("\\\\");
} else if(ch == '"') {
output.append("\\\"");
} else if(ch == '\b') {
output.append("\\b");
} else if(ch == '\f') {
output.append("\\f");
} else if(chx > 127) {
output.append(String.format("\\u%04x", chx));
} else {
output.append(ch);
}
}
return output.toString();
}
public static String decode(String input) {
StringBuilder builder = new StringBuilder();
int i = 0;
while (i < input.length()) {
char delimiter = input.charAt(i); i++; // consume letter or backslash
if(delimiter == '\\' && i < input.length()) {
// consume first after backslash
char ch = input.charAt(i); i++;
if(ch == '\\' || ch == '/' || ch == '"' || ch == '\'') {
builder.append(ch);
}
else if(ch == 'n') builder.append('\n');
else if(ch == 'r') builder.append('\r');
else if(ch == 't') builder.append('\t');
else if(ch == 'b') builder.append('\b');
else if(ch == 'f') builder.append('\f');
else if(ch == 'u') {
StringBuilder hex = new StringBuilder();
// expect 4 digits
if (i+4 > input.length()) {
throw new RuntimeException("Not enough unicode digits! ");
}
for (char x : input.substring(i, i + 4).toCharArray()) {
if(!Character.isLetterOrDigit(x)) {
throw new RuntimeException("Bad character in unicode escape.");
} }
hex.append(Character.toLowerCase(x));
}
i+=4; // consume those four digits.
int code = Integer.parseInt(hex.toString(), 16); if (ch == '\n') {
builder.append((char) code); output.append("\\n");
} else { } else if (ch == '\t') {
throw new RuntimeException("Illegal escape sequence: \\"+ch); output.append("\\t");
} else if (ch == '\r') {
output.append("\\r");
} else if (ch == '\\') {
output.append("\\\\");
} else if (ch == '"') {
output.append("\\\"");
} else if (ch == '\b') {
output.append("\\b");
} else if (ch == '\f') {
output.append("\\f");
} else if ((int) ch > 127) {
output.append(String.format("\\u%04x", (int) ch));
} else {
output.append(ch);
}
} }
} else { // it's not a backslash, or it's the last character.
builder.append(delimiter); return output.toString();
}
} }
return builder.toString();
} public static String decode(String input) {
StringBuilder builder = new StringBuilder();
int i = 0;
while (i < input.length()) {
char delimiter = input.charAt(i);
i++; // consume letter or backslash
if (delimiter == '\\' && i < input.length()) {
// consume first after backslash
char ch = input.charAt(i);
i++;
if (ch == '\\' || ch == '/' || ch == '"' || ch == '\'') {
builder.append(ch);
} else if (ch == 'n') builder.append('\n');
else if (ch == 'r') builder.append('\r');
else if (ch == 't') builder.append('\t');
else if (ch == 'b') builder.append('\b');
else if (ch == 'f') builder.append('\f');
else if (ch == 'u') {
StringBuilder hex = new StringBuilder();
// expect 4 digits
if (i + 4 > input.length()) {
throw new RuntimeException("Not enough unicode digits! ");
}
for (char x : input.substring(i, i + 4).toCharArray()) {
if (!Character.isLetterOrDigit(x)) {
throw new RuntimeException("Bad character in unicode escape.");
}
hex.append(Character.toLowerCase(x));
}
i += 4; // consume those four digits.
int code = Integer.parseInt(hex.toString(), 16);
builder.append((char) code);
} else {
throw new RuntimeException("Illegal escape sequence: \\" + ch);
}
} else { // it's not a backslash, or it's the last character.
builder.append(delimiter);
}
}
return builder.toString();
}
} }