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
package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT_reactive.java.ejs
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
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 %>.web.rest;
|
|
20
|
+
|
|
21
|
+
import static org.assertj.core.api.Assertions.assertThat;
|
|
22
|
+
|
|
23
|
+
import java.time.Duration;
|
|
24
|
+
import java.util.HashMap;
|
|
25
|
+
import java.util.Map;
|
|
26
|
+
import java.util.concurrent.BlockingQueue;
|
|
27
|
+
|
|
28
|
+
import org.junit.jupiter.api.Test;
|
|
29
|
+
import org.springframework.beans.factory.annotation.Autowired;
|
|
30
|
+
import org.springframework.beans.factory.annotation.Qualifier;
|
|
31
|
+
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
|
32
|
+
import org.springframework.cloud.stream.test.binder.MessageCollector;
|
|
33
|
+
import org.springframework.http.MediaType;
|
|
34
|
+
import org.springframework.messaging.Message;
|
|
35
|
+
import org.springframework.messaging.MessageChannel;
|
|
36
|
+
import org.springframework.messaging.MessageHeaders;
|
|
37
|
+
import org.springframework.messaging.support.GenericMessage;
|
|
38
|
+
import org.springframework.security.test.context.support.WithMockUser;
|
|
39
|
+
import org.springframework.test.web.reactive.server.WebTestClient;
|
|
40
|
+
import org.springframework.util.MimeTypeUtils;
|
|
41
|
+
import <%= packageName %>.IntegrationTest;
|
|
42
|
+
import <%= packageName %>.config.EmbeddedKafka;
|
|
43
|
+
import <%= packageName %>.config.KafkaSseConsumer;
|
|
44
|
+
import <%= packageName %>.config.KafkaSseProducer;
|
|
45
|
+
|
|
46
|
+
@IntegrationTest
|
|
47
|
+
@AutoConfigureMockMvc
|
|
48
|
+
@WithMockUser
|
|
49
|
+
@EmbeddedKafka
|
|
50
|
+
class <%= upperFirstCamelCase(baseName) %>KafkaResourceIT {
|
|
51
|
+
|
|
52
|
+
@Autowired
|
|
53
|
+
private WebTestClient client;
|
|
54
|
+
|
|
55
|
+
@Autowired
|
|
56
|
+
@Qualifier(KafkaSseProducer.CHANNELNAME)
|
|
57
|
+
private MessageChannel output;
|
|
58
|
+
|
|
59
|
+
@Autowired
|
|
60
|
+
@Qualifier(KafkaSseConsumer.CHANNELNAME)
|
|
61
|
+
private MessageChannel input;
|
|
62
|
+
|
|
63
|
+
@Autowired
|
|
64
|
+
private MessageCollector collector;
|
|
65
|
+
|
|
66
|
+
@Test
|
|
67
|
+
void producesMessages() throws InterruptedException {
|
|
68
|
+
client.post().uri("/api/<%= dasherizedBaseName %>-kafka/publish?message=value-produce")
|
|
69
|
+
.exchange()
|
|
70
|
+
.expectStatus()
|
|
71
|
+
.isNoContent();
|
|
72
|
+
|
|
73
|
+
BlockingQueue<Message<?>> messages = collector.forChannel(output);
|
|
74
|
+
GenericMessage<String> payload = (GenericMessage<String>) messages.take();
|
|
75
|
+
assertThat(payload.getPayload()).isEqualTo("value-produce");
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@Test
|
|
79
|
+
void consumesMessages() {
|
|
80
|
+
Map<String, Object> map = new HashMap<>();
|
|
81
|
+
map.put(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.TEXT_PLAIN_VALUE);
|
|
82
|
+
MessageHeaders headers = new MessageHeaders(map);
|
|
83
|
+
Message<String> testMessage = new GenericMessage<>("value-consume", headers);
|
|
84
|
+
input.send(testMessage);
|
|
85
|
+
String value = client
|
|
86
|
+
.get()
|
|
87
|
+
.uri("/api/<%= dasherizedBaseName %>-kafka/consume")
|
|
88
|
+
.accept(MediaType.TEXT_EVENT_STREAM)
|
|
89
|
+
.exchange()
|
|
90
|
+
.expectStatus()
|
|
91
|
+
.isOk()
|
|
92
|
+
.expectHeader()
|
|
93
|
+
.contentTypeCompatibleWith(MediaType.TEXT_EVENT_STREAM)
|
|
94
|
+
.returnResult(String.class)
|
|
95
|
+
.getResponseBody()
|
|
96
|
+
.blockFirst(Duration.ofSeconds(10));
|
|
97
|
+
assertThat(value).isEqualTo("value-consume");
|
|
98
|
+
}
|
|
99
|
+
}
|
package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs
CHANGED
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.web.rest;
|
|
20
20
|
|
|
21
|
-
<%_ if (databaseTypeCassandra) { _%>
|
|
22
|
-
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
-
<%_ } _%>
|
|
24
21
|
import <%= packageName %>.IntegrationTest;
|
|
25
22
|
<%_ if (databaseTypeSql && reactive) { _%>
|
|
26
23
|
import <%= packageName %>.config.Constants;
|
|
@@ -108,7 +105,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
|
|
108
105
|
<%_ } _%>
|
|
109
106
|
@WithMockUser(authorities = AuthoritiesConstants.ADMIN)
|
|
110
107
|
@IntegrationTest
|
|
111
|
-
class PublicUserResourceIT
|
|
108
|
+
class PublicUserResourceIT {
|
|
112
109
|
|
|
113
110
|
private static final String DEFAULT_LOGIN = "johndoe";
|
|
114
111
|
|
|
@@ -179,7 +176,7 @@ class PublicUserResourceIT <% if (databaseTypeCassandra) { %>extends AbstractCas
|
|
|
179
176
|
|
|
180
177
|
// Get all the users
|
|
181
178
|
<%_ if (reactive) { _%>
|
|
182
|
-
<%= asDto('User') %> foundUser = webTestClient.get().uri("/api/users?sort=id,
|
|
179
|
+
<%= asDto('User') %> foundUser = webTestClient.get().uri("/api/users?sort=id,desc")
|
|
183
180
|
.accept(MediaType.APPLICATION_JSON)
|
|
184
181
|
.exchange()
|
|
185
182
|
.expectStatus().isOk()
|
|
@@ -246,14 +243,14 @@ class PublicUserResourceIT <% if (databaseTypeCassandra) { %>extends AbstractCas
|
|
|
246
243
|
userRepository.<% if (reactive) { %>save<% } else { %>saveAndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
247
244
|
|
|
248
245
|
<%_ if (reactive) { _%>
|
|
249
|
-
webTestClient.get().uri("/api/users?sort=resetKey,
|
|
250
|
-
webTestClient.get().uri("/api/users?sort=password,
|
|
251
|
-
webTestClient.get().uri("/api/users?sort=resetKey,id,
|
|
252
|
-
webTestClient.get().uri("/api/users?sort=id,
|
|
246
|
+
webTestClient.get().uri("/api/users?sort=resetKey,desc").accept(MediaType.APPLICATION_JSON).exchange().expectStatus().isBadRequest();
|
|
247
|
+
webTestClient.get().uri("/api/users?sort=password,desc").accept(MediaType.APPLICATION_JSON).exchange().expectStatus().isBadRequest();
|
|
248
|
+
webTestClient.get().uri("/api/users?sort=resetKey,desc&sort=id,desc").accept(MediaType.APPLICATION_JSON).exchange().expectStatus().isBadRequest();
|
|
249
|
+
webTestClient.get().uri("/api/users?sort=id,desc").accept(MediaType.APPLICATION_JSON).exchange().expectStatus().isOk();
|
|
253
250
|
<%_ } else { _%>
|
|
254
251
|
restUserMockMvc.perform(get("/api/users?sort=resetKey,desc").accept(MediaType.APPLICATION_JSON)).andExpect(status().isBadRequest());
|
|
255
252
|
restUserMockMvc.perform(get("/api/users?sort=password,desc").accept(MediaType.APPLICATION_JSON)).andExpect(status().isBadRequest());
|
|
256
|
-
restUserMockMvc.perform(get("/api/users?sort=resetKey,id,desc").accept(MediaType.APPLICATION_JSON)).andExpect(status().isBadRequest());
|
|
253
|
+
restUserMockMvc.perform(get("/api/users?sort=resetKey,desc&sort=id,desc").accept(MediaType.APPLICATION_JSON)).andExpect(status().isBadRequest());
|
|
257
254
|
restUserMockMvc.perform(get("/api/users?sort=id,desc").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
|
|
258
255
|
<%_ } _%>
|
|
259
256
|
}
|
package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs
CHANGED
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.web.rest;
|
|
20
20
|
|
|
21
|
-
<%_ if (databaseTypeCassandra) { _%>
|
|
22
|
-
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
-
<%_ } _%>
|
|
24
21
|
import <%= packageName %>.IntegrationTest;
|
|
25
22
|
<%_ if (!skipUserManagement) { _%>
|
|
26
23
|
<%_ if (databaseTypeSql && reactive) { _%>
|
|
@@ -74,7 +71,7 @@ import static org.hamcrest.Matchers.not;
|
|
|
74
71
|
@AutoConfigureMockMvc
|
|
75
72
|
<%_ } _%>
|
|
76
73
|
@IntegrationTest
|
|
77
|
-
class UserJWTControllerIT
|
|
74
|
+
class UserJWTControllerIT {
|
|
78
75
|
|
|
79
76
|
<%_ if (!skipUserManagement) { _%>
|
|
80
77
|
@Autowired
|
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.web.rest;
|
|
20
20
|
|
|
21
|
-
<%_ if (databaseTypeCassandra) { _%>
|
|
22
|
-
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
-
<%_ } _%>
|
|
24
21
|
import <%= packageName %>.IntegrationTest;
|
|
25
22
|
<%_ if (databaseTypeSql && reactive) { _%>
|
|
26
23
|
import <%= packageName %>.config.Constants;
|
|
@@ -120,7 +117,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
|
|
120
117
|
<%_ } _%>
|
|
121
118
|
@WithMockUser(authorities = AuthoritiesConstants.ADMIN)
|
|
122
119
|
@IntegrationTest
|
|
123
|
-
class UserResourceIT
|
|
120
|
+
class UserResourceIT {
|
|
124
121
|
|
|
125
122
|
private static final String DEFAULT_LOGIN = "johndoe";
|
|
126
123
|
<%_ if (!authenticationTypeOauth2) { _%>
|
|
@@ -496,7 +493,7 @@ class UserResourceIT <% if (databaseTypeCassandra) { %>extends AbstractCassandra
|
|
|
496
493
|
|
|
497
494
|
// Get all the users
|
|
498
495
|
<%_ if (reactive) { _%>
|
|
499
|
-
<%= asDto('AdminUser') %> foundUser = webTestClient.get().uri("/api/admin/users?sort=id,
|
|
496
|
+
<%= asDto('AdminUser') %> foundUser = webTestClient.get().uri("/api/admin/users?sort=id,desc")
|
|
500
497
|
.accept(MediaType.APPLICATION_JSON)
|
|
501
498
|
.exchange()
|
|
502
499
|
.expectStatus().isOk()
|
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.web.rest.errors;
|
|
20
20
|
|
|
21
|
-
<%_ if (databaseTypeCassandra) { _%>
|
|
22
|
-
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
-
<%_ } _%>
|
|
24
21
|
import <%= packageName %>.IntegrationTest;
|
|
25
22
|
import org.junit.jupiter.api.Test;
|
|
26
23
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -46,7 +43,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
|
|
46
43
|
@WithMockUser
|
|
47
44
|
@AutoConfigureMockMvc
|
|
48
45
|
@IntegrationTest
|
|
49
|
-
class ExceptionTranslatorIT
|
|
46
|
+
class ExceptionTranslatorIT {
|
|
50
47
|
|
|
51
48
|
@Autowired
|
|
52
49
|
private MockMvc mockMvc;
|
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.web.rest.errors;
|
|
20
20
|
|
|
21
|
-
<%_ if (databaseTypeCassandra) { _%>
|
|
22
|
-
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
-
<%_ } _%>
|
|
24
21
|
import <%= packageName %>.IntegrationTest;
|
|
25
22
|
import org.junit.jupiter.api.Test;
|
|
26
23
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -45,7 +42,7 @@ import static org.springframework.security.test.web.reactive.server.SecurityMock
|
|
|
45
42
|
@WithMockUser
|
|
46
43
|
@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT)
|
|
47
44
|
@IntegrationTest
|
|
48
|
-
class ExceptionTranslatorIT
|
|
45
|
+
class ExceptionTranslatorIT {
|
|
49
46
|
|
|
50
47
|
@Autowired
|
|
51
48
|
private WebTestClient webTestClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
org.springframework.test.context.ContextCustomizerFactory = <%= packageName %>.TestContainersSpringContextCustomizerFactory
|
|
1
|
+
org.springframework.test.context.ContextCustomizerFactory = <%= packageName %>.config.TestContainersSpringContextCustomizerFactory
|
|
@@ -72,13 +72,14 @@ spring:
|
|
|
72
72
|
exclude:
|
|
73
73
|
- org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration
|
|
74
74
|
<%_ } _%>
|
|
75
|
-
<%_ if (serviceDiscoveryEureka) { _%>
|
|
75
|
+
<%_ if (serviceDiscoveryEureka || serviceDiscoveryConsul || messageBrokerKafka) { _%>
|
|
76
76
|
cloud:
|
|
77
|
+
<%_ } _%>
|
|
78
|
+
<%_ if (serviceDiscoveryEureka) { _%>
|
|
77
79
|
config:
|
|
78
80
|
enabled: false
|
|
79
81
|
<%_ } _%>
|
|
80
82
|
<%_ if (serviceDiscoveryConsul) { _%>
|
|
81
|
-
cloud:
|
|
82
83
|
consul:
|
|
83
84
|
discovery:
|
|
84
85
|
enabled: false
|
|
@@ -87,6 +88,23 @@ spring:
|
|
|
87
88
|
enabled: false
|
|
88
89
|
enabled: false
|
|
89
90
|
<%_ } _%>
|
|
91
|
+
<%_ if (messageBrokerKafka) { _%>
|
|
92
|
+
stream:
|
|
93
|
+
kafka:
|
|
94
|
+
binder:
|
|
95
|
+
replicationFactor: 1
|
|
96
|
+
auto-create-topics: true
|
|
97
|
+
bindings:
|
|
98
|
+
binding-in-sse:
|
|
99
|
+
destination: sse-topic
|
|
100
|
+
content-type: text/plain
|
|
101
|
+
group: <%= dasherizedBaseName %>
|
|
102
|
+
binding-out-sse:
|
|
103
|
+
destination: sse-topic
|
|
104
|
+
content-type: text/plain
|
|
105
|
+
group: <%= dasherizedBaseName %>
|
|
106
|
+
<%_ } _%>
|
|
107
|
+
|
|
90
108
|
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
91
109
|
datasource:
|
|
92
110
|
type: com.zaxxer.hikari.HikariDataSource
|
|
@@ -124,10 +142,7 @@ spring:
|
|
|
124
142
|
<%_ } _%>
|
|
125
143
|
<%_ if (databaseTypeCassandra) { _%>
|
|
126
144
|
cassandra:
|
|
127
|
-
contact-points: localhost
|
|
128
145
|
compression: NONE
|
|
129
|
-
keyspace-name: cassandra_unit_keyspace
|
|
130
|
-
local-datacenter: datacenter1
|
|
131
146
|
<%_ } _%>
|
|
132
147
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
133
148
|
couchbase:
|
|
@@ -146,7 +161,6 @@ spring:
|
|
|
146
161
|
host: localhost
|
|
147
162
|
main:
|
|
148
163
|
allow-bean-definition-overriding: true
|
|
149
|
-
allow-circular-references: true
|
|
150
164
|
<%_ if (!reactive) { _%>
|
|
151
165
|
mvc:
|
|
152
166
|
pathmatch:
|
|
@@ -176,7 +190,7 @@ spring:
|
|
|
176
190
|
scheduling:
|
|
177
191
|
thread-name-prefix: <%= dasherizedBaseName %>-scheduling-
|
|
178
192
|
pool:
|
|
179
|
-
size:
|
|
193
|
+
size: 20
|
|
180
194
|
thymeleaf:
|
|
181
195
|
mode: HTML
|
|
182
196
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
@@ -198,7 +212,6 @@ server:
|
|
|
198
212
|
#
|
|
199
213
|
# Full reference is available at: https://www.jhipster.tech/common-application-properties/
|
|
200
214
|
# ===================================================================
|
|
201
|
-
|
|
202
215
|
jhipster:
|
|
203
216
|
clientApp:
|
|
204
217
|
name: "<%= frontendAppName %>"
|
|
@@ -230,18 +243,6 @@ jhipster:
|
|
|
230
243
|
# security key (this key should be unique for your application, and kept secret)
|
|
231
244
|
key: <%= rememberMeKey %>
|
|
232
245
|
<%_ } _%>
|
|
233
|
-
<%_ if (messageBrokerKafka) { _%>
|
|
234
|
-
kafka:
|
|
235
|
-
bootstrap-servers: localhost:9092
|
|
236
|
-
consumer:
|
|
237
|
-
key.deserializer: org.apache.kafka.common.serialization.StringDeserializer
|
|
238
|
-
value.deserializer: org.apache.kafka.common.serialization.StringDeserializer
|
|
239
|
-
group.id: <%= dasherizedBaseName %>
|
|
240
|
-
auto.offset.reset: earliest
|
|
241
|
-
producer:
|
|
242
|
-
key.serializer: org.apache.kafka.common.serialization.StringSerializer
|
|
243
|
-
value.serializer: org.apache.kafka.common.serialization.StringSerializer
|
|
244
|
-
<%_ } _%>
|
|
245
246
|
|
|
246
247
|
# ===================================================================
|
|
247
248
|
# Application specific properties
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
testcontainers.reuse.enable=true
|
|
@@ -174,6 +174,7 @@ module.exports = class extends BaseBlueprintGenerator {
|
|
|
174
174
|
packages: this.packages,
|
|
175
175
|
},
|
|
176
176
|
devDependencies: {
|
|
177
|
+
rxjs: '^7', // Not required, workaround https://github.com/npm/cli/issues/4437
|
|
177
178
|
concurrently: this.dependabotPackageJson.devDependencies.concurrently,
|
|
178
179
|
},
|
|
179
180
|
scripts: {
|
|
@@ -235,7 +236,7 @@ module.exports = class extends BaseBlueprintGenerator {
|
|
|
235
236
|
if (this.dockerCompose) {
|
|
236
237
|
return {
|
|
237
238
|
'ci:e2e:prepare': 'docker-compose -f docker-compose/docker-compose.yml up -d',
|
|
238
|
-
'ci:e2e:teardown': 'docker-compose -f docker-compose/docker-compose.yml down -v
|
|
239
|
+
'ci:e2e:teardown': 'docker-compose -f docker-compose/docker-compose.yml down -v',
|
|
239
240
|
};
|
|
240
241
|
}
|
|
241
242
|
return {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "generator-jhipster",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.8.0",
|
|
4
4
|
"description": "Spring Boot + Angular/React/Vue in one handy generator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"yeoman-generator",
|
|
@@ -84,13 +84,13 @@
|
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {
|
|
86
86
|
"@faker-js/faker": "5.5.3",
|
|
87
|
-
"aws-sdk": "2.
|
|
88
|
-
"axios": "0.26.
|
|
87
|
+
"aws-sdk": "2.1101.0",
|
|
88
|
+
"axios": "0.26.1",
|
|
89
89
|
"chalk": "4.1.2",
|
|
90
|
-
"chevrotain": "10.1.
|
|
91
|
-
"commander": "9.
|
|
90
|
+
"chevrotain": "10.1.2",
|
|
91
|
+
"commander": "9.1.0",
|
|
92
92
|
"conf": "10.1.1",
|
|
93
|
-
"debug": "4.3.
|
|
93
|
+
"debug": "4.3.4",
|
|
94
94
|
"didyoumean": "1.2.2",
|
|
95
95
|
"ejs": "3.1.6",
|
|
96
96
|
"glob": "7.2.0",
|
|
@@ -98,21 +98,21 @@
|
|
|
98
98
|
"js-yaml": "4.1.0",
|
|
99
99
|
"lodash": "4.17.21",
|
|
100
100
|
"mem-fs-editor": "9.4.0",
|
|
101
|
-
"minimatch": "5.0.
|
|
101
|
+
"minimatch": "5.0.1",
|
|
102
102
|
"normalize-path": "3.0.0",
|
|
103
103
|
"os-locale": "5.0.0",
|
|
104
104
|
"p-queue": "6.6.2",
|
|
105
105
|
"p-transform": "1.3.0",
|
|
106
106
|
"parse-gitignore": "1.0.1",
|
|
107
107
|
"pluralize": "8.0.0",
|
|
108
|
-
"prettier": "2.
|
|
108
|
+
"prettier": "2.6.1",
|
|
109
109
|
"prettier-plugin-java": "1.6.1",
|
|
110
|
-
"prettier-plugin-packagejson": "2.2.
|
|
110
|
+
"prettier-plugin-packagejson": "2.2.17",
|
|
111
111
|
"progress": "2.0.3",
|
|
112
112
|
"randexp": "0.5.3",
|
|
113
113
|
"semver": "7.3.5",
|
|
114
114
|
"shelljs": "0.8.5",
|
|
115
|
-
"simple-git": "3.
|
|
115
|
+
"simple-git": "3.4.0",
|
|
116
116
|
"then-request": "6.0.2",
|
|
117
117
|
"uuid": "8.3.2",
|
|
118
118
|
"winston": "3.6.0",
|
|
@@ -122,17 +122,17 @@
|
|
|
122
122
|
"devDependencies": {
|
|
123
123
|
"chai": "4.3.6",
|
|
124
124
|
"ejs-lint": "1.2.1",
|
|
125
|
-
"eslint": "8.
|
|
125
|
+
"eslint": "8.12.0",
|
|
126
126
|
"eslint-config-airbnb-base": "15.0.0",
|
|
127
|
-
"eslint-config-prettier": "8.
|
|
128
|
-
"eslint-plugin-chai-friendly": "
|
|
127
|
+
"eslint-config-prettier": "8.5.0",
|
|
128
|
+
"eslint-plugin-chai-friendly": "0.7.2",
|
|
129
129
|
"eslint-plugin-import": "2.25.4",
|
|
130
130
|
"eslint-plugin-mocha": "10.0.3",
|
|
131
131
|
"eslint-plugin-prettier": "4.0.0",
|
|
132
132
|
"expect": "27.5.1",
|
|
133
|
-
"fs-extra": "10.0.
|
|
133
|
+
"fs-extra": "10.0.1",
|
|
134
134
|
"jsdoc": "3.6.10",
|
|
135
|
-
"mocha": "9.2.
|
|
135
|
+
"mocha": "9.2.2",
|
|
136
136
|
"mocha-expect-snapshot": "3.1.0",
|
|
137
137
|
"proxyquire": "2.1.3",
|
|
138
138
|
"sinon": "13.0.1",
|
package/utils/entity.js
CHANGED
|
@@ -47,7 +47,9 @@ const BASE_TEMPLATE_DATA = {
|
|
|
47
47
|
haveFieldWithJavadoc: false,
|
|
48
48
|
existingEnum: false,
|
|
49
49
|
searchEngine: false,
|
|
50
|
+
microserviceName: undefined,
|
|
50
51
|
|
|
52
|
+
requiresPersistableImplementation: false,
|
|
51
53
|
fieldsContainDate: false,
|
|
52
54
|
fieldsContainInstant: false,
|
|
53
55
|
fieldsContainUUID: false,
|
package/utils/field.js
CHANGED
|
@@ -240,6 +240,7 @@ function _derivedProperties(field) {
|
|
|
240
240
|
|
|
241
241
|
function prepareFieldForTemplates(entityWithConfig, field, generator) {
|
|
242
242
|
_.defaults(field, {
|
|
243
|
+
propertyName: field.fieldName,
|
|
243
244
|
fieldNameCapitalized: _.upperFirst(field.fieldName),
|
|
244
245
|
fieldNameUnderscored: _.snakeCase(field.fieldName),
|
|
245
246
|
fieldNameHumanized: _.startCase(field.fieldName),
|
|
@@ -270,23 +271,27 @@ function prepareFieldForTemplates(entityWithConfig, field, generator) {
|
|
|
270
271
|
field.jpaGeneratedValue = false;
|
|
271
272
|
field.autoGenerateByService = false;
|
|
272
273
|
field.autoGenerateByRepository = false;
|
|
274
|
+
field.requiresPersistableImplementation = true;
|
|
273
275
|
} else if (entityWithConfig.databaseType !== SQL) {
|
|
274
276
|
field.liquibaseAutoIncrement = false;
|
|
275
277
|
field.jpaGeneratedValue = false;
|
|
276
278
|
field.autoGenerateByService = field.fieldType === UUID;
|
|
277
279
|
field.autoGenerateByRepository = !field.autoGenerateByService;
|
|
280
|
+
field.requiresPersistableImplementation = false;
|
|
278
281
|
field.readonly = true;
|
|
279
282
|
} else if (entityWithConfig.reactive) {
|
|
280
|
-
field.liquibaseAutoIncrement =
|
|
283
|
+
field.liquibaseAutoIncrement = field.fieldType === LONG;
|
|
281
284
|
field.jpaGeneratedValue = false;
|
|
282
|
-
field.autoGenerateByService =
|
|
283
|
-
field.autoGenerateByRepository =
|
|
285
|
+
field.autoGenerateByService = !field.liquibaseAutoIncrement;
|
|
286
|
+
field.autoGenerateByRepository = !field.autoGenerateByService;
|
|
287
|
+
field.requiresPersistableImplementation = !field.liquibaseAutoIncrement;
|
|
284
288
|
field.readonly = true;
|
|
285
289
|
} else {
|
|
286
290
|
const defaultGenerationType = entityWithConfig.prodDatabaseType === MYSQL ? 'identity' : 'sequence';
|
|
287
291
|
field.jpaGeneratedValue = field.jpaGeneratedValue || field.fieldType === LONG ? defaultGenerationType : true;
|
|
288
292
|
field.autoGenerateByService = false;
|
|
289
293
|
field.autoGenerateByRepository = true;
|
|
294
|
+
field.requiresPersistableImplementation = false;
|
|
290
295
|
field.readonly = true;
|
|
291
296
|
if (field.jpaGeneratedValue === 'identity') {
|
|
292
297
|
field.liquibaseAutoIncrement = true;
|
package/utils/relationship.js
CHANGED
|
@@ -71,7 +71,12 @@ function prepareRelationshipForTemplates(entityWithConfig, relationship, generat
|
|
|
71
71
|
}
|
|
72
72
|
return otherSideRelationship.relationshipName === relationship.otherEntityRelationshipName;
|
|
73
73
|
});
|
|
74
|
-
if (
|
|
74
|
+
if (!otherRelationship) {
|
|
75
|
+
// TODO throw error at v8.
|
|
76
|
+
generator.warning(
|
|
77
|
+
`Error at '${entityName}' definitions: 'otherEntityRelationshipName' is set with value '${relationship.otherEntityRelationshipName}' at relationship '${relationship.relationshipName}' but no back-reference was found at '${otherEntityName}'`
|
|
78
|
+
);
|
|
79
|
+
} else if (
|
|
75
80
|
otherRelationship &&
|
|
76
81
|
otherRelationship.otherEntityRelationshipName &&
|
|
77
82
|
otherRelationship.otherEntityRelationshipName !== relationship.relationshipName
|
|
@@ -176,6 +181,10 @@ function prepareRelationshipForTemplates(entityWithConfig, relationship, generat
|
|
|
176
181
|
otherEntityNameCapitalizedPlural: pluralize(relationship.otherEntityNameCapitalized),
|
|
177
182
|
});
|
|
178
183
|
|
|
184
|
+
_.defaults(relationship, {
|
|
185
|
+
propertyName: relationship.collection ? relationship.relationshipFieldNamePlural : relationship.relationshipFieldName,
|
|
186
|
+
});
|
|
187
|
+
|
|
179
188
|
if (entityWithConfig.dto === MAPSTRUCT) {
|
|
180
189
|
if (otherEntityData.dto !== MAPSTRUCT && !generator.isBuiltInUser(otherEntityName)) {
|
|
181
190
|
generator.warning(
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
package <%= entityAbsolutePackage %>.repository.search;
|
|
2
|
-
|
|
3
|
-
import org.elasticsearch.search.sort.FieldSortBuilder;
|
|
4
|
-
import org.elasticsearch.search.sort.SortBuilder;
|
|
5
|
-
import org.elasticsearch.search.sort.SortOrder;
|
|
6
|
-
import org.springframework.core.convert.converter.Converter;
|
|
7
|
-
import org.springframework.data.domain.Sort;
|
|
8
|
-
|
|
9
|
-
import java.util.ArrayList;
|
|
10
|
-
import java.util.List;
|
|
11
|
-
|
|
12
|
-
public class SortToSortBuilderListConverter implements Converter<Sort, List<SortBuilder<?>>> {
|
|
13
|
-
|
|
14
|
-
@Override
|
|
15
|
-
public List<SortBuilder<?>> convert(Sort sort) {
|
|
16
|
-
List<SortBuilder<?>> builders = new ArrayList<>();
|
|
17
|
-
sort.stream().forEach(order -> {
|
|
18
|
-
String property = order.getProperty() + ".keyword";
|
|
19
|
-
SortOrder sortOrder = SortOrder.fromString(order.getDirection().name());
|
|
20
|
-
builders.add(new FieldSortBuilder(property).order(sortOrder));
|
|
21
|
-
|
|
22
|
-
});
|
|
23
|
-
return builders;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -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
|
-
}
|