diff --git a/src/main/java/org/redkale/boot/Application.java b/src/main/java/org/redkale/boot/Application.java
index 373ed9247..3c8150761 100644
--- a/src/main/java/org/redkale/boot/Application.java
+++ b/src/main/java/org/redkale/boot/Application.java
@@ -1257,7 +1257,7 @@ public final class Application {
if (!sourceConf.getValue(AbstractDataSource.DATA_SOURCE_RESOURCE, "").isEmpty()) {
DataSource source = loadDataSource(sourceConf.getValue(AbstractDataSource.DATA_SOURCE_RESOURCE), autoMemory);
if (source != null) {
- if (source instanceof DataMemorySource && DataMemorySource.isSearchType(sourceConf)) {
+ if (source instanceof DataMemorySource && source instanceof SearchSource) {
resourceFactory.register(sourceName, SearchSource.class, source);
} else {
resourceFactory.register(sourceName, DataSource.class, source);
@@ -1271,7 +1271,7 @@ public final class Application {
try {
DataSource source = AbstractDataSource.createDataSource(serverClassLoader, resourceFactory, sourceConf, sourceName, compileMode);
dataSources.add(source);
- if (source instanceof DataMemorySource && DataMemorySource.isSearchType(sourceConf)) {
+ if (source instanceof DataMemorySource && source instanceof SearchSource) {
resourceFactory.register(sourceName, SearchSource.class, source);
} else {
resourceFactory.register(sourceName, DataSource.class, source);
diff --git a/src/main/java/org/redkale/source/AbstractDataSource.java b/src/main/java/org/redkale/source/AbstractDataSource.java
index 8e42df59b..b7d452fd2 100644
--- a/src/main/java/org/redkale/source/AbstractDataSource.java
+++ b/src/main/java/org/redkale/source/AbstractDataSource.java
@@ -23,6 +23,7 @@ import org.redkale.net.WorkThread;
import org.redkale.persistence.Entity;
import org.redkale.service.*;
import org.redkale.util.*;
+import static org.redkale.util.Utility.isEmpty;
/**
* DataSource的S抽象实现类
@@ -121,6 +122,8 @@ public abstract class AbstractDataSource extends AbstractService implements Data
@Resource(name = RESNAME_APP_EXECUTOR, required = false)
private ExecutorService sourceExecutor;
+ protected String name;
+
@Override
public void init(AnyValue conf) {
super.init(conf);
@@ -131,6 +134,11 @@ public abstract class AbstractDataSource extends AbstractService implements Data
}
}
+ @Override
+ public final String resourceName() {
+ return name;
+ }
+
@ResourceListener
public abstract void onResourceChange(ResourceEvent[] events);
@@ -148,7 +156,7 @@ public abstract class AbstractDataSource extends AbstractService implements Data
serverClassLoader = Thread.currentThread().getContextClassLoader();
}
String classVal = sourceConf.getValue("type");
- if (classVal == null || classVal.isEmpty()) {
+ if (isEmpty(classVal)) {
if (DataJdbcSource.acceptsConf(sourceConf)) {
source = new DataJdbcSource();
} else {
diff --git a/src/main/java/org/redkale/source/AbstractDataSqlSource.java b/src/main/java/org/redkale/source/AbstractDataSqlSource.java
index 7dfedcca3..820c612fc 100644
--- a/src/main/java/org/redkale/source/AbstractDataSqlSource.java
+++ b/src/main/java/org/redkale/source/AbstractDataSqlSource.java
@@ -48,8 +48,6 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource implement
protected final Logger logger = Logger.getLogger(this.getClass().getSimpleName());
- protected String name;
-
protected boolean cacheForbidden;
protected String dbtype;
@@ -802,11 +800,6 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource implement
return "sql";
}
- @Override
- public final String resourceName() {
- return name;
- }
-
@Override
public EntityInfo apply(Class t) {
return loadEntityInfo(t);
diff --git a/src/main/java/org/redkale/source/DataMemorySource.java b/src/main/java/org/redkale/source/DataMemorySource.java
index 41a21786e..28d2f31d3 100644
--- a/src/main/java/org/redkale/source/DataMemorySource.java
+++ b/src/main/java/org/redkale/source/DataMemorySource.java
@@ -8,7 +8,7 @@ package org.redkale.source;
import java.io.Serializable;
import java.util.*;
import java.util.concurrent.CompletableFuture;
-import java.util.function.*;
+import java.util.stream.Stream;
import org.redkale.annotation.AutoLoad;
import org.redkale.annotation.ResourceListener;
import org.redkale.annotation.ResourceType;
@@ -33,21 +33,10 @@ import org.redkale.util.*;
@AutoLoad(false)
@SuppressWarnings("unchecked")
@ResourceType(DataSource.class)
-public class DataMemorySource extends AbstractDataSqlSource implements SearchSource {
+public class DataMemorySource extends AbstractDataSource {
public DataMemorySource(String name) {
this.name = name;
- this.cacheForbidden = false;
- }
-
- @Override
- protected int readMaxConns() {
- return -1;
- }
-
- @Override
- protected int writeMaxConns() {
- return -1;
}
@Local
@@ -64,10 +53,10 @@ public class DataMemorySource extends AbstractDataSqlSource implements SearchSou
public static boolean acceptsConf(AnyValue config) {
return config.getValue(DATA_SOURCE_URL).startsWith("memory:");
}
-
- public static boolean isSearchType(AnyValue config) {
- return config.getValue(DATA_SOURCE_URL).startsWith("memory:search");
- }
+//
+// public static boolean isSearchType(AnyValue config) {
+// return config.getValue(DATA_SOURCE_URL).startsWith("memory:search");
+// }
@Local
@Override
@@ -83,128 +72,353 @@ public class DataMemorySource extends AbstractDataSqlSource implements SearchSou
return true;
}
- @Override
- protected final boolean isAsync() {
- return false;
- }
-
@Override
public String toString() {
return getClass().getSimpleName() + "{type=memory, name='" + resourceName() + "'}";
}
@Override
- public int nativeUpdate(String sql) {
+ public int insert(T... entitys) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
- public int[] nativeUpdates(String... sqls) {
+ public CompletableFuture insertAsync(T... entitys) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
- public V nativeQuery(String sql, BiConsumer