diff --git a/generators/client/generator.mjs b/generators/client/generator.mjs index 185c4d03..9dd9346d 100644 --- a/generators/client/generator.mjs +++ b/generators/client/generator.mjs @@ -75,12 +75,6 @@ export default class extends extendGenerator(ClientGenerator) { content.replaceAll('id_token', 'access_token') ); } - if (!authenticationTypeOauth2) { - // Should be dropped when the blueprint supports public/admin users. - this.editFile('src/main/webapp/app/admin/user-management/service/user-management.service.ts', content => - content.replaceAll('api/admin/users', 'api/users') - ); - } }, customizeReactForMicronaut({ application: { clientFrameworkReact, authenticationTypeJwt, authenticationTypeOauth2 } }) { @@ -123,12 +117,6 @@ export default class extends extendGenerator(ClientGenerator) { .replace('const jwt = bearerToken.slice(7, bearerToken.length);', '') ); } - if (!authenticationTypeOauth2) { - // Should be dropped when the blueprint supports public/admin users. - this.editFile('src/main/webapp/app/modules/administration/user-management/user-management.reducer.ts', content => - content.replaceAll('api/admin/users', 'api/users') - ); - } }, }; } diff --git a/generators/constants.cjs b/generators/constants.cjs index 4ec0e782..482b1398 100644 --- a/generators/constants.cjs +++ b/generators/constants.cjs @@ -23,15 +23,15 @@ module.exports = { sqlDb: { h2Disk: { driver: 'org.h2.Driver', - dialect: 'io.github.jhipster.domain.util.FixedH2Dialect', + dialect: 'org.hibernate.dialect.H2Dialect', }, h2Memory: { driver: 'org.h2.Driver', - dialect: 'io.github.jhipster.domain.util.FixedH2Dialect', + dialect: 'org.hibernate.dialect.H2Dialect', }, mysql: { driver: 'com.mysql.jdbc.Driver', - dialect: 'org.hibernate.dialect.MySQL5InnoDBDialect', + dialect: 'org.hibernate.dialect.MySQL8Dialect', }, mariadb: { driver: 'org.mariadb.jdbc.Driver', @@ -39,7 +39,15 @@ module.exports = { }, postgresql: { driver: 'org.postgresql.Driver', - dialect: 'io.github.jhipster.domain.util.FixedPostgreSQL10Dialect', + dialect: 'org.hibernate.dialect.PostgreSQL10Dialect', + }, + oracle: { + driver: 'oracle.jdbc.OracleDriver', + dialect: 'org.hibernate.dialect.Oracle12cDialect', + }, + mssql: { + driver: '', + dialect: 'org.hibernate.dialect.SQLServer2012Dialect', }, }, versions: { @@ -55,9 +63,8 @@ module.exports = { javaxInject: '1', javaxMail: '2.0.1', jbcrypt: '0.4', - jhipsterDeps: '3.8.0', - liquibase: '4.14.0', - liquibaseHibernate5: '4.1.1', + liquibase: '4.15.0', + liquibaseHibernate5: '4.15.0', logback: '1.2.11', mapstruct: '1.5.2.Final', swaggerAnnotations: '2.2.2', diff --git a/generators/entity-server/files.cjs b/generators/entity-server/files.cjs index 3792b3e9..aa421a40 100644 --- a/generators/entity-server/files.cjs +++ b/generators/entity-server/files.cjs @@ -35,6 +35,17 @@ const randexp = utils.RandexpWithFaker; */ const serverFiles = { domain: [ + { + condition: generator => + !generator.reactive && generator.databaseTypeSql && generator.prodDatabaseTypePostgres && generator.fieldsContainImageBlob, + path: SERVER_MAIN_SRC_DIR, + templates: [ + { + file: 'package/domain/_PersistClass_.java.jhi.micronaut', + renameTo: generator => `${generator.entityAbsoluteFolder}/domain/${generator.persistClass}.java.jhi.micronaut`, + }, + ], + }, { path: SERVER_MAIN_SRC_DIR, templates: [ diff --git a/generators/entity-server/generator.mjs b/generators/entity-server/generator.mjs index fc01370f..8b8e1638 100644 --- a/generators/entity-server/generator.mjs +++ b/generators/entity-server/generator.mjs @@ -19,7 +19,7 @@ import { import { writeFiles } from './files.cjs'; import { extendGenerator } from '#lib/utils.mjs'; -import NeedleServerChacheMn from './needle-server-cache-mn.cjs'; +import NeedleServerCacheMn from './needle-server-cache-mn.cjs'; export default class extends extendGenerator(EntityServerGenerator) { constructor(args, opts, features) { @@ -101,7 +101,7 @@ export default class extends extendGenerator(EntityServerGenerator) { // Override jhipster customizeFiles customizeFiles({ application: { cacheProvider, enableHibernateCache } }) { if (!enableHibernateCache || !cacheProvider) return; - const serverCacheMn = new NeedleServerChacheMn(this); + const serverCacheMn = new NeedleServerCacheMn(this); if (['ehcache', 'caffeine', 'infinispan', 'redis'].includes(cacheProvider)) { serverCacheMn.addEntityToCache(this.persistClass, this.relationships, this.packageName, this.packageFolder, this.cacheProvider); } diff --git a/generators/entity-server/templates/src/main/java/package/domain/_PersistClass_.java.jhi.micronaut.ejs b/generators/entity-server/templates/src/main/java/package/domain/_PersistClass_.java.jhi.micronaut.ejs new file mode 100644 index 00000000..1969df05 --- /dev/null +++ b/generators/entity-server/templates/src/main/java/package/domain/_PersistClass_.java.jhi.micronaut.ejs @@ -0,0 +1,37 @@ +<%# + Copyright 2013-2022 the original author or authors from the JHipster project. + + This file is part of the JHipster project, see https://www.jhipster.tech/ + for more information. + + Licensed 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 + + https://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. +-%> +<%# + This is a fragment file, it will be merged into to root template if available. + EJS fragments will process % delimiter tags in template and & delimiter tags in the merge process. +-%> +<&_ if (fragment.importSection) { -&> +<%_ if (databaseTypePostgres && fieldsContainImageBlob) { _%> +import org.hibernate.annotations.Type; +<%_ } _%> +<&_ } -&> + +<%_ for (const field of fields) { -%> +<&_ if (fragment.field<%- field.fieldNameCapitalized %>AnnotationSection) { -&> + <%_ if (field.fieldTypeBytes) { _%> + <%_ if (databaseTypePostgres && field.blobContentTypeImage) { _%> + @Type(type = "org.hibernate.type.BinaryType") + <%_ } _%> + <%_ } _%> +<&_ } -&> +<%_ } -%> diff --git a/generators/heroku/templates/pom-profile.xml.ejs b/generators/heroku/templates/pom-profile.xml.ejs index 6bf41b97..0e3638c3 100644 --- a/generators/heroku/templates/pom-profile.xml.ejs +++ b/generators/heroku/templates/pom-profile.xml.ejs @@ -11,7 +11,7 @@ ${env.JDBC_DATABASE_USERNAME} ${env.JDBC_DATABASE_PASSWORD} - hibernate:spring:<%= packageName %>.domain?dialect=<% if (prodDatabaseType === 'mysql') { %>org.hibernate.dialect.MySQL8Dialect<% } else if (prodDatabaseType === 'mariadb') { %>org.hibernate.dialect.MariaDB103Dialect<% } else if (prodDatabaseType === 'postgresql') { %>io.github.jhipster.domain.util.FixedPostgreSQL10Dialect<% } else if (prodDatabaseType === 'h2Disk') { %>org.hibernate.dialect.H2Dialect<% } else if (prodDatabaseType === 'oracle') { %>org.hibernate.dialect.Oracle12cDialect<% } else if (prodDatabaseType === 'mssql') { %>org.hibernate.dialect.SQLServer2012Dialect<% } %>&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy + hibernate:spring:<%= packageName %>.domain?dialect=<% if (prodDatabaseType === 'mysql') { %>org.hibernate.dialect.MySQL8Dialect<% } else if (prodDatabaseType === 'mariadb') { %>org.hibernate.dialect.MariaDB103Dialect<% } else if (prodDatabaseType === 'postgresql') { %>org.hibernate.dialect.PostgreSQLDialect<% } else if (prodDatabaseType === 'h2Disk') { %>org.hibernate.dialect.H2Dialect<% } else if (prodDatabaseType === 'oracle') { %>org.hibernate.dialect.Oracle12cDialect<% } else if (prodDatabaseType === 'mssql') { %>org.hibernate.dialect.SQLServer2012Dialect<% } %>&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy true debug false diff --git a/generators/server/__snapshots__/generator.spec.mjs.snap b/generators/server/__snapshots__/generator.spec.mjs.snap index fd8ee422..0769a1e7 100644 --- a/generators/server/__snapshots__/generator.spec.mjs.snap +++ b/generators/server/__snapshots__/generator.spec.mjs.snap @@ -62,9 +62,6 @@ Object { "package.json": Object { "stateCleared": "modified", }, - "pom.xml": Object { - "stateCleared": "modified", - }, "sonar-project.properties": Object { "stateCleared": "modified", }, diff --git a/generators/server/generator.mjs b/generators/server/generator.mjs index b0f7a34f..80b4e42f 100644 --- a/generators/server/generator.mjs +++ b/generators/server/generator.mjs @@ -92,7 +92,7 @@ export default class extends extendGenerator(ServerGenerator) { this.GRADLE_VERSION = mnConstants.GRADLE_VERSION; this.DOCKER_REDIS = mnConstants.DOCKER_REDIS; this.DOCKER_CONSUL_CONFIG_LOADER = 'jhipster/consul-config-loader:v0.4.1'; // overrides jhipster value until main generator is updated - this.JHIPSTER_DEPENDENCIES_VERSION = '3.9.1'; + this.JHIPSTER_DEPENDENCIES_VERSION = '7.9.3'; }, }; } diff --git a/generators/server/templates/build.gradle.ejs b/generators/server/templates/build.gradle.ejs index c3103bd2..a056d293 100644 --- a/generators/server/templates/build.gradle.ejs +++ b/generators/server/templates/build.gradle.ejs @@ -94,7 +94,7 @@ if (project.hasProperty("gae")) { dependencyManagement { imports { - mavenBom 'io.github.jhipster:jhipster-dependencies:${jhipster_dependencies_version}' + mavenBom 'tech.jhipster:jhipster-dependencies:${jhipster_dependencies_version}' } } appengineStage.dependsOn thinResolve @@ -202,7 +202,10 @@ task cucumberTestReport(type: TestReport) { } <%_ } _%> -<%_ if (databaseType === 'sql') { _%> +<%_ if (databaseType === 'sql') { + const { sqlDb } = MN_CONSTANTS; + const devDbInfo = sqlDb[devDatabaseType]; +_%> if (!project.hasProperty("runList")) { project.ext.runList = "main" } @@ -212,7 +215,7 @@ project.ext.diffChangelogFile = "<%= SERVER_MAIN_RES_DIR %>config/liquibase/chan liquibase { activities { main { - driver "<% if (devDatabaseType === 'mysql') { %>com.mysql.cj.jdbc.Driver<% } else if (devDatabaseType === 'mariadb') { %>org.mariadb.jdbc.Driver<% } else if (devDatabaseType === 'postgresql') { %>org.postgresql.Driver<% } else if (devDatabaseType === 'h2Disk') { %>org.h2.Driver<% } else if (devDatabaseType === 'oracle') { %>oracle.jdbc.OracleDriver<% } %>" + driver "<%= devDbInfo.driver %>" url "<% if (devDatabaseType === 'mysql') { %>jdbc:mysql://localhost:3306/<%= baseName %><% } else if (devDatabaseType === 'mariadb') { %>jdbc:mariadb://localhost:3306/<%= baseName %><% } else if (devDatabaseType === 'postgresql') { %>jdbc:postgresql://localhost:5432/<%= baseName %><% } else if (devDatabaseType === 'h2Disk') { %>jdbc:h2:file:./build/h2db/db/<%= lowercaseBaseName %><% } else if (devDatabaseType === 'oracle') { %>jdbc:oracle:thin:@localhost:1521:<%= baseName %><% } else if (devDatabaseType === 'mssql') { %>jdbc:sqlserver://localhost:1433;database=<%= baseName %><% } %>" username "<% if (devDatabaseType === 'mysql') { %>root<% } else if (devDatabaseType === 'postgresql' || devDatabaseType === 'h2Disk' || devDatabaseType === 'h2Memory') { %><%= baseName %><% } else if (devDatabaseType === 'mssql') { %>SA<% } %>" password "<% if (devDatabaseType === 'mssql') { %>yourStrong(!)Password<% } %>" @@ -222,12 +225,12 @@ liquibase { classpath "<%= SERVER_MAIN_RES_DIR %>" } diffLog { - driver "<% if (devDatabaseType === 'mysql') { %>com.mysql.cj.jdbc.Driver<% } else if (devDatabaseType === 'mariadb') { %>org.mariadb.jdbc.Driver<% } else if (devDatabaseType === 'postgresql') { %>org.postgresql.Driver<% } else if (devDatabaseType === 'h2Disk') { %>org.h2.Driver<% } else if (devDatabaseType === 'oracle') { %>oracle.jdbc.OracleDriver<% } %>" + driver "<%= devDbInfo.driver %>" url "<% if (devDatabaseType === 'mysql') { %>jdbc:mysql://localhost:3306/<%= baseName %><% } else if (devDatabaseType === 'mariadb') { %>jdbc:mariadb://localhost:3306/<%= baseName %><% } else if (devDatabaseType === 'postgresql') { %>jdbc:postgresql://localhost:5432/<%= baseName %><% } else if (devDatabaseType === 'h2Disk') { %>jdbc:h2:file:./build/h2db/db/<%= lowercaseBaseName %><% } else if (devDatabaseType === 'oracle') { %>jdbc:oracle:thin:@localhost:1521:<%= baseName %><% } else if (devDatabaseType === 'mssql') { %>jdbc:sqlserver://localhost:1433;database=<%= baseName %><% } %>" username "<% if (devDatabaseType === 'mysql') { %>root<% } else if (devDatabaseType === 'postgresql' || devDatabaseType === 'h2Disk' || devDatabaseType === 'h2Memory') { %><%= baseName %><% } else if (devDatabaseType === 'mssql') { %>SA<% } %>" password "<% if (devDatabaseType === 'mssql') { %>yourStrong(!)Password<% } %>" changeLogFile project.ext.diffChangelogFile - referenceUrl "hibernate:spring:<%= packageName %>.domain?dialect=<% if (devDatabaseType === 'mysql') { %>org.hibernate.dialect.MySQL8Dialect<% } else if (devDatabaseType === 'mariadb') { %>org.hibernate.dialect.MariaDB103Dialect<% } else if (devDatabaseType === 'postgresql') { %>io.github.jhipster.domain.util.FixedPostgreSQL10Dialect<% } else if (devDatabaseType === 'h2Disk') { %>org.hibernate.dialect.H2Dialect<% } else if (devDatabaseType === 'oracle') { %>org.hibernate.dialect.Oracle12cDialect<% } else if (devDatabaseType === 'mssql') { %>org.hibernate.dialect.SQLServer2012Dialect<% } %>&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy" + referenceUrl "hibernate:spring:<%= packageName %>.domain?dialect=<%= devDbInfo.dialect %>&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy" defaultSchemaName "<% if (devDatabaseType === 'mysql') { %><%= baseName %><% } else if (devDatabaseType === 'postgresql') { %><% } %>" logLevel "debug" classpath "$buildDir/classes/java/main" @@ -271,7 +274,7 @@ repositories { dependencies { // import JHipster dependencies BOM if (!project.hasProperty("gae")) { - implementation platform("io.github.jhipster:jhipster-dependencies:${jhipster_dependencies_version}") + implementation platform("tech.jhipster:jhipster-dependencies:${jhipster_dependencies_version}") } annotationProcessor "io.micronaut:micronaut-validation" @@ -282,7 +285,7 @@ dependencies { // Use ", version: jhipster_dependencies_version, changing: true" if you want // to use a SNAPSHOT release instead of a stable release - implementation (group: "io.github.jhipster", name: "jhipster-framework") { + implementation (group: "tech.jhipster", name: "jhipster-framework") { exclude group: "org.springframework", module: "spring-context-support" <% if (reactive) { %> exclude group: "org.springframework", module: "spring-webmvc" @@ -290,12 +293,12 @@ dependencies { exclude group: "org.springframework.boot", module: "spring-boot-autoconfigure" exclude group: "org.springframework.boot", module: "spring-boot-starter-aop" exclude group: "org.springframework.boot", module: "spring-boot-starter-web" + exclude group: "org.springframework.boot", module: "spring-boot-starter-validation" } implementation "org.simplejavamail:simple-java-mail:$simplejavamail_version" implementation "jakarta.annotation:jakarta.annotation-api" implementation "ch.qos.logback:logback-classic:$logback_version" implementation "io.swagger.core.v3:swagger-annotations:$swagger_annotations_version" - implementation "io.dropwizard.metrics:metrics-core" implementation "io.micrometer:micrometer-registry-prometheus" implementation "net.logstash.logback:logstash-logback-encoder" implementation "com.fasterxml.jackson.datatype:jackson-datatype-hppc" @@ -494,12 +497,6 @@ dependencies { implementation "com.couchbase.client:java-client" implementation "com.couchbase.client:encryption" <%_ } _%> - <%_ if (!reactive) { _%> - implementation ("io.springfox:springfox-swagger2") { - exclude module: "mapstruct" - } - implementation "io.springfox:springfox-bean-validators" - <%_ } _%> <%_ if (devDatabaseType === 'mysql' || prodDatabaseType === 'mysql') { _%> implementation "mysql:mysql-connector-java" liquibaseRuntime "mysql:mysql-connector-java" @@ -524,6 +521,10 @@ dependencies { annotationProcessor "org.hibernate:hibernate-jpamodelgen:$hibernate_version" annotationProcessor "org.glassfish.jaxb:jaxb-runtime:$jaxb_runtime_version" <%_ } _%> + annotationProcessor("io.micronaut:micronaut-inject-java") + annotationProcessor("io.micronaut.data:micronaut-data-processor") + annotationProcessor("io.micronaut:micronaut-http-validation") + annotationProcessor("io.micronaut.openapi:micronaut-openapi") // Micronaut test deps testAnnotationProcessor "io.micronaut.data:micronaut-data-processor" diff --git a/generators/server/templates/pom.xml.ejs b/generators/server/templates/pom.xml.ejs index 11b0f47a..f3ea1082 100644 --- a/generators/server/templates/pom.xml.ejs +++ b/generators/server/templates/pom.xml.ejs @@ -137,7 +137,7 @@ _%> import - io.github.jhipster + tech.jhipster jhipster-dependencies ${jhipster-dependencies.version} pom @@ -154,7 +154,7 @@ _%> <%= versions.swaggerAnnotations %> - io.github.jhipster + tech.jhipster jhipster-framework @@ -173,6 +173,10 @@ _%> org.springframework.boot spring-boot-starter-web + + spring-boot-starter-validation + org.springframework.boot + @@ -542,10 +546,6 @@ if (devDatabaseType === 'postgresql' || prodDatabaseType === 'postgresql') { _%> simpleclient ${prometheus-simpleclient.version} - - io.dropwizard.metrics - metrics-core - io.micronaut.rxjava3 micronaut-rxjava3 @@ -653,7 +653,7 @@ if (devDatabaseType === 'postgresql' || prodDatabaseType === 'postgresql') { _%> io.micronaut - micronaut-inject + micronaut-inject-java ${micronaut.version} @@ -873,18 +873,22 @@ if (devDatabaseType === 'postgresql' || prodDatabaseType === 'postgresql') { _%> +<%_ + const { sqlDb } = MN_CONSTANTS; + const devDbInfo = sqlDb[devDatabaseType]; +_%> org.liquibase liquibase-maven-plugin ${liquibase.version} ${project.basedir}/src/main/resources/config/liquibase/master.xml ${project.basedir}/src/main/resources/config/liquibase/changelog/${maven.build.timestamp}_changelog.xml - + <%= devDbInfo.driver %> <%= baseName %> - hibernate:spring:<%=packageName%>.domain?dialect=&hibernate.physical_naming_strategy=<%=packageName%>.config.SnakeCasePhysicalNamingStrategy + hibernate:spring:<%=packageName%>.domain?dialect=<%= devDbInfo.dialect %>&hibernate.physical_naming_strategy=<%=packageName%>.config.SnakeCasePhysicalNamingStrategy true debug !test diff --git a/generators/server/templates/src/main/java/package/App.java.ejs b/generators/server/templates/src/main/java/package/App.java.ejs index 163302a7..64f681e2 100644 --- a/generators/server/templates/src/main/java/package/App.java.ejs +++ b/generators/server/templates/src/main/java/package/App.java.ejs @@ -2,7 +2,7 @@ package <%=packageName%>; import <%=packageName%>.config.DefaultProfileUtil; -import io.github.jhipster.config.JHipsterConstants; +import tech.jhipster.config.JHipsterConstants; import io.micronaut.context.ApplicationContext; import io.micronaut.context.env.Environment; diff --git a/generators/server/templates/src/main/java/package/config/ApplicationProperties.java.ejs b/generators/server/templates/src/main/java/package/config/ApplicationProperties.java.ejs index d45f7d9b..780c48af 100644 --- a/generators/server/templates/src/main/java/package/config/ApplicationProperties.java.ejs +++ b/generators/server/templates/src/main/java/package/config/ApplicationProperties.java.ejs @@ -7,7 +7,7 @@ import io.micronaut.context.annotation.ConfigurationProperties; * Properties specific to Jhipster Sample Application. *

* Properties are configured in the {@code application.yml} file. - * See {@link io.github.jhipster.config.JHipsterProperties} for a good example. + * See {@link <%=packageName%>.util.JHipsterProperties} for a good example. */ @ConfigurationProperties("application") public class ApplicationProperties { diff --git a/generators/server/templates/src/main/java/package/config/DefaultProfileUtil.java.ejs b/generators/server/templates/src/main/java/package/config/DefaultProfileUtil.java.ejs index 624191cd..75cf9ae6 100644 --- a/generators/server/templates/src/main/java/package/config/DefaultProfileUtil.java.ejs +++ b/generators/server/templates/src/main/java/package/config/DefaultProfileUtil.java.ejs @@ -1,6 +1,6 @@ package <%=packageName%>.config; -import io.github.jhipster.config.JHipsterConstants; +import tech.jhipster.config.JHipsterConstants; import java.util.*; diff --git a/generators/server/templates/src/main/java/package/config/LoggingConfiguration.java.ejs b/generators/server/templates/src/main/java/package/config/LoggingConfiguration.java.ejs index 1650440e..7068a068 100644 --- a/generators/server/templates/src/main/java/package/config/LoggingConfiguration.java.ejs +++ b/generators/server/templates/src/main/java/package/config/LoggingConfiguration.java.ejs @@ -75,9 +75,6 @@ public class LoggingConfiguration { if (this.jHipsterProperties.getLogging().isUseJsonFormat() || this.jHipsterProperties.getLogging().getLogstash().isEnabled()) { addContextListener(context); } - if (this.jHipsterProperties.getMetrics().getLogs().isEnabled()) { - setMetricsMarkerLogbackFilter(context); - } } private void addJsonConsoleAppender(LoggerContext context) { @@ -194,33 +191,6 @@ public class LoggingConfiguration { context.addListener(loggerContextListener); } - // Configure a log filter to remove "metrics" logs from all appenders except the "LOGSTASH" appender - private void setMetricsMarkerLogbackFilter(LoggerContext context) { - log.info("Filtering metrics logs from all appenders except the {} appender", LOGSTASH_APPENDER_NAME); - OnMarkerEvaluator onMarkerMetricsEvaluator = new OnMarkerEvaluator(); - onMarkerMetricsEvaluator.setContext(context); - onMarkerMetricsEvaluator.addMarker("metrics"); - onMarkerMetricsEvaluator.start(); - EvaluatorFilter metricsFilter = new EvaluatorFilter<>(); - metricsFilter.setContext(context); - metricsFilter.setEvaluator(onMarkerMetricsEvaluator); - metricsFilter.setOnMatch(FilterReply.DENY); - metricsFilter.start(); - - context.getLoggerList().forEach((logger) -> { - for (Iterator> it = logger.iteratorForAppenders(); it.hasNext();) { - Appender appender = it.next(); - if (!appender.getName().equals(ASYNC_LOGSTASH_APPENDER_NAME) - && !(appender.getName().equals(CONSOLE_APPENDER_NAME) && this.jHipsterProperties.getLogging().isUseJsonFormat())) { - log.debug("Filter metrics logs from the {} appender", appender.getName()); - appender.setContext(context); - appender.addFilter(metricsFilter); - appender.start(); - } - } - }); - } - /** * Logback configuration is achieved by configuration file and API. * When configuration file change is detected, the configuration is reset. diff --git a/generators/server/templates/src/main/java/package/util/JHipsterProperties.java.ejs b/generators/server/templates/src/main/java/package/util/JHipsterProperties.java.ejs index 83abebc4..49f42d77 100644 --- a/generators/server/templates/src/main/java/package/util/JHipsterProperties.java.ejs +++ b/generators/server/templates/src/main/java/package/util/JHipsterProperties.java.ejs @@ -1,6 +1,7 @@ package <%=packageName%>.util; import io.micronaut.context.annotation.ConfigurationProperties; +import tech.jhipster.config.JHipsterDefaults; @ConfigurationProperties("jhipster") public class JHipsterProperties { @@ -8,13 +9,11 @@ public class JHipsterProperties { private Cache cache; private Mail mail; private Logging logging; - private Metrics metrics; - public JHipsterProperties(Cache cache, Mail mail, Logging logging, Metrics metrics) { + public JHipsterProperties(Cache cache, Mail mail, Logging logging) { this.cache = cache; this.mail = mail; this.logging = logging; - this.metrics = metrics; } public Cache getCache() { @@ -29,10 +28,6 @@ public class JHipsterProperties { return logging; } - public Metrics getMetrics() { - return metrics; - } - public void setCache(Cache cache) { this.cache = cache; } @@ -45,11 +40,6 @@ public class JHipsterProperties { this.logging = logging; } - public void setMetrics(Metrics metrics) { - this.metrics = metrics; - } - - @ConfigurationProperties("logging") public static class Logging { private boolean useJsonFormat = false; @@ -113,41 +103,6 @@ public class JHipsterProperties { } } - @ConfigurationProperties("metrics") - public static class Metrics { - private Logs logs = new Logs(); - - public Logs getLogs() { - return this.logs; - } - - public void setLogs(Logs logs) { - this.logs = logs; - } - - @ConfigurationProperties("logs") - public static class Logs { - private boolean enabled = false; - private long reportFrequency = 60L; - - public boolean isEnabled() { - return this.enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - public long getReportFrequency() { - return this.reportFrequency; - } - - public void setReportFrequency(long reportFrequency) { - this.reportFrequency = reportFrequency; - } - } - } - @ConfigurationProperties("mail") public static class Mail { private boolean enabled = false; @@ -506,7 +461,7 @@ public class JHipsterProperties { private int subscriptionConnectionMinimumIdleSize; public Redis() { - this.server = io.github.jhipster.config.JHipsterDefaults.Cache.Redis.server; + this.server = JHipsterDefaults.Cache.Redis.server; this.expiration = 300; this.cluster = false; this.connectionPoolSize = 64; diff --git a/generators/server/templates/src/main/resources/application-dev.yml.ejs b/generators/server/templates/src/main/resources/application-dev.yml.ejs index 9b1f340c..06d78f89 100644 --- a/generators/server/templates/src/main/resources/application-dev.yml.ejs +++ b/generators/server/templates/src/main/resources/application-dev.yml.ejs @@ -77,22 +77,25 @@ mail: jpa: default: - show-sql: false properties: - hibernate.dialect: "<%=dbInfo.dialect%>" -<%_ if (['ehcache', 'caffeine', 'hazelcast', 'infinispan', 'memcached'].includes(cacheProvider)) { _%> - hibernate.javax.cache.missing_cache_strategy: create + hibernate: + dialect: "<%=dbInfo.dialect%>" +<%_ if (['ehcache', 'caffeine', 'hazelcast', 'infinispan', 'memcached', 'redis'].includes(cacheProvider)) { _%> + javax.cache.missing_cache_strategy: create <%_ } _%> - hibernate.id.new_generator_mappings: true - hibernate.connection.provider_disables_autocommit: true - hibernate.connection.autocommit: false + id.new_generator_mappings: true + connection: + provider_disables_autocommit: true + autocommit: false + cache: + use_query_cache: false <%_ if (enableHibernateCache) { _%> - hibernate.cache.use_second_level_cache: true + use_second_level_cache: true <%_ } else { _%> - hibernate.cache.use_second_level_cache: false + use_second_level_cache: false <%_ } _%> - hibernate.cache.use_query_cache: false - hibernate.generate_statistics: false + generate_statistics: false + show-sql: false <%_ } _%> logger: @@ -157,10 +160,6 @@ jhipster: mail: # specific JHipster mail property, for standard properties see MailProperties from: <%= baseName %>@localhost base-url: http://127.0.0.1:8080 - metrics: - logs: # Reports metrics in the logs - enabled: false - report-frequency: 60 # in seconds logging: use-json-format: false # By default, logs are not in Json format logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration diff --git a/generators/server/templates/src/main/resources/application-prod.yml.ejs b/generators/server/templates/src/main/resources/application-prod.yml.ejs index 45c4afc7..53a642c9 100644 --- a/generators/server/templates/src/main/resources/application-prod.yml.ejs +++ b/generators/server/templates/src/main/resources/application-prod.yml.ejs @@ -73,22 +73,26 @@ datasources: --- jpa: default: - show-sql: false properties: - hibernate.dialect: "<%=dbInfo.dialect%>" + hibernate: + dialect: "<%=dbInfo.dialect%>" <%_ if (['ehcache', 'caffeine', 'hazelcast', 'infinispan', 'memcached', 'redis'].includes(cacheProvider)) { _%> - hibernate.javax.cache.missing_cache_strategy: create + javax.cache.missing_cache_strategy: create <%_ } _%> - hibernate.id.new_generator_mappings: true - hibernate.connection.provider_disables_autocommit: true - hibernate.connection.autocommit: false + id.new_generator_mappings: true + connection: + provider_disables_autocommit: true + autocommit: false + cache: + use_query_cache: false <%_ if (enableHibernateCache) { _%> - hibernate.cache.use_second_level_cache: true + use_second_level_cache: true <%_ } else { _%> - hibernate.cache.use_second_level_cache: false + use_second_level_cache: false <%_ } _%> - hibernate.cache.use_query_cache: false - hibernate.generate_statistics: false + generate_statistics: false + show-sql: false + # Replace by 'prod, faker' to add the faker context and have sample data loaded in production liquibase: @@ -178,10 +182,6 @@ jhipster: mail: # specific JHipster mail property, for standard properties see MailProperties from: <%= baseName %>@localhost base-url: http://my-server-url-to-change # Modify according to your server's URL - metrics: - logs: # Reports metrics in the logs - enabled: false - report-frequency: 60 # in seconds logging: use-json-format: false # By default, logs are not in Json format logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration diff --git a/generators/server/templates/src/main/resources/logback.xml.ejs b/generators/server/templates/src/main/resources/logback.xml.ejs index c2f9c898..c9a86274 100644 --- a/generators/server/templates/src/main/resources/logback.xml.ejs +++ b/generators/server/templates/src/main/resources/logback.xml.ejs @@ -37,6 +37,11 @@ --> + + diff --git a/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs b/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs index 8885c2aa..b8586431 100644 --- a/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +++ b/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs @@ -51,6 +51,7 @@ public class DomainUserDetailsServiceIT { @BeforeAll public void init() { + userRepository.deleteAll(); userOne = new User(); userOne.setLogin(USER_ONE_LOGIN); userOne.setPassword(RandomStringUtils.random(60)); diff --git a/generators/server/templates/src/test/resources/application-test.yml.ejs b/generators/server/templates/src/test/resources/application-test.yml.ejs index c8252553..ca455988 100644 --- a/generators/server/templates/src/test/resources/application-test.yml.ejs +++ b/generators/server/templates/src/test/resources/application-test.yml.ejs @@ -34,7 +34,6 @@ liquibase: jpa: default: - database-platform: io.github.jhipster.domain.util.FixedH2Dialect properties: hibernate: cache: @@ -45,6 +44,7 @@ jpa: time_zone: UTC hbm2ddl: auto: none + show_sql: false micronaut: security: @@ -71,7 +71,3 @@ jhipster: mail: from: test@localhost base-url: http://127.0.0.1:8080 - metrics: - logs: # Reports metrics in the logs - enabled: false - report-frequency: 60 # in seconds