diff --git a/pom.xml b/pom.xml index d9723b6..f217227 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.openautonomousconnection protocol - 1.0.0-BETA.5 + 1.0.0-BETA.6 Open Autonomous Connection https://open-autonomous-connection.org/ diff --git a/src/main/java/org/openautonomousconnection/protocol/ProtocolBridge.java b/src/main/java/org/openautonomousconnection/protocol/ProtocolBridge.java index cc67301..143f824 100644 --- a/src/main/java/org/openautonomousconnection/protocol/ProtocolBridge.java +++ b/src/main/java/org/openautonomousconnection/protocol/ProtocolBridge.java @@ -24,6 +24,7 @@ import org.openautonomousconnection.protocol.versions.v1_0_0.classic.utils.Class import java.io.File; import java.io.IOException; +import java.net.Proxy; /** * The main bridge class for the protocol connection. @@ -94,6 +95,13 @@ public final class ProtocolBridge { @Setter private ClassicHandlerClient classicHandlerClient; + /** + * The proxy for client side + */ + @Getter + @Setter + private Proxy proxy; + /** * Initialize the ProtocolBridge instance for the DNS server side * diff --git a/src/main/java/org/openautonomousconnection/protocol/annotations/processing/CallTracker.java b/src/main/java/org/openautonomousconnection/protocol/annotations/processing/CallTracker.java index 67404e1..0d9a042 100644 --- a/src/main/java/org/openautonomousconnection/protocol/annotations/processing/CallTracker.java +++ b/src/main/java/org/openautonomousconnection/protocol/annotations/processing/CallTracker.java @@ -21,7 +21,6 @@ public class CallTracker extends GenericReflectClass { public CallTracker(CallInterceptor interceptor) { super(); - atomicClass.set(this.persistentClass); } @@ -31,8 +30,7 @@ public class CallTracker extends GenericReflectClass { new AgentBuilder.Default() .type(any()) // instrument all classes, you can restrict here .transform((builder, type, classLoader, module, protectionDomain) -> - builder.visit(Advice.to(CallInterceptor.class).on(isMethod())) - ).installOn(inst); + builder.visit(Advice.to(CallInterceptor.class).on(isMethod()))).installOn(inst); } public abstract static class CallInterceptor { @@ -44,15 +42,12 @@ public class CallTracker extends GenericReflectClass { @Advice.OnMethodEnter static void intercept(@Advice.Origin Method method) { - for (CallInterceptor interceptor : interceptors) { StackTraceElement[] stack = Thread.currentThread().getStackTrace(); - if (stack.length <= 3) - return; + if (stack.length <= 3) return; StackTraceElement caller = stack[3]; - interceptor.onCall(method, caller); } diff --git a/src/main/java/org/openautonomousconnection/protocol/annotations/processing/ProtocolInfoProcessing.java b/src/main/java/org/openautonomousconnection/protocol/annotations/processing/ProtocolInfoProcessing.java index 17d0316..52e71cb 100644 --- a/src/main/java/org/openautonomousconnection/protocol/annotations/processing/ProtocolInfoProcessing.java +++ b/src/main/java/org/openautonomousconnection/protocol/annotations/processing/ProtocolInfoProcessing.java @@ -38,45 +38,34 @@ public class ProtocolInfoProcessing extends AnnotationProcessor { @Override public void onCall(Method method, @Nullable StackTraceElement callerMethod) { ProtocolVersion.ProtocolSide side, callerSide; - Object o; if ((o = methodGetByName(callerMethod.getMethodName())) != null) callerSide = ((Method) o).getAnnotation(ProtocolInfo.class).protocolSide(); else if ((o = typeHasAnnotation(callerMethod.getClassName())) != null) callerSide = ((Class) o).getAnnotation(ProtocolInfo.class).protocolSide(); - else - return; + else return; if (methodReferences.get().contains(method)) side = method.getAnnotation(ProtocolInfo.class).protocolSide(); - else if (typeReferences.get().contains(method.getDeclaringClass())) side = method.getDeclaringClass().getAnnotation(ProtocolInfo.class).protocolSide(); - else - return; + else return; - if (callerSide.equals(ProtocolVersion.ProtocolSide.CLIENT) && - !side.equals(callerSide)) + if (callerSide.equals(ProtocolVersion.ProtocolSide.CLIENT) && !side.equals(callerSide)) throw new IncompatibleProtocolSideException(callerSide, side); - - } }); } private Method methodGetByName(String methodName) { - for (Method method : this.annotatedMethods) - if (method.getName().equals(methodName)) - return method; + for (Method method : this.annotatedMethods) if (method.getName().equals(methodName)) return method; return null; } private Class typeHasAnnotation(String typeName) { - for (Class type : this.annotatedTypes) - if (type.getName().equals(typeName)) - return type; + for (Class type : this.annotatedTypes) if (type.getName().equals(typeName)) return type; return null; } diff --git a/src/main/java/org/openautonomousconnection/protocol/side/client/ProtocolClient.java b/src/main/java/org/openautonomousconnection/protocol/side/client/ProtocolClient.java index 0c7510a..87eb125 100644 --- a/src/main/java/org/openautonomousconnection/protocol/side/client/ProtocolClient.java +++ b/src/main/java/org/openautonomousconnection/protocol/side/client/ProtocolClient.java @@ -61,7 +61,7 @@ public abstract class ProtocolClient extends DefaultMethodsOverrider { folderStructure = new ClientCertificateFolderStructure(); // Initialize connection to DNS server - clientToDNS = new NetworkClient.ClientBuilder().setLogger(ProtocolBridge.getInstance().getLogger()). + clientToDNS = new NetworkClient.ClientBuilder().setLogger(ProtocolBridge.getInstance().getLogger()).setProxy(ProtocolBridge.getInstance().getProxy()). setHost(ProtocolBridge.getInstance().getProtocolSettings().host).setPort(ProtocolBridge.getInstance().getProtocolSettings().port). setPacketHandler(ProtocolBridge.getInstance().getProtocolSettings().packetHandler).setEventManager(ProtocolBridge.getInstance().getProtocolSettings().eventManager). setRootCAFolder(folderStructure.publicCAFolder).setClientCertificatesFolder(folderStructure.publicClientFolder, folderStructure.privateClientFolder). diff --git a/src/main/java/org/openautonomousconnection/protocol/side/client/WebClient.java b/src/main/java/org/openautonomousconnection/protocol/side/client/WebClient.java index ba88813..3fc6e8b 100644 --- a/src/main/java/org/openautonomousconnection/protocol/side/client/WebClient.java +++ b/src/main/java/org/openautonomousconnection/protocol/side/client/WebClient.java @@ -135,10 +135,7 @@ public final class WebClient { // Start the receive thread this.receiveThread.start(); } - } /** - * Thread for receiving data from the web server. - */ - private final Thread receiveThread = new Thread(this::receive); + } /** * Gets the NetworkClient used for the pipeline connection to the web server. @@ -147,7 +144,10 @@ public final class WebClient { */ public NetworkClient getClientPipelineConnection() { return clientToWebPipeline; - } + } /** + * Thread for receiving data from the web server. + */ + private final Thread receiveThread = new Thread(this::receive); /** * Gets the SSLSocket used for communication with the web server. diff --git a/src/main/java/org/openautonomousconnection/protocol/side/web/ConnectedWebClient.java b/src/main/java/org/openautonomousconnection/protocol/side/web/ConnectedWebClient.java index b64b9ff..8fd330c 100644 --- a/src/main/java/org/openautonomousconnection/protocol/side/web/ConnectedWebClient.java +++ b/src/main/java/org/openautonomousconnection/protocol/side/web/ConnectedWebClient.java @@ -55,11 +55,7 @@ public final class ConnectedWebClient { * Indicates if the client version has been loaded. */ @Getter - private boolean clientVersionLoaded = false; /** - * Thread for receiving data from the client. - */ - private final Thread receiveThread = new Thread(this::receive); - + private boolean clientVersionLoaded = false; /** * Constructs a ConnectedWebClient with the given connection handler. * @@ -67,7 +63,10 @@ public final class ConnectedWebClient { */ public ConnectedWebClient(ConnectionHandler pipelineConnection) { this.pipelineConnection = pipelineConnection; - } + } /** + * Thread for receiving data from the client. + */ + private final Thread receiveThread = new Thread(this::receive); /** * Sends an HTTP redirect response to the client. @@ -717,4 +716,5 @@ public final class ConnectedWebClient { + }