Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions framework/dependency/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
<byte-buddy.version>1.18.2</byte-buddy.version>
<druid.version>1.2.25</druid.version>
<fastjson.version>1.2.83</fastjson.version>
<fastjson2.version>2.0.60</fastjson2.version>
<guava.version>32.0.1-jre</guava.version>
<hanlp.version>portable-1.8.4</hanlp.version>
<lombok.version>1.18.36</lombok.version>
Expand Down Expand Up @@ -465,6 +466,11 @@
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${fastjson2.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import modelengine.fitframework.util.IoUtils;
import modelengine.fitframework.util.MapBuilder;
import modelengine.fitframework.util.StringUtils;
import modelengine.fitframework.util.TypeUtils;
import modelengine.fitframework.value.ValueFetcher;

import org.junit.jupiter.api.AfterAll;
Expand All @@ -34,6 +35,7 @@

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Type;
import java.net.ServerSocket;
import java.net.URL;
import java.util.HashMap;
Expand Down Expand Up @@ -124,6 +126,12 @@ private static Tool createTool(Tool.Info info) {
return factory.create(info, toolMetadata);
}

private static Map<String, Object> deserializeJsonObject(String json) {
ObjectSerializer jsonSerializer = new JacksonObjectSerializer(null, null, null, true);
Type objectType = TypeUtils.parameterized(Map.class, new Type[] {String.class, Object.class});
return jsonSerializer.deserialize(json, objectType);
}

@Test
@DisplayName("测试返回值为 Map 成功")
void shouldReturnMap() {
Expand Down Expand Up @@ -186,7 +194,8 @@ void BasicShouldReturnOk() {
Tool.Info info = readToolInfo("basic-auth.json");
Tool tool = createTool(info);

boolean result = cast(tool.execute("{\"name\":\"testuser\", \"pwd\":\"testpass\"}"));
Map<String, Object> args = deserializeJsonObject("{\"name\":\"testuser\", \"pwd\":\"testpass\"}");
boolean result = cast(tool.execute(args));
assertThat(result).isEqualTo(true);
}

Expand All @@ -196,7 +205,8 @@ void ApiKeyShouldReturnOk() {
Tool.Info info = readToolInfo("api-key-auth.json");
Tool tool = createTool(info);

boolean result = cast(tool.execute("{\"name\":\"ApiKey\", \"pwd\":\"ApiKeyValue\"}"));
Map<String, Object> args = deserializeJsonObject("{\"name\":\"ApiKey\", \"pwd\":\"ApiKeyValue\"}");
boolean result = cast(tool.execute(args));
assertThat(result).isEqualTo(true);
}

Expand All @@ -206,7 +216,8 @@ void ApiKeyQueryShouldReturnOk() {
Tool.Info info = readToolInfo("api-key-query-auth.json");
Tool tool = createTool(info);

boolean result = cast(tool.execute("{\"name\":\"ApiKey\", \"pwd\":\"ApiKeyValue\"}"));
Map<String, Object> args = deserializeJsonObject("{\"name\":\"ApiKey\", \"pwd\":\"ApiKeyValue\"}");
boolean result = cast(tool.execute(args));
assertThat(result).isEqualTo(true);
}

Expand All @@ -216,7 +227,8 @@ void BearerShouldReturnOk() {
Tool.Info info = readToolInfo("bearer-auth.json");
Tool tool = createTool(info);

boolean result = cast(tool.execute("{\"name\":\"test666666666\", \"pwd\":\"invalid\"}"));
Map<String, Object> args = deserializeJsonObject("{\"name\":\"test666666666\", \"pwd\":\"invalid\"}");
boolean result = cast(tool.execute(args));
assertThat(result).isEqualTo(true);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ public interface ValueFetcher {
* +---------------------+--------------+---------------------+
* </pre>
* 任意输入对象都可以转换为键值对的形式。
* <p><strong>注意:</strong>当 {@code object} 为 {@link String} 时,默认按普通字符串处理,不会自动解析 JSON 文本。
* 如果需要从 JSON 字符串中取值,请调用方先使用 {@link modelengine.fitframework.serialization.ObjectSerializer}
* 将其反序列化为对象,再调用本方法。</p>
*
* @param object 表示指定对象的 {@link Object}。
* @param propertyPath 表示待获取属性的路径的 {@link String}。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ public interface ValueSetter {
* +---------------------+--------------+-------+----------------------+
* </pre>
* 任意输入对象都可以转换为键值对的形式。
* <p><strong>注意:</strong>当 {@code object} 为 {@link String} 时,默认按普通字符串处理,不会自动解析 JSON 文本。
* 如果需要在 JSON 字符串上设置属性,请调用方先使用 {@link modelengine.fitframework.serialization.ObjectSerializer}
* 将其反序列化为对象,再调用本方法。</p>
*
* @param object 表示指定对象的 {@link Object}。
* @param propertyPath 表示待替换属性的路径的 {@link String}。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,6 @@
</description>
<url>https://github.com/ModelEngine-Group/fit-framework</url>

<properties>
<!-- Third-party versions -->
<fastjson.version>1.2.83</fastjson.version>
</properties>

<dependencies>
<!-- FIT core -->
<dependency>
Expand All @@ -35,9 +30,8 @@

<!-- Fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>

<!-- Test -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

package modelengine.fit.value.fastjson;

import com.alibaba.fastjson.JSONPath;
import com.alibaba.fastjson2.JSONPath;

import modelengine.fitframework.annotation.Component;
import modelengine.fitframework.util.StringUtils;
Expand Down