Compare commits
192 Commits
1.12.0
...
proxy-pres
Author | SHA1 | Date | |
---|---|---|---|
9cf1918425 | |||
5e57cd03d1 | |||
ad93184a79 | |||
95f2c19780 | |||
120033b58b | |||
c94c8a3e74 | |||
5d8806858b | |||
efc2c887e9 | |||
1d6d0c54a7 | |||
1387e2bc96 | |||
faa29f8025 | |||
89e7f51e99 | |||
cc02ff472b | |||
7d995056ff | |||
8574e06966 | |||
82d3d7bf1f | |||
1a75ab8df1 | |||
92f8501f7d | |||
b9ac0dc6a3 | |||
5e7887d9be | |||
e8f7187e4b | |||
d6b5456f98 | |||
52a81eb368 | |||
12b70cb39c | |||
68ec24c62e | |||
3091ff21b0 | |||
95b651f177 | |||
f67d2fd9a9 | |||
4ff8fa3721 | |||
9180bb0fef | |||
1abf5b11c3 | |||
22d973c460 | |||
c850295aab | |||
4c24d99414 | |||
e1ae1067db | |||
6f3e2985a4 | |||
b37190a214 | |||
0a427710bb | |||
e138163c4f | |||
124fd33da0 | |||
9433c78d29 | |||
932700d9b1 | |||
27d6d500bc | |||
ea7752c5e1 | |||
7ba6cb43fd | |||
1ace4c05d6 | |||
7015e95ac3 | |||
2a77ac29e9 | |||
6aed26e61e | |||
74ac79b01e | |||
750fa4f954 | |||
20295316c2 | |||
56b0884258 | |||
0438811489 | |||
1c02785927 | |||
19cb715d20 | |||
ffdaf2ec47 | |||
a37a29e12b | |||
b66e8ecef9 | |||
99677867c6 | |||
0f7b44c3b1 | |||
70318123fe | |||
986c529eb6 | |||
64bdab46b9 | |||
37b930c3b7 | |||
85060784a7 | |||
f114b5b957 | |||
863ea75381 | |||
3a9d1684fd | |||
eea8785a22 | |||
8f1758c28f | |||
622376e0fa | |||
5eacf522a2 | |||
12544caa75 | |||
9512f3ec70 | |||
4ca205c03c | |||
c5e6dcc11b | |||
b31edda3cf | |||
e3355d76d1 | |||
865f788612 | |||
6ed842e58b | |||
69cab15d75 | |||
371b262a51 | |||
dbd605e378 | |||
6026eedd51 | |||
b030cd4eba | |||
6aa58e8ae6 | |||
914d1353a1 | |||
df32a7b893 | |||
c4c5e78e50 | |||
3cf2b34d2a | |||
27e8cb7f2d | |||
e685512ed5 | |||
f2159515bc | |||
59e6a0af85 | |||
9a90f2de1f | |||
626c56730c | |||
fce30db803 | |||
a85463470e | |||
4410419914 | |||
e17d72bca8 | |||
121ed3cca8 | |||
adc6019c7e | |||
0f2807b9cf | |||
1b10ddbb73 | |||
348e577e8e | |||
22821ba8cc | |||
4493341ba6 | |||
3cb872807e | |||
ab68129829 | |||
e57a0948ef | |||
233f1e69f9 | |||
f11597136f | |||
e1836fee2f | |||
2d99061902 | |||
ff23e90c4f | |||
fa52a7f77e | |||
165d1f1298 | |||
be2c7fdb2b | |||
90c636abd3 | |||
678a06e7f8 | |||
e425c2ef2f | |||
5c1a4f1caf | |||
58dce1bd89 | |||
9dd1503e6f | |||
09037b0251 | |||
36fe249960 | |||
e73867f9a1 | |||
59cf100302 | |||
ad11ea46b1 | |||
5796e1967f | |||
483c61a82a | |||
6575b3ae99 | |||
095adda7e9 | |||
f16ae08bdf | |||
95cf9fe367 | |||
28647cdf48 | |||
fdcf546112 | |||
a0c77c32b5 | |||
eb75773891 | |||
c79df708b1 | |||
56100927a9 | |||
7e77216919 | |||
b16d7fc970 | |||
0b36a3153d | |||
7c2f5da926 | |||
ffbc5f2f29 | |||
d50139e13e | |||
d484e7f731 | |||
76970633b8 | |||
55028a49dc | |||
94c3a2caf3 | |||
547d798528 | |||
e7be94d2e4 | |||
383e4a3a0b | |||
3001fa4a30 | |||
5fcef89384 | |||
40ac552542 | |||
09ba5ca656 | |||
eb560f5f54 | |||
2b945ca27f | |||
4bd1f14cfb | |||
bc94d0fc26 | |||
102341443d | |||
8124fd0771 | |||
ea7503414e | |||
d4c2f0392d | |||
f7b7f15ec8 | |||
0fbbd8dc81 | |||
9f0320aeaf | |||
fe1d760c7f | |||
b46d2deeb0 | |||
f182e87ee1 | |||
85f432fb54 | |||
7be98fa829 | |||
ff8037ee0b | |||
849df50394 | |||
f806c5b712 | |||
ef2ada4fdf | |||
5d58a1b333 | |||
4a069ee93a | |||
88321890c7 | |||
b1e40d9c92 | |||
5c26f46174 | |||
4eac37c6b5 | |||
c212ee5cb1 | |||
8efaf44170 | |||
27e4e9afee | |||
35c0942803 | |||
0282d6663f | |||
c8f04d2f0d | |||
53fc8b749a |
.gitignore.travis.ymlREADME.md
_scripts
abstract-document
abstract-factory
adapter
aggregator-microservices
README.md
aggregator-service
etc
information-microservice
inventory-microservice
pom.xmlapi-gateway
README.md
api-gateway-service
etc
image-microservice
pom.xmlprice-microservice
async-method-invocation
bridge
builder
business-delegate
caching
callback
chain
checkstyle-suppressions.xmlcheckstyle.xmlcommand
composite
dao
data-mapper
decorator
delegation
dependency-injection
double-checked-locking
double-dispatch
event-aggregator
event-asynchronous
event-driven-architecture
exclude-pmd.propertiesexecute-around
facade
factory-kit
factory-method
faq.mdfeature-toggle
README.md
etc
pom.xmlsrc
main
java
com
iluwatar
featuretoggle
test
java
com
iluwatar
featuretoggle
pattern
propertiesversion
tieredversion
user
fluentinterface
README.md
etc
pom.xmlsrc
main
java
com
iluwatar
fluentinterface
app
fluentiterable
test
java
com
iluwatar
fluentinterface
app
fluentiterable
flux
flyweight
front-controller
half-sync-half-async
hexagonal
README.md
etc
hexagonal.pnghexagonal.uclshexagonal.urm.pumllayers.pngports_and_adapters.pngports_and_adapters.xmlpresentation.html
pom.xmlsrc
main
java
com
iluwatar
hexagonal
App.java
administration
banking
database
domain
LotteryAdministration.javaLotteryConstants.javaLotteryNumbers.javaLotteryService.javaLotteryTicket.javaLotteryTicketCheckResult.javaLotteryTicketId.javaLotteryUtils.javaPlayerDetails.java
eventlog
module
mongo
sampledata
service
test
java
com
iluwatar
hexagonal
intercepting-filter
interpreter
iterator
layers
lazy-loading
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
poison-pill
pom.xmlprivate-class-data
producer-consumer
promise
property
prototype
proxy
publish-subscribe
queue-load-leveling
reactor
reader-writer-lock
repository
resource-acquisition-is-initialization
README.md
etc
pom.xmlsrc
main
java
com
iluwatar
resource
acquisition
is
initialization
test
java
com
iluwatar
resource
acquisition
is
initialization
semaphore
servant
service-layer
README.md
bin
etc
pom.xmlsrc
main
java
com
iluwatar
resources
test
java
com
iluwatar
servicelayer
app
common
magic
spell
spellbook
wizard
service-locator
singleton
specification
state
step-builder
strategy
template-method
thread-pool
tolerant-reader
twin
update-ghpages.shvalue-object
visitor
2
.gitignore
vendored
2
.gitignore
vendored
@ -15,5 +15,5 @@ datanucleus.log
|
|||||||
/bin/
|
/bin/
|
||||||
/bin/
|
/bin/
|
||||||
/bin/
|
/bin/
|
||||||
|
*.log
|
||||||
data-mapper/src/main/resources/log4j.xml
|
data-mapper/src/main/resources/log4j.xml
|
23
.travis.yml
23
.travis.yml
@ -6,13 +6,34 @@ env:
|
|||||||
global:
|
global:
|
||||||
- GH_REF: github.com/iluwatar/java-design-patterns.git
|
- GH_REF: github.com/iluwatar/java-design-patterns.git
|
||||||
- secure: LxTDuNS/rBWIvKkaEqr79ImZAe48mCdoYCF41coxNXgNoippo4GIBArknqtv+XvdkiuRZ1yGyj6pn8GU33c/yn+krddTUkVCwTbVatbalW5jhQjDbHYym/JcxaK9ZS/3JTeGcWrBgiPqHEEDhCf26vPZsXoMSeVCEORVKTp1BSg=
|
- secure: LxTDuNS/rBWIvKkaEqr79ImZAe48mCdoYCF41coxNXgNoippo4GIBArknqtv+XvdkiuRZ1yGyj6pn8GU33c/yn+krddTUkVCwTbVatbalW5jhQjDbHYym/JcxaK9ZS/3JTeGcWrBgiPqHEEDhCf26vPZsXoMSeVCEORVKTp1BSg=
|
||||||
|
- secure: "eoWlW9GyTJY04P8K3pxayXwU9/hmptQg/LfirispQkV9YvmziCfSzXnatnBhNfud98sCzY8BScXnb+OWLTnjLKpId4rtEqb0aJ40Jc32cUKzgzFAUn7cNcDAbUIfyPAGVqyQqfj/11wYSADwWMMOPlW97ExUtoyiH2WenXuRHso="
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- export DISPLAY=:99.0
|
- export DISPLAY=:99.0
|
||||||
- sh -e /etc/init.d/xvfb start
|
- sh -e /etc/init.d/xvfb start
|
||||||
|
|
||||||
|
# default install command is just "mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V"
|
||||||
|
install:
|
||||||
|
- mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V -e
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
- mvn clean test jacoco:report coveralls:report
|
- mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar -Dsonar.host.url=https://sonarqube.com -Dsonar.login=$SONAR_TOKEN
|
||||||
- bash update-ghpages.sh
|
- bash update-ghpages.sh
|
||||||
|
|
||||||
|
# use latest java version available instead of travis default
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- oracle-java8-installer
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
email:
|
||||||
|
- iluwatar@gmail.com
|
||||||
|
webhooks:
|
||||||
|
urls:
|
||||||
|
- https://webhooks.gitter.im/e/3319623945358a093a6f
|
||||||
|
on_success: change # options: [always|never|change] default: always
|
||||||
|
on_failure: always # options: [always|never|change] default: always
|
||||||
|
on_start: never # options: [always|never|change] default: always
|
||||||
|
|
||||||
sudo: false # route the build to the container-based infrastructure for a faster build
|
sudo: false # route the build to the container-based infrastructure for a faster build
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
# Design patterns implemented in Java
|
# Design patterns implemented in Java
|
||||||
|
|
||||||
[](https://travis-ci.org/iluwatar/java-design-patterns)
|
[](https://travis-ci.org/iluwatar/java-design-patterns)
|
||||||
[](https://coveralls.io/r/iluwatar/java-design-patterns?branch=master)
|
|
||||||
[](https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/LICENSE.md)
|
[](https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/LICENSE.md)
|
||||||
[](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
|
[](https://sonarqube.com/dashboard/index/com.iluwatar%3Ajava-design-patterns)
|
||||||
|
|
||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ are familiar with the patterns.
|
|||||||
# Getting started
|
# Getting started
|
||||||
|
|
||||||
Before you dive into the material, you should be familiar with various
|
Before you dive into the material, you should be familiar with various
|
||||||
[Programming/Software Design Principles](http://webpro.github.io/programming-principles/).
|
Programming/Software Design Principles.
|
||||||
|
|
||||||
All designs should be as simple as possible. You should start with KISS, YAGNI,
|
All designs should be as simple as possible. You should start with KISS, YAGNI,
|
||||||
and Do The Simplest Thing That Could Possibly Work principles. Complexity and
|
and Do The Simplest Thing That Could Possibly Work principles. Complexity and
|
||||||
|
190
_scripts/postPumlsToServer.firstrun.output
Normal file
190
_scripts/postPumlsToServer.firstrun.output
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
parent: half-sync-half-async; artifact: half-sync-half-async
|
||||||
|
Puml Server ID: RScv3SCm3030LU819FRPXg5fIm552tnYPFiyjRi3RkbAaYkdoQr5JBy369vrxz7oaSv6XmPhL3e6TCaJ0msU-CAoilTToyG8DdKOw5z0GzcAlvNAN_WZSD1brBHHPmxv0000
|
||||||
|
parent: abstract-document; artifact: abstract-document
|
||||||
|
Puml Server ID: PSjB3eCm34NHhPG599vtDyQn85L-ifzX-p3lxEf8Twj3MXGDQvyJMFubChxpKN767gucSq07iinEjSNDOACVNvoAUZr6MWoe3QVE_WRnxZ0Mf38b-hkIGlurX_MyehS7
|
||||||
|
parent: tolerant-reader; artifact: tolerant-reader
|
||||||
|
Puml Server ID: NSZ14SCm20NHLf829ExfXaYChGn26lZ4xSVdtFRjSrZJx9AkZnFOyI9olkenSEOxGxmjWnXgMvE6viLWfmz_kNI9SLZP38XRqEIuWx1Kd0t5XVjjGVj_DNtMdLD_
|
||||||
|
parent: event-driven-architecture; artifact: event-driven-architecture
|
||||||
|
Puml Server ID: TOhH3SCW30LNQGS0_tSRnrZ15H1adfFromBzkfFktZQaHT7mzgh0N1yYvoUVXXf7B7Mv1dGWozN9MZmCTlhopQdeidEaoO3wMDHvRI6zzvwAssPYbsfGGRYIGlxN7DxpZDv-
|
||||||
|
parent: publish-subscribe; artifact: publish-subscribe
|
||||||
|
Puml Server ID: PSZB3SCm203GLTe1RExT1XCKKs5YyMdMR--zFRsd66aTNAwFcRdZ1U1uzrDorgXWfykIBJjT2qJhnaI7Dtwm7HnoMjkOoMu12-C7s3LKOhQe4UGo63ZfVtlvwhkMVW40
|
||||||
|
parent: facade; artifact: facade
|
||||||
|
Puml Server ID: BSP15eCm20N0gxG7CEoz3ILKqvTW7dpq-hhehERTJ7fMJU-l7PYn4ZbVPMlOyvEXBeT13KMEGQtdnM2d7v-yL8sssJ8PKBUWmV64lYnSbHJoRqaVPUReDm00
|
||||||
|
parent: service-locator; artifact: service-locator
|
||||||
|
Puml Server ID: NSjB3iCm203HgxG7iDdtDeIWX0fZYqzo_MRTtUX9ynOZhPtBzNLchlW0EDxza3nhgs2dQScMdUO0qRenqU6B5xQTGmvh2pFPBM1WF07FSmbnqqcOqu6J_gsNZxvgw0y0
|
||||||
|
parent: dao; artifact: dao
|
||||||
|
Puml Server ID: 5SR14OKW30N0LhG0oVrt4o6ZE12Ov4NR_thQNQlc5aN2sd82qtz4naywAixOmyNoK8WYvT6fjdWOR7JnpLiHhuTkam4nTUhiRwZm847-J64zpUZj3m00
|
||||||
|
parent: model-view-presenter; artifact: model-view-presenter
|
||||||
|
Puml Server ID: ROlR3SGW3C1MkGu0-RzjKeXQJWcWFChwPO3xispvQBrmL0hbp-q-xGkWkFBL_8upZBICxjGzbo7GE1OwAlpmmLJ9sjNJH7VIRY1e6q169KvFevMcakrtI_BoD-HGoJE4Nm00
|
||||||
|
parent: observer; artifact: observer
|
||||||
|
Puml Server ID: FSkn4OGm30NHLg00hFow4KO3PcpP8tr1-pYwx6smQz5Suv2mkbp0y1-HyPlEWYlsSB7S5Q98kJSgDLu66ztyy7Q8brEtmO2OEZNs2Uhxl9u9GVv72cjfHAiV
|
||||||
|
parent: intercepting-filter; artifact: intercepting-filter
|
||||||
|
Puml Server ID: RSfB3i8m303Hgy014k-vZN5DQkIuaJ_q-fGzkz7JtCL8Q-DolUsPAnu0ZcSVadizAzZfi6JBJiS4qJenqU6D7smRXmnh2pFPBM1YN05o_KwyKcoqb-ZFEEcVz_BPLqtz0W00
|
||||||
|
parent: factory-method; artifact: factory-method
|
||||||
|
Puml Server ID: NSZB3G8n30N0Lg20n7UwCOxPP9MVx6TMT0zdRgEvjoazYeRrMmMsFuYChtmqr7Y6gycQq8aiQr3hSJ7OwEGtfwBUZfas0shJQR3_G2yMBFkaeQYha4B-AeUDl6FqBm00
|
||||||
|
parent: private-class-data; artifact: private-class-data
|
||||||
|
Puml Server ID: RShR3SCm243HLTe1RFwx3S4eeSB4uf6itmpGlwkZ-nOZhS7b-ZeoLtm07E--InwrLR3JQScMdSu9edLZeiCNBso3GtPh2pFPBM1YF07BvSBaHeeHRJm_SD8VxkMphvhw0m00
|
||||||
|
parent: async-method-invocation; artifact: async-method-invocation
|
||||||
|
Puml Server ID: TSdB3SCW303GLTe1mFTkunWhk0A3_4dKxTi5UdlIUuhIoCPfuz4Zjhy03EzwIlGyqjbeQR16fJL1HjuOQF362qjZbrFBnWWsTPZeFm3wHwbCZhvQ4RqMOSXIuA1_LzDctJd75m00
|
||||||
|
parent: execute-around; artifact: execute-around
|
||||||
|
Puml Server ID: NSZ14G8n20NGLhI0XBlT865suoGa0n_NylNixSsxTvEHJTF7xGHsF8YShtfqdFdCK9TbK4ELDQcFl1ZizE8tbwRH3okR0NKBcXm_a7vK4bhOLreZXVnLJPzrvnnV
|
||||||
|
parent: monostate; artifact: monostate
|
||||||
|
Puml Server ID: HSV14OGm20NGLjO23FVj1YEZsGaa0nzjVxrvUszfLdlkaju_9p3ZI-HybwFXp2r3l0w364eTIgtdpM2d7r-yxXBji7Ko86v1ol60TDW8C8G4zLr9rp9J-ny0
|
||||||
|
parent: thread-pool; artifact: thread-pool
|
||||||
|
Puml Server ID: JSV14SCW30J0Lk82GFzq8uF6a1624IUx_UIPt-xHhMXK2TTN0zP-4pa_-UfeSSOMBzCWXbpceAxnCDZfmpUdAhjVbXO3uhPfyFw1q5oufZMdag3yFuUFl6Be5m00
|
||||||
|
parent: delegation; artifact: delegation
|
||||||
|
Puml Server ID: JSV14GCX20NGLf82LkxfXbN69OFeu2VRVdBCxRsdUhLiac6F2rZxHHHybwwuyimjKQT37ANEGMfvCpZepHy-ccpjVYm697pJuFq3DJ7f39rEWlhNaZ7Aoc5V
|
||||||
|
parent: chain; artifact: chain
|
||||||
|
Puml Server ID: 9SR13SCm20NGLTe1OkxTXX0KKzd4Wa-pVYlrdTxJN4OTMZ4U7LZv8Wg-ssdejLTgoELGHvDhaesw6HpqvWzlXwQTlYq6D3nfSlv2qjcS5F9VgvXjrHnV
|
||||||
|
parent: resource-acquisition-is-initialization; artifact: resource-acquisition-is-initialization
|
||||||
|
Puml Server ID: ZShR3S8m343HLUW0YV_PnhXMQvGumOzMOdhA1lqxkhgBABLSEQqzzeZfJm33isuIUxxIsMXei4QbqK5QdXXeyCO3oyekcvQ94MpgqD4lWB6FDEA2z4bn2HbQn8leHMponNy13hgvrhHUP_Rs0m00
|
||||||
|
parent: fluentinterface; artifact: fluentinterface
|
||||||
|
Puml Server ID: NOj93eCm302_KXv0VEzlN6F0bMCYB_3zvjpRQ3IpY97MnkNwEZD7l04SdtP8dlMfOAVBaYqRNHr4wy54Xo_Uk6uSSjWwC9FT0Zh61DYrPY_pyXs9WPF-NIllRLJN7m00
|
||||||
|
parent: service-layer; artifact: service-layer
|
||||||
|
Puml Server ID: LOl93SCm3C1MQGUmzUysgY8aAcJ5q96WszVV_aW2V8gHriRb-ZWoPxm07E--Inxrhc2dqv8jEvq3HEl6H8SFNjWs3jcjJSnaju21iG3MSmbnK_mkuwJ_qij7dpNq1m00
|
||||||
|
parent: visitor; artifact: visitor
|
||||||
|
Puml Server ID: DSR14OGm20NGLhG0mtsxmSWeJa8oyD7sTo_xJczLgoqFIM_B1Spu43c_vLHSkMU8rs4GGwcZaxPy6UnqyyFR8Q6dRPC1SGlg7B_Gew4OJeBwVqdlPMPlNm00
|
||||||
|
parent: double-dispatch; artifact: double-dispatch
|
||||||
|
Puml Server ID: NSbB3iCW303HgpG70Ezx6yTOWSeOv4zp_MRTtUZDCPGa6wV9gqTiVmCOtlKQqVDCPwEbmHgLreGXUMEWmGU_M1hxkBHiZ61JXud-1BILft1fmvz37JZetshQh3kd_000
|
||||||
|
parent: monad; artifact: monad
|
||||||
|
Puml Server ID: 9SR13SCm20NGLPe1OkxTXjWeSMMm1Pza_LRgExsjMntP97syBc35cyZvAMV7bKU6U9q6CPGwbVh8Xy5E7xvvRnBzj7qn86v1ol4BwJHk9AZ_bNGjAtLy0G00
|
||||||
|
parent: front-controller; artifact: front-controller
|
||||||
|
Puml Server ID: PSlB3OGm303HLfO24j-t6nCC13bEvC_IFk6yjz6JPgbIE3OAvS_fFkmBe7Zde_ePQnXfwU8adajlK3bkT5Iuy8Tf8wk7f87kf6BGq6R0hlD8xwQTUG9v-SCSslA8nWy0
|
||||||
|
parent: strategy; artifact: strategy
|
||||||
|
Puml Server ID: FSV13OCm30NGLM00udktCS4AGOaJsTz5tRwSkBstLiqj3WbhombC_n0PtwbKdB67Y-MX44NAerDjSJFOwE8lRuTuBRfD1iJKgRC_88SnfFn8aD-ai9vczFO7
|
||||||
|
parent: command; artifact: command
|
||||||
|
Puml Server ID: DSgn4OCm30NGLM00h3xR25i7vYpXaxx2-g59zugtTgiZcwIFvGHcV8YSdt9qdBbdYDVR88PIRwK-yc6mqyLVtff4FsoR38XRa7Aye3SgMoD1_RkaQvcfumS0
|
||||||
|
parent: abstract-factory; artifact: abstract-factory
|
||||||
|
Puml Server ID: PSZB3OD034NHLa81Czwd6sCC39gVxEUWT1_ssLmTtQLqgR5fM7sTmFGtaV6TZu8prd0r6HtQaMKqAZLk1XjT_E6qgPUZfyc0MdTgx0-8LuUn8ErFXdr98NypXxKyezKV
|
||||||
|
parent: flux; artifact: flux
|
||||||
|
Puml Server ID: 7SP14eCm20NGg-W13FlU1YFLE0GpyAazVZk-rPkRLSrDqdKwW14l8kUxx0r7hXdYzJA8eTIhKzEy6UnqyeUNJQBjjWm6n2seS_n3Ryql2UgJajxBoAu_
|
||||||
|
parent: event-aggregator; artifact: event-aggregator
|
||||||
|
Puml Server ID: PSf13iCW30NHgxG70Ezx6uTOX0eCih-JwvTzTwEdUJSjFKu9wwyBMFuXCdvoRRZY21ShKo6ANEQWrkDXiD6NRqwdUAkQ5WDYwZJOTv3SUqzSgqbbp0qeVvZ3Hbun-Wy0
|
||||||
|
parent: singleton; artifact: singleton
|
||||||
|
Puml Server ID: HSV14SCm20J0Lk82BFxf1ikCh0n26ZZizfDVVhjRjwfvIhg-Bc35cyZvAQtZoYD3l4w364gTWxhcms2d3z-ydnAzsRuO4BUWmV43HRUcWcaagF-Lz55M3lq2
|
||||||
|
parent: null-object; artifact: null-object
|
||||||
|
Puml Server ID: JSV14SCm20J0Lk829Fxf1cF6bWSX3JhYzfDdVhjRSx4yDCDU5p3NcoZugMV3bNik3HaETLGPdPhbm-2WcpzS3btjz38PqF15dTSFv6bMndwhW1Jo_vhHwynkNm00
|
||||||
|
parent: multiton; artifact: multiton
|
||||||
|
Puml Server ID: FST14i8m20NGg-W16lRUXgPCYnD81Zxs-hfozzvJlOywf68yBc3bYoZuRgVYghrIea-7E5gVHZhgPd3Gcp-y7P9w-hOOaF0au_o1h0OKqqdG_saLrbRP-080
|
||||||
|
parent: composite; artifact: composite
|
||||||
|
Puml Server ID: HSf13eCm30NHgy01YFUzZGaM62LEP7-NwvTTT_EaMTLgoqFIst81Cpv4payv5LVk6U9r6CHGwkYaBHy6EztyvUsGqDEsoO2u1NMED-WTvmY5aA3-LT9xcTdR3m00
|
||||||
|
parent: api-gateway; artifact: image-microservice
|
||||||
|
Puml Server ID: 3Sp13SCm2030LTe1RFxTXX3aK1biOOZLxPlVlUujHZrFJk-lAsAk3u3ZhatYoYCNEmqBjgWq5AJdna27BzvOJbxIh4oCOBS5Yki1u9JIC7ZZ3pW8HB5nKI4VJtSBSKtNEbFx7m00
|
||||||
|
I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file 'api-gateway/etc/image-microservice.urm.puml'
|
||||||
|
pumlid: 3Sp13SCm2030LTe1RFxTXX3aK1biOOZLxPlVlUujHZrFJk-lAsAk3u3ZhatYoYCNEmqBjgWq5AJdna27BzvOJbxIh4oCOBS5Yki1u9JIC7ZZ3pW8HB5nKI4VJtSBSKtNEbFx7m00
|
||||||
|
parent: api-gateway; artifact: api-gateway-service
|
||||||
|
Puml Server ID: JSox3SCm303HLP819FRUXg49cO542_nOyFPncUvUSszHwhbpMdyT4TCt0CDLcyIHdtGsEZLOez8vG7ek33JuueLbPvUcPM84cpeCz2S0fvI6mGjluA1_b-Tt2N5D6tNcw3y0
|
||||||
|
I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file 'api-gateway/etc/api-gateway-service.urm.puml'
|
||||||
|
pumlid: JSox3SCm303HLP819FRUXg49cO542_nOyFPncUvUSszHwhbpMdyT4TCt0CDLcyIHdtGsEZLOez8vG7ek33JuueLbPvUcPM84cpeCz2S0fvI6mGjluA1_b-Tt2N5D6tNcw3y0
|
||||||
|
parent: api-gateway; artifact: price-microservice
|
||||||
|
Puml Server ID: 3Sn13iGW243HgqmFeEpdDfGIoqJK8DJqzkFklyq_f56DYyFgvtOVymjWk78Hl-ECoKQzEJVFr1Mana97Wny-c2wUKbeQwCxM9YZE7O13Ka7dXI-m4mmJugH2rlVksSXXcaTe_GC0
|
||||||
|
I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file 'api-gateway/etc/price-microservice.urm.puml'
|
||||||
|
pumlid: 3Sn13iGW243HgqmFeEpdDfGIoqJK8DJqzkFklyq_f56DYyFgvtOVymjWk78Hl-ECoKQzEJVFr1Mana97Wny-c2wUKbeQwCxM9YZE7O13Ka7dXI-m4mmJugH2rlVksSXXcaTe_GC0
|
||||||
|
parent: object-pool; artifact: object-pool
|
||||||
|
Puml Server ID: JSV94SCm2030Lk829Fxf1cF6bWU1XYDkFtdcjxiD9Qc3o-LrPQvu0pW-_HnvrLx1JgR9cfrimf1wCD7XnW-sWsESsXPcicl0nFW1RB-PiYqp0KxwVo-VVTMKBm00
|
||||||
|
parent: adapter; artifact: adapter
|
||||||
|
Puml Server ID: DSR14S8m30J0Lg20M7-wEMnDOiPMFDA9j0yyUEtUkzMHJTF7xI1NF4GSLzaxZtncgDVJgCPIpobzv0N2vOKtjgRHTziMI7KBcOXl10thfxB-Nz9dMJd71m00
|
||||||
|
parent: hexagonal; artifact: hexagonal
|
||||||
|
Puml Server ID: HSTB4W8X30N0g-W1XkozpPD90LO8L3wEnzUTk-xxq2fvSfhSUiJs1v7XAcr4psSwMrqQh57gcZGaBmICNdZZEDb7qsCZWasT9lm7wln1MmeXZlfVIPjbvvGl
|
||||||
|
parent: value-object; artifact: value-object
|
||||||
|
Puml Server ID: LSZ13SCm20NGLTe1RExTXX2KECBOmfza_VRQszDxDnVBNJFiTG9pVOY2dteqdBdbqf3XK4ULqQbPFWmEklZcikjgXvV9W8Olwhn-e9ijjOpjKW4fv2zgHgypktq1
|
||||||
|
parent: twin; artifact: twin
|
||||||
|
Puml Server ID: 7SR13OCm30NGLUW0n7UsCS42eyH4zdUpFbNVwNtKQij3qjjo0ICs8kTPJiMLUuPuVGnYAFNff2qdWvrk_l9wIEXfws10t88wno-4gKQ2-az9xsLaRoy0
|
||||||
|
parent: semaphore; artifact: semaphore
|
||||||
|
Puml Server ID: HSV14SCm20J0Lk82BFxf1ikCfOn06ZZizfDVVhjRjphobFJnQi2ADv7pKwwEbaU6U9q6CPGwbVh8Xy5E7xvvFoNwPVjYGDo2bEC72b5URRgGeFvNqhMirF45
|
||||||
|
parent: message-channel; artifact: message-channel
|
||||||
|
Puml Server ID: NSZB3SCm203GLTe1RExTXX1akm9YyMdMRy-zFRtdCf8wkLmUCtF72y3nxcFbhAE2dIvBjknqAIof6nCTtlZ1TdAiOMrZ9hi5ACOFe1o1WnjDD6C1Jlg_NgvzbyeN
|
||||||
|
parent: poison-pill; artifact: poison-pill
|
||||||
|
Puml Server ID: JSZ14SCm20NHLf82BExfXiYCJGOX3NpYzkDZRllsgTwjTgcmnmciV145N-rGdFMkbEZJ8OxMvo2rkXWSzE4lRxka7huj1YGyQN3UGMjgpdkh6Gdwlrl5QAk6_G00
|
||||||
|
parent: aggregator-microservices; artifact: aggregator-service
|
||||||
|
Puml Server ID: JOov3SCm301NIGQGs7iRXYPa1g8ayB7NjuiKwGvtmBrbKC-Tq_hhY5Y-0HXUjKaS-Kbdepc2HrIQ2jBpma23BvvOTdPfeooCO1iEYlu0O6l63MDQKI6Rp-CKOWSE-ey_NzEqhjH-0m00
|
||||||
|
I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file 'aggregator-microservices/etc/aggregator-service.urm.puml'
|
||||||
|
pumlid: JOov3SCm301NIGQGs7iRXYPa1g8ayB7NjuiKwGvtmBrbKC-Tq_hhY5Y-0HXUjKaS-Kbdepc2HrIQ2jBpma23BvvOTdPfeooCO1iEYlu0O6l63MDQKI6Rp-CKOWSE-ey_NzEqhjH-0m00
|
||||||
|
parent: aggregator-microservices; artifact: information-microservice
|
||||||
|
Puml Server ID: LSnB3i8m303Hgy016k-vZN5DQXGxaJ_jzUcMtKXFcgSOZTgvV3oEp1Kl0CUhTScZtXNiD2tPij5Ka54N9ZfyySHjvv1ksy9CTWjGZ3i0UtVkcDCt5V9vFquX3k0a4FjCLqoPzgUjNDig7Jy0
|
||||||
|
I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file 'aggregator-microservices/etc/information-microservice.urm.puml'
|
||||||
|
pumlid: LSnB3i8m303Hgy016k-vZN5DQXGxaJ_jzUcMtKXFcgSOZTgvV3oEp1Kl0CUhTScZtXNiD2tPij5Ka54N9ZfyySHjvv1ksy9CTWjGZ3i0UtVkcDCt5V9vFquX3k0a4FjCLqoPzgUjNDig7Jy0
|
||||||
|
parent: aggregator-microservices; artifact: inventory-microservice
|
||||||
|
Puml Server ID: LSpB3G8n303HLg20ZUzqOxnMrYXn8d-oedjovJRIIEyfIYrFJckFAsBw2y3mBbNYodSw6mqDrYWqEaZB6mCDFhZmEDcbwZ4nWaqTEleEm5gDAyQmemlPsCOIOWSE0j6riM7VlrVIUfdPsmy0
|
||||||
|
I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file 'aggregator-microservices/etc/inventory-microservice.urm.puml'
|
||||||
|
pumlid: LSpB3G8n303HLg20ZUzqOxnMrYXn8d-oedjovJRIIEyfIYrFJckFAsBw2y3mBbNYodSw6mqDrYWqEaZB6mCDFhZmEDcbwZ4nWaqTEleEm5gDAyQmemlPsCOIOWSE0j6riM7VlrVIUfdPsmy0
|
||||||
|
parent: bridge; artifact: bridge
|
||||||
|
Puml Server ID: BSR14SCm20J0Lf82BFxf1akCJ4R26ZZYzkE7zxLljJgoIVfu7S2A3v7pLRhYo3r3l9u6CPHwJjAH5uETllpZhKbejsqn86v1a-CExQwj2mdgqv8-oyev_W00
|
||||||
|
parent: servant; artifact: servant
|
||||||
|
Puml Server ID: DSkn4O0m20NGLNG0G-ys63cDbv0SV7HzRUnUy-QYkSOkONKwWU4haV6JZe8pjd2nt1MYIBatAZKU1XjTVFEoYvT3by60c3erzW_qdPiL9CY_KrXB8rfz0G00
|
||||||
|
parent: lazy-loading; artifact: lazy-loading
|
||||||
|
Puml Server ID: LSXB3W8X303Gg-W1e7jlqu66gIc5zED4JwzRTo_lpjeaEwN9xOpO_W0mlEhWEFD89sjBWpHgMnDOyi90WoU-i7Ho7besHf2fmqJ_0GG_xo8BE-i0YlONDMtMdLE-
|
||||||
|
parent: flyweight; artifact: flyweight
|
||||||
|
Puml Server ID: HSV94S8m3030Lg20M7-w4OvYAoCh7Xtnq3ty-Eq-MQlaJcdow17JNm26gpIEdkzqidffa4Qfrm2MN1XeSEADsqxEJRU94MJgCD1_W4C-YxZr08hwNqaRPUQGBm00
|
||||||
|
parent: mutex; artifact: mutex
|
||||||
|
Puml Server ID: 9SR13OCm30NGLSe0n7UsCS62LB69x6zWV2hrdTxKhFRS9Br_3c34GkHybxtXo3L3l9u6CPHwAhMUDuETldpnl4cqtUR1WBW5ASSlf0bvI53_A-bQHcf_0G00
|
||||||
|
parent: mediator; artifact: mediator
|
||||||
|
Puml Server ID: FSV14SCm20J0Lk82BFxf1akCJKOW3JhizfDNVhkRUktP9AE_Bc2kDr7mKqx5bKSkYJeSuYXr66dFXy517xvvRxBqz7qo8E6BZDSFPDAKCO84zP-IOMMczIy0
|
||||||
|
parent: page-object; artifact: page-object
|
||||||
|
Puml Server ID: JSV14OGW30NGLjO28FVj9iOCua1Wme-sxnxtzjvMJLeS6ju-9p3NbyZvoQNYZ3sMkWo36hACJhN5ms2dYszEXwvQB4q6r6rHv_K3JIwQndwfW1Jo_npUyupUNW00
|
||||||
|
parent: factory-kit; artifact: factory-kit
|
||||||
|
Puml Server ID: JST15i8m20N0g-W14lRU1YcsQ4BooCS-RwzBTpDNSscvQKQx7C1SDwBWi-w68--vD6Gur55bTBAM9uE3dlpcikcotSjaGCCNTLu_q8C58pxbPI25_Bzcz3gpjoy0
|
||||||
|
parent: property; artifact: property
|
||||||
|
Puml Server ID: FSV13OCm30NGLTe1YEziumOBKYMEPN-3s9wUUdlltRJst2Izlmx0OYLolihUSEGdGxnEXIXAdODQpul1Jby-UTaasgwBCI2kGOFZ1pAV9ewR1FMVaZwAvUWF
|
||||||
|
parent: dependency-injection; artifact: dependency-injection
|
||||||
|
Puml Server ID: RSdB3SCW303GLPe1mFTkunWhSGG6-PEesxS3zFQajubIpyPf_NL6B7y363xra3XpJsUZgS4QbUO0wVbWeC65DvR6BeUMXH5iwZ3GVu36YxMnqgU8NamXKu63_aPD6tNbw5y0
|
||||||
|
parent: layers; artifact: layers
|
||||||
|
Puml Server ID: BSR13OCm30NGLSe0n7UsCS62L8w9x6yGszD3t-bDpQhc9kdwEO0H2v7pNVQ68zSCyNeQn53gsQbftWns-lB5yoRHTfi70-8Mr3b-8UL7F4XG_otflOpi-W80
|
||||||
|
parent: producer-consumer; artifact: producer-consumer
|
||||||
|
Puml Server ID: PSjB3iCW303HgxG70Ezx6zTO2HKso9_a-c7VtUX9y-vA8nkdZTSPiVm3O7ZNeyUPttGscXgiKMaAz94t1XhyyCBIsFkXPM44cpe8-WvODbiIMzcdfspXe7-jQL9NodW0
|
||||||
|
parent: builder; artifact: builder
|
||||||
|
Puml Server ID: DSR94O0m2030LhG0mzzkC64KXs26GzlNZw_TcRLADagJwOWOlW8OFcNdE79B9wkN1ccKUdLWoGS33KwySMdalEioC89C7Jhw5zYIfNrIrFybhPUHNLu0
|
||||||
|
parent: specification; artifact: specification
|
||||||
|
Puml Server ID: LSX14i8m20NGg-W16lRU1YcsE0d9mCTUNxVkthoxkVJQjQBVJc3bWoZuQeVXh6UbXao7EfhCGTRhOd3Gcp-yxPfs-BOOqF2amVa3vLAnbmd3ffD2_gTLZBPgz2y0
|
||||||
|
parent: state; artifact: state
|
||||||
|
Puml Server ID: 9SRH3O0m20N0LNG0ox_RO2LQqz867hg-9jxNpKLpZLt2wdG2mrSYuoST1MTiuMAvAqIHSczKQZmCDhhuvcKNBuSkWm4nTMhiNyZ141BaVocifH6jlW00
|
||||||
|
parent: reader-writer-lock; artifact: reader-writer-lock
|
||||||
|
Puml Server ID: RSZB4S8m303HLg00MtUw4R8cCP5bZpwuVL80jttxx4gIZTFaSKOiVm4OxdhqEFETpaPJWpKgpG5TScEWmGU_M1fxFxGiZ61JXu5-1nXZOolR-gqYaoxWe3-xfeswSiWF
|
||||||
|
parent: interpreter; artifact: interpreter
|
||||||
|
Puml Server ID: JSf13eCm30NHgz034E-vZGaM62Kcih_BzQ6xxjv8yr6hBJT9RzC1Z5Y8dE-oAuvSCyJhPH13gLSdRNapsEdaBy-RXEus3mR4BQXpl21zVnykFmlgVvVqNaRszW00
|
||||||
|
parent: template-method; artifact: template-method
|
||||||
|
Puml Server ID: NSZ13SCW30NGLPe1mFTkuu0Lg6n0vZjPlpttzlIEFef6bN1zDM3jDv7paw-E5cTiyJ87P22NQTGr7WOxVVZcL6NtQwJ5WFZOPBn_88WjPKWoGPkL1EN_ShZb5QPV
|
||||||
|
parent: feature-toggle; artifact: feature-toggle
|
||||||
|
Puml Server ID: NSZ14G8X30NGLhG0oDrk8XjPd12OvCTjNy_UthpxiAPvIBhUJc37WyZvgdtWp6U6U5i6CTIs9WtDYy5ER_vmEIH6jx8P4BUWoV43lOIHBWMhTnKIjB-gwRFkdFe5
|
||||||
|
parent: business-delegate; artifact: business-delegate
|
||||||
|
Puml Server ID: POl13SCm3CHMQGU8zUysgYCuBcJ5a4x9-l6_Fu84tzsgvYxf-Zg06HyYvxkqZYE_6UBrD8YXr7DGrxmPxFJZYxTTeZVR9WFY5ZGu5j2wkad4wYgD8IIe_xQaZp9pw0C0
|
||||||
|
parent: naked-objects; artifact: naked-objects-integtests
|
||||||
|
Puml Server ID: LSmn4iCW30NHgoG70FMvZGmQ6ni48tt5ru_RT3kls7VJqgDAM7yTmF8FaV6TzuOZjd2nCXMYo6KEQZrk1XkT_ELKnTkkQJ4Wfaw3_GbIlgIckPrIu2Ge_vBQyziX3izX8wyO_GS0
|
||||||
|
I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file 'naked-objects/etc/naked-objects-integtests.urm.puml'
|
||||||
|
pumlid: LSmn4iCW30NHgoG70FMvZGmQ6ni48tt5ru_RT3kls7VJqgDAM7yTmF8FaV6TzuOZjd2nCXMYo6KEQZrk1XkT_ELKnTkkQJ4Wfaw3_GbIlgIckPrIu2Ge_vBQyziX3izX8wyO_GS0
|
||||||
|
parent: naked-objects; artifact: naked-objects-dom
|
||||||
|
Puml Server ID: LSZ94SCW3030Lf82G7zt8mkDZOC4eyDkF_dcjxFlhZIoSTfudH7BDm33fnuzpjpJsMXgi4QbAT17FXXeSE6DfR7tGyl223Pr4FGVGF73hSpzOWe73lgVqgRKDAahPNm1
|
||||||
|
I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file 'naked-objects/etc/naked-objects-dom.urm.puml'
|
||||||
|
pumlid: LSZ94SCW3030Lf82G7zt8mkDZOC4eyDkF_dcjxFlhZIoSTfudH7BDm33fnuzpjpJsMXgi4QbAT17FXXeSE6DfR7tGyl223Pr4FGVGF73hSpzOWe73lgVqgRKDAahPNm1
|
||||||
|
parent: naked-objects; artifact: naked-objects-fixture
|
||||||
|
Puml Server ID: LSX15i8W30N0g-W187jlaq9igH1uoO_r-BfrDs_kJKkFAc7zTW3B7qJ6LzuRZjZ2nSfKY2ANEQZrk1XiTFARKnLlkwR5W9Ww3VOVIFabDStjb08dGVcVz6mVX4aE6td5w5y0
|
||||||
|
I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file 'naked-objects/etc/naked-objects-fixture.urm.puml'
|
||||||
|
pumlid: LSX15i8W30N0g-W187jlaq9igH1uoO_r-BfrDs_kJKkFAc7zTW3B7qJ6LzuRZjZ2nSfKY2ANEQZrk1XiTFARKnLlkwR5W9Ww3VOVIFabDStjb08dGVcVz6mVX4aE6td5w5y0
|
||||||
|
parent: model-view-controller; artifact: model-view-controller
|
||||||
|
Puml Server ID: ROl13SCm201NQGUm-NSRQgE42h258Lw_wR-_qvtkoTOaEwNBuuoOwmNWkEl1SUOx5taR5cHHsr1WoOs13X-yi7HQV5YP645k2nJN3Q2ZavIBQPVVwqFajXJjVwdfMcUgV040
|
||||||
|
parent: proxy; artifact: proxy
|
||||||
|
Puml Server ID: 9SR13OCm30NGLM00udktCS62eCI9x6yesrEfx_Jcehd69c5rEe3X7oBZE-q5HwpXOhahH95oRrHgt0msEldYPHClkow30J5rQko_qB3-VKYG_qjXBOrezGK0
|
||||||
|
parent: memento; artifact: memento
|
||||||
|
Puml Server ID: DSgn4OCm30NGLM00h3xR2AC3SvRiaxx2-g59zugtDgiz3qdlomNC-10vF-Lik7BF4A_388PIXrBh-J3OwUOlRuT4EssR38XRa7Ay81Lz_o11_RkaQvcf_GS0
|
||||||
|
parent: decorator; artifact: decorator
|
||||||
|
Puml Server ID: HSV14SCm20J0Lk82BFxf1YF6LaP26ZZizfDVVhjRC-bPDRs_Bc35cyZvAMV3bKU6kao36ehCGQtdms2d3z-yLursshuOKBUWmV43LPNfZEcaaFzA-YWhH_y2
|
||||||
|
parent: data-mapper; artifact: data-mapper
|
||||||
|
Puml Server ID: JShB3OGm303HLg20nFVjnYGM1CN6ycTfVtFSsnjfzY5jPgUqkLqHwXy0mxUU8wuyqidQ8q4IjJqCO-QBWGOtVh5qyd5AKOmW4mT6Nu2-ZiAekapH_hkcSTNa-GC0
|
||||||
|
parent: caching; artifact: caching
|
||||||
|
Puml Server ID: DSRB4OKm2030LhG0m_rrWyWaE0bc-6ZxpujxsbMKUXwSrfSMCVq7OFYKAj5oJsUZIuCr2bq3fEU3WGOdthWTx59rcnZ1fWu3_GqGKXEjm47VIzeeCqV_0m00
|
||||||
|
parent: reactor; artifact: reactor
|
||||||
|
Puml Server ID: DSR14OGm20NGLjO23FVj1f7Hx2Ga0nzjVxtuJc-f9YrtJM-V4vZn9NA-or5nvfQXBiEWXYAZKsrvCzZfnnUlkqOzR9qCg5jGvtX2hYmOJWfvNz9xcTdR7m00
|
||||||
|
parent: iterator; artifact: iterator
|
||||||
|
Puml Server ID: FSV13OGm30NHLg00uljsOu85HeaJsTzB-yjfBwCtgrfjUKXwMovWneV8-IcduiezGxmEWnXA7PsqvSDWfvk_l1qIUjes6H2teCxnWlGDOpW9wdzAUYypU_i1
|
||||||
|
parent: callback; artifact: callback
|
||||||
|
Puml Server ID: FSVB4S8m30N0Lg20M7UwUL4qYOciUFGXxSE9s-wp6sjjKgwF8tF6YyXnjxtdKMk5E5-MOjdu6jIrRYIStlXWsIJwRij4fhW53SGFn51TmIT9yZ-jVBHPGxy0
|
||||||
|
parent: repository; artifact: repository
|
||||||
|
Puml Server ID: JSV13OCm30NGLM00udktCS42eyI9xE-YRjyUUtjlLQij3qblomNCU14vF-LKNBbdYDTX44EfevEsV1ZiTFERjqD2Jzic0-8Mr3b-89SvGZ7yGuBwrvBUoypUlW00
|
||||||
|
parent: mute-idiom; artifact: mute-idiom
|
||||||
|
Puml Server ID: JSf13iCm20NHgxG7iDdtDjH62PKX5luarq-MtSsJvgtUHdR96AyTcEj357pLJR7dDvT4EnpYgEqmqf4NWuD-V7BfidJpCXcGy4N6wmcoX1Jj-lo2ziUQONMcZHi0
|
||||||
|
parent: prototype; artifact: prototype
|
||||||
|
Puml Server ID: HSV13OCm30NGLM00udktCS62eCInxE-YRj_UUdjlRLfx7fBUbmkmU14vF-Lik7BF4AzJ8OfIvw3Mys6mqyrltWw9Tkfc38XhqE3uWSmd9Zuc9AZ_bVHHB4V_0W00
|
||||||
|
parent: step-builder; artifact: step-builder
|
||||||
|
Puml Server ID: LOZ93SCm3C1MQGQmzUysYYqaAcJ5q96i7t_x8KXkh4soKvfypeZfNm33fnuSP-xfPEtI88tQhW4i-M2WmGzlB9sS3oqJ8yZKOQ0lWOLPzcJfAoZQtwXfeyuSyW80
|
||||||
|
parent: double-checked-locking; artifact: double-checked-locking
|
||||||
|
Puml Server ID: TSdH4SCW203GLTe1bFzkGv1J6qGFeLc_MI1_x-wzkv94uJ1vDVUrFm26LwxTMnonsMYgitgcEQ1BNEXeyCKVfiAxLqqBtTbqmy1z0ygCGpXHOpgv99bqTgt0JW-LmqPUCUGF
|
67
_scripts/postPumlsToServer.py
Normal file
67
_scripts/postPumlsToServer.py
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
import requests, glob, re, os
|
||||||
|
|
||||||
|
# taken from here: http://stackoverflow.com/a/13641746
|
||||||
|
def replace(file, pattern, subst):
|
||||||
|
# Read contents from file as a single string
|
||||||
|
file_handle = open(file, 'r')
|
||||||
|
file_string = file_handle.read()
|
||||||
|
file_handle.close()
|
||||||
|
|
||||||
|
# Use RE package to allow for replacement (also allowing for (multiline) REGEX)
|
||||||
|
file_string = (re.sub(pattern, subst, file_string))
|
||||||
|
|
||||||
|
# Write contents to file.
|
||||||
|
# Using mode 'w' truncates the file.
|
||||||
|
file_handle = open(file, 'w')
|
||||||
|
file_handle.write(file_string)
|
||||||
|
file_handle.close()
|
||||||
|
|
||||||
|
# list of all puml files
|
||||||
|
fileList = glob.glob('*/etc/*.puml')
|
||||||
|
for puml in fileList:
|
||||||
|
pathSplit = puml.split("/")
|
||||||
|
# parent folder
|
||||||
|
parent = pathSplit[0]
|
||||||
|
# individual artifact/project name
|
||||||
|
artifact = pathSplit[2].replace(".urm.puml", "")
|
||||||
|
print "parent: " + parent + "; artifact: " + artifact
|
||||||
|
|
||||||
|
# do a POST to the official plantuml hosting site with a little trick "!includeurl" and raw github content
|
||||||
|
data = {
|
||||||
|
'text': "!includeurl https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/" + puml
|
||||||
|
}
|
||||||
|
r = requests.post('http://plantuml.com/plantuml/uml', data=data)
|
||||||
|
pumlId = r.url.replace("http://plantuml.com/plantuml/uml/", "")
|
||||||
|
|
||||||
|
# the only thing needed to get a png/svg/ascii from the server back
|
||||||
|
print "Puml Server ID: " + pumlId
|
||||||
|
|
||||||
|
# add the id so jekyll/liquid can use it
|
||||||
|
if (parent == artifact):
|
||||||
|
replace("./" + parent + "/README.md", "categories:", "pumlid: {}\\ncategories:".format(pumlId))
|
||||||
|
else:
|
||||||
|
print "I dont want to program this, just add the following lines to the README.md file that corresponds to this puml file '" + puml + "'\npumlid: {}".format(pumlId)
|
||||||
|
|
@ -3,6 +3,7 @@ layout: pattern
|
|||||||
title: Abstract Document
|
title: Abstract Document
|
||||||
folder: abstract-document
|
folder: abstract-document
|
||||||
permalink: /patterns/abstract-document/
|
permalink: /patterns/abstract-document/
|
||||||
|
pumlid: PSjB3eCm34NHhPG599vtDyQn85L-ifzX-p3lxEf8Twj3MXGDQvyJMFubChxpKN767gucSq07iinEjSNDOACVNvoAUZr6MWoe3QVE_WRnxZ0Mf38b-hkIGlurX_MyehS7
|
||||||
categories: Structural
|
categories: Structural
|
||||||
tags:
|
tags:
|
||||||
- Java
|
- Java
|
||||||
|
59
abstract-document/etc/abstract-document.urm.puml
Normal file
59
abstract-document/etc/abstract-document.urm.puml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
@startuml
|
||||||
|
package com.iluwatar.abstractdocument.domain {
|
||||||
|
class Car {
|
||||||
|
+ Car(properties : Map<String, Object>)
|
||||||
|
}
|
||||||
|
interface HasModel {
|
||||||
|
+ PROPERTY : String {static}
|
||||||
|
+ getModel() : Optional<String>
|
||||||
|
}
|
||||||
|
interface HasParts {
|
||||||
|
+ PROPERTY : String {static}
|
||||||
|
+ getParts() : Stream<Part>
|
||||||
|
}
|
||||||
|
interface HasPrice {
|
||||||
|
+ PROPERTY : String {static}
|
||||||
|
+ getPrice() : Optional<Number>
|
||||||
|
}
|
||||||
|
interface HasType {
|
||||||
|
+ PROPERTY : String {static}
|
||||||
|
+ getType() : Optional<String>
|
||||||
|
}
|
||||||
|
class Part {
|
||||||
|
+ Part(properties : Map<String, Object>)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
package com.iluwatar.abstractdocument {
|
||||||
|
abstract class AbstractDocument {
|
||||||
|
- properties : Map<String, Object>
|
||||||
|
# AbstractDocument(properties : Map<String, Object>)
|
||||||
|
+ children(key : String, constructor : Function<Map<String, Object>, T>) : Stream<T>
|
||||||
|
+ get(key : String) : Object
|
||||||
|
+ put(key : String, value : Object)
|
||||||
|
+ toString() : String
|
||||||
|
}
|
||||||
|
class App {
|
||||||
|
- LOGGER : Logger {static}
|
||||||
|
+ App()
|
||||||
|
+ main(args : String[]) {static}
|
||||||
|
}
|
||||||
|
interface Document {
|
||||||
|
+ children(String, Function<Map<String, Object>, T>) : Stream<T> {abstract}
|
||||||
|
+ get(String) : Object {abstract}
|
||||||
|
+ put(String, Object) {abstract}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AbstractDocument ..|> Document
|
||||||
|
Car ..|> HasModel
|
||||||
|
Car ..|> HasPrice
|
||||||
|
Car ..|> HasParts
|
||||||
|
Car --|> AbstractDocument
|
||||||
|
HasModel --|> Document
|
||||||
|
HasParts --|> Document
|
||||||
|
HasPrice --|> Document
|
||||||
|
HasType --|> Document
|
||||||
|
Part ..|> HasType
|
||||||
|
Part ..|> HasModel
|
||||||
|
Part ..|> HasPrice
|
||||||
|
Part --|> AbstractDocument
|
||||||
|
@enduml
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -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.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>abstract-document</artifactId>
|
<artifactId>abstract-document</artifactId>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -27,6 +27,8 @@ import com.iluwatar.abstractdocument.domain.HasModel;
|
|||||||
import com.iluwatar.abstractdocument.domain.HasParts;
|
import com.iluwatar.abstractdocument.domain.HasParts;
|
||||||
import com.iluwatar.abstractdocument.domain.HasPrice;
|
import com.iluwatar.abstractdocument.domain.HasPrice;
|
||||||
import com.iluwatar.abstractdocument.domain.HasType;
|
import com.iluwatar.abstractdocument.domain.HasType;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -44,11 +46,13 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public class App {
|
public class App {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes the App
|
* Executes the App
|
||||||
*/
|
*/
|
||||||
public App() {
|
public App() {
|
||||||
System.out.println("Constructing parts and car");
|
LOGGER.info("Constructing parts and car");
|
||||||
|
|
||||||
Map<String, Object> carProperties = new HashMap<>();
|
Map<String, Object> carProperties = new HashMap<>();
|
||||||
carProperties.put(HasModel.PROPERTY, "300SL");
|
carProperties.put(HasModel.PROPERTY, "300SL");
|
||||||
@ -68,12 +72,11 @@ public class App {
|
|||||||
|
|
||||||
Car car = new Car(carProperties);
|
Car car = new Car(carProperties);
|
||||||
|
|
||||||
System.out.println("Here is our car:");
|
LOGGER.info("Here is our car:");
|
||||||
System.out.println("-> model: " + car.getModel().get());
|
LOGGER.info("-> model: {}", car.getModel().get());
|
||||||
System.out.println("-> price: " + car.getPrice().get());
|
LOGGER.info("-> price: {}", car.getPrice().get());
|
||||||
System.out.println("-> parts: ");
|
LOGGER.info("-> parts: ");
|
||||||
car.getParts().forEach(p -> System.out
|
car.getParts().forEach(p -> LOGGER.info("\t{}/{}/{}", p.getType().get(), p.getModel().get(), p.getPrice().get()));
|
||||||
.println("\t" + p.getType().get() + "/" + p.getModel().get() + "/" + p.getPrice().get()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p>
|
* <p>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -3,6 +3,7 @@ layout: pattern
|
|||||||
title: Abstract Factory
|
title: Abstract Factory
|
||||||
folder: abstract-factory
|
folder: abstract-factory
|
||||||
permalink: /patterns/abstract-factory/
|
permalink: /patterns/abstract-factory/
|
||||||
|
pumlid: PSZB3OD034NHLa81Czwd6sCC39gVxEUWT1_ssLmTtQLqgR5fM7sTmFGtaV6TZu8prd0r6HtQaMKqAZLk1XjT_E6qgPUZfyc0MdTgx0-8LuUn8ErFXdr98NypXxKyezKV
|
||||||
categories: Creational
|
categories: Creational
|
||||||
tags:
|
tags:
|
||||||
- Java
|
- Java
|
||||||
@ -30,6 +31,8 @@ Use the Abstract Factory pattern when
|
|||||||
## Real world examples
|
## Real world examples
|
||||||
|
|
||||||
* [javax.xml.parsers.DocumentBuilderFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/parsers/DocumentBuilderFactory.html)
|
* [javax.xml.parsers.DocumentBuilderFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/parsers/DocumentBuilderFactory.html)
|
||||||
|
* [javax.xml.transform.TransformerFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/transform/TransformerFactory.html#newInstance--)
|
||||||
|
* [javax.xml.xpath.XPathFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/xpath/XPathFactory.html#newInstance--)
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
89
abstract-factory/etc/abstract-factory.urm.puml
Normal file
89
abstract-factory/etc/abstract-factory.urm.puml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
@startuml
|
||||||
|
package com.iluwatar.abstractfactory {
|
||||||
|
class App {
|
||||||
|
- LOGGER : Logger {static}
|
||||||
|
- army : Army
|
||||||
|
- castle : Castle
|
||||||
|
- king : King
|
||||||
|
+ App()
|
||||||
|
+ createKingdom(factory : KingdomFactory)
|
||||||
|
+ getArmy() : Army
|
||||||
|
~ getArmy(factory : KingdomFactory) : Army
|
||||||
|
+ getCastle() : Castle
|
||||||
|
~ getCastle(factory : KingdomFactory) : Castle
|
||||||
|
+ getKing() : King
|
||||||
|
~ getKing(factory : KingdomFactory) : King
|
||||||
|
+ main(args : String[]) {static}
|
||||||
|
- setArmy(army : Army)
|
||||||
|
- setCastle(castle : Castle)
|
||||||
|
- setKing(king : King)
|
||||||
|
}
|
||||||
|
interface Army {
|
||||||
|
+ getDescription() : String {abstract}
|
||||||
|
}
|
||||||
|
interface Castle {
|
||||||
|
+ getDescription() : String {abstract}
|
||||||
|
}
|
||||||
|
class ElfArmy {
|
||||||
|
~ DESCRIPTION : String {static}
|
||||||
|
+ ElfArmy()
|
||||||
|
+ getDescription() : String
|
||||||
|
}
|
||||||
|
class ElfCastle {
|
||||||
|
~ DESCRIPTION : String {static}
|
||||||
|
+ ElfCastle()
|
||||||
|
+ getDescription() : String
|
||||||
|
}
|
||||||
|
class ElfKing {
|
||||||
|
~ DESCRIPTION : String {static}
|
||||||
|
+ ElfKing()
|
||||||
|
+ getDescription() : String
|
||||||
|
}
|
||||||
|
class ElfKingdomFactory {
|
||||||
|
+ ElfKingdomFactory()
|
||||||
|
+ createArmy() : Army
|
||||||
|
+ createCastle() : Castle
|
||||||
|
+ createKing() : King
|
||||||
|
}
|
||||||
|
interface King {
|
||||||
|
+ getDescription() : String {abstract}
|
||||||
|
}
|
||||||
|
interface KingdomFactory {
|
||||||
|
+ createArmy() : Army {abstract}
|
||||||
|
+ createCastle() : Castle {abstract}
|
||||||
|
+ createKing() : King {abstract}
|
||||||
|
}
|
||||||
|
class OrcArmy {
|
||||||
|
~ DESCRIPTION : String {static}
|
||||||
|
+ OrcArmy()
|
||||||
|
+ getDescription() : String
|
||||||
|
}
|
||||||
|
class OrcCastle {
|
||||||
|
~ DESCRIPTION : String {static}
|
||||||
|
+ OrcCastle()
|
||||||
|
+ getDescription() : String
|
||||||
|
}
|
||||||
|
class OrcKing {
|
||||||
|
~ DESCRIPTION : String {static}
|
||||||
|
+ OrcKing()
|
||||||
|
+ getDescription() : String
|
||||||
|
}
|
||||||
|
class OrcKingdomFactory {
|
||||||
|
+ OrcKingdomFactory()
|
||||||
|
+ createArmy() : Army
|
||||||
|
+ createCastle() : Castle
|
||||||
|
+ createKing() : King
|
||||||
|
}
|
||||||
|
}
|
||||||
|
App --> "-castle" Castle
|
||||||
|
App --> "-king" King
|
||||||
|
App --> "-army" Army
|
||||||
|
ElfArmy ..|> Army
|
||||||
|
ElfCastle ..|> Castle
|
||||||
|
ElfKing ..|> King
|
||||||
|
ElfKingdomFactory ..|> KingdomFactory
|
||||||
|
OrcArmy ..|> Army
|
||||||
|
OrcCastle ..|> Castle
|
||||||
|
OrcKing ..|> King
|
||||||
|
OrcKingdomFactory ..|> KingdomFactory
|
||||||
|
@enduml
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -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.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>abstract-factory</artifactId>
|
<artifactId>abstract-factory</artifactId>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -22,6 +22,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.iluwatar.abstractfactory;
|
package com.iluwatar.abstractfactory;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* The Abstract Factory pattern provides a way to encapsulate a group of individual factories that have a common theme
|
* The Abstract Factory pattern provides a way to encapsulate a group of individual factories that have a common theme
|
||||||
@ -39,6 +42,8 @@ package com.iluwatar.abstractfactory;
|
|||||||
*/
|
*/
|
||||||
public class App {
|
public class App {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
|
||||||
|
|
||||||
private King king;
|
private King king;
|
||||||
private Castle castle;
|
private Castle castle;
|
||||||
private Army army;
|
private Army army;
|
||||||
@ -98,17 +103,17 @@ public class App {
|
|||||||
|
|
||||||
App app = new App();
|
App app = new App();
|
||||||
|
|
||||||
System.out.println("Elf Kingdom");
|
LOGGER.info("Elf Kingdom");
|
||||||
app.createKingdom(new ElfKingdomFactory());
|
app.createKingdom(new ElfKingdomFactory());
|
||||||
System.out.println(app.getArmy().getDescription());
|
LOGGER.info(app.getArmy().getDescription());
|
||||||
System.out.println(app.getCastle().getDescription());
|
LOGGER.info(app.getCastle().getDescription());
|
||||||
System.out.println(app.getKing().getDescription());
|
LOGGER.info(app.getKing().getDescription());
|
||||||
|
|
||||||
System.out.println("\nOrc Kingdom");
|
LOGGER.info("Orc Kingdom");
|
||||||
app.createKingdom(new OrcKingdomFactory());
|
app.createKingdom(new OrcKingdomFactory());
|
||||||
System.out.println(app.getArmy().getDescription());
|
LOGGER.info(app.getArmy().getDescription());
|
||||||
System.out.println(app.getCastle().getDescription());
|
LOGGER.info(app.getCastle().getDescription());
|
||||||
System.out.println(app.getKing().getDescription());
|
LOGGER.info(app.getKing().getDescription());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -3,6 +3,7 @@ layout: pattern
|
|||||||
title: Adapter
|
title: Adapter
|
||||||
folder: adapter
|
folder: adapter
|
||||||
permalink: /patterns/adapter/
|
permalink: /patterns/adapter/
|
||||||
|
pumlid: DSR14S8m30J0Lg20M7-wEMnDOiPMFDA9j0yyUEtUkzMHJTF7xI1NF4GSLzaxZtncgDVJgCPIpobzv0N2vOKtjgRHTziMI7KBcOXl10thfxB-Nz9dMJd71m00
|
||||||
categories: Structural
|
categories: Structural
|
||||||
tags:
|
tags:
|
||||||
- Java
|
- Java
|
||||||
@ -30,6 +31,10 @@ Use the Adapter pattern when
|
|||||||
## Real world examples
|
## Real world examples
|
||||||
|
|
||||||
* [java.util.Arrays#asList()](http://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#asList%28T...%29)
|
* [java.util.Arrays#asList()](http://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#asList%28T...%29)
|
||||||
|
* [java.util.Collections#list()](https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#list-java.util.Enumeration-)
|
||||||
|
* [java.util.Collections#enumeration()](https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#enumeration-java.util.Collection-)
|
||||||
|
* [javax.xml.bind.annotation.adapters.XMLAdapter](http://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html#marshal-BoundType-)
|
||||||
|
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
37
adapter/etc/adapter.urm.puml
Normal file
37
adapter/etc/adapter.urm.puml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
@startuml
|
||||||
|
package com.iluwatar.adapter {
|
||||||
|
class App {
|
||||||
|
+ App()
|
||||||
|
+ main(args : String[]) {static}
|
||||||
|
}
|
||||||
|
class BattleFishingBoat {
|
||||||
|
- LOGGER : Logger {static}
|
||||||
|
- boat : FishingBoat
|
||||||
|
+ BattleFishingBoat()
|
||||||
|
+ fire()
|
||||||
|
+ move()
|
||||||
|
}
|
||||||
|
interface BattleShip {
|
||||||
|
+ fire() {abstract}
|
||||||
|
+ move() {abstract}
|
||||||
|
}
|
||||||
|
class Captain {
|
||||||
|
- battleship : BattleShip
|
||||||
|
+ Captain()
|
||||||
|
+ Captain(battleship : BattleShip)
|
||||||
|
+ fire()
|
||||||
|
+ move()
|
||||||
|
+ setBattleship(battleship : BattleShip)
|
||||||
|
}
|
||||||
|
class FishingBoat {
|
||||||
|
- LOGGER : Logger {static}
|
||||||
|
+ FishingBoat()
|
||||||
|
+ fish()
|
||||||
|
+ sail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BattleFishingBoat --> "-boat" FishingBoat
|
||||||
|
Captain --> "-battleship" BattleShip
|
||||||
|
BattleFishingBoat ..|> BattleShip
|
||||||
|
Captain ..|> BattleShip
|
||||||
|
@enduml
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -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.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>adapter</artifactId>
|
<artifactId>adapter</artifactId>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -22,6 +22,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.iluwatar.adapter;
|
package com.iluwatar.adapter;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Adapter class. Adapts the interface of the device ({@link FishingBoat}) into {@link BattleShip}
|
* Adapter class. Adapts the interface of the device ({@link FishingBoat}) into {@link BattleShip}
|
||||||
@ -33,6 +36,8 @@ package com.iluwatar.adapter;
|
|||||||
*/
|
*/
|
||||||
public class BattleFishingBoat implements BattleShip {
|
public class BattleFishingBoat implements BattleShip {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(BattleFishingBoat.class);
|
||||||
|
|
||||||
private FishingBoat boat;
|
private FishingBoat boat;
|
||||||
|
|
||||||
public BattleFishingBoat() {
|
public BattleFishingBoat() {
|
||||||
@ -41,7 +46,7 @@ public class BattleFishingBoat implements BattleShip {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void fire() {
|
public void fire() {
|
||||||
System.out.println("fire!");
|
LOGGER.info("fire!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -22,6 +22,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.iluwatar.adapter;
|
package com.iluwatar.adapter;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Device class (adaptee in the pattern). We want to reuse this class
|
* Device class (adaptee in the pattern). We want to reuse this class
|
||||||
@ -29,12 +32,14 @@ package com.iluwatar.adapter;
|
|||||||
*/
|
*/
|
||||||
public class FishingBoat {
|
public class FishingBoat {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(FishingBoat.class);
|
||||||
|
|
||||||
public void sail() {
|
public void sail() {
|
||||||
System.out.println("The Boat is moving to that place");
|
LOGGER.info("The Boat is moving to that place");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void fish() {
|
public void fish() {
|
||||||
System.out.println("fishing ...");
|
LOGGER.info("fishing ...");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -3,6 +3,7 @@ layout: pattern
|
|||||||
title: Aggregator Microservices
|
title: Aggregator Microservices
|
||||||
folder: aggregator-microservices
|
folder: aggregator-microservices
|
||||||
permalink: /patterns/aggregator-microservices/
|
permalink: /patterns/aggregator-microservices/
|
||||||
|
pumlid: JOov3SCm301NIGQGs7iRXYPa1g8ayB7NjuiKwGvtmBrbKC-Tq_hhY5Y-0HXUjKaS-Kbdepc2HrIQ2jBpma23BvvOTdPfeooCO1iEYlu0O6l63MDQKI6Rp-CKOWSE-ey_NzEqhjH-0m00
|
||||||
categories: Architectural
|
categories: Architectural
|
||||||
tags:
|
tags:
|
||||||
- Java
|
- Java
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>aggregator-microservices</artifactId>
|
<artifactId>aggregator-microservices</artifactId>
|
||||||
<groupId>com.iluwatar</groupId>
|
<groupId>com.iluwatar</groupId>
|
||||||
<version>1.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -27,6 +27,8 @@ import org.apache.http.client.methods.HttpGet;
|
|||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.impl.client.HttpClients;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -37,6 +39,8 @@ import java.io.IOException;
|
|||||||
@Component
|
@Component
|
||||||
public class ProductInformationClientImpl implements ProductInformationClient {
|
public class ProductInformationClientImpl implements ProductInformationClient {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(ProductInformationClientImpl.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getProductTitle() {
|
public String getProductTitle() {
|
||||||
String response = null;
|
String response = null;
|
||||||
@ -46,7 +50,7 @@ public class ProductInformationClientImpl implements ProductInformationClient {
|
|||||||
response = EntityUtils.toString(httpResponse.getEntity());
|
response = EntityUtils.toString(httpResponse.getEntity());
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.error("Exception caught.", e);
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -27,6 +27,8 @@ import org.apache.http.client.methods.HttpGet;
|
|||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.impl.client.HttpClients;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -37,6 +39,8 @@ import java.io.IOException;
|
|||||||
@Component
|
@Component
|
||||||
public class ProductInventoryClientImpl implements ProductInventoryClient {
|
public class ProductInventoryClientImpl implements ProductInventoryClient {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(ProductInventoryClientImpl.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getProductInventories() {
|
public int getProductInventories() {
|
||||||
String response = "0";
|
String response = "0";
|
||||||
@ -46,7 +50,7 @@ public class ProductInventoryClientImpl implements ProductInventoryClient {
|
|||||||
response = EntityUtils.toString(httpResponse.getEntity());
|
response = EntityUtils.toString(httpResponse.getEntity());
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.error("Exception caught.", e);
|
||||||
}
|
}
|
||||||
return Integer.parseInt(response);
|
return Integer.parseInt(response);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# The MIT License
|
# The MIT License
|
||||||
# Copyright (c) 2014 Ilkka Seppälä
|
# Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
43
aggregator-microservices/etc/aggregator-service.urm.puml
Normal file
43
aggregator-microservices/etc/aggregator-service.urm.puml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
@startuml
|
||||||
|
package com.iluwatar.aggregator.microservices {
|
||||||
|
class Aggregator {
|
||||||
|
- informationClient : ProductInformationClient
|
||||||
|
- inventoryClient : ProductInventoryClient
|
||||||
|
+ Aggregator()
|
||||||
|
+ getProduct() : Product
|
||||||
|
}
|
||||||
|
class App {
|
||||||
|
+ App()
|
||||||
|
+ main(args : String[]) {static}
|
||||||
|
}
|
||||||
|
class Product {
|
||||||
|
- productInventories : int
|
||||||
|
- title : String
|
||||||
|
+ Product()
|
||||||
|
+ getProductInventories() : int
|
||||||
|
+ getTitle() : String
|
||||||
|
+ setProductInventories(productInventories : int)
|
||||||
|
+ setTitle(title : String)
|
||||||
|
}
|
||||||
|
interface ProductInformationClient {
|
||||||
|
+ getProductTitle() : String {abstract}
|
||||||
|
}
|
||||||
|
class ProductInformationClientImpl {
|
||||||
|
- LOGGER : Logger {static}
|
||||||
|
+ ProductInformationClientImpl()
|
||||||
|
+ getProductTitle() : String
|
||||||
|
}
|
||||||
|
interface ProductInventoryClient {
|
||||||
|
+ getProductInventories() : int {abstract}
|
||||||
|
}
|
||||||
|
class ProductInventoryClientImpl {
|
||||||
|
- LOGGER : Logger {static}
|
||||||
|
+ ProductInventoryClientImpl()
|
||||||
|
+ getProductInventories() : int
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Aggregator --> "-informationClient" ProductInformationClient
|
||||||
|
Aggregator --> "-inventoryClient" ProductInventoryClient
|
||||||
|
ProductInformationClientImpl ..|> ProductInformationClient
|
||||||
|
ProductInventoryClientImpl ..|> ProductInventoryClient
|
||||||
|
@enduml
|
@ -0,0 +1,12 @@
|
|||||||
|
@startuml
|
||||||
|
package com.iluwatar.information.microservice {
|
||||||
|
class InformationApplication {
|
||||||
|
+ InformationApplication()
|
||||||
|
+ main(args : String[]) {static}
|
||||||
|
}
|
||||||
|
class InformationController {
|
||||||
|
+ InformationController()
|
||||||
|
+ getProductTitle() : String
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@enduml
|
12
aggregator-microservices/etc/inventory-microservice.urm.puml
Normal file
12
aggregator-microservices/etc/inventory-microservice.urm.puml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
@startuml
|
||||||
|
package com.iluwatar.inventory.microservice {
|
||||||
|
class InventoryApplication {
|
||||||
|
+ InventoryApplication()
|
||||||
|
+ main(args : String[]) {static}
|
||||||
|
}
|
||||||
|
class InventoryController {
|
||||||
|
+ InventoryController()
|
||||||
|
+ getProductInventories() : int
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@enduml
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>aggregator-microservices</artifactId>
|
<artifactId>aggregator-microservices</artifactId>
|
||||||
<groupId>com.iluwatar</groupId>
|
<groupId>com.iluwatar</groupId>
|
||||||
<version>1.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# The MIT License
|
# The MIT License
|
||||||
# Copyright (c) 2014 Ilkka Seppälä
|
# Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>aggregator-microservices</artifactId>
|
<artifactId>aggregator-microservices</artifactId>
|
||||||
<groupId>com.iluwatar</groupId>
|
<groupId>com.iluwatar</groupId>
|
||||||
<version>1.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# The MIT License
|
# The MIT License
|
||||||
# Copyright (c) 2014 Ilkka Seppälä
|
# Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
* <p/>
|
* <p/>
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -29,12 +29,32 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>java-design-patterns</artifactId>
|
<artifactId>java-design-patterns</artifactId>
|
||||||
<groupId>com.iluwatar</groupId>
|
<groupId>com.iluwatar</groupId>
|
||||||
<version>1.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>aggregator-microservices</artifactId>
|
<artifactId>aggregator-microservices</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.github.markusmo3.urm</groupId>
|
||||||
|
<artifactId>urm-maven-plugin</artifactId>
|
||||||
|
<version>${urm.version}</version>
|
||||||
|
<configuration combine.self="override">
|
||||||
|
<outputDirectory>${project.basedir}/../etc</outputDirectory>
|
||||||
|
<packages>
|
||||||
|
<param>com.iluwatar</param>
|
||||||
|
</packages>
|
||||||
|
<skipForProjects>
|
||||||
|
<!-- skip for parent project -->
|
||||||
|
<param>aggregator-microservices</param>
|
||||||
|
</skipForProjects>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>information-microservice</module>
|
<module>information-microservice</module>
|
||||||
<module>aggregator-service</module>
|
<module>aggregator-service</module>
|
||||||
|
@ -3,6 +3,7 @@ layout: pattern
|
|||||||
title: API Gateway
|
title: API Gateway
|
||||||
folder: api-gateway
|
folder: api-gateway
|
||||||
permalink: /patterns/api-gateway/
|
permalink: /patterns/api-gateway/
|
||||||
|
pumlid: JSox3SCm303HLP819FRUXg49cO542_nOyFPncUvUSszHwhbpMdyT4TCt0CDLcyIHdtGsEZLOez8vG7ek33JuueLbPvUcPM84cpeCz2S0fvI6mGjluA1_b-Tt2N5D6tNcw3y0
|
||||||
categories: Architectural
|
categories: Architectural
|
||||||
tags:
|
tags:
|
||||||
- Java
|
- Java
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>api-gateway</artifactId>
|
<artifactId>api-gateway</artifactId>
|
||||||
<groupId>com.iluwatar</groupId>
|
<groupId>com.iluwatar</groupId>
|
||||||
<version>1.12.0</version>
|
<version>1.14.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>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# The MIT License
|
# The MIT License
|
||||||
# Copyright (c) 2014 Ilkka Seppälä
|
# Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
48
api-gateway/etc/api-gateway-service.urm.puml
Normal file
48
api-gateway/etc/api-gateway-service.urm.puml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
@startuml
|
||||||
|
package com.iluwatar.api.gateway {
|
||||||
|
class ApiGateway {
|
||||||
|
- imageClient : ImageClient
|
||||||
|
- priceClient : PriceClient
|
||||||
|
+ ApiGateway()
|
||||||
|
+ getProductDesktop() : DesktopProduct
|
||||||
|
+ getProductMobile() : MobileProduct
|
||||||
|
}
|
||||||
|
class App {
|
||||||
|
+ App()
|
||||||
|
+ main(args : String[]) {static}
|
||||||
|
}
|
||||||
|
class DesktopProduct {
|
||||||
|
- imagePath : String
|
||||||
|
- price : String
|
||||||
|
+ DesktopProduct()
|
||||||
|
+ getImagePath() : String
|
||||||
|
+ getPrice() : String
|
||||||
|
+ setImagePath(imagePath : String)
|
||||||
|
+ setPrice(price : String)
|
||||||
|
}
|
||||||
|
interface ImageClient {
|
||||||
|
+ getImagePath() : String {abstract}
|
||||||
|
}
|
||||||
|
class ImageClientImpl {
|
||||||
|
+ ImageClientImpl()
|
||||||
|
+ getImagePath() : String
|
||||||
|
}
|
||||||
|
class MobileProduct {
|
||||||
|
- price : String
|
||||||
|
+ MobileProduct()
|
||||||
|
+ getPrice() : String
|
||||||
|
+ setPrice(price : String)
|
||||||
|
}
|
||||||
|
interface PriceClient {
|
||||||
|
+ getPrice() : String {abstract}
|
||||||
|
}
|
||||||
|
class PriceClientImpl {
|
||||||
|
+ PriceClientImpl()
|
||||||
|
+ getPrice() : String
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ApiGateway --> "-imageClient" ImageClient
|
||||||
|
ApiGateway --> "-priceClient" PriceClient
|
||||||
|
ImageClientImpl ..|> ImageClient
|
||||||
|
PriceClientImpl ..|> PriceClient
|
||||||
|
@enduml
|
12
api-gateway/etc/image-microservice.urm.puml
Normal file
12
api-gateway/etc/image-microservice.urm.puml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
@startuml
|
||||||
|
package com.iluwatar.image.microservice {
|
||||||
|
class ImageApplication {
|
||||||
|
+ ImageApplication()
|
||||||
|
+ main(args : String[]) {static}
|
||||||
|
}
|
||||||
|
class ImageController {
|
||||||
|
+ ImageController()
|
||||||
|
+ getImagePath() : String
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@enduml
|
12
api-gateway/etc/price-microservice.urm.puml
Normal file
12
api-gateway/etc/price-microservice.urm.puml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
@startuml
|
||||||
|
package com.iluwatar.price.microservice {
|
||||||
|
class PriceApplication {
|
||||||
|
+ PriceApplication()
|
||||||
|
+ main(args : String[]) {static}
|
||||||
|
}
|
||||||
|
class PriceController {
|
||||||
|
+ PriceController()
|
||||||
|
+ getPrice() : String
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@enduml
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>api-gateway</artifactId>
|
<artifactId>api-gateway</artifactId>
|
||||||
<groupId>com.iluwatar</groupId>
|
<groupId>com.iluwatar</groupId>
|
||||||
<version>1.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
2
api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageApplication.java
2
api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageApplication.java
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# The MIT License
|
# The MIT License
|
||||||
# Copyright (c) 2014 Ilkka Seppälä
|
# Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -29,12 +29,32 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>java-design-patterns</artifactId>
|
<artifactId>java-design-patterns</artifactId>
|
||||||
<groupId>com.iluwatar</groupId>
|
<groupId>com.iluwatar</groupId>
|
||||||
<version>1.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>api-gateway</artifactId>
|
<artifactId>api-gateway</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.github.markusmo3.urm</groupId>
|
||||||
|
<artifactId>urm-maven-plugin</artifactId>
|
||||||
|
<version>${urm.version}</version>
|
||||||
|
<configuration combine.self="override">
|
||||||
|
<outputDirectory>${project.basedir}/../etc</outputDirectory>
|
||||||
|
<packages>
|
||||||
|
<param>com.iluwatar</param>
|
||||||
|
</packages>
|
||||||
|
<skipForProjects>
|
||||||
|
<!-- skip for parent project -->
|
||||||
|
<param>api-gateway</param>
|
||||||
|
</skipForProjects>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>image-microservice</module>
|
<module>image-microservice</module>
|
||||||
<module>price-microservice</module>
|
<module>price-microservice</module>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!--
|
<!--
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
Copyright (c) 2014 Ilkka Seppälä
|
Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>api-gateway</artifactId>
|
<artifactId>api-gateway</artifactId>
|
||||||
<groupId>com.iluwatar</groupId>
|
<groupId>com.iluwatar</groupId>
|
||||||
<version>1.12.0</version>
|
<version>1.14.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
2
api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceApplication.java
2
api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceApplication.java
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# The MIT License
|
# The MIT License
|
||||||
# Copyright (c) 2014 Ilkka Seppälä
|
# Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* The MIT License
|
* The MIT License
|
||||||
* Copyright (c) 2014 Ilkka Seppälä
|
* Copyright (c) 2014-2016 Ilkka Seppälä
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -3,11 +3,13 @@ layout: pattern
|
|||||||
title: Async Method Invocation
|
title: Async Method Invocation
|
||||||
folder: async-method-invocation
|
folder: async-method-invocation
|
||||||
permalink: /patterns/async-method-invocation/
|
permalink: /patterns/async-method-invocation/
|
||||||
|
pumlid: TSdB3SCW303GLTe1mFTkunWhk0A3_4dKxTi5UdlIUuhIoCPfuz4Zjhy03EzwIlGyqjbeQR16fJL1HjuOQF362qjZbrFBnWWsTPZeFm3wHwbCZhvQ4RqMOSXIuA1_LzDctJd75m00
|
||||||
categories: Concurrency
|
categories: Concurrency
|
||||||
tags:
|
tags:
|
||||||
- Java
|
- Java
|
||||||
- Difficulty-Intermediate
|
- Difficulty-Intermediate
|
||||||
- Functional
|
- Functional
|
||||||
|
- Reactive
|
||||||
---
|
---
|
||||||
|
|
||||||
## Intent
|
## Intent
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user