Merge branch 'unit-of-work-pattern' of github.com:piyushchaudhari04/java-design-patterns into unit-of-work-pattern

This commit is contained in:
Piyush Chaudhari 2017-10-31 16:31:01 +05:30
commit 7185830700
138 changed files with 437 additions and 174 deletions
abstract-document
abstract-factory
adapter
aggregator-microservices
aggregator-service
information-microservice
inventory-microservice
pom.xml
api-gateway
api-gateway-service
image-microservice
pom.xml
price-microservice
async-method-invocation
balking
bridge
pom.xml
src/test/java/com/iluwatar/bridge
builder
business-delegate
caching
callback
chain
checkstyle.xml
command
pom.xml
src/main/java/com/iluwatar/command
composite
converter
cqrs
dao
data-bus
data-mapper
data-transfer-object
decorator
delegation
dependency-injection
double-checked-locking
double-dispatch
eip-wire-tap
README.md
etc
pom.xml
src
main
java/com/iluwatar/eip/wiretap
resources
test
java/com/iluwatar/eip/wiretap
resources
event-aggregator
event-asynchronous
event-driven-architecture
event-queue
event-sourcing
execute-around
extension-objects
facade
factory-kit
factory-method
pom.xml
src/test/java/com/iluwatar/factory/method
feature-toggle
fluentinterface
flux
flyweight
front-controller
guarded-suspension
half-sync-half-async
hexagonal
intercepting-filter
interpreter
iterator
layers
lazy-loading
marker
mediator
memento
message-channel
model-view-controller
model-view-presenter
module
monad
monostate
multiton
mute-idiom
mutex
naked-objects
null-object
object-mother
object-pool
observer
page-object
partial-response
poison-pill
pom.xml
private-class-data
producer-consumer
promise
pom.xml
src/main/java/com/iluwatar/promise

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>abstract-document</artifactId> <artifactId>abstract-document</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>abstract-factory</artifactId> <artifactId>abstract-factory</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>adapter</artifactId> <artifactId>adapter</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>aggregator-microservices</artifactId> <artifactId>aggregator-microservices</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>aggregator-microservices</artifactId> <artifactId>aggregator-microservices</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>aggregator-microservices</artifactId> <artifactId>aggregator-microservices</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>aggregator-microservices</artifactId> <artifactId>aggregator-microservices</artifactId>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>api-gateway</artifactId> <artifactId>api-gateway</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>api-gateway-service</artifactId> <artifactId>api-gateway-service</artifactId>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>api-gateway</artifactId> <artifactId>api-gateway</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>api-gateway</artifactId> <artifactId>api-gateway</artifactId>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>api-gateway</artifactId> <artifactId>api-gateway</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>async-method-invocation</artifactId> <artifactId>async-method-invocation</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>bridge</artifactId> <artifactId>bridge</artifactId>
<dependencies> <dependencies>

@ -44,15 +44,15 @@ public abstract class WeaponTest {
assertNotNull(weapon.getEnchantment()); assertNotNull(weapon.getEnchantment());
weapon.swing(); weapon.swing();
verify(enchantment, times(1)).apply(); verify(enchantment).apply();
verifyNoMoreInteractions(enchantment); verifyNoMoreInteractions(enchantment);
weapon.wield(); weapon.wield();
verify(enchantment, times(1)).onActivate(); verify(enchantment).onActivate();
verifyNoMoreInteractions(enchantment); verifyNoMoreInteractions(enchantment);
weapon.unwield(); weapon.unwield();
verify(enchantment, times(1)).onDeactivate(); verify(enchantment).onDeactivate();
verifyNoMoreInteractions(enchantment); verifyNoMoreInteractions(enchantment);
} }

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>builder</artifactId> <artifactId>builder</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>business-delegate</artifactId> <artifactId>business-delegate</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>caching</artifactId> <artifactId>caching</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>callback</artifactId> <artifactId>callback</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>chain</artifactId> <artifactId>chain</artifactId>
<dependencies> <dependencies>

@ -85,9 +85,7 @@
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
</module> </module>
<module name="NeedBraces"/> <module name="NeedBraces"/>
<module name="LeftCurly"> <module name="LeftCurly"/>
<property name="maxLineLength" value="120"/>
</module>
<module name="RightCurly"/> <module name="RightCurly"/>
<module name="RightCurly"> <module name="RightCurly">
<property name="option" value="alone"/> <property name="option" value="alone"/>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>command</artifactId> <artifactId>command</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@ package com.iluwatar.command;
*/ */
public enum Size { public enum Size {
SMALL("small"), NORMAL("normal"), LARGE("large"), UNDEFINED(""); SMALL("small"), NORMAL("normal");
private String title; private String title;

@ -29,7 +29,7 @@ package com.iluwatar.command;
*/ */
public enum Visibility { public enum Visibility {
VISIBLE("visible"), INVISIBLE("invisible"), UNDEFINED(""); VISIBLE("visible"), INVISIBLE("invisible");
private String title; private String title;

@ -40,7 +40,9 @@ public class Wizard {
private Deque<Command> undoStack = new LinkedList<>(); private Deque<Command> undoStack = new LinkedList<>();
private Deque<Command> redoStack = new LinkedList<>(); private Deque<Command> redoStack = new LinkedList<>();
public Wizard() {} public Wizard() {
// comment to ignore sonar issue: LEVEL critical
}
/** /**
* Cast spell * Cast spell

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>composite</artifactId> <artifactId>composite</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<dependencies> <dependencies>

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>cqrs</artifactId> <artifactId>cqrs</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>dao</artifactId> <artifactId>dao</artifactId>

@ -33,7 +33,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>data-bus</artifactId> <artifactId>data-bus</artifactId>
<dependencies> <dependencies>

@ -28,7 +28,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>data-mapper</artifactId> <artifactId>data-mapper</artifactId>
<dependencies> <dependencies>

@ -28,7 +28,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>data-transfer-object</artifactId> <artifactId>data-transfer-object</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>decorator</artifactId> <artifactId>decorator</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>dependency-injection</artifactId> <artifactId>dependency-injection</artifactId>
<dependencies> <dependencies>

@ -27,7 +27,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>double-checked-locking</artifactId> <artifactId>double-checked-locking</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>double-dispatch</artifactId> <artifactId>double-dispatch</artifactId>
<dependencies> <dependencies>

29
eip-wire-tap/README.md Normal file

@ -0,0 +1,29 @@
---
layout: pattern
title: EIP Wire Tap
folder: eip-wire-tap
permalink: /patterns/eip-wire-tap/
categories: Enterprise integration
tags:
- Java
- Difficulty-Intermittent
- Enterprise integration
---
## Intent
In most integration cases there is a need to monitor the messages flowing through the system. It is usually achieved
by intercepting the message and redirecting it to a different location like console, filesystem or the database.
It is important that such functionality should not modify the original message and influence the processing path.
![alt text](./etc/wiretap.gif "Wire Tap")
## Applicability
Use the Wire Tap pattern when
* You need to monitor messages flowing through the system
* You need to redirect the same, unchanged message to two different endpoints/paths
## Credits
* [Gregor Hohpe, Bobby Woolf - Enterprise Integration Patterns](http://www.enterpriseintegrationpatterns.com/patterns/messaging/WireTap.html)
* [Apache Camel - Documentation](http://camel.apache.org/wire-tap.html)

Binary file not shown.

After

(image error) Size: 3.0 KiB

63
eip-wire-tap/pom.xml Normal file

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
The MIT License
Copyright (c) 2014-2016 Ilkka Seppälä
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>eip-wire-tap</artifactId>
<parent>
<groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId>
<version>1.18.0-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot</artifactId>
<version>${camel.version}</version>
</dependency>
<!-- Testing -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-test-spring</artifactId>
<version>${camel.version}</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,51 @@
package com.iluwatar.eip.wiretap;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
/**
* In most integration cases there is a need to monitor the messages flowing through the system. It is usually achieved
* by intercepting the message and redirecting it to a different location like console, filesystem or the database.
* It is important that such functionality should not modify the original message and influence the processing path.
*
* <p>
* Wire Tap allows you to route messages to a separate location while they are being forwarded to the ultimate
* destination. It basically consumes messages of the input channel and publishes the unmodified message to both
* output channels.
* </p>
*/
@SpringBootApplication
public class App {
/**
* Program entry point. It starts Spring Boot application and using Apache Camel it auto-configures routes.
*
* @param args command line args
*/
public static void main(String[] args) throws Exception {
// Run Spring Boot application and obtain ApplicationContext
ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
// Get CamelContext from ApplicationContext
CamelContext camelContext = (CamelContext) context.getBean("camelContext");
// Add a new routes that will handle endpoints form WireTapRoute class.
camelContext.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("{{endpoint}}").log("ENDPOINT: ${body}");
from("{{wireTapEndpoint}}").log("WIRETAPPED ENDPOINT: ${body}");
}
});
// Add producer that will send test message to an entry point in WireTapRoute
camelContext.createProducerTemplate().sendBody("{{entry}}", "Test message");
SpringApplication.exit(context);
}
}

@ -0,0 +1,32 @@
package com.iluwatar.eip.wiretap.routes;
import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;
/**
* Sample wire tap route definition.
*
* <p>
* It consumes messages out of the <i>direct:entry</i> entry point and forwards them to <i>direct:endpoint</i>.
* Wire Tap intercepts the message and sends it to <i>direct:wireTap</i>, which in turn forwards it to
* <i>direct:wireTapEndpoint</i>.
* </p>
*
* In this example input/output endpoints names are stored in <i>application.properties</i> file.
*/
@Component
public class WireTapRoute extends RouteBuilder {
/**
* Configures the route
* @throws Exception in case of exception during configuration
*/
@Override
public void configure() throws Exception {
// Main route
from("{{entry}}").wireTap("direct:wireTap").to("{{endpoint}}");
// Wire tap route
from("direct:wireTap").log("Message: ${body}").to("{{wireTapEndpoint}}");
}
}

@ -0,0 +1,3 @@
entry=direct:entry
endpoint=direct:endpoint
wireTapEndpoint=direct:wireTapEndpoint

@ -0,0 +1,15 @@
package com.iluwatar.eip.wiretap;
import org.junit.Test;
/**
* Test for App class
*/
public class AppTest {
@Test
public void testMain() throws Exception {
String[] args = {};
App.main(args);
}
}

@ -0,0 +1,62 @@
package com.iluwatar.eip.wiretap.routes;
import org.apache.camel.EndpointInject;
import org.apache.camel.Message;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.junit.Assert.assertEquals;
/**
* Test class for <i>WireTapRoute</i>.
* <p>
* In order for it to work we have to mock endpoints we want to read/write to. To mock those we need to substitute
* original endpoint names to mocks.
* </p>
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = WireTapRouteTest.class)
@ActiveProfiles("test")
@EnableAutoConfiguration
@ComponentScan
public class WireTapRouteTest {
@EndpointInject(uri = "{{entry}}")
private ProducerTemplate entry;
@EndpointInject(uri = "{{endpoint}}")
private MockEndpoint endpoint;
@EndpointInject(uri = "{{wireTapEndpoint}}")
private MockEndpoint wireTapEndpoint;
/**
* Test if both endpoints receive exactly one message containing the same, unchanged body.
* @throws Exception in case of en exception during the test
*/
@Test
@DirtiesContext
public void testWireTap() throws Exception {
entry.sendBody("TEST");
endpoint.expectedMessageCount(1);
wireTapEndpoint.expectedMessageCount(1);
endpoint.assertIsSatisfied();
wireTapEndpoint.assertIsSatisfied();
Message endpointIn = endpoint.getExchanges().get(0).getIn();
Message wireTapEndpointIn = wireTapEndpoint.getExchanges().get(0).getIn();
assertEquals("TEST", endpointIn.getBody());
assertEquals("TEST", wireTapEndpointIn.getBody());
}
}

@ -0,0 +1,3 @@
entry=direct:entry
endpoint=mock:endpoint
wireTapEndpoint=mock:wireTapEndpoint

@ -28,7 +28,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>event-aggregator</artifactId> <artifactId>event-aggregator</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>event-asynchronous</artifactId> <artifactId>event-asynchronous</artifactId>
<dependencies> <dependencies>

@ -31,7 +31,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>event-driven-architecture</artifactId> <artifactId>event-driven-architecture</artifactId>

@ -30,7 +30,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>event-queue</artifactId> <artifactId>event-queue</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>event-sourcing</artifactId> <artifactId>event-sourcing</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>execute-around</artifactId> <artifactId>execute-around</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>facade</artifactId> <artifactId>facade</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>factory-kit</artifactId> <artifactId>factory-kit</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>factory-method</artifactId> <artifactId>factory-method</artifactId>
<dependencies> <dependencies>

@ -95,7 +95,7 @@ public class FactoryMethodTest {
*/ */
private void verifyWeapon(Weapon weapon, WeaponType expectedWeaponType, Class<?> clazz) { private void verifyWeapon(Weapon weapon, WeaponType expectedWeaponType, Class<?> clazz) {
assertTrue("Weapon must be an object of: " + clazz.getName(), clazz.isInstance(weapon)); assertTrue("Weapon must be an object of: " + clazz.getName(), clazz.isInstance(weapon));
assertEquals("Weapon must be of weaponType: " + clazz.getName(), expectedWeaponType, assertEquals("Weapon must be of weaponType: " + expectedWeaponType, expectedWeaponType,
weapon.getWeaponType()); weapon.getWeaponType());
} }
} }

@ -30,7 +30,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>flux</artifactId> <artifactId>flux</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>flyweight</artifactId> <artifactId>flyweight</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>front-controller</artifactId> <artifactId>front-controller</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<packaging>jar</packaging> <packaging>jar</packaging>
<artifactId>guarded-suspension</artifactId> <artifactId>guarded-suspension</artifactId>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>half-sync-half-async</artifactId> <artifactId>half-sync-half-async</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>hexagonal</artifactId> <artifactId>hexagonal</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>intercepting-filter</artifactId> <artifactId>intercepting-filter</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>interpreter</artifactId> <artifactId>interpreter</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>iterator</artifactId> <artifactId>iterator</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<groupId>com.iluwatar.layers</groupId> <groupId>com.iluwatar.layers</groupId>
<artifactId>layers</artifactId> <artifactId>layers</artifactId>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>lazy-loading</artifactId> <artifactId>lazy-loading</artifactId>
<dependencies> <dependencies>

@ -24,7 +24,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>mediator</artifactId> <artifactId>mediator</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>memento</artifactId> <artifactId>memento</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>message-channel</artifactId> <artifactId>message-channel</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>model-view-controller</artifactId> <artifactId>model-view-controller</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>model-view-presenter</artifactId> <artifactId>model-view-presenter</artifactId>
<name>model-view-presenter</name> <name>model-view-presenter</name>

@ -28,7 +28,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>module</artifactId> <artifactId>module</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>monad</artifactId> <artifactId>monad</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>monostate</artifactId> <artifactId>monostate</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>multiton</artifactId> <artifactId>multiton</artifactId>
<dependencies> <dependencies>

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>mute-idiom</artifactId> <artifactId>mute-idiom</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>mutex</artifactId> <artifactId>mutex</artifactId>
<dependencies> <dependencies>

@ -29,4 +29,4 @@ Use the Naked Objects pattern when
## Credits ## Credits
* [Richard Pawson - Naked Objects](https://isis.apache.org/resources/thesis/Pawson-Naked-Objects-thesis.pdf) * [Richard Pawson - Naked Objects](http://downloads.nakedobjects.net/resources/Pawson%20thesis.pdf)

@ -16,7 +16,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>naked-objects</artifactId> <artifactId>naked-objects</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>naked-objects-dom</artifactId> <artifactId>naked-objects-dom</artifactId>

@ -16,7 +16,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>naked-objects</artifactId> <artifactId>naked-objects</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>naked-objects-fixture</artifactId> <artifactId>naked-objects-fixture</artifactId>

@ -16,7 +16,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>naked-objects</artifactId> <artifactId>naked-objects</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>naked-objects-integtests</artifactId> <artifactId>naked-objects-integtests</artifactId>

@ -15,7 +15,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>naked-objects</artifactId> <artifactId>naked-objects</artifactId>
@ -367,17 +367,17 @@
<dependency> <dependency>
<groupId>${project.groupId}</groupId> <groupId>${project.groupId}</groupId>
<artifactId>naked-objects-dom</artifactId> <artifactId>naked-objects-dom</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>${project.groupId}</groupId> <groupId>${project.groupId}</groupId>
<artifactId>naked-objects-fixture</artifactId> <artifactId>naked-objects-fixture</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>${project.groupId}</groupId> <groupId>${project.groupId}</groupId>
<artifactId>naked-objects-webapp</artifactId> <artifactId>naked-objects-webapp</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</dependency> </dependency>
</dependencies> </dependencies>

@ -16,7 +16,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>naked-objects</artifactId> <artifactId>naked-objects</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>naked-objects-webapp</artifactId> <artifactId>naked-objects-webapp</artifactId>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>null-object</artifactId> <artifactId>null-object</artifactId>
<dependencies> <dependencies>

@ -30,7 +30,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>object-mother</artifactId> <artifactId>object-mother</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>object-pool</artifactId> <artifactId>object-pool</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>observer</artifactId> <artifactId>observer</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>page-object</artifactId> <artifactId>page-object</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>poison-pill</artifactId> <artifactId>poison-pill</artifactId>
<dependencies> <dependencies>

@ -21,7 +21,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<inceptionYear>2014</inceptionYear> <inceptionYear>2014</inceptionYear>
<properties> <properties>
@ -146,8 +146,10 @@
<module>event-sourcing</module> <module>event-sourcing</module>
<module>data-transfer-object</module> <module>data-transfer-object</module>
<module>throttling</module> <module>throttling</module>
<module>unit-of-work</module> <module>unit-of-work</module>
<module>partial-response</module> <module>partial-response</module>
<module>eip-wire-tap</module>
</modules> </modules>
<dependencyManagement> <dependencyManagement>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>private-class-data</artifactId> <artifactId>private-class-data</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>producer-consumer</artifactId> <artifactId>producer-consumer</artifactId>
<dependencies> <dependencies>

@ -29,7 +29,7 @@
<parent> <parent>
<groupId>com.iluwatar</groupId> <groupId>com.iluwatar</groupId>
<artifactId>java-design-patterns</artifactId> <artifactId>java-design-patterns</artifactId>
<version>1.17.0-SNAPSHOT</version> <version>1.18.0-SNAPSHOT</version>
</parent> </parent>
<artifactId>promise</artifactId> <artifactId>promise</artifactId>
<dependencies> <dependencies>

@ -65,7 +65,7 @@ public class App {
private static final Logger LOGGER = LoggerFactory.getLogger(App.class); private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
private static final String DEFAULT_URL = "https://raw.githubusercontent.com/iluwatar/java-design-patterns/Promise/promise/README.md"; private static final String DEFAULT_URL = "https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/promise/README.md";
private final ExecutorService executor; private final ExecutorService executor;
private final CountDownLatch stopLatch; private final CountDownLatch stopLatch;

Some files were not shown because too many files have changed in this diff Show More