├── .github
└── workflows
│ └── maven.yml
├── .gitignore
├── LICENSE
├── README.md
├── doc
├── build.sh
├── header
│ ├── java.txt
│ ├── shell.txt
│ └── xml.txt
└── todo.md
├── pom.xml
├── release.md
├── security.md
└── src
├── main
└── java
│ └── com
│ └── geektcp
│ └── common
│ └── mosheh
│ ├── buffer
│ └── BufferBuilder.java
│ ├── cache
│ ├── AbstractCache.java
│ ├── AbstractCacheTree.java
│ ├── Cache.java
│ ├── Store.java
│ ├── common
│ │ ├── LruCache.java
│ │ ├── SimpleCache.java
│ │ └── WeakCache.java
│ └── tiny
│ │ ├── CacheBuilder.java
│ │ ├── listener
│ │ ├── TinyListener.java
│ │ ├── TinyReferenceEntry.java
│ │ ├── TinyRemovalCause.java
│ │ ├── TinyRemovalNotification.java
│ │ └── ValueReference.java
│ │ ├── loader
│ │ ├── CacheLoader.java
│ │ └── TinyLoader.java
│ │ ├── loading
│ │ ├── InvalidateCache.java
│ │ ├── LoadingCache.java
│ │ └── implement
│ │ │ └── TinyLoadingCache.java
│ │ ├── local
│ │ └── TinyCache.java
│ │ └── storage
│ │ ├── AbstractCacheFactory.java
│ │ ├── CacheFactory.java
│ │ ├── cache
│ │ ├── CacheTree.java
│ │ └── TreeCacheFactory.java
│ │ └── key
│ │ ├── AbstractKey.java
│ │ ├── LocalKey.java
│ │ └── NodeKey.java
│ ├── checker
│ └── Preconditions.java
│ ├── collection
│ ├── ArrayStack.java
│ ├── ListQueue.java
│ ├── ListStack.java
│ ├── Lists.java
│ ├── ThyQueue.java
│ └── ThyStack.java
│ ├── concurrent
│ ├── cas
│ │ └── UnSafeBuilder.java
│ ├── lock
│ │ ├── Lock.java
│ │ ├── LockBuilder.java
│ │ ├── SynchronizedLock.java
│ │ └── ThyLock.java
│ ├── single
│ │ └── ThreadBuilder.java
│ └── thread
│ │ ├── able
│ │ ├── ThyCallable.java
│ │ └── ThyRunnable.java
│ │ ├── executor
│ │ ├── ThyExecutor.java
│ │ ├── TinyExecutorBuilder.java
│ │ └── service
│ │ │ ├── TinyCompletionService.java
│ │ │ ├── TinyExecutor.java
│ │ │ ├── TinyExecutorService.java
│ │ │ ├── TinyRejectedHandler.java
│ │ │ ├── TinyScheduledService.java
│ │ │ └── impl
│ │ │ ├── TinyAbstractService.java
│ │ │ ├── delegated
│ │ │ ├── TinyDelegatedExecutor.java
│ │ │ ├── TinyFinalizeExecutor.java
│ │ │ └── TinyScheduledExecutor.java
│ │ │ └── extend
│ │ │ ├── TinyDelayedWorkQueue.java
│ │ │ ├── TinyScheduledThreadPoolExecutor.java
│ │ │ └── TinyThreadPoolExecutor.java
│ │ └── factory
│ │ ├── ThyThread.java
│ │ └── ThyThreadFactory.java
│ ├── constant
│ ├── CommonStatus.java
│ └── Status.java
│ ├── exception
│ ├── BaseException.java
│ ├── ExecutorException.java
│ ├── MoshehException.java
│ └── StatusException.java
│ ├── generator
│ └── IdGenerator.java
│ ├── parser
│ ├── Expression.java
│ ├── GqlParser.java
│ ├── Parser.java
│ ├── SearchParser.java
│ ├── SqlParser.java
│ └── SyntaxParser.java
│ ├── socket
│ ├── buffer
│ │ └── DataOutputBuffer.java
│ ├── builder
│ │ ├── MoshehClientBuilder.java
│ │ └── MoshehServerBuilder.java
│ ├── comparator
│ │ ├── BinaryComparable.java
│ │ ├── RawComparator.java
│ │ ├── Writable.java
│ │ ├── WritableComparable.java
│ │ └── WritableComparator.java
│ ├── constant
│ │ └── Status.java
│ ├── server
│ │ ├── MoshehServer.java
│ │ ├── call
│ │ │ └── MoshehCall.java
│ │ ├── config
│ │ │ └── MoshehConfig.java
│ │ ├── connection
│ │ │ └── MoshehConnection.java
│ │ ├── listener
│ │ │ └── MoshehListener.java
│ │ ├── responder
│ │ │ └── MoshehResponder.java
│ │ └── worker
│ │ │ └── MoshehWorker.java
│ ├── text
│ │ ├── ConnectionBody.java
│ │ ├── ConnectionHeader.java
│ │ └── Text.java
│ └── util
│ │ ├── StringUtils.java
│ │ └── WritableUtils.java
│ ├── sort
│ ├── Bubble.java
│ ├── Heap.java
│ ├── HeapSort.java
│ ├── Insertion.java
│ ├── MergeSort.java
│ ├── MergeSortDown.java
│ ├── MergeSortUp.java
│ ├── QuickSort.java
│ ├── Selection.java
│ ├── Shell.java
│ └── Sort.java
│ ├── system
│ ├── Sys.java
│ ├── ThyClass.java
│ ├── ThyCommand.java
│ ├── ThyEncrypt.java
│ ├── ThyEnv.java
│ ├── ThyFileReader.java
│ ├── ThyFileSystem.java
│ ├── ThyHost.java
│ ├── ThyProperties.java
│ ├── ThyResource.java
│ ├── ThyRuntime.java
│ ├── ThyStream.java
│ └── ThyString.java
│ ├── tree
│ ├── AVLTree.java
│ ├── AbstractTree.java
│ ├── BaseBinaryTree.java
│ ├── BinarySearchTree.java
│ ├── Btree.java
│ ├── ListNodeTree.java
│ ├── RedBlackTree.java
│ ├── node
│ │ ├── AbstractBinaryNode.java
│ │ ├── AbstractListNode.java
│ │ └── Node.java
│ └── st
│ │ ├── BalancedSearchTree.java
│ │ ├── BinarySearchOrderedST.java
│ │ ├── LinearProbingHashST.java
│ │ ├── ListUnorderedST.java
│ │ ├── OrderedST.java
│ │ ├── RedBlackBalancedSearchTree.java
│ │ └── UnorderedST.java
│ └── util
│ ├── Base64Utils.java
│ ├── BeanMapper.java
│ ├── CollectionUtils.java
│ ├── DateUtils.java
│ ├── DownUtils.java
│ ├── GetterUtils.java
│ ├── HttpUtils.java
│ ├── JsonUtils.java
│ ├── ObjectUtils.java
│ ├── SeparatorUtils.java
│ ├── Sortable.java
│ └── SslUtils.java
└── test
└── java
└── com
└── geektcp
└── common
└── mosheh
├── cache
├── CacheBuilderTest.java
└── LruCacheTest.java
├── concurrent
└── thread
│ ├── ScheduleTest.java
│ └── executor
│ └── TinyExecutorServiceTest.java
├── generator
└── GeneratorTest.java
├── socket
├── SocketServerBuilderTest.java
├── nio
│ ├── NIOClient.java
│ ├── NIOServer.java
│ └── NIOServerSimple.java
└── simple
│ ├── ClientTest.java
│ └── ServerTest.java
├── system
├── SysTest.java
├── ThyCommandTest.java
├── ThyEncryptTest.java
├── ThyFileReaderTest.java
├── ThyHostTest.java
├── ThyResourceTest.java
├── ThyStreamTest.java
└── ThyStringTest.java
├── tree
├── ListNodeTreeTest.java
└── UserDirVo.java
└── util
├── Base64UtilsTest.java
├── CollectionUtilsTest.java
├── DownUtilsTest.java
├── FileUtilsTest.java
├── ThyEncryptTest.java
└── UserSitePo.java
/.github/workflows/maven.yml:
--------------------------------------------------------------------------------
1 | # This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
3 |
4 | # This workflow uses actions that are not certified by GitHub.
5 | # They are provided by a third-party and are governed by
6 | # separate terms of service, privacy policy, and support
7 | # documentation.
8 |
9 | name: Java CI with Maven
10 |
11 | on:
12 | push:
13 | branches: [ "main" ]
14 | pull_request:
15 | branches: [ "main" ]
16 |
17 | jobs:
18 | build:
19 |
20 | runs-on: ubuntu-latest
21 |
22 | steps:
23 | - uses: actions/checkout@v3
24 | - name: Set up JDK 8
25 | uses: actions/setup-java@v3
26 | with:
27 | java-version: '8'
28 | distribution: 'temurin'
29 | cache: maven
30 | - name: Build with Maven
31 | run: mvn clean compile
32 |
33 | # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
34 | #- name: Update dependency graph
35 | # uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
36 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 |
4 | ### STS ###
5 | .apt_generated
6 | .classpath
7 | .factorypath
8 | .project
9 | .settings
10 | .springBeans
11 | .sts4-cache
12 |
13 | ### IntelliJ IDEA ###
14 | /*/idea
15 | *.iws
16 | *.iml
17 | *.ipr
18 |
19 | ### NetBeans ###
20 | /nbproject/private/
21 | /build/
22 | /nbbuild/
23 | /dist/
24 | /nbdist/
25 | /.nb-gradle/
26 |
27 | ### maven version backup
28 | *.versionsBackup
29 |
30 | ### log4j2
31 | logs
32 | *.log
33 |
34 | ### pom
35 | dependency-reduced-pom.xml
36 |
37 | # dependencies
38 | node_modules
39 | /.pnp
40 | .pnp.js
41 | /blog-web/build
42 |
43 | .idea
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | mosheh
2 | ==========
3 | [](https://github.com/geektcp/mosheh/actions)
4 | [](https://snyk.io/test/github/geektcp/mosheh)
5 | [](https://mvnrepository.com/artifact/com.geektcp.common/mosheh)
6 | [](https://bestpractices.coreinfrastructure.org/projects/7038)
7 | [](https://javadoc.io/doc/com.geektcp.common/mosheh/latest/index.html)
8 |
9 | ### describe
10 | ```
11 | mosheh is a common library for Java, which release in maven repository:
12 | https://mvnrepository.com/artifact/com.geektcp.common/mosheh
13 |
14 | this is a tiny project. we can use it to develop big project.
15 |
16 | Furthermore, mosheh offers a convenient API for build many cache, collection, executor.
17 | ```
18 |
19 | ### maven dependency
20 | ```
21 |
22 |
23 | com.geektcp.common
24 | mosheh
25 | 1.0.3
26 |
27 | ```
28 |
29 |
30 | ### example
31 | ```java
32 | package xxx;
33 |
34 | /**
35 | * @author Geektcp 2021/9/23 14:30
36 | */
37 | @Slf4j
38 | @Service
39 | public class RoomInfoServerImpl extends JpaBase implements RoomInfoServer {
40 |
41 | private LoadingCache