Commit Graph

112 Commits

Author SHA1 Message Date
Ilkka Seppälä 30d13083ae docs: add diagrams for decorator, delegation, dependency injection, dirty flag, domain model, double buffer, double-checked locking, double dispatch, and dynamic proxy 2025-04-06 15:52:26 +03:00
Ilkka Seppälä 0ca162a55c deps: Refactor dependencies (#3224)
* remove spring dep
move junit, logging, mockito under dep mgmt

* upgrade anti-corruption-layer deps

* async method invocation

* balking, bloc

* bridge to bytecode

* caching

* callback - cqrs

* component - health check

* hexagonal - metadata mapping

* rest of the patterns

* remove checkstyle, take spotless into use
2025-03-29 19:34:27 +02:00
Ilkka Seppälä 6cd2d0353a docs: Content SEO updates (#2990)
* update yaml frontmatter format

* update abstract document

* update abstract factory

* use the new pattern template

* acyclic visitor seo

* adapter seo

* ambassador seo

* acl seo

* aaa seo

* async method invocation seo

* balking seo

* bridge seo

* builder seo

* business delegate and bytecode seo

* caching seo

* callback seo

* chain seo

* update headings

* circuit breaker seo

* client session + collecting parameter seo

* collection pipeline seo

* combinator SEO

* command seo

* cqrs seo

* commander seo

* component seo

* composite seo

* composite entity seo

* composite view seo

* context object seo

* converter seo

* crtp seo

* currying seo

* dao seo

* data bus seo

* data locality seo

* data mapper seo

* dto seo

* decorator seo

* delegation seo

* di seo

* dirty flag seo

* domain model seo

* double buffer seo

* double checked locking seo

* double dispatch seo

* dynamic proxy seo

* event aggregator seo

* event-based asynchronous seo

* eda seo

* event queue seo

* event sourcing seo

* execute around seo

* extension objects seo

* facade seo

* factory seo

* factory kit seo

* factory method seo

* fanout/fanin seo

* feature toggle seo

* filterer seo

* fluent interface seo

* flux seo

* flyweight seo

* front controller seo

* function composition seo

* game loop seo

* gateway seo

* guarded suspension seo

* half-sync/half-async seo

* health check seo

* hexagonal seo

* identity map seo

* intercepting filter seo

* interpreter seo

* iterator seo

* layers seo

* lazy loading seo

* leader election seo

* leader/followers seo

* lockable object seo

* rename and add seo for marker interface

* master-worker seo

* mediator seo

* memento seo

* metadata mapping seo

* microservice aggregator seo

* api gw seo

* microservices log aggregration seo

* mvc seo

* mvi seo

* mvp seo

* mvvm seo

* monad seo

* monitor seo

* monostate seo

* multiton seo

* mute idiom seo

* naked objects & notification seo

* null object seo

* object mother seo

* object pool seo

* observer seo

* optimistic locking seo

* page controller seo

* page object seo

* parameter object seo

* partial response seo

* pipeline seo

* poison pill seo

* presentation model seo

* private class data seo

* producer-consumer seo

* promise seo

* property seo

* prototype seo

* proxy seo

* queue-based load leveling seo

* reactor seo

* registry seo

* repository seo

* RAII seo

* retry seo

* role object seo

* saga seo

* separated interface seo

* serialized entity seo

* serialized lob seo

* servant seo

* server session seo

* service layer seo

* service locator seo

* service to worker seo

* sharding seo

* single table inheritance seo

* singleton seo

* spatial partition seo

* special case seo

* specification seo

* state seo

* step builder seo

* strangler seo

* strategy seo

* subclass sandbox seo

* table module seo

* template method seo

* throttling seo

* tolerant reader seo

* trampoline seo

* transaction script seo

* twin seo

* type object seo

* unit of work seo

* update method seo

* value object seo

* version number seo

* virtual proxy seo

* visitor seo

* seo enhancements

* seo improvements

* SEO enhancements

* SEO improvements

* SEO additions

* SEO improvements

* more SEO improvements

* rename hexagonal + SEO improvements

* SEO improvements

* more SEO stuff

* SEO improvements

* SEO optimizations

* SEO enhancements

* enchance SEO

* improve SEO

* SEO improvements

* update headers
2024-06-08 19:54:44 +03:00
Ilkka Seppälä 584e949714 docs: updates to several patterns 2024-05-28 19:46:39 +03:00
Ilkka Seppälä 30cb525c04 docs: update double dispatch 2024-05-25 15:51:33 +03:00
Ilkka Seppälä 8389456532 refactor: sanitize javadoc 2024-05-23 18:40:52 +03:00
k1w1dev ef42e169b9 fix: Fix sonar issues (#2925)
* Remove unused member which was also causing a false positive sonar issue.
Fixes sonar issue https://sonarcloud.io/project/issues?open=AY3gHwu5DIZTZkppqVEG&id=iluwatar_java-design-patterns

* Fixes sonar issue https://sonarcloud.io/project/issues?open=AXK0OzDA-CiGJS70dLki&id=iluwatar_java-design-patterns
related to "Refactor the code of the lambda to not have multiple invocations throwing the same checked exception."

Also, updated the code to use Instant and Duration to deal with time instead of int. Added the awaitility
library to perform assertions in test which is more reliable than using Thread.sleep directly to wait for events to happen.

* checkstyle fix

* Add sneaky throws to fix sonar lint issue. This is fine as the newFile method is not being tested but instead the new SimpleFileWriter(...) is.

* The first booking needs to happen outside the assertions. Fixed other warnings

* Use records to pass around related objects instead of using a large number of
individual params, which sonar did not like.

* Checkstyle fixes

* checkstyle fixes

* Remove complexity to keep sonar happy.

* Split into different methods to reduce complexity. Could be broken down even further but currently Sonar is happy.

* Move files to correct package

* Add valid assertions to tests

* rename constants to avoid confusion

* Sonar warning related to cognitive complexity can be suppressed as the methods are quite generic and not functional enough to be separated out.

* Use constants to keep Sonar happy

* Use correct constant naming conventions

* Use correct constant naming conventions

* Use lombok to define noargsconstructor

* Use a single method to do the logging

* Remove unused constructor and redundant method

* Use a reusable method for logging
2024-05-04 08:20:01 +03:00
Ilkka Seppälä 825d45b086 docs: double dispatch explanation + refactor (#2915) 2024-04-13 08:30:48 +03:00
Ilkka Seppälä 266ed609ec fix: replace yaml frontmatter tags with tag (#2353) 2022-11-20 16:48:05 +02:00
Ilkka Seppälä 4108f86177 docs: Prepare for new website launch (#2149)
* Changed database implementation. Removed static objects.

* Fix Logs

* Fix 40 errors from checkstyle plugin run. 139 left))

* Fix CacheStore errors from checkstyle plugin 107 left

* Fix last errors in checkstyle.

* Fix sonar issues

* Fix issues in VALIDATE phase

* Fix Bug with mongo connection. Used "Try with resources"

* Add test

* Added docker-compose for mongo db. MongoDb db work fixed.

* Provided missing tests

* Comments to start Application with mongo.

* Fix some broken links

* Remove extra space

* Update filename

* Fix some links in localization folders

* Fix link

* Update frontmatters

* Work on patterns index page

* Work on index page

* Fixes according PR comments. Mainly Readme edits.

* fix frontmatter

* add missing png

* Update pattern index.md

* Add index.md for Chinese translation

* update image paths

* update circuit breaker image paths

* Update image paths for localizations

* add generated puml

* Add missing image

* Update img file extensions

* Update the rest of the EN and ZH patterns to conform with the new website

Co-authored-by: Victor Zalevskii <zvictormail@gmail.com>
2022-10-23 16:29:49 +03:00
Ilkka Seppälä 932836f68b Update license plugin (#2020)
* update license plugin

* suppress linelength and emptylineseparator rules

* fix checkstyle error

Co-authored-by: Subhrodip Mohanta <hello@subho.xyz>
2022-09-14 23:22:24 +05:30
Ilkka Seppälä 2674cb9523 Set version for the next development iteration 2021-11-11 21:49:55 +02:00
Ilkka Seppälä 925755fa35 Reach milestone 1.25.0 2021-11-11 21:47:49 +02:00
Subhrodip Mohanta 656b441e29 maintenance: Update Spacing of XML (#1864)
PR Set 2 of 4
2021-10-19 20:51:43 +03:00
JackieNim f597fc1b07 fix: Fixed pages showing up in wrong language (#1752)
* Fix languages

* Missed change for version number

* Add language field for presentation

* Revert change in README for double buffer

Co-authored-by: Jackie Nim <=>
2021-05-19 19:49:05 +03:00
Ilkka Seppälä be3250bd0d Set version for the next development iteration 2021-04-05 14:57:36 +03:00
Ilkka Seppälä 1222f12b99 Set version number for milestone 1.24.0 2021-04-05 14:56:36 +03:00
va1m 5cf2fe009b 📍Use lombok, reformat, and optimize the code (#1560)
* Use lombok, reformat, and optimize the code

* Fix merge conflicts and some sonar issues

Co-authored-by: va1m <va1m@email.com>
2021-03-13 14:19:21 +02:00
Subhrodip Mohanta 7891c2b117 update inception year to 2021 (#1653) 2021-02-14 11:57:57 +02:00
Ilkka Seppälä 195a735814 #508 fix SpaceStationMir logging 2020-10-04 14:50:48 +03:00
Ilkka Seppälä 723afb85ba Set version for next development iteration 2020-08-25 21:21:36 +03:00
Ilkka Seppälä a0e5d061cb Milestone 1.23.0 2020-08-25 21:20:30 +03:00
Toxic Dreamz 31471acb69 Fixed most reported issues by SonarCloud. 2020-08-15 21:47:39 +04:00
Ilkka Seppälä 6a8297598e #1047 remove module infos 2020-08-01 15:19:09 +03:00
Ilkka Seppälä 417f21ed3d Code cleanup (#1461)
* Code cleanup

* Fix flux tests

* Fix checkstyle errors

* Fix compile error
2020-07-30 20:28:47 +03:00
saksham93 16ef70bfdc Organisation of patterns into modules: (#1187)
1. Double DIspatch
2. EIP Message Channel
2020-03-07 11:50:51 +00:00
Hemant Bothra 7d0a5c0edb Issue 989 batch-2 (#1108)
* Adding support for maven assembly plugin to generate executable jar with all dependencies in built

* Merge branch 'master' into issue-989

# Conflicts:
#	abstract-document/pom.xml
#	pom.xml

* Adding maven assemly plugin for projects with name A

* Update in format as per checkstyle, i.e. Spcae in place of tab with size of 2

* batch set - 2 having all project with B and C

* issue-989 d-e-f

* fixing eip pom and adding g-h-i-l-m-n Skipping naked object as it seems it doesn't have main method, will consider this at end

* Adding for O and P projects Skipping Object-Mother as we don't have main method for same.
2019-12-18 22:04:08 +02:00
Anurag Agarwal ea57934db6 Java 11 migrate c-d (remaining) (#1111)
* Moves converter pattern to Java 11

* Moves cqrs pattern to Java 11

* Moves dao pattern to Java 11

* Moves data-bus pattern to Java 11

* Moves data-locality pattern to Java 11

* Moves data-mapper pattern to Java 11

* Moves data-transfer-object pattern to Java 11

* Moves decorator pattern to Java 11

* Moves delegation pattern to Java 11

* Moves dependency-injection to Java 11

* Moves dirty-flag to Java 11

* Moves double-buffer to Java 11

* Moves double-checked-locking to Java 11

* Moves double-dispatch to Java 11

* Corrects with changes thats breaking test cases
2019-12-14 20:32:45 +02:00
Ilkka Seppälä b2b1ba95eb https://github.com/iluwatar/java-design-patterns-web/issues/8 Update pattern categories and tags 2019-12-13 21:09:28 +02:00
Ilkka Seppälä b09b100614 #1113 Link uml-reverse-mapper created class diagrams to readme, where needed 2019-12-07 20:26:59 +02:00
Ilkka Seppälä 0685a505d3 #1113 Add uml-reverse-mapper plugin 2019-12-07 18:03:49 +02:00
Ilkka Seppälä 6941e65cb4 Set version for next development iteration 2019-11-17 14:45:41 +02:00
Ilkka Seppälä 7d845505b5 Java Design Patterns 1.22.0 2019-11-17 14:44:42 +02:00
Anurag Agarwal f2c91eb836 Resolves checkstyle errors for delegation dependency-injection dirty-flag double-buffer double-checked-locking double-dispatch (#1068)
* Reduces checkstyle errors in delegation

* Reduces checkstyle errors in dependency-injection

* Reduces checkstyle errors in dirty-flag

* Reduces checkstyle errors in double-buffer

* Reduces checkstyle errors in double-checked-locking

* Reduces checkstyle errors in double-dispatch
2019-11-10 19:31:19 +02:00
Leon Mak 6bb3438965 Add java 11 (#1049) 2019-10-27 22:08:09 +02:00
Alexander Ivanov 4904d7eea0 #1021: Fix checkstyle warnings by changing the license header template (#1027)
* Add custom license header style in order to comply with Google's Checkstyle format

* Update license headers to comply with Google's Checkstyle format
2019-10-22 08:15:35 +03:00
Ilkka Seppälä 9ebbc421dd Update license headers 2019-10-12 20:05:54 +03:00
Ilkka Seppälä b874adc296 Set version for next development iteration 2019-09-08 11:01:12 +03:00
Ilkka Seppälä 9bf7a059b8 Java Design Patterns v1.21.0 2019-09-08 10:49:40 +03:00
hoangnam2261 6daaeec5c6 Remove the transitive dependency(junit-jupiter-api) (#916) 2019-07-30 22:46:38 +03:00
Ilkka Seppälä a113de6a14 Add licenses 2019-07-28 16:24:14 +03:00
kanwarpreet25 c6ecf58687 508 : sonar qube critical issue fixes (#852)
* 508 : sonar qube critical issue fixes

* 508 : Sunar Qube Fixes
Define a constant instead of duplicating this literal "user_accounts" 4 times.
Define a constant instead of duplicating this literal "userID" 5 times
Define a constant instead of duplicating this literal "additionalInfo" 4 times.
Define a constant instead of duplicating this literal "userName" 4 times.

* 508 : Sunar Qube Fixes
Define a constant instead of duplicating this literal "user_accounts" 4 times.

* 508 : Sonar Qube Fixes
Define a constant instead of duplicating this literal "eEvans" 4 times
Define a constant instead of duplicating this literal "jBloch" 6 times
Define a constant instead of duplicating this literal "mFowler" 3 times

* 508 : Sonar Qube FIxes
Define a constant instead of duplicating this literal "username" 3 times.

* 508: sonar qube issue fixes
Define a constant instead of duplicating this literal "customerDao.getAllCustomers(): " 4 times.

* 508 : sonar qube issue fixes
Define a constant instead of duplicating this literal "App.main(), student : " 4 times.

* 508 : sonar Qube issue fixes
Define a constant instead of duplicating this literal "{} hits {}. {} is damaged!" 3 times.
Define a constant instead of duplicating this literal "{} hits {}." 4 times.

* 508 : Define a constant instead of duplicating this literal "{} hits {}." 4 times.

* 508 : checkstyle fixes

* 508: checkstyle fixes

* 508: checkstyle fixes

* 508: checkstyle fixes

* 508: checkstyle fixes

* 508: checkstyle fixes

* 508: cqrs checkstyle fixes
2019-07-28 15:39:40 +03:00
Ilkka Seppälä 7a7e891384 Set version for next development iteration 2018-09-30 21:05:57 +03:00
Ilkka Seppälä 26d6d96f78 Reach milestone 1.20.0 2018-09-30 21:03:48 +03:00
Ilkka Seppälä 1c0e0cd88b Set version for next development iteration 2018-03-31 10:36:05 +03:00
Ilkka Seppälä 3407392664 Reach milestone 1.19.0 2018-03-31 10:34:25 +03:00
Ilkka Seppälä dea2316f1f Set version for next development iteration 2018-01-01 16:58:29 +02:00
Ilkka Seppälä cb38501ea2 Reach milestone 1.18.0 2018-01-01 16:50:05 +02:00
Artur Mogozov 6694d742a3 Migrate to JUnit5 2017-12-31 16:29:48 +09:00
Ilkka Seppälä bf98299db2 #190 Remove pumlids from readmes 2017-11-28 21:28:53 +02:00