From e3c3b055f5eb5e986feb349f4b4dc18c4e367a73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 25 May 2024 16:24:36 +0300 Subject: [PATCH] docs: update dynamic proxy --- dynamic-proxy/README.md | 258 +++++++++++++----- dynamic-proxy/etc/dynamic-proxy-classes.png | Bin 25689 -> 0 bytes dynamic-proxy/etc/dynamic-proxy-classes.puml | 35 --- dynamic-proxy/etc/dynamic-proxy-sequence.png | Bin 54913 -> 0 bytes dynamic-proxy/etc/dynamic-proxy-sequence.puml | 63 ----- dynamic-proxy/etc/dynamic-proxy.urm.png | Bin 0 -> 160578 bytes 6 files changed, 193 insertions(+), 163 deletions(-) delete mode 100644 dynamic-proxy/etc/dynamic-proxy-classes.png delete mode 100644 dynamic-proxy/etc/dynamic-proxy-classes.puml delete mode 100644 dynamic-proxy/etc/dynamic-proxy-sequence.png delete mode 100644 dynamic-proxy/etc/dynamic-proxy-sequence.puml create mode 100644 dynamic-proxy/etc/dynamic-proxy.urm.png diff --git a/dynamic-proxy/README.md b/dynamic-proxy/README.md index 95f60bae6..79eea3b92 100644 --- a/dynamic-proxy/README.md +++ b/dynamic-proxy/README.md @@ -5,6 +5,8 @@ language: en tag: - Decoupling - Dynamic typing + - Enhancement + - Extensibility - Proxy - Runtime --- @@ -12,7 +14,6 @@ tag: ## Also known as * Runtime Proxy -* Virtual Proxy ## Intent @@ -20,108 +21,120 @@ To provide a flexible proxy mechanism capable of dynamically creating proxies fo ## Explanation -### Real-world example +Real-world example > Mockito, a popular Java mocking framework, employs dynamic proxy to create mock objects for testing. Mock objects mimic the behavior of real objects, allowing developers to isolate components and verify interactions in unit tests. Consider a scenario where a service class depends on an external component, such as a database access object (DAO). Instead of interacting with a real DAO in a test, Mockito can dynamically generate a proxy, intercepting method invocations and returning predefined values. This enables focused unit testing without the need for a real database connection. -### In plain words +In plain words > Dynamic proxy is a specialized form of proxy in Java, serving as a flexible and dynamic method to intercept and manipulate method calls. By utilizing dynamic proxies, developers can implement additional functionalities without modifying the original class code. -### Wikipedia says +Wikipedia says > A dynamic proxy class is a class that implements a list of interfaces specified at runtime such that a method invocation through one of the interfaces on an instance of the class will be encoded and dispatched to another object through a uniform interface. Thus, a dynamic proxy class can be used to create a type-safe proxy object for a list of interfaces without requiring pre-generation of the proxy class, such as with compile-time tools. Method invocations on an instance of a dynamic proxy class are dispatched to a single method in the instance's invocation handler, and they are encoded with a _java.lang.reflect.Method_ object identifying the method that was invoked and an array of type _Object_ containing the arguments. -### Programmatic Example +**Programmatic Example** -This example allow us to hit the public fake API https://jsonplaceholder.typicode.com for the resource Album through an interface. +This example demonstrates using the Dynamic Proxy pattern in Java to hit the public fake API [JSONPlaceholder](https://jsonplaceholder.typicode.com) for the resource `Album` through an interface. -The call to _Proxy.newProxyInstance_ creates a new dynamic proxy for the _AlbumService_ interface and sets the _AlbumInvocationHandler_ class as the handler to intercept all the interface's methods. Everytime that we call an _AlbumService_'s method, the handler's method `invoke` will be call automatically, and it will pass all the method's metadata and arguments to other specialized class - _TinyRestClient_ - to prepare the Rest API call accordingly. +In this demo, the Dynamic Proxy pattern helps us run business logic through an interface without explicitly implementing that interface, leveraging Java Reflection. -![Sequence diagram](./etc/dynamic-proxy-sequence.png "Dynamic Proxy sequence diagram") - -In this demo, the Dynamic Proxy pattern help us to run business logic through an interface without an explicit implementation of that interface and supported on the Java Reflection approach. - -The App class sets up the dynamic proxy for the AlbumService interface and demonstrates how to use the proxy to make API calls. +The `App` class sets up the dynamic proxy for the `AlbumService` interface and demonstrates how to use the proxy to make API calls. ```java +@Slf4j public class App { + static final String REST_API_URL = "https://jsonplaceholder.typicode.com"; private AlbumService albumServiceProxy; - // Constructor initializes the dynamic proxy - public App(String baseUrl, HttpClient httpClient) { - AlbumInvocationHandler handler = new AlbumInvocationHandler(baseUrl, httpClient); - albumServiceProxy = (AlbumService) Proxy.newProxyInstance( - App.class.getClassLoader(), - new Class[] {AlbumService.class}, - handler); - } - - // Method to perform API operations using the dynamic proxy - public void performApiOperations() { - System.out.println(albumServiceProxy.readAlbums()); - System.out.println(albumServiceProxy.readAlbum(1)); - System.out.println(albumServiceProxy.createAlbum(new Album("New Album", 1))); - } - - // Main method to run the application public static void main(String[] args) { - HttpClient httpClient = HttpClient.newHttpClient(); - App app = new App("https://jsonplaceholder.typicode.com", httpClient); - app.performApiOperations(); + App app = new App(); + app.createDynamicProxy(); + app.callMethods(); + } + + public void createDynamicProxy() { + AlbumInvocationHandler handler = new AlbumInvocationHandler(REST_API_URL, HttpClient.newHttpClient()); + albumServiceProxy = (AlbumService) Proxy.newProxyInstance( + App.class.getClassLoader(), new Class[]{AlbumService.class}, handler); + } + + public void callMethods() { + var albums = albumServiceProxy.readAlbums(); + albums.forEach(album -> LOGGER.info("{}", album)); + + var album = albumServiceProxy.readAlbum(17); + LOGGER.info("{}", album); + + var newAlbum = albumServiceProxy.createAlbum(Album.builder().title("Big World").userId(3).build()); + LOGGER.info("{}", newAlbum); + + var editAlbum = albumServiceProxy.updateAlbum(17, Album.builder().title("Green Valley").userId(3).build()); + LOGGER.info("{}", editAlbum); + + var removedAlbum = albumServiceProxy.deleteAlbum(17); + LOGGER.info("{}", removedAlbum); } } ``` -* The constructor creates a AlbumInvocationHandler using the provided baseUrl and httpClient. -* The Proxy.newProxyInstance method is used to dynamically create a proxy instance of AlbumService. This proxy intercepts all interface method calls and routes them through the AlbumInvocationHandler. -* performApiOperations demonstrates using the dynamic proxy to make API calls as if AlbumService were a regular implementation. +* The `createDynamicProxy` method uses `Proxy.newProxyInstance` to create a new dynamic proxy for the `AlbumService` interface. +* The `callMethods` method demonstrates using the dynamic proxy to make various API calls. -The AlbumService interface defines the API operations that can be dynamically proxied. It uses custom annotations to specify HTTP methods and paths. +The `AlbumService` interface defines the API operations that can be dynamically proxied. It uses custom annotations to specify HTTP methods and paths. ```java public interface AlbumService { @Get("/albums") List readAlbums(); - @Get("/albums/{id}") - Album readAlbum(@Path("id") int albumId); + @Get("/albums/{albumId}") + Album readAlbum(@Path("albumId") Integer albumId); @Post("/albums") Album createAlbum(@Body Album album); + + @Put("/albums/{albumId}") + Album updateAlbum(@Path("albumId") Integer albumId, @Body Album album); + + @Delete("/albums/{albumId}") + Album deleteAlbum(@Path("albumId") Integer albumId); } ``` -* Annotations like @Get and @Post indicate the HTTP method and the path for each method. -* These annotations are used by the TinyRestClient to construct appropriate HTTP requests. +* Annotations like `@Get` and `@Post` indicate the HTTP method and the path for each method. +* These annotations are used by the `TinyRestClient` to construct appropriate HTTP requests. -The AlbumInvocationHandler is where method calls on the proxy are intercepted and delegated to the TinyRestClient. +The `AlbumInvocationHandler` class is where method calls on the proxy are intercepted and delegated to the `TinyRestClient`. ```java +@Slf4j public class AlbumInvocationHandler implements InvocationHandler { private TinyRestClient restClient; public AlbumInvocationHandler(String baseUrl, HttpClient httpClient) { - restClient = new TinyRestClient(baseUrl, httpClient); + this.restClient = new TinyRestClient(baseUrl, httpClient); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + LOGGER.info("===== Calling the method {}.{}()", + method.getDeclaringClass().getSimpleName(), method.getName()); return restClient.send(method, args); } } ``` -* Implements InvocationHandler, which requires defining the invoke method. -* The invoke method is called every time a method on the proxy is invoked. It delegates the call to the TinyRestClient, passing along the method and its arguments. +* Implements `InvocationHandler`, which requires defining the `invoke` method. +* The `invoke` method is called every time a method on the proxy is invoked. It delegates the call to the `TinyRestClient`, passing along the method and its arguments. -The TinyRestClient handles the construction and sending of HTTP requests based on the annotations and method details. +The `TinyRestClient` handles the construction and sending of HTTP requests based on the annotations and method details. ```java +@Slf4j public class TinyRestClient { - private String baseUrl; private HttpClient httpClient; @@ -131,27 +144,141 @@ public class TinyRestClient { } public Object send(Method method, Object[] args) throws IOException, InterruptedException { - String url = baseUrl + "/albums"; // Simplified URL handling for the example - HttpRequest request = HttpRequest.newBuilder() - .uri(URI.create(url)) - .header("Content-Type", "application/json") - .GET() // Simplified to always use GET for the example - .build(); - HttpResponse response = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); - return response.body(); // Simplified response handling + var url = baseUrl + buildUrl(method, args); + var httpRequest = HttpRequest.newBuilder().uri(URI.create(url)).build(); + var httpResponse = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + return getResponse(method, httpResponse); + } + + private String buildUrl(Method method, Object[] args) { + // Simplified URL building logic + return "/albums"; + } + + private Object getResponse(Method method, HttpResponse httpResponse) { + // Simplified response handling logic + return httpResponse.body(); } } ``` -* This class uses Java's HttpClient to send HTTP requests. -* The send method constructs a HttpRequest using details from the method's annotations, although simplified here to focus on the dynamic proxy mechanism. +* This class uses Java's `HttpClient` to send HTTP requests. +* The `send` method constructs a `HttpRequest` using details from the method's annotations, although simplified here to focus on the dynamic proxy mechanism. * The response is returned as a simple string, demonstrating basic interaction with an API. -Each component of this example plays a specific role in demonstrating the use of the Dynamic Proxy pattern, showcasing how Java can facilitate runtime proxy creation and method interception. +Running the example produces the following console output showcasing the API calls and responses. See the `App` class and `main` method above. -## Class diagram - -![Class diagram](./etc/dynamic-proxy-classes.png "Dynamic Proxy class diagram") +``` +16:05:41.964 [main] INFO com.iluwatar.dynamicproxy.AlbumInvocationHandler -- ===== Calling the method AlbumService.readAlbums() +16:05:42.409 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=1, title=quidem molestiae enim, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=2, title=sunt qui excepturi placeat culpa, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=3, title=omnis laborum odio, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=4, title=non esse culpa molestiae omnis sed optio, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=5, title=eaque aut omnis a, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=6, title=natus impedit quibusdam illo est, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=7, title=quibusdam autem aliquid et et quia, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=8, title=qui fuga est a eum, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=9, title=saepe unde necessitatibus rem, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=10, title=distinctio laborum qui, userId=1) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=11, title=quam nostrum impedit mollitia quod et dolor, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=12, title=consequatur autem doloribus natus consectetur, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=13, title=ab rerum non rerum consequatur ut ea unde, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=14, title=ducimus molestias eos animi atque nihil, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=15, title=ut pariatur rerum ipsum natus repellendus praesentium, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=16, title=voluptatem aut maxime inventore autem magnam atque repellat, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=17, title=aut minima voluptatem ut velit, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=18, title=nesciunt quia et doloremque, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=19, title=velit pariatur quaerat similique libero omnis quia, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=20, title=voluptas rerum iure ut enim, userId=2) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=21, title=repudiandae voluptatem optio est consequatur rem in temporibus et, userId=3) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=22, title=et rem non provident vel ut, userId=3) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=23, title=incidunt quisquam hic adipisci sequi, userId=3) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=24, title=dolores ut et facere placeat, userId=3) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=25, title=vero maxime id possimus sunt neque et consequatur, userId=3) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=26, title=quibusdam saepe ipsa vel harum, userId=3) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=27, title=id non nostrum expedita, userId=3) +16:05:42.410 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=28, title=omnis neque exercitationem sed dolor atque maxime aut cum, userId=3) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=29, title=inventore ut quasi magnam itaque est fugit, userId=3) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=30, title=tempora assumenda et similique odit distinctio error, userId=3) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=31, title=adipisci laborum fuga laboriosam, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=32, title=reiciendis dolores a ut qui debitis non quo labore, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=33, title=iste eos nostrum, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=34, title=cumque voluptatibus rerum architecto blanditiis, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=35, title=et impedit nisi quae magni necessitatibus sed aut pariatur, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=36, title=nihil cupiditate voluptate neque, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=37, title=est placeat dicta ut nisi rerum iste, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=38, title=unde a sequi id, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=39, title=ratione porro illum labore eum aperiam sed, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=40, title=voluptas neque et sint aut quo odit, userId=4) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=41, title=ea voluptates maiores eos accusantium officiis tempore mollitia consequatur, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=42, title=tenetur explicabo ea, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=43, title=aperiam doloremque nihil, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=44, title=sapiente cum numquam officia consequatur vel natus quos suscipit, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=45, title=tenetur quos ea unde est enim corrupti qui, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=46, title=molestiae voluptate non, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=47, title=temporibus molestiae aut, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=48, title=modi consequatur culpa aut quam soluta alias perspiciatis laudantium, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=49, title=ut aut vero repudiandae voluptas ullam voluptas at consequatur, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=50, title=sed qui sed quas sit ducimus dolor, userId=5) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=51, title=odit laboriosam sint quia cupiditate animi quis, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=52, title=necessitatibus quas et sunt at voluptatem, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=53, title=est vel sequi voluptatem nemo quam molestiae modi enim, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=54, title=aut non illo amet perferendis, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=55, title=qui culpa itaque omnis in nesciunt architecto error, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=56, title=omnis qui maiores tempora officiis omnis rerum sed repellat, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=57, title=libero excepturi voluptatem est architecto quae voluptatum officia tempora, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=58, title=nulla illo consequatur aspernatur veritatis aut error delectus et, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=59, title=eligendi similique provident nihil, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=60, title=omnis mollitia sunt aliquid eum consequatur fugit minus laudantium, userId=6) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=61, title=delectus iusto et, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=62, title=eos ea non recusandae iste ut quasi, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=63, title=velit est quam, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=64, title=autem voluptatem amet iure quae, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=65, title=voluptates delectus iure iste qui, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=66, title=velit sed quia dolor dolores delectus, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=67, title=ad voluptas nostrum et nihil, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=68, title=qui quasi nihil aut voluptatum sit dolore minima, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=69, title=qui aut est, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=70, title=et deleniti unde, userId=7) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=71, title=et vel corporis, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=72, title=unde exercitationem ut, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=73, title=quos omnis officia, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=74, title=quia est eius vitae dolor, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=75, title=aut quia expedita non, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=76, title=dolorem magnam facere itaque ut reprehenderit tenetur corrupti, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=77, title=cupiditate sapiente maiores iusto ducimus cum excepturi veritatis quia, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=78, title=est minima eius possimus ea ratione velit et, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=79, title=ipsa quae voluptas natus ut suscipit soluta quia quidem, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=80, title=id nihil reprehenderit, userId=8) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=81, title=quibusdam sapiente et, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=82, title=recusandae consequatur vel amet unde, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=83, title=aperiam odio fugiat, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=84, title=est et at eos expedita, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=85, title=qui voluptatem consequatur aut ab quis temporibus praesentium, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=86, title=eligendi mollitia alias aspernatur vel ut iusto, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=87, title=aut aut architecto, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=88, title=quas perspiciatis optio, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=89, title=sit optio id voluptatem est eum et, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=90, title=est vel dignissimos, userId=9) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=91, title=repellendus praesentium debitis officiis, userId=10) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=92, title=incidunt et et eligendi assumenda soluta quia recusandae, userId=10) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=93, title=nisi qui dolores perspiciatis, userId=10) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=94, title=quisquam a dolores et earum vitae, userId=10) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=95, title=consectetur vel rerum qui aperiam modi eos aspernatur ipsa, userId=10) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=96, title=unde et ut molestiae est molestias voluptatem sint, userId=10) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=97, title=est quod aut, userId=10) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=98, title=omnis quia possimus nesciunt deleniti assumenda sed autem, userId=10) +16:05:42.411 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=99, title=consectetur ut id impedit dolores sit ad ex aut, userId=10) +16:05:42.412 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=100, title=enim repellat iste, userId=10) +16:05:42.412 [main] INFO com.iluwatar.dynamicproxy.AlbumInvocationHandler -- ===== Calling the method AlbumService.readAlbum() +16:05:42.741 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=17, title=aut minima voluptatem ut velit, userId=2) +16:05:42.741 [main] INFO com.iluwatar.dynamicproxy.AlbumInvocationHandler -- ===== Calling the method AlbumService.createAlbum() +16:05:43.073 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=101, title=Big World, userId=3) +16:05:43.073 [main] INFO com.iluwatar.dynamicproxy.AlbumInvocationHandler -- ===== Calling the method AlbumService.updateAlbum() +16:05:43.220 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=17, title=Green Valley, userId=3) +16:05:43.220 [main] INFO com.iluwatar.dynamicproxy.AlbumInvocationHandler -- ===== Calling the method AlbumService.deleteAlbum() +16:05:43.357 [main] INFO com.iluwatar.dynamicproxy.App -- Album(id=null, title=null, userId=null) +``` ## Applicability @@ -163,13 +290,17 @@ Dynamic proxy should be used when you need to augment or enhance your current fu ## Tutorials -* [Dynamic Proxies in Java - CodeGym](https://codegym.cc/groups/posts/208-dynamic-proxies) -* [Introduction To Java Dynamic Proxy - Xperti](https://xperti.io/blogs/java-dynamic-proxies-introduction/) +* [Dynamic Proxies in Java (CodeGym)](https://codegym.cc/groups/posts/208-dynamic-proxies) +* [Introduction To Java Dynamic Proxy (Xperti)](https://xperti.io/blogs/java-dynamic-proxies-introduction/) +* [Dynamic Proxies in Java (Baeldung)](https://www.baeldung.com/java-dynamic-proxies) +* [Intro To Java Dynamic Proxies (KapreSoft)](https://www.kapresoft.com/java/2023/12/27/intro-to-java-proxies.html) +* [Exploring the Depths of Dynamic Proxy in Java: A Comprehensive Guide (Medium)](https://naveen-metta.medium.com/exploring-the-depths-of-dynamic-proxy-in-java-a-comprehensive-guide-f34fb45b38a3) ## Known uses Many frameworks and libraries use dynamic proxy to implement their functionalities: +* Java's `java.lang.reflect.Proxy` class is a built-in dynamic proxy mechanism. * [Spring Framework](https://docs.spring.io/spring-framework/reference/core/aop.html), for aspect oriented programming. * [Hibernate](https://hibernate.org/orm/), for data lazy loading. * [Mockito](https://site.mockito.org/), for mocking objects in testing. @@ -205,7 +336,4 @@ Trade-offs: * [Design Patterns: Elements of Reusable Object-Oriented Software](https://amzn.to/3U0d8Gm) * [Java Reflection in Action](https://amzn.to/3TVpe3t) * [Pro Spring 6: An In-Depth Guide to the Spring Framework](https://amzn.to/43Zs2Bx) -* [Dynamic Proxies in Java - Baeldung](https://www.baeldung.com/java-dynamic-proxies) * [Dynamic Proxy Classes - Oracle](https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/proxy.html) -* [Intro To Java Dynamic Proxies - KapreSoft](https://www.kapresoft.com/java/2023/12/27/intro-to-java-proxies.html) -* [Exploring the Depths of Dynamic Proxy in Java: A Comprehensive Guide](https://naveen-metta.medium.com/exploring-the-depths-of-dynamic-proxy-in-java-a-comprehensive-guide-f34fb45b38a3) diff --git a/dynamic-proxy/etc/dynamic-proxy-classes.png b/dynamic-proxy/etc/dynamic-proxy-classes.png deleted file mode 100644 index 86f5a7db7900bd83cb013034a371850052099bb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25689 zcmdqJc|4VG*FL;UWsH!q%ra-D$Phv@&r#-ih)kI&LqcXUPmwuuB!?rHU>KkG4C%j#ZK@`M#5RppN-el-=O5cgGLi zer^=E=Uj;BR~t0UX#EPUa%Kf3*mt;dGF~oiY$iwD^d+iXzPi3!&g`qt9`<17zjraP}C=aA8_VyJC z$TKHjwJL>HM_Y%}Qnh{+I_B%+ecHF(scrV?Me=2yN8Y$YXE^E{UsPDFEc;`2mEcU6 zu;)l}j|%S1tX^n#scbq&**Ms4IBpUU_BkjeE}aJV)Th16`=-CH3|TCcbntMtA`tp? zQg=jDoU|7c(VYmy%ePUA46i+FxO7&}9}}GloeI+xkC%WrR9xc@Dk|BBlsu^y3^8ZU z7~RLaN_EEww?X$smg)VoH)}7lJ0gs5FZrA)xezK{(s}>wo7@VE-Q?wY^JpEg76jtzWujiB-5`E2+@3|g*6Ka$L4NSG{%k4=@&mu~ zqNvDMY)l_)on+}+it_An4x7vMBiJ@O_tK4)rq@0Z(W-`6>V7=(+a5TTLj79XsJcwSy$Mx>A; zPXX7qL|(`6^m}+iiGn-@yopEN63Hcg#4NlSW`Q>?PkYYXX1l~+YYcaP`vTml%d?(r zW~=X&BUy?x(dKUM?xl~u(lseOK04T~t-Wnr^62ZUm+IQi;xE%*Oeg$x@&N)Jk6oi0 zkHeO%yu5Ga4ip)6rj|e@Jith35-FURTd zY%ZimBqxv2r^-Jpuwu)U(|#v7;e8nY#BKZhA$`06N0q*7!}h^=E?a{kVPAnxjaJ2z zFq^}@&4B?G4|+OkYW?G*!;av_BVq#hjS$KLnXE#6eQ1OH&gnzq6Hy^a!C-tr6h=H4$ ze=TaHU|t1>8&R_}9@rkumU-Nvtf4VCHPvX{@v*#|oX^(h;D*(=UmF{hb~D%`rB+5M+p(0_{W7V=A*4EaX-`%%I#}1br+q4RIE(aY&$l84S_U-O?sMf=W2R&jqqm|AP zi!Cj8zu=l>AMb=5Ukbm4IJE_A7W=zOFG+40|0tv{CGS)Wyz(<-e1n2tcc-}CVu0V- z*;&wa>tJUh#C2mXH4@m#7h1k)eF8D};m+TU$$C@$v9tJXgL~p1KG4_ z8M5(B0>S6NBssxcdIC`}6C)!d>61Lx`ju}D7D=p!=!XwE8+~Z{Du3_Gdke?$2K24u zTj#SyG@D096JL%Ln{>zD2;rlbjVsapbe5BlO~ZF!y-gN1UqNE<&D12YDLBNv_L$U#{}oGh~zCac~)T zJa%vxt#ZA=m+Y}O*BO5!Vs){&+iJM*ryqrfY42-sDJk^spigPI^?o=ryi;W!hc2AU z-^%(c99Kewk8W~saM08H(c2TB?xCwnv!P$^E`D|V>FTK<9ZP!r-HENrM3jwdMGv{% zq@!6SgRiC@e;a{Kc{I@4-*0!Yv)b6$m@&UyAAiG|oS1kgQ}~dPf#HSh$5dH7F+=;= zo}Y^&#k4m3PZo*E$-C?fewliW=BVb{&2)vWR*W46s|-l9RoyvuW|BPnk4I^w@|6=2 z5$P5Z9HgF(IR3_AJpWPc5lVbH@6si_gi3wwZh9Ao0Bro%jT-@@#nvG)jOyd}38#-YTR4vgqQWH}B-0NnqikKdK z)v+DhH$PN1xL|=ncJJ%0cmM4IKXHFjTpeaR5}FYky~@8mnY4EhRwyY}?t{U> z_$ae0u|ek9&wuUD^d58!j4vMJTq4y11G7|k{K*H`)PLn3Gdzk<;nmNmef;+l+_`fn zYh{+(wCAZ$*H*-9gwpZh3R&W>W36Qzf%|_Sh(*k+3VF6p{{QqtS7B?h_oMvmPrwzG~p802lcDR#vjFh30&be{V_Gg zWA*JLvwHrEu%}jk-zK=_&4tg_HbY7xpC%7@RvOFjDbQU9I_rbplI(mPsiDc_?7Fh@ zW?SmzjbhFsl7~6MO|1+}Ol>VK#2oq!1)pj~|2|txPK^TrK9NCVX@2<~$6fwo3yxdv z48GWkYHHIze}3}Lx_fkVROPyz(b?A42HX7UQ^buMr8_%2u#3a(T0*JH%F0-T_W4~h z<+iJ)Jl3Z>YinyQKIbzgVq=|ph%^i`Y95}=8#K=~H#XOv)hETo3#fP8z2Viv$jE3m zQgjW6l*?Gg%xrFZ%+osO=;QrC7e7V6=NqBB<4(3iOC1%RTY#K#|oAZOTro(B>xqf&13c?24nK@Xe#-A)F2 znqm{BneOC}prE%|&jp%;$qd3IUlNDK#N5=YJ7-0y{)HCi2Sba3b=AD~Ki7%I?V(|)^mMznd0&u&@fZgwmr)WB^_pi8Pf&e=wdV~(4OWWNGcq=pZc$d+8Q#8)KtdXa9ihNtz57Hu^bUxp zd$omXh^M1xQq!Wp;Mnf&?yj!7S2SOfNsOtUUaF#ad+WW$0}kY`CNq2ZHBuW!*z*Dl z+{q9rN$hz92wlh9v$Jn_y&sB;i`&}XQ;Gg4obG;STw+Ty^|GJ-kZq@iNqr$}H7{Jq zrSYE&5#^%tDP2#K3~{%u&62pL#>R}hH>lWO{40Mf|D*6()z4Wvy2azLaIz92ig|dT#gDh5?ufln|+QDlf1Q(RbBDB^vgTWCM8 zkMS|AHSeP@FTU@ORJ-rLB;mSKps}?wwz9CWFh5^z)=$Tgm&B15So#_pp^NqW{aM5! zHZ1&oj+QqW8M5wkIOeHhaT1YytgPuCKBkecY%g(DHG7@MBzIkW=W)2lm?#eh+2D^q z=C&^TM)^mCybuY$eb#IhMcZy}K{Z~LaV)o4-?uV5&x6%wNFrY7ZNB_Z!(!!l=Q&*@ zXr5Ys9Mhni<)=Npfdt+U6%=}A9^_{eU>$R@*`HXLX6M@nr2>M2Qjr2{Ei{W$ zdEjBhB_zVFer;|VDaV*}C6ql`(j*k-;#z+bt*y_SeKDM}!)l~x>Ll~Y{x&))6>Ryv z(z)RUZpUuZ73=i$gT2?THa0eagx6b!i;Sefk4lZP3(qC}`t_Jx7JVsDKU~E8c{fA3 z$07e5ZG?blAnf}8Zm5G}WQmZlI?VO?zBEa8e=^k;Wf;m$wW_F~aOujG_VLQ&qkX&S z4i42ZE9b>`%`qPpyY2u4u8fXW*U%vOdazuv60_qp6{Y@)RjVx_k>5ezck*LdSy=L9 z?`&_H##R0L=NBJd2^)TG$Ma-ycLGFIXO9;TwL@rF}34Yg*^`DGLv~# zpe)Z3KMYw(d_zAtsl)wkuFTwA3nQazA@#AGMi@k54dB_65)wKVZ6=z++<(+QgS0N; zmgDkNv`&U-_%YyiHBU9oS0^@GIb{Z=R` z=eoU|DCEv>77QDsXL_B=Fhw z_4l{8w^vnGT8&kACID7C;EN9bxMBA0m1Ixp2zm6 zqoJ#-DtaT4fRUhy}NU;-rY)ho(q-`&QfZrEtf3hUVX48P5xG=#sj9+ z^Z0PPOp*_O7j{=iXXlg%3MzK`Xrh2~k$4~>t-^57t8C@WaPo4Prrq_K&jmVTU~8{v zSy&c_-x&xzl99n;o1X{~t~Tx@Wg7lj?^oflAmR4}5Z9|?i1AV=iqFA7^}~$*hXt1V zz*&^!VBb;j5*eX&s@-Bo*s6ENB`Mq+EQN)Im+9$bVs7KziS@UoE9#^BQfe(9kX}*} zdFN$8fwi-9S++}ECuA*?6BGTAlQlFnj8-@nx0JM+P~*c+pK-LgyJ|l_(AwGg7Pi|; zK@AA$i)Rj_)jqNu!=CzC={_z6o+_X>;S=N6am7A4CEa<{w7A=2c00}A~Lds`1 zykz;*-_OOwbZ?iq{TVWTlw%_l#)yY75QVoW?KhO-MS@kNPh#=SO*gVB3SXtG0UFX# z6P9p|&lzxR!M~2(7h#2o5~{Y|{^*m9-~YL?YCFv#^X|7E&!Sc_4-ALrj64p(dRlHv z$cXH78j&41TU1X-n*RnZCZnqi&Ue6=k=WuUu^$cvp%%{BQ;*HwGQ#rQVKvU-_IzbA*jf zCf)w(I{5k4p*NQO8J*x2WCkfr(|qzKOSV%|C|?oCTjX@Ft&_E4bm!-Rvx2P^FE{hL z)^H2M+&Ig*N=7sD#c-*$4sb6{SI?ZT2RAC8E+*K8#n2f&Vl{rVjZR2#x_B&xkO7+| z(n~JkrlP89W0M>q6%bvG0R(T}yaA+#Nyw6NCVrRk2)r~fVsf^A5*lqj)C~A*oL~`3 zSHsW7#>TqcB)WHBNlBE30hwiCEv@da)MR!x1`+|5pETxyo$Ye8JJTv9qNu3oxcn{E zhg&7$X#`m`-Ux@Wk8QWgMdv=k zqpA6N@XA-zq#wZ6{??Qn>G=_&PYf!%Z`eDp&Xx*Y-0jFf15(jguBba%xckrx7Z1;N zqUoZsUF0q}(1^1!+-7(NSTbv$CR!s)=y_2n}>fNu&vrFQEm@dxNnMo8Esw!8h)*{}(4 zlbJw97+}t=Hk)YS8p`;Z#LSnqSnBHPo76I_+or>XsWmmnKIr&heNLB-i>k6+w6Blh zl0;r9W|Sv&cXx9e#)|~wqrN2pw%Kn~vkL@bdQN;^Nv~8S~s))L2$;`dm`>6DR@Un6_RP zDlxRRwY724XBUj|2s<)9IYIDM;XNX_-+6Mo^78U;xb;HqEqY%!wnos$Hl!Y-;*eVo z<`7`=efXMd-4j*O503dDk0e@3?0=0lOGjFV};lO_?g)0@rlPfjCl7mD)XDZmP2 zG6kIaHYs8vHtlqq1+Yeo@0EPVe5_Zt4h|1T5+07j9*?U}&*%&a4ZY-1>Yc_)C5aaB z@}-K<-cL5UfAUte;WUbf$&ZmO!5jht2Y@i!D4PJW?|vOSdL>vwD&)4)lPV_VRY+Oi zRv?rd7vBI(H8;&dnOB=^=fbsH;$Rx;1=<8v+ou`HUpIKEsSxmCIRK}jpX8*K`1trp za3ffx$9D7PO=jjmkIw#^U&`!EI`x$Lr<)FT*C9`o;jgc|*YL%BjsxyD( zy7~MEm|8~5aMqEJHU_{pXc^@j0Wt}u5biqnDv3Gk+d!pukus7@`B8huIQKuz@#8Xz zE&X85y3abEvL2+nA0>Ggr)FmSo<9$ld(FXl>sI`J)GE&-s~&`~DdRyO59&;4nk36hADIx-rEs;LM+%L5X=Q#ComBAYH2?jwcsj2{}1A zY`=1+RqFMX(TeEts{&4;mU}C&W2!9f?+(r=53?{Zq)7Kev13Y=&R?Q=e0kZb&+&Xz zeB5X0CjsH%;oKIK^`{YtOAE`X5E;DHQM(fO`hhj+wKyK$w;9pe-Ci8QCnLM=vZ8ki z?j5|ZvLj9~|7{x^j>AjI$b4RR26?>MF5t(!hw2Lcr+dX(kBlsS@>71=#MxRD(X4>e z6fq0DHVs@f4I2^vucR8wmNyXc+<8Qy#wm#SL}^m||Mft((V;V&fm~|Jej1F~nU*5% zr^$-+D7I}1Hb9Vqulx#roUgHqm6YU1y#8Vo%E=~glj#Ejav=LxIK1UB-$3Lx!8!gr znqp&NS@xw%0Tlz_yXjzYA|*dRA4qMWB8(F_#i2eH8y=2#>C%tsX+jDLq)(WRUV2wq z={DZr4}dv61z1Vu;zXFrf&#Yloe6vqo?`LT3M8;S0a$k$c%gcoPAO0cIH5qJ2eL{w z6taGw=MRmGD+i*esHmu;L#B_vqtys#+lBxF=6ll8z$_86+`nD!vpa$s1+^Mp>+e^u zUbSpu#OH?~rsgrZwmXw-;xR%FaDC~swrkKqx=-X-dPiFuR4fRLz}-hVj=4u$PG_P) znIm;)%=1`q{VA&N-*@w#UO>PNpt@H?6FF)Axy;)TjmoZH!E|^nQw`+$(cwPx*@YNL z_j_6I6kI*wMsDA|+Y)r;#<|RCf-;8%H8AFwrG*9Qwb`S`k1~zb?wFb~?C0>>?5<4# zVX+>7IoT5QtooO<1zCU#|^KlsLzWB~YAyKUZ8IX!^v$8HFv?-TE2!hlW zmqr5k%cOlMRkmbcCdS3JMOg3~5k*I`dUo8oK;VsPw%ps9vm1!98nq6=b#o6la#bPF(K9pAf}BgvePF<*z*XM z%BchZ3oSkUx=l-ZlmZ{;yUv#{UpAAw=IPZxZ%b^u#~h#k4$>lk3>;r+lb3$Jj;jiL z^=jy~c;L|62L%ty!e=s^&-yQqRuEmj{7ZKIHyjdla&qc%CQLY>?HRK+Xuh)!{QrRD)@9VJFCqUzTddzDc?aI^b777 zcgRWj>Jhtp_pX$b|Bp%fXOonky6Kg936QkMI_8LxgoTB*Nva|*w_Vz}zYU%Sb zYA)m8;0QY|UoDPm*}{C;eCq2uMda-2d@S|P1z`X#;#KVqpxlRG@~s<-i;GHT(0iyi zO|q48uGY(*Zj#p@Yl@D`@J*ELXZH1P_xQfnPaTb1QK_@8Ieaxz@nmVd%q;1)@+L$6 z@m$pJyR3&(Nwr2rMLilWq+(%t$+s&-=_{!eB|4WC#S}W(3t0gqyvU{Z&CXD!yQx;7 z{Z{3j+vg&|a4tc?MCxQdJ33z8SNl@@Y!5$%mXN9vgcqZuqj#`TOFy(qMV7D-G`6%RW9N1m|>?QKbC9-g?V|UcC6h8J6sGaNrgmZy#{i&d|if&QnC> zj58^ZdBd`6tj*DwZw-a=rd=xumvPUvv^g z<(oP=eeB|oCqZ0P`UVED>|J9_pOX~|qvDJD+A=JF=F_fni5j8XwZzeL1VX9pE4pZw z6wgK9fXSJeOtc$*u(-SYh!;R5`m^eyorW+|Y}+_|IzxOK!y@mmJY7B@V_+PCItV|$ zi?cJCut&liacoamlp3!V4HMIR?K6}P-c}P=w2JnwF5tmm7tEA?zz;(L!Kp46VZnsAOB4CBd4B9<)UIFSOdzDnT9LU zj7QocT;?-n)oTHQq7m}>R8~H|GRP&CzPxYm=z#EqZf6cF{zT->c>FX3yw7=a&xVHPID#!D)Z33K}N*ir(AxSa>MD>4|aN^0Ex1KECm65qzWjylU zLS01#z-&A?$AN6+-7ELw6s92~c&!c@`~MmSxE&5YI|+ygmQVle^ys}Slee$`rWUfs zMDTyK6V3U#7s~9O=l;?0cf3HIzfxbmvzLp)!$idslq)P!aKym>Snkx1zcURj_NB-D zpl|`0^uW?AYz9SEw#cxsUPzpuU%bNkrY_+s;Ugd>0p3C=2U;s*ZQm3E|L@u#VR(Xo zGqMo#?Afz_W!(3}fi(ysyEQaAS_R^dHliu+b(7K;54E%m^z}_81vm>a|GoibA^#s~ z(GEU-egzLoSu#1{VyvhbBSp z7++uC!I(#*uSD!eaiT&!BP)bbI?VpM#e1oCi^CkU!j4T14c|W6cw5^(6Scv>#4OW! zq6ndGFhvB#*w4p@p;*6VZF_U`nrg#gZS~*TLvCK4jFeO=MUR!0)#~ahl4Vy7xqbCR zY*^Uput5l8vKl*gGUZ2xB!$9GVDI`@9FojC<9J$ITia~p5<|K;O<#?v9IpQI$ER0% z4lA_qxnO3$&#nAlvDWh?^;M#O3$=X*tS|lvwAX$UH#i5gEg#+YKV&4|s;a8;ta4&y zwP$j=I(1_{O6mpVX?<_5a_HZI;+XTLHvl#iB)D3Em26Fw?dyS>+`LL{)9J>7l;}aF z)4R36m~P=?fpun7s-pdkIlK7*#{MeBgk2-~OAl4#8Se5k=;TwSrX0w9jCFIu(;zXN z^4wo4)p1?oVM1Bb+|8Ej%)FwUA*1oZk_5bRGeez?q9Pd&|O-7+!? zjY_s31pX)Hu#rgT*G`=LjShiQB_Rpi;J|>xrP47@*U$M{(~cq_FS)z5(RO;5GIaPsCr<(5xF9OV(j~gNBWc4z=f>y~ITaeD*oM?q|OK9q{uZOFjt0Cuz&X62Km5 zLp>vK_s@Mng=Ax{ztw5I^9GbtyASD#cMo(3*En0+R;H(s6t1xjlwO)YyOoQa2Ni%m zuh=?AK>J~{c*PG2uarr+!O)oX)zzQz_kObh4T)2KGvvO=^m#3CEa+pA=LU#;aWHypBlf_d>9BN$Y=7oTWJ-TuJ+FcN7xP@#| zAAUcmHT`;ncQWvP(=ezbQa|Ep4Fv@RpvodUh@S~DcJQ@0 z<{B0$_biauqK2Es9v(ufSmoyFwnfFo&ON{_`(3;uvByJA?KS2QF{PuRaJzMmwm8$T z!%S(3XqfKQF~F^#05su)AS*#?um}-CVP4)RF!2X(Z3EZBrWl!l#@~Q|6H{e9CbX%L z=~n)8VZjwyo}+brNo|NnMC7=)VP@Qa^N|P9xv2i`Zh71z=97I_`_p-~kw~1VQ1H}Q z0_sMBs)UaAWNe1yJ1uvfFQR*~9QD1CZp}zO^3r(~k_5|}92F&gi+U!O%jB-^D$@J_ zuVP=lS!)?_z!9MEd~tCRsBtFVRj$^RZAKt6D# zzqYovR#!>*Y-wx6Q{C{W@JWj3(TaA6SRXpgruyA=M)S}R;%`sU@bIz^0ru3W0w5B( z&idSiIfALyFhL32w%d>bARRQgUD$sRFZAR(wJw!lGBJ&*KnhxrkHXsJ^LVi~<6llt zu;ok>6ysi}rHL0@dsuGoU-Ro)8i+_>^Ac4J{)fcb7>a|%Ys&XrO#g3z`#Y4p$sG{G zET_ZN4dtqbq6{8BzIcHK zcAU8)mV@Z~W_~9jhp5zk(2btx5ERsrB2*(_pWh>EPG8?!NFFyL_9uV+tRH`qb0d$C zA19O__tLz~0QtgG5Q_fR_)OSOPETJrcdo~i12Nz;C@RU9U}9(pQqd29ks*2gUhc3k zn5+Kay}9bchaEK0k&!+=K9NusR8z}HPw#02wQFEV2y%l4K3*7l3rtQq)Q0B={A&h1 z*Ctz`&V_p60V-=3pSHzJX8#T=7;j4)B?N7e`OM= zpYKMU_4-G`(?O55D4(+Pcn#t zSZN#O%x~$+O(KY2i`v+S&Hc>M+4!k;`&*CR*FcqmgoMN}Ppe`pJ2OeY3pAQ*s5cBj zmdY9bG9UoMn0W+d7wGU8xHM3JD6$JSTIFw2hXn+}No2_$&T=$XFp;g$ZOc z(fPI_a0nb%vVQAxgY73~M4U0g&XHWR~`4!VUo}K4JT>Guzv!V8> zxas6##JEXs{{pzq(fmuW}&Pa@dmkD*}H7N88Ph+m#YE&V@7~gx>35p5P`~`M2pT<=p5B@2grEigN49!454xa*+N(9perg;=(_Zd``5P-%xa>Es7abeXofSD1Y`9 zmzPj4@(W0q=?kt=dCI)&lKrm<{@r#ZLK0Og7!t1}aWx)S8kqZcakC9?s z`1?_Ka=w$k4*0DLAAAPCZ6^8T^$gx7fW+_r&BaendK3K;e;1lI8{F~_+JBw?|G8}h zE{MFpzkYj@=05wS|Lw^Cx;R+YKjT=K`ZErA`M2RGkP<~}sy@}E``iuaRh$UEPC@a$ z!1N=On9d#qcX$5%6RfYea0DvKgr9Q#`Ew*!crAbBPOoWIT#b`C@h_L|_?RmUEHZn2-T+Co>Cd(k?Gsj2UHJGj@7eu;1H?-n;G~>ze733t5 z`^XjHLC&`hy8@&AusdlunPGHvbS@1NHDX~X(OZAcC%Z;F0gUpePoD$^+>)l184Z|x zyI_BT0<;|X=i{T5<7qiK&ux6Llsj)#T6R2-SB}x;sOpePKI!-7iesi`UrMsu1>>N? zCe}H_DE%fl+diBrAS5Jn2kKUyhYLDo(5;40K!H)4Vvv#Nm_;b6sN88vyyXai%BKe| z4@jiDW7>2&tz7U`DvOxOnwCCj4$1w;AUL)_r<=C}S;uui9@GK3a`Z*Txm4 zmrptXAab;zbF5ivr4>Rh=%Wz(R#|eVkI-e)-LRF&+i~GLF-g~RX+%BePv61;zZ<6D_5Z#z^PH-#!a;?S z$bHXDh;)V|JTh4!}~Yi)GKXdG<9pGve>XSy!7dHo7ox=MQK((Pl{Yg=-0f`Xpb9;&KQF^K!WR}tFG zT;8e7TDI=r%y%q}NqYC6d##$b57u(o8Vzf0Pn;C=qxA-Qq}pX3bV(N+2?_9zpLRxZ z^4ku5(|}Y;pRg93Jlycf!E&i$OeQ@oREK`p!!F#C*R6bn1NuE@YfU7CQQj(F`TM~2 zeRcY^J^Dp5y zF{JxXbak?#Lw$RCrGtWgwvXyGZ3L(W#>gMpHOFL6XuiK_Isc_Z?C#^W0B6DE*+E8r znHNK8^4%b?r;?A}M~a)kIr!e(ytt%p&-la0q9^59bo6IXu;xE3qn5}qp|o${I{Or0 zPvpRGDayX6AT?6i-PFYX=t&>+-Q=ovP2iGwMloUd#3=WN1M%r2ptVdy^5BD|jh!8r z_Ckz^MjcQAPof9f2 z(8$B@5QoyAo(dkx^03 zPENm4pk(9ec?|NIeqf3JlQaw2b8^&7;rT615@*DQG4U*Ni~|up**Q6FV-dpcUCdQ` zTgL5L&+W07!g}obI$FzgmKX{eT)m!P`2>f<8lIVNTdV%gXEuG=9NX>MaFT!3Z0WMP zYjqQr4{ET>9WZuSU8)khOdM=W!b#}`>_?`R$^X4G3ED$KGc{))(`WltRthXXgl0m! zZoy_z##!L32foKJ>Ekl26ELeqzIsJSKydwj;Zsujb>#zK5<$3`I2oLq%WNcy8;R~r zqNJ?Mh%FTh)o)fwAG}wQktLQR;iy3*T+g?5fGy~s1`aElMZ>l@4iLQ{1eeM5l&q{Q z5GyE%;+fF?Fl;uu;PCzl)4bU1;-0yB_l`D46>YoL*2|!U(WNx92RSmc{Y!wdukmax z-TUCa)Nz6+rPeEP<<)l42oh18aRgRcN`_?=Ea8%CSGpNS-oQ1-#yo&AATx0 zN-KdLGSMVsA7pB|x3$!sm~Jq9nF8Zl8RZ>9&=j21zh!YjncA6Pm@Mp>w11w4miEq} zl^5sn__)3jdjy^AxCpSX0^C5e%8xH zDNVk7K6J0U?-u{S{8wU_?>z}Qo5)_ZaPbMvV^ zsTQk?F(&&sWLd6d?PuhJh}|jmA3&+?9f)w29C2dZa634{Pp@68qHfBv)se1PAxU zzIw&$ap1%W(fqyb)IBPdVX#2i$B!Qy8&88|p*u-1cZh>C{t93g$SeiUiWU1{QMI(U z2V#(joBk#+wBxG39F_-Kb_-IP3<`QslJW9aCa-Zb+%f56??@tr$D8mf5a9e1zx8~$5 zX49^motxVobsXaX9uaEtd`6lXm;V!n(8+9nqoC}Lnl#?*#OAz)H;^qDDnsn{gi1_?JBcQg= zs-oYLeW?3n?b+fAgx-qHIc<$=-0}()kToWg`EM9tAx~#8aT{`R93Aa|E)pAte+i={on#99fwoDTT ztKLyCaOF}z*Yeq8({CT&DNS9{@jT?&m8y6gLdmv6cUXva@#3|_J52Pany}E@B%q-N z%`4DtVKkCH3Ou3;fPkRirn0IEw2TtLS6hv5j9oo@L+|D_!|sQNhdn z>B-8d)**RxX#KYo7OvvO3B9IZ;Xf-Ri?AzJiIO zalI`sz(6QZ8@_Gvc(?HpD;MR1R3cg;G`Zysv&y|G zH7#q`_OF7jp-=nDM1$t9K&to%G?!X7>M?aBv9n_x~xp$dgz!I%j!)9`}=eYVksDflK3dz!E{GHmlh^O(p1B zhJumBXeauD0)>*G-gE*31P9_vHX_86!pyzYpyJ-47sn7dR+0}oV zXfS6(qK0Z2!H>(2i;Fwoh|8k6%voZW1y&VF_RfW;ok-hB4>}YDIC)AYCk-PEe@_e7 zf*z-sS-b5JOA;rQpKAw_lLcaU|NUp}v>ootW^z$LDuY^s>Jvr$(rF3(%qSJhTFG7quHY8<>v-(=xrC-n%> z$Mrnx|0&tr#L}kuT1a?trMSOB&AR2~0-?#Uzpd^+hLQ3?iu1kvGOTxo-1j2*!z2X;Y{NmTyi7J_8-n}zDQA@?J;uNi~YG5Exp(IB2{fH zs}OCIY7l?kPCp6Q45V;6c!g^rh|gku$eMqL!$1DIXP5Kw`o;C{GSYWt*ms7aQIzQ& zp2mgFD(MQT2ydW>+YiRUif`cms`sWqzc})GignJf;P;wOo4*ot*?`=a(!0DeGsz`@ z&xl#Zob{nuc!6Il&Epd~yba1HBQS2Ld(dz+TW%TgQ+YvWY2aC-k;r!Ip>RzMGX6>W zWH+UaIB|`2t@$jTcWy~e$TpNZW%jW#%LYj6FsPJMs zExZafY>w-4+9==ag{w;&UDtQ$cthA;WzH+1L1r9LP+wOUDZGN*4CrsdQz4=C=YPy);`@{EAmmx^DJv8;3ILz+kXKrO+1%I%?kR<-+=;cptF~aui7ix z(pRd}m-)ITjxw?`;H5LyTdXscp)?ENHD|)r#l`%|)I8_Fb4`rI+1Xi8eE4e@4@h=8 zW?Mz6;QccJKGo>+eEfUyO*u;z1I(YoW$eo+@>imW;>;Px@)WM;wRsObe>12Qbcxo2 zGcHI`&Ceei4B;6VAV!dn-&&}^G|#kjG{(rgBS>xPI9BI7wkn=P(0=WaU>yDxq6cF) zt`GRB$j4Y?{WzmU?@-&A7s)}9lU&{=32u-KZ>$wl*_RGE(6LOpq(o}1b03;KK2+{i zP}oyK^sXF>e9N9)_V|tXg5C*jKU!sbQY$dK3r{S;E8brEni)(1k5x$ehMv`~aK)U) z-t_+bNO9)uTl8p`tX+X_&{&ay4ISOaWFITdOwTy*_&DQs@#zNa`5fku!M_L02Q-w@isoG8l3e0FeAoqAyOBiIAc1pr!&zUqHT1ML zIaaiDj^V$9j9R-*2y#lb&u8}D-rg*R;x|xrLMz;i^$=iPTwQS}gbrZlI?RM3J<{mu z=zxY@llR=i50N^Q2JUE<2**JWo_L`j%idvVbRGg61_s7B{`k6_XSQVx#JHCWgR&p) zzmNiBu&zGZTi6i$g{*>*cM{OahWj!bE$H>h*F%3{9jY7kS}8^`#4qKT20GnosMBuD1PP!4TMm>){-@RK8r3K&t-t+vh#7_D-2Os!k6 zCUwW#LzAVsc5MpBbH}?+tVi4g=l1aALsD+3DTRV@CHGMtA~hqCxPP}WDS}7eK8CUG zLE62$;U;@(Ujr=mLfyw>gS9?^rDEH*QgN6^L$;~3*G?kvjSIgJ@5-?&H~ORp0*>HG zKA}Ht3;GkFyA(BgY5qlX#I&NXjSQjsLc6J`l2p{i4 zm+7zlErAUpDK#|(C}3j9$5{{hjbC>WY}Xq4c#xaq@yesLmwgMml^%yoV?@xk)U4bWW9T@6#xVWud<%cS3mtDN0OLS^TX@RD7X8KOiy7 zko*9iIACOGcmQ{pc~1zGvD4|VtAEvDs!*8L#^1D|c0@+EaG3hU1W>T0goW^RmeTc| zd++RGRBc@l&O(}>X~xp7&3Z6k(rps8z{n0hLPSi+x5#k=ihDb=X(1la#=KZ=!J3zo zFYrG5)mhQdyjD}B52L$wdkUT?go|&73}dm3g?O7U6pDLdIW06Fy^_AC9rOCgM_KE7 zq+uU_x=Wp#0Rra|G?*XqvoJAHdwV#4{IG?EE6wxGV&Tj{*6L!)sw$o-b;O8z^- zf^!v1vzZrUz9Y;BXuR$R5w~HE(WGX&FugjO3Lly>!c>0O!4i2#I1q9jy_}*A{8-_- z$Xybo;mjsLJIBxKx(1ftKK9P@-xj9H8l#jmSK4xX(0zPh z>nVh6x*A*FuuBJD{H--ehgL&FL<^lvc{7I?piR{Fk~>ae$APo5i(oDVN#T!2yuBJ!`Qo}9~<@d|c$?vau*!N1<6AzyCz~Eix8!jp;3XLP$nws~t zWP1&VV%UX zPjGTFMJu*(sagN?(eP9OV76KlR9Z)Zls+)w{kGqe(Un?{W$4s(d^juUe#?SXOaiO7 zxVDYH`N>NsV;>I8JOs}?ZmMyra{E-ct-Oa^J)-+<-J+-zSiSBR$mqnxj;&KwW0O;b z(p^O5!5GiwF4UHo_1}GR4CFiYX2-2gXk0=H(k37NX5wS|-DaVozb&U3`2Z0a=sm4D z+AM&)8e|ERa(g59Tt;QUI{ieO?XAn&KU&$uUKu-F++cMGH1_mt(ZnOWA}egy8}*e2 zOcdHGHi{!gRDSN##-roYvC|K3rKhLEgM^go-JlISMpD-IQdo z**(S@-z4bLdS@Wn<_1Ctf!*Ilgid5IVYVl>ENk~^@F}^Wv;QM7=)qA!@%l!-ENUs# zl6V$^Mye)U4a%e|GI&LiY9pvm=<+(WK-cEhuU}4Ut@N$Nayd(vpE2>OTK89t2(-m@ z$9uEzaYcSGwiviIf?@cxQpU2zi0K0?L0>RzJ-Skjj-Hdz^{ix zuT0txZfgca8X%Q^t^N$^;>2Q>mW!Zoxl>@pvh=l=+wv+hG}A;8X|KO!hDl`{E6=e> zO@~Kp{fe11`Owj=KoL#=MJF?88ri^nfTf^oW`KCENbiusyR*OVdARxcc&AxdNl6LP zUd9WbgGrf91kuTU)Pk43#GQXU<9U<`GNVtTe)mA2tlsMyLK@%AHv5$f`=86&ovbC} z=U$E)1-xq^!NEcxmXVTb1%Wd>DCHA%%K_FVm4>9Ao}Q`cELfz+&QDa1JW}op@o)0y zpAJq=O`S(Yttc;t$1JRXW?%pD+tjvQcsf{jESF@lttb$}*>8GUySpjab)UkW{GYzA zJRZt*j~`o>5s`>&SsOya$Rti9#uk!YmSRZu$u1p<>WWFS#2C|*!6Zx8N}`oy8CycA zME0_uW9$A#%k7-cz4uQ(AMg7-@B2Kz_xXJ{m+!(*N`XdiD~Mj00@-Dok526k|ImF< z0Yeh4oWpt=8zRz7EQ=D34PlHrwLy8{Xrl(Isp0PD>T8UlY_7Nn4K;MM+B46#g4<63 z)3)6w4Sk0Nh1jeFJwk4y7K8^dkX~U{3d?S48m4~w#-kcwy*tl9LWGPu*@a%UUvy*F zy6qizv{g>l=fyGJ;VG7ii&*h+nO(c`p~ip|5BO+z1ZLGT%B+My*lbA*4w^*d2IqTR zh>Keo>+l5F`Od}+15uPYli)#dunTS9ZdmI9z}f@cD?!|#a<-&vD*z)-n0ohy?pL@N zgAq^YtkNtZIXF3Y-q)M01+Q}_>YKU0>l5o6j$mhYAHlOO7uQ3o0ERO6ss>xvS#T6_Q-b@7&hjqO=GRrX*tEDab)y!zNb&LUd1PTT2W%_eNZ=DA z2kF7FWK(*>YC`n#x!!1e8I=BxJaeI?%|0x{sd$v(Ou2XWG++oHjF^5W0Pny#-jqt5 zCkjSYpFdthSGD#g*^WFE;S-}}7vEYnajDuTr~IO1I2lgICIQ&`>HImgYgxne=p|3q z-^$(*2mx5E_QASrz<42p@I_Jaqw#Hnij}r+U(v4F`n3M(`c;l!bDlhj^fEfIGOr$X zUk2K+O>?J%o<*_r-SC@;ZjRAH-zb7tBNL5Hs1Zf1LojMWt?IUgNLo)iF?Nq4pVewChE}WMH8nkCL-I!X!L{U zv{;_kZGosxY3A6LuQ6R}Q<-QQ3(6!hbt{J5E`E-K^q=hk-Z2^R>%w}yVVt0WMdj)gVDw|yWY0CVw>!4GLT z_^)B}X`B+m#fnH1u^Cxhr$09E>AQ;QWpr$q#Kxn2WA>x#ECKh`u6rcb$v)0^P$B49 zPGvl!EH$47RZ|-5OxU9!9siO(4#R}(7G`E<=!ZTG4FP)lYBgsYr1$-kJ+YXD?KI2% zshNo7bEx!z(4wZZ11xlD3D)7H@H)F9-&EOD43jA zuJlGkm4Ti?QYB-eCl{yc&VHj3+O*}>4LdBHe!9U&jy(*U`CGErUtU2H&`$x*WHe2u zufILr3jM*|tJ(Su-#`}XgC8n?bHfNJ1%-HD{v2`8Z@w6g$%xhF?1@^Q*9sm_8Owg? zde+|SyZx^aq9sE5!DgG?1@^2IX}}{{k$d6|>PsPQklz#tsrm$Ay>;lMvQf1E;nxbT zLxDag4M3ekW&Z4omp2%p%OhGdAmHzk+NYXX@rWFhaR7MD=u%C;-EZ?{Skq)6Dv6^85B(g473ea`r1u#J|K*5hMVE>_>)aM z2*lB|vo{%1aoSd4FmE>HUT@4hat5cbGY)AZ)w?X@a=wDMXOg%Zs_+Qt+ZYC`*;}I8 zhBgim>IPiWo)r*IHb%i)P$k~|o0SkNeT$J}MtN(vNtKv9cQR8xNwR-rXy~bCv)g|k zmehXvZ(@58Ns>{%B6DHk;elg6_1{Tir}{wphveC}`w2us0?UH@M5kMX_#1d)Dhl7G zq}m{Z!2B7$3gpJjpSj~b7y!t=3HtN+72 zy&eEYDK*h|j`ZyromkHTA^s)a0fvzK;=xrhe}*q`))VK^E~eEQ4n z0U~7&x%gx0fc)>9E&H#HMs#39X}APmEY(`mkbp?gF(ZVOcO#LM<7dB%1!F-_o=nQl zE>fcaLk#}>48m1TF?+AF($bUIkJ^x-#JO8s_q#1i4&3@k4@mPtZX4e1c03gHG?24n zg-PBoLkY_t;gmTk1Yg==hHGkLw=Tr86jyO>tnW}C(R+TxasyTx{V^KN?C+&<0oZDh z{vF_x8xTJMvd2bn$c05l0&$xls+BzWk}jZWOyqC*hmrf{miNHW@E(}og5)J}8qty< z?$b#)gJN1>@9?WyoID>tYXwgZT;<@EZwr^yklu6+ukZ`XZeJLoL0^y=J1rI9y-5xy)& zf-WCaN|5xGII3X+I1ikH01svq(v+0>@q*%bRRN0;SYizC7t|1VUBmqqK*fX4YPLeE z*ty2oHU}~YvC2p!tOuluO1hFHZL(#wsuNn!>xIs=_8bT6(4TL~?b#f$tAs5-JcJ4?0qZnsBcCcnxXv#Q$N=?h&F6J)!E1euK!K}RbiCl~Kr zHVIZfsJ0^98V#U0nswIO+NiCfV$N{F!QzRCbIq=MohK+}IJw}`fn4tMLIbh%BR6}hx^vt4!D?hRIGQI$lT~iUX&j!L z^+I93 zn12i=CJI4eHVBO=q2saz*K@5pVoF zYj3QMlkY16My<32saWRo>slJ2sh}jcvxv9-g0hMa055 z=qY}#wf-_s-ZJD_*qrys^{OvJff45KMRJNPj>bz;^$+|BYX0tr;iuo9mpSDgg|5P3 zDZ=(|Qc~?J2S&d7f1b7%;e4_$8iB$@6j#i%xn#}@hQz#+r`s6H+BGO_=g5kb5=1>V zC@Hltxw{Ra8y&;%$X4(!#i9Rck!Dk~POE#e&j*>6uhzu-{XMGt_pf~HtWDNo_rFP3 zz3UyBek}x#x9m2`RPRuqn8ocV3r&l3L`zqfEm$tMGn4z`Bc;B?@k|+4n2FY}Fx`3& zkwravpM@7aqPMu`1yd$N9Y&K#B(dAuLqbD?FAGT0uAD*7g6!(D?k`$8@`Ogt&TbsWs~uEYzL=PQ4dR6>Dm2R2)5>!ve8&n#^#^iuS|1Zv zb_H=y_6{`X$Q}_Okw|T92M!$QN^CcEQ<3PqUQ_nAuU+_Jn4jYGzv_h0NzVtkleggI z^|tH%!5CN2(NQ{kg(a=?q4Is8SAOKfX( z< zPoc1+Wea`}LbeH0Z6EfDmB0Ds(o*P(#04kk$HZMhrjxzdD>=<3?BRthJBxpL zJ~(Wq=F3Y-`^OsYsLx4Zlhx%jnFjlj`X&$mDw`mjo!{BMJ!i(GCw(l`h}iP;Htd)S znEGc$Q+w`}nzIU^AH5+SY$TM&bE87ruiAT!=;yAqwzduq4i?Dp>GpTzN%ZeZJSb9| z67}+e75b6?!cnd3aWNS7-njpB5d&@NifuucF%`1|4ys24#zKZCKUE{bx!eDwPMV-{ z+PNmIm_EW&F0?5d=(N$(&)eFr9!TU$5KKD9 z(ZD7F%AcO?#~Jg)U>gbZ$h~LwDmJGNeJIj6?D9u5gxa4w}gQ*G=#Ikc{WY7+VLrcESwHAU(gnM}rFv9#HeUg}xx`Z|IOXHWW%8OVWt znJbQ~c{CujS7jlW$65_~<&{E>@CtN^)8qErq0UES{y!r60wl@O<>#M8f z#ey&b<~Xw*%F4>?zZ;G(EO&RON0Hz<>jyXf&w?Hzjv;C1RuW*y_xF@rFkAq2^o?8p brZ=IIIwV2*!n>3Pzx~Zf-|SEk#x>^OV1R~* diff --git a/dynamic-proxy/etc/dynamic-proxy-classes.puml b/dynamic-proxy/etc/dynamic-proxy-classes.puml deleted file mode 100644 index 119f1dc11..000000000 --- a/dynamic-proxy/etc/dynamic-proxy-classes.puml +++ /dev/null @@ -1,35 +0,0 @@ -@startuml - -class A as "App" { -} - -interface I as "MyInterface" { - someMethod(args) - otherMethods(args) -} - -class P as "Proxy" <> { - {static} DynamicProxy newProxyInstance(\n classLoader,\n interfaces,\n invocationHandler\n) -} - -class D as "DynamicProxy" { - someMethod(args) - otherMethods(args) -} - -class H as "InvocationHandler" { - invoke(proxy, method, args) -} - -class X as "AuxiliarProcessor" { - process(method, args) -} - -A -r-> D - -I <|.. D : implements - -D -r-> H : delegate -H -r-> X : (optional) - -@enduml diff --git a/dynamic-proxy/etc/dynamic-proxy-sequence.png b/dynamic-proxy/etc/dynamic-proxy-sequence.png deleted file mode 100644 index 9a139b1c8ffe44dc9eaf9333e9310c4bd1950f93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54913 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 -participant DynamicProxy as D <> -participant InvocationHandler as H -participant AuxiliarProcessor as R - -== Create Dynamic Proxy == - -create H -A -> H : new(args) -activate H - -create R -H -> R : new(args) -activate R - -R --> H : processor -deactivate R - -H --> A : invocationHandler -deactivate H - -||| - -A -> P : newProxyInstance(\n classLoader,\n new Class[]{MyInterface.class},\n invocationHandler\n) -activate P - -create D -P -> D : new -activate D - -D --> P : dynamicProxy -deactivate D - -P --> A : dynamicProxy -deactivate P - -== Call Interface's Method == - -A -> D : someMethod(args) -activate D - -D -> H : invoke(proxy, method, args) -activate H - -H -> R : process(method, args) -activate R - -R -> R : parse method's\nmetadata -R -> R : execute some\nprocessing - -R --> H : response -deactivate R - -H --> D : response -deactivate H - -D --> A : response -deactivate D - -@enduml diff --git a/dynamic-proxy/etc/dynamic-proxy.urm.png b/dynamic-proxy/etc/dynamic-proxy.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..6178af2fbd202200a0eb69132b136b29adeb190b GIT binary patch literal 160578 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 z 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 z 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

-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 |h#cGmQ$&yuf4K>8LlCQ#-J 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 literal 0 HcmV?d00001