提交 b01b01f5 编写于 作者: leon-baoliang's avatar leon-baoliang

Merge remote-tracking branch 'upstream/dev-1.1.0' into dev-1.1.0

......@@ -9,9 +9,11 @@
<packaging>jar</packaging>
<dependencies>
<dependency>
<dependency>
<groupId>cn.analysys</groupId>
<artifactId>escheduler-alert</artifactId>
</dependency>
<dependency>
<groupId>cn.analysys</groupId>
<artifactId>escheduler-server</artifactId>
<exclusions>
......
/*
* 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 cn.escheduler.api;
import cn.escheduler.alert.AlertServer;
import cn.escheduler.dao.ProcessDao;
import cn.escheduler.server.master.MasterServer;
import cn.escheduler.server.rpc.LoggerServer;
import cn.escheduler.server.worker.WorkerServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@ServletComponentScan
@ComponentScan("cn.escheduler")
@EnableSwagger2
public class CombinedApplicationServer extends SpringBootServletInitializer {
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext context = SpringApplication.run(ApiApplicationServer.class, args);
ProcessDao processDao = context.getBean(ProcessDao.class);
MasterServer master = new MasterServer(processDao);
master.run(processDao);
WorkerServer workerServer = new WorkerServer();
workerServer.run();
LoggerServer server = new LoggerServer();
server.start();
AlertServer alertServer = AlertServer.getInstance();
alertServer.start();
}
}
......@@ -75,7 +75,7 @@ public class AppConfiguration implements WebMvcConfigurer {
//i18n
registry.addInterceptor(localeChangeInterceptor());
registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html");
registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html", "/ui/**");
}
......@@ -84,6 +84,13 @@ public class AppConfiguration implements WebMvcConfigurer {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
registry.addResourceHandler("/ui/**").addResourceLocations("file:ui/");
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/ui/").setViewName("forward:/ui/index.html");
registry.addViewController("/").setViewName("forward:/ui/index.html");
}
@Override
......
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="120 seconds">
<property name="log.base" value="logs"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%highlight([%level]) %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{10}:[%line] - %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="TASKLOGFILE" class="cn.escheduler.server.worker.log.TaskLogAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<filter class="cn.escheduler.server.worker.log.TaskLogFilter"></filter>
<file>${log.base}/{processDefinitionId}/{processInstanceId}/{taskInstanceId}.log</file>
<encoder>
<pattern>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
<append>true</append>
</appender>
<appender name="COMBINEDLOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}/escheduler-combined.log</file>
<filter class="cn.escheduler.server.worker.log.WorkerLogFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.base}/escheduler-combined.%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern>
<maxHistory>168</maxHistory>
<maxFileSize>200MB</maxFileSize>
</rollingPolicy>
     
<encoder>
<pattern>
[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
  
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="TASKLOGFILE"/>
<appender-ref ref="COMBINEDLOGFILE"/>
</root>
</configuration>
\ No newline at end of file
......@@ -44,7 +44,7 @@ public class LoggerServer {
*/
private Server server;
private void start() throws IOException {
public void start() throws IOException {
/* The port on which the server should run */
int port = Constants.RPC_PORT;
server = ServerBuilder.forPort(port)
......
......@@ -189,11 +189,15 @@ const baseConfig = {
},
plugins: [
new webpack.ProvidePlugin({ vue: 'Vue', _: 'lodash' }),
new webpack.DefinePlugin({
PUBLIC_PATH: JSON.stringify(process.env.PUBLIC_PATH ? process.env.PUBLIC_PATH : '')
}),
new HtmlWebpackExtPlugin({
cache: true,
delimiter: '$',
locals: {
NODE_ENV:isProduction
NODE_ENV:isProduction,
PUBLIC_PATH: process.env.PUBLIC_PATH ? process.env.PUBLIC_PATH : ''
}
}),
...pages
......
/*
* 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.
*/
const merge = require('webpack-merge')
const prodConfig = require('./webpack.config.prod')
const config = merge.smart(prodConfig, {
output: {
publicPath: '/escheduler/ui/'
}
})
module.exports = config
......@@ -10,7 +10,8 @@
"lint": "standard \"**/*.{js,vue}\"",
"lint:fix": "standard \"**/*.{js,vue}\" --fix",
"start": "npm run dev",
"combo": "node ./build/combo.js"
"combo": "node ./build/combo.js",
"build:combined": "npm run clean && cross-env NODE_ENV=production PUBLIC_PATH=/escheduler/ui webpack --config ./build/webpack.config.combined.js"
},
"dependencies": {
"autoprefixer": "^9.1.0",
......
......@@ -37,7 +37,7 @@ export default {
signOut () {
io.post(`signOut`, res => {
setTimeout(() => {
window.location.href = '/view/login/index.html'
window.location.href = `${PUBLIC_PATH}/view/login/index.html`
}, 100)
}).catch(e => {
console.log(e)
......
......@@ -69,9 +69,9 @@
setTimeout(() => {
this.spinnerLoading = false
if (this.userName === 'admin') {
window.location.href = '/#/security/tenant'
window.location.href = `${PUBLIC_PATH}/#/security/tenant`
} else {
window.location.href = '/#/home'
window.location.href = `${PUBLIC_PATH}/#/home`
}
}, 1000)
}).catch(e => {
......
......@@ -44,7 +44,7 @@ io.config.timeout = 0
io.config.maxContentLength = 200000
io.config.validateStatus = function (status) {
if (status === 401 || status === 504) {
window.location.href = '/view/login/index.html'
window.location.href = `${PUBLIC_PATH}/view/login/index.html`
return
}
return status
......
......@@ -11,14 +11,14 @@
<meta name="theme-color" content="#4a8dee">
<meta name="msapplication-navbutton-color" content="#4a8dee">
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1">
<link rel="shortcut icon" href="/images/favicon.ico"/>
<link href="/combo/1.0.0/base.css?v1.0.0.1" rel="stylesheet">
<link href="/combo/1.0.0/3rd.css?v1.0.0.1" rel="stylesheet">
<link rel="shortcut icon" href="${locals.PUBLIC_PATH}/images/favicon.ico"/>
<link href="${locals.PUBLIC_PATH}/combo/1.0.0/base.css?v1.0.0.1" rel="stylesheet">
<link href="${locals.PUBLIC_PATH}/combo/1.0.0/3rd.css?v1.0.0.1" rel="stylesheet">
<!--[if lt IE 9]>
<script src="/combo/1.0.0/es5.js"></script>
<script src="${locals.PUBLIC_PATH}/combo/1.0.0/es5.js"></script>
<![endif]-->
<script>
let NODE_ENV = '${locals.NODE_ENV}'
</script>
\ No newline at end of file
</script>
......@@ -2,7 +2,7 @@
<!--<script src="https://s1.analysys.cn/libs/??jqueryui/1.12.1/jquery-ui.min.js,twitter-bootstrap/3.3.7/js/bootstrap.min.js,jsPlumb/2.8.5/js/jsplumb.min.js"></script> -->
<!--<script src="https://s1.analysys.cn/libs/??highlight.js/9.13.1/highlight.min.js,element-ui/2.4.9/index.js,clipboard.js/2.0.1/clipboard.min.js,d3/3.3.6/d3.min.js,dayjs/1.7.8/dayjs.min.js"></script> -->
<script src="/combo/1.0.0/3rd.js?v1.0.0.1" type="text/javascript"></script>
<script src="${locals.PUBLIC_PATH}/combo/1.0.0/3rd.js?v1.0.0.1" type="text/javascript"></script>
......@@ -34,6 +34,14 @@
<outputDirectory>.</outputDirectory>
</fileSet>
<fileSet>
<directory>escheduler-ui/dist</directory>
<includes>
<include>**/*.*</include>
</includes>
<outputDirectory>./ui</outputDirectory>
</fileSet>
<fileSet>
<directory>sql</directory>
<includes>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册