This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 32a64bd Update webapp for rocketbot ui (#2541)
32a64bd is described below
commit 32a64bd5f20084f82bc2784663f8df47c47944fe
Author: Gao Hongtao <[email protected]>
AuthorDate: Sat Apr 27 07:59:21 2019 +0800
Update webapp for rocketbot ui (#2541)
* Update webapp to support rocketbot
* Revert pom.xml
* Update webapp for rocketbot ui
* Add NotFoundHandler to handle SPA url routing
* Update ui dockerfile with tlp tar name
---
.../apm/webapp/proxy/HttpClientTools.java | 73 ----------------------
.../apm/webapp/proxy/NotFoundHandler.java | 50 +++++++++++++++
apm-webapp/src/main/resources/application.yml | 6 ++
docker/ui/Dockerfile | 2 +-
4 files changed, 57 insertions(+), 74 deletions(-)
diff --git
a/apm-webapp/src/main/java/org/apache/skywalking/apm/webapp/proxy/HttpClientTools.java
b/apm-webapp/src/main/java/org/apache/skywalking/apm/webapp/proxy/HttpClientTools.java
deleted file mode 100644
index 8fcc974..0000000
---
a/apm-webapp/src/main/java/org/apache/skywalking/apm/webapp/proxy/HttpClientTools.java
+++ /dev/null
@@ -1,73 +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.skywalking.apm.webapp.proxy;
-
-import org.apache.http.HttpEntity;
-import org.apache.http.NameValuePair;
-import org.apache.http.client.entity.UrlEncodedFormEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.util.EntityUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.List;
-
-/**
- * @author peng-yongsheng
- */
-public enum HttpClientTools {
- INSTANCE;
-
- private Logger logger = LoggerFactory.getLogger(HttpClientTools.class);
-
- public String get(String url, List<NameValuePair> params) throws
IOException {
- CloseableHttpClient httpClient = HttpClients.createDefault();
- try {
- HttpGet httpget = new HttpGet(url);
- if (params == null) {
- httpget.setURI(new URI(httpget.getURI().toString()));
- } else {
- String paramStr = EntityUtils.toString(new
UrlEncodedFormEntity(params));
- httpget.setURI(new URI(httpget.getURI().toString() + "?" +
paramStr));
- }
- logger.debug("executing get request %s", httpget.getURI());
-
- try (CloseableHttpResponse response = httpClient.execute(httpget))
{
- HttpEntity entity = response.getEntity();
- if (entity != null) {
- return EntityUtils.toString(entity);
- }
- }
- } catch (Exception e) {
- logger.warn("bad url=" + url, e);
- } finally {
- try {
- httpClient.close();
- } catch (IOException e) {
- logger.warn("bad url=" + url, e);
- }
- }
- return null;
- }
-}
diff --git
a/apm-webapp/src/main/java/org/apache/skywalking/apm/webapp/proxy/NotFoundHandler.java
b/apm-webapp/src/main/java/org/apache/skywalking/apm/webapp/proxy/NotFoundHandler.java
new file mode 100644
index 0000000..183bc5c
--- /dev/null
+++
b/apm-webapp/src/main/java/org/apache/skywalking/apm/webapp/proxy/NotFoundHandler.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skywalking.apm.webapp.proxy;
+
+import org.slf4j.LoggerFactory;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.util.StreamUtils;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.servlet.NoHandlerFoundException;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+/**
+ * NotFoundHandler handles the single page application url routing.
+ *
+ * @author gaohongtao
+ */
+@ControllerAdvice
+public class NotFoundHandler {
+ @ExceptionHandler(NoHandlerFoundException.class)
+ public ResponseEntity<String> renderDefaultPage() {
+ try {
+ String body = StreamUtils.copyToString(new
ClassPathResource("/public/index.html").getInputStream(),
Charset.defaultCharset());
+ return
ResponseEntity.ok().contentType(MediaType.TEXT_HTML).body(body);
+ } catch (final IOException e) {
+ LoggerFactory.getLogger(NotFoundHandler.class).error("err", e);
+ return
ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("There was an
error completing the action.");
+ }
+ }
+}
diff --git a/apm-webapp/src/main/resources/application.yml
b/apm-webapp/src/main/resources/application.yml
index c5acbfb..1169abd 100644
--- a/apm-webapp/src/main/resources/application.yml
+++ b/apm-webapp/src/main/resources/application.yml
@@ -37,4 +37,10 @@ security:
user:
admin:
password: admin
+
+spring:
+ resources:
+ add-mappings: false
+ mvc:
+ throw-exception-if-no-handler-found: true
diff --git a/docker/ui/Dockerfile b/docker/ui/Dockerfile
index 9f2958e..4efaa5a 100644
--- a/docker/ui/Dockerfile
+++ b/docker/ui/Dockerfile
@@ -16,7 +16,7 @@
FROM openjdk:8u181-jdk-stretch
-ENV DIST_NAME=apache-skywalking-apm-incubating-bin \
+ENV DIST_NAME=apache-skywalking-apm-bin \
JAVA_OPTS=" -Xms256M "
COPY "$DIST_NAME.tar.gz" /