You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/01/18 03:43:25 UTC
[incubator-servicecomb-java-chassis] 04/05: SCB-251 swagger
generator disable Object restrict.
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/incubator-servicecomb-java-chassis.git
commit 4c55a28afaabfb0bbbb3b75b382f1820cbc35580
Author: wujimin <wu...@huawei.com>
AuthorDate: Thu Jan 18 00:20:06 2018 +0800
SCB-251 swagger generator disable Object restrict.
---
.../swagger/converter/ConverterMgr.java | 3 ++
.../converter/model/ModelImplConverter.java | 7 +++++
.../property/ObjectPropertyConverter.java | 32 ++++++++++++++++++++++
.../swagger/extend/ModelResolverExt.java | 12 --------
4 files changed, 42 insertions(+), 12 deletions(-)
diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/ConverterMgr.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/ConverterMgr.java
index c4ed1fb..672693a 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/ConverterMgr.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/ConverterMgr.java
@@ -33,6 +33,7 @@ import org.apache.servicecomb.swagger.converter.parameter.AbstractSerializablePa
import org.apache.servicecomb.swagger.converter.parameter.BodyParameterConverter;
import org.apache.servicecomb.swagger.converter.property.ArrayPropertyConverter;
import org.apache.servicecomb.swagger.converter.property.MapPropertyConverter;
+import org.apache.servicecomb.swagger.converter.property.ObjectPropertyConverter;
import org.apache.servicecomb.swagger.converter.property.RefPropertyConverter;
import org.apache.servicecomb.swagger.converter.property.StringPropertyConverter;
import org.apache.servicecomb.swagger.extend.property.ByteProperty;
@@ -67,6 +68,7 @@ import io.swagger.models.properties.FloatProperty;
import io.swagger.models.properties.IntegerProperty;
import io.swagger.models.properties.LongProperty;
import io.swagger.models.properties.MapProperty;
+import io.swagger.models.properties.ObjectProperty;
import io.swagger.models.properties.Property;
import io.swagger.models.properties.RefProperty;
import io.swagger.models.properties.StringProperty;
@@ -143,6 +145,7 @@ public final class ConverterMgr {
converterMap.put(ArrayProperty.class, new ArrayPropertyConverter());
converterMap.put(MapProperty.class, new MapPropertyConverter());
converterMap.put(StringProperty.class, new StringPropertyConverter());
+ converterMap.put(ObjectProperty.class, new ObjectPropertyConverter());
converterMap.put(ModelImpl.class, new ModelImplConverter());
converterMap.put(RefModel.class, new RefModelConverter());
diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/model/ModelImplConverter.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/model/ModelImplConverter.java
index a0d09d6..60f4234 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/model/ModelImplConverter.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/model/ModelImplConverter.java
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.databind.type.TypeFactory;
import io.swagger.models.ModelImpl;
import io.swagger.models.Swagger;
+import io.swagger.models.properties.ObjectProperty;
public class ModelImplConverter extends AbstractModelConverter {
@Override
@@ -48,6 +49,12 @@ public class ModelImplConverter extends AbstractModelConverter {
modelImpl.getAdditionalProperties());
}
+ if (ObjectProperty.TYPE.equals(modelImpl.getType())
+ && modelImpl.getProperties() == null
+ && modelImpl.getName() == null) {
+ return TypeFactory.defaultInstance().constructType(Object.class);
+ }
+
// 根据name、property动态生成class
if (packageName == null) {
throw new Error("packageName should not be null");
diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/property/ObjectPropertyConverter.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/property/ObjectPropertyConverter.java
new file mode 100644
index 0000000..c35e0f6
--- /dev/null
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/converter/property/ObjectPropertyConverter.java
@@ -0,0 +1,32 @@
+/*
+ * 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.converter.property;
+
+import org.apache.servicecomb.swagger.converter.Converter;
+
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.type.TypeFactory;
+
+import io.swagger.models.Swagger;
+
+public class ObjectPropertyConverter implements Converter {
+ @Override
+ public JavaType convert(ClassLoader classLoader, String packageName, Swagger swagger, Object def) {
+ return TypeFactory.defaultInstance().constructType(Object.class);
+ }
+
+}
diff --git a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/extend/ModelResolverExt.java b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/extend/ModelResolverExt.java
index 7748ef0..7f028ae 100644
--- a/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/extend/ModelResolverExt.java
+++ b/swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/extend/ModelResolverExt.java
@@ -32,8 +32,6 @@ import org.apache.servicecomb.swagger.extend.property.creator.InputStreamPropert
import org.apache.servicecomb.swagger.extend.property.creator.PartPropertyCreator;
import org.apache.servicecomb.swagger.extend.property.creator.PropertyCreator;
import org.apache.servicecomb.swagger.extend.property.creator.ShortPropertyCreator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import com.fasterxml.jackson.databind.JavaType;
@@ -48,8 +46,6 @@ import io.swagger.models.properties.StringProperty;
import io.swagger.util.Json;
public class ModelResolverExt extends ModelResolver {
- private static final Logger LOGGER = LoggerFactory.getLogger(ModelResolverExt.class);
-
private Map<Class<?>, PropertyCreator> propertyCreatorMap = new HashMap<>();
public ModelResolverExt() {
@@ -87,14 +83,6 @@ public class ModelResolverExt extends ModelResolver {
}
String msg = "Must be a concrete type.";
- if (type.getRawClass().equals(Object.class)) {
- LOGGER.warn("***********************");
- LOGGER.warn(type.getRawClass().getName() + " have some potential problems when working with "
- + "different platforms and transports. It's recommended to change your service definition. "
- + "This feature will be removed without notice in the future.");
- LOGGER.warn("***********************");
- }
-
if (type.isMapLikeType()) {
Class<?> keyTypeClass = type.getKeyType().getRawClass();
if (!String.class.equals(keyTypeClass)) {
--
To stop receiving notification emails like this one, please contact
"commits@servicecomb.apache.org" <co...@servicecomb.apache.org>.