diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 6e52cd1..e5a8359 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,9 @@ - + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index e65e05d..bf59d9c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 3c71298..93fd53c 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ version = '0.0.1-SNAPSHOT' java { toolchain { - languageVersion = JavaLanguageVersion.of(24) + languageVersion = JavaLanguageVersion.of(17) } } diff --git a/jambotron-ui/README.md b/jambotron-ui/README.md index 8368063..bf239b0 100644 --- a/jambotron-ui/README.md +++ b/jambotron-ui/README.md @@ -2,6 +2,10 @@ This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.0.2. +Note: to download the latest version of npm, on the command line, run the following command: + +npm install -g npm + ## Development server To start a local development server, run: diff --git a/jambotron-ui/angular.json b/jambotron-ui/angular.json index dcdcf0c..ca4ccf3 100644 --- a/jambotron-ui/angular.json +++ b/jambotron-ui/angular.json @@ -146,5 +146,8 @@ } } } + }, + "cli": { + "analytics": false } } diff --git a/jambotron-ui/package-lock.json b/jambotron-ui/package-lock.json index 97bcf01..554f793 100644 --- a/jambotron-ui/package-lock.json +++ b/jambotron-ui/package-lock.json @@ -8,17 +8,17 @@ "name": "jambotron-ui", "version": "0.0.0", "dependencies": { - "@angular/animations": "^20.0.4", + "@angular/animations": "^20.0.4n", "@angular/cdk": "^20.1.6", - "@angular/common": "^20.0.0", - "@angular/compiler": "^20.0.0", - "@angular/core": "^20.0.0", + "@angular/common": "21.0.1", + "@angular/compiler": "22.0.0-next.3", + "@angular/core": "22.0.0-next.3", "@angular/forms": "^20.0.0", "@angular/material": "^20.1.6", "@angular/platform-browser": "^20.0.0", - "@angular/platform-server": "^20.0.0", + "@angular/platform-server": "22.0.0-next.8", "@angular/router": "^20.0.0", - "@angular/ssr": "^20.0.2", + "@angular/ssr": "22.0.0-next.2", "@material/material-color-utilities": "^0.3.0", "@ng-bootstrap/ng-bootstrap": "19.0.0", "@popperjs/core": "2.11.8", @@ -657,9 +657,9 @@ } }, "node_modules/@angular/common": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.0.4.tgz", - "integrity": "sha512-fWgxe2rgSKgI36ummBYnBN4YUrmp4CHbfEG3RMeJho/vhHKguk2/o6BgL9zvnKybvbWmuaqbkHogi+y0LeJ8Ww==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.0.1.tgz", + "integrity": "sha512-EqdTGpFp7PVdTVztO7TB6+QxdzUbYXKKT2jwG2Gg+PIQZ2A8XrLPRmGXyH/DLlc5IhnoJlLbngmBRCLCO4xWog==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -668,20 +668,20 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "20.0.4", + "@angular/core": "21.0.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.0.4.tgz", - "integrity": "sha512-1bP3P8Ll/KUYMPiE6TDjkMXkqCDVgSUAUsVCgzAxz4mcMuc9PnlbhQazpWHCkCDIjGFZ5XIAsS49V7tfaTbLDw==", + "version": "22.0.0-next.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-22.0.0-next.3.tgz", + "integrity": "sha512-b1z3WTBk0nysyZ9RnZG7EeNiOOr+rpm7/a8KedjJz8+dEeOP6Q+MN3JN4oTvLbU/GaN//560+TAc5MuUY1AKPQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.0 || >=24.13.1" } }, "node_modules/@angular/compiler-cli": { @@ -827,20 +827,20 @@ } }, "node_modules/@angular/core": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.0.4.tgz", - "integrity": "sha512-JhSl3B6CrJ9kegLffgWVFGF4D4bWLV/9r8R0+h78vU+ppdPFPWDha7WnirF31cPIg3pBzy6wn103Kcy9Ri5M5w==", + "version": "22.0.0-next.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-22.0.0-next.3.tgz", + "integrity": "sha512-F0zES0ziee/f429vYuOMe/NokRrEk84IGP9Qtfc0zVoFkzcHdZbFW8o3Eg/F5WI1BxIA4YhEXg33nDN5tEA+AQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.0 || >=24.13.1" }, "peerDependencies": { - "@angular/compiler": "20.0.4", + "@angular/compiler": "22.0.0-next.3", "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.15.0" + "zone.js": "~0.15.0 || ~0.16.0" }, "peerDependenciesMeta": { "@angular/compiler": { @@ -909,22 +909,22 @@ } }, "node_modules/@angular/platform-server": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-20.0.4.tgz", - "integrity": "sha512-jCbBPy/KmWw/rW6400My/+2SumnatciWnyWJVy2tKSHU/WDHQdjgk8djMdZODr+2CDORQzdkdBKqf7TuFK6clA==", + "version": "22.0.0-next.8", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-22.0.0-next.8.tgz", + "integrity": "sha512-kfY2jnNW8RNtX9Bw0M5Wf0x1UiZDlJ6SckoHzLDeu/o+FbXiNkt6t77ACZ9LNBqUIt0pn734ElBO/suKYuNRcw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0", "xhr2": "^0.2.0" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.22.0 || >=24.13.1" }, "peerDependencies": { - "@angular/common": "20.0.4", - "@angular/compiler": "20.0.4", - "@angular/core": "20.0.4", - "@angular/platform-browser": "20.0.4", + "@angular/common": "22.0.0-next.8", + "@angular/compiler": "22.0.0-next.8", + "@angular/core": "22.0.0-next.8", + "@angular/platform-browser": "22.0.0-next.8", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -947,18 +947,18 @@ } }, "node_modules/@angular/ssr": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/@angular/ssr/-/ssr-20.0.3.tgz", - "integrity": "sha512-AuEO05mdcQU1HBZAJ64eNPEoi4vxgA0zmYjdVK+Z55uwhaAPiyU6Ti/irK7y4IpM5WZ0fTKFzxtgD+GuEqai2w==", + "version": "22.0.0-next.2", + "resolved": "https://registry.npmjs.org/@angular/ssr/-/ssr-22.0.0-next.2.tgz", + "integrity": "sha512-O1AK/YMY+4f7rMAHnI2BFJLCancTDEq683A4N2wXo4brsfXgCwp5pygBBi/pHfI7lzgrEkXlbEsWRjBdEjiqEg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/common": "^20.0.0", - "@angular/core": "^20.0.0", - "@angular/platform-server": "^20.0.0", - "@angular/router": "^20.0.0" + "@angular/common": "^22.0.0-next.0", + "@angular/core": "^22.0.0-next.0", + "@angular/platform-server": "^22.0.0-next.0", + "@angular/router": "^22.0.0-next.0" }, "peerDependenciesMeta": { "@angular/platform-server": { diff --git a/jambotron-ui/package.json b/jambotron-ui/package.json index 898a60e..3645662 100644 --- a/jambotron-ui/package.json +++ b/jambotron-ui/package.json @@ -13,17 +13,17 @@ }, "private": true, "dependencies": { - "@angular/animations": "^20.0.4", + "@angular/animations": "^20.0.4n", "@angular/cdk": "^20.1.6", - "@angular/common": "^20.0.0", - "@angular/compiler": "^20.0.0", - "@angular/core": "^20.0.0", + "@angular/common": "21.0.1", + "@angular/compiler": "22.0.0-next.3", + "@angular/core": "22.0.0-next.3", "@angular/forms": "^20.0.0", "@angular/material": "^20.1.6", "@angular/platform-browser": "^20.0.0", - "@angular/platform-server": "^20.0.0", + "@angular/platform-server": "22.0.0-next.8", "@angular/router": "^20.0.0", - "@angular/ssr": "^20.0.2", + "@angular/ssr": "22.0.0-next.2", "@material/material-color-utilities": "^0.3.0", "@ng-bootstrap/ng-bootstrap": "19.0.0", "@popperjs/core": "2.11.8", diff --git a/src/DevOps/Dockerfile b/src/DevOps/Dockerfile index 6a74734..c32478c 100644 --- a/src/DevOps/Dockerfile +++ b/src/DevOps/Dockerfile @@ -5,7 +5,8 @@ #RUN microdnf install findutils #RUN ./gradlew build -x test -FROM openjdk:24 +#FROM openjdk:24 +FROM eclipse-temurin:24-jdk ADD https://download.docker.com/linux/static/stable/x86_64/docker-24.0.5.tgz /tmp/ RUN tar xzvf /tmp/docker-24.0.5.tgz -C /usr/local/bin --strip-components=1 docker/docker diff --git a/src/DevOps/docker-compose.yml b/src/DevOps/docker-compose.yml index b80893b..0f75e41 100644 --- a/src/DevOps/docker-compose.yml +++ b/src/DevOps/docker-compose.yml @@ -1,17 +1,17 @@ services: jambotron: image: 'jambotron-image' - container_name: 'jambotron-container' + container_name: 'jambotron-prod-container' build: context: ../../ dockerfile: ./src/DevOps/Dockerfile ports: -# - "8081:80" - - "8443:443" + - "8081:80" +# - "8443:443" depends_on: - postgres_jambotron volumes: - - certs:/certs +# - certs:/certs - jambotron_data:/jambotron_data # Mount host Docker socket - /var/run/docker.sock:/var/run/docker.sock @@ -23,10 +23,10 @@ services: DOCKER_HOST: unix:///var/run/docker.sock - SSL_ENABLED: "true" - SERVER_PORT: 443 - FULLCHAINPEM: /certs/live/jambotron.run.place/fullchain.pem - PRIVKEYPEM: /certs/live/jambotron.run.place/privkey.pem +# SSL_ENABLED: "true" +# SERVER_PORT: 443 +# FULLCHAINPEM: /certs/live/jambotron.run.place/fullchain.pem +# PRIVKEYPEM: /certs/live/jambotron.run.place/privkey.pem SPRING_DATASOURCE_URL: jdbc:postgresql://postgres_jambotron:5432/jambotronDB SPRING_DATASOURCE_USERNAME: admin @@ -56,7 +56,7 @@ services: postgres_jambotron: image: 'postgres' - container_name: 'jambotron-postgres-container' + container_name: 'jambotron-prod-postgres-container' ports: - "5432:5432" environment: @@ -71,7 +71,7 @@ services: # db_password: # file: db_password.txt volumes: - certs: - external: true +# certs: +# external: true jambotron_data: # external: true \ No newline at end of file diff --git a/src/main/java/com/jambotronGroup/jambotron/JambotronApplication.java b/src/main/java/com/jambotronGroup/jambotron/JambotronApplication.java index 0910300..b6f32aa 100644 --- a/src/main/java/com/jambotronGroup/jambotron/JambotronApplication.java +++ b/src/main/java/com/jambotronGroup/jambotron/JambotronApplication.java @@ -3,6 +3,7 @@ package com.jambotronGroup.jambotron; import com.jambotronGroup.jambotron.fileUpload.FilesStorageService; +import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -11,11 +12,23 @@ import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import java.util.TimeZone; + @SpringBootApplication public class JambotronApplication{ private static final Logger logger = LoggerFactory.getLogger(JambotronApplication.class); - public static void main(String[] args) { + +// @PostConstruct +// public void init() { +// // Устанавливает UTC для всей JVM, где работает Spring +// TimeZone.setDefault(TimeZone.getTimeZone("UTC")); +// } + + public static void main(String[] args) { + + // Set the timezone before the Spring context (and Flyway) starts + TimeZone.setDefault(TimeZone.getTimeZone("UTC")); SpringApplication.run(JambotronApplication.class, args); diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index 1ab7f5a..c2f941f 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -5,14 +5,14 @@ spring.application.name=jambotron server.port=8082 #============Localhost Configurations======================== -spring.datasource.url= jdbc:postgresql://localhost:5433/jambotronDB +spring.datasource.url= jdbc:postgresql://localhost:5433/jambotronDB?options=-c%20timezone=UTC spring.datasource.username= admin spring.datasource.password= postgrespw spring.flyway.baseline-on-migrate=true spring.flyway.validate-on-migrate=true -spring.flyway.url=jdbc:postgresql://localhost:5433/jambotronDB +spring.flyway.url=jdbc:postgresql://localhost:5433/jambotronDB?options=-c%20timezone=UTC spring.flyway.user=admin spring.flyway.password=postgrespw