This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new 4e07ea364 [SCB-2867]change implementation not depends on guice (#4272)
4e07ea364 is described below

commit 4e07ea36488a09e2cf3d49f230801bbc6c260c56
Author: liubao68 <[email protected]>
AuthorDate: Wed Mar 27 15:56:14 2024 +0800

    [SCB-2867]change implementation not depends on guice (#4272)
---
 .../rest/codec/param/FormProcessorCreator.java     |  6 +-
 .../jackson/databind/ObjectMapperUtils.java        | 28 -------
 .../foundation/common/ParameterizedTypeUtil.java   | 96 ++++++++++++++++++++++
 .../provider/pojo/schema/PojoProducerMeta.java     |  8 +-
 swagger/swagger-generator/generator-core/pom.xml   |  4 -
 .../parameter/PartListParameterTypeProcessor.java  |  5 +-
 .../swagger-generator/generator-springmvc/pom.xml  |  4 -
 .../parameter/MultipartFileListProcessor.java      |  5 +-
 .../producer/codec/ArgWrapperJavaType.java         | 80 ------------------
 .../impl/part/PartListToPartArrayConverter.java    |  7 +-
 .../impl/part/PartListToPartListConverter.java     |  9 +-
 .../invocation-springmvc/pom.xml                   |  4 -
 .../PartListToMultipartArrayConverter.java         |  7 +-
 .../PartListToMultipartListConverter.java          |  9 +-
 14 files changed, 123 insertions(+), 149 deletions(-)

diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/FormProcessorCreator.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/FormProcessorCreator.java
index 4efedf3f1..740f57e03 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/FormProcessorCreator.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/FormProcessorCreator.java
@@ -26,6 +26,7 @@ import java.util.stream.Collectors;
 import org.apache.servicecomb.common.rest.RestConst;
 import org.apache.servicecomb.common.rest.codec.RestClientRequest;
 import org.apache.servicecomb.core.definition.OperationMeta;
+import org.apache.servicecomb.foundation.common.ParameterizedTypeUtil;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.swagger.generator.SwaggerConst;
 import org.apache.servicecomb.swagger.invocation.converter.Converter;
@@ -33,7 +34,6 @@ import 
org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.type.TypeFactory;
-import com.google.inject.util.Types;
 
 import io.swagger.v3.oas.models.media.ArraySchema;
 import io.swagger.v3.oas.models.media.MediaType;
@@ -131,7 +131,7 @@ public class FormProcessorCreator implements 
ParamValueProcessorCreator<RequestB
   }
 
   public static class PartProcessor extends AbstractParamProcessor {
-    private static final Type partListType = 
Types.newParameterizedType(List.class, Part.class);
+    private static final Type partListType = 
ParameterizedTypeUtil.make(List.class, Part.class);
 
     // key is target type
     private static final Map<Type, Converter> partsToTargetConverters = 
SPIServiceUtils.getSortedService(
@@ -178,7 +178,7 @@ public class FormProcessorCreator implements 
ParamValueProcessorCreator<RequestB
 
     private void initRepeatedConverter(Type genericParamType) {
       if (genericParamType instanceof JavaType) {
-        genericParamType = Types.newParameterizedType(((JavaType) 
genericParamType).getRawClass(),
+        genericParamType = ParameterizedTypeUtil.make(((JavaType) 
genericParamType).getRawClass(),
             ((JavaType) genericParamType).getContentType());
       }
       converter = partsToTargetConverters.get(genericParamType);
diff --git 
a/foundations/foundation-common/src/main/java/com/fasterxml/jackson/databind/ObjectMapperUtils.java
 
b/foundations/foundation-common/src/main/java/com/fasterxml/jackson/databind/ObjectMapperUtils.java
deleted file mode 100644
index 5be6d73c7..000000000
--- 
a/foundations/foundation-common/src/main/java/com/fasterxml/jackson/databind/ObjectMapperUtils.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.fasterxml.jackson.databind;
-
-import com.fasterxml.jackson.core.JsonParser;
-
-public final class ObjectMapperUtils {
-  private ObjectMapperUtils() {
-  }
-
-  public static DeserializationContext 
createDeserializationContext(ObjectMapper mapper, JsonParser jp) {
-    return mapper.createDeserializationContext(jp, 
mapper.getDeserializationConfig());
-  }
-}
diff --git 
a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/ParameterizedTypeUtil.java
 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/ParameterizedTypeUtil.java
new file mode 100644
index 000000000..025c08acb
--- /dev/null
+++ 
b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/ParameterizedTypeUtil.java
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicecomb.foundation.common;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * Utility class for creating ParameterizedType.
+ */
+public class ParameterizedTypeUtil implements ParameterizedType {
+  private final Type[] actualTypeArguments;
+
+  private final Class<?> rawType;
+
+  private ParameterizedTypeUtil(Class<?> rawType, Type[] actualTypeArguments) {
+    this.actualTypeArguments = actualTypeArguments;
+    this.rawType = rawType;
+  }
+
+  public static ParameterizedType make(Class<?> rawType, Type... 
actualTypeArguments) {
+    return new ParameterizedTypeUtil(rawType, actualTypeArguments);
+  }
+
+  @Override
+  public Type[] getActualTypeArguments() {
+    return this.actualTypeArguments;
+  }
+
+  @Override
+  public Type getRawType() {
+    return rawType;
+  }
+
+  @Override
+  public Type getOwnerType() {
+    return null;
+  }
+
+  @Override
+  public boolean equals(Object o) {
+    if (o instanceof ParameterizedType that) {
+
+      if (this == that) {
+        return true;
+      }
+
+      Type thatRawType = that.getRawType();
+
+      return Objects.equals(rawType, thatRawType) &&
+          Arrays.equals(actualTypeArguments, that.getActualTypeArguments());
+    } else {
+      return false;
+    }
+  }
+
+  @Override
+  public int hashCode() {
+    return Arrays.hashCode(actualTypeArguments) ^
+        Objects.hashCode(rawType);
+  }
+
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+
+    sb.append(rawType.getName());
+
+    if (actualTypeArguments != null) {
+      StringJoiner sj = new StringJoiner(", ", "<", ">");
+      sj.setEmptyValue("");
+      for (Type t : actualTypeArguments) {
+        sj.add(t.getTypeName());
+      }
+      sb.append(sj);
+    }
+
+    return sb.toString();
+  }
+}
diff --git 
a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/schema/PojoProducerMeta.java
 
b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/schema/PojoProducerMeta.java
index 7526ec23f..d63541cdf 100644
--- 
a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/schema/PojoProducerMeta.java
+++ 
b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/schema/PojoProducerMeta.java
@@ -17,14 +17,14 @@
 
 package org.apache.servicecomb.provider.pojo.schema;
 
-import javax.inject.Inject;
-
-import com.google.common.annotations.VisibleForTesting;
 import org.apache.servicecomb.core.provider.producer.ProducerMeta;
 import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.google.common.annotations.VisibleForTesting;
 
 public class PojoProducerMeta extends ProducerMeta implements InitializingBean 
{
-  @Inject
+  @Autowired
   protected PojoProducers pojoProducers;
 
   private String implementation;
diff --git a/swagger/swagger-generator/generator-core/pom.xml 
b/swagger/swagger-generator/generator-core/pom.xml
index 2efd78464..dded4d55a 100644
--- a/swagger/swagger-generator/generator-core/pom.xml
+++ b/swagger/swagger-generator/generator-core/pom.xml
@@ -43,10 +43,6 @@
       <groupId>jakarta.servlet</groupId>
       <artifactId>jakarta.servlet-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.google.inject</groupId>
-      <artifactId>guice</artifactId>
-    </dependency>
 
     <dependency>
       <groupId>org.mockito</groupId>
diff --git 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/parameter/PartListParameterTypeProcessor.java
 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/parameter/PartListParameterTypeProcessor.java
index 183f45df8..8d47dfdc3 100644
--- 
a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/parameter/PartListParameterTypeProcessor.java
+++ 
b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/generator/core/processor/parameter/PartListParameterTypeProcessor.java
@@ -18,15 +18,16 @@ package 
org.apache.servicecomb.swagger.generator.core.processor.parameter;
 
 import java.util.List;
 
+import org.apache.servicecomb.foundation.common.ParameterizedTypeUtil;
+
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.type.TypeFactory;
-import com.google.inject.util.Types;
 
 import jakarta.servlet.http.Part;
 
 public class PartListParameterTypeProcessor extends 
PartArrayParameterTypeProcessor {
   @Override
   public JavaType getProcessType() {
-    return 
TypeFactory.defaultInstance().constructType(Types.newParameterizedType(List.class,
 Part.class));
+    return 
TypeFactory.defaultInstance().constructType(ParameterizedTypeUtil.make(List.class,
 Part.class));
   }
 }
diff --git a/swagger/swagger-generator/generator-springmvc/pom.xml 
b/swagger/swagger-generator/generator-springmvc/pom.xml
index 5909d9a96..226f2618c 100644
--- a/swagger/swagger-generator/generator-springmvc/pom.xml
+++ b/swagger/swagger-generator/generator-springmvc/pom.xml
@@ -45,10 +45,6 @@
       <artifactId>log4j-core</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>com.google.inject</groupId>
-      <artifactId>guice</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>foundation-test-scaffolding</artifactId>
diff --git 
a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/parameter/MultipartFileListProcessor.java
 
b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/parameter/MultipartFileListProcessor.java
index 10e9f98d2..85d4648c1 100644
--- 
a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/parameter/MultipartFileListProcessor.java
+++ 
b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/parameter/MultipartFileListProcessor.java
@@ -19,16 +19,17 @@ package 
org.apache.servicecomb.swagger.generator.springmvc.processor.parameter;
 
 import java.util.List;
 
+import org.apache.servicecomb.foundation.common.ParameterizedTypeUtil;
 import 
org.apache.servicecomb.swagger.generator.core.processor.parameter.PartArrayParameterTypeProcessor;
 import org.springframework.web.multipart.MultipartFile;
 
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.type.TypeFactory;
-import com.google.inject.util.Types;
 
 public class MultipartFileListProcessor extends 
PartArrayParameterTypeProcessor {
   @Override
   public JavaType getProcessType() {
-    return 
TypeFactory.defaultInstance().constructType(Types.newParameterizedType(List.class,
 MultipartFile.class));
+    return TypeFactory.defaultInstance().constructType(
+        ParameterizedTypeUtil.make(List.class, MultipartFile.class));
   }
 }
diff --git 
a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/producer/codec/ArgWrapperJavaType.java
 
b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/producer/codec/ArgWrapperJavaType.java
deleted file mode 100644
index 26453fd47..000000000
--- 
a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/arguments/producer/codec/ArgWrapperJavaType.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.servicecomb.swagger.invocation.arguments.producer.codec;
-
-import java.io.IOException;
-import java.lang.reflect.Type;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectMapperUtils;
-import com.fasterxml.jackson.databind.type.SimpleType;
-import com.fasterxml.jackson.databind.type.TypeFactory;
-
-public class ArgWrapperJavaType extends SimpleType {
-  private static final long serialVersionUID = 964882360361204479L;
-
-  static class ArgInfo {
-    JavaType javaType;
-
-    JsonDeserializer<Object> deserializer;
-
-    public ArgInfo(Type type) {
-      this.javaType = TypeFactory.defaultInstance().constructType(type);
-    }
-  }
-
-  private final Map<String, ArgInfo> argInfos = new HashMap<>();
-
-  public ArgWrapperJavaType() {
-    super(Object.class);
-  }
-
-  public void addProperty(String name, Type type) {
-    argInfos.put(name, new ArgInfo(type));
-  }
-
-  public Map<String, Object> readValue(ObjectMapper mapper, String json) 
throws IOException {
-    Map<String, Object> args = new LinkedHashMap<>();
-
-    JsonParser jp = mapper.getFactory().createParser(json);
-    DeserializationContext deserializationContext = 
ObjectMapperUtils.createDeserializationContext(mapper, jp);
-
-    jp.nextToken();
-    for (String fieldName = jp.nextFieldName(); fieldName != null; fieldName = 
jp.nextFieldName()) {
-      jp.nextToken();
-      ArgInfo argInfo = argInfos.get(fieldName);
-      if (argInfo == null) {
-        continue;
-      }
-
-      if (argInfo.deserializer == null) {
-        argInfo.deserializer = 
deserializationContext.findRootValueDeserializer(argInfo.javaType);
-      }
-
-      args.put(fieldName, argInfo.deserializer.deserialize(jp, 
deserializationContext));
-    }
-
-    return args;
-  }
-}
diff --git 
a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartArrayConverter.java
 
b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartArrayConverter.java
index afceb32e2..bbdb244f5 100644
--- 
a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartArrayConverter.java
+++ 
b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartArrayConverter.java
@@ -19,16 +19,15 @@ package 
org.apache.servicecomb.swagger.invocation.converter.impl.part;
 import java.lang.reflect.Type;
 import java.util.List;
 
-import jakarta.servlet.http.Part;
-
+import org.apache.servicecomb.foundation.common.ParameterizedTypeUtil;
 import org.apache.servicecomb.swagger.invocation.converter.Converter;
 
-import com.google.inject.util.Types;
+import jakarta.servlet.http.Part;
 
 public class PartListToPartArrayConverter implements Converter {
   @Override
   public Type getSrcType() {
-    return Types.newParameterizedType(List.class, Part.class);
+    return ParameterizedTypeUtil.make(List.class, Part.class);
   }
 
   @Override
diff --git 
a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartListConverter.java
 
b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartListConverter.java
index cc2dbee4d..5c2ee3284 100644
--- 
a/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartListConverter.java
+++ 
b/swagger/swagger-invocation/invocation-core/src/main/java/org/apache/servicecomb/swagger/invocation/converter/impl/part/PartListToPartListConverter.java
@@ -19,21 +19,20 @@ package 
org.apache.servicecomb.swagger.invocation.converter.impl.part;
 import java.lang.reflect.Type;
 import java.util.List;
 
-import jakarta.servlet.http.Part;
-
+import org.apache.servicecomb.foundation.common.ParameterizedTypeUtil;
 import org.apache.servicecomb.swagger.invocation.converter.Converter;
 
-import com.google.inject.util.Types;
+import jakarta.servlet.http.Part;
 
 public class PartListToPartListConverter implements Converter {
   @Override
   public Type getSrcType() {
-    return Types.newParameterizedType(List.class, Part.class);
+    return ParameterizedTypeUtil.make(List.class, Part.class);
   }
 
   @Override
   public Type getTargetType() {
-    return Types.newParameterizedType(List.class, Part.class);
+    return ParameterizedTypeUtil.make(List.class, Part.class);
   }
 
   @Override
diff --git a/swagger/swagger-invocation/invocation-springmvc/pom.xml 
b/swagger/swagger-invocation/invocation-springmvc/pom.xml
index 511b99d04..34d89805c 100644
--- a/swagger/swagger-invocation/invocation-springmvc/pom.xml
+++ b/swagger/swagger-invocation/invocation-springmvc/pom.xml
@@ -32,10 +32,6 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>swagger-invocation-core</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.google.inject</groupId>
-      <artifactId>guice</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-webmvc</artifactId>
diff --git 
a/swagger/swagger-invocation/invocation-springmvc/src/main/java/org/apache/servicecomb/swagger/invocation/converter/PartListToMultipartArrayConverter.java
 
b/swagger/swagger-invocation/invocation-springmvc/src/main/java/org/apache/servicecomb/swagger/invocation/converter/PartListToMultipartArrayConverter.java
index cab3ec53c..d9b0901df 100644
--- 
a/swagger/swagger-invocation/invocation-springmvc/src/main/java/org/apache/servicecomb/swagger/invocation/converter/PartListToMultipartArrayConverter.java
+++ 
b/swagger/swagger-invocation/invocation-springmvc/src/main/java/org/apache/servicecomb/swagger/invocation/converter/PartListToMultipartArrayConverter.java
@@ -19,16 +19,15 @@ package org.apache.servicecomb.swagger.invocation.converter;
 import java.lang.reflect.Type;
 import java.util.List;
 
-import jakarta.servlet.http.Part;
-
+import org.apache.servicecomb.foundation.common.ParameterizedTypeUtil;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.google.inject.util.Types;
+import jakarta.servlet.http.Part;
 
 public class PartListToMultipartArrayConverter implements Converter {
   @Override
   public Type getSrcType() {
-    return Types.newParameterizedType(List.class, Part.class);
+    return ParameterizedTypeUtil.make(List.class, Part.class);
   }
 
   @Override
diff --git 
a/swagger/swagger-invocation/invocation-springmvc/src/main/java/org/apache/servicecomb/swagger/invocation/converter/PartListToMultipartListConverter.java
 
b/swagger/swagger-invocation/invocation-springmvc/src/main/java/org/apache/servicecomb/swagger/invocation/converter/PartListToMultipartListConverter.java
index e1cba13b0..4d7d50725 100644
--- 
a/swagger/swagger-invocation/invocation-springmvc/src/main/java/org/apache/servicecomb/swagger/invocation/converter/PartListToMultipartListConverter.java
+++ 
b/swagger/swagger-invocation/invocation-springmvc/src/main/java/org/apache/servicecomb/swagger/invocation/converter/PartListToMultipartListConverter.java
@@ -20,21 +20,20 @@ import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.List;
 
-import jakarta.servlet.http.Part;
-
+import org.apache.servicecomb.foundation.common.ParameterizedTypeUtil;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.google.inject.util.Types;
+import jakarta.servlet.http.Part;
 
 public class PartListToMultipartListConverter implements Converter {
   @Override
   public Type getSrcType() {
-    return Types.newParameterizedType(List.class, Part.class);
+    return ParameterizedTypeUtil.make(List.class, Part.class);
   }
 
   @Override
   public Type getTargetType() {
-    return Types.newParameterizedType(List.class, MultipartFile.class);
+    return ParameterizedTypeUtil.make(List.class, MultipartFile.class);
   }
 
   @Override

Reply via email to