generator-jhipster 7.4.1 → 7.5.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/generators/app/index.js +11 -1
- package/generators/cleanup.js +27 -171
- package/generators/client/files-angular.js +6 -1
- package/generators/client/files-vue.js +5 -1
- package/generators/client/index.js +2 -1
- package/generators/client/templates/angular/angular.json.ejs +5 -0
- package/generators/client/templates/angular/jest.conf.js.ejs +2 -0
- package/generators/client/templates/angular/package.json +24 -24
- package/generators/client/templates/angular/package.json.ejs +3 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +10 -9
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +8 -6
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/app-routing.module.ts.ejs +14 -3
- package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +8 -29
- package/generators/client/templates/angular/src/main/webapp/app/config/datepicker-adapter.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/config/dayjs.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +14 -9
- package/generators/client/templates/angular/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/entities/entity-navbar-items.ts.ejs +29 -0
- package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +14 -4
- package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +20 -0
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +10 -4
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +41 -2
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +3 -2
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/duration.pipe.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.spec.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.spec.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/language/translate.directive.ts.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/shared/language/translation.module.ts.ejs +83 -0
- package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +16 -2
- package/generators/client/templates/angular/tsconfig.json.ejs +2 -0
- package/generators/client/templates/angular/tsconfig.spec.json.ejs +0 -1
- package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +0 -2
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +0 -16
- package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +12 -5
- package/generators/client/templates/common/package.json +2 -2
- package/generators/client/templates/common/src/main/webapp/robots.txt.ejs +0 -1
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +86 -56
- package/generators/client/templates/react/package.json +27 -27
- package/generators/client/templates/react/package.json.ejs +2 -0
- package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +3 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.scss.ejs +9 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -1
- package/generators/client/templates/react/webpack/webpack.dev.js.ejs +0 -2
- package/generators/client/templates/vue/package.json +22 -22
- package/generators/client/templates/vue/package.json.ejs +3 -3
- package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +19 -9
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +6 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/user/{user.oauth2.service.ts.ejs → user.service.ts.ejs} +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +0 -8
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +4 -4
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +2 -2
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +0 -2
- package/generators/common/templates/README.md.jhi.ejs +1 -3
- package/generators/common/templates/package.json +3 -3
- package/generators/cypress/templates/cypress.json.ejs +9 -2
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +3 -14
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +33 -39
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +52 -62
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +2 -10
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +25 -34
- package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -22
- package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +38 -6
- package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -6
- package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +7 -7
- package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +0 -9
- package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +1 -1
- package/generators/entity/index.js +45 -3
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -35
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +4 -4
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +8 -8
- 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/list/infinite-scroll-template.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +15 -6
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +12 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +5 -5
- package/generators/entity-client/templates/angular/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +14 -37
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +5 -4
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +23 -19
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +4 -6
- package/generators/entity-server/files.js +10 -0
- package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +5 -8
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +18 -2
- package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +24 -0
- package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +4 -6
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +2 -2
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +2 -2
- package/generators/generator-base-private.js +2 -1
- package/generators/generator-base.js +13 -3
- package/generators/generator-constants.js +7 -7
- package/generators/server/__snapshots__/generator.spec.mjs.snap +16 -15
- package/generators/server/cleanup.js +151 -0
- package/generators/server/files.js +16 -14
- package/generators/server/index.js +34 -23
- package/generators/server/templates/build.gradle.ejs +214 -188
- package/generators/server/templates/gradle.properties.ejs +8 -8
- package/generators/server/templates/npmw +7 -5
- package/generators/server/templates/npmw.cmd +12 -7
- package/generators/server/templates/pom.xml.ejs +419 -329
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -2
- package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +3 -2
- package/generators/server/templates/src/main/java/package/config/OpenApiConfiguration.java.ejs +17 -54
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +5 -5
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +3 -5
- package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -2
- package/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs +19 -9
- package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -2
- package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +6 -4
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +3 -3
- package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +6 -6
- package/generators/server/templates/src/main/java/package/web/filter/ModifyServersOpenApiFilter.java.ejs +3 -2
- package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +2 -2
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +17 -3
- package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +1 -2
- package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +2 -6
- package/generators/server/templates/src/test/java/package/cucumber/CucumberTestContextConfiguration.java.ejs +2 -3
- package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +41 -6
- package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +7 -7
- package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +10 -10
- package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +2 -3
- package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +9 -0
- package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +2 -0
- package/generators/server/templates/src/test/resources/logback.xml.ejs +1 -1
- package/generators/server/templates/src/test/{features → resources/package/features}/gitkeep +0 -0
- package/generators/server/templates/src/test/{features → resources/package/features}/user/user.feature.ejs +0 -0
- package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +1 -1
- package/package.json +9 -9
- package/utils/entity.js +1 -5
- package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +0 -91
- package/generators/server/templates/src/test/java/package/config/apidocs/GatewaySwaggerResourcesProviderTest.java.ejs +0 -79
- package/generators/server/templates/src/test/resources/cucumber.properties.ejs +0 -1
|
@@ -43,7 +43,7 @@ class SecurityMetersServiceTests {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
@Test
|
|
46
|
-
|
|
46
|
+
void testInvalidTokensCountersByCauseAreCreated() {
|
|
47
47
|
meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME).counter();
|
|
48
48
|
|
|
49
49
|
meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
@@ -64,14 +64,14 @@ class SecurityMetersServiceTests {
|
|
|
64
64
|
|
|
65
65
|
Collection<Counter> counters = meterRegistry.find(INVALID_TOKENS_METER_EXPECTED_NAME).counters();
|
|
66
66
|
|
|
67
|
-
assertThat(counters
|
|
67
|
+
assertThat(counters).hasSize(4);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
@Test
|
|
71
|
-
|
|
71
|
+
void testCountMethodsShouldBeBoundToCorrectCounters() {
|
|
72
72
|
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
73
73
|
.tag("cause", "expired")
|
|
74
|
-
.counter().count()).
|
|
74
|
+
.counter().count()).isZero();
|
|
75
75
|
|
|
76
76
|
securityMetersService.trackTokenExpired();
|
|
77
77
|
|
|
@@ -81,7 +81,7 @@ class SecurityMetersServiceTests {
|
|
|
81
81
|
|
|
82
82
|
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
83
83
|
.tag("cause", "unsupported")
|
|
84
|
-
.counter().count()).
|
|
84
|
+
.counter().count()).isZero();
|
|
85
85
|
|
|
86
86
|
securityMetersService.trackTokenUnsupported();
|
|
87
87
|
|
|
@@ -91,7 +91,7 @@ class SecurityMetersServiceTests {
|
|
|
91
91
|
|
|
92
92
|
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
93
93
|
.tag("cause", "invalid-signature")
|
|
94
|
-
.counter().count()).
|
|
94
|
+
.counter().count()).isZero();
|
|
95
95
|
|
|
96
96
|
securityMetersService.trackTokenInvalidSignature();
|
|
97
97
|
|
|
@@ -101,7 +101,7 @@ class SecurityMetersServiceTests {
|
|
|
101
101
|
|
|
102
102
|
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
103
103
|
.tag("cause", "malformed")
|
|
104
|
-
.counter().count()).
|
|
104
|
+
.counter().count()).isZero();
|
|
105
105
|
|
|
106
106
|
securityMetersService.trackTokenMalformed();
|
|
107
107
|
|
|
@@ -74,23 +74,23 @@ class TokenProviderSecurityMetersTests {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
@Test
|
|
77
|
-
|
|
77
|
+
void testValidTokenShouldNotCountAnything() {
|
|
78
78
|
Collection<Counter> counters = meterRegistry.find(INVALID_TOKENS_METER_EXPECTED_NAME).counters();
|
|
79
79
|
|
|
80
|
-
assertThat(aggregate(counters)).
|
|
80
|
+
assertThat(aggregate(counters)).isZero();
|
|
81
81
|
|
|
82
82
|
String validToken = createValidToken();
|
|
83
83
|
|
|
84
84
|
tokenProvider.validateToken(validToken);
|
|
85
85
|
|
|
86
|
-
assertThat(aggregate(counters)).
|
|
86
|
+
assertThat(aggregate(counters)).isZero();
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
@Test
|
|
90
|
-
|
|
90
|
+
void testTokenExpiredCount() {
|
|
91
91
|
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
92
92
|
.tag("cause", "expired")
|
|
93
|
-
.counter().count()).
|
|
93
|
+
.counter().count()).isZero();
|
|
94
94
|
|
|
95
95
|
String expiredToken = createExpiredToken();
|
|
96
96
|
|
|
@@ -105,7 +105,7 @@ class TokenProviderSecurityMetersTests {
|
|
|
105
105
|
void testTokenUnsupportedCount() {
|
|
106
106
|
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
107
107
|
.tag("cause", "unsupported")
|
|
108
|
-
.counter().count()).
|
|
108
|
+
.counter().count()).isZero();
|
|
109
109
|
|
|
110
110
|
String unsupportedToken = createUnsupportedToken();
|
|
111
111
|
|
|
@@ -117,10 +117,10 @@ class TokenProviderSecurityMetersTests {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
@Test
|
|
120
|
-
|
|
120
|
+
void testTokenSignatureInvalidCount() {
|
|
121
121
|
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
122
122
|
.tag("cause", "invalid-signature")
|
|
123
|
-
.counter().count()).
|
|
123
|
+
.counter().count()).isZero();
|
|
124
124
|
|
|
125
125
|
String tokenWithDifferentSignature = createTokenWithDifferentSignature();
|
|
126
126
|
|
|
@@ -132,10 +132,10 @@ class TokenProviderSecurityMetersTests {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
@Test
|
|
135
|
-
|
|
135
|
+
void testTokenMalformedCount() {
|
|
136
136
|
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
137
137
|
.tag("cause", "malformed")
|
|
138
|
-
.counter().count()).
|
|
138
|
+
.counter().count()).isZero();
|
|
139
139
|
|
|
140
140
|
String malformedToken = createMalformedToken();
|
|
141
141
|
|
|
@@ -68,7 +68,7 @@ class AuthorizationHeaderUtilTest {
|
|
|
68
68
|
|
|
69
69
|
@BeforeEach
|
|
70
70
|
public void setup() {
|
|
71
|
-
MockitoAnnotations.
|
|
71
|
+
MockitoAnnotations.openMocks(this);
|
|
72
72
|
SecurityContextHolder.setContext(securityContext);
|
|
73
73
|
|
|
74
74
|
doReturn(restTemplateBuilder).when(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter.class));
|
|
@@ -86,7 +86,7 @@ class MailServiceIT <% if (databaseTypeCassandra) { %>extends AbstractCassandraT
|
|
|
86
86
|
|
|
87
87
|
@BeforeEach
|
|
88
88
|
public void setup() {
|
|
89
|
-
MockitoAnnotations.
|
|
89
|
+
MockitoAnnotations.openMocks(this);
|
|
90
90
|
doNothing().when(javaMailSender).send(any(MimeMessage.class));
|
|
91
91
|
mailService = new MailService(jHipsterProperties, javaMailSender, messageSource, templateEngine);
|
|
92
92
|
}
|
package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs
CHANGED
|
@@ -68,8 +68,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
|
|
|
68
68
|
import org.springframework.security.test.context.support.WithMockUser;
|
|
69
69
|
<%_ if (reactive) { _%>
|
|
70
70
|
import org.springframework.test.web.reactive.server.WebTestClient;
|
|
71
|
-
<%_ } _%>
|
|
72
|
-
<%_ if (!reactive) { _%>
|
|
71
|
+
<%_ } else { _%>
|
|
73
72
|
import org.springframework.test.web.servlet.MockMvc;
|
|
74
73
|
<%_ } _%>
|
|
75
74
|
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
@@ -165,7 +164,7 @@ class AccountResourceIT <% if (databaseTypeCassandra) { %>extends AbstractCassan
|
|
|
165
164
|
@Test
|
|
166
165
|
@WithUnauthenticatedMockUser
|
|
167
166
|
<%_ if (!reactive) { _%>
|
|
168
|
-
void testNonAuthenticatedUser()
|
|
167
|
+
void testNonAuthenticatedUser() throws Exception {
|
|
169
168
|
restAccountMockMvc.perform(get("/api/authenticate")
|
|
170
169
|
.accept(MediaType.APPLICATION_JSON))
|
|
171
170
|
.andExpect(status().isOk())
|
|
@@ -69,6 +69,15 @@ class ClientForwardControllerTest {
|
|
|
69
69
|
.andExpect(status().isOk())
|
|
70
70
|
.andExpect(forwardedUrl("/"));
|
|
71
71
|
}
|
|
72
|
+
@Test
|
|
73
|
+
void getUnmappedDottedEndpoint() throws Exception {
|
|
74
|
+
restMockMvc.perform(get("/foo.js")).andExpect(status().isNotFound());
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@Test
|
|
78
|
+
void getUnmappedNestedDottedEndpoint() throws Exception {
|
|
79
|
+
restMockMvc.perform(get("/foo/bar.js")).andExpect(status().isNotFound());
|
|
80
|
+
}
|
|
72
81
|
|
|
73
82
|
<%_ if (communicationSpringWebsocket) { _%>
|
|
74
83
|
@Test
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
<%_ if (reactive) { _%>
|
|
124
124
|
<logger name="reactor" level="WARN"/>
|
|
125
125
|
<%_ } _%>
|
|
126
|
-
<logger name="
|
|
126
|
+
<logger name="io.swagger.v3" level="INFO"/>
|
|
127
127
|
<logger name="sun.rmi" level="WARN"/>
|
|
128
128
|
<%_ if (databaseTypeSql) { _%>
|
|
129
129
|
<logger name="liquibase" level="WARN"/>
|
package/generators/server/templates/src/test/{features → resources/package/features}/gitkeep
RENAMED
|
File without changes
|
|
File without changes
|
package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs
CHANGED
|
@@ -41,7 +41,7 @@ class <%= controllerClass %>IT {
|
|
|
41
41
|
|
|
42
42
|
@BeforeEach
|
|
43
43
|
public void setUp() {
|
|
44
|
-
MockitoAnnotations.
|
|
44
|
+
MockitoAnnotations.openMocks(this);
|
|
45
45
|
|
|
46
46
|
<%= controllerClass %> <%= controllerInstance %> = new <%= controllerClass %>();
|
|
47
47
|
restMockMvc = MockMvcBuilders
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "generator-jhipster",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.5.0",
|
|
4
4
|
"description": "Spring Boot + Angular/React/Vue in one handy generator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"yeoman-generator",
|
|
@@ -80,12 +80,12 @@
|
|
|
80
80
|
"update-snapshots": "npm run update-snapshot -- test generators"
|
|
81
81
|
},
|
|
82
82
|
"dependencies": {
|
|
83
|
-
"aws-sdk": "2.
|
|
83
|
+
"aws-sdk": "2.1048.0",
|
|
84
84
|
"axios": "0.24.0",
|
|
85
85
|
"chalk": "4.1.2",
|
|
86
86
|
"chevrotain": "9.1.0",
|
|
87
87
|
"commander": "8.3.0",
|
|
88
|
-
"conf": "10.1.
|
|
88
|
+
"conf": "10.1.1",
|
|
89
89
|
"debug": "4.3.3",
|
|
90
90
|
"didyoumean": "1.2.2",
|
|
91
91
|
"ejs": "3.1.6",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"insight": "0.11.1",
|
|
95
95
|
"js-yaml": "4.1.0",
|
|
96
96
|
"lodash": "4.17.21",
|
|
97
|
-
"mem-fs-editor": "9.
|
|
97
|
+
"mem-fs-editor": "9.4.0",
|
|
98
98
|
"minimatch": "3.0.4",
|
|
99
99
|
"normalize-path": "3.0.0",
|
|
100
100
|
"os-locale": "5.0.0",
|
|
@@ -102,14 +102,14 @@
|
|
|
102
102
|
"p-transform": "1.3.0",
|
|
103
103
|
"parse-gitignore": "1.0.1",
|
|
104
104
|
"pluralize": "8.0.0",
|
|
105
|
-
"prettier": "2.5.
|
|
105
|
+
"prettier": "2.5.1",
|
|
106
106
|
"prettier-plugin-java": "1.6.0",
|
|
107
107
|
"prettier-plugin-packagejson": "2.2.15",
|
|
108
108
|
"progress": "2.0.3",
|
|
109
109
|
"randexp": "0.5.3",
|
|
110
110
|
"semver": "7.3.5",
|
|
111
111
|
"shelljs": "0.8.4",
|
|
112
|
-
"simple-git": "2.
|
|
112
|
+
"simple-git": "2.48.0",
|
|
113
113
|
"then-request": "6.0.2",
|
|
114
114
|
"uuid": "8.3.2",
|
|
115
115
|
"winston": "3.3.3",
|
|
@@ -119,14 +119,14 @@
|
|
|
119
119
|
"devDependencies": {
|
|
120
120
|
"chai": "4.3.4",
|
|
121
121
|
"ejs-lint": "1.2.1",
|
|
122
|
-
"eslint": "8.
|
|
122
|
+
"eslint": "8.5.0",
|
|
123
123
|
"eslint-config-airbnb-base": "15.0.0",
|
|
124
124
|
"eslint-config-prettier": "8.3.0",
|
|
125
125
|
"eslint-plugin-chai-friendly": "^0.7.1",
|
|
126
126
|
"eslint-plugin-import": "2.25.3",
|
|
127
|
-
"eslint-plugin-mocha": "
|
|
127
|
+
"eslint-plugin-mocha": "10.0.3",
|
|
128
128
|
"eslint-plugin-prettier": "4.0.0",
|
|
129
|
-
"expect": "27.
|
|
129
|
+
"expect": "27.4.2",
|
|
130
130
|
"fs-extra": "10.0.0",
|
|
131
131
|
"jsdoc": "3.6.7",
|
|
132
132
|
"mocha": "9.1.3",
|
package/utils/entity.js
CHANGED
|
@@ -28,7 +28,6 @@ const { PaginationTypes, ServiceTypes } = require('../jdl/jhipster/entity-option
|
|
|
28
28
|
const { GATEWAY, MICROSERVICE } = require('../jdl/jhipster/application-types');
|
|
29
29
|
const { MapperTypes } = require('../jdl/jhipster/entity-options');
|
|
30
30
|
const { OAUTH2 } = require('../jdl/jhipster/authentication-types');
|
|
31
|
-
const { ANGULAR_X } = require('../jdl/jhipster/client-framework-types');
|
|
32
31
|
const { CommonDBTypes } = require('../jdl/jhipster/field-types');
|
|
33
32
|
|
|
34
33
|
const { BOOLEAN, LONG, STRING, UUID } = CommonDBTypes;
|
|
@@ -208,10 +207,7 @@ function prepareEntityForTemplates(entityWithConfig, generator) {
|
|
|
208
207
|
const { microserviceName, entityFileName, microfrontend } = entityWithConfig;
|
|
209
208
|
entityWithConfig.entityApi = microserviceName ? `services/${microserviceName.toLowerCase()}/` : '';
|
|
210
209
|
entityWithConfig.entityPage =
|
|
211
|
-
microfrontend &&
|
|
212
|
-
microserviceName &&
|
|
213
|
-
entityWithConfig.clientFramework !== ANGULAR_X &&
|
|
214
|
-
(entityWithConfig.applicationType === MICROSERVICE || entityWithConfig.applicationType === GATEWAY)
|
|
210
|
+
microfrontend && microserviceName && (entityWithConfig.applicationType === MICROSERVICE || entityWithConfig.applicationType === GATEWAY)
|
|
215
211
|
? `${microserviceName.toLowerCase()}/${entityFileName}`
|
|
216
212
|
: `${entityFileName}`;
|
|
217
213
|
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
package <%= packageName %>.config.apidocs;
|
|
2
|
-
|
|
3
|
-
import java.util.*;
|
|
4
|
-
import java.util.concurrent.TimeUnit;
|
|
5
|
-
import org.springframework.beans.factory.annotation.Qualifier;
|
|
6
|
-
import org.springframework.beans.factory.annotation.Value;
|
|
7
|
-
import org.springframework.cloud.gateway.route.Route;
|
|
8
|
-
import org.springframework.cloud.gateway.route.RouteLocator;
|
|
9
|
-
import org.springframework.context.annotation.Configuration;
|
|
10
|
-
import org.springframework.context.annotation.Primary;
|
|
11
|
-
import org.springframework.context.annotation.Profile;
|
|
12
|
-
import org.springframework.stereotype.Component;
|
|
13
|
-
import reactor.core.scheduler.Schedulers;
|
|
14
|
-
import springfox.documentation.swagger.web.SwaggerResource;
|
|
15
|
-
import springfox.documentation.swagger.web.SwaggerResourcesProvider;
|
|
16
|
-
import tech.jhipster.config.JHipsterConstants;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Retrieves all registered microservices Swagger resources.
|
|
20
|
-
*/
|
|
21
|
-
@Component
|
|
22
|
-
@Primary
|
|
23
|
-
@Profile(JHipsterConstants.SPRING_PROFILE_API_DOCS)
|
|
24
|
-
@Configuration
|
|
25
|
-
public class GatewaySwaggerResourcesProvider implements SwaggerResourcesProvider {
|
|
26
|
-
|
|
27
|
-
@Value("${eureka.instance.appname:<%= baseName.toLowerCase() %>}")
|
|
28
|
-
private String gatewayName;
|
|
29
|
-
|
|
30
|
-
private final RouteLocator routeLocator;
|
|
31
|
-
|
|
32
|
-
@Qualifier("swaggerResources")
|
|
33
|
-
private final SwaggerResourcesProvider swaggerResourcesProvider;
|
|
34
|
-
|
|
35
|
-
public GatewaySwaggerResourcesProvider(RouteLocator routeLocator, SwaggerResourcesProvider swaggerResourcesProvider) {
|
|
36
|
-
this.routeLocator = routeLocator;
|
|
37
|
-
this.swaggerResourcesProvider = swaggerResourcesProvider;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@Override
|
|
41
|
-
public List<SwaggerResource> get() {
|
|
42
|
-
List<SwaggerResource> swaggerResources = new ArrayList<>();
|
|
43
|
-
|
|
44
|
-
swaggerResources.add(swaggerResource(gatewayName.concat(" (default)"), "/v3/api-docs"));
|
|
45
|
-
swaggerResources.add(swaggerResource(gatewayName.concat(" (management)"), "/v3/api-docs?group=management"));
|
|
46
|
-
|
|
47
|
-
List<String> microservices = routeLocator
|
|
48
|
-
.getRoutes()
|
|
49
|
-
.map(this::getMicroserviceName)
|
|
50
|
-
.collectList()
|
|
51
|
-
.defaultIfEmpty(Collections.emptyList())
|
|
52
|
-
.subscribeOn(Schedulers.boundedElastic())
|
|
53
|
-
.toFuture()
|
|
54
|
-
.orTimeout(10, TimeUnit.SECONDS)
|
|
55
|
-
.join();
|
|
56
|
-
microservices
|
|
57
|
-
.stream()
|
|
58
|
-
.filter(this::isNotGateway)
|
|
59
|
-
<%_ if (serviceDiscoveryConsul) { _%>
|
|
60
|
-
.filter(this::isNotConsul)
|
|
61
|
-
<%_ } _%>
|
|
62
|
-
.forEach(microservice -> swaggerResources.add(swaggerResource(microservice, getMicroserviceApiDocs(microservice))));
|
|
63
|
-
return swaggerResources;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
public static SwaggerResource swaggerResource(String name, String location) {
|
|
67
|
-
SwaggerResource swaggerResource = new SwaggerResource();
|
|
68
|
-
swaggerResource.setName(name);
|
|
69
|
-
swaggerResource.setLocation(location);
|
|
70
|
-
swaggerResource.setSwaggerVersion("3.0");
|
|
71
|
-
return swaggerResource;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
private boolean isNotGateway(String name) {
|
|
75
|
-
return !name.equalsIgnoreCase(gatewayName);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
<%_ if (serviceDiscoveryConsul) { _%>
|
|
79
|
-
private boolean isNotConsul(String name) {
|
|
80
|
-
return !name.equalsIgnoreCase("consul");
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
<%_ } _%>
|
|
84
|
-
private String getMicroserviceApiDocs(String name) {
|
|
85
|
-
return "/services/".concat(name).concat("/v3/api-docs");
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
private String getMicroserviceName(Route route) {
|
|
89
|
-
return route.getUri().toString().replace("lb://", "").toLowerCase();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
package <%= packageName %>.config.apidocs;
|
|
2
|
-
|
|
3
|
-
import static org.assertj.core.api.Assertions.assertThat;
|
|
4
|
-
import static org.mockito.Mockito.when;
|
|
5
|
-
import static <%= packageName %>.config.apidocs.GatewaySwaggerResourcesProvider.swaggerResource;
|
|
6
|
-
|
|
7
|
-
import java.net.URI;
|
|
8
|
-
import java.util.List;
|
|
9
|
-
import org.junit.jupiter.api.Test;
|
|
10
|
-
import org.junit.jupiter.api.extension.ExtendWith;
|
|
11
|
-
import org.mockito.InjectMocks;
|
|
12
|
-
import org.mockito.Mock;
|
|
13
|
-
import org.springframework.cloud.gateway.route.Route;
|
|
14
|
-
import org.springframework.cloud.gateway.route.RouteLocator;
|
|
15
|
-
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
|
16
|
-
import org.springframework.test.util.ReflectionTestUtils;
|
|
17
|
-
import reactor.core.publisher.Flux;
|
|
18
|
-
import springfox.documentation.swagger.web.SwaggerResource;
|
|
19
|
-
import springfox.documentation.swagger.web.SwaggerResourcesProvider;
|
|
20
|
-
|
|
21
|
-
@ExtendWith(SpringExtension.class)
|
|
22
|
-
class GatewaySwaggerResourcesProviderTest {
|
|
23
|
-
|
|
24
|
-
@InjectMocks
|
|
25
|
-
GatewaySwaggerResourcesProvider gatewaySwaggerResourcesProvider;
|
|
26
|
-
|
|
27
|
-
@Mock
|
|
28
|
-
RouteLocator routeLocator;
|
|
29
|
-
|
|
30
|
-
@Mock
|
|
31
|
-
SwaggerResourcesProvider swaggerResourcesProvider;
|
|
32
|
-
|
|
33
|
-
@Test
|
|
34
|
-
void shouldGet() {
|
|
35
|
-
// Given
|
|
36
|
-
ReflectionTestUtils.setField(gatewaySwaggerResourcesProvider, "gatewayName", "burger");
|
|
37
|
-
when(swaggerResourcesProvider.get())
|
|
38
|
-
.thenReturn(
|
|
39
|
-
List.of(
|
|
40
|
-
swaggerResource("default", "/v3/api-docs"),
|
|
41
|
-
swaggerResource("default", "/v3/api-docs?group=management"),
|
|
42
|
-
swaggerResource("default", "/v3/api-docs?group=openapi")
|
|
43
|
-
)
|
|
44
|
-
);
|
|
45
|
-
when(routeLocator.getRoutes())
|
|
46
|
-
.thenReturn(
|
|
47
|
-
Flux.just(
|
|
48
|
-
Route
|
|
49
|
-
.async()
|
|
50
|
-
.id("ReactiveCompositeDiscoveryClient_BURGER")
|
|
51
|
-
.uri(URI.create("lb://BURGER"))
|
|
52
|
-
.predicate(exchange -> true)
|
|
53
|
-
.build(),
|
|
54
|
-
Route
|
|
55
|
-
.async()
|
|
56
|
-
.id("ReactiveCompositeDiscoveryClient_BEER")
|
|
57
|
-
.uri(URI.create("lb://BEER"))
|
|
58
|
-
.predicate(exchange -> true)
|
|
59
|
-
.build()
|
|
60
|
-
)
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
// When
|
|
64
|
-
List<SwaggerResource> result = gatewaySwaggerResourcesProvider.get();
|
|
65
|
-
|
|
66
|
-
// Then
|
|
67
|
-
assertThat(result).isNotEmpty();
|
|
68
|
-
assertThat(result.size()).isEqualTo(3);
|
|
69
|
-
|
|
70
|
-
assertThat(result.get(0).getName()).isEqualTo("burger (default)");
|
|
71
|
-
assertThat(result.get(0).getUrl()).isEqualTo("/v3/api-docs");
|
|
72
|
-
|
|
73
|
-
assertThat(result.get(1).getName()).isEqualTo("burger (management)");
|
|
74
|
-
assertThat(result.get(1).getUrl()).isEqualTo("/v3/api-docs?group=management");
|
|
75
|
-
|
|
76
|
-
assertThat(result.get(2).getName()).isEqualTo("beer");
|
|
77
|
-
assertThat(result.get(2).getUrl()).isEqualTo("/services/beer/v3/api-docs");
|
|
78
|
-
}
|
|
79
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
cucumber.publish.quiet=true
|