generator-jhipster 7.7.0 → 7.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -2
- package/generators/app/index.js +10 -0
- package/generators/ci-cd/index.js +1 -1
- package/generators/ci-cd/templates/github-actions.yml.ejs +4 -4
- package/generators/client/files-common.js +1 -2
- package/generators/client/files-react.js +25 -2
- package/generators/client/index.js +1 -1
- package/generators/client/needle-api/needle-client-react.js +11 -8
- package/generators/client/templates/angular/angular.json.ejs +1 -9
- package/generators/client/templates/angular/jest.conf.js.ejs +1 -1
- package/generators/client/templates/angular/package.json +17 -18
- package/generators/client/templates/angular/package.json.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +12 -1
- package/generators/client/templates/common/package.json +7 -6
- package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +2 -3
- package/generators/client/templates/react/.eslintrc.json.ejs +1 -1
- package/generators/client/templates/react/jest.conf.js.ejs +1 -1
- package/generators/client/templates/react/package.json +30 -31
- package/generators/client/templates/react/package.json.ejs +1 -0
- package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +53 -6
- package/generators/client/templates/react/src/main/webapp/app/config/translation-middleware.ts.ejs +58 -0
- package/generators/client/templates/react/src/main/webapp/app/entities/menu.tsx.ejs +45 -0
- package/generators/client/templates/react/src/main/webapp/app/entities/reducers.ts.ejs +25 -0
- package/generators/client/templates/react/src/main/webapp/app/entities/routes.tsx.ejs +47 -0
- package/generators/client/templates/react/src/main/webapp/app/index.tsx.ejs +7 -7
- package/generators/client/templates/react/src/main/webapp/app/main.tsx.ejs +19 -0
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/logs/logs.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +2 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/login/login-modal.tsx.ejs +5 -1
- package/generators/client/templates/react/src/main/webapp/app/routes.tsx.ejs +24 -7
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +15 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +34 -6
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +9 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +9 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +21 -5
- package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +15 -0
- package/generators/client/templates/react/src/main/webapp/microfrontends/entities-menu.tsx.ejs +3 -0
- package/generators/client/templates/react/src/main/webapp/microfrontends/entities-routes.tsx.ejs +3 -0
- package/generators/client/templates/react/tsconfig.json.ejs +3 -3
- package/generators/client/templates/react/tsconfig.test.json.ejs +9 -1
- package/generators/client/templates/react/webpack/webpack.common.js.ejs +6 -13
- package/generators/client/templates/react/webpack/webpack.dev.js.ejs +7 -8
- package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +99 -0
- package/generators/client/templates/react/webpack/webpack.prod.js.ejs +31 -21
- package/generators/client/templates/vue/package.json +16 -17
- package/generators/client/templates/vue/package.json.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +1 -0
- package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +1 -1
- package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +2 -2
- package/generators/client/templates/vue/tsconfig.json.ejs +0 -3
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +6 -2
- package/generators/common/templates/package.json +2 -2
- package/generators/docker-compose/index.js +9 -5
- package/generators/entity/index.js +34 -19
- package/generators/entity-client/index.js +8 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +1 -1
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +1 -0
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +3 -3
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +5 -4
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +19 -18
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +2 -2
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +21 -20
- package/generators/entity-i18n/templates/i18n/entity_fr.json.ejs +1 -1
- package/generators/entity-server/files.js +30 -10
- package/generators/entity-server/index.js +19 -1
- package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +1 -1
- package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +31 -8
- package/generators/entity-server/templates/partials/update_template.ejs +77 -0
- package/generators/entity-server/templates/reactive/partials/save_template.ejs +1 -1
- package/generators/entity-server/templates/reactive/partials/update_template.ejs +41 -0
- package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +5 -5
- package/generators/entity-server/templates/src/main/java/package/common/get_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +13 -4
- package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +2 -1
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_lifecycle_events.ejs +31 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_persistable.ejs +54 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/domain/EntityCallback.java.ejs +43 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +6 -6
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +13 -16
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +4 -3
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +15 -23
- package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +12 -25
- package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +10 -2
- package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +21 -5
- package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +61 -90
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +6 -4
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +28 -15
- package/generators/generator-base-private.js +1 -1
- package/generators/generator-base.js +29 -0
- package/generators/generator-constants.js +5 -5
- package/generators/generator-transforms.js +0 -1
- package/generators/gradle/constants.cjs +1 -1
- package/generators/maven/files.cjs +0 -1
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
- package/generators/maven/templates/mvnw +13 -7
- package/generators/maven/templates/mvnw.cmd +19 -13
- package/generators/maven/templates/pom.xml.jhi.ejs +1 -1
- package/generators/server/cleanup.js +19 -3
- package/generators/server/files.js +101 -17
- package/generators/server/index.js +11 -5
- package/generators/server/needle-api/needle-server-gradle.js +38 -0
- package/generators/server/templates/.mvn/jvm.config +1 -0
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
- package/generators/server/templates/build.gradle.ejs +7 -5
- package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +24 -1
- package/generators/server/templates/devcontainer/Dockerfile.ejs +25 -0
- package/generators/server/templates/devcontainer/devcontainer.json.ejs +64 -0
- package/generators/server/templates/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/generators/server/templates/gradle.properties.ejs +4 -4
- package/generators/server/templates/mvnw +13 -7
- package/generators/server/templates/mvnw.cmd +19 -13
- package/generators/server/templates/pom.xml.ejs +19 -17
- package/generators/server/templates/settings.gradle.ejs +6 -4
- package/generators/server/templates/src/main/docker/app.yml.ejs +2 -6
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -1
- package/generators/server/templates/src/main/docker/mysql.yml.ejs +1 -0
- package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +6 -0
- package/generators/{client/templates/react/src/main/webapp/app/entities/index.tsx.ejs → server/templates/src/main/java/package/config/KafkaSseConsumer.java.ejs} +8 -14
- package/generators/server/templates/src/main/java/package/config/KafkaSseProducer.java.ejs +30 -0
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +12 -10
- package/generators/server/templates/src/main/java/package/repository/EntityManager.java.ejs +3 -3
- package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +60 -108
- package/generators/server/templates/src/main/java/package/web/rest/KafkaResource_reactive.java.ejs +74 -0
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +26 -22
- package/generators/server/templates/src/test/java/package/CassandraKeyspaceIT.java.ejs +3 -4
- package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +9 -3
- package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +0 -3
- package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +122 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +11 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +11 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +11 -0
- package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +38 -0
- package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +67 -0
- package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +114 -0
- package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +3 -10
- package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +5 -5
- package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +2 -4
- package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +3 -3
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +52 -123
- package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT_reactive.java.ejs +99 -0
- package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +7 -10
- package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +2 -5
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -4
- package/generators/server/templates/src/test/resources/META-INF/spring.factories.ejs +1 -1
- package/generators/server/templates/src/test/resources/config/application.yml.ejs +21 -20
- package/generators/server/templates/src/test/resources/testcontainers.properties.ejs +1 -0
- package/generators/workspaces/index.js +2 -1
- package/package.json +15 -15
- package/utils/entity.js +2 -0
- package/utils/field.js +8 -3
- package/utils/relationship.js +10 -1
- package/generators/entity-server/templates/src/main/java/package/repository/search/SortToSortBuilderListConverter.java.ejs +0 -25
- package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
- package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
- package/generators/server/templates/src/main/java/package/config/KafkaProperties.java.ejs +0 -68
- package/generators/server/templates/src/test/java/package/AbstractCassandraTest.java.ejs +0 -125
- package/generators/server/templates/src/test/java/package/MongoDbTestContainerExtension.java.ejs +0 -37
- package/generators/server/templates/src/test/java/package/TestContainersSpringContextCustomizerFactory.java.ejs +0 -24
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2007-present the original author or authors.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import java.net.*;
|
|
17
|
-
import java.io.*;
|
|
18
|
-
import java.nio.channels.*;
|
|
19
|
-
import java.util.Properties;
|
|
20
|
-
|
|
21
|
-
public class MavenWrapperDownloader {
|
|
22
|
-
|
|
23
|
-
private static final String WRAPPER_VERSION = "0.5.6";
|
|
24
|
-
/**
|
|
25
|
-
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
|
|
26
|
-
*/
|
|
27
|
-
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
|
|
28
|
-
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
|
|
32
|
-
* use instead of the default one.
|
|
33
|
-
*/
|
|
34
|
-
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
|
|
35
|
-
".mvn/wrapper/maven-wrapper.properties";
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Path where the maven-wrapper.jar will be saved to.
|
|
39
|
-
*/
|
|
40
|
-
private static final String MAVEN_WRAPPER_JAR_PATH =
|
|
41
|
-
".mvn/wrapper/maven-wrapper.jar";
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Name of the property which should be used to override the default download url for the wrapper.
|
|
45
|
-
*/
|
|
46
|
-
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
|
|
47
|
-
|
|
48
|
-
public static void main(String args[]) {
|
|
49
|
-
System.out.println("- Downloader started");
|
|
50
|
-
File baseDirectory = new File(args[0]);
|
|
51
|
-
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
|
|
52
|
-
|
|
53
|
-
// If the maven-wrapper.properties exists, read it and check if it contains a custom
|
|
54
|
-
// wrapperUrl parameter.
|
|
55
|
-
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
|
|
56
|
-
String url = DEFAULT_DOWNLOAD_URL;
|
|
57
|
-
if(mavenWrapperPropertyFile.exists()) {
|
|
58
|
-
FileInputStream mavenWrapperPropertyFileInputStream = null;
|
|
59
|
-
try {
|
|
60
|
-
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
|
|
61
|
-
Properties mavenWrapperProperties = new Properties();
|
|
62
|
-
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
|
|
63
|
-
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
|
|
64
|
-
} catch (IOException e) {
|
|
65
|
-
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
|
|
66
|
-
} finally {
|
|
67
|
-
try {
|
|
68
|
-
if(mavenWrapperPropertyFileInputStream != null) {
|
|
69
|
-
mavenWrapperPropertyFileInputStream.close();
|
|
70
|
-
}
|
|
71
|
-
} catch (IOException e) {
|
|
72
|
-
// Ignore ...
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
System.out.println("- Downloading from: " + url);
|
|
77
|
-
|
|
78
|
-
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
|
|
79
|
-
if(!outputFile.getParentFile().exists()) {
|
|
80
|
-
if(!outputFile.getParentFile().mkdirs()) {
|
|
81
|
-
System.out.println(
|
|
82
|
-
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
|
|
86
|
-
try {
|
|
87
|
-
downloadFileFromURL(url, outputFile);
|
|
88
|
-
System.out.println("Done");
|
|
89
|
-
System.exit(0);
|
|
90
|
-
} catch (Throwable e) {
|
|
91
|
-
System.out.println("- Error downloading");
|
|
92
|
-
e.printStackTrace();
|
|
93
|
-
System.exit(1);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
|
|
98
|
-
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
|
|
99
|
-
String username = System.getenv("MVNW_USERNAME");
|
|
100
|
-
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
|
|
101
|
-
Authenticator.setDefault(new Authenticator() {
|
|
102
|
-
@Override
|
|
103
|
-
protected PasswordAuthentication getPasswordAuthentication() {
|
|
104
|
-
return new PasswordAuthentication(username, password);
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
URL website = new URL(urlString);
|
|
109
|
-
ReadableByteChannel rbc;
|
|
110
|
-
rbc = Channels.newChannel(website.openStream());
|
|
111
|
-
FileOutputStream fos = new FileOutputStream(destination);
|
|
112
|
-
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
|
|
113
|
-
fos.close();
|
|
114
|
-
rbc.close();
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
<%#
|
|
2
|
-
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
-
|
|
4
|
-
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
-
for more information.
|
|
6
|
-
|
|
7
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
you may not use this file except in compliance with the License.
|
|
9
|
-
You may obtain a copy of the License at
|
|
10
|
-
|
|
11
|
-
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
|
|
13
|
-
Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
See the License for the specific language governing permissions and
|
|
17
|
-
limitations under the License.
|
|
18
|
-
-%>
|
|
19
|
-
package <%= packageName %>.config;
|
|
20
|
-
|
|
21
|
-
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
22
|
-
import org.springframework.context.annotation.Configuration;
|
|
23
|
-
|
|
24
|
-
import java.util.HashMap;
|
|
25
|
-
import java.util.Map;
|
|
26
|
-
|
|
27
|
-
@Configuration
|
|
28
|
-
@ConfigurationProperties(prefix = "kafka")
|
|
29
|
-
public class KafkaProperties {
|
|
30
|
-
|
|
31
|
-
private String bootStrapServers = "localhost:9092";
|
|
32
|
-
|
|
33
|
-
private Map<String, String> consumer = new HashMap<>();
|
|
34
|
-
|
|
35
|
-
private Map<String, String> producer = new HashMap<>();
|
|
36
|
-
|
|
37
|
-
public String getBootStrapServers() {
|
|
38
|
-
return bootStrapServers;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
public void setBootStrapServers(String bootStrapServers) {
|
|
42
|
-
this.bootStrapServers = bootStrapServers;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
public Map<String, Object> getConsumerProps() {
|
|
46
|
-
Map<String, Object> properties = new HashMap<>(this.consumer);
|
|
47
|
-
if (!properties.containsKey("bootstrap.servers")) {
|
|
48
|
-
properties.put("bootstrap.servers", this.bootStrapServers);
|
|
49
|
-
}
|
|
50
|
-
return properties;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
public void setConsumer(Map<String, String> consumer) {
|
|
54
|
-
this.consumer = consumer;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
public Map<String, Object> getProducerProps() {
|
|
58
|
-
Map<String, Object> properties = new HashMap<>(this.producer);
|
|
59
|
-
if (!properties.containsKey("bootstrap.servers")) {
|
|
60
|
-
properties.put("bootstrap.servers", this.bootStrapServers);
|
|
61
|
-
}
|
|
62
|
-
return properties;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
public void setProducer(Map<String, String> producer) {
|
|
66
|
-
this.producer = producer;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
<%#
|
|
2
|
-
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
-
|
|
4
|
-
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
-
for more information.
|
|
6
|
-
|
|
7
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
you may not use this file except in compliance with the License.
|
|
9
|
-
You may obtain a copy of the License at
|
|
10
|
-
|
|
11
|
-
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
|
|
13
|
-
Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
See the License for the specific language governing permissions and
|
|
17
|
-
limitations under the License.
|
|
18
|
-
-%>
|
|
19
|
-
package <%= packageName %>;
|
|
20
|
-
|
|
21
|
-
import static java.nio.file.Files.newDirectoryStream;
|
|
22
|
-
import static java.nio.file.Paths.get;
|
|
23
|
-
import static java.util.Spliterator.SORTED;
|
|
24
|
-
import static java.util.Spliterators.spliteratorUnknownSize;
|
|
25
|
-
import static java.util.stream.StreamSupport.stream;
|
|
26
|
-
|
|
27
|
-
import tech.jhipster.config.JHipsterConstants;
|
|
28
|
-
|
|
29
|
-
import com.datastax.oss.driver.api.core.CqlSession;
|
|
30
|
-
import org.cassandraunit.CQLDataLoader;
|
|
31
|
-
import org.cassandraunit.dataset.cql.ClassPathCQLDataSet;
|
|
32
|
-
import org.junit.jupiter.api.BeforeAll;
|
|
33
|
-
import org.springframework.context.ApplicationContextInitializer;
|
|
34
|
-
import org.springframework.context.ConfigurableApplicationContext;
|
|
35
|
-
import org.springframework.test.context.ActiveProfiles;
|
|
36
|
-
import org.springframework.test.context.ContextConfiguration;
|
|
37
|
-
import org.springframework.test.context.support.TestPropertySourceUtils;
|
|
38
|
-
import org.testcontainers.utility.DockerImageName;
|
|
39
|
-
import org.testcontainers.containers.GenericContainer;
|
|
40
|
-
import org.testcontainers.containers.wait.strategy.Wait;
|
|
41
|
-
|
|
42
|
-
import java.io.IOException;
|
|
43
|
-
import java.net.InetSocketAddress;
|
|
44
|
-
import java.net.URISyntaxException;
|
|
45
|
-
import java.net.URL;
|
|
46
|
-
import java.nio.file.Path;
|
|
47
|
-
import java.time.Duration;
|
|
48
|
-
import java.util.Iterator;
|
|
49
|
-
import java.util.Spliterator;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Base class for starting/stopping Cassandra during tests.
|
|
53
|
-
*/
|
|
54
|
-
@ActiveProfiles(JHipsterConstants.SPRING_PROFILE_TEST)
|
|
55
|
-
@ContextConfiguration(initializers = AbstractCassandraTest.CassandraPortInitializer.class)
|
|
56
|
-
public class AbstractCassandraTest {
|
|
57
|
-
|
|
58
|
-
public static final String CASSANDRA_UNIT_KEYSPACE = "cassandra_unit_keyspace";
|
|
59
|
-
public static final GenericContainer<?> CASSANDRA_CONTAINER;
|
|
60
|
-
public static final int CASSANDRA_TEST_PORT = 9042;
|
|
61
|
-
private static boolean started = false;
|
|
62
|
-
|
|
63
|
-
static {
|
|
64
|
-
CASSANDRA_CONTAINER =
|
|
65
|
-
new GenericContainer(DockerImageName.parse("<%= DOCKER_CASSANDRA %>")) // TODO replace by CassandraContainer
|
|
66
|
-
.waitingFor(Wait.forListeningPort().withStartupTimeout(Duration.ofSeconds(30)))
|
|
67
|
-
.withExposedPorts(CASSANDRA_TEST_PORT);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
@BeforeAll
|
|
71
|
-
public static void startServer() throws IOException, URISyntaxException {
|
|
72
|
-
if (!started) {
|
|
73
|
-
startTestContainer();
|
|
74
|
-
|
|
75
|
-
CqlSession session = CqlSession.builder()
|
|
76
|
-
.addContactPoint(new InetSocketAddress(
|
|
77
|
-
CASSANDRA_CONTAINER.getContainerIpAddress(),
|
|
78
|
-
CASSANDRA_CONTAINER.getMappedPort(CASSANDRA_TEST_PORT)))
|
|
79
|
-
.withLocalDatacenter("datacenter1")
|
|
80
|
-
.build();
|
|
81
|
-
|
|
82
|
-
createTestKeyspace(session);
|
|
83
|
-
CQLDataLoader dataLoader = new CQLDataLoader(session);
|
|
84
|
-
applyScripts(dataLoader, "config/cql/changelog/", "*.cql");
|
|
85
|
-
started = true;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
private static void startTestContainer() {
|
|
90
|
-
CASSANDRA_CONTAINER.start();
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
private static void createTestKeyspace(CqlSession session) {
|
|
94
|
-
String createQuery = "CREATE KEYSPACE " + CASSANDRA_UNIT_KEYSPACE + " WITH replication={'class' : 'SimpleStrategy', 'replication_factor':1}";
|
|
95
|
-
session.execute(createQuery);
|
|
96
|
-
String useKeyspaceQuery = "USE " + CASSANDRA_UNIT_KEYSPACE;
|
|
97
|
-
session.execute(useKeyspaceQuery);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
private static void applyScripts(CQLDataLoader dataLoader, String cqlDir, String pattern) throws IOException, URISyntaxException {
|
|
101
|
-
URL dirUrl = ClassLoader.getSystemResource(cqlDir);
|
|
102
|
-
if (dirUrl == null) { // protect for empty directory
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
Iterator<Path> pathIterator = newDirectoryStream(get(dirUrl.toURI()), pattern).iterator();
|
|
107
|
-
Spliterator<Path> pathSpliterator = spliteratorUnknownSize(pathIterator, SORTED);
|
|
108
|
-
stream(pathSpliterator, false)
|
|
109
|
-
.map(Path::getFileName)
|
|
110
|
-
.map(Path::toString)
|
|
111
|
-
.sorted()
|
|
112
|
-
.map(file -> cqlDir + file)
|
|
113
|
-
.map(dataSetLocation -> new ClassPathCQLDataSet(dataSetLocation, false, false, CASSANDRA_UNIT_KEYSPACE))
|
|
114
|
-
.forEach(dataLoader::load);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
public static class CassandraPortInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
|
|
118
|
-
@Override
|
|
119
|
-
public void initialize(ConfigurableApplicationContext applicationContext) {
|
|
120
|
-
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(applicationContext,
|
|
121
|
-
"spring.data.cassandra.port=" + AbstractCassandraTest.CASSANDRA_CONTAINER.getMappedPort(AbstractCassandraTest.CASSANDRA_TEST_PORT)
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
package/generators/server/templates/src/test/java/package/MongoDbTestContainerExtension.java.ejs
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
package <%= packageName %>;
|
|
2
|
-
|
|
3
|
-
import java.util.Collections;
|
|
4
|
-
|
|
5
|
-
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
|
6
|
-
import org.junit.jupiter.api.extension.ExtensionContext;
|
|
7
|
-
import org.testcontainers.containers.MongoDBContainer;
|
|
8
|
-
import org.testcontainers.utility.DockerImageName;
|
|
9
|
-
|
|
10
|
-
public class MongoDbTestContainerExtension implements BeforeAllCallback {
|
|
11
|
-
<%_ /* TODO, the smallest configuration that lead to only one error for webflux-gw-jwt was 0.6 RAM /0.8 SWAP/0.1 nanocore */ _%>
|
|
12
|
-
private static final ThreadLocal<MongoDBContainer> THREAD_CONTAINER = new ThreadLocal<>();
|
|
13
|
-
private final long memoryInBytes = Math.round(1024 * 1024 * 1024 * 0.6);
|
|
14
|
-
private final long memorySwapInBytes = Math.round(1024 * 1024 * 1024 * 0.8);
|
|
15
|
-
private final long nanoCpu = Math.round(1_000_000_000L * 0.1);
|
|
16
|
-
|
|
17
|
-
@Override
|
|
18
|
-
public void beforeAll(ExtensionContext context) {
|
|
19
|
-
if (null == THREAD_CONTAINER.get()) {
|
|
20
|
-
MongoDBContainer mongoDBContainer = new MongoDBContainer(DockerImageName.parse("<%= DOCKER_MONGODB %>"))
|
|
21
|
-
.withReuse(true)
|
|
22
|
-
.withTmpFs(Collections.singletonMap("/testtmpfs", "rw"))
|
|
23
|
-
.withCommand("--nojournal --wiredTigerCacheSizeGB 0.25 --wiredTigerCollectionBlockCompressor none --slowOpSampleRate 0 --setParameter ttlMonitorEnabled=false --setParameter diagnosticDataCollectionEnabled=false --setParameter logicalSessionRefreshMillis=6000000 --setParameter enableFlowControl=false --setParameter oplogFetcherUsesExhaust=false --setParameter disableResumableRangeDeleter=true --setParameter enableShardedIndexConsistencyCheck=false --setParameter enableFinerGrainedCatalogCacheRefresh=false --setParameter readHedgingMode=off --setParameter loadRoutingTableOnStartup=false --setParameter rangeDeleterBatchDelayMS=2000000 --setParameter skipShardingConfigurationChecks=true --setParameter syncdelay=3600")
|
|
24
|
-
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig()
|
|
25
|
-
.withMemory(memoryInBytes)
|
|
26
|
-
.withMemorySwap(memorySwapInBytes)
|
|
27
|
-
.withNanoCPUs(nanoCpu)
|
|
28
|
-
);
|
|
29
|
-
mongoDBContainer.start();
|
|
30
|
-
THREAD_CONTAINER.set(mongoDBContainer);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
public static ThreadLocal<?> getThreadContainer() {
|
|
35
|
-
return THREAD_CONTAINER;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
package <%= packageName %>;
|
|
2
|
-
|
|
3
|
-
import java.util.List;
|
|
4
|
-
|
|
5
|
-
import <%= packageName %>.MongoDbTestContainerExtension;
|
|
6
|
-
|
|
7
|
-
import org.springframework.test.context.ContextConfigurationAttributes;
|
|
8
|
-
import org.springframework.test.context.ContextCustomizer;
|
|
9
|
-
import org.springframework.test.context.ContextCustomizerFactory;
|
|
10
|
-
import org.springframework.boot.test.util.TestPropertyValues;
|
|
11
|
-
import org.testcontainers.containers.MongoDBContainer;
|
|
12
|
-
|
|
13
|
-
public class TestContainersSpringContextCustomizerFactory implements ContextCustomizerFactory {
|
|
14
|
-
@Override
|
|
15
|
-
public ContextCustomizer createContextCustomizer(Class<?> testClass, List<ContextConfigurationAttributes> configAttributes) {
|
|
16
|
-
return (context, mergedConfig) -> {
|
|
17
|
-
MongoDBContainer container = (MongoDBContainer)MongoDbTestContainerExtension.getThreadContainer().get();
|
|
18
|
-
if (container != null) {
|
|
19
|
-
TestPropertyValues.of("spring.data.mongodb.uri=" + container.getReplicaSetUrl())
|
|
20
|
-
.applyTo(context.getEnvironment());
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
}
|