Skip to content

Commit

Permalink
add mavenDefinition to addJavaDefinition
Browse files Browse the repository at this point in the history
  • Loading branch information
mshima committed Aug 14, 2024
1 parent 61a8c23 commit 5102d53
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 21 deletions.
7 changes: 5 additions & 2 deletions generators/java/generators/build-tool/generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ export default class BuildToolGenerator extends BaseApplicationGenerator {
};

source.addJavaDefinition = (definition, options) => {
const { dependencies, versions } = definition;
const { dependencies, versions, mavenDefinition } = definition;
if (dependencies) {
source.addJavaDependencies!(
dependencies.filter(dep => {
Expand All @@ -128,9 +128,12 @@ export default class BuildToolGenerator extends BaseApplicationGenerator {
});
}
if (application.buildToolGradle) {
source.addGradleDependencyCatalogVersions?.(versions, options);
source.addGradleDependencyCatalogVersions!(versions, options);
}
}
if (application.buildToolMaven && mavenDefinition) {
source.addMavenDefinition!(mavenDefinition);
}
};

source.addJavaDefinitions = (
Expand Down
2 changes: 2 additions & 0 deletions generators/java/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { RequireOneOrNone } from 'type-fest';
import { BaseApplication } from '../base-application/types.js';
import { GradleApplication, GradleNeedleOptions } from '../gradle/types.js';
import { EditFileCallback } from '../base/api.js';
import { MavenDefinition } from '../maven/types.js';
import { JavaAnnotation } from './support/add-java-annotation.ts';

export type JavaDependencyVersion = {
Expand All @@ -27,6 +28,7 @@ export type JavaDependency = JavaArtifact & JavaArtifactVersion;
export type JavaDefinition = {
versions?: JavaDependencyVersion[];
dependencies?: JavaDependency[];
mavenDefinition?: MavenDefinition;
};

export type JavaNeedleOptions = GradleNeedleOptions;
Expand Down
31 changes: 12 additions & 19 deletions generators/spring-data-relational/generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,11 @@ export default class SqlGenerator extends BaseApplicationGenerator<SpringBootGen
},
addDependencies({ application, source }) {
const { reactive, javaDependencies, packageFolder } = application;
const { prodDatabaseType, devDatabaseTypeH2Any } = application as any;
const dbDefinitions = getDatabaseTypeMavenDefinition(prodDatabaseType, {
inProfile: devDatabaseTypeH2Any ? 'prod' : undefined,
javaDependencies,
});

source.addJavaDefinitions?.(
{
Expand All @@ -148,6 +153,7 @@ export default class SqlGenerator extends BaseApplicationGenerator<SpringBootGen
{ groupId: 'jakarta.persistence', artifactId: 'jakarta.persistence-api' },
{ groupId: 'org.springframework.boot', artifactId: 'spring-boot-starter-data-r2dbc' },
],
mavenDefinition: dbDefinitions.r2dbc,
},
{
condition: !reactive,
Expand All @@ -159,6 +165,7 @@ export default class SqlGenerator extends BaseApplicationGenerator<SpringBootGen
{ groupId: 'org.springframework.security', artifactId: 'spring-security-data' },
{ scope: 'annotationProcessor', groupId: 'org.hibernate.orm', artifactId: 'hibernate-jpamodelgen' },
],
mavenDefinition: { dependencies: [{ inProfile: 'IDE', groupId: 'org.hibernate.orm', artifactId: 'hibernate-jpamodelgen' }] },
},
{
dependencies: [
Expand All @@ -169,29 +176,15 @@ export default class SqlGenerator extends BaseApplicationGenerator<SpringBootGen
{ scope: 'test', groupId: 'org.testcontainers', artifactId: 'junit-jupiter' },
{ scope: 'test', groupId: 'org.testcontainers', artifactId: 'testcontainers' },
],
mavenDefinition: dbDefinitions.jdbc,
},
);

if (application.buildToolMaven) {
const { prodDatabaseType, devDatabaseTypeH2Any } = application as any;

const inProfile = devDatabaseTypeH2Any ? 'prod' : undefined;
if (!reactive) {
source.addMavenDefinition?.({
dependencies: [{ inProfile: 'IDE', groupId: 'org.hibernate.orm', artifactId: 'hibernate-jpamodelgen' }],
});
}
if (devDatabaseTypeH2Any) {
const h2Definitions = getH2MavenDefinition({ prodDatabaseType, packageFolder });
source.addMavenDefinition?.(h2Definitions.jdbc);
if (reactive) {
source.addMavenDefinition?.(h2Definitions.r2dbc);
}
}
const dbDefinitions = getDatabaseTypeMavenDefinition(prodDatabaseType, { inProfile, javaDependencies });
source.addMavenDefinition?.(dbDefinitions.jdbc);
if (devDatabaseTypeH2Any && application.buildToolMaven) {
const h2Definitions = getH2MavenDefinition({ prodDatabaseType, packageFolder });
source.addMavenDefinition?.(h2Definitions.jdbc);
if (reactive) {
source.addMavenDefinition?.(dbDefinitions.r2dbc);
source.addMavenDefinition?.(h2Definitions.r2dbc);
}
}
},
Expand Down

0 comments on commit 5102d53

Please sign in to comment.