From f2705e45744230108a2e3c4b07040af4e2545c39 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Thu, 11 Apr 2019 00:09:42 -0400 Subject: [PATCH] Resolver implements AutoCloseable --- .../java/com/moparisthebest/dns/resolve/CacheResolver.java | 5 ----- .../dns/resolve/DelegatingQueueProcessingResolver.java | 6 ++++++ .../main/java/com/moparisthebest/dns/resolve/Resolver.java | 6 +++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/CacheResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/CacheResolver.java index 12b7f61..294bd2b 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/CacheResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/CacheResolver.java @@ -50,11 +50,6 @@ public class CacheResolver implements Resolver, AutoCloseable { return this; } - @Override - public void close() { - - } - private class CachedPacket { final Packet response; final long receivedSeconds, expiredSeconds; diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/DelegatingQueueProcessingResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/DelegatingQueueProcessingResolver.java index 447ae69..c0a5f5e 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/DelegatingQueueProcessingResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/DelegatingQueueProcessingResolver.java @@ -23,4 +23,10 @@ public class DelegatingQueueProcessingResolver extends AbstractQueueProcessingRe public Packet resolve(final Packet request) throws Exception { return delegate.resolve(request); } + + @Override + public void close() { + super.close(); + delegate.close(); + } } diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/Resolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/Resolver.java index fd17a9d..3a26bec 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/Resolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/Resolver.java @@ -13,7 +13,7 @@ import java.util.concurrent.Executor; * * Ideally, implementations provide optimized versions of both the in-line and async call. */ -public interface Resolver { +public interface Resolver extends AutoCloseable { /** * This must return immediately and resolve the DNS query in the background, using the given executor @@ -45,6 +45,10 @@ public interface Resolver { return resolveAsync(new BaseRequestResponse(request), Runnable::run).get().getResponse(); } + default void close() { + // do nothing by default + } + ServiceLoader services = ServiceLoader.load(Services.class); static Resolver of(final ParsedUrl parsedUrl) {