- https://dev.to/tamerlang/oop-principles-for-dummies-2mbd
- https://github.com/dttung2905/kafka-in-production
- https://github.com/iluwatar/java-design-patterns
- https://github.com/aalmiray/java-champions
- https://github.com/akullpp/awesome-java
- https://github.com/joschi/java-metadata
- https://github.com/pragkirk/poma
- https://www.libhunt.com/l/java
- https://lescastcodeurs.com/
- https://spring.io/
- https://start.spring.io/
- https://stratospheric.dev/
- https://github.com/springfox/springfox
- https://github.com/BNYMellon/spring-kata
- https://github.com/s0l0c0ding/spring-tips
- https://github.com/Ninja-Squad/springmockk
- https://github.com/springdoc/springdoc-openapi
- https://github.com/jhipster/generator-jhipster
- http://www.baeldung.com/rest-with-spring-course
- https://github.com/RameshMF/Hibernate-ORM-Tutorials
- https://github.com/bezkoder/spring-jpa-query-example
- https://github.com/livelessons-spring/building-microservices
- https://github.com/spring-projects-experimental/spring-native
- https://github.com/spring-projects-experimental/spring-graphql
- https://github.com/netflix/dgs-framework
- https://github.com/spring-projects/spring-boot
- https://www.marcobehler.com/guides/spring-boot
- https://github.com/Genc/spring-boot-boilerplate
- https://github.com/RameshMF/awesome-spring-boot
- https://github.com/RameshMF/spring-boot-tutorial
- https://github.com/RameshMF/springboot-validation
- https://github.com/bezkoder/spring-boot-one-to-many
- https://github.com/RameshMF/springboot-dto-tutorial
- https://github.com/bezkoder/spring-boot-image-upload
- https://github.com/RameshMF/springboot-microservices
- https://github.com/aileftech/spring-boot-database-admin
- https://github.com/bezkoder/spring-boot-thymeleaf-example
- https://github.com/bezkoder/spring-boot-graphql-postgresql
- https://github.com/bezkoder/spring-boot-angular-15-mysql-example
- https://github.com/bezkoder/spring-boot-angular-15-crud-example
- https://github.com/sivaprasadreddy/spring-boot-application-template
- https://github.com/Kehrlann/spring-security-architecture-workshop
- https://github.com/vaadin/hilla
- https://github.com/Netflix/maestro
- https://github.com/kestra-io/kestra
- https://github.com/quarkusio/quarkus
- https://github.com/micronaut-projects
- https://github.com/domaframework/doma
- https://github.com/crnk-project/crnk-framework
- https://github.com/playframework/playframework
- https://github.com/micronaut-projects/micronaut-core
- https://github.com/nashtech-garage/yas
- https://github.com/crnk-project/crnk-example
- https://github.com/spring-projects/spring-petclinic
- https://github.com/nilsgumpfer/StrategyDesignPattern
- https://github.com/nilsgumpfer/AdapterDesignPattern
- https://github.com/nilsgumpfer/CommandDesignPattern
- https://github.com/bertjan/quarkus-graalvm-aws-lambda
- https://developer.okta.com/blog/2020/05/29/angular-deployment
- https://developer.okta.com/blog/2020/08/17/micronaut-jhipster-heroku
- https://piotrminkowski.com/2020/12/14/microprofile-java-microservices-on-wildfly/
- https://github.com/agoncal/code-with-quarkus
- https://github.com/lordofthejars/quarkus-cheat-sheet/
- https://github.com/jhipster/generator-jhipster-quarkus
- https://quarkus.io/
- https://code.quarkus.io/
- https://github.com/agoncal
- https://github.com/Netflix/conductor
- https://antoniogoncalves.org/tag/micro-services/
- https://github.com/livelessons-spring/building-microservices
- https://java.libhunt.com/newsletter/186
- https://advancedweb.hu/new-language-features-since-java-8-to-15/
- https://dev.to/wejdi_gh/how-java-has-advanced-in-the-past-6-years-from-java-8-to-java-15-4gj3
- https://github.com/opensearch-project/OpenSearch
- https://github.com/joelittlejohn/jsonschema2pojo
- https://github.com/adorsys/secure-token-service
- https://github.com/supertokens/supertokens-core
- https://github.com/williamfiset/Algorithms
- https://github.com/eclipse/deeplearning4j
- https://github.com/JanusGraph/janusgraph
- https://github.com/spockframework/spock
- https://github.com/mapstruct/mapstruct
- https://github.com/Kong/unirest-java
- https://github.com/keycloak/keycloak
- https://github.com/glowroot/glowroot
- https://github.com/tinesoft/nxrocks
- https://java.libhunt.com/categories
- https://github.com/zalando/logbook
- https://github.com/alibaba/arthas
- https://github.com/caoccao/Javet
- https://github.com/apache/thrift
- https://github.com/apache/druid
- https://github.com/crate/crate
- https://github.com/zxing/zxing
- https://github.com/my2iu/Jinq
- https://github.com/ta4j/ta4j
- https://github.com/shyiko/jabba
- https://github.com/facebook/infer
- https://github.com/openrewrite/rewrite
- https://github.com/jhipster/prettier-java
- http://www.javadecompilers.com/
- https://github.com/google/dagger
- https://github.com/google/guice
- https://github.com/Netflix/governator
- https://github.com/apache/pulsar
- https://github.com/apache/kafka
- https://github.com/zalando/nakadi
- https://github.com/crate/crate/
- https://www.w3schools.com/java/default.asp
- https://www.geeksforgeeks.org/differences-treemap-hashmap-linkedhashmap-java/
- https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features-since-jdk-8-to-14/
Use nullable instead of ternary operator: LocalDate dateTime = Optional.ofNullable(offerDate).map(LocalDateTime::toLocalDate).orElseGet(LocalDate::now);
// Find by object key
// https://stackoverflow.com/questions/33992479/java-8-stream-api-to-find-unique-object-matching-a-property-value
Optional<Person> matchingObject = objects.stream().
filter(p -> p.email().equals("testemail")).
findFirst(); // can also be: findAny() and .orElse(null)
// Transform List<MyObject> to Map<String, List<MyObject>>
// https://stackoverflow.com/questions/48587730/converting-listmyobject-to-mapstring-liststring-in-java-8-when-we-have-du
Map<String, List<MyObject>> rows = list.stream().collect(
Collectors.toMap(element -> element.personalId,
element -> new ArrayList<MyObject>(Arrays.asList(element))));
// Check if all values in a boolean array are true
// https://stackoverflow.com/questions/8260881/what-is-the-most-elegant-way-to-check-if-all-values-in-a-boolean-array-are-true
boolean isAllTrue = Arrays.asList(myArray).stream().allMatch(val -> val == true);
// shorter
boolean isAllTrue = Arrays.stream(myArray).allMatch(Boolean::valueOf);
// Filter list distincted by property and ordered by value
// https://stackoverflow.com/questions/53636700/good-way-to-filter-list-distincted-by-property-and-ordered-by-date
List<Person> finalList = new ArrayList<>(people.stream()
.collect(Collectors.toMap(a -> a.getName().toLowerCase(), // name in lowercase as the key of the map (uniqueness)
Function.identity(), // corresponding Person as value
(person, person2) -> person.getDate().isAfter(person2.getDate()) ? person : person2)) // merge in case of same name based on which date is after the other
.values()); // fetch the values