增加Nonnull、Nullable注解

This commit is contained in:
redkale
2023-03-15 09:36:40 +08:00
parent 1edd256028
commit 1428cd8f10
7 changed files with 91 additions and 25 deletions

View File

@@ -0,0 +1,20 @@
/*
*
*/
package org.redkale.annotation;
import java.lang.annotation.*;
/**
*
* 详情见: https://redkale.org
*
* @author zhangjx
*
* @since 2.8.0
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Nonnull {
}

View File

@@ -0,0 +1,20 @@
/*
*
*/
package org.redkale.annotation;
import java.lang.annotation.*;
/**
*
* 详情见: https://redkale.org
*
* @author zhangjx
*
* @since 2.8.0
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Nullable {
}

View File

@@ -10,8 +10,8 @@ import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME; import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.*; import java.lang.annotation.*;
import java.lang.reflect.*; import java.lang.reflect.*;
import java.net.InetSocketAddress; import java.net.*;
import java.nio.channels.CompletionHandler; import java.nio.channels.*;
import java.util.*; import java.util.*;
import org.redkale.annotation.*; import org.redkale.annotation.*;
import org.redkale.annotation.ResourceType; import org.redkale.annotation.ResourceType;
@@ -19,10 +19,10 @@ import static org.redkale.asm.ClassWriter.COMPUTE_FRAMES;
import org.redkale.asm.*; import org.redkale.asm.*;
import static org.redkale.asm.Opcodes.*; import static org.redkale.asm.Opcodes.*;
import org.redkale.asm.Type; import org.redkale.asm.Type;
import org.redkale.convert.Convert; import org.redkale.convert.*;
import org.redkale.mq.*; import org.redkale.mq.*;
import org.redkale.net.TransportFactory; import org.redkale.net.*;
import org.redkale.net.http.WebSocketNode; import org.redkale.net.http.*;
import org.redkale.net.sncp.SncpServiceInfo.SncpServiceAction; import org.redkale.net.sncp.SncpServiceInfo.SncpServiceAction;
import org.redkale.service.*; import org.redkale.service.*;
import org.redkale.util.*; import org.redkale.util.*;
@@ -726,21 +726,23 @@ public abstract class Sncp {
* *
* private AnyValue _redkale_conf; * private AnyValue _redkale_conf;
* *
* private OldSncpClient _redkale_client; * private SncpClient _redkale_client;
*
* private SncpServiceInfo _redkale_sncpInfo;
* *
* @Override * @Override
* public void createSomeThing(TestBean bean){ * public void createSomeThing(TestBean bean){
* _redkale_client.remote(0, bean); * _redkale_client.remote(_redkale_sncpInfo, 0, bean);
* } * }
* *
* @Override * @Override
* public String findSomeThing(){ * public String findSomeThing(){
* return _redkale_client.remote(1); * return _redkale_client.remote(_redkale_sncpInfo, 1);
* } * }
* *
* @Override * @Override
* public String updateSomeThing(String id){ * public String updateSomeThing(String id){
* return _redkale_client.remote(2, id); * return _redkale_client.remote(_redkale_sncpInfo, 2, id);
* } * }
* } * }
* </pre></blockquote> * </pre></blockquote>

View File

@@ -5,23 +5,23 @@
*/ */
package org.redkale.source; package org.redkale.source;
import java.io.Serializable; import java.io.*;
import java.math.*; import java.math.*;
import java.sql.SQLException; import java.sql.*;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.concurrent.atomic.*; import java.util.concurrent.atomic.*;
import java.util.function.*; import java.util.function.*;
import java.util.logging.*; import java.util.logging.*;
import java.util.stream.Stream; import java.util.stream.*;
import org.redkale.annotation.AutoLoad; import org.redkale.annotation.AutoLoad;
import org.redkale.annotation.*; import org.redkale.annotation.*;
import org.redkale.annotation.ResourceListener; import org.redkale.annotation.ResourceListener;
import org.redkale.annotation.ResourceType; import org.redkale.annotation.ResourceType;
import static org.redkale.boot.Application.*; import static org.redkale.boot.Application.*;
import org.redkale.net.AsyncGroup; import org.redkale.net.*;
import org.redkale.persistence.Table; import org.redkale.persistence.*;
import org.redkale.service.Local; import org.redkale.service.*;
import org.redkale.source.EntityInfo.EntityColumn; import org.redkale.source.EntityInfo.EntityColumn;
import org.redkale.util.*; import org.redkale.util.*;
@@ -2528,7 +2528,18 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource implement
//----------------------------- find ----------------------------- //----------------------------- find -----------------------------
@Override @Override
public <T> T[] finds(Class<T> clazz, final SelectColumn selects, Serializable... pks) { public <T> T[] finds(Class<T> clazz, final SelectColumn selects, Serializable... pks) {
return findsAsync(clazz, selects, pks).join(); final EntityInfo<T> info = loadEntityInfo(clazz);
if (pks == null || pks.length == 0) {
return info.getArrayer().apply(0);
}
final EntityCache<T> cache = info.getCache();
if (cache != null) {
T[] rs = selects == null ? cache.finds(pks) : cache.finds(selects, pks);
if (cache.isFullLoaded() || rs != null) {
return rs;
}
}
return findsDBAsync(info, selects, pks).join();
} }
@Override @Override

View File

@@ -5,11 +5,11 @@
*/ */
package org.redkale.source; package org.redkale.source;
import java.io.Serializable; import java.io.*;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.concurrent.atomic.*; import java.util.concurrent.atomic.*;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.*;
import java.util.function.*; import java.util.function.*;
import java.util.logging.*; import java.util.logging.*;
import java.util.stream.*; import java.util.stream.*;
@@ -128,6 +128,13 @@ public final class EntityCache<T> {
}); });
} }
public void fullLoad() {
CompletableFuture<List<T>> future = fullLoadAsync();
if (future != null) {
future.join();
}
}
public CompletableFuture<List<T>> fullLoadAsync() { public CompletableFuture<List<T>> fullLoadAsync() {
if (this.fullloaded) { if (this.fullloaded) {
return this.loadFuture; return this.loadFuture;
@@ -213,6 +220,10 @@ public final class EntityCache<T> {
return fullloaded; return fullloaded;
} }
public int size() {
return map.size();
}
public T find(Serializable pk) { public T find(Serializable pk) {
if (pk == null) { if (pk == null) {
return null; return null;

View File

@@ -5,11 +5,11 @@
*/ */
package org.redkale.source; package org.redkale.source;
import java.io.Serializable; import java.io.*;
import java.lang.reflect.*; import java.lang.reflect.*;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.*;
import java.util.function.*; import java.util.function.*;
import java.util.logging.*; import java.util.logging.*;
import org.redkale.annotation.Comment; import org.redkale.annotation.Comment;
@@ -242,7 +242,7 @@ public final class EntityInfo<T> {
if (fullloader == null) { if (fullloader == null) {
throw new IllegalArgumentException(clazz.getName() + " auto loader is illegal"); throw new IllegalArgumentException(clazz.getName() + " auto loader is illegal");
} }
rs.cache.fullLoadAsync(); rs.cache.fullLoad();
} }
return rs; return rs;
} finally { } finally {

View File

@@ -5,9 +5,10 @@
*/ */
package org.redkale.test.service; package org.redkale.test.service;
import java.nio.channels.CompletionHandler; import java.nio.channels.*;
import org.redkale.boot.*;
import org.redkale.net.sncp.*; import org.redkale.net.sncp.*;
import org.redkale.service.Service; import org.redkale.service.*;
import org.redkale.util.*; import org.redkale.util.*;
/** /**
@@ -19,13 +20,14 @@ public class TestService implements Service {
// public boolean change(TestBean bean, String name, int id) { // public boolean change(TestBean bean, String name, int id) {
// return false; // return false;
// } // }
public void change(CompletionHandler<Boolean, TestBean> handler, TestBean bean, String name, int id) { public void change(CompletionHandler<Boolean, TestBean> handler, TestBean bean, String name, int id) {
} }
public static void main(String[] args) throws Throwable { public static void main(String[] args) throws Throwable {
final Application application = Application.create(true);
SncpServer cserver = new SncpServer(); SncpServer cserver = new SncpServer();
cserver.getResourceFactory().register(application);
cserver.addSncpServlet(new TestService()); cserver.addSncpServlet(new TestService());
cserver.init(AnyValue.DefaultAnyValue.create("port", 5577)); cserver.init(AnyValue.DefaultAnyValue.create("port", 5577));
} }