{"id":20591770,"url":"https://github.com/mincong-h/java-examples","last_synced_at":"2025-04-14T22:53:05.717Z","repository":{"id":10311191,"uuid":"65304742","full_name":"mincong-h/java-examples","owner":"mincong-h","description":"Java Examples","archived":false,"fork":false,"pushed_at":"2023-01-12T04:06:48.000Z","size":1241,"stargazers_count":11,"open_issues_count":26,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-14T22:52:52.947Z","etag":null,"topics":["assertj","basics","java","jax-rs","jgit","learning","maven","mockito","xml","xpath"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mincong-h.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-09T15:07:53.000Z","updated_at":"2024-09-15T21:09:08.000Z","dependencies_parsed_at":"2023-01-13T15:51:55.837Z","dependency_job_id":null,"html_url":"https://github.com/mincong-h/java-examples","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mincong-h%2Fjava-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mincong-h%2Fjava-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mincong-h%2Fjava-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mincong-h%2Fjava-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mincong-h","download_url":"https://codeload.github.com/mincong-h/java-examples/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248975328,"owners_count":21192208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assertj","basics","java","jax-rs","jgit","learning","maven","mockito","xml","xpath"],"created_at":"2024-11-16T07:41:37.463Z","updated_at":"2025-04-14T22:53:05.693Z","avatar_url":"https://github.com/mincong-h.png","language":"Java","readme":"# Java Examples [![Build Status][actions-img]][actions]\n\nA Maven project for learning Java during my free time. Most of the explanations are\nwritten directly in the code as Javadoc. I use tests to understand technical detail\nin different frameworks. You can run these tests using:\n\n    mvn clean install\n\nThis project is tested under Java 11 and Java 15.\n\n## Module List\n\nModule | Description\n:--- | :---\nAkka | Build highly concurrent, distributed, and resilient message-driven applications on the JVM \u003chttps://akka.io\u003e\nAssertJ | [AssertJ][assertj] testing framework.\nBasic | Basic usage of Java core APIs.\nCLI | [Apache Commons CLI][commons-cli].\nDate | Date manipulation using `java.util.*` and `java.time.*`.\nElasticsearch | [Elasticsearch](https://github.com/elastic/elasticsearch): Open source, distributed, RESTful search engine\nEncoding | Encoding challenge in Java.\ngRPC | A high performance, open source universal RPC framework. \u003chttps://www.grpc.io/\u003e\nIO | Java File I/O.\nImmutables | Generate simple, safe and consistent value objects. \u003chttps://immutables.github.io/\u003e\nJackson | Jackson, a high-performance JSON processor for Java.\nJava 8 | New functionality of Java 8, including filter, map, stream.\nJetty | Jetty Server.\nJGit | Basic usages of [JGit][jgit].\nJMH | Java Microbenchmark Harness (JMH).\nJSON | JSON conversion libraries in Java.\nJUnit 4 | JUnit 4 testing framework.\nJUnit 5 | JUnit 5 testing framework.\nLogback | [Logback](http://logback.qos.ch/) logging framework.\nMaven | Basic functionality of Maven.\nMongo | The MongoDB database\nMockito | [Mockito](https://site.mockito.org/), the most popular mocking framework for Java unit tests\nOCA | Oracle Certified Associate Java SE 8\nOCP | Oracle Certified Professional Java SE 8\nReliability | Tips to make production more reliable.\nRest | RESTful API using [Jersey][jersey].\nSpring Boot | Spring boot.\nSpring Data MongoDB | Spring data integration for MongoDB.\nTypesafe Config | [Typesafe Config](https://github.com/lightbend/config), configuration library for JVM languages.\nXML | XML serialization, XPath, XSD.\nVAVR | Functional component library that provides persistent data types and functional control structures.\n\n## Articles\n\nHere are some blog posts that I wrote using the source code of this repository and related satellite repositories. Visit \u003chttps://mincong.io\u003e\nto see the complete list.\n\n### Akka\n\n- [Write An Actor In Akka](https://mincong.io/2020/06/20/akka-actor/)\n- [Testing Actor with TestActorRef](https://mincong.io/2020/01/08/akka-testing-actor-with-testactorref/)\n\n### Java Annotation Processing\n\n- [Why You Should Use Auto Value in Java?](https://mincong.io/2018/08/21/why-you-should-use-auto-value-in-java/)\n- [Introduction of Immutables](https://mincong.io/2020/04/13/introduction-of-immutables/)\n- [Introduction to Google Error Prone](https://mincong.io/2020/11/08/google-error-prone/)\n\n### Java Core\n\n- [Glob Expression Understanding](https://mincong.io/2019/04/16/glob-expression-understanding/)\n- [Unzipping File in Java](https://mincong.io/2019/10/27/unzipping-file-in-java/)\n- [Fixng Comparator](https://mincong.io/2019/07/18/fixing-comparator/)\n- [Understanding ISO-8859-1 / UTF-8](https://mincong.io/2019/04/07/understanding-iso-8859-1-and-utf-8/)\n\n### Java Concurrency\n\n- [Why Do We Need Completable Future?](https://mincong.io/2020/06/26/completable-future/)\n- [3 Ways to Handle Exception In Completable Future](https://mincong.io/2020/05/30/exception-handling-in-completable-future/)\n- [How CompletableFuture is tested in OpenJDK?](https://mincong.io/2020/05/10/completablefuture-test/)\n- [Using 100% CPU with ExecutorService.invokeAll()](https://mincong.io/2019/01/29/executorservice-invokeall/)\n\n### Java Date\n\nDate manipulation using `java.util.*` and `java.time.*`.\n\n- [Using Java Time In Different Frameworks](https://mincong.io/2020/10/25/java-time/)\n- [Controlling Time with Java Clock](https://mincong.io/2020/05/24/java-clock/)\n- [Convert Date to ISO 8601 String in Java](https://mincong.io/2017/02/16/convert-date-to-string-in-java/)\n\n### Java Logging\n\n- [Logback: Test Logging Event](https://mincong.io/2020/02/02/logback-test-logging-event/)\n- [SLF4J Understanding](https://mincong.io/2019/03/12/slf4j/)\n- [What I know about logs](https://mincong.io/2019/03/05/logs/)\n\n### Java Testing\n\nMockito, the most popular mocking framework for\nJava unit tests. https://site.mockito.org\n\n- [Mockito: 3 Ways to Init Mock in JUnit 5](https://mincong.io/2020/04/19/mockito-junit5)\n- [Mockito: 3 Ways to Init Mock in JUnit 4](https://mincong.io/2019/09/13/init-mock)\n- [Mockito: ArgumentCaptor](https://mincong.io/2019/12/15/mockito-argument-captor)\n- [Mockito: 4 Ways to Verify Interations](https://mincong.io/2019/09/22/mockito-verify)\n- [Testing with GwtMockito](https://mincong.io/2019/08/26/testing-with-gwtmockito)\n\nJUnit, the programmer-friendly testing framework for Java and the JVM:\n\n- [Writing Parameterized Tests in JUnit 5](https://mincong.io/2021/01/31/juni5-parameterized-tests/)\n- [JUnit 5: Dynamic Tests with TestFactory](https://mincong.io/2021/04/09/junit-5-dynamic-tests/)\n\n### Java Serialization\n\n- [Use Auto Value and Jackson in REST API](https://mincong.io/2018/06/19/auto-value-and-jackson/)\n- [Jackson XML Mapper](https://mincong.io/2019/03/19/jackson-xml-mapper/)\n- [Vavr Jackson 1.0.0 Alpha 3 release notes](https://mincong.io/2020/07/11/vavr-jackson-1.0.0-alpha-3/)\n- [Making Backward-Compatible Schema Changes in MongoDB](https://mincong.io/2021/02/27/mongodb-schema-compatibility/)\n\n### Reliability\n\n- [Create a Throttler in Java](https://mincong.io/2020/11/07/throttler/)\n- [Feature Flag: Making Your Application More Reliable](https://mincong.io/2020/11/11/feature-flag/)\n\n### Elasticsearch\n\n- [Testing Elasticsearch With Docker And Java High Level REST Client](https://mincong.io/2020/04/05/testing-elasticsearch-with-docker-and-java-client/)\n- [Testing Elasticsearch with ESSingleNodeTestCase](https://mincong.io/2019/11/24/essinglenodetestcase/)\n- [Elasticsearch: cat nodes API](https://mincong.io/2020/03/07/elasticsearch-cat-nodes-api/)\n- [Elasticsearch: Scroll API in Java](https://mincong.io/2020/01/19/elasticsearch-scroll-api/)\n- [Indexing New Data in Elasticsearch](https://mincong.io/2019/12/02/indexing-new-data-in-elasticsearch/)\n- [Common Index Exceptions](https://mincong.io/2020/09/13/es-index-exceptions/)\n- [Wrap Elasticsearch Response Into CompletableFuture](https://mincong.io/2020/07/26/es-client-completablefuture/)\n- [Discovery in Elasticsearch](https://mincong.io/2020/08/22/discovery-in-elasticsearch/)\n- [GC in Elasticsearch](https://mincong.io/2020/08/30/gc-in-elasticsearch/)\n- [18 Allocation Deciders in Elasticsearch](https://mincong.io/2020/09/27/shard-allocation/)\n- [Using Java Time in Different Frameworks](https://mincong.io/2020/10/25/java-time/)\n- [DVF: Indexing New Documents](https://mincong.io/2020/12/16/dvf-indexing/)\n- [DVF: Indexing Optimization](https://mincong.io/2020/12/17/dvf-indexing-optimization/)\n- [DVF: Storage Optimization](https://mincong.io/2020/12/25/dvf-storage-optimization/)\n- [DVF: Snapshot And Restore](https://mincong.io/2021/01/10/dvf-snapshot-and-restore/)\n\n## Code Style\n\nI use [Google Java Code Style][style-java] for this repo.\n\n[assertj]: http://joel-costigliola.github.io/assertj/\n[bm]: http://byteman.jboss.org\n[commons-cli]: https://commons.apache.org/proper/commons-cli/\n[jersey]: https://jersey.github.io\n[jgit]: https://github.com/eclipse/jgit\n[style-java]: https://google.github.io/styleguide/javaguide.html\n[actions]: https://github.com/mincong-h/java-examples/actions\n[actions-img]: https://github.com/mincong-h/java-examples/workflows/Actions/badge.svg\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmincong-h%2Fjava-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmincong-h%2Fjava-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmincong-h%2Fjava-examples/lists"}