1-method-choosing #2
25
build.gradle
25
build.gradle
@ -1,14 +1,13 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
|
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
||||||
id 'org.springframework.boot' version '2.3.3.RELEASE'
|
id 'org.springframework.boot' version '2.6.4'
|
||||||
id "org.sonarqube" version "2.7"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
@ -16,26 +15,29 @@ jar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
maven {
|
||||||
mavenCentral()
|
url "https://repo.athene.tech/repository/maven-central/"
|
||||||
|
}
|
||||||
|
maven {
|
||||||
|
url "https://repo.athene.tech/repository/maven-releases/"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceCompatibility = 11
|
sourceCompatibility = '11'
|
||||||
targetCompatibility = 11
|
targetCompatibility = '11'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
ext {
|
ext {
|
||||||
versionSLF4J = '1.7.24'
|
versionSLF4J = '1.7.24'
|
||||||
versionJetty = '9.3.16.v20170120'
|
versionJetty = '9.3.16.v20170120'
|
||||||
versionJackson = '2.9.4'
|
versionJackson = '2.9.4'
|
||||||
versionSwagger = '2.5.0'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web'
|
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web'
|
||||||
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jetty'
|
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jetty'
|
||||||
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf'
|
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf'
|
||||||
implementation group: 'org.slf4j', name: 'slf4j-api', version: versionSLF4J
|
implementation group: 'org.slf4j', name: 'slf4j-api', version: versionSLF4J
|
||||||
implementation group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect'
|
implementation group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect', version: '3.1.0'
|
||||||
implementation group: 'org.javassist', name: 'javassist', version: '3.25.0-GA'
|
implementation group: 'org.javassist', name: 'javassist', version: '3.25.0-GA'
|
||||||
implementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versionJetty
|
implementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versionJetty
|
||||||
|
|
||||||
@ -43,8 +45,7 @@ dependencies {
|
|||||||
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: versionJackson
|
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: versionJackson
|
||||||
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versionJackson
|
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versionJackson
|
||||||
|
|
||||||
implementation group: 'io.springfox', name: 'springfox-swagger2', version: versionSwagger
|
implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.6.5'
|
||||||
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: versionSwagger
|
|
||||||
|
|
||||||
implementation group: 'org.webjars', name: 'jquery', version: '3.6.0'
|
implementation group: 'org.webjars', name: 'jquery', version: '3.6.0'
|
||||||
implementation group: 'org.webjars', name: 'bootstrap', version: '4.6.0'
|
implementation group: 'org.webjars', name: 'bootstrap', version: '4.6.0'
|
||||||
|
8
gradle/wrapper/gradle-wrapper.properties
vendored
8
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,12 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
|
# You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
#Mon Dec 28 10:00:20 PST 2015
|
#Mon Dec 28 10:00:20 PST 2015
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
|
||||||
|
@ -1,24 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
package ru.ulstu.configuration;
|
package ru.ulstu.configuration;
|
||||||
|
|
||||||
import com.google.common.base.Predicates;
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springdoc.core.GroupedOpenApi;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import springfox.documentation.builders.PathSelectors;
|
|
||||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
|
||||||
import springfox.documentation.spi.DocumentationType;
|
|
||||||
import springfox.documentation.spring.web.plugins.Docket;
|
|
||||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableSwagger2
|
|
||||||
public class SwaggerConfiguration {
|
public class SwaggerConfiguration {
|
||||||
|
private final Logger log = LoggerFactory.getLogger(SwaggerConfiguration.class);
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Docket swaggerApi() {
|
public GroupedOpenApi swaggerApi() {
|
||||||
return new Docket(DocumentationType.SWAGGER_2)
|
log.info("Creating Swagger API configuration bean");
|
||||||
.select()
|
return GroupedOpenApi.builder()
|
||||||
.apis(RequestHandlerSelectors.any())
|
.group("timetable-api")
|
||||||
.paths(Predicates.not(PathSelectors.regex("/error")))
|
.pathsToMatch(ApiConfiguration.API_1_0 + "**")
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ru.ulstu.configuration;
|
package ru.ulstu.configuration;
|
||||||
|
|
||||||
import nz.net.ultraq.thymeleaf.LayoutDialect;
|
import nz.net.ultraq.thymeleaf.layoutdialect.LayoutDialect;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.MessageSource;
|
import org.springframework.context.MessageSource;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ru.ulstu.controller;
|
package ru.ulstu.controller;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.Hidden;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -17,7 +18,6 @@ import ru.ulstu.datamodel.ts.TimeSeries;
|
|||||||
import ru.ulstu.datamodel.ts.TimeSeriesValue;
|
import ru.ulstu.datamodel.ts.TimeSeriesValue;
|
||||||
import ru.ulstu.db.DbService;
|
import ru.ulstu.db.DbService;
|
||||||
import ru.ulstu.service.TimeSeriesService;
|
import ru.ulstu.service.TimeSeriesService;
|
||||||
import springfox.documentation.annotations.ApiIgnore;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
@ -29,7 +29,7 @@ import java.util.stream.Collectors;
|
|||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@ApiIgnore
|
@Hidden
|
||||||
public class IndexController {
|
public class IndexController {
|
||||||
private final TimeSeriesService timeSeriesService;
|
private final TimeSeriesService timeSeriesService;
|
||||||
private final DbService dbService;
|
private final DbService dbService;
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ru.ulstu.controller;
|
package ru.ulstu.controller;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@ -43,7 +43,7 @@ public class TimeSeriesController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("getForecast")
|
@PostMapping("getForecast")
|
||||||
@ApiOperation("Получить прогноз временного ряда")
|
@Operation(description = "Получить прогноз временного ряда")
|
||||||
public ResponseEntity<ModelingResult> getForecastTimeSeries(@RequestBody ForecastParams forecastParams, HttpServletRequest request) throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException {
|
public ResponseEntity<ModelingResult> getForecastTimeSeries(@RequestBody ForecastParams forecastParams, HttpServletRequest request) throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException {
|
||||||
LOGGER.info("User ip: " + HttpUtils.getUserIp(request));
|
LOGGER.info("User ip: " + HttpUtils.getUserIp(request));
|
||||||
LOGGER.info("Forecast: " + forecastParams);
|
LOGGER.info("Forecast: " + forecastParams);
|
||||||
@ -54,7 +54,7 @@ public class TimeSeriesController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("getSmoothed")
|
@PostMapping("getSmoothed")
|
||||||
@ApiOperation("Получить сглаженный временной ряд")
|
@Operation(description = "Получить сглаженный временной ряд")
|
||||||
public ResponseEntity<ModelingResult> getSmoothedTimeSeries(@RequestBody TimeSeries timeSeries, HttpServletRequest request) throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
|
public ResponseEntity<ModelingResult> getSmoothedTimeSeries(@RequestBody TimeSeries timeSeries, HttpServletRequest request) throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
|
||||||
LOGGER.info("User ip: " + HttpUtils.getUserIp(request));
|
LOGGER.info("User ip: " + HttpUtils.getUserIp(request));
|
||||||
LOGGER.info("Time series for smoothing: " + timeSeries);
|
LOGGER.info("Time series for smoothing: " + timeSeries);
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ru.ulstu.controller;
|
package ru.ulstu.controller;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -30,25 +30,25 @@ public class UtilController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("isAlive")
|
@GetMapping("isAlive")
|
||||||
@ApiOperation("Проверка сервиса")
|
@Operation(description = "Проверка сервиса")
|
||||||
public ResponseEntity<Boolean> isAlive() {
|
public ResponseEntity<Boolean> isAlive() {
|
||||||
return new ResponseEntity<>(true, HttpStatus.OK);
|
return new ResponseEntity<>(true, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("getRandom")
|
@GetMapping("getRandom")
|
||||||
@ApiOperation("Получить временной ряд рандомной длины")
|
@Operation(description = "Получить временной ряд рандомной длины")
|
||||||
public ResponseEntity<TimeSeries> getRandomTimeSeries(@RequestParam("length") int length) {
|
public ResponseEntity<TimeSeries> getRandomTimeSeries(@RequestParam("length") int length) {
|
||||||
return new ResponseEntity<>(utilService.getRandomTimeSeries(length), HttpStatus.OK);
|
return new ResponseEntity<>(utilService.getRandomTimeSeries(length), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("getFromString")
|
@GetMapping("getFromString")
|
||||||
@ApiOperation("Преобразовать строку с разделителями во временной ряд")
|
@Operation(description = "Преобразовать строку с разделителями во временной ряд")
|
||||||
public ResponseEntity<TimeSeries> getTimeSeriesFromString(@RequestParam("tsString") String tsString) {
|
public ResponseEntity<TimeSeries> getTimeSeriesFromString(@RequestParam("tsString") String tsString) {
|
||||||
return new ResponseEntity<>(utilService.getTimeSeriesFromString(tsString), HttpStatus.OK);
|
return new ResponseEntity<>(utilService.getTimeSeriesFromString(tsString), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("timeSeriesToString")
|
@PostMapping("timeSeriesToString")
|
||||||
@ApiOperation("Преобразовать временной ряд в строку с разделителями")
|
@Operation(description = "Преобразовать временной ряд в строку с разделителями")
|
||||||
public ResponseEntity<String> getTimeSeriesToString(@RequestBody TimeSeries timeSeries) {
|
public ResponseEntity<String> getTimeSeriesToString(@RequestBody TimeSeries timeSeries) {
|
||||||
return new ResponseEntity<>(utilService.getTimeSeriesToString(timeSeries), HttpStatus.OK);
|
return new ResponseEntity<>(utilService.getTimeSeriesToString(timeSeries), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -7,7 +7,6 @@
|
|||||||
package ru.ulstu.method;
|
package ru.ulstu.method;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
import ru.ulstu.TimeSeriesUtils;
|
import ru.ulstu.TimeSeriesUtils;
|
||||||
import ru.ulstu.datamodel.Model;
|
import ru.ulstu.datamodel.Model;
|
||||||
import ru.ulstu.datamodel.exception.ForecastValidateException;
|
import ru.ulstu.datamodel.exception.ForecastValidateException;
|
||||||
@ -20,7 +19,7 @@ import java.time.temporal.ChronoUnit;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Наиболее общая логика моделировании и прогнозирования временных рядов
|
* Наиболее общая логика моделирования и прогнозирования временных рядов
|
||||||
*/
|
*/
|
||||||
public abstract class Method {
|
public abstract class Method {
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@ -117,8 +116,10 @@ public abstract class Method {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@JsonProperty("name")
|
//@JsonProperty("name")
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return getClass().getSimpleName();
|
return getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract String getName();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -92,4 +92,9 @@ public class AddTrendAddSeason extends Method {
|
|||||||
public List<MethodParameter> getAvailableParameters() {
|
public List<MethodParameter> getAvailableParameters() {
|
||||||
return AddTrendAddSeasonModel.getAvailableParameters();
|
return AddTrendAddSeasonModel.getAvailableParameters();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "Экспоненциальный метод с аддитивным трендом и аддитивной сезонностью (метод Хольта-Уинтерса)";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -58,4 +58,9 @@ public class AddTrendNoSeason extends Method {
|
|||||||
public List<MethodParameter> getAvailableParameters() {
|
public List<MethodParameter> getAvailableParameters() {
|
||||||
return AddTrendNoSeasonModel.getAvailableParameters();
|
return AddTrendNoSeasonModel.getAvailableParameters();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "Экспоненциальный метод с аддитивным трендом без сезонной компоненты (метод Хольта)";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
* Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -48,4 +48,9 @@ public class NoTrendNoSeason extends Method {
|
|||||||
public List<MethodParameter> getAvailableParameters() {
|
public List<MethodParameter> getAvailableParameters() {
|
||||||
return NoTrendNoSeasonModel.getAvailableParameters();
|
return NoTrendNoSeasonModel.getAvailableParameters();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "Экспоненциальный метод без трендовой и сезонной компоненты";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
# Copyright (C) 2022 Anton Romanov - All Rights Reserved
|
||||||
# You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
# You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
@ -11,3 +11,4 @@ spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false
|
|||||||
joinfaces.primefaces.theme=afterwork
|
joinfaces.primefaces.theme=afterwork
|
||||||
joinfaces.primefaces.font-awesome=true
|
joinfaces.primefaces.font-awesome=true
|
||||||
time-series.db-path=time-series-db
|
time-series.db-path=time-series-db
|
||||||
|
messages.basename.path=messages_en.properties
|
Loading…
Reference in New Issue
Block a user