Skip to content

Commit

Permalink
feat: serialize request denoising (#373)
Browse files Browse the repository at this point in the history
  • Loading branch information
YongwuHe authored Feb 20, 2024
1 parent e791871 commit df6987f
Show file tree
Hide file tree
Showing 94 changed files with 3,163 additions and 1,506 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.arex.agent.thirdparty.util;
package io.arex.agent.bootstrap.util;

public class CharSequenceUtils {
public static boolean regionMatches(final CharSequence cs, final boolean ignoreCase, final int thisStart,
Expand Down Expand Up @@ -45,4 +45,8 @@ public static boolean regionMatches(final CharSequence cs, final boolean ignoreC

return true;
}

public static int indexOf(final String cs, final String searchChar, final int start) {
return cs.indexOf(searchChar, start);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ public static <T> List<T> load(Class<T> service, ClassLoader loader) {
/**
* @param entryName ex: entryName: META-INF/services/io.arex.inst.runtime.serializer.StringSerializable
* @param jarEntry ex: jarEntry content:
* io.arex.foundation.serializer.GsonSerializer
* io.arex.foundation.serializer.JacksonSerializer
* io.arex.foundation.serializer.gson.GsonSerializer
* io.arex.foundation.serializer.jackson.JacksonSerializer
* SERVICE_CACHE: key: io.arex.inst.runtime.serializer.StringSerializable
* value: [io.arex.foundation.serializer.GsonSerializer, io.arex.foundation.serializer.JacksonSerializer]
* value: [io.arex.foundation.serializer.gson.GsonSerializer, io.arex.foundation.serializer.jackson.JacksonSerializer]
*/
public static void buildCache(File file, JarEntry jarEntry, String entryName) {
try(JarFile jarFile = new JarFile(file);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package io.arex.agent.bootstrap.util;

import io.arex.agent.thirdparty.util.CharSequenceUtils;

import java.nio.charset.StandardCharsets;
import java.util.*;

Expand Down Expand Up @@ -532,6 +530,10 @@ public static boolean isNumeric(final String cs) {
return true;
}

public static boolean isNotNumeric(final String cs) {
return !isNumeric(cs);
}

/**
* get the first occurrence of a number in a string
* example: 1-SNAPSHOT -> 1
Expand All @@ -550,4 +552,17 @@ public static Integer getFirstNumeric(String s) {
public static boolean isNullWord(String str) {
return equals(str, "null") || equals(str, "NULL");
}

public static int countMatches(final String str, final String sub) {
if (isEmpty(str) || isEmpty(sub)) {
return 0;
}
int count = 0;
int idx = 0;
while ((idx = CharSequenceUtils.indexOf(str, sub, idx)) != INDEX_NOT_FOUND) {
count++;
idx += sub.length();
}
return count;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -319,4 +319,14 @@ void startWith() {
assertTrue(StringUtil.startWith(null, null));
assertFalse(StringUtil.startWith("", "M"));
}

@Test
void countMatches() {
assertEquals(0, StringUtil.countMatches(null, null));
assertEquals(0, StringUtil.countMatches(null, ""));
assertEquals(0, StringUtil.countMatches("", null));
assertEquals(0, StringUtil.countMatches("", ""));
assertEquals(0, StringUtil.countMatches("mock", "M"));
assertEquals(1, StringUtil.countMatches("mock", "m"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import io.arex.agent.bootstrap.util.FileUtils;
import io.arex.foundation.config.ConfigManager;
import io.arex.foundation.healthy.HealthManager;
import io.arex.foundation.serializer.JacksonSerializer;
import io.arex.foundation.serializer.jackson.JacksonSerializer;
import io.arex.foundation.services.ConfigService;
import io.arex.foundation.services.DataCollectorService;
import io.arex.foundation.services.TimerService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import io.arex.foundation.model.ConfigQueryResponse.ResponseBody;
import io.arex.foundation.model.ConfigQueryResponse.ServiceCollectConfig;
import io.arex.foundation.model.HttpClientResponse;
import io.arex.foundation.serializer.JacksonSerializer;
import io.arex.foundation.serializer.jackson.JacksonSerializer;
import io.arex.foundation.util.NetUtils;
import io.arex.foundation.util.httpclient.AsyncHttpClientUtil;
import java.io.File;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ private ArexConstants() {}
public static final String REPLAY_ORIGINAL_MOCKER = "arex-replay-original-mocker";
public static final String AREX_EXTENSION_ATTRIBUTE = "arex-extension-attribute";
public static final String GSON_SERIALIZER = "gson";
public static final String GSON_REQUEST_SERIALIZER = "gson-request";
public static final String JACKSON_SERIALIZER = "jackson";
public static final String JACKSON_REQUEST_SERIALIZER = "jackson-request";
public static final String CONFIG_DEPENDENCY = "arex_replay_prepare_dependency";
public static final String PREFIX = "arex-";
public static final String CONFIG_VERSION = "configBatchNo";
Expand Down
Loading

0 comments on commit df6987f

Please sign in to comment.