Skip to content

Commit

Permalink
test mvn (#111)
Browse files Browse the repository at this point in the history
* test mvn

* test mvn

* remove factory

* remove factory

* refactor api

* test
  • Loading branch information
shihuili1218 authored Aug 16, 2024
1 parent 994c408 commit a6c9d67
Show file tree
Hide file tree
Showing 19 changed files with 160 additions and 138 deletions.
22 changes: 13 additions & 9 deletions .github/workflows/maven-publish.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Maven Central Repo Deployment
name: Maven Publish

on:
release:
Expand All @@ -11,15 +11,19 @@ jobs:
- name: Checkout Git Repo
uses: actions/checkout@v2

- name: Install Java and Maven
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.GPG_SECRET }} # Value of the GPG private key to import
gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase

- name: Release Maven package
uses: samuelmeuli/action-maven-publish@v1
with:
gpg_private_key: ${{ secrets.GPG_SECRET }}
gpg_passphrase: ${{ secrets.GPG_PASSWORD }}
nexus_username: ${{ secrets.OSSRH_USER }}
nexus_password: ${{ secrets.OSSRH_PASSWORD }}
- name: Build with Maven
run: mvn clean deploy --batch-mode -DskipTests -Pdeploy -B -U -e
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USER }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSWORD }}
68 changes: 0 additions & 68 deletions klein-core/src/main/java/com/ofcoder/klein/KleinFactory.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class CacheMessage implements Serializable {
public static final long TTL_PERPETUITY = -1;

private byte op;
private String cacheName;
private String key;
private Serializable data;
private long expire = TTL_PERPETUITY;
Expand All @@ -46,6 +47,14 @@ public void setOp(final byte op) {
this.op = op;
}

public String getCacheName() {
return cacheName;
}

public void setCacheName(final String cacheName) {
this.cacheName = cacheName;
}

public String getKey() {
return key;
}
Expand Down Expand Up @@ -74,6 +83,7 @@ public void setExpire(final long expire) {
public String toString() {
return "Message{"
+ "op=" + op
+ ", cacheName=" + cacheName
+ ", key=" + key
+ ", data=" + data
+ ", ttl=" + expire
Expand Down
29 changes: 20 additions & 9 deletions klein-core/src/main/java/com/ofcoder/klein/core/cache/CacheSM.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package com.ofcoder.klein.core.cache;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
Expand All @@ -33,23 +34,28 @@ public class CacheSM extends AbstractSM {
public static final String GROUP = "cache";
private static final Logger LOG = LoggerFactory.getLogger(CacheSM.class);

private final CacheContainer container;
private final Map<String, CacheContainer> containers = new HashMap<>();
private final CacheProp cacheProp;
private final String temp;

public CacheSM(final CacheProp cacheProp) {
this.cacheProp = cacheProp;
String temp = this.cacheProp.getDataPath() + File.separator + cacheProp.getId() + File.separator + "temp";
this.temp = this.cacheProp.getDataPath() + File.separator + cacheProp.getId() + File.separator + "temp";
File file = new File(temp);
if (!file.exists()) {
boolean mkdirs = file.mkdirs();
// do nothing for mkdir result.
}
}

private CacheContainer getCacheContainer(final String cacheName) {
if (cacheProp.getLru()) {
this.container = new LruCacheContainer(cacheProp.getMemorySize(),
temp + File.separator + "klein-cache.mdb" + "." + System.currentTimeMillis());
containers.putIfAbsent(cacheName, new LruCacheContainer(cacheProp.getMemorySize(),
temp + File.separator + "klein-cache.mdb" + "." + System.currentTimeMillis()));
} else {
this.container = new MemoryCacheContainer();
containers.putIfAbsent(cacheName, new MemoryCacheContainer());
}
return containers.get(cacheName);
}

@Override
Expand All @@ -59,6 +65,7 @@ public Object apply(final Object data) {
return null;
}
CacheMessage message = (CacheMessage) data;
CacheContainer container = getCacheContainer(message.getCacheName());
switch (message.getOp()) {
case CacheMessage.PUT:
container.put(message.getKey(), message.getData(), message.getExpire());
Expand All @@ -85,20 +92,24 @@ public Object apply(final Object data) {

@Override
public Object makeImage() {
return container.makeImage();
Map<String, CacheSnap> result = new HashMap<>();
containers.forEach((cacheName, container) -> result.put(cacheName, container.makeImage()));
return result;
}

@SuppressWarnings("unchecked")
@Override
public void loadImage(final Object snap) {
if (!(snap instanceof Map)) {
return;
}
container.clear();
container.loadImage((CacheSnap) snap);
Map<String, CacheSnap> snapCaches = (Map<String, CacheSnap>) snap;
containers.clear();
snapCaches.forEach((cacheName, cacheSnap) -> getCacheContainer(cacheName).loadImage(cacheSnap));
}

@Override
public void close() {
container.close();
containers.values().forEach(CacheContainer::close);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.ofcoder.klein.common.exception.KleinException;
import com.ofcoder.klein.common.util.TrueTime;
import com.ofcoder.klein.consensus.facade.Result;
import com.ofcoder.klein.consensus.facade.sm.SMRegistry;
import com.ofcoder.klein.core.GroupWrapper;

import java.io.Serializable;
Expand All @@ -31,14 +32,23 @@
*/
public class KleinCacheImpl implements KleinCache {
protected GroupWrapper consensus;

public KleinCacheImpl(final String group) {
this.consensus = new GroupWrapper(group);
private final String cacheName;

/**
* Return a new cache container.
*
* @param cacheName cacheName
*/
public KleinCacheImpl(final String cacheName) {
this.cacheName = cacheName;
SMRegistry.register(CacheSM.GROUP, new CacheSM(CacheProp.loadIfPresent()));
this.consensus = new GroupWrapper(CacheSM.GROUP);
}

@Override
public boolean exist(final String key) {
CacheMessage message = new CacheMessage();
message.setCacheName(cacheName);
message.setKey(key);
message.setOp(CacheMessage.EXIST);
Result<Boolean> result = consensus.read(message);
Expand All @@ -52,6 +62,7 @@ public boolean exist(final String key) {
@Override
public <D extends Serializable> boolean put(final String key, final D data) {
CacheMessage message = new CacheMessage();
message.setCacheName(cacheName);
message.setData(data);
message.setKey(key);
message.setOp(CacheMessage.PUT);
Expand All @@ -62,6 +73,7 @@ public <D extends Serializable> boolean put(final String key, final D data) {
@Override
public <D extends Serializable> boolean put(final String key, final D data, final boolean apply) {
CacheMessage message = new CacheMessage();
message.setCacheName(cacheName);
message.setData(data);
message.setKey(key);
message.setOp(CacheMessage.PUT);
Expand All @@ -72,6 +84,7 @@ public <D extends Serializable> boolean put(final String key, final D data, fina
@Override
public <D extends Serializable> boolean put(final String key, final D data, final Long ttl, final TimeUnit unit) {
CacheMessage message = new CacheMessage();
message.setCacheName(cacheName);
message.setData(data);
message.setKey(key);
message.setOp(CacheMessage.PUT);
Expand All @@ -84,6 +97,7 @@ public <D extends Serializable> boolean put(final String key, final D data, fina
@Override
public <D extends Serializable> D putIfPresent(final String key, final D data) {
CacheMessage message = new CacheMessage();
message.setCacheName(cacheName);
message.setData(data);
message.setKey(key);
message.setOp(CacheMessage.PUTIFPRESENT);
Expand All @@ -97,6 +111,7 @@ public <D extends Serializable> D putIfPresent(final String key, final D data) {
@Override
public <D extends Serializable> D putIfPresent(final String key, final D data, final Long ttl, final TimeUnit unit) {
CacheMessage message = new CacheMessage();
message.setCacheName(cacheName);
message.setData(data);
message.setKey(key);
message.setOp(CacheMessage.PUTIFPRESENT);
Expand All @@ -112,6 +127,7 @@ public <D extends Serializable> D putIfPresent(final String key, final D data, f
@Override
public <D extends Serializable> D get(final String key) {
CacheMessage message = new CacheMessage();
message.setCacheName(cacheName);
message.setKey(key);
message.setOp(CacheMessage.GET);
Result<D> result = consensus.read(message);
Expand All @@ -125,6 +141,7 @@ public <D extends Serializable> D get(final String key) {
@Override
public void invalidate(final String key) {
CacheMessage message = new CacheMessage();
message.setCacheName(cacheName);
message.setKey(key);
message.setOp(CacheMessage.INVALIDATE);
Result result = consensus.propose(message);
Expand All @@ -133,6 +150,7 @@ public void invalidate(final String key) {
@Override
public void invalidateAll() {
CacheMessage message = new CacheMessage();
message.setCacheName(cacheName);
message.setOp(CacheMessage.INVALIDATEALL);
Result result = consensus.propose(message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import com.ofcoder.klein.common.util.TrueTime;
import com.ofcoder.klein.consensus.facade.Result;
import com.ofcoder.klein.consensus.facade.sm.SMRegistry;
import com.ofcoder.klein.core.GroupWrapper;

/**
Expand All @@ -29,11 +30,17 @@
*/
public class KleinLockImpl implements KleinLock {
protected GroupWrapper consensus;
private String key;
private final String key;

public KleinLockImpl(final String group) {
this.key = group;
this.consensus = new GroupWrapper(group);
/**
* Return a new lock instance.
*
* @param key lock name
*/
public KleinLockImpl(final String key) {
this.key = key;
SMRegistry.register(LockSM.GROUP, new LockSM());
this.consensus = new GroupWrapper(LockSM.GROUP);
}

@Override
Expand Down
Loading

0 comments on commit a6c9d67

Please sign in to comment.