Object-oriented Java tuples

Related tags

java library utils tuples pairs
Overview

Object oriented Java tuples.

  • No data accessors
  • No ugly class or method names pair._1(), new Tuple3()
  • All tuple types are interfaces
  • Strong encapsulation of tuples data
  • Standard tuple implementations are immutable
  • Built-in support of equals, hashCode, toString, Serializable in standard implementation

CI checks Maven Central

Usage

Add dependency

<dependency>
    <groupId>wtf.g4s8</groupId>
    <artifactId>tuples</artifactId>
</dependency>

Using in code:

// creating new tuples
var pair = Pair.of(1, "b"); // <1, "b">
var triplet = Triplet.of(4, false, 0.2); // <4, false, 0.2>

// applying tuple data
String result = pair.apply((i, s) -> String.format("%s - %d", s, i)); // b - 1

// accepting tuple data
triplet.accept((i, b, d) -> System.out.printf("%d - (%b) %f\n", i, b, d)); // 4 - (false) 0.2 

// push and pop
Unit<Integer> iUnit = Unit.of(1); // <1>
Pair<Integer, String> pair = unit.push("a"); // <1, "a">
Unit<String> sUnit = pair.apply((i, s) -> Pair.of(s, i)).pop(); // <"a">
Triplet<String, Double, Boolean> triplet = sUnit.push(1.1).push(true); // <"a", 1.1, true>

// zipping iterables
var zip = Pair.zip(Arrays.asList(1, 2, 3), Arrays.asList("a", "b", "c")); // [<1, "a">, <2, "b">, <3, "c">]

Design

Each tuple object specify the behavior and encapsulates the data. Tuple primitives are interfaces with just a minimal required methods. Data is strongly encapsulated and can not be accessed directly. All types are immutable. The only was yo access the data is to call accept or apply methods.

There are three objects exist:

  • Unit<T> - singleton tuple
  • Pair<T, U> - pair of two value
  • Triplet<T, U, V> - three values

API

Each tuple has two primary methods:

  • apply(function) - apply function to tuple data, return function result
  • accept(consumer) - consume tuple data, return nothing

And additional methods to add or remove data:

  • push(item) - change tuple type by adding new element (unit -> pair -> triplet)
  • pop() - skip last element, reduce tuple size (triplet -> pair -> unit)

Constructing

Each tuple type has factory method of(...):

  • Unit.of(T) -> Unit<T>
  • Pair.of(T, U) -> Pair<T, U>
  • Triplet.of(T, U, V) -> Triplet<T, U, V>

ZIP

Also, there are zip methods available to zip two or more lists:

  • Pair.zip(Iterable<T>, Iterable<U>) -> Iterable<Pair<T, U>>
  • Triplet.zip(Iterable<T>, Iterable<U>, Iterable<V>) -> Iterable<Triplet<T, U, V>>

Optional

Unit tuple has maybe method to convert from optional:

  • Unit.maybe(Optional<T>) -> Optional<Unit<T>>

Extras

All standard tuple classes created from of factory method implements equals, hashCode and toString methods.

Testing

Each tuple type has Hamcrest matcher in wtf.g4s8.tuples.hm package (to use it, add org.hamcrest:hamcrest Maven dependency):

  • UnitMatcher<T> for Unit<T>
  • PairMatcher<T, U> for Pair<T, U>
  • TripletMatcher<T, U, V> for Triplet<T, U, V>
Issues
  • deps: bump maven-gpg-plugin from 1.6 to 3.0.1

    deps: bump maven-gpg-plugin from 1.6 to 3.0.1

    Bumps maven-gpg-plugin from 1.6 to 3.0.1.

    Commits
    • 5255080 [maven-release-plugin] prepare release maven-gpg-plugin-3.0.1
    • e4dc062 [MGPG-79] fix handling of external pinentry programs in case the passphrase i...
    • 5902b2b deps: update JUnit
    • 12fbd63 Merge pull request #10 from Syquel/bugfix/MGPG-66
    • 4da6921 [MGPG-66] fix handling of excluded files on linux
    • 4016721 Merge pull request #12 from Syquel/bugfix/MGPG-80_equality
    • fba2c39 [MGPG-66] add test for handling of excluded files
    • 26aa5b3 [MGPG-66] fix handling of excluded files
    • 7438b37 [MGPG-80] implement GpgVersion equality in adherence to comparibility
    • b38c638 Merge pull request #11 from Syquel/bugfix/MGPG-80
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • deps: bump maven-site-plugin from 3.7.1 to 3.9.1

    deps: bump maven-site-plugin from 3.7.1 to 3.9.1

    Bumps maven-site-plugin from 3.7.1 to 3.9.1.

    Commits
    • 854e6a0 [maven-release-plugin] prepare release maven-site-plugin-3.9.1
    • ec954c8 [MSITE-856] - NullPointer on org.apache.maven.plugins.site.render.SiteMap.rel...
    • d4160ab fix javadoc issues with JDK 8
    • 963cbcb remove unused plugins
    • da10917 remove enforce bytecode now inherited from maven-parent
    • e033328 [MSITE-757] remove shading not used any more
    • 5179a4d [MSITE-863] fix Maven < 3.6.1 compatibility issue
    • 028119f Github Actions
    • 77c7cff [MSITE-863] upgrade m-reporting-exec to show that MSHARED-921 is fixed
    • 36b11f4 [MSITE-863] revert ae9c132, not caused by Java 7 but Maven 3.6.0-
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • deps: bump maven-surefire-plugin from 2.22.1 to 2.22.2

    deps: bump maven-surefire-plugin from 2.22.1 to 2.22.2

    Bumps maven-surefire-plugin from 2.22.1 to 2.22.2.

    Commits
    • d96b95c [maven-release-plugin] prepare release surefire-2.22.2
    • 4a2aafc Remove Travis file
    • 7b9ec3f Remove JUnit SNAPSHOT argument from IT
    • 18b4078 [SUREFIRE-1614] JUnit Runner that writes to System.out corrupts Surefire's ST...
    • af417b8 prepare for next development iteration
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • deps: bump maven-project-info-reports-plugin from 3.0.0 to 3.1.2

    deps: bump maven-project-info-reports-plugin from 3.0.0 to 3.1.2

    Bumps maven-project-info-reports-plugin from 3.0.0 to 3.1.2.

    Commits
    • f5de0d1 [maven-release-plugin] prepare release maven-project-info-reports-plugin-3.1.2
    • 98db5e5 [MPIR-401] Mailing list subscribe and unsubscribe links
    • 2e187d0 The Apache Software License is moved permanently to https://www.apache.org/li...
    • 2d81a97 [MPIR-391] Continuous Integration support for GitHub Actions
    • 3233e05 Code refactor to easier add new CI System
    • bb7569d Bump junit from 4.13 to 4.13.1
    • b887a27 Merge pull request #26 from michaelboyles/master
    • 77cb021 [MPIR-395] - Add TeamCity as a possibility for ciManagement entry
    • 0013644 explicit maven-shared-utils dependency (#24)
    • da1a93b Merge pull request #25 from apache/valid
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • deps: bump maven-resources-plugin from 3.0.2 to 3.2.0

    deps: bump maven-resources-plugin from 3.0.2 to 3.2.0

    Bumps maven-resources-plugin from 3.0.2 to 3.2.0.

    Commits
    • 61096d9 [maven-release-plugin] prepare release maven-resources-plugin-3.2.0
    • fa28224 Rollback to make a new release attempt.
    • 22120e9 [maven-release-plugin] prepare for next development iteration
    • 6bf362e [maven-release-plugin] prepare release maven-resources-plugin-3.2.0
    • 0f26239 [MRESOURCES-263] Update to maven-filtering 3.2.0
    • 6624e45 future proof method that is marked for incompatible change (#6)
    • b974fb2 try with resources (#5)
    • b42cd5a [MRESOURCES-232] Resource copy filtering should use different encoding for so...
    • 4b46898 [MRESOURCES-257] property from list element in pom model
    • a2fb8d4 Bump version to a new minor version, since we have added functionality.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • deps: bump nexus-staging-maven-plugin from 1.6.7 to 1.6.8

    deps: bump nexus-staging-maven-plugin from 1.6.7 to 1.6.8

    Bumps nexus-staging-maven-plugin from 1.6.7 to 1.6.8.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • deps: bump maven-javadoc-plugin from 2.10.4 to 3.3.0

    deps: bump maven-javadoc-plugin from 2.10.4 to 3.3.0

    Bumps maven-javadoc-plugin from 2.10.4 to 3.3.0.

    Commits
    • aa3e12c [maven-release-plugin] prepare release maven-javadoc-plugin-3.3.0
    • 55982df [MJAVADOC-584] excludePackageNames is not working as documented anymore
    • e9729ce [MJAVADOC-453] Using Alternate Doclet documentation example snippet is out of...
    • 9f98af7 [MJAVADOC-592] detectJavaApiLink should also respect maven.compiler.source pr...
    • 1028afc [MJAVADOC-592] Prepare integration tests
    • 1963ee8 Bump actions/checkout from 2 to 2.3.4
    • f27c99d [MJAVADOC-590] Setting nooverview option always causes a build failure
    • d5b80c0 Revert "(doc) enable streamLogsOnFailure"
    • 3926bd4 [MJAVADOC-619] Maven Javadoc bottom claims copyright for future years
    • 15a02d6 (doc) enable streamLogsOnFailure
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • deps: bump maven-jar-plugin from 3.0.2 to 3.2.0

    deps: bump maven-jar-plugin from 3.0.2 to 3.2.0

    Bumps maven-jar-plugin from 3.0.2 to 3.2.0.

    Commits
    • d91fff8 [maven-release-plugin] prepare release maven-jar-plugin-3.2.0
    • 64c5e65 MJAR-263 make output jars reproducible like m-source-p
    • 80f58a8 [maven-release-plugin] prepare for next development iteration
    • 783d893 [maven-release-plugin] prepare release maven-jar-plugin-3.1.2
    • 8164b8a [MJAR-259] - Archiving to jar is very slow
    • 78dbb29 [MJAR-238] Allow setting of module main class
    • 13d5a9e removing MockArtifact, not used
    • 660cb85 (doc) fix broken link
    • bc84ec0 [maven-release-plugin] prepare for next development iteration
    • e072165 [maven-release-plugin] prepare release maven-jar-plugin-3.1.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • deps: bump maven-compiler-plugin from 3.8.0 to 3.8.1

    deps: bump maven-compiler-plugin from 3.8.0 to 3.8.1

    Bumps maven-compiler-plugin from 3.8.0 to 3.8.1.

    Commits
    • 1b206fe [maven-release-plugin] prepare release maven-compiler-plugin-3.8.1
    • d94a573 Revert "[maven-release-plugin] prepare release maven-compiler-plugin-3.8.1"
    • 0747073 [maven-release-plugin] prepare release maven-compiler-plugin-3.8.1
    • 4f37195 Revert "[maven-release-plugin] prepare release maven-compiler-plugin-3.8.1"
    • 114487b Revert "[maven-release-plugin] prepare for next development iteration"
    • 6fd3a46 [MCOMPILER-379] - Fatal error compiling: basedir ... arget/generated-sources/...
    • a5c6bc5 (doc) Fixed broken links to scm, issue tracker, and mailing list page. (#15)
    • 6c576ab [maven-release-plugin] prepare for next development iteration
    • e09eb57 [maven-release-plugin] prepare release maven-compiler-plugin-3.8.1
    • 3d6b27c [MCOMPILER 366] - Warning about automodules should provide the list of offend...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • deps: bump maven-javadoc-plugin from 3.3.0 to 3.3.1

    deps: bump maven-javadoc-plugin from 3.3.0 to 3.3.1

    Bumps maven-javadoc-plugin from 3.3.0 to 3.3.1.

    Commits
    • 2d22cca [maven-release-plugin] prepare release maven-javadoc-plugin-3.3.1
    • 7b7813e [MJAVADOC-450] Artifacts with a classifier are ignored when looking for resou...
    • 0d0e0cc [MJAVADOC-618] Goal javadoc:aggregate fails with submodules packaged as war
    • a2acaa2 [MJAVADOC-137] transform verify script from bsh to groovy
    • 16ca119 Clean up slf4j-simple
    • 87dbfb2 [MJAVADOC-677] Using "requires static transitive" makes javadoc goal fail
    • d770460 [MJAVADOC-680] JDK 16+: Error fetching link: ...\target\javadoc-bundle-option...
    • 292ebb7 Bump slf4j-simple from 1.7.30 to 1.7.32
    • fe6d738 Bump mockito-core from 3.9.0 to 3.12.0
    • d2dd532 [MJAVADOC-679] "Unable to compute stale date" in a directory with accent char...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
Releases(0.1.2)
Owner
Kirill
Kirill
📊It includes all the work done during the Java-React Bootcamp.

?? Java + React Bootcamp ?? Part 1 - Java Part 2 - React ?? Lecture Class: Youtube ?? Instructor: Engin Demirog ?? Course Materials: Kodlama.io Bootca

İlknur Sucaklı 21 Sep 9, 2021
Java Design Patterns code examples

Java Design Patterns code examples Behavioral In software engineering, behavioral design patterns are design patterns that identify common communicati

Gaboso™ 3 Aug 13, 2021
Shiro基于SpringBoot +JWT搭建简单的restful服务

Shiro + JWT + Spring Boot Restful 简易教程 GitHub 项目地址:https://github.com/Smith-Cruise/Spring-Boot-Shiro 。 序言 我也是半路出家的人,如果大家有什么好的意见或批评,请务必 issue 下。 如果想要直接

Smith Cruise 1.5k Sep 10, 2021
Backend For Human Resource Management System

?? Presentation This is a hrms project. At the backend of this project I used Java(Spring Boot) and I used PostgreSQL as database management. At the f

Salih Bora Öztürk 14 Jul 1, 2021
Mars - Object Relational Mapping Framework for MongoDB (MongoDB ORM)

Mars Object Relational Mapping Framework for MongoDB 致自己 造自己的轮子,让别人去说 ; What is Mars Mars is a unified driver platform product developed by Shanghai J

null 32 Jul 18, 2021
shiro-cve-2020-17523 漏洞的两种绕过姿势分析(带漏洞环境)

Apache Shiro 两种姿势绕过认证分析(CVE-2020-17523) 0x01 漏洞描述 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和

null 76 Aug 18, 2021
All I know about Spring as a Spring Boot app

All about Spring This repository contains all the knowledge I have and all the things I can do with Spring You can download v1.0.0 java-doc here In th

Soroush Mehrad 8 Aug 14, 2021
mall4cloud微服务商城,基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的B2B2C微服务商城系统,采用主流的互联网技术架构、全新的UI设计 B2B2C微服务商城|小程序微服务商城|

README 前言 本商城是基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的微服务B2B2C电商商城系统,采用主流的互联网技术架构、全新的UI设计、支持集群部署、服务注册和发现以及拥有完整的订单流程等

null 165 Sep 12, 2021
CVE-2021-2109 && Weblogic Server RCE via JNDI

Description Vulnerability in the Oracle WebLogic Server product of Oracle Fusion Middleware (component: Console). Supported versions that are affected

Al1ex 20 May 21, 2021
Official Elasticsearch Java Client

Elasticsearch Java Client The official Java client for Elasticsearch. Note: this project is still a work in progress. This client is meant to replace

elastic 40 Sep 7, 2021
Rewrite of the dataconverter system for performance.

DataConverter This mod completely rewrites the dataconverter system for Minecraft. Please note that this fabric mod is not to be used. It is published

null 23 Sep 1, 2021
自研简易版spring框架

自研简易版SpringIOC&AOP 知识点 设计模式 反射机制 熟悉注解 设计模式 简单工厂模式 优点: 可以对创建的对象进行“加工”,对客户端隐藏相关细节 缺点: 违反开闭原则(对修改关闭,对扩展开放),新增|删除子类都需要去修改工厂类的代码 创建对象的逻辑复杂|创建对象过多而造成代码臃肿 工厂

null 3 May 23, 2021
An annotation-based command framework for Bukkit

Blade Blade is an easy-to-use command framework based on annotations. It currently only supports Bukkit, but it can be easily extended to more platfor

null 20 Aug 29, 2021
Dynamic Configuration Capability for SpringBoot Application

Spring Boot Dynamic Config Hot-reload your SpringBoot configurations, with just a '@DynamicConfig' annotation, the simplest solution, ever. English 简体

Joey Yang 28 Sep 14, 2021
Java 项目快速开发脚手架。核心技术采用 SpringBoot、MyBatis、Thymeleaf、Bootstrap。

前言 闲来无事,整一个 Java 项目快速开发脚手架。 正文 一、简介 Chewing 是一个简单的 Java 项目快速开发脚手架。既适合需要开发小型项目的小伙伴使用,也适合刚入门的新手用来学习一些常用的技术。 二、源码 Github:https://github.com/jingqueyimu/c

null 24 Jul 11, 2021
A simple implementation of the Dubbo protocol.

Codec-dubbo Codec-dubbo is a binary codec framework for dubbo protocol Features Fully compatible with Dubbo protocol Completely rewritten based on Net

ESA Stack 10 Sep 15, 2021
A Graphics2D implementation targeting Skija as a backend.

SkijaGraphics2D Version 1.0.2, 4 August 2021 Overview SkijaGraphics2D is an implementation of Java2D's Graphics2D API that targets Skia via the Skija

David Gilbert 21 Sep 3, 2021
:fire: Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding. :rocket:

Everyone can develop projects independently, quickly and efficiently! What is spring-boot-plus? A easy-to-use, high-speed, high-efficient, feature-ric

geekidea 2.2k Sep 8, 2021
Guns基于SpringBoot 2,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl!Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架!

Guns基于Spring Boot2,致力于做更简洁的后台管理系统。包含系统管理,代码生成,多数据库适配,SSO单点登录,工作流,短信,邮件发送,OAuth2登录,任务调度,持续集成,docker部署等功。支持Spring Cloud Alibaba微服务。社区活跃,版本迭代快,加群免费技术支持。

冯硕楠 3.3k Sep 12, 2021