refactor, move method 'JSONFactory.mixIn' to 'JSON.mixIn'

This commit is contained in:
shaojin.wensj 2022-04-25 22:47:06 +08:00
parent 4db6eadbfc
commit 7e9885020a
14 changed files with 21 additions and 35 deletions

View File

@ -644,4 +644,9 @@ public interface JSON {
return TypeUtils.cast(object, clazz);
}
static void mixIn(Class target, Class mixinSource) {
JSONFactory.defaultObjectWriterProvider.mixIn(target, mixinSource);
JSONFactory.getDefaultObjectReaderProvider().mixIn(target, mixinSource);
}
}

View File

@ -288,11 +288,6 @@ public final class JSONFactory {
return defaultObjectReaderProvider;
}
public static void mixIn(Class target, Class mixinSource) {
defaultObjectWriterProvider.mixIn(target, mixinSource);
getDefaultObjectReaderProvider().mixIn(target, mixinSource);
}
public static void setContextReaderCreator(ObjectReaderCreator creator) {
readerCreatorLocal.set(creator);
}

View File

@ -2,7 +2,6 @@ package com.alibaba.fastjson2.mixins;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.JSONFactory;
import org.junit.jupiter.api.Test;
import static junit.framework.TestCase.assertEquals;
@ -57,7 +56,7 @@ public class MixinAPITest {
public void test_mixIn_get_methods() throws Exception {
BaseClass base = new BaseClass(1, 2);
JSONFactory.mixIn(BaseClass.class, MixIn1.class);
JSON.mixIn(BaseClass.class, MixIn1.class);
String str = JSON.toJSONString(base);
// assertEquals("{\"apple\":1,\"banana\":2}", str);

View File

@ -2,7 +2,6 @@ package com.alibaba.fastjson2.mixins;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.JSONFactory;
import org.junit.jupiter.api.Test;
import static junit.framework.TestCase.assertEquals;
@ -34,7 +33,7 @@ public class MixinAPITest1 {
public void test_mixIn_get_methods() throws Exception {
BaseClass base = new BaseClass(1, 2);
JSONFactory.mixIn(BaseClass.class, MixIn1.class);
JSON.mixIn(BaseClass.class, MixIn1.class);
String str = JSON.toJSONString(base);
assertEquals("{\"apple\":1,\"banana\":2}", str);

View File

@ -3,7 +3,6 @@ package com.alibaba.fastjson2.mixins;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.annotation.JSONCreator;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.JSONFactory;
import org.junit.jupiter.api.Test;
import static junit.framework.TestCase.assertEquals;
@ -36,7 +35,7 @@ public class MixinAPITest2 {
public void test_mixIn_get_methods() throws Exception {
BaseClass base = new BaseClass(1, 2);
JSONFactory.mixIn(BaseClass.class, MixIn1.class);
JSON.mixIn(BaseClass.class, MixIn1.class);
String str = JSON.toJSONString(base);
assertEquals("{\"apple\":1,\"banana\":2}", str);

View File

@ -3,7 +3,6 @@ package com.alibaba.fastjson2.mixins;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.annotation.JSONCreator;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.JSONFactory;
import org.junit.jupiter.api.Test;
import static junit.framework.TestCase.assertEquals;
@ -36,7 +35,7 @@ public class MixinAPITest3 {
public void test_mixIn_get_methods() throws Exception {
BaseClass base = new BaseClass(1, 2);
JSONFactory.mixIn(BaseClass.class, MixIn1.class);
JSON.mixIn(BaseClass.class, MixIn1.class);
String str = JSON.toJSONString(base);
assertEquals("{\"apple\":1,\"banana\":2}", str);

View File

@ -3,7 +3,6 @@ package com.alibaba.fastjson2.mixins;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.annotation.JSONCreator;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.JSONFactory;
import org.junit.jupiter.api.Test;
import static junit.framework.TestCase.assertEquals;
@ -41,7 +40,7 @@ public class MixinAPITest4 {
public void test_mixIn_get_methods() throws Exception {
BaseClass base = new BaseClass(1, 2);
JSONFactory.mixIn(BaseClass.class, MixIn1.class);
JSON.mixIn(BaseClass.class, MixIn1.class);
String str = JSON.toJSONString(base);
assertEquals("{\"apple\":1,\"banana\":2}", str);

View File

@ -1,10 +1,8 @@
package com.alibaba.fastjson2.v1issues;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONFactory;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.annotation.JSONType;
import junit.framework.TestCase;
import org.junit.jupiter.api.Test;
import java.util.List;
@ -20,8 +18,8 @@ public class Issue1233 {
public void test_for_issue() throws Exception {
JSONObject jsonObject = JSON.parseObject("{\"type\":\"floorV2\",\"templateId\":\"x123\"}");
JSONFactory.mixIn(Area.class, AreaMixIn.class);
JSONFactory.mixIn(FloorV2.class, FloorV2MixIn.class);
JSON.mixIn(Area.class, AreaMixIn.class);
JSON.mixIn(FloorV2.class, FloorV2MixIn.class);
FloorV2 floorV2 = (FloorV2) jsonObject.toJavaObject(Area.class);
assertNotNull(floorV2);

View File

@ -3,8 +3,6 @@ package com.alibaba.fastjson2.v1issues.issue_1200;
import com.alibaba.fastjson2.annotation.JSONType;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONFactory;
import junit.framework.TestCase;
import org.junit.jupiter.api.Test;
import java.util.List;
@ -20,8 +18,8 @@ public class Issue1233 {
public void test_for_issue() throws Exception {
JSONObject jsonObject = JSON.parseObject("{\"type\":\"floorV2\",\"templateId\":\"x123\"}");
JSONFactory.mixIn(Area.class, AreaMixIn.class);
JSONFactory.mixIn(FloorV2.class, FloorV2MixIn.class);
JSON.mixIn(Area.class, AreaMixIn.class);
JSON.mixIn(FloorV2.class, FloorV2MixIn.class);
FloorV2 floorV2 = (FloorV2) jsonObject.toJavaObject(Area.class);
assertNotNull(floorV2);

View File

@ -3,7 +3,6 @@ package com.alibaba.fastjson2.v1issues.issue_3200;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.annotation.JSONCreator;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.JSONFactory;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@ -11,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class Issue3266_mixedin {
@Test
public void test_for_issue() throws Exception {
JSONFactory.mixIn(Color.class, ColorMixedIn.class);
JSON.mixIn(Color.class, ColorMixedIn.class);
VO vo = new VO();
vo.type = Color.Black;
@ -28,7 +27,7 @@ public class Issue3266_mixedin {
@Test
public void test_for_issue_method() throws Exception {
JSONFactory.mixIn(Color.class, ColorMixedIn.class);
JSON.mixIn(Color.class, ColorMixedIn.class);
V1 vo = new V1();
vo.type = Color.Black;

View File

@ -3,7 +3,6 @@ package com.alibaba.fastjson.issue_3200;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONCreator;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson2.JSONFactory;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@ -11,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class Issue3266_mixedin {
@Test
public void test_for_issue() throws Exception {
JSONFactory.mixIn(Color.class, ColorMixedIn.class);
com.alibaba.fastjson2.JSON.mixIn(Color.class, ColorMixedIn.class);
VO vo = new VO();
vo.type = Color.Black;

View File

@ -3,7 +3,6 @@ package com.alibaba.json.bvt.issue_1200;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONType;
import com.alibaba.fastjson2.JSONFactory;
import junit.framework.TestCase;
import java.util.List;
@ -15,8 +14,8 @@ public class Issue1233 extends TestCase {
public void test_for_issue() throws Exception {
JSONObject jsonObject = JSON.parseObject("{\"type\":\"floorV2\",\"templateId\":\"x123\"}");
JSONFactory.mixIn(Area.class, AreaMixIn.class);
JSONFactory.mixIn(FloorV2.class, FloorV2MixIn.class);
com.alibaba.fastjson2.JSON.mixIn(Area.class, AreaMixIn.class);
com.alibaba.fastjson2.JSON.mixIn(FloorV2.class, FloorV2MixIn.class);
FloorV2 floorV2 = (FloorV2) jsonObject.toJavaObject(Area.class);
assertNotNull(floorV2);

View File

@ -6,7 +6,6 @@ import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.JSONToken;
import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer;
import com.alibaba.fastjson.serializer.StringCodec;
import com.alibaba.fastjson2.JSONFactory;
import com.zx.sms.codec.cmpp.msg.CmppSubmitResponseMessage;
import com.zx.sms.codec.smgp.msg.SMGPSubmitMessage;
import com.zx.sms.common.util.CMPPCommonUtil;
@ -31,7 +30,7 @@ public class Issue2685 extends TestCase {
String smsMsg = JSON.toJSONString(smgpSubmitMessage);
// System.out.println(smsMsg);
JSONFactory.mixIn(SMGPSubmitMessage.class, Mixin.class);
com.alibaba.fastjson2.JSON.mixIn(SMGPSubmitMessage.class, Mixin.class);
smgpSubmitMessage = JSON.parseObject(smsMsg, SMGPSubmitMessage.class);
assertEquals("hello", smgpSubmitMessage.getMsgContent());
}

View File

@ -3,13 +3,12 @@ package com.alibaba.json.bvt.issue_3400;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONCreator;
import com.alibaba.fastjson.annotation.JSONType;
import com.alibaba.fastjson2.JSONFactory;
import junit.framework.TestCase;
import org.springframework.core.io.FileSystemResource;
public class Issue3436 extends TestCase {
public void test_for_issue() throws Exception {
JSONFactory.mixIn(FileSystemResource.class, FileSystemResourceMixedIn.class);
com.alibaba.fastjson2.JSON.mixIn(FileSystemResource.class, FileSystemResourceMixedIn.class);
FileSystemResource fileSystemResource = new FileSystemResource("E:\\my-code\\test\\test-fastjson.txt");