From 03b8675c7851673cf972827d63b64596e51964d4 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Mon, 16 Jan 2023 22:37:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BD=D0=B0=20SpringBoot=203.0.1=20=D0=98=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B1=D0=B0=D0=B3?= =?UTF-8?q?=D0=B0=20=D1=81=20=D1=82=D0=B0=D0=B9=D0=BC=D0=B0=D1=83=D1=82?= =?UTF-8?q?=D0=BE=D0=BC=20=D1=83=20OkHttp3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bot-context/pom.xml | 4 +- .../context/domain/entity/AppSetting.java | 9 +- .../context/domain/entity/Discussion.java | 20 +-- .../context/domain/entity/MergeRequest.java | 28 ++--- .../entity/MergeRequestForDiscussion.java | 15 ++- .../gitlab/context/domain/entity/Note.java | 16 +-- .../gitlab/context/domain/entity/Person.java | 9 +- .../context/domain/entity/Pipeline.java | 18 +-- .../gitlab/context/domain/entity/Project.java | 8 +- bot-core/pom.xml | 21 +++- .../service/impl/AppSettingServiceImpl.java | 4 + .../core/service/parser/DiscussionParser.java | 4 +- .../service/parser/MergeRequestParser.java | 4 +- .../core/service/parser/ProjectParser.java | 4 +- .../GetAllDiscussionForMergeRequestTask.java | 6 +- .../GetAllMergeRequestForProjectTask.java | 6 +- .../parser/forktask/GetPipelineShortTask.java | 7 +- .../parser/forktask/GetPipelineTask.java | 7 +- .../forktask/GetSingleMergeRequestTask.java | 8 +- .../bot/gitlab/core/utils/HttpHeader.java | 33 +++++ .../bot/gitlab/core/utils/HttpParse.java | 114 ++++++++++++++++++ .../bot/gitlab/core/utils/OkHttpUtil.java | 61 ++++++++++ gitlab-app/pom.xml | 5 - .../bot/gitlab/config/AppConfig.java | 4 +- .../gitlab/scheduler/SchedulerService.java | 4 +- gitlab-app/src/main/resources/banner.txt | 2 +- pom.xml | 33 +---- .../gitlab/telegram/service/StartNotify.java | 3 +- 28 files changed, 325 insertions(+), 132 deletions(-) create mode 100644 bot-core/src/main/java/dev/struchkov/bot/gitlab/core/utils/HttpHeader.java create mode 100644 bot-core/src/main/java/dev/struchkov/bot/gitlab/core/utils/HttpParse.java create mode 100644 bot-core/src/main/java/dev/struchkov/bot/gitlab/core/utils/OkHttpUtil.java diff --git a/bot-context/pom.xml b/bot-context/pom.xml index a644b61..5bd1fd6 100644 --- a/bot-context/pom.xml +++ b/bot-context/pom.xml @@ -38,8 +38,8 @@ - javax.persistence - javax.persistence-api + jakarta.persistence + jakarta.persistence-api diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/AppSetting.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/AppSetting.java index c58bb70..a1224c1 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/AppSetting.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/AppSetting.java @@ -1,13 +1,12 @@ package dev.struchkov.bot.gitlab.context.domain.entity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - /** * Основные настройки приложения. * diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Discussion.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Discussion.java index 21516bb..ef20605 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Discussion.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Discussion.java @@ -1,19 +1,19 @@ package dev.struchkov.bot.gitlab.context.domain.entity; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; -import javax.persistence.Table; import java.util.List; import java.util.Optional; diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/MergeRequest.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/MergeRequest.java index 9d44b38..b51d692 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/MergeRequest.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/MergeRequest.java @@ -3,24 +3,24 @@ package dev.struchkov.bot.gitlab.context.domain.entity; import dev.struchkov.bot.gitlab.context.domain.MergeRequestState; import dev.struchkov.haiti.utils.fieldconstants.annotation.FieldNames; import dev.struchkov.haiti.utils.fieldconstants.domain.Mode; +import jakarta.persistence.CascadeType; +import jakarta.persistence.CollectionTable; +import jakarta.persistence.Column; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import javax.persistence.CascadeType; -import javax.persistence.CollectionTable; -import javax.persistence.Column; -import javax.persistence.ElementCollection; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; -import javax.persistence.Table; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashSet; diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/MergeRequestForDiscussion.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/MergeRequestForDiscussion.java index d6deef4..f1000ae 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/MergeRequestForDiscussion.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/MergeRequestForDiscussion.java @@ -1,17 +1,16 @@ package dev.struchkov.bot.gitlab.context.domain.entity; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - /** * @author upagge 12.09.2020 */ diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Note.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Note.java index 608c2a8..677bef2 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Note.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Note.java @@ -1,19 +1,19 @@ package dev.struchkov.bot.gitlab.context.domain.entity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; import java.time.LocalDateTime; -import static javax.persistence.CascadeType.MERGE; -import static javax.persistence.CascadeType.PERSIST; +import static jakarta.persistence.CascadeType.MERGE; +import static jakarta.persistence.CascadeType.PERSIST; @Getter @Setter diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Person.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Person.java index 6f5878b..bdb363b 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Person.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Person.java @@ -2,15 +2,14 @@ package dev.struchkov.bot.gitlab.context.domain.entity; import dev.struchkov.haiti.utils.fieldconstants.annotation.FieldNames; import dev.struchkov.haiti.utils.fieldconstants.domain.Mode; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - /** * @author upagge 14.01.2021 */ diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Pipeline.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Pipeline.java index 16b8bc1..2471935 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Pipeline.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Pipeline.java @@ -2,19 +2,19 @@ package dev.struchkov.bot.gitlab.context.domain.entity; import dev.struchkov.bot.gitlab.context.domain.PipelineStatus; import dev.struchkov.haiti.utils.fieldconstants.annotation.FieldNames; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; import java.time.LocalDateTime; /** diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Project.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Project.java index 5780992..aeb1e75 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Project.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/entity/Project.java @@ -1,13 +1,13 @@ package dev.struchkov.bot.gitlab.context.domain.entity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; import java.time.LocalDateTime; /** diff --git a/bot-core/pom.xml b/bot-core/pom.xml index e8f11df..0063051 100644 --- a/bot-core/pom.xml +++ b/bot-core/pom.xml @@ -54,11 +54,6 @@ postgresql - - dev.struchkov.haiti.utils - haiti-utils-network - - dev.struchkov.bot.gitlab gitlab-sdk @@ -79,6 +74,22 @@ com.fasterxml.jackson.core jackson-databind + + + org.hibernate.validator + hibernate-validator + + + + javax.el + javax.el-api + 3.0.0 + + + org.glassfish + jakarta.el + 4.0.2 + \ No newline at end of file diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/impl/AppSettingServiceImpl.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/impl/AppSettingServiceImpl.java index c6ccff6..8441d7d 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/impl/AppSettingServiceImpl.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/impl/AppSettingServiceImpl.java @@ -5,6 +5,7 @@ import dev.struchkov.bot.gitlab.context.repository.AppSettingRepository; import dev.struchkov.bot.gitlab.context.service.AppSettingService; import dev.struchkov.haiti.context.exception.NotFoundException; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -17,6 +18,7 @@ import static dev.struchkov.haiti.context.exception.NotFoundException.notFoundEx * * @author upagge 16.01.2021 */ +@Slf4j @Service @RequiredArgsConstructor public class AppSettingServiceImpl implements AppSettingService { @@ -36,6 +38,7 @@ public class AppSettingServiceImpl implements AppSettingService { public void disableFirstStart() { final AppSetting appSetting = getAppSetting(); appSetting.setFirstStart(false); + log.info("Первичная настройка закончена"); } @Override @@ -49,6 +52,7 @@ public class AppSettingServiceImpl implements AppSettingService { public void turnOnAllNotify() { final AppSetting appSetting = getAppSetting(); appSetting.setEnableNotify(true); + log.info("Получение всех уведомлений активировано"); } private AppSetting getAppSetting() { diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/DiscussionParser.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/DiscussionParser.java index 575b6fa..8dea909 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/DiscussionParser.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/DiscussionParser.java @@ -9,8 +9,8 @@ import dev.struchkov.bot.gitlab.context.service.DiscussionService; import dev.struchkov.bot.gitlab.context.service.MergeRequestsService; import dev.struchkov.bot.gitlab.core.config.properties.GitlabProperty; import dev.struchkov.bot.gitlab.core.config.properties.PersonProperty; +import dev.struchkov.bot.gitlab.core.utils.HttpParse; import dev.struchkov.bot.gitlab.sdk.domain.DiscussionJson; -import dev.struchkov.haiti.utils.network.HttpParse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.convert.ConversionService; @@ -28,11 +28,11 @@ import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; +import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT; import static dev.struchkov.bot.gitlab.core.utils.StringUtils.H_PRIVATE_TOKEN; import static dev.struchkov.haiti.utils.Checker.checkFalse; import static dev.struchkov.haiti.utils.Checker.checkNotEmpty; import static dev.struchkov.haiti.utils.Checker.checkNotNull; -import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT; /** * Парсер обсуждений. diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/MergeRequestParser.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/MergeRequestParser.java index ba5860a..7742d08 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/MergeRequestParser.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/MergeRequestParser.java @@ -11,10 +11,10 @@ import dev.struchkov.bot.gitlab.core.config.properties.GitlabProperty; import dev.struchkov.bot.gitlab.core.config.properties.PersonProperty; import dev.struchkov.bot.gitlab.core.service.parser.forktask.GetAllMergeRequestForProjectTask; import dev.struchkov.bot.gitlab.core.service.parser.forktask.GetSingleMergeRequestTask; +import dev.struchkov.bot.gitlab.core.utils.HttpParse; import dev.struchkov.bot.gitlab.core.utils.StringUtils; import dev.struchkov.bot.gitlab.sdk.domain.CommitJson; import dev.struchkov.bot.gitlab.sdk.domain.MergeRequestJson; -import dev.struchkov.haiti.utils.network.HttpParse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.convert.ConversionService; @@ -31,11 +31,11 @@ import java.util.concurrent.ForkJoinTask; import java.util.stream.Collectors; import java.util.stream.Stream; +import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT; import static dev.struchkov.haiti.utils.Checker.checkNotEmpty; import static dev.struchkov.haiti.utils.Checker.checkNotNull; import static dev.struchkov.haiti.utils.concurrent.ForkJoinUtils.pullTaskResult; import static dev.struchkov.haiti.utils.concurrent.ForkJoinUtils.pullTaskResults; -import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT; @Slf4j @Service diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/ProjectParser.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/ProjectParser.java index a36329e..1830177 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/ProjectParser.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/ProjectParser.java @@ -7,10 +7,10 @@ import dev.struchkov.bot.gitlab.context.service.PersonService; import dev.struchkov.bot.gitlab.context.service.ProjectService; import dev.struchkov.bot.gitlab.core.config.properties.GitlabProperty; import dev.struchkov.bot.gitlab.core.config.properties.PersonProperty; +import dev.struchkov.bot.gitlab.core.utils.HttpParse; import dev.struchkov.bot.gitlab.core.utils.StringUtils; import dev.struchkov.bot.gitlab.sdk.domain.PersonJson; import dev.struchkov.bot.gitlab.sdk.domain.ProjectJson; -import dev.struchkov.haiti.utils.network.HttpParse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.core.convert.ConversionService; @@ -22,8 +22,8 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT; import static dev.struchkov.haiti.context.exception.ConvertException.convertException; -import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT; /** * Парсер проектов. diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetAllDiscussionForMergeRequestTask.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetAllDiscussionForMergeRequestTask.java index f929d18..217137d 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetAllDiscussionForMergeRequestTask.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetAllDiscussionForMergeRequestTask.java @@ -1,7 +1,7 @@ package dev.struchkov.bot.gitlab.core.service.parser.forktask; +import dev.struchkov.bot.gitlab.core.utils.HttpParse; import dev.struchkov.bot.gitlab.sdk.domain.DiscussionJson; -import dev.struchkov.haiti.utils.network.HttpParse; import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -10,9 +10,9 @@ import java.text.MessageFormat; import java.util.List; import java.util.concurrent.RecursiveTask; +import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT; import static dev.struchkov.bot.gitlab.core.utils.StringUtils.H_PRIVATE_TOKEN; import static dev.struchkov.haiti.utils.Checker.checkNotEmpty; -import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT; @AllArgsConstructor @RequiredArgsConstructor @@ -29,7 +29,7 @@ public class GetAllDiscussionForMergeRequestTask extends RecursiveTask compute() { - Thread.sleep(200); + Thread.sleep(100); final List jsons = getDiscussionJson(); if (checkNotEmpty(jsons) && jsons.size() == PAGE_COUNT) { final var newTask = new GetAllDiscussionForMergeRequestTask(discussionsUrl, projectId, mergeRequestTwoId, personalGitlabToken, page + 1); diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetAllMergeRequestForProjectTask.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetAllMergeRequestForProjectTask.java index 41fe93a..7c2e1e6 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetAllMergeRequestForProjectTask.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetAllMergeRequestForProjectTask.java @@ -1,8 +1,8 @@ package dev.struchkov.bot.gitlab.core.service.parser.forktask; +import dev.struchkov.bot.gitlab.core.utils.HttpParse; import dev.struchkov.bot.gitlab.core.utils.StringUtils; import dev.struchkov.bot.gitlab.sdk.domain.MergeRequestJson; -import dev.struchkov.haiti.utils.network.HttpParse; import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -12,8 +12,8 @@ import java.text.MessageFormat; import java.util.List; import java.util.concurrent.RecursiveTask; +import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT; import static dev.struchkov.haiti.utils.Checker.checkNotEmpty; -import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT; @Slf4j @AllArgsConstructor @@ -30,7 +30,7 @@ public class GetAllMergeRequestForProjectTask extends RecursiveTask compute() { - Thread.sleep(200); + Thread.sleep(100); final List mergeRequestJsons = getMergeRequestJsons(); if (checkNotEmpty(mergeRequestJsons) && mergeRequestJsons.size() == PAGE_COUNT) { final GetAllMergeRequestForProjectTask newTask = new GetAllMergeRequestForProjectTask(projectId, pageNumber + 1, urlMrOpen, gitlabToken); diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetPipelineShortTask.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetPipelineShortTask.java index 456e528..fe49360 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetPipelineShortTask.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetPipelineShortTask.java @@ -1,8 +1,8 @@ package dev.struchkov.bot.gitlab.core.service.parser.forktask; +import dev.struchkov.bot.gitlab.core.utils.HttpParse; import dev.struchkov.bot.gitlab.core.utils.StringUtils; import dev.struchkov.bot.gitlab.sdk.domain.PipelineShortJson; -import dev.struchkov.haiti.utils.network.HttpParse; import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -13,7 +13,8 @@ import java.time.LocalDateTime; import java.util.List; import java.util.concurrent.RecursiveTask; -import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT; +import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT; + @Slf4j @AllArgsConstructor @@ -31,7 +32,7 @@ public class GetPipelineShortTask extends RecursiveTask> @Override @SneakyThrows protected List compute() { - Thread.sleep(200); + Thread.sleep(100); final List jsons = getPipelineJsons(); if (jsons.size() == PAGE_COUNT) { final GetPipelineShortTask newTask = new GetPipelineShortTask(urlPipelines, projectId, pageNumber + 1, lastUpdate, gitlabToken); diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetPipelineTask.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetPipelineTask.java index 13ef2b4..8e43d22 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetPipelineTask.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetPipelineTask.java @@ -1,8 +1,8 @@ package dev.struchkov.bot.gitlab.core.service.parser.forktask; +import dev.struchkov.bot.gitlab.core.utils.HttpParse; import dev.struchkov.bot.gitlab.core.utils.StringUtils; import dev.struchkov.bot.gitlab.sdk.domain.PipelineJson; -import dev.struchkov.haiti.utils.network.HttpParse; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -11,7 +11,8 @@ import java.text.MessageFormat; import java.util.Optional; import java.util.concurrent.RecursiveTask; -import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT; +import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT; + @Slf4j @RequiredArgsConstructor @@ -25,7 +26,7 @@ public class GetPipelineTask extends RecursiveTask> { @Override @SneakyThrows protected Optional compute() { - Thread.sleep(200); + Thread.sleep(100); return HttpParse.request(MessageFormat.format(urlPipeline, projectId, pipelineId)) .header(ACCEPT) .header(StringUtils.H_PRIVATE_TOKEN, gitlabToken) diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetSingleMergeRequestTask.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetSingleMergeRequestTask.java index 5ff1448..feb21f7 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetSingleMergeRequestTask.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/parser/forktask/GetSingleMergeRequestTask.java @@ -1,8 +1,8 @@ package dev.struchkov.bot.gitlab.core.service.parser.forktask; +import dev.struchkov.bot.gitlab.core.utils.HttpParse; import dev.struchkov.bot.gitlab.core.utils.StringUtils; import dev.struchkov.bot.gitlab.sdk.domain.MergeRequestJson; -import dev.struchkov.haiti.utils.network.HttpParse; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -11,7 +11,8 @@ import java.text.MessageFormat; import java.util.Optional; import java.util.concurrent.RecursiveTask; -import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT; +import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT; + @Slf4j @RequiredArgsConstructor @@ -25,7 +26,7 @@ public class GetSingleMergeRequestTask extends RecursiveTask compute() { - Thread.sleep(200); + Thread.sleep(100); final String mrUrl = MessageFormat.format(urlMr, projectId, mrTwoId); return HttpParse.request(mrUrl) .header(ACCEPT) @@ -33,5 +34,4 @@ public class GetSingleMergeRequestTask extends RecursiveTask Optional execute(Class classOfT) { + isNotNull(classOfT); + final HttpUrl url = httpUrlBuilder.build(); + final Request request = requestBuilder.url(url).build(); + log.trace("Выполняется okhttp3 запрос | {}", url); + final OkHttpClient httpClient = new OkHttpClient(); + try (final Response execute = httpClient.newCall(request).execute()) { + log.trace("Запрос выполнен | {}", url); + if (execute.isSuccessful() && checkNotNull(execute.body())) { + final String string = execute.body().string(); + return Optional.ofNullable(objectMapper.readValue(string, classOfT)); + } + } catch (IOException e) { + log.error("Ошибка выполнения okhttp3", e); + } + return Optional.empty(); + } + + //TODO [16.01.2023|uPagge]: Okhttp Client создается на каждый запрос, что не рационально по потреблению ресурсов и производительности, но позволяет обойти ограничение со стороны гитлаба, при котором один и тот же клиент отбрасывался спустя 1000 запросов. Возможно стоит заменить OkHttp на что-то другое, например, RestTemplate + public List executeList(Class classOfT) { + isNotNull(classOfT); + final HttpUrl url = httpUrlBuilder.build(); + final Request request = requestBuilder.url(url).build(); + log.trace("Выполняется okhttp3 запрос | {}", url); + final OkHttpClient httpClient = new OkHttpClient(); + try (Response execute = httpClient.newCall(request).execute()) { + log.trace("Запрос выполнен | {}", url); + ResponseBody body = execute.body(); + if (execute.isSuccessful() && checkNotNull(body)) { + final String stringBody = body.string(); + final List list = objectMapper.readValue(stringBody, objectMapper.getTypeFactory().constructCollectionType(List.class, classOfT)); + return (list == null || list.isEmpty()) ? Collections.emptyList() : list; + } + } catch (IOException e) { + log.error("Ошибка выполнения okhttp3", e); + } + return Collections.emptyList(); + } + +} \ No newline at end of file diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/utils/OkHttpUtil.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/utils/OkHttpUtil.java new file mode 100644 index 0000000..555a741 --- /dev/null +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/utils/OkHttpUtil.java @@ -0,0 +1,61 @@ +package dev.struchkov.bot.gitlab.core.utils; + +import okhttp3.OkHttpClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; + +import static dev.struchkov.haiti.utils.Exceptions.utilityClass; + +public class OkHttpUtil { + + private static final Logger log = LoggerFactory.getLogger(OkHttpUtil.class); + + public OkHttpUtil() { + utilityClass(); + } + + public static void ignoreCertificate(OkHttpClient.Builder builder) { + log.info("Initialising httpUtil with default configuration"); + configureToIgnoreCertificate(builder); + } + + //Setting testMode configuration. If set as testMode, the connection will skip certification check + private static void configureToIgnoreCertificate(OkHttpClient.Builder builder) { + log.warn("Ignore Ssl Certificate"); + try { + + // Create a trust manager that does not validate certificate chains + final TrustManager[] trustAllCerts = new TrustManager[]{ + new X509TrustManager() { + @Override + public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) { + } + + @Override + public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) { + } + + @Override + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return new java.security.cert.X509Certificate[]{}; + } + } + }; + + final SSLContext sslContext = SSLContext.getInstance("SSL"); + sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); + final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); + + builder.sslSocketFactory(sslSocketFactory, (X509TrustManager) trustAllCerts[0]); + builder.hostnameVerifier((hostname, session) -> true); + } catch (Exception e) { + log.warn("Exception while configuring IgnoreSslCertificate" + e, e); + } + } + +} diff --git a/gitlab-app/pom.xml b/gitlab-app/pom.xml index 26024d4..c428c9b 100644 --- a/gitlab-app/pom.xml +++ b/gitlab-app/pom.xml @@ -36,11 +36,6 @@ gitlab-sdk - - dev.struchkov.haiti.utils - haiti-utils-network - - org.liquibase liquibase-core diff --git a/gitlab-app/src/main/java/dev/struchkov/bot/gitlab/config/AppConfig.java b/gitlab-app/src/main/java/dev/struchkov/bot/gitlab/config/AppConfig.java index 15f2007..2cb6582 100644 --- a/gitlab-app/src/main/java/dev/struchkov/bot/gitlab/config/AppConfig.java +++ b/gitlab-app/src/main/java/dev/struchkov/bot/gitlab/config/AppConfig.java @@ -3,8 +3,8 @@ package dev.struchkov.bot.gitlab.config; import dev.struchkov.bot.gitlab.context.domain.PersonInformation; import dev.struchkov.bot.gitlab.core.config.properties.GitlabProperty; import dev.struchkov.bot.gitlab.core.config.properties.PersonProperty; +import dev.struchkov.bot.gitlab.core.utils.HttpParse; import dev.struchkov.bot.gitlab.core.utils.StringUtils; -import dev.struchkov.haiti.utils.network.HttpParse; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.ConversionService; @@ -14,8 +14,8 @@ import org.springframework.scheduling.annotation.EnableScheduling; import java.util.Arrays; +import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT; import static dev.struchkov.haiti.context.exception.NotFoundException.notFoundException; -import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT; /** * Общий файл настройки всего приложения. diff --git a/gitlab-app/src/main/java/dev/struchkov/bot/gitlab/scheduler/SchedulerService.java b/gitlab-app/src/main/java/dev/struchkov/bot/gitlab/scheduler/SchedulerService.java index a4a93ee..bcf45c5 100644 --- a/gitlab-app/src/main/java/dev/struchkov/bot/gitlab/scheduler/SchedulerService.java +++ b/gitlab-app/src/main/java/dev/struchkov/bot/gitlab/scheduler/SchedulerService.java @@ -32,7 +32,7 @@ public class SchedulerService { @Scheduled(cron = "0 */1 * * * *") public void newMergeRequest() { - log.debug("Запуск процесса обновления данных"); + log.info("Запуск процесса обновления данных c GitLab"); if (!settingService.isFirstStart()) { mergeRequestParser.parsingOldMergeRequest(); mergeRequestParser.parsingNewMergeRequest(); @@ -46,7 +46,7 @@ public class SchedulerService { } else { log.warn("Процесс обновления данных не был выполнен, так как пользователь не выполнил первичную настройку."); } - log.debug("Конец процесса обновления данных"); + log.info("Конец процесса обновления данных c GitLab"); } } diff --git a/gitlab-app/src/main/resources/banner.txt b/gitlab-app/src/main/resources/banner.txt index 7c62b29..4c01ff2 100644 --- a/gitlab-app/src/main/resources/banner.txt +++ b/gitlab-app/src/main/resources/banner.txt @@ -7,5 +7,5 @@ d88P Y88b Y8P 888 888 888 8888b 888 888 Y88b d88P 888 Y88b. 888 888 888 888 d88P 888 Y8888 Y88..88P Y88b. 888 888 888 Y8b. 888 "Y8888P88 888 "Y888 88888888 "Y888888 88888P" 888 Y888 "Y88P" "Y888 888 888 888 "Y8888 888 ................................................................................................................. -..................................................................................... SpringBoot : 2.6.14 ....... +..................................................................................... SpringBoot : 3.0.1 ....... ................................................................................................................. \ No newline at end of file diff --git a/pom.xml b/pom.xml index f463193..ed65129 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.14 + 3.0.1 @@ -46,7 +46,7 @@ 0.0.48-SNAPSHOT - 2.2 + 3.1.0 31.1-jre 2.14.1 @@ -116,12 +116,6 @@ 2.3.4 - - dev.struchkov.haiti.utils - haiti-utils-network - 0.0.5 - - dev.struchkov.haiti.filter haiti-filter-criteria @@ -156,9 +150,9 @@ - javax.persistence - javax.persistence-api - ${javax.persistance.version} + jakarta.persistence + jakarta.persistence-api + ${jakarta.persistance.version} @@ -182,12 +176,6 @@ - - com.squareup.okhttp3 - okhttp - ${okhttp3.version} - - com.fasterxml.jackson.core jackson-databind @@ -285,17 +273,6 @@ - - - struchkov-nexus-release - https://nexus.struchkov.dev/repository/maven-releases/ - - - struchkov-nexus-snapshot - https://nexus.struchkov.dev/repository/maven-snapshots/ - - - uPagge diff --git a/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/StartNotify.java b/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/StartNotify.java index e4f15f9..c41b20e 100644 --- a/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/StartNotify.java +++ b/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/StartNotify.java @@ -5,11 +5,10 @@ import dev.struchkov.bot.gitlab.core.config.properties.AppProperty; import dev.struchkov.bot.gitlab.core.config.properties.PersonProperty; import dev.struchkov.godfather.main.domain.BoxAnswer; import dev.struchkov.godfather.telegram.simple.context.service.TelegramSending; +import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; - /** * @author upagge 19.01.2021 */