Skip to content

Commit

Permalink
spring-boot: adjust gradle dev dependencies (#27648)
Browse files Browse the repository at this point in the history
  • Loading branch information
mshima authored Oct 22, 2024
1 parent 6211df4 commit a3628d5
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 130 deletions.
15 changes: 15 additions & 0 deletions generators/app/__snapshots__/generator.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -763,6 +763,11 @@ exports[`generator - app with default config should match snapshot 1`] = `
"artifactId": "r2dbc-postgresql",
"groupId": "org.postgresql",
},
"testContainer": {
"artifactId": "postgresql",
"groupId": "org.testcontainers",
"scope": "test",
},
},
"prodDatabaseExtraOptions": "",
"prodDatabaseName": "jhipster",
Expand Down Expand Up @@ -1403,6 +1408,11 @@ exports[`generator - app with gateway should match snapshot 1`] = `
"artifactId": "r2dbc-postgresql",
"groupId": "org.postgresql",
},
"testContainer": {
"artifactId": "postgresql",
"groupId": "org.testcontainers",
"scope": "test",
},
},
"prodDatabaseExtraOptions": "",
"prodDatabaseName": "jhipster",
Expand Down Expand Up @@ -1989,6 +1999,11 @@ exports[`generator - app with microservice should match snapshot 1`] = `
"artifactId": "r2dbc-postgresql",
"groupId": "org.postgresql",
},
"testContainer": {
"artifactId": "postgresql",
"groupId": "org.testcontainers",
"scope": "test",
},
},
"prodDatabaseExtraOptions": "",
"prodDatabaseName": "jhipster",
Expand Down
2 changes: 1 addition & 1 deletion generators/java/generators/build-tool/generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ export default class BuildToolGenerator extends BaseApplicationGenerator {
dependencies: [
...commonDependencies.map(convertVersionToRef),
// Add a provided scope for annotation processors so that version is not required in annotationProcessor dependencies
...annotationProcessors.filter(dep => !dep.version).map(artifact => ({ ...artifact, scope: 'provided' })),
...annotationProcessors.filter(dep => !dep.version).map(artifact => ({ ...artifact, scope: 'provided' as const })),
],
dependencyManagement: importDependencies.map(convertVersionToRef),
annotationProcessors: annotationProcessors.map(convertVersionToRef).map(removeScope),
Expand Down
4 changes: 2 additions & 2 deletions generators/maven/__snapshots__/needles.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ exports[`generator - maven - needles prod profile should match generated pom 1`]
<groupId>dependencyManagementGroupId</groupId>
<artifactId>dependencyManagementArtifactId</artifactId>
<version>version</version>
<type>type</type>
<scope>scope</scope>
<type>jar</type>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>exclusionGroupId</groupId>
Expand Down
12 changes: 6 additions & 6 deletions generators/maven/needles.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ class mockBlueprintSubGen extends BaseApplicationGenerator {
groupId: 'dependencyManagementGroupId',
artifactId: 'dependencyManagementArtifactId',
version: 'version',
type: 'type',
scope: 'scope',
type: 'jar',
scope: 'test',
additionalContent: `
<exclusions>
<exclusion>
Expand Down Expand Up @@ -139,8 +139,8 @@ describe('generator - maven - needles', () => {
<groupId>dependencyManagementGroupId</groupId>
<artifactId>dependencyManagementArtifactId</artifactId>
<version>version</version>
<type>type</type>
<scope>scope</scope>
<type>jar</type>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>exclusionGroupId</groupId>
Expand Down Expand Up @@ -266,8 +266,8 @@ describe('generator - maven - needles', () => {
<groupId>dependencyManagementGroupId</groupId>
<artifactId>dependencyManagementArtifactId</artifactId>
<version>version</version>
<type>type</type>
<scope>scope</scope>
<type>jar</type>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>exclusionGroupId</groupId>
Expand Down
9 changes: 3 additions & 6 deletions generators/maven/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
* limitations under the License.
*/

export type MavenArtifact = {
groupId?: string;
artifactId: string;
import type { JavaArtifact } from '../java/types.js';

export type MavenArtifact = JavaArtifact & {
version?: string;
inProfile?: string;
};
Expand All @@ -40,9 +40,6 @@ export type MavenRepository = {
};

export type MavenDependency = MavenArtifact & {
type?: string;
scope?: string;
classifier?: string;
optional?: boolean;
additionalContent?: string;
};
Expand Down
48 changes: 2 additions & 46 deletions generators/spring-boot/templates/gradle/profile_dev.gradle.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -24,56 +24,12 @@ sourceSets {
}
}
}
<%_ } _%>
<%_ if (databaseTypeSql) { _%>
configurations {
all {
resolutionStrategy {
<%_ if (prodDatabaseDriver?.r2dbc?.version) { _%>
force "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>:<%- prodDatabaseDriver.r2dbc.version %>"
<%_ } _%>
<%_ if (prodDatabaseDriver?.jdbc?.version) { _%>
force "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>:<%- prodDatabaseDriver.jdbc.version %>"
<%_ } _%>
}
}
}
<%_ } _%>
dependencies {
developmentOnly "org.springframework.boot:spring-boot-devtools"
<%_ if (devDatabaseTypeH2Any && !reactive) { _%>
implementation "com.h2database:h2"
<%_ } _%>
<%_ if (devDatabaseTypeOracle) { _%>
implementation "com.oracle.database.jdbc:ojdbc8"
<%_ } _%>
<%_ if (devDatabaseTypeH2Any && reactive) { _%>
implementation "io.r2dbc:r2dbc-h2"
<%_ } _%>
<%_ if (devDatabaseTypeMariadb || devDatabaseTypeMssql || devDatabaseTypePostgres || devDatabaseTypeMysql) { _%>
<%_ if (reactive) { _%>
implementation "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>"
<%_ } _%>
implementation "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>"
<%_ } _%>
<%_ if (prodDatabaseTypeMariadb) { _%>
testImplementation "org.testcontainers:mariadb"
<%_ } _%>
<%_ if (prodDatabaseTypeMssql) { _%>
testImplementation "org.testcontainers:mssqlserver"
<%_ } _%>
<%_ if (prodDatabaseTypeMysql) { _%>
testImplementation "org.testcontainers:mysql"
<%_ } _%>
<%_ if (prodDatabaseTypeOracle) { _%>
testImplementation "org.testcontainers:oracle-xe"
<%_ } _%>
<%_ if (prodDatabaseTypePostgresql) { _%>
testImplementation "org.testcontainers:postgresql"
<%_ } _%>
// jhipster-needle-gradle-dependency - JHipster will add additional dependencies here
}
<%_ } _%>

ext {
springProfiles = "dev" + springProfiles
Expand Down
48 changes: 1 addition & 47 deletions generators/spring-boot/templates/gradle/profile_prod.gradle.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -16,55 +16,9 @@
See the License for the specific language governing permissions and
limitations under the License.
-%>
<%_ if (devDatabaseType !== prodDatabaseType && (devDatabaseTypeMariadb || devDatabaseTypeMssql || devDatabaseTypeMysql || devDatabaseTypePostgres)) { _%>
sourceSets {
test {
java {
exclude '<%= packageFolder %>/config/<% if (devDatabaseTypeMariadb) { %>Mariadb<% } else if (devDatabaseTypeMssql) { %>MsSql<% } else if (devDatabaseTypeMysql) { %>Mysql<% } else if (devDatabaseTypePostgres) { %>PostgreSql<% } %>TestContainer.java'
}
}
}
<%_ } _%>
<%_ if (databaseTypeSql) { _%>
configurations {
all {
resolutionStrategy {
<%_ if (prodDatabaseDriver?.r2dbc?.version) { _%>
force "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>:<%- prodDatabaseDriver.r2dbc.version %>"
<%_ } _%>
<%_ if (prodDatabaseDriver?.jdbc?.version) { _%>
force "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>:<%- prodDatabaseDriver.jdbc.version %>"
<%_ } _%>
}
}
}
dependencies {
<%_ if (prodDatabaseTypeMariadb || prodDatabaseTypeMssql || prodDatabaseTypeMysql || prodDatabaseTypePostgresql) { _%>
<%_ if (reactive) { _%>
implementation "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>"
<%_ } _%>
implementation "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>"
<%_ } _%>
<%_ if (prodDatabaseTypeMariadb) { _%>
testImplementation "org.testcontainers:mariadb"
<%_ } _%>
<%_ if (prodDatabaseTypeMssql) { _%>
testImplementation "org.testcontainers:mssqlserver"
<%_ } _%>
<%_ if (prodDatabaseTypeMysql) { _%>
testImplementation "org.testcontainers:mysql"
<%_ } _%>
<%_ if (prodDatabaseTypeOracle) { _%>
implementation "com.oracle.database.jdbc:ojdbc8"
testImplementation "org.testcontainers:oracle-xe"
<%_ } _%>
<%_ if (prodDatabaseTypePostgresql) { _%>
testImplementation "org.testcontainers:postgresql"
<%_ } _%>
// jhipster-needle-gradle-dependency - JHipster will add additional dependencies here
}
<%_ } _%>

ext {
springProfiles = "prod" + springProfiles
Expand Down
21 changes: 20 additions & 1 deletion generators/spring-data-relational/generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,12 @@ import writeTask from './files.js';
import cleanupTask from './cleanup.js';
import writeEntitiesTask, { cleanupEntitiesTask } from './entity-files.js';
import { getDBCExtraOption, getJdbcUrl, getR2dbcUrl } from './support/index.js';
import { getDatabaseDriverForDatabase, getDatabaseTypeMavenDefinition, getH2MavenDefinition } from './internal/dependencies.js';
import {
getDatabaseDriverForDatabase,
getDatabaseTypeMavenDefinition,
getH2MavenDefinition,
javaSqlDatabaseArtifacts,
} from './internal/dependencies.js';

const { SQL } = databaseTypes;

Expand Down Expand Up @@ -191,6 +196,20 @@ export default class SqlGenerator extends BaseApplicationGenerator {
mavenDefinition: h2Definitions?.r2dbc,
},
);

if (application.buildToolGradle) {
const artifacts = javaSqlDatabaseArtifacts[prodDatabaseType];
source.addJavaDefinition!(
{ dependencies: [artifacts.jdbc, artifacts.testContainer, ...(reactive && artifacts.r2dbc ? [artifacts.r2dbc] : [])] },
{ gradleFile: devDatabaseTypeH2Any ? 'gradle/profile_prod.gradle' : 'build.gradle' },
);
if (devDatabaseTypeH2Any) {
source.addJavaDefinition!(
{ dependencies: [javaSqlDatabaseArtifacts.h2.jdbc, ...(reactive ? [javaSqlDatabaseArtifacts.h2.r2dbc] : [])] },
{ gradleFile: 'gradle/profile_dev.gradle' },
);
}
}
},
});
}
Expand Down
Loading

0 comments on commit a3628d5

Please sign in to comment.