From 187a2789b26f380749cee8e59918c890b48758ca Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 15:22:25 -0300 Subject: [PATCH 01/28] Basic client server conversation --- .../dnsproxyserver/dns/server/Handler.java | 7 +++ .../dnsproxyserver/dns/server/Main.java | 12 ++++ .../dns/server/ResolveExample.java | 54 +++++++++++++++++ .../dns/server/SimpleServer.java | 34 +++++++++++ .../dnsproxyserver/dns/server/UDPServer.java | 60 +++++++++++++++++++ 5 files changed, 167 insertions(+) create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/Handler.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/ResolveExample.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Handler.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Handler.java new file mode 100644 index 000000000..0eb5f87ea --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Handler.java @@ -0,0 +1,7 @@ +package com.mageddo.dnsproxyserver.dns.server; + +import org.xbill.DNS.Message; + +public interface Handler { + Message handle(Message message); +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java new file mode 100644 index 000000000..48103b1e8 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java @@ -0,0 +1,12 @@ +package com.mageddo.dnsproxyserver.dns.server; + +import lombok.SneakyThrows; + +import java.net.Inet4Address; + +public class Main { + @SneakyThrows + public static void main(String[] args) { + SimpleServer.start(8053, SimpleServer.Protocol.BOTH, Inet4Address.getByName("localhost")); + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ResolveExample.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/ResolveExample.java new file mode 100644 index 000000000..bcbe1b904 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/ResolveExample.java @@ -0,0 +1,54 @@ +package com.mageddo.dnsproxyserver.dns.server; + +import org.xbill.DNS.DClass; +import org.xbill.DNS.Flags; +import org.xbill.DNS.Message; +import org.xbill.DNS.Name; +import org.xbill.DNS.RRset; +import org.xbill.DNS.Rcode; +import org.xbill.DNS.Record; +import org.xbill.DNS.Resolver; +import org.xbill.DNS.Section; +import org.xbill.DNS.SimpleResolver; +import org.xbill.DNS.TXTRecord; +import org.xbill.DNS.Type; +import org.xbill.DNS.dnssec.ValidatingResolver; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +public class ResolveExample { + static String ROOT = ". IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D"; + + public static void main(String[] args) throws Exception { + // Send two sample queries using a standard resolver + SimpleResolver sr = new SimpleResolver("4.2.2.1"); + System.out.println("Standard resolver:"); + sendAndPrint(sr, "www.dnssec-failed.org."); + sendAndPrint(sr, "www.isc.org."); + + // Send the same queries using the validating resolver with the + // trust anchor of the root zone + // http://data.iana.org/root-anchors/root-anchors.xml + ValidatingResolver vr = new ValidatingResolver(sr); + vr.loadTrustAnchors(new ByteArrayInputStream(ROOT.getBytes(StandardCharsets.US_ASCII))); + System.out.println("\n\nValidating resolver:"); + sendAndPrint(vr, "www.dnssec-failed.org."); + sendAndPrint(vr, "www.isc.org."); + } + + private static void sendAndPrint(Resolver vr, String name) throws IOException { + System.out.println("\n---" + name); + Record qr = Record.newRecord(Name.fromConstantString(name), Type.A, DClass.IN); + Message response = vr.send(Message.newQuery(qr)); + System.out.println("AD-Flag: " + response.getHeader().getFlag(Flags.AD)); + System.out.println("RCode: " + Rcode.string(response.getRcode())); + for (RRset set : response.getSectionRRsets(Section.ADDITIONAL)) { + if (set.getName().equals(Name.root) && set.getType() == Type.TXT + && set.getDClass() == ValidatingResolver.VALIDATION_REASON_QCLASS) { + System.out.println("Reason: " + ((TXTRecord) set.first()).getStrings().get(0)); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java new file mode 100644 index 000000000..f7626ce37 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java @@ -0,0 +1,34 @@ +package com.mageddo.dnsproxyserver.dns.server; + +import lombok.extern.slf4j.Slf4j; +import org.xbill.DNS.Message; +import org.xbill.DNS.Rcode; + +import java.net.InetAddress; + +@Slf4j +public class SimpleServer { + + public static SimpleServer start(int port, Protocol protocol, InetAddress bindAddress) { + + final var udpServer = new UDPServer(); + udpServer.bind(message -> { + log.info("status=new-msg, msg={}", message.toString()); + final var reply = new Message(); + final var header = message.getHeader(); + reply.setHeader(header); + header.setRcode(Rcode.NOTAUTH); + return reply; + }); + udpServer.start(port, bindAddress); + + return new SimpleServer(); + } + + public enum Protocol { + UDP, + TCP, + BOTH + } + +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java new file mode 100644 index 000000000..044582ba6 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java @@ -0,0 +1,60 @@ +package com.mageddo.dnsproxyserver.dns.server; + +import org.xbill.DNS.Message; + +import java.io.IOException; +import java.io.UncheckedIOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.util.ArrayList; +import java.util.List; + +public class UDPServer { + public static final short BUFFER_SIZE = 512; + private final List handlers; + + public UDPServer() { + this.handlers = new ArrayList<>(); + } + + public UDPServer bind(Handler handler) { + this.handlers.add(handler); + return this; + } + + public void start(int port, InetAddress bindAddress) { + try { + final var server = new DatagramSocket(port, bindAddress); + final byte[] buff = new byte[BUFFER_SIZE]; + while (!server.isClosed()) { + + final var in = new DatagramPacket(buff, 0, buff.length); + server.receive(in); + final var response = this.handle(in).toWire(); + + final var out = new DatagramPacket(response, response.length); + out.setAddress(in.getAddress()); + out.setPort(in.getPort()); + + server.send(out); + + + } + } catch (IOException e) { + throw new UncheckedIOException(e); + } + + } + + private Message handle(DatagramPacket packet) { + for (Handler handler : this.handlers) { + try { + return handler.handle(new Message(packet.getData())); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + return null; + } +} From 842d5c23ee2efb23593a8e793de07ee83d23881d Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 15:34:50 -0300 Subject: [PATCH 02/28] Simple remote server proxy --- .../dnsproxyserver/dns/server/Handler.java | 7 ---- .../dnsproxyserver/dns/server/Main.java | 4 +-- .../dnsproxyserver/dns/server/README.md | 4 +++ .../dns/server/SimpleServer.java | 21 ++++++------ .../dnsproxyserver/dns/server/UDPServer.java | 13 +++---- .../dns/server/solver/RemoteSolver.java | 34 +++++++++++++++++++ .../dns/server/solver/Solver.java | 7 ++++ 7 files changed, 64 insertions(+), 26 deletions(-) delete mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/Handler.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/README.md create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Handler.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Handler.java deleted file mode 100644 index 0eb5f87ea..000000000 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Handler.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.mageddo.dnsproxyserver.dns.server; - -import org.xbill.DNS.Message; - -public interface Handler { - Message handle(Message message); -} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java index 48103b1e8..2c85a074f 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java @@ -2,11 +2,9 @@ import lombok.SneakyThrows; -import java.net.Inet4Address; - public class Main { @SneakyThrows public static void main(String[] args) { - SimpleServer.start(8053, SimpleServer.Protocol.BOTH, Inet4Address.getByName("localhost")); + SimpleServer.start(8053, SimpleServer.Protocol.BOTH, null); } } diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/README.md b/src/main/java/com/mageddo/dnsproxyserver/dns/server/README.md new file mode 100644 index 000000000..ae45f851a --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/README.md @@ -0,0 +1,4 @@ +``` +nslookup -po=8053 google.com 127.0.0.1 +-Djava.net.preferIPv4Stack=true +``` \ No newline at end of file diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java index f7626ce37..63d88b548 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java @@ -1,8 +1,7 @@ package com.mageddo.dnsproxyserver.dns.server; +import com.mageddo.dnsproxyserver.dns.server.solver.RemoteSolver; import lombok.extern.slf4j.Slf4j; -import org.xbill.DNS.Message; -import org.xbill.DNS.Rcode; import java.net.InetAddress; @@ -11,15 +10,17 @@ public class SimpleServer { public static SimpleServer start(int port, Protocol protocol, InetAddress bindAddress) { + // fixme create tcp server final var udpServer = new UDPServer(); - udpServer.bind(message -> { - log.info("status=new-msg, msg={}", message.toString()); - final var reply = new Message(); - final var header = message.getHeader(); - reply.setHeader(header); - header.setRcode(Rcode.NOTAUTH); - return reply; - }); +// udpServer.bind(message -> { +// log.info("status=new-msg, msg={}", message.toString()); +// final var reply = new Message(); +// final var header = message.getHeader(); +// reply.setHeader(header); +// header.setRcode(Rcode.NOTAUTH); +// return reply; +// }); + udpServer.bind(new RemoteSolver()); udpServer.start(port, bindAddress); return new SimpleServer(); diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java index 044582ba6..f270fc6c6 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java @@ -1,5 +1,6 @@ package com.mageddo.dnsproxyserver.dns.server; +import com.mageddo.dnsproxyserver.dns.server.solver.Solver; import org.xbill.DNS.Message; import java.io.IOException; @@ -12,14 +13,14 @@ public class UDPServer { public static final short BUFFER_SIZE = 512; - private final List handlers; + private final List solvers; public UDPServer() { - this.handlers = new ArrayList<>(); + this.solvers = new ArrayList<>(); } - public UDPServer bind(Handler handler) { - this.handlers.add(handler); + public UDPServer bind(Solver solver) { + this.solvers.add(solver); return this; } @@ -48,9 +49,9 @@ public void start(int port, InetAddress bindAddress) { } private Message handle(DatagramPacket packet) { - for (Handler handler : this.handlers) { + for (Solver solver : this.solvers) { try { - return handler.handle(new Message(packet.getData())); + return solver.handle(new Message(packet.getData())); } catch (IOException e) { throw new UncheckedIOException(e); } diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java new file mode 100644 index 000000000..4ae91c190 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java @@ -0,0 +1,34 @@ +package com.mageddo.dnsproxyserver.dns.server.solver; + +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.xbill.DNS.Message; +import org.xbill.DNS.Resolver; +import org.xbill.DNS.SimpleResolver; + +import java.io.IOException; +import java.io.UncheckedIOException; +import java.net.InetAddress; +import java.net.InetSocketAddress; + +@Slf4j +public class RemoteSolver implements Solver { + + private final Resolver delegate; + + @SneakyThrows + public RemoteSolver() { + this.delegate = new SimpleResolver(new InetSocketAddress(InetAddress.getByAddress(new byte[]{8,8,8,8}), 53)); + } + + @Override + public Message handle(Message req) { + try { + final var res = this.delegate.send(req); + log.info("status=handled, req={}, res={}", req, res); + return res; + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java new file mode 100644 index 000000000..1d106ec0e --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java @@ -0,0 +1,7 @@ +package com.mageddo.dnsproxyserver.dns.server.solver; + +import org.xbill.DNS.Message; + +public interface Solver { + Message handle(Message reqMsg); +} From 783ac1d636f4236783d6c6aa526db150f095d252 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 15:41:06 -0300 Subject: [PATCH 03/28] Native image working --- build.gradle | 1 + src/main/java/com/mageddo/dnsproxyserver/App.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/build.gradle b/build.gradle index fbf7cc5c4..79af343bf 100644 --- a/build.gradle +++ b/build.gradle @@ -47,6 +47,7 @@ dependencies { compileOnly(group: "com.mageddo.nativeimage", name: "reflection-config-generator", version: "2.3.+") annotationProcessor(group: "com.mageddo.nativeimage", name: "reflection-config-generator", version: "2.3.+") + implementation group: 'com.google.dagger', name: 'dagger', version: '2.44.2' implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.8.+' implementation group: 'com.mageddo.tinyserver', name: 'tinyserver', version: '1.0.+' implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.14.+' diff --git a/src/main/java/com/mageddo/dnsproxyserver/App.java b/src/main/java/com/mageddo/dnsproxyserver/App.java index 74de405ad..4d22cb668 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/App.java +++ b/src/main/java/com/mageddo/dnsproxyserver/App.java @@ -1,5 +1,7 @@ package com.mageddo.dnsproxyserver; +import com.mageddo.dnsproxyserver.dns.server.Main; + public class App { public static void main(String[] args) { System.out.println("Hello World"); @@ -13,5 +15,7 @@ public static void main(String[] args) { // setup as default dns // install as service + Main.main(args); + } } From f81d8399bed7a454f433be21d376b6506b1edb24 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 16:09:44 -0300 Subject: [PATCH 04/28] Dagger initial setup --- build.gradle | 4 ++- .../dnsproxyserver/config/Configs.java | 20 +++++++++++++ .../dnsproxyserver/dagger/Factory.java | 24 +++++++++++++++ .../dnsproxyserver/dagger/MainModule.java | 29 +++++++++++++++++++ .../dnsproxyserver/dns/server/Main.java | 7 ++++- .../dns/server/ServerStarter.java | 28 ++++++++++++++++++ .../dns/server/SimpleServer.java | 20 ++++++------- .../dns/server/solver/RemoteSolver.java | 12 ++------ .../dns/server/solver/RemoteSolverConfig.java | 24 +++++++++++++++ .../dns/server/solver/Solver.java | 4 +++ 10 files changed, 150 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/mageddo/dnsproxyserver/config/Configs.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java diff --git a/build.gradle b/build.gradle index 79af343bf..7f6c6f414 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,9 @@ dependencies { compileOnly(group: "com.mageddo.nativeimage", name: "reflection-config-generator", version: "2.3.+") annotationProcessor(group: "com.mageddo.nativeimage", name: "reflection-config-generator", version: "2.3.+") - implementation group: 'com.google.dagger', name: 'dagger', version: '2.44.2' + implementation 'com.google.dagger:dagger:2.44.+' + annotationProcessor 'com.google.dagger:dagger-compiler:2.44.+' + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.8.+' implementation group: 'com.mageddo.tinyserver', name: 'tinyserver', version: '1.0.+' implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.14.+' diff --git a/src/main/java/com/mageddo/dnsproxyserver/config/Configs.java b/src/main/java/com/mageddo/dnsproxyserver/config/Configs.java new file mode 100644 index 000000000..baaf7f348 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/config/Configs.java @@ -0,0 +1,20 @@ +package com.mageddo.dnsproxyserver.config; + +import com.mageddo.dnsproxyserver.dns.server.solver.RemoteSolverConfig; +import com.mageddo.dnsproxyserver.dns.server.SimpleServer; + +public class Configs { + public static int findDnsServerPort() { + return 8053; + } + + public static SimpleServer.Protocol findDnsServerProtocol() { + return SimpleServer.Protocol.BOTH; + } + + public static RemoteSolverConfig findRemoverSolverConfig() { + return new RemoteSolverConfig() + .setIp(new byte[]{8, 8, 8, 8}) + .setPort((short) 53); + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java b/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java new file mode 100644 index 000000000..8926083bd --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java @@ -0,0 +1,24 @@ +package com.mageddo.dnsproxyserver.dagger; + +import com.mageddo.dnsproxyserver.dns.server.ServerStarter; +import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import dagger.Component; + +import javax.inject.Singleton; +import java.util.Set; + +@Singleton +@Component(modules = {MainModule.class}) +public interface Factory { + + ServerStarter dnsServerStarter(); + + Set solvers(); + + static Factory factory() { + return DaggerFactory + .builder() + .build() + ; + } +} \ No newline at end of file diff --git a/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java b/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java new file mode 100644 index 000000000..16a81e40b --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java @@ -0,0 +1,29 @@ +package com.mageddo.dnsproxyserver.dagger; + +import com.mageddo.dnsproxyserver.config.Configs; +import com.mageddo.dnsproxyserver.dns.server.solver.RemoteSolver; +import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import dagger.Module; +import dagger.Provides; +import dagger.multibindings.ElementsIntoSet; +import org.xbill.DNS.Resolver; +import org.xbill.DNS.SimpleResolver; + +import java.util.Set; + +@Module +public interface MainModule { + + @ElementsIntoSet + @Provides + static Set solvers( + RemoteSolver remoteSolver + ) { + return Set.of(remoteSolver); + } + + @Provides + static Resolver simpleResolver() { + return new SimpleResolver(Configs.findRemoverSolverConfig().toSocketAddress()); + } +} \ No newline at end of file diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java index 2c85a074f..7889dad2e 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java @@ -1,10 +1,15 @@ package com.mageddo.dnsproxyserver.dns.server; +import com.mageddo.dnsproxyserver.dagger.Factory; import lombok.SneakyThrows; public class Main { @SneakyThrows public static void main(String[] args) { - SimpleServer.start(8053, SimpleServer.Protocol.BOTH, null); + + Factory + .factory() + .dnsServerStarter() + .start(); } } diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java new file mode 100644 index 000000000..c0e019b17 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java @@ -0,0 +1,28 @@ +package com.mageddo.dnsproxyserver.dns.server; + +import com.mageddo.dnsproxyserver.config.Configs; +import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.experimental.Accessors; + +import javax.inject.Inject; +import java.util.Set; + +@Getter +@Accessors(fluent = true) +@AllArgsConstructor(onConstructor = @__({@Inject})) +public class ServerStarter { + private final Set solvers; + private final SimpleServer server; + + public ServerStarter start(){ + this.server.start( + Configs.findDnsServerPort(), + Configs.findDnsServerProtocol(), + this.solvers, + null + ); + return this; + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java index 63d88b548..c4cd7b29a 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java @@ -1,26 +1,24 @@ package com.mageddo.dnsproxyserver.dns.server; -import com.mageddo.dnsproxyserver.dns.server.solver.RemoteSolver; +import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import javax.inject.Inject; import java.net.InetAddress; +import java.util.Set; @Slf4j +@AllArgsConstructor(onConstructor = @__({@Inject})) public class SimpleServer { - public static SimpleServer start(int port, Protocol protocol, InetAddress bindAddress) { + public SimpleServer start( + int port, Protocol protocol, Set solvers, InetAddress bindAddress + ) { // fixme create tcp server final var udpServer = new UDPServer(); -// udpServer.bind(message -> { -// log.info("status=new-msg, msg={}", message.toString()); -// final var reply = new Message(); -// final var header = message.getHeader(); -// reply.setHeader(header); -// header.setRcode(Rcode.NOTAUTH); -// return reply; -// }); - udpServer.bind(new RemoteSolver()); + solvers.forEach(udpServer::bind); udpServer.start(port, bindAddress); return new SimpleServer(); diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java index 4ae91c190..c7974862b 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java @@ -1,26 +1,20 @@ package com.mageddo.dnsproxyserver.dns.server.solver; -import lombok.SneakyThrows; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.xbill.DNS.Message; import org.xbill.DNS.Resolver; -import org.xbill.DNS.SimpleResolver; +import javax.inject.Inject; import java.io.IOException; import java.io.UncheckedIOException; -import java.net.InetAddress; -import java.net.InetSocketAddress; @Slf4j +@AllArgsConstructor(onConstructor = @__({@Inject})) public class RemoteSolver implements Solver { private final Resolver delegate; - @SneakyThrows - public RemoteSolver() { - this.delegate = new SimpleResolver(new InetSocketAddress(InetAddress.getByAddress(new byte[]{8,8,8,8}), 53)); - } - @Override public Message handle(Message req) { try { diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java new file mode 100644 index 000000000..3e1d86eb3 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java @@ -0,0 +1,24 @@ +package com.mageddo.dnsproxyserver.dns.server.solver; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.UncheckedIOException; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.UnknownHostException; + +@Data +@Accessors(chain = true) +public class RemoteSolverConfig { + private byte[] ip; + private short port; + + public InetSocketAddress toSocketAddress() { + try { + return new InetSocketAddress(InetAddress.getByAddress(this.ip), this.port); + } catch (UnknownHostException e) { + throw new UncheckedIOException(e); + } + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java index 1d106ec0e..7590b0066 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java @@ -4,4 +4,8 @@ public interface Solver { Message handle(Message reqMsg); + + default byte priority(){ + return Byte.MIN_VALUE; + } } From a7c4359af80ad1d48aecc99923c9e52d5c7ad730 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 16:28:32 -0300 Subject: [PATCH 05/28] Add some writer threads to udp server --- .../dnsproxyserver/dns/server/Main.java | 19 +++++++++--- .../dnsproxyserver/dns/server/UDPServer.java | 31 ++++++++++++++----- .../dnsproxyserver/threads/ThreadPool.java | 23 ++++++++++++++ 3 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/mageddo/dnsproxyserver/threads/ThreadPool.java diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java index 7889dad2e..f0d445602 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java @@ -6,10 +6,21 @@ public class Main { @SneakyThrows public static void main(String[] args) { + final var factory = Factory.factory(); + + // start dns server + factory.dnsServerStarter().start(); + + // start webserver + + // configurations + + // setup as default dns + + // install as service + + Thread.currentThread().join(); + - Factory - .factory() - .dnsServerStarter() - .start(); } } diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java index f270fc6c6..5a20fecf2 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java @@ -1,6 +1,8 @@ package com.mageddo.dnsproxyserver.dns.server; import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import com.mageddo.dnsproxyserver.threads.ThreadPool; +import lombok.extern.slf4j.Slf4j; import org.xbill.DNS.Message; import java.io.IOException; @@ -10,13 +12,17 @@ import java.net.InetAddress; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ExecutorService; +@Slf4j public class UDPServer { public static final short BUFFER_SIZE = 512; private final List solvers; + private final ExecutorService pool; public UDPServer() { this.solvers = new ArrayList<>(); + this.pool = ThreadPool.create(5); } public UDPServer bind(Solver solver) { @@ -25,6 +31,11 @@ public UDPServer bind(Solver solver) { } public void start(int port, InetAddress bindAddress) { + this.pool.submit(() -> this.start0(port, bindAddress)); + log.info("status=starting.., port={}, bindAddress={}", port, bindAddress); + } + + private void start0(int port, InetAddress bindAddress) { try { final var server = new DatagramSocket(port, bindAddress); final byte[] buff = new byte[BUFFER_SIZE]; @@ -32,20 +43,26 @@ public void start(int port, InetAddress bindAddress) { final var in = new DatagramPacket(buff, 0, buff.length); server.receive(in); - final var response = this.handle(in).toWire(); + this.pool.submit(() -> this.handle(server, this.handle(in), in.getAddress(), in.getPort())); - final var out = new DatagramPacket(response, response.length); - out.setAddress(in.getAddress()); - out.setPort(in.getPort()); + } + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } - server.send(out); + public void handle(DatagramSocket server, Message handle, InetAddress address, int port) { + try { + final var response = handle.toWire(); + final var out = new DatagramPacket(response, response.length); + out.setAddress(address); + out.setPort(port); + server.send(out); - } } catch (IOException e) { throw new UncheckedIOException(e); } - } private Message handle(DatagramPacket packet) { diff --git a/src/main/java/com/mageddo/dnsproxyserver/threads/ThreadPool.java b/src/main/java/com/mageddo/dnsproxyserver/threads/ThreadPool.java new file mode 100644 index 000000000..0e0805c0e --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/threads/ThreadPool.java @@ -0,0 +1,23 @@ +package com.mageddo.dnsproxyserver.threads; + +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + +public class ThreadPool { + private static final ScheduledExecutorService pool = create(5); + + public static ScheduledExecutorService create(int size) { + return Executors.newScheduledThreadPool( + size, + ThreadPool::createDaemonThread + ); + } + public static Thread createDaemonThread(Runnable r) { + final var t = new Thread(r); + t.setDaemon(true); + return t; + } + public static ScheduledExecutorService main() { + return pool; + } +} From 9474d7bbcd8553c243aa79c2ef4b0016619cf9d8 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 17:00:09 -0300 Subject: [PATCH 06/28] creating wildcard builder --- .../dns/server/solver/DockerSolver.java | 57 +++++++++++++++++++ .../dns/server/solver/Wildcards.java | 26 +++++++++ .../dns/server/solver/WildcardsTest.java | 23 ++++++++ 3 files changed, 106 insertions(+) create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Wildcards.java create mode 100644 src/test/java/com/mageddo/dnsproxyserver/dns/server/solver/WildcardsTest.java diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java new file mode 100644 index 000000000..1dfa496e3 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java @@ -0,0 +1,57 @@ +package com.mageddo.dnsproxyserver.dns.server.solver; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.xbill.DNS.Message; + +import javax.inject.Inject; + +@Slf4j +@AllArgsConstructor(onConstructor = @__({@Inject})) +public class DockerSolver implements Solver { + + @Override + public Message handle(Message reqMsg) { + +// questionName := question.Name[:len(question.Name)-1] + final var question = reqMsg.getQuestion(); + final var hostname = question.getName().toString(true); + +// for _, host := range getAllHosts("." + questionName) { +// if s.c.ContainsKey(host) { +// return s.doSolve(ctx, host, question) +// } +// } +// func (s DockerDnsSolver) doSolve(ctx context.Context, k string, q dns.Question) (*dns.Msg, error) { +// logging.Debugf("solver=docker, status=solved-key, question=%s, hostname=%s, ip=%+v", ctx, q.Name, k, s.c.Get(k)) +// return s.getMsg(k, q), nil +// } +// +// func NewDockerSolver(c cache.Cache) DockerDnsSolver { +// return DockerDnsSolver{c} +// } +// +// func (s DockerDnsSolver) getMsg(key string, question dns.Question) *dns.Msg { +// ip := s.c.Get(key).(string) +// ipArr := strings.Split(ip, ".") +// i1, _ := strconv.Atoi(ipArr[0]) +// i2, _ := strconv.Atoi(ipArr[1]) +// i3, _ := strconv.Atoi(ipArr[2]) +// i4, _ := strconv.Atoi(ipArr[3]) +// +// rr := &dns.A{ +// Hdr: dns.RR_Header{Name: question.Name, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 0}, +// A: net.IPv4(byte(i1), byte(i2), byte(i3), byte(i4)), +// } +// +// m := new(dns.Msg) +// m.Answer = append(m.Answer, rr) +// return m +// } + + + + return null; + } + +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Wildcards.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Wildcards.java new file mode 100644 index 000000000..f5fa1b6ab --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Wildcards.java @@ -0,0 +1,26 @@ +package com.mageddo.dnsproxyserver.dns.server.solver; + +import java.util.ArrayList; +import java.util.List; + +public class Wildcards { + public static List buildHostAndWildcards(String hostname) { + + final var query = "." + hostname; + final var hostnames = new ArrayList(); + hostnames.add(query.substring(1)); + + int fromIndex = 0, actual = 0; + while (true) { + final var str = query.substring(fromIndex); + actual = str.indexOf('.'); + + if (actual == -1 || actual + 1 >= str.length()) { + break; + } + hostnames.add(str.substring(actual)); + fromIndex += actual + 1; + } + return hostnames; + } +} diff --git a/src/test/java/com/mageddo/dnsproxyserver/dns/server/solver/WildcardsTest.java b/src/test/java/com/mageddo/dnsproxyserver/dns/server/solver/WildcardsTest.java new file mode 100644 index 000000000..a25757c11 --- /dev/null +++ b/src/test/java/com/mageddo/dnsproxyserver/dns/server/solver/WildcardsTest.java @@ -0,0 +1,23 @@ +package com.mageddo.dnsproxyserver.dns.server.solver; + +import org.junit.jupiter.api.Test; + +import static com.mageddo.dnsproxyserver.dns.server.solver.Wildcards.buildHostAndWildcards; +import static org.junit.jupiter.api.Assertions.assertEquals; + +class WildcardsTest { + @Test + void mustGenerateHostsAndWildcardsTo(){ + // arrange + final var hostname = "bookmarks.mageddo.com"; + + // act + final var result = buildHostAndWildcards(hostname); + + // assert + assertEquals( + "[bookmarks.mageddo.com, .bookmarks.mageddo.com, .mageddo.com, .com]", + result.toString() + ); + } +} \ No newline at end of file From 51eab7062765713f8e80c8c2f0e22b7b2c365ab5 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 17:24:57 -0300 Subject: [PATCH 07/28] working on docker solver --- .../dns/server/solver/DockerSolver.java | 45 ++++++++++++++++++- .../dns/server/solver/RemoteSolverConfig.java | 10 +---- .../docker/DockerRepository.java | 11 +++++ .../docker/DockerRepositoryMock.java | 19 ++++++++ .../com/mageddo/dnsproxyserver/utils/Ips.java | 31 +++++++++++++ 5 files changed, 106 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryMock.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/utils/Ips.java diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java index 1dfa496e3..df9ab6b85 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java @@ -1,8 +1,13 @@ package com.mageddo.dnsproxyserver.dns.server.solver; +import com.mageddo.dnsproxyserver.docker.DockerRepository; +import com.mageddo.dnsproxyserver.utils.Ips; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.xbill.DNS.ARecord; +import org.xbill.DNS.DClass; import org.xbill.DNS.Message; +import org.xbill.DNS.Section; import javax.inject.Inject; @@ -10,18 +15,29 @@ @AllArgsConstructor(onConstructor = @__({@Inject})) public class DockerSolver implements Solver { + private final DockerRepository dockerRepository; + @Override public Message handle(Message reqMsg) { // questionName := question.Name[:len(question.Name)-1] final var question = reqMsg.getQuestion(); - final var hostname = question.getName().toString(true); + final var questionName = question.getName().toString(true); // for _, host := range getAllHosts("." + questionName) { // if s.c.ContainsKey(host) { // return s.doSolve(ctx, host, question) // } // } + for (final var host : Wildcards.buildHostAndWildcards(questionName)) { + final var ip = this.dockerRepository.findHost(host); + if (ip == null) { + return null; + } + return this.toMsg(reqMsg, ip); + } + + // func (s DockerDnsSolver) doSolve(ctx context.Context, k string, q dns.Question) (*dns.Msg, error) { // logging.Debugf("solver=docker, status=solved-key, question=%s, hostname=%s, ip=%+v", ctx, q.Name, k, s.c.Get(k)) // return s.getMsg(k, q), nil @@ -50,8 +66,33 @@ public Message handle(Message reqMsg) { // } - return null; } + Message toMsg(Message reqMsg, String ip) { + final var res = new Message(reqMsg.getHeader().getID()); +// = Record.newRecord(reqMsg.getQuestion().getName(), Type.A, DClass.IN, 30, Ips.toBytes(ip)); + final var answer = new ARecord(reqMsg.getQuestion().getName(), DClass.IN, 30L, Ips.toAddress(ip)); + res.addRecord(answer, Section.ANSWER); + return res; + } + +// func (s DockerDnsSolver) getMsg(key string, question dns.Question) *dns.Msg { +// ip := s.c.Get(key).(string) +// ipArr := strings.Split(ip, ".") +// i1, _ := strconv.Atoi(ipArr[0]) +// i2, _ := strconv.Atoi(ipArr[1]) +// i3, _ := strconv.Atoi(ipArr[2]) +// i4, _ := strconv.Atoi(ipArr[3]) +// +// rr := &dns.A{ +// Hdr: dns.RR_Header{Name: question.Name, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 0}, +// A: net.IPv4(byte(i1), byte(i2), byte(i3), byte(i4)), +// } +// +// m := new(dns.Msg) +// m.Answer = append(m.Answer, rr) +// return m +// } + } diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java index 3e1d86eb3..9934ab737 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java @@ -1,12 +1,10 @@ package com.mageddo.dnsproxyserver.dns.server.solver; +import com.mageddo.dnsproxyserver.utils.Ips; import lombok.Data; import lombok.experimental.Accessors; -import java.io.UncheckedIOException; -import java.net.InetAddress; import java.net.InetSocketAddress; -import java.net.UnknownHostException; @Data @Accessors(chain = true) @@ -15,10 +13,6 @@ public class RemoteSolverConfig { private short port; public InetSocketAddress toSocketAddress() { - try { - return new InetSocketAddress(InetAddress.getByAddress(this.ip), this.port); - } catch (UnknownHostException e) { - throw new UncheckedIOException(e); - } + return new InetSocketAddress(Ips.toAddress(this.ip), this.port); } } diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java new file mode 100644 index 000000000..f9113263c --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java @@ -0,0 +1,11 @@ +package com.mageddo.dnsproxyserver.docker; + +public interface DockerRepository { + + /** + * + * @param host + * @return the host ip + */ + String findHost(String host); +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryMock.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryMock.java new file mode 100644 index 000000000..aefc01702 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryMock.java @@ -0,0 +1,19 @@ +package com.mageddo.dnsproxyserver.docker; + +import lombok.AllArgsConstructor; + +import javax.inject.Inject; +import javax.inject.Singleton; +import java.util.Objects; + +@Singleton +@AllArgsConstructor(onConstructor = @__({@Inject})) +public class DockerRepositoryMock implements DockerRepository { + @Override + public String findHost(String host) { + if (Objects.equals("acme.com", host)) { + return "192.168.0.1"; + } + return null; + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/utils/Ips.java b/src/main/java/com/mageddo/dnsproxyserver/utils/Ips.java new file mode 100644 index 000000000..a3cd8048a --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/utils/Ips.java @@ -0,0 +1,31 @@ +package com.mageddo.dnsproxyserver.utils; + +import org.apache.commons.lang3.Validate; + +import java.io.UncheckedIOException; +import java.net.InetAddress; +import java.net.UnknownHostException; + +public class Ips { + public static byte[] toBytes(String ip) { + final var tokens = ip.split("\\."); + Validate.isTrue(tokens.length == 4, "Wrong number of tokens: %d", tokens.length); + final var bytes = new byte[4]; + for (int i = 0; i < tokens.length; i++) { + bytes[i] = Byte.parseByte(tokens[i]); + } + return bytes; + } + + public static InetAddress toAddress(String ip) { + return toAddress(toBytes(ip)); + } + + public static InetAddress toAddress(byte[] ip) { + try { + return InetAddress.getByAddress(ip); + } catch (UnknownHostException e) { + throw new UncheckedIOException(e); + } + } +} From 2dcfa5579c72d3205eb9908ae57bfb6f105263d7 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 17:31:30 -0300 Subject: [PATCH 08/28] configuring docker solver --- .../dnsproxyserver/dns/server/ServerStarter.java | 12 ++++++++---- .../dnsproxyserver/dns/server/SimpleServer.java | 4 ++-- .../dns/server/solver/DockerSolver.java | 5 +++++ .../dns/server/solver/Priority.java | 11 +++++++++++ .../dnsproxyserver/dns/server/solver/Solver.java | 2 +- .../dns/server/solver/Solvers.java | 16 ++++++++++++++++ 6 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Priority.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solvers.java diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java index c0e019b17..380ad7192 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java @@ -2,20 +2,24 @@ import com.mageddo.dnsproxyserver.config.Configs; import com.mageddo.dnsproxyserver.dns.server.solver.Solver; -import lombok.AllArgsConstructor; +import com.mageddo.dnsproxyserver.dns.server.solver.Solvers; import lombok.Getter; import lombok.experimental.Accessors; -import javax.inject.Inject; +import java.util.List; import java.util.Set; @Getter @Accessors(fluent = true) -@AllArgsConstructor(onConstructor = @__({@Inject})) public class ServerStarter { - private final Set solvers; + private final List solvers; private final SimpleServer server; + public ServerStarter(Set solvers, SimpleServer server) { + this.solvers = Solvers.sorted(solvers); + this.server = server; + } + public ServerStarter start(){ this.server.start( Configs.findDnsServerPort(), diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java index c4cd7b29a..e2d18cb87 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java @@ -6,14 +6,14 @@ import javax.inject.Inject; import java.net.InetAddress; -import java.util.Set; +import java.util.List; @Slf4j @AllArgsConstructor(onConstructor = @__({@Inject})) public class SimpleServer { public SimpleServer start( - int port, Protocol protocol, Set solvers, InetAddress bindAddress + int port, Protocol protocol, List solvers, InetAddress bindAddress ) { // fixme create tcp server diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java index df9ab6b85..341c0e338 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java @@ -95,4 +95,9 @@ Message toMsg(Message reqMsg, String ip) { // return m // } + + @Override + public byte priority() { + return Priority.ZERO; + } } diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Priority.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Priority.java new file mode 100644 index 000000000..ae9073d19 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Priority.java @@ -0,0 +1,11 @@ +package com.mageddo.dnsproxyserver.dns.server.solver; + +public class Priority { + public static final byte ZERO = 1; + + public static final byte ONE = 1; + public static final byte TWO = 2; + public static final byte THREE = 3; + + public static final byte FOUR = 4; +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java index 7590b0066..8dd153999 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java @@ -6,6 +6,6 @@ public interface Solver { Message handle(Message reqMsg); default byte priority(){ - return Byte.MIN_VALUE; + return Byte.MAX_VALUE; } } diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solvers.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solvers.java new file mode 100644 index 000000000..b76419a68 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solvers.java @@ -0,0 +1,16 @@ +package com.mageddo.dnsproxyserver.dns.server.solver; + +import com.mageddo.dnsproxyserver.dns.server.solver.Solver; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Set; + +public class Solvers { + public static List sorted(Set source) { + final var solvers = new ArrayList<>(source); + solvers.sort(Comparator.comparing(Solver::priority)); + return solvers; + } +} From fbd683715e6b8406be6ea2c9e5dac35652286043 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 17:50:29 -0300 Subject: [PATCH 09/28] adjustments --- .editorconfig | 6 +-- .../dnsproxyserver/dagger/MainModule.java | 11 ++++- .../mageddo/dnsproxyserver/dns/Messages.java | 9 +++++ .../dns/server/ServerStarter.java | 2 + .../dnsproxyserver/dns/server/UDPServer.java | 40 +++++++++++++------ .../mageddo/dnsproxyserver/utils/Classes.java | 7 ++++ src/main/resources/logback.xml | 29 ++++++++------ 7 files changed, 73 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dns/Messages.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/utils/Classes.java diff --git a/.editorconfig b/.editorconfig index b54631302..b4061c2e8 100644 --- a/.editorconfig +++ b/.editorconfig @@ -4,13 +4,13 @@ root = true # Unix-style newlines with a newline ending every file -[*.go] +[*] end_of_line = lf insert_final_newline = true charset = utf-8 -indent_style = tab +indent_style = space indent_size = 2 -[{*.java, *.gradle, *.yml, app/*package.json}] +[{*.java, *.gradle, *.yml, app/*package.json, *.yml, *.xml}] indent_style = space indent_size = 2 diff --git a/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java b/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java index 16a81e40b..9e0383360 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java @@ -1,8 +1,12 @@ package com.mageddo.dnsproxyserver.dagger; import com.mageddo.dnsproxyserver.config.Configs; +import com.mageddo.dnsproxyserver.dns.server.solver.DockerSolver; import com.mageddo.dnsproxyserver.dns.server.solver.RemoteSolver; import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import com.mageddo.dnsproxyserver.docker.DockerRepository; +import com.mageddo.dnsproxyserver.docker.DockerRepositoryMock; +import dagger.Binds; import dagger.Module; import dagger.Provides; import dagger.multibindings.ElementsIntoSet; @@ -14,12 +18,15 @@ @Module public interface MainModule { + @Binds + DockerRepository bind(DockerRepositoryMock m); + @ElementsIntoSet @Provides static Set solvers( - RemoteSolver remoteSolver + RemoteSolver a, DockerSolver b ) { - return Set.of(remoteSolver); + return Set.of(a, b); } @Provides diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/Messages.java b/src/main/java/com/mageddo/dnsproxyserver/dns/Messages.java new file mode 100644 index 000000000..d4fa6c908 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/Messages.java @@ -0,0 +1,9 @@ +package com.mageddo.dnsproxyserver.dns; + +import org.xbill.DNS.Message; + +public class Messages { + public static String simplePrint(Message message){ + return message.toString().substring(0, 10); + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java index 380ad7192..adc4a750a 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java @@ -6,6 +6,7 @@ import lombok.Getter; import lombok.experimental.Accessors; +import javax.inject.Inject; import java.util.List; import java.util.Set; @@ -15,6 +16,7 @@ public class ServerStarter { private final List solvers; private final SimpleServer server; + @Inject public ServerStarter(Set solvers, SimpleServer server) { this.solvers = Solvers.sorted(solvers); this.server = server; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java index 5a20fecf2..184582c96 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java @@ -2,6 +2,7 @@ import com.mageddo.dnsproxyserver.dns.server.solver.Solver; import com.mageddo.dnsproxyserver.threads.ThreadPool; +import com.mageddo.dnsproxyserver.utils.Classes; import lombok.extern.slf4j.Slf4j; import org.xbill.DNS.Message; @@ -14,6 +15,8 @@ import java.util.List; import java.util.concurrent.ExecutorService; +import static com.mageddo.dnsproxyserver.dns.Messages.simplePrint; + @Slf4j public class UDPServer { public static final short BUFFER_SIZE = 512; @@ -43,7 +46,9 @@ private void start0(int port, InetAddress bindAddress) { final var in = new DatagramPacket(buff, 0, buff.length); server.receive(in); - this.pool.submit(() -> this.handle(server, this.handle(in), in.getAddress(), in.getPort())); + final var reqMsg = new Message(in.getData()); + + this.pool.submit(() -> this.res(server, this.solve(reqMsg), in.getAddress(), in.getPort())); } } catch (IOException e) { @@ -51,7 +56,27 @@ private void start0(int port, InetAddress bindAddress) { } } - public void handle(DatagramSocket server, Message handle, InetAddress address, int port) { + Message solve(Message reqMsg) { + for (final var solver : this.solvers) { + final var solverName = Classes.findSimpleName(solver); + try { + final var reqStr = simplePrint(reqMsg); + log.debug("status=trySolve, solver={}, req={}", solverName, reqStr); + final var res = solver.handle(reqMsg); + if(res == null){ + log.debug("status=notSolved, req={}", reqStr); + continue; + } + log.debug("status=solved, solver={}, req={}, res={}", solverName, reqStr, simplePrint(res)); + return res; + } catch (Exception e) { + log.warn("status=solverFailed, solver={}, msg={}", solverName, e.getMessage(), e); + } + } + return null; + } + + void res(DatagramSocket server, Message handle, InetAddress address, int port) { try { final var response = handle.toWire(); final var out = new DatagramPacket(response, response.length); @@ -64,15 +89,4 @@ public void handle(DatagramSocket server, Message handle, InetAddress address, i throw new UncheckedIOException(e); } } - - private Message handle(DatagramPacket packet) { - for (Solver solver : this.solvers) { - try { - return solver.handle(new Message(packet.getData())); - } catch (IOException e) { - throw new UncheckedIOException(e); - } - } - return null; - } } diff --git a/src/main/java/com/mageddo/dnsproxyserver/utils/Classes.java b/src/main/java/com/mageddo/dnsproxyserver/utils/Classes.java new file mode 100644 index 000000000..534ae5164 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/utils/Classes.java @@ -0,0 +1,7 @@ +package com.mageddo.dnsproxyserver.utils; + +public class Classes { + public static String findSimpleName(Object o) { + return o.getClass().getSimpleName(); + } +} diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index eb5eef987..36f2398bc 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -1,17 +1,20 @@ - - - - ${log_pattern} - utf8 - - + + + + ${log_pattern} + utf8 + + - - - + + + + + + From 661d81399798aef7dadf31b3eec955263e343db0 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 17:56:17 -0300 Subject: [PATCH 10/28] Fixing ip parse --- .../java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java | 2 +- src/main/java/com/mageddo/dnsproxyserver/utils/Ips.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java index 184582c96..1e119e38a 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java @@ -64,7 +64,7 @@ Message solve(Message reqMsg) { log.debug("status=trySolve, solver={}, req={}", solverName, reqStr); final var res = solver.handle(reqMsg); if(res == null){ - log.debug("status=notSolved, req={}", reqStr); + log.debug("status=notSolved, solver={}, req={}", solverName, reqStr); continue; } log.debug("status=solved, solver={}, req={}, res={}", solverName, reqStr, simplePrint(res)); diff --git a/src/main/java/com/mageddo/dnsproxyserver/utils/Ips.java b/src/main/java/com/mageddo/dnsproxyserver/utils/Ips.java index a3cd8048a..a42abd9ae 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/utils/Ips.java +++ b/src/main/java/com/mageddo/dnsproxyserver/utils/Ips.java @@ -12,7 +12,7 @@ public static byte[] toBytes(String ip) { Validate.isTrue(tokens.length == 4, "Wrong number of tokens: %d", tokens.length); final var bytes = new byte[4]; for (int i = 0; i < tokens.length; i++) { - bytes[i] = Byte.parseByte(tokens[i]); + bytes[i] = (byte)Integer.parseInt(tokens[i]); } return bytes; } From 151a9b09b5f1981668a111f0ee87373efb127c1b Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 18:17:53 -0300 Subject: [PATCH 11/28] docker client dep --- .editorconfig | 4 ---- build.gradle | 7 ++++++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.editorconfig b/.editorconfig index b4061c2e8..5f8702cf8 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,7 +10,3 @@ insert_final_newline = true charset = utf-8 indent_style = space indent_size = 2 - -[{*.java, *.gradle, *.yml, app/*package.json, *.yml, *.xml}] -indent_style = space -indent_size = 2 diff --git a/build.gradle b/build.gradle index 7f6c6f414..632ab1da0 100644 --- a/build.gradle +++ b/build.gradle @@ -51,11 +51,16 @@ dependencies { annotationProcessor 'com.google.dagger:dagger-compiler:2.44.+' implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.8.+' - implementation group: 'com.mageddo.tinyserver', name: 'tinyserver', version: '1.0.+' implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.14.+' implementation group: "ch.qos.logback", name: "logback-classic", version: "1.2.+" + + implementation group: 'com.mageddo.tinyserver', name: 'tinyserver', version: '1.0.+' + implementation group: 'dnsjava', name: 'dnsjava', version: '3.5.2' + implementation group: 'com.github.docker-java', name: 'docker-java-core', version: '3.2.14' + implementation group: 'com.github.docker-java', name: 'docker-java-transport-zerodep', version: '3.2.14' + testCompileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.+' testAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.+' testImplementation(group: "org.junit.jupiter", name: "junit-jupiter", version: "5.8.+") From 38ae5287fb9ec565cbfe1a8cefa12d03f0d77126 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 19:06:01 -0300 Subject: [PATCH 12/28] Created real docker client solver --- build.gradle | 4 +- .../dagger/DockerClientModule.java | 39 ++++++++++++++ .../mageddo/dnsproxyserver/docker/Docker.java | 41 ++++++++++++++ .../dnsproxyserver/docker/DockerNetworks.java | 23 ++++++++ .../docker/DockerRepository.java | 2 +- .../docker/DockerRepositoryClient.java | 54 +++++++++++++++++++ 6 files changed, 161 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/mageddo/dnsproxyserver/dagger/DockerClientModule.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/docker/Docker.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/docker/DockerNetworks.java create mode 100644 src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryClient.java diff --git a/build.gradle b/build.gradle index 632ab1da0..2cb0e5ecd 100644 --- a/build.gradle +++ b/build.gradle @@ -59,7 +59,9 @@ dependencies { implementation group: 'dnsjava', name: 'dnsjava', version: '3.5.2' implementation group: 'com.github.docker-java', name: 'docker-java-core', version: '3.2.14' - implementation group: 'com.github.docker-java', name: 'docker-java-transport-zerodep', version: '3.2.14' + implementation group: 'com.github.docker-java', name: 'docker-java-transport-httpclient5', version: '3.2.14' + +// implementation group: 'com.github.docker-java', name: 'docker-java-transport-zerodep', version: '3.2.14' testCompileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.+' testAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.+' diff --git a/src/main/java/com/mageddo/dnsproxyserver/dagger/DockerClientModule.java b/src/main/java/com/mageddo/dnsproxyserver/dagger/DockerClientModule.java new file mode 100644 index 000000000..81260925b --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/dagger/DockerClientModule.java @@ -0,0 +1,39 @@ +package com.mageddo.dnsproxyserver.dagger; + +import com.github.dockerjava.api.DockerClient; +import com.github.dockerjava.core.DefaultDockerClientConfig; +import com.github.dockerjava.core.DockerClientImpl; +import com.github.dockerjava.httpclient5.ApacheDockerHttpClient; +import dagger.Module; +import dagger.Provides; + +import java.time.Duration; + +@Module +public interface DockerClientModule { + + @Provides + static DockerClient dockerClient() { + final var config = DefaultDockerClientConfig.createDefaultConfigBuilder() + .withDockerHost("unix:///var/run/docker.sock") + .withDockerTlsVerify(false) +// .withDockerCertPath("/home/user/.docker") +// .withRegistryUsername(registryUser) +// .withRegistryPassword(registryPass) +// .withRegistryEmail(registryMail) +// .withRegistryUrl(registryUrl) + .build(); + + final var httpClient = new ApacheDockerHttpClient.Builder() + .dockerHost(config.getDockerHost()) + .sslConfig(config.getSSLConfig()) + .maxConnections(5) + .connectionTimeout(Duration.ofMillis(300)) + .responseTimeout(Duration.ofSeconds(3)) + .build(); + + return DockerClientImpl.getInstance(config, httpClient); + } + + +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/Docker.java b/src/main/java/com/mageddo/dnsproxyserver/docker/Docker.java new file mode 100644 index 000000000..852cdf5c3 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/Docker.java @@ -0,0 +1,41 @@ +package com.mageddo.dnsproxyserver.docker; + +import com.github.dockerjava.api.model.ContainerConfig; +import org.apache.commons.lang3.StringUtils; + +import java.util.Arrays; +import java.util.Collections; +import java.util.Set; +import java.util.stream.Collectors; + +public class Docker { + + public static final String HOSTNAME_ENV = "HOSTNAMES="; + + public static String findContainerHostname(ContainerConfig config) { + final var hostname = config.getHostName(); + if (StringUtils.isBlank(hostname)) { + return null; + } + final var domainName = config.getDomainName(); + if (StringUtils.isBlank(domainName)) { + return hostname; + } + return String.format("%s.%s", hostname, domainName); + } + + public static Set findHostnameFromEnv(String[] envs) { + if (envs == null) { + return Collections.emptySet(); + } + for (String env : envs) { + if (env.startsWith(HOSTNAME_ENV)) { + final var hosts = env.substring(env.indexOf(HOSTNAME_ENV)).split("\s,\s"); + return Arrays + .stream(hosts) + .collect(Collectors.toSet()); + } + } + return Collections.emptySet(); + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerNetworks.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerNetworks.java new file mode 100644 index 000000000..c43d65487 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerNetworks.java @@ -0,0 +1,23 @@ +package com.mageddo.dnsproxyserver.docker; + +import com.github.dockerjava.api.command.InspectContainerResponse; +import lombok.extern.slf4j.Slf4j; + +import java.util.Arrays; + +@Slf4j +public class DockerNetworks { + public static String findBestIpMatching(InspectContainerResponse c, String... networksNames) { + final var networks = c.getNetworkSettings().getNetworks(); + for (final var name : networksNames) { + if (!networks.containsKey(name)) { + continue; + } + final var ip = networks.get(name).getIpAddress(); + log.debug("status=foundIp, network={}, container={}, ip={}", name, c.getName(), ip); + return ip; + } + log.debug("status=noIpFound, searchedNetworks={}, container={}", Arrays.toString(networksNames), c.getName()); + return null; + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java index f9113263c..4ed366e19 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java @@ -1,11 +1,11 @@ package com.mageddo.dnsproxyserver.docker; public interface DockerRepository { + String findHostIp(String host); /** * * @param host * @return the host ip */ - String findHost(String host); } diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryClient.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryClient.java new file mode 100644 index 000000000..acfff5944 --- /dev/null +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryClient.java @@ -0,0 +1,54 @@ +package com.mageddo.dnsproxyserver.docker; + +import com.github.dockerjava.api.DockerClient; +import com.github.dockerjava.api.command.InspectContainerResponse; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.time.StopWatch; + +import javax.inject.Inject; +import javax.inject.Singleton; +import java.util.Objects; +import java.util.Set; +import java.util.function.Predicate; + +import static com.mageddo.dnsproxyserver.docker.Docker.findContainerHostname; +import static com.mageddo.dnsproxyserver.docker.Docker.findHostnameFromEnv; + +@Slf4j +@Singleton +@AllArgsConstructor(onConstructor = @__({@Inject})) +public class DockerRepositoryClient implements DockerRepository { + + private final DockerClient dockerClient; + + @Override + public String findHostIp(String host) { + final var stopWatch = StopWatch.createStarted(); + final var activeContainers = this.dockerClient + .listContainersCmd() + .withStatusFilter(Set.of("running")) + .withLimit(1024) +// .withNetworkFilter() + .exec(); + + final var foundIp = activeContainers + .stream() + .map(it -> this.dockerClient.inspectContainerCmd(it.getId()).exec()) + .filter(matchingHostName(host)) + .map(DockerNetworks::findBestIpMatching) + .findFirst() + .orElse(null); + log.debug("status=findDone, host={}, found={}, time={}", host, foundIp, stopWatch.getTime()); + return foundIp; + } + + static Predicate matchingHostName(String host) { + return it -> { + if (Objects.equals(findContainerHostname(it.getConfig()), host)) { + return true; + } + return findHostnameFromEnv(it.getConfig().getEnv()).contains(host); + }; + } +} From d8d3e529f8549fc44723c3614cc89b663cd05312 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 19:07:16 -0300 Subject: [PATCH 13/28] refactoring --- .../{DockerClientModule.java => DockerModule.java} | 9 ++++++++- .../java/com/mageddo/dnsproxyserver/dagger/Factory.java | 4 ++-- .../com/mageddo/dnsproxyserver/dagger/MainModule.java | 8 +------- ...epositoryClient.java => DockerRepositoryDefault.java} | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) rename src/main/java/com/mageddo/dnsproxyserver/dagger/{DockerClientModule.java => DockerModule.java} (82%) rename src/main/java/com/mageddo/dnsproxyserver/docker/{DockerRepositoryClient.java => DockerRepositoryDefault.java} (96%) diff --git a/src/main/java/com/mageddo/dnsproxyserver/dagger/DockerClientModule.java b/src/main/java/com/mageddo/dnsproxyserver/dagger/DockerModule.java similarity index 82% rename from src/main/java/com/mageddo/dnsproxyserver/dagger/DockerClientModule.java rename to src/main/java/com/mageddo/dnsproxyserver/dagger/DockerModule.java index 81260925b..4af26f3c1 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dagger/DockerClientModule.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dagger/DockerModule.java @@ -4,13 +4,20 @@ import com.github.dockerjava.core.DefaultDockerClientConfig; import com.github.dockerjava.core.DockerClientImpl; import com.github.dockerjava.httpclient5.ApacheDockerHttpClient; +import com.mageddo.dnsproxyserver.docker.DockerRepository; +import com.mageddo.dnsproxyserver.docker.DockerRepositoryDefault; +import dagger.Binds; import dagger.Module; import dagger.Provides; import java.time.Duration; @Module -public interface DockerClientModule { +public interface DockerModule { + + + @Binds + DockerRepository bind(DockerRepositoryDefault m); @Provides static DockerClient dockerClient() { diff --git a/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java b/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java index 8926083bd..eeb87697b 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java @@ -8,7 +8,7 @@ import java.util.Set; @Singleton -@Component(modules = {MainModule.class}) +@Component(modules = {MainModule.class, DockerModule.class}) public interface Factory { ServerStarter dnsServerStarter(); @@ -21,4 +21,4 @@ static Factory factory() { .build() ; } -} \ No newline at end of file +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java b/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java index 9e0383360..55cdceb32 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java @@ -4,9 +4,6 @@ import com.mageddo.dnsproxyserver.dns.server.solver.DockerSolver; import com.mageddo.dnsproxyserver.dns.server.solver.RemoteSolver; import com.mageddo.dnsproxyserver.dns.server.solver.Solver; -import com.mageddo.dnsproxyserver.docker.DockerRepository; -import com.mageddo.dnsproxyserver.docker.DockerRepositoryMock; -import dagger.Binds; import dagger.Module; import dagger.Provides; import dagger.multibindings.ElementsIntoSet; @@ -18,9 +15,6 @@ @Module public interface MainModule { - @Binds - DockerRepository bind(DockerRepositoryMock m); - @ElementsIntoSet @Provides static Set solvers( @@ -33,4 +27,4 @@ static Set solvers( static Resolver simpleResolver() { return new SimpleResolver(Configs.findRemoverSolverConfig().toSocketAddress()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryClient.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java similarity index 96% rename from src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryClient.java rename to src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java index acfff5944..e21a84202 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryClient.java +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java @@ -18,7 +18,7 @@ @Slf4j @Singleton @AllArgsConstructor(onConstructor = @__({@Inject})) -public class DockerRepositoryClient implements DockerRepository { +public class DockerRepositoryDefault implements DockerRepository { private final DockerClient dockerClient; From 0a7ce23e23191088e76e79a2f0f1574d03eb4493 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 19:14:38 -0300 Subject: [PATCH 14/28] getting ip from bridge network --- .../dnsproxyserver/dns/server/solver/DockerSolver.java | 2 +- .../dnsproxyserver/docker/DockerRepositoryDefault.java | 6 +++++- .../mageddo/dnsproxyserver/docker/DockerRepositoryMock.java | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java index 341c0e338..b15f0f155 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java @@ -30,7 +30,7 @@ public Message handle(Message reqMsg) { // } // } for (final var host : Wildcards.buildHostAndWildcards(questionName)) { - final var ip = this.dockerRepository.findHost(host); + final var ip = this.dockerRepository.findHostIp(host); if (ip == null) { return null; } diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java index e21a84202..281028ef3 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java @@ -36,13 +36,17 @@ public String findHostIp(String host) { .stream() .map(it -> this.dockerClient.inspectContainerCmd(it.getId()).exec()) .filter(matchingHostName(host)) - .map(DockerNetworks::findBestIpMatching) + .map(c -> DockerNetworks.findBestIpMatching(c, buildNetworks(c))) .findFirst() .orElse(null); log.debug("status=findDone, host={}, found={}, time={}", host, foundIp, stopWatch.getTime()); return foundIp; } + String[] buildNetworks(InspectContainerResponse c) { + return new String[]{"bridge"}; + } + static Predicate matchingHostName(String host) { return it -> { if (Objects.equals(findContainerHostname(it.getConfig()), host)) { diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryMock.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryMock.java index aefc01702..367142b07 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryMock.java +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryMock.java @@ -10,7 +10,7 @@ @AllArgsConstructor(onConstructor = @__({@Inject})) public class DockerRepositoryMock implements DockerRepository { @Override - public String findHost(String host) { + public String findHostIp(String host) { if (Objects.equals("acme.com", host)) { return "192.168.0.1"; } From eb63bd2a933f2a4b9b7fd9d9c76d6c7c93aa60a3 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Sun, 29 Jan 2023 19:20:05 -0300 Subject: [PATCH 15/28] Fixing hostname matching from env --- README.alpha.md | 7 +++++++ .../java/com/mageddo/dnsproxyserver/docker/Docker.java | 2 +- .../dnsproxyserver/docker/DockerRepositoryDefault.java | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/README.alpha.md b/README.alpha.md index fd3dea54e..1c57b4e2f 100644 --- a/README.alpha.md +++ b/README.alpha.md @@ -6,9 +6,16 @@ $ ./gradlew build nativeCompile &&\ build/native/nativeCompile/dns-proxy-server ``` + +## Run a container for testing + +``` +docker run --rm -it --hostname nginx.dev -e 'HOSTNAMES=nginx.com.br' nginx:1.15 bash +``` ## x ```bash docker-compose -f docker-compose-alpha.yml rm &&\ docker-compose -f docker-compose-alpha.yml build &&\ docker-compose -f docker-compose-alpha.yml run -T --rm arm7x86 ``` + diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/Docker.java b/src/main/java/com/mageddo/dnsproxyserver/docker/Docker.java index 852cdf5c3..4d472aa23 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/docker/Docker.java +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/Docker.java @@ -30,7 +30,7 @@ public static Set findHostnameFromEnv(String[] envs) { } for (String env : envs) { if (env.startsWith(HOSTNAME_ENV)) { - final var hosts = env.substring(env.indexOf(HOSTNAME_ENV)).split("\s,\s"); + final var hosts = env.substring(HOSTNAME_ENV.length()).split("\s,\s"); return Arrays .stream(hosts) .collect(Collectors.toSet()); diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java index 281028ef3..bf109b501 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepositoryDefault.java @@ -20,6 +20,7 @@ @AllArgsConstructor(onConstructor = @__({@Inject})) public class DockerRepositoryDefault implements DockerRepository { + public static final String RUNNING_STATUS = "running"; private final DockerClient dockerClient; @Override @@ -27,7 +28,7 @@ public String findHostIp(String host) { final var stopWatch = StopWatch.createStarted(); final var activeContainers = this.dockerClient .listContainersCmd() - .withStatusFilter(Set.of("running")) + .withStatusFilter(Set.of(RUNNING_STATUS)) .withLimit(1024) // .withNetworkFilter() .exec(); From 8e70304f321ff7886cf3b9ad80a0152ba8a94510 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Mon, 30 Jan 2023 00:21:31 -0300 Subject: [PATCH 16/28] configuring docker client package --- src/main/java/com/mageddo/dnsproxyserver/App.java | 9 ++++++++- .../{ => META-INF}/native-image/native-image.properties | 0 .../{ => META-INF}/native-image/reflection-config.json | 0 src/main/resources/logback.xml | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) rename src/main/resources/{ => META-INF}/native-image/native-image.properties (100%) rename src/main/resources/{ => META-INF}/native-image/reflection-config.json (100%) diff --git a/src/main/java/com/mageddo/dnsproxyserver/App.java b/src/main/java/com/mageddo/dnsproxyserver/App.java index 4d22cb668..fe388d841 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/App.java +++ b/src/main/java/com/mageddo/dnsproxyserver/App.java @@ -1,7 +1,14 @@ package com.mageddo.dnsproxyserver; import com.mageddo.dnsproxyserver.dns.server.Main; - +import nativeimage.Reflection; + +@Reflection( + scanPackage = "com.github.dockerjava.api.model", + constructors = true, + publicMethods = true, + declaredFields = true +) public class App { public static void main(String[] args) { System.out.println("Hello World"); diff --git a/src/main/resources/native-image/native-image.properties b/src/main/resources/META-INF/native-image/native-image.properties similarity index 100% rename from src/main/resources/native-image/native-image.properties rename to src/main/resources/META-INF/native-image/native-image.properties diff --git a/src/main/resources/native-image/reflection-config.json b/src/main/resources/META-INF/native-image/reflection-config.json similarity index 100% rename from src/main/resources/native-image/reflection-config.json rename to src/main/resources/META-INF/native-image/reflection-config.json diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 36f2398bc..e00bebadc 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -16,5 +16,6 @@ + From 5d12964285a024bff53f986f512abfe58ed6dadc Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Mon, 30 Jan 2023 21:56:36 -0300 Subject: [PATCH 17/28] Setup docker java client reflection --- build.gradle | 24 +- .../java/com/mageddo/dnsproxyserver/App.java | 9 +- .../native-image/docker-java-reflection.json | 1334 +++++++++++++++++ .../native-image/native-image.properties | 2 +- 4 files changed, 1357 insertions(+), 12 deletions(-) create mode 100644 src/main/resources/META-INF/native-image/docker-java-reflection.json diff --git a/build.gradle b/build.gradle index 2cb0e5ecd..e8965c24f 100644 --- a/build.gradle +++ b/build.gradle @@ -8,6 +8,7 @@ buildscript { plugins { id "java" id 'org.graalvm.buildtools.native' version '0.9.19' + id "com.github.johnrengelman.shadow" version "7.1.2" } repositories { @@ -44,8 +45,6 @@ dependencies { compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.+' annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.+' - compileOnly(group: "com.mageddo.nativeimage", name: "reflection-config-generator", version: "2.3.+") - annotationProcessor(group: "com.mageddo.nativeimage", name: "reflection-config-generator", version: "2.3.+") implementation 'com.google.dagger:dagger:2.44.+' annotationProcessor 'com.google.dagger:dagger-compiler:2.44.+' @@ -61,7 +60,8 @@ dependencies { implementation group: 'com.github.docker-java', name: 'docker-java-core', version: '3.2.14' implementation group: 'com.github.docker-java', name: 'docker-java-transport-httpclient5', version: '3.2.14' -// implementation group: 'com.github.docker-java', name: 'docker-java-transport-zerodep', version: '3.2.14' + compileOnly(group: "com.mageddo.nativeimage", name: "reflection-config-generator", version: "2.4.+") + annotationProcessor(group: "com.mageddo.nativeimage", name: "reflection-config-generator", version: "2.4.+") testCompileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.+' testAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.+' @@ -75,3 +75,21 @@ test { events "passed", "skipped", "failed" } } + + +def mainClassName = "com.mageddo.dnsproxyserver.App" + +jar { + manifest { + attributes( + "Main-Class": mainClassName + ) + } +} + +shadowJar { + mergeServiceFiles() + transform(com.github.jengelman.gradle.plugins.shadow.transformers.PropertiesFileTransformer) { + mergeStrategy = "append" + } +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/App.java b/src/main/java/com/mageddo/dnsproxyserver/App.java index fe388d841..4d22cb668 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/App.java +++ b/src/main/java/com/mageddo/dnsproxyserver/App.java @@ -1,14 +1,7 @@ package com.mageddo.dnsproxyserver; import com.mageddo.dnsproxyserver.dns.server.Main; -import nativeimage.Reflection; - -@Reflection( - scanPackage = "com.github.dockerjava.api.model", - constructors = true, - publicMethods = true, - declaredFields = true -) + public class App { public static void main(String[] args) { System.out.println("Hello World"); diff --git a/src/main/resources/META-INF/native-image/docker-java-reflection.json b/src/main/resources/META-INF/native-image/docker-java-reflection.json new file mode 100644 index 000000000..40e05c8ab --- /dev/null +++ b/src/main/resources/META-INF/native-image/docker-java-reflection.json @@ -0,0 +1,1334 @@ +[ + { + "name" : "com.github.dockerjava.api.model.ExposedPorts", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumesRW", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumeBinds", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Ports", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumesFrom", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ErrorResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Binds", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.DockerObject", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumeRW", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Volumes", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ExposedPort", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Volume", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.DockerObjectAccessor", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Links", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.NetworkSettings", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Node", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.GenericResource", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceUpdateStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Link", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmOrchestration", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceReplicatedModeOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.NetworkAttachmentConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.UpdateConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Ulimit", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PidsStatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResponseItem$AuxDetail", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BlkioWeightDevice", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ConfigSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.AuthConfigurations", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerNetworkSettings", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.DeviceRequest", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Secret", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecPrivileges", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeEngineDescription", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerNetwork$Ipam", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ExternalCA", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.EventActor", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Statistics", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Endpoint", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecSecret", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodePlatform", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.WaitResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.InfoRegistryConfig$IndexConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerMount", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecFile", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Version", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.DriverStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmVersion", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Device", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResourceSpecs", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodePluginDescription", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ObjectVersion", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResourceVersion", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TmpfsOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.EndpointVirtualIP", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.HostConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.StatisticNetworksConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNode", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BlkioStatEntry", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Service", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerHostConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ThrottlingDataConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.MemoryStatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ClusterInfo", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ErrorDetail", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VersionPlatform", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceRestartPolicy", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmCAConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeResources", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumeBind", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Network", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Network$Ipam", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.StatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TaskDefaults", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeVersion", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.InfoRegistryConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerNetwork", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResponseItem$ProgressDetail", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Ports$Binding", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Task", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PortConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceGlobalModeOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Container", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmJoinTokens", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PeerNode", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Mount", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SecretSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TaskSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServicePlacement", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Network$ContainerNetworkConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmDispatcherConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PortBinding", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Identifier", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BlkioStatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResourceRequirements", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResponseItem$ErrorDetail", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeManagerStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Network$Ipam$Config", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeDescription", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SearchItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.EndpointSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.RestartPolicy", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TaskStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.HealthCheck", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Config", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerPort", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Repository", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmInfo", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Info", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Bind", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ChangeLog", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumeOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceModeConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VersionComponent", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TaskStatusContainerStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Frame", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BindOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Driver", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.AuthConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Event", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BlkioRateDevice", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecPrivilegesSELinuxContext", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.LogConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.CpuUsageConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.CpuStatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerDNSConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.AuthResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Image", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmRaftConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecPrivilegesCredential", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.LxcConf", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PruneResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.NamedResourceSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.DiscreteResourceSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BuildResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PullResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PushResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.LoadResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.UpdateContainerResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Swarm", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + } +] diff --git a/src/main/resources/META-INF/native-image/native-image.properties b/src/main/resources/META-INF/native-image/native-image.properties index afc0da321..45b1c732e 100644 --- a/src/main/resources/META-INF/native-image/native-image.properties +++ b/src/main/resources/META-INF/native-image/native-image.properties @@ -1,4 +1,4 @@ -Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json \ +Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json|${.}/docker-java-reflection.json \ -H:IncludeResources=.*.yml|.*.properties|cacerts \ -H:+AddAllCharsets \ -H:EnableURLProtocols=http,https \ From 9cdbb30c54de3cffffee4a4693fa77bc1834f97a Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Mon, 30 Jan 2023 21:58:43 -0300 Subject: [PATCH 18/28] Fixing spearator --- .../resources/META-INF/native-image/native-image.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/META-INF/native-image/native-image.properties b/src/main/resources/META-INF/native-image/native-image.properties index 45b1c732e..61352da0b 100644 --- a/src/main/resources/META-INF/native-image/native-image.properties +++ b/src/main/resources/META-INF/native-image/native-image.properties @@ -1,4 +1,4 @@ -Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json|${.}/docker-java-reflection.json \ +Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json,${.}/docker-java-reflection.json \ -H:IncludeResources=.*.yml|.*.properties|cacerts \ -H:+AddAllCharsets \ -H:EnableURLProtocols=http,https \ From eb18a1d0f2aad256da37fc952b3a06d1aef52bc8 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Mon, 30 Jan 2023 22:42:09 -0300 Subject: [PATCH 19/28] adjusting reflection --- .../native-image/docker-java-reflection.json | 1334 ---------------- .../native-image/native-image.properties | 3 +- .../reflection-docker-java-command.json | 272 ++++ .../reflection-docker-java-model.json | 1343 +++++++++++++++++ 4 files changed, 1617 insertions(+), 1335 deletions(-) delete mode 100644 src/main/resources/META-INF/native-image/docker-java-reflection.json create mode 100644 src/main/resources/META-INF/native-image/reflection-docker-java-command.json create mode 100644 src/main/resources/META-INF/native-image/reflection-docker-java-model.json diff --git a/src/main/resources/META-INF/native-image/docker-java-reflection.json b/src/main/resources/META-INF/native-image/docker-java-reflection.json deleted file mode 100644 index 40e05c8ab..000000000 --- a/src/main/resources/META-INF/native-image/docker-java-reflection.json +++ /dev/null @@ -1,1334 +0,0 @@ -[ - { - "name" : "com.github.dockerjava.api.model.ExposedPorts", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.VolumesRW", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.VolumeBinds", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Ports", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.VolumesFrom", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ErrorResponse", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Binds", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.DockerObject", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.VolumeRW", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Volumes", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ExposedPort", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Volume", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.DockerObjectAccessor", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Links", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.NetworkSettings", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Node", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.GenericResource", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ServiceUpdateStatus", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Link", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmOrchestration", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ServiceReplicatedModeOptions", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ServiceSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNodeSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.NetworkAttachmentConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.UpdateConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Ulimit", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.PidsStatsConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ResponseItem$AuxDetail", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.BlkioWeightDevice", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ConfigSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.AuthConfigurations", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerNetworkSettings", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.DeviceRequest", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Secret", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerSpecPrivileges", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNodeEngineDescription", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerNetwork$Ipam", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ExternalCA", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.EventActor", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Statistics", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Endpoint", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerSpecSecret", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNodePlatform", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.WaitResponse", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.InfoRegistryConfig$IndexConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerMount", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ResponseItem", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerSpecFile", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Version", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.DriverStatus", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmVersion", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Device", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ResourceSpecs", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNodePluginDescription", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ObjectVersion", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ResourceVersion", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.TmpfsOptions", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.EndpointVirtualIP", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.HostConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.StatisticNetworksConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNode", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.BlkioStatEntry", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Service", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerHostConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ThrottlingDataConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.MemoryStatsConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ClusterInfo", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ErrorDetail", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.VersionPlatform", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ServiceRestartPolicy", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmCAConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNodeResources", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.VolumeBind", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Network", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Network$Ipam", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.StatsConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.TaskDefaults", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNodeVersion", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.InfoRegistryConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerNetwork", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ResponseItem$ProgressDetail", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Ports$Binding", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Task", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.PortConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ServiceGlobalModeOptions", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Container", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNodeStatus", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmJoinTokens", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.PeerNode", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Mount", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SecretSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.TaskSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ServicePlacement", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Network$ContainerNetworkConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmDispatcherConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.PortBinding", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Identifier", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.BlkioStatsConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ResourceRequirements", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ResponseItem$ErrorDetail", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNodeManagerStatus", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Network$Ipam$Config", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmNodeDescription", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SearchItem", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.EndpointSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.RestartPolicy", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.TaskStatus", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.HealthCheck", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Config", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerPort", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Repository", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmInfo", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Info", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Bind", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ChangeLog", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.VolumeOptions", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ServiceModeConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.VersionComponent", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.TaskStatusContainerStatus", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Frame", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.BindOptions", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Driver", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.AuthConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Event", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.BlkioRateDevice", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerSpecPrivilegesSELinuxContext", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.LogConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.CpuUsageConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.CpuStatsConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerDNSConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.AuthResponse", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Image", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.SwarmRaftConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerSpecPrivilegesCredential", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.ContainerSpecConfig", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.LxcConf", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.PruneResponse", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.NamedResourceSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.DiscreteResourceSpec", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.BuildResponseItem", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.PullResponseItem", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.PushResponseItem", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.LoadResponseItem", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.UpdateContainerResponse", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - }, - { - "name" : "com.github.dockerjava.api.model.Swarm", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allPublicFields" : true, - "allDeclaredFields" : true - } -] diff --git a/src/main/resources/META-INF/native-image/native-image.properties b/src/main/resources/META-INF/native-image/native-image.properties index 61352da0b..31c5339ab 100644 --- a/src/main/resources/META-INF/native-image/native-image.properties +++ b/src/main/resources/META-INF/native-image/native-image.properties @@ -1,4 +1,5 @@ -Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json,${.}/docker-java-reflection.json \ +Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json,${.}/reflection-docker-java-model.json \ + -H:ReflectionConfigurationResources=${.}/reflection-docker-java-command.json \ -H:IncludeResources=.*.yml|.*.properties|cacerts \ -H:+AddAllCharsets \ -H:EnableURLProtocols=http,https \ diff --git a/src/main/resources/META-INF/native-image/reflection-docker-java-command.json b/src/main/resources/META-INF/native-image/reflection-docker-java-command.json new file mode 100644 index 000000000..13de6a1e7 --- /dev/null +++ b/src/main/resources/META-INF/native-image/reflection-docker-java-command.json @@ -0,0 +1,272 @@ +[ + { + "name" : "com.github.dockerjava.api.command.PullImageResultCallback", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.PushImageCmd$1", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.CreateContainerResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.HealthState", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.InspectContainerResponse$ContainerState", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.CreateSecretResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.GraphData", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.InspectExecResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.CreateImageResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.InspectContainerResponse$Node", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.CreateConfigResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.InspectExecResponse$Container", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.InspectContainerResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.ExecCreateCmdResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.InspectVolumeResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.CreateNetworkResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.ListVolumesResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.HealthStateLog", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.GraphDriver", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.InspectContainerResponse$Mount", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.InspectImageResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.TopContainerResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.RootFS", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.CreateServiceResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.InspectExecResponse$ProcessConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.CreateVolumeResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.DelegatingDockerCmdExecFactory", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.LoadImageCallback", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.BuildImageResultCallback", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.command.WaitContainerResultCallback", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + } +] diff --git a/src/main/resources/META-INF/native-image/reflection-docker-java-model.json b/src/main/resources/META-INF/native-image/reflection-docker-java-model.json new file mode 100644 index 000000000..32b0fc5ff --- /dev/null +++ b/src/main/resources/META-INF/native-image/reflection-docker-java-model.json @@ -0,0 +1,1343 @@ +[ + { + "name": "com.github.dockerjava.api.model.ExposedPorts", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.VolumesRW", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.VolumeBinds", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Ports", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.VolumesFrom", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ErrorResponse", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Binds", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.DockerObject", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.VolumeRW", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Volumes", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ExposedPort", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Volume", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.DockerObjectAccessor", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Links", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.NetworkSettings", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Node", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.GenericResource", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ServiceUpdateStatus", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Link", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmOrchestration", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ServiceReplicatedModeOptions", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ServiceSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNodeSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.NetworkAttachmentConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.UpdateConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Ulimit", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.PidsStatsConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ResponseItem$AuxDetail", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.BlkioWeightDevice", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ConfigSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.AuthConfigurations", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerNetworkSettings", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.DeviceRequest", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Secret", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerSpecPrivileges", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNodeEngineDescription", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerNetwork$Ipam", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ExternalCA", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.EventActor", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Statistics", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Endpoint", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerSpecSecret", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNodePlatform", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.WaitResponse", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.InfoRegistryConfig$IndexConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerMount", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ResponseItem", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerSpecFile", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Version", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.DriverStatus", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmVersion", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Device", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ResourceSpecs", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNodePluginDescription", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ObjectVersion", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ResourceVersion", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.TmpfsOptions", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.EndpointVirtualIP", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.HostConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.StatisticNetworksConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNode", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.BlkioStatEntry", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Service", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerHostConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ThrottlingDataConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.MemoryStatsConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ClusterInfo", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ErrorDetail", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.VersionPlatform", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ServiceRestartPolicy", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmCAConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNodeResources", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.VolumeBind", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Network", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Network$Ipam", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.StatsConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.TaskDefaults", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNodeVersion", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.InfoRegistryConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerNetwork", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ResponseItem$ProgressDetail", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Ports$Binding", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Task", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.PortConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ServiceGlobalModeOptions", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Container", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNodeStatus", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmJoinTokens", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.PeerNode", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Mount", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SecretSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.TaskSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ServicePlacement", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Network$ContainerNetworkConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmDispatcherConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.PortBinding", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Identifier", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.BlkioStatsConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ResourceRequirements", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ResponseItem$ErrorDetail", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNodeManagerStatus", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Network$Ipam$Config", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmNodeDescription", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SearchItem", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.EndpointSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.RestartPolicy", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.TaskStatus", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.HealthCheck", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Config", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerPort", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Repository", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmInfo", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Info", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Bind", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ChangeLog", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.VolumeOptions", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ServiceModeConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.VersionComponent", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.TaskStatusContainerStatus", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Frame", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.BindOptions", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Driver", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.AuthConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Event", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.BlkioRateDevice", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerSpecPrivilegesSELinuxContext", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.LogConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.LogConfig$LoggingType", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.CpuUsageConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.CpuStatsConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerDNSConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.AuthResponse", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Image", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.SwarmRaftConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerSpecPrivilegesCredential", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.ContainerSpecConfig", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.LxcConf", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.PruneResponse", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.NamedResourceSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.DiscreteResourceSpec", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.BuildResponseItem", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.PullResponseItem", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.PushResponseItem", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.LoadResponseItem", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.UpdateContainerResponse", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + }, + { + "name": "com.github.dockerjava.api.model.Swarm", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredFields": true + } +] From 2fea9c4d62c3a18dba14e1ed3e8dc42b7df41b12 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Mon, 30 Jan 2023 22:48:10 -0300 Subject: [PATCH 20/28] adjusting reflection --- .../reflection-docker-java-model.json | 2903 +++++++++-------- 1 file changed, 1564 insertions(+), 1339 deletions(-) diff --git a/src/main/resources/META-INF/native-image/reflection-docker-java-model.json b/src/main/resources/META-INF/native-image/reflection-docker-java-model.json index 32b0fc5ff..212061034 100644 --- a/src/main/resources/META-INF/native-image/reflection-docker-java-model.json +++ b/src/main/resources/META-INF/native-image/reflection-docker-java-model.json @@ -1,1343 +1,1568 @@ [ { - "name": "com.github.dockerjava.api.model.ExposedPorts", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.VolumesRW", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.VolumeBinds", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Ports", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.VolumesFrom", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ErrorResponse", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Binds", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.DockerObject", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.VolumeRW", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Volumes", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ExposedPort", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Volume", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.DockerObjectAccessor", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Links", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.NetworkSettings", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Node", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.GenericResource", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ServiceUpdateStatus", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Link", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmOrchestration", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ServiceReplicatedModeOptions", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ServiceSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNodeSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.NetworkAttachmentConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.UpdateConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Ulimit", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.PidsStatsConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ResponseItem$AuxDetail", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.BlkioWeightDevice", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ConfigSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.AuthConfigurations", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerNetworkSettings", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.DeviceRequest", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Secret", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerSpecPrivileges", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNodeEngineDescription", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerNetwork$Ipam", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ExternalCA", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.EventActor", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Statistics", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Endpoint", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerSpecSecret", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNodePlatform", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.WaitResponse", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.InfoRegistryConfig$IndexConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerMount", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ResponseItem", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerSpecFile", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Version", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.DriverStatus", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmVersion", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Device", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ResourceSpecs", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNodePluginDescription", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ObjectVersion", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ResourceVersion", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.TmpfsOptions", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.EndpointVirtualIP", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.HostConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.StatisticNetworksConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNode", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.BlkioStatEntry", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Service", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerHostConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ThrottlingDataConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.MemoryStatsConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ClusterInfo", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ErrorDetail", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.VersionPlatform", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ServiceRestartPolicy", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmCAConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNodeResources", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.VolumeBind", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Network", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Network$Ipam", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.StatsConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.TaskDefaults", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNodeVersion", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.InfoRegistryConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerNetwork", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ResponseItem$ProgressDetail", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Ports$Binding", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Task", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.PortConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ServiceGlobalModeOptions", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Container", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNodeStatus", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmJoinTokens", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.PeerNode", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Mount", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SecretSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.TaskSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ServicePlacement", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Network$ContainerNetworkConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmDispatcherConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.PortBinding", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Identifier", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.BlkioStatsConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ResourceRequirements", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ResponseItem$ErrorDetail", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNodeManagerStatus", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Network$Ipam$Config", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmNodeDescription", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SearchItem", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.EndpointSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.RestartPolicy", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.TaskStatus", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.HealthCheck", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Config", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerPort", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Repository", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmInfo", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Info", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Bind", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ChangeLog", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.VolumeOptions", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ServiceModeConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.VersionComponent", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.TaskStatusContainerStatus", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Frame", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.BindOptions", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Driver", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.AuthConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Event", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.BlkioRateDevice", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerSpecPrivilegesSELinuxContext", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.LogConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.LogConfig$LoggingType", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.CpuUsageConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.CpuStatsConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerDNSConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.AuthResponse", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Image", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.SwarmRaftConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerSpecPrivilegesCredential", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.ContainerSpecConfig", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.LxcConf", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.PruneResponse", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.NamedResourceSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.DiscreteResourceSpec", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.BuildResponseItem", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.PullResponseItem", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.PushResponseItem", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.LoadResponseItem", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.UpdateContainerResponse", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "com.github.dockerjava.api.model.Swarm", - "allDeclaredConstructors": true, - "allPublicConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true + "name" : "com.github.dockerjava.api.model.DockerObject", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.GenericResource", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ClusterInfo", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.NetworkSettings", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Node", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceUpdateStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Link", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmOrchestration", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceReplicatedModeOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.NetworkAttachmentConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.UpdateConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Ulimit", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PidsStatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResponseItem$AuxDetail", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BlkioWeightDevice", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ConfigSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.AuthConfigurations", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerNetworkSettings", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.DeviceRequest", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Secret", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecPrivileges", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeEngineDescription", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerNetwork$Ipam", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ExternalCA", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.EventActor", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Statistics", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Endpoint", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecSecret", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodePlatform", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.WaitResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.InfoRegistryConfig$IndexConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerMount", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecFile", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Version", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.DriverStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmVersion", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Device", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResourceSpecs", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodePluginDescription", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ObjectVersion", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResourceVersion", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TmpfsOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.EndpointVirtualIP", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.HostConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.StatisticNetworksConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNode", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BlkioStatEntry", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Service", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerHostConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ThrottlingDataConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.MemoryStatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ErrorDetail", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VersionPlatform", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceRestartPolicy", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmCAConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeResources", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumeBind", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Network", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Network$Ipam", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.StatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TaskDefaults", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeVersion", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.InfoRegistryConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerNetwork", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResponseItem$ProgressDetail", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Ports$Binding", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Task", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PortConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceGlobalModeOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Container", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmJoinTokens", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PeerNode", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Mount", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SecretSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TaskSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServicePlacement", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Network$ContainerNetworkConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmDispatcherConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PortBinding", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Identifier", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BlkioStatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResourceRequirements", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ResponseItem$ErrorDetail", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeManagerStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Network$Ipam$Config", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeDescription", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SearchItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.EndpointSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.RestartPolicy", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TaskStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.HealthCheck", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Config", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerPort", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Repository", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmInfo", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Info", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Bind", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ChangeLog", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumeOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceModeConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VersionComponent", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TaskStatusContainerStatus", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Frame", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BindOptions", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Driver", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.AuthConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Event", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BlkioRateDevice", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecPrivilegesSELinuxContext", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.LogConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.CpuUsageConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.CpuStatsConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerDNSConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.AuthResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Image", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmRaftConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecPrivilegesCredential", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ContainerSpecConfig", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.LxcConf", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PruneResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BuildResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PullResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PushResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.LoadResponseItem", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.UpdateContainerResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceRestartCondition", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeRole", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.EndpointResolutionMode", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.UpdateFailureAction", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.StreamType", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ExternalCAProtocol", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PortConfigProtocol", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Reachability", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Isolation", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PropagationMode", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.TaskState", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.InternetProtocol", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.UpdateOrder", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.LogConfig$LoggingType", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.MountType", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SELContext", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.AccessMode", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.BindPropagation", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeAvailability", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.SwarmNodeState", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PruneType", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Capability", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.PortConfig$PublishMode", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceMode", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.LocalNodeState", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.EventType", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ServiceUpdateState", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.NamedResourceSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.DiscreteResourceSpec", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Swarm", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumesRW", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumesFrom", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ExposedPort", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Volumes", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Volume", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Links", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ExposedPorts", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumeRW", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.VolumeBinds", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Ports", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.ErrorResponse", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true + }, + { + "name" : "com.github.dockerjava.api.model.Binds", + "allDeclaredConstructors" : true, + "allPublicConstructors" : true, + "allDeclaredMethods" : true, + "allPublicMethods" : true, + "allPublicFields" : true, + "allDeclaredFields" : true } ] From a00f698270b79b9fdeb0be7c5eb8adba5f6dd794 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Mon, 30 Jan 2023 23:11:19 -0300 Subject: [PATCH 21/28] More reflection stuff --- README.alpha.md | 9 + .../graal-generated/jni-config.json | 6 + .../predefined-classes-config.json | 8 + .../graal-generated/proxy-config.json | 2 + .../graal-generated/reflect-config.json | 520 ++++++++++++++++++ .../graal-generated/resource-config.json | 18 + .../graal-generated/serialization-config.json | 8 + .../native-image/native-image.properties | 7 +- .../native-image/reflection-config.json | 8 +- src/main/resources/logback.xml | 1 - 10 files changed, 582 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/META-INF/native-image/graal-generated/jni-config.json create mode 100644 src/main/resources/META-INF/native-image/graal-generated/predefined-classes-config.json create mode 100644 src/main/resources/META-INF/native-image/graal-generated/proxy-config.json create mode 100644 src/main/resources/META-INF/native-image/graal-generated/reflect-config.json create mode 100644 src/main/resources/META-INF/native-image/graal-generated/resource-config.json create mode 100644 src/main/resources/META-INF/native-image/graal-generated/serialization-config.json diff --git a/README.alpha.md b/README.alpha.md index 1c57b4e2f..ae59a15de 100644 --- a/README.alpha.md +++ b/README.alpha.md @@ -19,3 +19,12 @@ docker-compose -f docker-compose-alpha.yml build &&\ docker-compose -f docker-compose-alpha.yml run -T --rm arm7x86 ``` +Generate json reflect for all project + +``` +$ ./gradlew shadowJar + +$ mkdir reflect &&\ + $JAVA_HOME/bin/java -agentlib:native-image-agent=config-output-dir=./reflect -jar build/libs/dns-proxy-server*all.jar +``` + diff --git a/src/main/resources/META-INF/native-image/graal-generated/jni-config.json b/src/main/resources/META-INF/native-image/graal-generated/jni-config.json new file mode 100644 index 000000000..8b4e41703 --- /dev/null +++ b/src/main/resources/META-INF/native-image/graal-generated/jni-config.json @@ -0,0 +1,6 @@ +[ +{ + "name":"java.lang.Boolean", + "methods":[{"name":"getBoolean","parameterTypes":["java.lang.String"] }] +} +] diff --git a/src/main/resources/META-INF/native-image/graal-generated/predefined-classes-config.json b/src/main/resources/META-INF/native-image/graal-generated/predefined-classes-config.json new file mode 100644 index 000000000..0e79b2c5d --- /dev/null +++ b/src/main/resources/META-INF/native-image/graal-generated/predefined-classes-config.json @@ -0,0 +1,8 @@ +[ + { + "type":"agent-extracted", + "classes":[ + ] + } +] + diff --git a/src/main/resources/META-INF/native-image/graal-generated/proxy-config.json b/src/main/resources/META-INF/native-image/graal-generated/proxy-config.json new file mode 100644 index 000000000..0d4f101c7 --- /dev/null +++ b/src/main/resources/META-INF/native-image/graal-generated/proxy-config.json @@ -0,0 +1,2 @@ +[ +] diff --git a/src/main/resources/META-INF/native-image/graal-generated/reflect-config.json b/src/main/resources/META-INF/native-image/graal-generated/reflect-config.json new file mode 100644 index 000000000..41b2ebd2d --- /dev/null +++ b/src/main/resources/META-INF/native-image/graal-generated/reflect-config.json @@ -0,0 +1,520 @@ +[ +{ + "name":"[Lcom.fasterxml.jackson.databind.deser.BeanDeserializerModifier;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.Bind;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.Capability;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.ContainerPort;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.Device;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.ExposedPort;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.Link;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.LxcConf;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.PortBinding;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.Ports$Binding;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.Ulimit;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.VolumeBind;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.VolumeRW;" +}, +{ + "name":"[Lcom.github.dockerjava.api.model.VolumesFrom;" +}, +{ + "name":"[Ljava.lang.String;" +}, +{ + "name":"ch.qos.logback.classic.encoder.PatternLayoutEncoder", + "queryAllPublicMethods":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.DateConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.LevelConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.LineOfCallerConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.LineSeparatorConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.LoggerConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.MessageConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.MethodOfCallerConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.ThreadConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.core.ConsoleAppender", + "queryAllPublicMethods":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.core.OutputStreamAppender", + "methods":[{"name":"setEncoder","parameterTypes":["ch.qos.logback.core.encoder.Encoder"] }] +}, +{ + "name":"ch.qos.logback.core.encoder.LayoutWrappingEncoder", + "methods":[ + {"name":"setCharset","parameterTypes":["java.nio.charset.Charset"] }, + {"name":"setParent","parameterTypes":["ch.qos.logback.core.spi.ContextAware"] } + ] +}, +{ + "name":"ch.qos.logback.core.pattern.PatternLayoutEncoderBase", + "methods":[{"name":"setPattern","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"com.fasterxml.jackson.databind.ext.Java7HandlersImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.fasterxml.jackson.databind.ext.Java7SupportImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.command.GraphData", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.command.GraphDriver", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.command.HealthState", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.command.HealthStateLog", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.command.InspectContainerResponse", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.command.InspectContainerResponse$ContainerState", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "queryAllPublicConstructors":true, + "methods":[{"name":"","parameterTypes":["com.github.dockerjava.api.command.InspectContainerResponse"] }] +}, +{ + "name":"com.github.dockerjava.api.command.InspectContainerResponse$Mount", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.command.InspectContainerResponse$Node", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "queryAllPublicConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.AccessMode", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"com.github.dockerjava.api.model.Bind", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.BindOptions", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.BindPropagation", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"com.github.dockerjava.api.model.Binds", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"fromPrimitive","parameterTypes":["java.lang.String[]"] }] +}, +{ + "name":"com.github.dockerjava.api.model.BlkioRateDevice", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.BlkioWeightDevice", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.Capability", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"com.github.dockerjava.api.model.Container", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.ContainerConfig", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.ContainerHostConfig", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.ContainerMount", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.ContainerNetwork", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.ContainerNetwork$Ipam", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.ContainerNetworkSettings", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.ContainerPort", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.Device", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.DeviceRequest", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.DockerObject", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"com.github.dockerjava.api.model.Driver", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.ExposedPort", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.ExposedPorts", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"fromPrimitive","parameterTypes":["java.util.Map"] }] +}, +{ + "name":"com.github.dockerjava.api.model.HealthCheck", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.HostConfig", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.InternetProtocol", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"com.github.dockerjava.api.model.Isolation", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "methods":[{"name":"fromValue","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"com.github.dockerjava.api.model.Link", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.Links", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.LogConfig", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"","parameterTypes":[] }, + {"name":"setType","parameterTypes":["com.github.dockerjava.api.model.LogConfig$LoggingType"] } + ] +}, +{ + "name":"com.github.dockerjava.api.model.LogConfig$LoggingType", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "methods":[{"name":"fromValue","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"com.github.dockerjava.api.model.LxcConf", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.Mount", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.MountType", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"com.github.dockerjava.api.model.NetworkSettings", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.Ports", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"fromPrimitive","parameterTypes":["java.util.Map"] }] +}, +{ + "name":"com.github.dockerjava.api.model.Ports$Binding", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.PropagationMode", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"com.github.dockerjava.api.model.RestartPolicy", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.github.dockerjava.api.model.SELContext", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"com.github.dockerjava.api.model.TmpfsOptions", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.Ulimit", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.Volume", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"com.github.dockerjava.api.model.VolumeBind", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.VolumeBinds", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.VolumeOptions", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.VolumeRW", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.VolumesFrom", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.github.dockerjava.api.model.VolumesRW", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"java.io.FilePermission" +}, +{ + "name":"java.io.Serializable", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.lang.RuntimePermission" +}, +{ + "name":"java.net.NetPermission" +}, +{ + "name":"java.net.SocketPermission" +}, +{ + "name":"java.net.URLPermission", + "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.String"] }] +}, +{ + "name":"java.net.UnixDomainSocketAddress", + "methods":[{"name":"of","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.security.AllPermission" +}, +{ + "name":"java.security.SecureRandomParameters" +}, +{ + "name":"java.security.SecurityPermission" +}, +{ + "name":"java.util.PropertyPermission" +}, +{ + "name":"javax.management.ObjectName" +}, +{ + "name":"sun.security.provider.NativePRNG", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.NativePRNG$NonBlocking", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA", + "methods":[{"name":"","parameterTypes":[] }] +} +] diff --git a/src/main/resources/META-INF/native-image/graal-generated/resource-config.json b/src/main/resources/META-INF/native-image/graal-generated/resource-config.json new file mode 100644 index 000000000..fc3eaf28d --- /dev/null +++ b/src/main/resources/META-INF/native-image/graal-generated/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources":{ + "includes":[ + { + "pattern":"\\Qlogback.xml\\E" + }, + { + "pattern":"\\Qmozilla/public-suffix-list.txt\\E" + }, + { + "pattern":"\\Qorg/apache/hc/client5/version.properties\\E" + }, + { + "pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E" + } + ]}, + "bundles":[] +} diff --git a/src/main/resources/META-INF/native-image/graal-generated/serialization-config.json b/src/main/resources/META-INF/native-image/graal-generated/serialization-config.json new file mode 100644 index 000000000..f3d7e06e3 --- /dev/null +++ b/src/main/resources/META-INF/native-image/graal-generated/serialization-config.json @@ -0,0 +1,8 @@ +{ + "types":[ + ], + "lambdaCapturingTypes":[ + ], + "proxies":[ + ] +} diff --git a/src/main/resources/META-INF/native-image/native-image.properties b/src/main/resources/META-INF/native-image/native-image.properties index 31c5339ab..2e6a1769f 100644 --- a/src/main/resources/META-INF/native-image/native-image.properties +++ b/src/main/resources/META-INF/native-image/native-image.properties @@ -1,6 +1,7 @@ -Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json,${.}/reflection-docker-java-model.json \ - -H:ReflectionConfigurationResources=${.}/reflection-docker-java-command.json \ - -H:IncludeResources=.*.yml|.*.properties|cacerts \ +Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json \ + -H:ReflectionConfigurationResources=${.}/reflection-docker-java-command.json,${.}/reflection-docker-java-model.json \ + -H:ReflectionConfigurationResources=${.}/graal-generated/*.json \ + -H:IncludeResources=.*.yml|.*.properties|cacerts|logback.xml \ -H:+AddAllCharsets \ -H:EnableURLProtocols=http,https \ --enable-all-security-services \ diff --git a/src/main/resources/META-INF/native-image/reflection-config.json b/src/main/resources/META-INF/native-image/reflection-config.json index fe51488c7..98f24c30f 100644 --- a/src/main/resources/META-INF/native-image/reflection-config.json +++ b/src/main/resources/META-INF/native-image/reflection-config.json @@ -1 +1,7 @@ -[] +[ + { + "name": "ch.qos.logback.core.ConsoleAppender", + "allDeclaredConstructors": true, + "allPublicConstructors": true + } +] diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index e00bebadc..36f2398bc 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -16,6 +16,5 @@ - From 203b2451b4ebd9e408bd4b921adce9307c27d66c Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Mon, 30 Jan 2023 23:13:16 -0300 Subject: [PATCH 22/28] Adjusting --- .../resources/META-INF/native-image/native-image.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/resources/META-INF/native-image/native-image.properties b/src/main/resources/META-INF/native-image/native-image.properties index 2e6a1769f..9a0e0c50d 100644 --- a/src/main/resources/META-INF/native-image/native-image.properties +++ b/src/main/resources/META-INF/native-image/native-image.properties @@ -1,6 +1,8 @@ Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json \ -H:ReflectionConfigurationResources=${.}/reflection-docker-java-command.json,${.}/reflection-docker-java-model.json \ - -H:ReflectionConfigurationResources=${.}/graal-generated/*.json \ + -H:ReflectionConfigurationResources=${.}/graal-generated/jni-config.json \ + -H:ReflectionConfigurationResources=${.}/graal-generated/reflect-config.json \ + -H:ReflectionConfigurationResources=${.}/graal-generated/resource-config.json \ -H:IncludeResources=.*.yml|.*.properties|cacerts|logback.xml \ -H:+AddAllCharsets \ -H:EnableURLProtocols=http,https \ From 5b1b2b72a61439bf2824c13dad8f1c01ae663fd3 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Mon, 30 Jan 2023 23:20:23 -0300 Subject: [PATCH 23/28] Native image log fixed --- .../resources/META-INF/native-image/native-image.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/resources/META-INF/native-image/native-image.properties b/src/main/resources/META-INF/native-image/native-image.properties index 9a0e0c50d..bda581df0 100644 --- a/src/main/resources/META-INF/native-image/native-image.properties +++ b/src/main/resources/META-INF/native-image/native-image.properties @@ -2,8 +2,7 @@ Args=-H:ReflectionConfigurationResources=${.}/reflection-config.json \ -H:ReflectionConfigurationResources=${.}/reflection-docker-java-command.json,${.}/reflection-docker-java-model.json \ -H:ReflectionConfigurationResources=${.}/graal-generated/jni-config.json \ -H:ReflectionConfigurationResources=${.}/graal-generated/reflect-config.json \ - -H:ReflectionConfigurationResources=${.}/graal-generated/resource-config.json \ - -H:IncludeResources=.*.yml|.*.properties|cacerts|logback.xml \ + -H:IncludeResources=.*.yml|.*.properties|cacerts|logback.xml|org/apache/hc/client5/version.properties|org/slf4j/impl/StaticLoggerBinder.class \ -H:+AddAllCharsets \ -H:EnableURLProtocols=http,https \ --enable-all-security-services \ From d05cd67d4ccad6735b3b640d3845b48500737ae6 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Mon, 30 Jan 2023 23:21:00 -0300 Subject: [PATCH 24/28] removing unnecessary files --- .../predefined-classes-config.json | 8 -------- .../graal-generated/proxy-config.json | 2 -- .../graal-generated/resource-config.json | 18 ------------------ .../graal-generated/serialization-config.json | 8 -------- 4 files changed, 36 deletions(-) delete mode 100644 src/main/resources/META-INF/native-image/graal-generated/predefined-classes-config.json delete mode 100644 src/main/resources/META-INF/native-image/graal-generated/proxy-config.json delete mode 100644 src/main/resources/META-INF/native-image/graal-generated/resource-config.json delete mode 100644 src/main/resources/META-INF/native-image/graal-generated/serialization-config.json diff --git a/src/main/resources/META-INF/native-image/graal-generated/predefined-classes-config.json b/src/main/resources/META-INF/native-image/graal-generated/predefined-classes-config.json deleted file mode 100644 index 0e79b2c5d..000000000 --- a/src/main/resources/META-INF/native-image/graal-generated/predefined-classes-config.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "type":"agent-extracted", - "classes":[ - ] - } -] - diff --git a/src/main/resources/META-INF/native-image/graal-generated/proxy-config.json b/src/main/resources/META-INF/native-image/graal-generated/proxy-config.json deleted file mode 100644 index 0d4f101c7..000000000 --- a/src/main/resources/META-INF/native-image/graal-generated/proxy-config.json +++ /dev/null @@ -1,2 +0,0 @@ -[ -] diff --git a/src/main/resources/META-INF/native-image/graal-generated/resource-config.json b/src/main/resources/META-INF/native-image/graal-generated/resource-config.json deleted file mode 100644 index fc3eaf28d..000000000 --- a/src/main/resources/META-INF/native-image/graal-generated/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources":{ - "includes":[ - { - "pattern":"\\Qlogback.xml\\E" - }, - { - "pattern":"\\Qmozilla/public-suffix-list.txt\\E" - }, - { - "pattern":"\\Qorg/apache/hc/client5/version.properties\\E" - }, - { - "pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E" - } - ]}, - "bundles":[] -} diff --git a/src/main/resources/META-INF/native-image/graal-generated/serialization-config.json b/src/main/resources/META-INF/native-image/graal-generated/serialization-config.json deleted file mode 100644 index f3d7e06e3..000000000 --- a/src/main/resources/META-INF/native-image/graal-generated/serialization-config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "types":[ - ], - "lambdaCapturingTypes":[ - ], - "proxies":[ - ] -} From 45e5cb16193a03e533014655c5b9bb3ae9a0995a Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Tue, 31 Jan 2023 00:02:20 -0300 Subject: [PATCH 25/28] refactoring packages --- src/main/java/com/mageddo/dnsproxyserver/App.java | 2 +- .../java/com/mageddo/dnsproxyserver/config/Configs.java | 4 ++-- .../java/com/mageddo/dnsproxyserver/dagger/Factory.java | 4 ++-- .../java/com/mageddo/dnsproxyserver/dagger/MainModule.java | 6 +++--- .../dnsproxyserver/{dns/server => server/dns}/Main.java | 2 +- .../mageddo/dnsproxyserver/{ => server}/dns/Messages.java | 2 +- .../dnsproxyserver/{dns/server => server/dns}/README.md | 0 .../{dns/server => server/dns}/ResolveExample.java | 4 ++-- .../{dns/server => server/dns}/ServerStarter.java | 6 +++--- .../{dns/server => server/dns}/SimpleServer.java | 4 ++-- .../{dns/server => server/dns}/UDPServer.java | 6 +++--- .../{dns/server => server/dns}/solver/DockerSolver.java | 2 +- .../{dns/server => server/dns}/solver/Priority.java | 2 +- .../{dns/server => server/dns}/solver/RemoteSolver.java | 2 +- .../server => server/dns}/solver/RemoteSolverConfig.java | 2 +- .../{dns/server => server/dns}/solver/Solver.java | 2 +- .../{dns/server => server/dns}/solver/Solvers.java | 4 +--- .../{dns/server => server/dns}/solver/Wildcards.java | 2 +- .../dnsproxyserver/dns/server/solver/WildcardsTest.java | 4 ++-- 19 files changed, 29 insertions(+), 31 deletions(-) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/Main.java (89%) rename src/main/java/com/mageddo/dnsproxyserver/{ => server}/dns/Messages.java (77%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/README.md (100%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/ResolveExample.java (97%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/ServerStarter.java (80%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/SimpleServer.java (84%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/UDPServer.java (93%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/solver/DockerSolver.java (98%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/solver/Priority.java (79%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/solver/RemoteSolver.java (92%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/solver/RemoteSolverConfig.java (87%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/solver/Solver.java (73%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/solver/Solvers.java (73%) rename src/main/java/com/mageddo/dnsproxyserver/{dns/server => server/dns}/solver/Wildcards.java (91%) diff --git a/src/main/java/com/mageddo/dnsproxyserver/App.java b/src/main/java/com/mageddo/dnsproxyserver/App.java index 4d22cb668..268c7d005 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/App.java +++ b/src/main/java/com/mageddo/dnsproxyserver/App.java @@ -1,6 +1,6 @@ package com.mageddo.dnsproxyserver; -import com.mageddo.dnsproxyserver.dns.server.Main; +import com.mageddo.dnsproxyserver.server.dns.Main; public class App { public static void main(String[] args) { diff --git a/src/main/java/com/mageddo/dnsproxyserver/config/Configs.java b/src/main/java/com/mageddo/dnsproxyserver/config/Configs.java index baaf7f348..bcbca5d3a 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/config/Configs.java +++ b/src/main/java/com/mageddo/dnsproxyserver/config/Configs.java @@ -1,7 +1,7 @@ package com.mageddo.dnsproxyserver.config; -import com.mageddo.dnsproxyserver.dns.server.solver.RemoteSolverConfig; -import com.mageddo.dnsproxyserver.dns.server.SimpleServer; +import com.mageddo.dnsproxyserver.server.dns.solver.RemoteSolverConfig; +import com.mageddo.dnsproxyserver.server.dns.SimpleServer; public class Configs { public static int findDnsServerPort() { diff --git a/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java b/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java index eeb87697b..1d4b9a84f 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dagger/Factory.java @@ -1,7 +1,7 @@ package com.mageddo.dnsproxyserver.dagger; -import com.mageddo.dnsproxyserver.dns.server.ServerStarter; -import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import com.mageddo.dnsproxyserver.server.dns.ServerStarter; +import com.mageddo.dnsproxyserver.server.dns.solver.Solver; import dagger.Component; import javax.inject.Singleton; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java b/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java index 55cdceb32..4f3aa135c 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java +++ b/src/main/java/com/mageddo/dnsproxyserver/dagger/MainModule.java @@ -1,9 +1,9 @@ package com.mageddo.dnsproxyserver.dagger; import com.mageddo.dnsproxyserver.config.Configs; -import com.mageddo.dnsproxyserver.dns.server.solver.DockerSolver; -import com.mageddo.dnsproxyserver.dns.server.solver.RemoteSolver; -import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import com.mageddo.dnsproxyserver.server.dns.solver.DockerSolver; +import com.mageddo.dnsproxyserver.server.dns.solver.RemoteSolver; +import com.mageddo.dnsproxyserver.server.dns.solver.Solver; import dagger.Module; import dagger.Provides; import dagger.multibindings.ElementsIntoSet; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/Main.java similarity index 89% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/Main.java index f0d445602..9bdee3bc9 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/Main.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/Main.java @@ -1,4 +1,4 @@ -package com.mageddo.dnsproxyserver.dns.server; +package com.mageddo.dnsproxyserver.server.dns; import com.mageddo.dnsproxyserver.dagger.Factory; import lombok.SneakyThrows; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/Messages.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/Messages.java similarity index 77% rename from src/main/java/com/mageddo/dnsproxyserver/dns/Messages.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/Messages.java index d4fa6c908..3bc3c91bf 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/Messages.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/Messages.java @@ -1,4 +1,4 @@ -package com.mageddo.dnsproxyserver.dns; +package com.mageddo.dnsproxyserver.server.dns; import org.xbill.DNS.Message; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/README.md b/src/main/java/com/mageddo/dnsproxyserver/server/dns/README.md similarity index 100% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/README.md rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/README.md diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ResolveExample.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/ResolveExample.java similarity index 97% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/ResolveExample.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/ResolveExample.java index bcbe1b904..eb4f46686 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ResolveExample.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/ResolveExample.java @@ -1,4 +1,4 @@ -package com.mageddo.dnsproxyserver.dns.server; +package com.mageddo.dnsproxyserver.server.dns; import org.xbill.DNS.DClass; import org.xbill.DNS.Flags; @@ -51,4 +51,4 @@ private static void sendAndPrint(Resolver vr, String name) throws IOException { } } } -} \ No newline at end of file +} diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/ServerStarter.java similarity index 80% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/ServerStarter.java index adc4a750a..85b95ee02 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/ServerStarter.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/ServerStarter.java @@ -1,8 +1,8 @@ -package com.mageddo.dnsproxyserver.dns.server; +package com.mageddo.dnsproxyserver.server.dns; import com.mageddo.dnsproxyserver.config.Configs; -import com.mageddo.dnsproxyserver.dns.server.solver.Solver; -import com.mageddo.dnsproxyserver.dns.server.solver.Solvers; +import com.mageddo.dnsproxyserver.server.dns.solver.Solver; +import com.mageddo.dnsproxyserver.server.dns.solver.Solvers; import lombok.Getter; import lombok.experimental.Accessors; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/SimpleServer.java similarity index 84% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/SimpleServer.java index e2d18cb87..5d2bc1555 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/SimpleServer.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/SimpleServer.java @@ -1,6 +1,6 @@ -package com.mageddo.dnsproxyserver.dns.server; +package com.mageddo.dnsproxyserver.server.dns; -import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import com.mageddo.dnsproxyserver.server.dns.solver.Solver; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/UDPServer.java similarity index 93% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/UDPServer.java index 1e119e38a..f4028f261 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/UDPServer.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/UDPServer.java @@ -1,6 +1,6 @@ -package com.mageddo.dnsproxyserver.dns.server; +package com.mageddo.dnsproxyserver.server.dns; -import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +import com.mageddo.dnsproxyserver.server.dns.solver.Solver; import com.mageddo.dnsproxyserver.threads.ThreadPool; import com.mageddo.dnsproxyserver.utils.Classes; import lombok.extern.slf4j.Slf4j; @@ -15,7 +15,7 @@ import java.util.List; import java.util.concurrent.ExecutorService; -import static com.mageddo.dnsproxyserver.dns.Messages.simplePrint; +import static com.mageddo.dnsproxyserver.server.dns.Messages.simplePrint; @Slf4j public class UDPServer { diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/DockerSolver.java similarity index 98% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/DockerSolver.java index b15f0f155..8a3d7ac74 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/DockerSolver.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/DockerSolver.java @@ -1,4 +1,4 @@ -package com.mageddo.dnsproxyserver.dns.server.solver; +package com.mageddo.dnsproxyserver.server.dns.solver; import com.mageddo.dnsproxyserver.docker.DockerRepository; import com.mageddo.dnsproxyserver.utils.Ips; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Priority.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Priority.java similarity index 79% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Priority.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Priority.java index ae9073d19..0d122ec19 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Priority.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Priority.java @@ -1,4 +1,4 @@ -package com.mageddo.dnsproxyserver.dns.server.solver; +package com.mageddo.dnsproxyserver.server.dns.solver; public class Priority { public static final byte ZERO = 1; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/RemoteSolver.java similarity index 92% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/RemoteSolver.java index c7974862b..bc1f53127 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolver.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/RemoteSolver.java @@ -1,4 +1,4 @@ -package com.mageddo.dnsproxyserver.dns.server.solver; +package com.mageddo.dnsproxyserver.server.dns.solver; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/RemoteSolverConfig.java similarity index 87% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/RemoteSolverConfig.java index 9934ab737..f5926b2ba 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/RemoteSolverConfig.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/RemoteSolverConfig.java @@ -1,4 +1,4 @@ -package com.mageddo.dnsproxyserver.dns.server.solver; +package com.mageddo.dnsproxyserver.server.dns.solver; import com.mageddo.dnsproxyserver.utils.Ips; import lombok.Data; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Solver.java similarity index 73% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Solver.java index 8dd153999..1269c9274 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solver.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Solver.java @@ -1,4 +1,4 @@ -package com.mageddo.dnsproxyserver.dns.server.solver; +package com.mageddo.dnsproxyserver.server.dns.solver; import org.xbill.DNS.Message; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solvers.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Solvers.java similarity index 73% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solvers.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Solvers.java index b76419a68..0c5597b44 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Solvers.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Solvers.java @@ -1,6 +1,4 @@ -package com.mageddo.dnsproxyserver.dns.server.solver; - -import com.mageddo.dnsproxyserver.dns.server.solver.Solver; +package com.mageddo.dnsproxyserver.server.dns.solver; import java.util.ArrayList; import java.util.Comparator; diff --git a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Wildcards.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Wildcards.java similarity index 91% rename from src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Wildcards.java rename to src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Wildcards.java index f5fa1b6ab..544ec689b 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/dns/server/solver/Wildcards.java +++ b/src/main/java/com/mageddo/dnsproxyserver/server/dns/solver/Wildcards.java @@ -1,4 +1,4 @@ -package com.mageddo.dnsproxyserver.dns.server.solver; +package com.mageddo.dnsproxyserver.server.dns.solver; import java.util.ArrayList; import java.util.List; diff --git a/src/test/java/com/mageddo/dnsproxyserver/dns/server/solver/WildcardsTest.java b/src/test/java/com/mageddo/dnsproxyserver/dns/server/solver/WildcardsTest.java index a25757c11..7d08c0bd1 100644 --- a/src/test/java/com/mageddo/dnsproxyserver/dns/server/solver/WildcardsTest.java +++ b/src/test/java/com/mageddo/dnsproxyserver/dns/server/solver/WildcardsTest.java @@ -2,7 +2,7 @@ import org.junit.jupiter.api.Test; -import static com.mageddo.dnsproxyserver.dns.server.solver.Wildcards.buildHostAndWildcards; +import static com.mageddo.dnsproxyserver.server.dns.solver.Wildcards.buildHostAndWildcards; import static org.junit.jupiter.api.Assertions.assertEquals; class WildcardsTest { @@ -20,4 +20,4 @@ void mustGenerateHostsAndWildcardsTo(){ result.toString() ); } -} \ No newline at end of file +} From eb4f9dcf6a818238eb168d5c81e7c1fdbc6cd5f5 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Tue, 31 Jan 2023 00:02:37 -0300 Subject: [PATCH 26/28] unused class --- .../server/dns/ResolveExample.java | 54 ------------------- 1 file changed, 54 deletions(-) delete mode 100644 src/main/java/com/mageddo/dnsproxyserver/server/dns/ResolveExample.java diff --git a/src/main/java/com/mageddo/dnsproxyserver/server/dns/ResolveExample.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/ResolveExample.java deleted file mode 100644 index eb4f46686..000000000 --- a/src/main/java/com/mageddo/dnsproxyserver/server/dns/ResolveExample.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.mageddo.dnsproxyserver.server.dns; - -import org.xbill.DNS.DClass; -import org.xbill.DNS.Flags; -import org.xbill.DNS.Message; -import org.xbill.DNS.Name; -import org.xbill.DNS.RRset; -import org.xbill.DNS.Rcode; -import org.xbill.DNS.Record; -import org.xbill.DNS.Resolver; -import org.xbill.DNS.Section; -import org.xbill.DNS.SimpleResolver; -import org.xbill.DNS.TXTRecord; -import org.xbill.DNS.Type; -import org.xbill.DNS.dnssec.ValidatingResolver; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.nio.charset.StandardCharsets; - -public class ResolveExample { - static String ROOT = ". IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D"; - - public static void main(String[] args) throws Exception { - // Send two sample queries using a standard resolver - SimpleResolver sr = new SimpleResolver("4.2.2.1"); - System.out.println("Standard resolver:"); - sendAndPrint(sr, "www.dnssec-failed.org."); - sendAndPrint(sr, "www.isc.org."); - - // Send the same queries using the validating resolver with the - // trust anchor of the root zone - // http://data.iana.org/root-anchors/root-anchors.xml - ValidatingResolver vr = new ValidatingResolver(sr); - vr.loadTrustAnchors(new ByteArrayInputStream(ROOT.getBytes(StandardCharsets.US_ASCII))); - System.out.println("\n\nValidating resolver:"); - sendAndPrint(vr, "www.dnssec-failed.org."); - sendAndPrint(vr, "www.isc.org."); - } - - private static void sendAndPrint(Resolver vr, String name) throws IOException { - System.out.println("\n---" + name); - Record qr = Record.newRecord(Name.fromConstantString(name), Type.A, DClass.IN); - Message response = vr.send(Message.newQuery(qr)); - System.out.println("AD-Flag: " + response.getHeader().getFlag(Flags.AD)); - System.out.println("RCode: " + Rcode.string(response.getRcode())); - for (RRset set : response.getSectionRRsets(Section.ADDITIONAL)) { - if (set.getName().equals(Name.root) && set.getType() == Type.TXT - && set.getDClass() == ValidatingResolver.VALIDATION_REASON_QCLASS) { - System.out.println("Reason: " + ((TXTRecord) set.first()).getStrings().get(0)); - } - } - } -} From 3eb546c4204c0bc28a55a67033bb5a58dd309303 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Tue, 31 Jan 2023 00:07:09 -0300 Subject: [PATCH 27/28] fixing javadoc --- .../com/mageddo/dnsproxyserver/docker/DockerRepository.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java index 4ed366e19..a97a8ac05 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java +++ b/src/main/java/com/mageddo/dnsproxyserver/docker/DockerRepository.java @@ -1,11 +1,11 @@ package com.mageddo.dnsproxyserver.docker; public interface DockerRepository { - String findHostIp(String host); - /** * * @param host * @return the host ip */ + String findHostIp(String host); + } From b386d1b73777340b4dc153b79c05367e0348be15 Mon Sep 17 00:00:00 2001 From: Elvis de Freitas Date: Tue, 31 Jan 2023 00:08:12 -0300 Subject: [PATCH 28/28] unifiying --- .../java/com/mageddo/dnsproxyserver/App.java | 14 +++++----- .../dnsproxyserver/server/dns/Main.java | 26 ------------------- 2 files changed, 8 insertions(+), 32 deletions(-) delete mode 100644 src/main/java/com/mageddo/dnsproxyserver/server/dns/Main.java diff --git a/src/main/java/com/mageddo/dnsproxyserver/App.java b/src/main/java/com/mageddo/dnsproxyserver/App.java index 268c7d005..6385f17ab 100644 --- a/src/main/java/com/mageddo/dnsproxyserver/App.java +++ b/src/main/java/com/mageddo/dnsproxyserver/App.java @@ -1,21 +1,23 @@ package com.mageddo.dnsproxyserver; -import com.mageddo.dnsproxyserver.server.dns.Main; +import com.mageddo.dnsproxyserver.dagger.Factory; public class App { - public static void main(String[] args) { - System.out.println("Hello World"); - - // start webserver + public static void main(String[] args) throws InterruptedException { + final var factory = Factory.factory(); // start dns server + factory.dnsServerStarter().start(); + + // start webserver // configurations // setup as default dns + // install as service - Main.main(args); + Thread.currentThread().join(); } } diff --git a/src/main/java/com/mageddo/dnsproxyserver/server/dns/Main.java b/src/main/java/com/mageddo/dnsproxyserver/server/dns/Main.java deleted file mode 100644 index 9bdee3bc9..000000000 --- a/src/main/java/com/mageddo/dnsproxyserver/server/dns/Main.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.mageddo.dnsproxyserver.server.dns; - -import com.mageddo.dnsproxyserver.dagger.Factory; -import lombok.SneakyThrows; - -public class Main { - @SneakyThrows - public static void main(String[] args) { - final var factory = Factory.factory(); - - // start dns server - factory.dnsServerStarter().start(); - - // start webserver - - // configurations - - // setup as default dns - - // install as service - - Thread.currentThread().join(); - - - } -}