summaryrefslogtreecommitdiff
path: root/groot-core
diff options
context:
space:
mode:
authorwangkuan <[email protected]>2024-03-14 16:43:00 +0800
committerwangkuan <[email protected]>2024-03-14 16:43:00 +0800
commitb9e20efd2384b8bc94f974a0e8d47b8b00736410 (patch)
tree56784fcbae9d8068f234f9e08bc099e738f05fe7 /groot-core
parent7fbfd62ff2d73cc4376a134454fc7c4f5026b042 (diff)
[improve][core]增加本地知识库文件单元测试improve/knowledgebase
Diffstat (limited to 'groot-core')
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java4
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java8
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/GeoIpKnowledgeBaseHandler.java11
-rw-r--r--groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java10
-rw-r--r--groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java31
-rw-r--r--groot-core/src/test/resources/asn.mmdbbin0 -> 2316 bytes
-rw-r--r--groot-core/src/test/resources/ip_builtin.mmdbbin0 -> 4738 bytes
7 files changed, 31 insertions, 33 deletions
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java
index 422251f..33c0653 100644
--- a/groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java
+++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java
@@ -49,7 +49,7 @@ public class AsnLookup implements UDF {
this.lookupFieldName = udfContext.getLookup_fields().get(0);
this.outputFieldName = udfContext.getOutput_fields().get(0);
AsnKnowledgeBaseHandler.increment();
- log.warn("AsnKnowledgeBaseHandlerCountIn"+AsnKnowledgeBaseHandler.getCount());
+ log.warn("AsnKnowledgeBaseHandlerCount "+AsnKnowledgeBaseHandler.getCount());
}
@@ -74,9 +74,9 @@ public class AsnLookup implements UDF {
@Override
public void close() {
AsnKnowledgeBaseHandler.decrement();
- log.warn("+++++++++++++++++++++++++++++++++++AsnKnowledgeBaseHandlerCountDe"+AsnKnowledgeBaseHandler.getCount());
if (AsnKnowledgeBaseHandler.getCount()<=0) {
KnowledgeBaseUpdateJob.removeKnowledgeBase(kbName);
+ log.warn("AsnKnowledgeBaseHandler removeKnowledgeBase "+kbName);
}
}
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java
index 9763758..442d499 100644
--- a/groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java
+++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java
@@ -56,6 +56,8 @@ public class GeoIpLookup implements UDF {
if(udfContext.getOutput_fields()!=null && !udfContext.getOutput_fields().isEmpty()){
this.outputFieldName = udfContext.getOutput_fields().get(0);
}
+ GeoIpKnowledgeBaseHandler.increment();
+ log.warn("GeoIpKnowledgeBaseHandler "+GeoIpKnowledgeBaseHandler.getCount());
}
@@ -163,6 +165,10 @@ public class GeoIpLookup implements UDF {
@Override
public void close() {
- KnowledgeBaseUpdateJob.removeKnowledgeBase(kbName);
+ GeoIpKnowledgeBaseHandler.decrement();
+ if (GeoIpKnowledgeBaseHandler.getCount()<=0) {
+ KnowledgeBaseUpdateJob.removeKnowledgeBase(kbName);
+ log.warn("GeoIpKnowledgeBaseHandler removeKnowledgeBase "+kbName);
+ }
}
}
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/GeoIpKnowledgeBaseHandler.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/GeoIpKnowledgeBaseHandler.java
index 5272ada..4d207a2 100644
--- a/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/GeoIpKnowledgeBaseHandler.java
+++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/GeoIpKnowledgeBaseHandler.java
@@ -20,10 +20,19 @@ public class GeoIpKnowledgeBaseHandler extends AbstractKnowledgeBaseHandler {
private static Map<String, KnowledgeBaseInfoForIpLookUp> kbNameWithKbConfigAndFileMetas = new ConcurrentHashMap<>();
private static GeoIpKnowledgeBaseHandler instance;
+ private static int count = 0;
private GeoIpKnowledgeBaseHandler() {
}
-
+ public static synchronized void increment() {
+ count++;
+ }
+ public static synchronized void decrement() {
+ count--;
+ }
+ public static synchronized int getCount() {
+ return count;
+ }
public static synchronized GeoIpKnowledgeBaseHandler getInstance() {
if (instance == null) {
instance = new GeoIpKnowledgeBaseHandler();
diff --git a/groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java b/groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java
index 69a074b..5bcf89e 100644
--- a/groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java
+++ b/groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java
@@ -70,14 +70,14 @@ public class AsnLookupFunctionTest {
knowledgeBaseConfig.setName("tsg_ip_asn");
Map<String, String> parameters = new HashMap<>();
knowledgeBaseConfig.setProperties(parameters);
- knowledgeBaseConfig.setFsType("http");
- knowledgeBaseConfig.setFsPath("http://192.168.44.67:9999/v1/knowledge_base");
- knowledgeBaseConfig.setFiles(Collections.singletonList("f9f6bc91-2142-4673-8249-e097c00fe1ea"));
+ knowledgeBaseConfig.setFsType("local");
+ knowledgeBaseConfig.setFsPath("");
+ knowledgeBaseConfig.setFiles(Collections.singletonList("src/test/resources/asn.mmdb"));
knowledgeBaseConfigList.add(knowledgeBaseConfig);
commonConfig.setKnowledgeBaseConfig(knowledgeBaseConfigList);
KnowledgeBaseUpdateJob.registerKnowledgeBase(AsnKnowledgeBaseHandler.getInstance(), knowledgeBaseConfig);
- String asn = AsnKnowledgeBaseHandler.lookUp("tsg_ip_asn","IP_TO_ASN","2600:1015:b002::");
- assertEquals("6167", asn);
+ String asn = AsnKnowledgeBaseHandler.lookUp("tsg_ip_asn","IP_TO_ASN","12.16.98.1");
+ assertEquals("31978", asn);
}
diff --git a/groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java b/groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java
index faa65f4..f487500 100644
--- a/groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java
+++ b/groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java
@@ -29,7 +29,6 @@ public class GeoIpLookupFunctionTest {
udfContext.setOutput_fields(Collections.singletonList("iplocation"));
}
-//com.geedgenetworks.core.udf.GeoIpLookup单元测试
@Test
public void testInit(){
GeoIpLookup geoIpLookup = new GeoIpLookup();
@@ -69,33 +68,17 @@ public class GeoIpLookupFunctionTest {
knowledgeBaseConfig.setName("tsg_ip_location");
Map<String, String> parameters = new HashMap<>();
knowledgeBaseConfig.setProperties(parameters);
- knowledgeBaseConfig.setFsType("http");
- knowledgeBaseConfig.setFsPath("http://192.168.44.67:9999/v1/knowledge_base");
- knowledgeBaseConfig.setFiles(Arrays.asList("64af7077-eb9b-4b8f-80cf-2ceebc89bea9","004390bc-3135-4a6f-a492-3662ecb9e289"));
+ knowledgeBaseConfig.setFsType("local");
+ knowledgeBaseConfig.setFsPath("");
+ knowledgeBaseConfig.setFiles(Collections.singletonList("src/test/resources/ip_builtin.mmdb"));
knowledgeBaseConfigList.add(knowledgeBaseConfig);
commonConfig.setKnowledgeBaseConfig(knowledgeBaseConfigList);
KnowledgeBaseUpdateJob.registerKnowledgeBase(GeoIpKnowledgeBaseHandler.getInstance(), knowledgeBaseConfig);
- String countryLookup = GeoIpKnowledgeBaseHandler.lookUp("tsg_ip_location","IP_TO_COUNTRY","2600:1015:b002::");
- assertEquals("美国", countryLookup);
- String provinceLookup = GeoIpKnowledgeBaseHandler.lookUp("tsg_ip_location","IP_TO_PROVINCE","2600:1015:b002::");
- assertEquals("印第安纳州", provinceLookup);
- String cityLookup = GeoIpKnowledgeBaseHandler.lookUp("tsg_ip_location","IP_TO_CITY","2600:1015:b002::");
- assertEquals("Unknown", cityLookup);
- String cityLookupDetail = GeoIpKnowledgeBaseHandler.lookUp("tsg_ip_location","IP_TO_SUBDIVISION_ADDR","2600:1015:b002::");
- assertEquals("美国.印第安纳州.Unknown", cityLookupDetail);
- String locationLookupDetail = GeoIpKnowledgeBaseHandler.lookUp("tsg_ip_location","IP_TO_DETAIL","2600:1015:b002::");
- assertEquals("美国.印第安纳州.Unknown.", locationLookupDetail.trim());
- String latLngLookup = GeoIpKnowledgeBaseHandler.lookUp("tsg_ip_location","IP_TO_LATLNG","2600:1015:b002::");
- assertEquals("39.9388,-86.1137", latLngLookup);
- String ispLookup = GeoIpKnowledgeBaseHandler.lookUp("tsg_ip_location","IP_TO_PROVIDER","2600:1015:b002::");
- assertEquals("", ispLookup);
- String infoLookupToJSONString = GeoIpKnowledgeBaseHandler.lookUp("tsg_ip_location","IP_TO_JSON","2600:1015:b002::");
- assertEquals(JSONObject.parseObject(infoLookupToJSONString).getString("country"), "美国");
- String country = GeoIpKnowledgeBaseHandler.lookUpObject("tsg_ip_location","2600:1015:b002::").getCountry();
- assertEquals("美国", country);
+ String countryLookup = GeoIpKnowledgeBaseHandler.lookUp("tsg_ip_location","IP_TO_COUNTRY","86.111.175.128");
+ assertEquals("United Kingdom", countryLookup);
+ String country = GeoIpKnowledgeBaseHandler.lookUpObject("tsg_ip_location","86.111.175.128").getCountry();
+ assertEquals("United Kingdom", country);
assertNull(GeoIpKnowledgeBaseHandler.lookUpObject("tsg_ip_location", "255.255.255.255"));
}
-
-
}
diff --git a/groot-core/src/test/resources/asn.mmdb b/groot-core/src/test/resources/asn.mmdb
new file mode 100644
index 0000000..a20e238
--- /dev/null
+++ b/groot-core/src/test/resources/asn.mmdb
Binary files differ
diff --git a/groot-core/src/test/resources/ip_builtin.mmdb b/groot-core/src/test/resources/ip_builtin.mmdb
new file mode 100644
index 0000000..b333c64
--- /dev/null
+++ b/groot-core/src/test/resources/ip_builtin.mmdb
Binary files differ