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.
Files changed (162) hide show
  1. package/generators/app/index.js +11 -1
  2. package/generators/cleanup.js +27 -171
  3. package/generators/client/files-angular.js +6 -1
  4. package/generators/client/files-vue.js +5 -1
  5. package/generators/client/index.js +2 -1
  6. package/generators/client/templates/angular/angular.json.ejs +5 -0
  7. package/generators/client/templates/angular/jest.conf.js.ejs +2 -0
  8. package/generators/client/templates/angular/package.json +24 -24
  9. package/generators/client/templates/angular/package.json.ejs +3 -1
  10. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.ts.ejs +4 -4
  11. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
  12. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +4 -4
  13. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +4 -4
  14. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +10 -9
  15. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
  16. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +8 -6
  17. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +4 -4
  18. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +4 -4
  19. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +4 -4
  20. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +8 -8
  21. package/generators/client/templates/angular/src/main/webapp/app/app-routing.module.ts.ejs +14 -3
  22. package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +8 -29
  23. package/generators/client/templates/angular/src/main/webapp/app/config/datepicker-adapter.ts.ejs +1 -1
  24. package/generators/client/templates/angular/src/main/webapp/app/config/dayjs.ts.ejs +4 -4
  25. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +14 -9
  26. package/generators/client/templates/angular/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +6 -6
  27. package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
  28. package/generators/client/templates/angular/src/main/webapp/app/entities/entity-navbar-items.ts.ejs +29 -0
  29. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +14 -4
  30. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
  31. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +20 -0
  32. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +10 -4
  33. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +41 -2
  34. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +3 -2
  35. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +4 -4
  36. package/generators/client/templates/angular/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +4 -4
  37. package/generators/client/templates/angular/src/main/webapp/app/shared/date/duration.pipe.ts.ejs +1 -1
  38. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.spec.ts.ejs +1 -1
  39. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.ts.ejs +1 -1
  40. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.spec.ts.ejs +1 -1
  41. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.ts.ejs +1 -1
  42. package/generators/client/templates/angular/src/main/webapp/app/shared/language/translate.directive.ts.ejs +6 -6
  43. package/generators/client/templates/angular/src/main/webapp/app/shared/language/translation.module.ts.ejs +83 -0
  44. package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +16 -2
  45. package/generators/client/templates/angular/tsconfig.json.ejs +2 -0
  46. package/generators/client/templates/angular/tsconfig.spec.json.ejs +0 -1
  47. package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +0 -2
  48. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +0 -16
  49. package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +12 -5
  50. package/generators/client/templates/common/package.json +2 -2
  51. package/generators/client/templates/common/src/main/webapp/robots.txt.ejs +0 -1
  52. package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +86 -56
  53. package/generators/client/templates/react/package.json +27 -27
  54. package/generators/client/templates/react/package.json.ejs +2 -0
  55. package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +3 -2
  56. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.scss.ejs +9 -0
  57. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
  58. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -1
  59. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +0 -2
  60. package/generators/client/templates/vue/package.json +22 -22
  61. package/generators/client/templates/vue/package.json.ejs +3 -3
  62. package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +19 -9
  63. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +6 -0
  64. package/generators/client/templates/vue/src/main/webapp/app/entities/user/{user.oauth2.service.ts.ejs → user.service.ts.ejs} +1 -1
  65. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +0 -8
  66. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +4 -4
  67. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +2 -2
  68. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +0 -2
  69. package/generators/common/templates/README.md.jhi.ejs +1 -3
  70. package/generators/common/templates/package.json +3 -3
  71. package/generators/cypress/templates/cypress.json.ejs +9 -2
  72. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +3 -14
  73. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +33 -39
  74. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +52 -62
  75. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +2 -10
  76. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +25 -34
  77. package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -22
  78. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +38 -6
  79. package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -6
  80. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +7 -7
  81. package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +0 -9
  82. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +1 -1
  83. package/generators/entity/index.js +45 -3
  84. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +1 -1
  85. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +1 -1
  86. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -35
  87. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  88. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +4 -4
  89. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +8 -8
  90. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +1 -1
  91. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +8 -8
  92. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +8 -8
  93. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +8 -8
  94. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +15 -6
  95. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +1 -1
  96. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +1 -1
  97. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +12 -5
  98. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +5 -5
  99. package/generators/entity-client/templates/angular/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
  100. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +14 -37
  101. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +5 -4
  102. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +23 -19
  103. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +4 -6
  104. package/generators/entity-server/files.js +10 -0
  105. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +2 -2
  106. package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
  107. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +5 -8
  108. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +18 -2
  109. package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +24 -0
  110. package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +4 -6
  111. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +2 -2
  112. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +2 -2
  113. package/generators/generator-base-private.js +2 -1
  114. package/generators/generator-base.js +13 -3
  115. package/generators/generator-constants.js +7 -7
  116. package/generators/server/__snapshots__/generator.spec.mjs.snap +16 -15
  117. package/generators/server/cleanup.js +151 -0
  118. package/generators/server/files.js +16 -14
  119. package/generators/server/index.js +34 -23
  120. package/generators/server/templates/build.gradle.ejs +214 -188
  121. package/generators/server/templates/gradle.properties.ejs +8 -8
  122. package/generators/server/templates/npmw +7 -5
  123. package/generators/server/templates/npmw.cmd +12 -7
  124. package/generators/server/templates/pom.xml.ejs +419 -329
  125. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -2
  126. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +3 -2
  127. package/generators/server/templates/src/main/java/package/config/OpenApiConfiguration.java.ejs +17 -54
  128. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +5 -5
  129. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +3 -5
  130. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -2
  131. package/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs +19 -9
  132. package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +2 -2
  133. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -2
  134. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +6 -4
  135. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +2 -2
  136. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +3 -3
  137. package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +6 -6
  138. package/generators/server/templates/src/main/java/package/web/filter/ModifyServersOpenApiFilter.java.ejs +3 -2
  139. package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.java.ejs +1 -1
  140. package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
  141. package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +2 -2
  142. package/generators/server/templates/src/main/resources/config/application.yml.ejs +17 -3
  143. package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +1 -2
  144. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +2 -6
  145. package/generators/server/templates/src/test/java/package/cucumber/CucumberTestContextConfiguration.java.ejs +2 -3
  146. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +41 -6
  147. package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +7 -7
  148. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +10 -10
  149. package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +1 -1
  150. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +1 -1
  151. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +2 -3
  152. package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +9 -0
  153. package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +2 -0
  154. package/generators/server/templates/src/test/resources/logback.xml.ejs +1 -1
  155. package/generators/server/templates/src/test/{features → resources/package/features}/gitkeep +0 -0
  156. package/generators/server/templates/src/test/{features → resources/package/features}/user/user.feature.ejs +0 -0
  157. package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +1 -1
  158. package/package.json +9 -9
  159. package/utils/entity.js +1 -5
  160. package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +0 -91
  161. package/generators/server/templates/src/test/java/package/config/apidocs/GatewaySwaggerResourcesProviderTest.java.ejs +0 -79
  162. 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
- public void testInvalidTokensCountersByCauseAreCreated() {
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.size()).isEqualTo(4);
67
+ assertThat(counters).hasSize(4);
68
68
  }
69
69
 
70
70
  @Test
71
- public void testCountMethodsShouldBeBoundToCorrectCounters() {
71
+ void testCountMethodsShouldBeBoundToCorrectCounters() {
72
72
  assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
73
73
  .tag("cause", "expired")
74
- .counter().count()).isEqualTo(0);
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()).isEqualTo(0);
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()).isEqualTo(0);
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()).isEqualTo(0);
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
- public void testValidTokenShouldNotCountAnything() {
77
+ void testValidTokenShouldNotCountAnything() {
78
78
  Collection<Counter> counters = meterRegistry.find(INVALID_TOKENS_METER_EXPECTED_NAME).counters();
79
79
 
80
- assertThat(aggregate(counters)).isEqualTo(0);
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)).isEqualTo(0);
86
+ assertThat(aggregate(counters)).isZero();
87
87
  }
88
88
 
89
89
  @Test
90
- public void testTokenExpiredCount() {
90
+ void testTokenExpiredCount() {
91
91
  assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
92
92
  .tag("cause", "expired")
93
- .counter().count()).isEqualTo(0);
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()).isEqualTo(0);
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
- public void testTokenSignatureInvalidCount() {
120
+ void testTokenSignatureInvalidCount() {
121
121
  assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
122
122
  .tag("cause", "invalid-signature")
123
- .counter().count()).isEqualTo(0);
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
- public void testTokenMalformedCount() {
135
+ void testTokenMalformedCount() {
136
136
  assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
137
137
  .tag("cause", "malformed")
138
- .counter().count()).isEqualTo(0);
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.initMocks(this);
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.initMocks(this);
89
+ MockitoAnnotations.openMocks(this);
90
90
  doNothing().when(javaMailSender).send(any(MimeMessage.class));
91
91
  mailService = new MailService(jHipsterProperties, javaMailSender, messageSource, templateEngine);
92
92
  }
@@ -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() <% if (!reactive) { %>throws Exception <% } %>{
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
@@ -0,0 +1,2 @@
1
+ cucumber.publish.enabled=true
2
+ cucumber.plugin=pretty, html:target/cucumber-reports/Cucumber.html
@@ -123,7 +123,7 @@
123
123
  <%_ if (reactive) { _%>
124
124
  <logger name="reactor" level="WARN"/>
125
125
  <%_ } _%>
126
- <logger name="springfox" level="WARN"/>
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"/>
@@ -41,7 +41,7 @@ class <%= controllerClass %>IT {
41
41
 
42
42
  @BeforeEach
43
43
  public void setUp() {
44
- MockitoAnnotations.initMocks(this);
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.4.1",
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.1037.0",
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.0",
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.3.0",
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.0",
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.47.0",
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.3.0",
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": "9.0.0",
127
+ "eslint-plugin-mocha": "10.0.3",
128
128
  "eslint-plugin-prettier": "4.0.0",
129
- "expect": "27.3.1",
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