- Java Design Patterns
Java Design Patterns is intended to provide various use case scenarios and architectural concepts on prototyping adaptive applications.
mkdocs.yml # Configuration file.
docs/
readme.md # General information
summary.md # Table of contents
units/
design-patterns.md # Design patterns and architectural concepts
scenarios.md # Scenarios in practice
use-cases.md # Typical use cases
user-guide/
changelog.md # Changelog page
code_of_conduct.md # Code of conduct page
code_owners.md # Code owners page
dependency.md # Dependency page
description.md # Description page
faq.md # FAQ page
getting-started.md # Getting started page
troubleshooting.md # Troubleshooting page
upgrade.md # Upgrade page
reporting/
info.md # Informational page
issue_template.md # Issue template page
bug_report.md # Bug report template
custom_report.md # Custom report template
feature_request_template.md # Feature request template
pull_request_template.md # Pull request template
contributing/
info.md # Contributing page
links/
info.md # Links page
The Website documentation is provided by gitbook and can be discovered at url:
To enable documentation serving at localhost you can run the following script
./scripts/build-docs.sh
otherwise, the next steps should be considered:
1) Install/upgrade pip command-line utility:
pip install --upgrade pip
or if you need to install pip for the first time:
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
python get-pip.py
2) Install the mkdocs package using pip:
pip install mkdocs
or more conveniently for Windows subsystem:
python -m pip install mkdocs --quiet
or via provided software package manager tool:
brew install mkdocs # macOS
sudo apt install mkdocs # Ubuntu
sudo yum install mkdocs # CentOS/RHEL
3) Install the material theme for the website:
python -m pip install mkdocs-material --quiet
python -m pip install markdown-include --quiet
...
(see requirements.txt)
...
4) Start a web server on your local machine at localhost, where you can see the entire website β with hot-reload when you save a change by running the following command:
python -m mkdocs build --clean --config-file mkdocs.yml
python -m mkdocs serve --verbose --dirtyreload
The site is served from the address specified in configuration file mkdocs.yml
. The MkDocs default is localhost:8000
, but the current configuration file sets it:
dev_addr: '0.0.0.0:8000'
The --dirtyreload
option limits rebuilds to the changed page, which means changes to mkdocs.yml
are not reflected.
If you change mkdocs.yml
, stop and restart python -m mkdocs serve --verbose --dirtyreload
.
5) Deploy to GitHub pages:
python -m mkdocs --verbose gh-deploy --force --remote-branch gh-pages
5) Open up localhost in browser to get the default documentation homepage.
Running k8s cluster with tilt command by acquiring k8s deployment configuration:
tilt up
Shutting down k8s cluster with provisioned resources removal:
tilt down --delete-namespaces
The project uses SemVer for versioning. For the versions available, see the tags on this repository.
Java Patterns is maintained by the following GitHub team-members:
with community support please contact with us if you have some question or proposition.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us (emoji key).
More on information on project contributions can be found at CHANGELOG.md.
This project follows the all-contributors specification. Contributions of any kind are welcome!
See also the list of contributors who participated in this project.
Java Design Patterns has experimental support for Gitpod, a pre-configured development environment that runs in your browser. To use Gitpod, click the button below and sign in with GitHub. Gitpod also offers a browser add-on, though it is not required.
Java Patterns is distributed under LGPL version 3 or later, [License]. LGPLv3 is additional permissions on top of GPLv3.
Like and Java Patterns ? Consider buying me a coffee :)
- Spring4Shell Details and Exploit code leaked
- Apple's Code-signing Quagmire
- Spring4Shell: 0-day RCE on Spring Core
- Game Making Libraries + Engines in Java 2022
- Where's Java Going In 2022?
- Architecture design help
- Maven is turning 20 today π₯³ To many more years of stable Java builds π»
- Memory leak due to improper exception handling
- Scaling Spring Batch processing with partitioning using Kafka
- New in JDK 18: Reviewing Enhancements in the Latest JDK Release
- JDK 18: The new features in Java 18
- JDK 19: Java 19 begins to take shape
- Project Loom: Understand the new Java concurrency model
- Java 19 could be big
- Java 8 still dominates, but Java 17 wave is coming β survey
- Rust programming for Java developers
- TypeScript usage growing by leaps and bounds β report
- A brief intro to the Pants build system
- Java proposal would lower GC latency
- How to handle Java errors and cleanup without finalize
- Link Dump #29
- Link Dump #28
- Link Dump #27
- Link Dump #26
- Link Dump #25
- Link Dump #24
- Link Dump #23
- Link Dump #22
- Link Dump #21
- Link Dump #20
- Join in SQL
- For-loops and Streams
- Being Glue
- Hibernate Proxies and the Visitor Pattern
- RAID Mirrorring with ADM
- Are we really engineers?
- Standard RAID levels
- Assing JsonIgnore on generated files in openapi
- RESTEASY004590: You must define a @Consumes type on your client method or interface, or supply a default
- Replacing many if statements
- How To Use CORS in NestJS Application
- Handling Large Datasets in Distributed Systems
- Example of Spring Cloud Function with AWS Lambda
- How to Use Pub/Sub with NodeJS
- Logging in Spring Boot Microservices
- Implementing Domain-Driven Design
- A Step By Step Guide to Kubernetes
- Spring Cloud Tutorial for Beginners
- Details of Liskov Substitution Principle Example
- Building Microservices with Event-Driven Architecture
- ZGC - The Future of Low-Latency Garbage Collection Is Here
- New in JDK 18: Reviewing Enhancements in the Latest JDK Release
- Moving Java Forward Keynote
- Java Is Fast! - Inside Java Newscast #22
- Programmerβs Guide to Snippets
jextract
Standalone Repository- Episode 23 βJava 18 is Here!β
- The Arrival of Java 18!
- JavaOne is back!
- JDK 18 Security Enhancements
- 6 Best Online Java Courses for Beginners in 2022
- Solve Error Java Access Denied FileNotFoundException
- Custom Iterator in Java with Example
- Rounding in Java β Math.Round, Math.Floor, Math.Ceil
- Advantages of Hibernate Over JDBC?
- Advantages of R Programming Language
- Method Overloading in Java With Example
- 10 Best Laptop for Java Programming in India 2022
- Types of Constants in Java
- Java Collection Hierarchy
- Learn from Java Champion Markus Eisele: Developer productivity with containers and the future of cloud-native
- Learn from Java Champion Johan Vos: JavaFx in the Age of Browsers
- Five Reasons to Choose Java for your Next Software Project
- Learn from Java Champion Gunnar Morling: Performance unit testing with Java Flight Recorder (JFR) and JfrUnit
- Unit Testing in Java β The Missing Bits (Part 2)
- Unit Testing in Java β The Missing Bits (Part 1)
- Sorting An Array In Java: Tips & Tricks
- Java vs JavaScript: How to Choose the Right Backend Technology?
- Splitting String in Java β Examples and Tips
- Learn from Java Champion Gerrit Grunwald: JavaFx β not dead yet
- Plumbr has been acquired by Splunk
- Using Plumbr with OpenTelemetry NodeJS agent
- Extending Plumbr RUM with Web Vitals metrics
- Send alerts from Plumbr to Microsoft Teams
- Universal agent expands bottleneck coverage with slow http requests
- Achieve the three pillars of observability β link Plumbr distributed traces with logs
- Transaction snapshots become request processing
- Plumbr now monitors Python applications and APIs
- Distributed tracing in practice
- Plumbr now supports application versioning
- MutationQuery and SelectionQuery in Hibernate 6
- Native Queries β How to call native SQL queries with JPA & Hibernate
- Hibernate 6 EmbeddableInstantiator β Instantiate embeddables your way
- Logging Guide for Hibernate 4, 5 & 6 β Use the right config for dev and prod
- Dynamic Inserts and Updates with Spring Data JPA
- FlushMode in JPA and Hibernate β What it is and how to change it
- Hibernate Performance Tuning Tips β 2022 Edition
- The Best Spring Data JPA Logging Configuration in Spring Boot
- Naming Strategies in Hibernate 5
- The Best Mapping for Shared Technical Attributes With Hibernate
- Using Kubernetes ConfigMaps to define your Quarkus applicationβs properties
- CodeReady Workspaces devfile, demystified
- Decoupling microservices with Apache Camel and Debezium
- How Quarkus brings imperative and reactive programming together
- Open Liberty Java runtime now available to Red Hat Runtimes subscribers
- New features in Red Hat CodeReady Studio 12.13.0.GA and JBoss Tools 4.13.0.Final for Eclipse 2019-09
- Quarkus: Modernize βhelloworldβ JBoss EAP quickstart, Part 1
- Managing JBoss EAP/Wildfly using Jcliff
- Bring joy to development with Quarkus, the cloud-native Java framework
- Whatβs new in Red Hat Dependency Analytics
- Json Patch and Json Merge Patch in Java
- Making the Case for Digital Renovation
- Retention period and issue with Kafka data not getting deleted
- Kafka Record Patterns for Data Replication
- [MEGA DEAL] The 2021 Java Bootcamp Bundle(96% off)
- Supporting bulk operations in REST APIs
- Handling Actions Class in Selenium and its usage
- Store health and safety β Example health and safety architecture
- Developers Are Obsessed With Their Text Editors
- Understanding Istio Telemetry v2
- Spring JavaMelody Tutorial
- Spring Boot JavaMelody Tutorial
- How to find file in directory
- How to list all files in the directory
- How to convert Iterable to Collection
- Spring Boot CRUD Tutorial with embedded H2 and Freemarker
- Spring Boot CRUD Tutorial with embedded H2 and JSP
- Spring Boot Hello World β Freemarker tutorial
- Spring Boot Hello World β JSP tutorial
- How to debug maven tests