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

liubao pushed a commit to branch 1.x.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-samples.git

commit 51506fb30d1de394ac4c5890bd10c5ead09efce7
Author: liubao <bi...@qq.com>
AuthorDate: Sat Nov 5 10:06:42 2022 +0800

    update version
---
 .../samples/porter/file/api/InspectorEndpoint.java | 207 ---------------------
 porter_lightweight/pom.xml                         |   2 +-
 2 files changed, 1 insertion(+), 208 deletions(-)

diff --git 
a/porter_lightweight/api/common/endpoint/src/main/java/org/apache/servicecomb/samples/porter/file/api/InspectorEndpoint.java
 
b/porter_lightweight/api/common/endpoint/src/main/java/org/apache/servicecomb/samples/porter/file/api/InspectorEndpoint.java
deleted file mode 100644
index 77487fd..0000000
--- 
a/porter_lightweight/api/common/endpoint/src/main/java/org/apache/servicecomb/samples/porter/file/api/InspectorEndpoint.java
+++ /dev/null
@@ -1,207 +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.samples.porter.file.api;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.nio.charset.StandardCharsets;
-import java.util.Collection;
-import java.util.Map.Entry;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import javax.servlet.http.Part;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response.Status;
-
-import 
org.apache.servicecomb.common.rest.resource.ClassPathStaticResourceHandler;
-import org.apache.servicecomb.common.rest.resource.StaticResourceHandler;
-import org.apache.servicecomb.config.inject.ConfigObjectFactory;
-import org.apache.servicecomb.core.SCBEngine;
-import org.apache.servicecomb.foundation.common.part.InputStreamPart;
-import org.apache.servicecomb.inspector.internal.InspectorConfig;
-import org.apache.servicecomb.inspector.internal.swagger.AppendStyleProcessor;
-import org.apache.servicecomb.inspector.internal.swagger.SchemaFormat;
-import org.apache.servicecomb.provider.rest.common.RestSchema;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.swagger.SwaggerUtils;
-import org.apache.servicecomb.swagger.invocation.Response;
-import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
-import org.asciidoctor.Asciidoctor;
-import org.asciidoctor.Asciidoctor.Factory;
-import org.asciidoctor.Attributes;
-import org.asciidoctor.AttributesBuilder;
-import org.asciidoctor.OptionsBuilder;
-import org.asciidoctor.SafeMode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Ordering;
-
-import io.github.swagger2markup.Swagger2MarkupConfig;
-import io.github.swagger2markup.Swagger2MarkupConverter;
-import io.github.swagger2markup.Swagger2MarkupConverter.Builder;
-import io.github.swagger2markup.builder.Swagger2MarkupConfigBuilder;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.models.parameters.Parameter;
-
-// copied from org.apache.servicecomb.inspector.internal.InspectorImpl;
-@RestSchema(schemaId = "inspector")
-@Path("/inspector")
-public class InspectorEndpoint {
-  private static final Logger LOGGER = 
LoggerFactory.getLogger(InspectorEndpoint.class);
-
-  private InspectorConfig inspectorConfig;
-
-  private volatile Asciidoctor asciidoctor;
-
-  private StaticResourceHandler resourceHandler = new 
ClassPathStaticResourceHandler();
-
-  public InspectorEndpoint() {
-    this.inspectorConfig = 
SCBEngine.getInstance().getPriorityPropertyManager().createConfigObject(InspectorConfig.class);
-  }
-
-  @Path("/schemas")
-  @GET
-  public Collection<String> getSchemaIds() {
-    return 
RegistryUtils.getServiceRegistry().getMicroservice().getSchemaMap().keySet();
-  }
-
-  @Path("/download/schemas")
-  @GET
-  @ApiResponse(code = 200, message = "", response = File.class)
-  public Response downloadSchemas(@QueryParam("format") SchemaFormat format) {
-    if (format == null) {
-      format = SchemaFormat.SWAGGER;
-    }
-
-    // normally, schema will not be too big, just save them in memory 
temporarily
-    ByteArrayOutputStream os = new ByteArrayOutputStream();
-    try (ZipOutputStream zos = new ZipOutputStream(os)) {
-      for (Entry<String, String> entry : 
RegistryUtils.getServiceRegistry().getMicroservice().getSchemaMap().entrySet()) 
{
-        // begin writing a new ZIP entry, positions the stream to the start of 
the entry data
-        zos.putNextEntry(new ZipEntry(entry.getKey() + format.getSuffix()));
-
-        String content = entry.getValue();
-        if (SchemaFormat.HTML.equals(format)) {
-          content = swaggerToHtml(content);
-        }
-        zos.write(content.getBytes(StandardCharsets.UTF_8));
-        zos.closeEntry();
-      }
-    } catch (Throwable e) {
-      String msg = "failed to create schemas zip file, format=" + format + ".";
-      LOGGER.error(msg, e);
-      return Response.failResp(new 
InvocationException(Status.INTERNAL_SERVER_ERROR, msg));
-    }
-
-    Part part = new InputStreamPart(null, new 
ByteArrayInputStream(os.toByteArray()))
-        .setSubmittedFileName(RegistryUtils.getMicroservice().getServiceName() 
+ format.getSuffix() + ".zip");
-    return Response.ok(part);
-  }
-
-  @Path("/schemas/{schemaId}")
-  @GET
-  @ApiResponse(code = 200, message = "", response = File.class)
-  public Response getSchemaContentById(@PathParam("schemaId") String schemaId,
-      @QueryParam("format") SchemaFormat format, @QueryParam("download") 
boolean download) {
-    String swaggerContent = 
RegistryUtils.getServiceRegistry().getMicroservice().getSchemaMap().get(schemaId);
-    if (swaggerContent == null) {
-      return Response.failResp(new InvocationException(Status.NOT_FOUND, 
Status.NOT_FOUND.getReasonPhrase()));
-    }
-
-    if (format == null) {
-      format = SchemaFormat.SWAGGER;
-    }
-
-    byte[] bytes;
-    if (SchemaFormat.HTML.equals(format)) {
-      String html = swaggerToHtml(swaggerContent);
-      bytes = html.getBytes(StandardCharsets.UTF_8);
-    } else {
-      bytes = swaggerContent.getBytes(StandardCharsets.UTF_8);
-    }
-
-    Part part = new InputStreamPart(null, new ByteArrayInputStream(bytes))
-        .setSubmittedFileName(schemaId + format.getSuffix());
-
-    Response response = Response.ok(part);
-    if (!download) {
-      response.getHeaders().addHeader(HttpHeaders.CONTENT_DISPOSITION, 
"inline");
-    }
-    response.getHeaders().addHeader(HttpHeaders.CONTENT_TYPE, 
MediaType.TEXT_HTML);
-    return response;
-  }
-
-  // swagger not support cookie parameter
-  // so if swaggerContent contains cookie parameter, will cause problem.
-  private String swaggerToHtml(String swaggerContent) {
-    if (asciidoctor == null) {
-      synchronized (this) {
-        if (asciidoctor == null) {
-          // very slow, need a few seconds
-          LOGGER.info("create AsciiDoctor start.");
-          asciidoctor = Factory.create();
-          
asciidoctor.javaExtensionRegistry().docinfoProcessor(AppendStyleProcessor.class);
-          LOGGER.info("create AsciiDoctor end.");
-        }
-      }
-    }
-
-    // swagger to markup
-    Builder markupBuilder = 
Swagger2MarkupConverter.from(SwaggerUtils.parseSwagger(swaggerContent));
-    // default not support cookie parameter
-    // so must customize config
-    Swagger2MarkupConfig markupConfig = new Swagger2MarkupConfigBuilder()
-        .withParameterOrdering(Ordering
-            .explicit("path", "query", "header", "cookie", "formData", "body")
-            .onResultOf(Parameter::getIn))
-        .build();
-    String markup = markupBuilder.withConfig(markupConfig).build().toString();
-
-    // markup to html
-    OptionsBuilder builder = OptionsBuilder.options();
-    builder.docType("book")
-        .backend("html5")
-        .headerFooter(true)
-        .safe(SafeMode.UNSAFE)
-        .attributes(AttributesBuilder.attributes()
-            .attribute("toclevels", 3)
-            .attribute(Attributes.TOC_2, true)
-            .attribute(Attributes.TOC_POSITION, "left")
-            .attribute(Attributes.LINK_CSS, true)
-            .attribute(Attributes.STYLESHEET_NAME, 
inspectorConfig.getAsciidoctorCss())
-            .attribute(Attributes.SECTION_NUMBERS, true)
-            .attribute(Attributes.SECT_NUM_LEVELS, 4));
-    return asciidoctor.convert(markup, builder.asMap());
-  }
-
-  @Path("/{path : .+}")
-  @GET
-  @ApiResponse(code = 200, message = "", response = File.class)
-  public Response getStaticResource(@PathParam("path") String path) {
-    return resourceHandler.handle(path);
-  }
-}
-
diff --git a/porter_lightweight/pom.xml b/porter_lightweight/pom.xml
index 2b7d58c..db33110 100644
--- a/porter_lightweight/pom.xml
+++ b/porter_lightweight/pom.xml
@@ -50,7 +50,7 @@
       <dependency>
         <groupId>org.apache.servicecomb</groupId>
         <artifactId>java-chassis-dependencies</artifactId>
-        <version>1.3.0</version>
+        <version>1.3.10</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>

Reply via email to