Skip to content

Commit

Permalink
Merge pull request #9719 from murdos/gitignore-module-api
Browse files Browse the repository at this point in the history
API in ModuleBuilder to declare entries in gitignore
  • Loading branch information
murdos authored May 14, 2024
2 parents 72e5c41 + 056bd1c commit 134caf2
Show file tree
Hide file tree
Showing 40 changed files with 938 additions and 512 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ public JHipsterModule buildGradleModule(JHipsterModuleProperties properties) {
.context()
.put("dasherizedBaseName", properties.projectBaseName().kebabCase())
.and()
.gitIgnore()
.comment("Gradle")
.pattern("/build/")
.and()
.files()
.batch(SOURCE, to("."))
.addTemplate("build.gradle.kts")
Expand Down Expand Up @@ -85,6 +89,10 @@ public JHipsterModule buildGradleWrapperModule(JHipsterModuleProperties properti

//@formatter:off
return moduleBuilder(properties)
.gitIgnore()
.comment("Gradle Wrapper")
.pattern("!gradle/wrapper/gradle-wrapper.jar")
.and()
.files()
.batch(SOURCE.append("gradle/wrapper"), to("gradle/wrapper"))
.addFile("gradle-wrapper.properties")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ public JHipsterModule buildMavenModule(JHipsterModuleProperties properties) {
.put("dasherizedBaseName", properties.projectBaseName().kebabCase())
.and()
.prerequisites(JAVA_PREREQUISITES)
.gitIgnore()
.comment("Maven")
.pattern("/target/")
.and()
.files()
.add(SOURCE.template("pom.xml"), to("pom.xml"))
.and()
Expand Down Expand Up @@ -97,6 +101,10 @@ public JHipsterModule buildMavenWrapperModule(JHipsterModuleProperties propertie

//@formatter:off
return moduleBuilder(properties)
.gitIgnore()
.comment("Maven Wrapper")
.pattern("!.mvn/wrapper/maven-wrapper.jar")
.and()
.startupCommands()
.maven("")
.and()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ public class AngularModuleFactory {
public JHipsterModule buildModule(JHipsterModuleProperties properties) {
//@formatter:off
return ClientsModulesFactory.clientModuleBuilder(properties)
.gitIgnore()
.comment("Angular")
.pattern(".angular/")
.pattern(".nx/")
.and()
.packageJson()
.addDependency(packageName("@angular/animations"), ANGULAR, ANGULAR_CORE_PACKAGE)
.addDependency(packageName("@angular/cdk"), ANGULAR)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package tech.jhipster.lite.generator.client.svelte.core.domain;

import static tech.jhipster.lite.generator.client.common.domain.ClientsModulesFactory.clientModuleBuilder;
import static tech.jhipster.lite.generator.client.common.domain.ClientsModulesFactory.*;
import static tech.jhipster.lite.module.domain.JHipsterModule.*;
import static tech.jhipster.lite.module.domain.packagejson.VersionSource.SVELTE;
import static tech.jhipster.lite.module.domain.packagejson.VersionSource.*;

import tech.jhipster.lite.module.domain.Indentation;
import tech.jhipster.lite.module.domain.JHipsterModule;
Expand All @@ -29,6 +29,10 @@ public JHipsterModule buildSvelteModule(JHipsterModuleProperties properties) {

//@formatter:off
return clientModuleBuilder(properties)
.gitIgnore()
.comment("Svelte")
.pattern(".svelte-kit/")
.and()
.packageJson()
.addDependency(packageName("svelte-navigator"), SVELTE)
.addDevDependency(packageName("@babel/preset-env"), SVELTE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ public JHipsterModule build(JHipsterModuleProperties properties) {

//@formatter:off
return moduleBuilder(properties)
.gitIgnore()
.comment("JQwik")
.pattern(".jqwik-database")
.and()
.documentation(documentationTitle("Property Based Testing"), from("server/javatool/pbt/property-based-testing.md"))
.javaDependencies()
.addTestDependency(groupId("net.jqwik"), artifactId("jqwik"), versionSlug("jqwik"))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
package tech.jhipster.lite.generator.server.springboot.mvc.security.oauth2.auth0.domain;

import static tech.jhipster.lite.module.domain.JHipsterModule.documentationTitle;
import static tech.jhipster.lite.module.domain.JHipsterModule.from;
import static tech.jhipster.lite.module.domain.JHipsterModule.moduleBuilder;
import static tech.jhipster.lite.module.domain.JHipsterModule.propertyKey;
import static tech.jhipster.lite.module.domain.JHipsterModule.propertyValue;
import static tech.jhipster.lite.module.domain.JHipsterModule.to;
import static tech.jhipster.lite.module.domain.JHipsterModule.*;

import tech.jhipster.lite.module.domain.JHipsterModule;
import tech.jhipster.lite.module.domain.file.JHipsterSource;
Expand All @@ -22,15 +17,20 @@ public class OAuth2Auth0ModuleFactory {

private static final String CLIENT_ID_PROPERTY = "auth0ClientId";
private static final String AUTH0_DOMAIN_PROPERTY = "auth0Domain";
private static final String AUTH0_SHELL_SCRIPT = "auth0.sh";

public JHipsterModule buildModule(JHipsterModuleProperties properties) {
Assert.notNull("properties", properties);

//@formatter:off
return moduleBuilder(properties)
.documentation(documentationTitle("Auth0"), SOURCE.template("documentation/auth0.md.mustache"))
.gitIgnore()
.comment("OAuth 2.0")
.pattern(AUTH0_SHELL_SCRIPT)
.and()
.files()
.add(SOURCE.file("auth0.sh"), to("auth0.sh"))
.add(SOURCE.file(AUTH0_SHELL_SCRIPT), to(AUTH0_SHELL_SCRIPT))
.and()
.springMainProperties(AUTH0_SPRING_PROFILE)
.set(propertyKey("application.security.oauth2.audience"), audience(properties))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
package tech.jhipster.lite.generator.server.springboot.mvc.security.oauth2.okta.domain;

import static tech.jhipster.lite.module.domain.JHipsterModule.documentationTitle;
import static tech.jhipster.lite.module.domain.JHipsterModule.from;
import static tech.jhipster.lite.module.domain.JHipsterModule.moduleBuilder;
import static tech.jhipster.lite.module.domain.JHipsterModule.propertyKey;
import static tech.jhipster.lite.module.domain.JHipsterModule.propertyValue;
import static tech.jhipster.lite.module.domain.JHipsterModule.to;
import static tech.jhipster.lite.module.domain.JHipsterModule.*;

import tech.jhipster.lite.module.domain.JHipsterModule;
import tech.jhipster.lite.module.domain.file.JHipsterSource;
Expand All @@ -22,15 +17,20 @@ public class OAuth2OktaModuleFactory {

private static final String OKTA_CLIENT_ID_PROPERTY = "oktaClientId";
private static final String OKTA_DOMAIN_PROPERTY = "oktaDomain";
private static final String OKTA_SHELL_SCRIPT = "okta.sh";

public JHipsterModule buildModule(JHipsterModuleProperties properties) {
Assert.notNull("properties", properties);

//@formatter:off
return moduleBuilder(properties)
.documentation(documentationTitle("Okta"), SOURCE.template("documentation/okta.md"))
.gitIgnore()
.comment("OAuth 2.0")
.pattern(OKTA_SHELL_SCRIPT)
.and()
.files()
.add(SOURCE.file("okta.sh"), to("okta.sh"))
.add(SOURCE.file(OKTA_SHELL_SCRIPT), to(OKTA_SHELL_SCRIPT))
.add(SOURCE.file("documentation/images/security-add-claim.png"), to("documentation/images/security-add-claim.png"))
.and()
.springMainProperties(OKTA_SPRING_PROFILE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@
public class InfinitestModuleFactory {

public JHipsterModule build(JHipsterModuleProperties properties) {
return moduleBuilder(properties).files().add(from("infinitest/template-infinitest.filters"), to("infinitest.filters")).and().build();
//@formatter:off
return moduleBuilder(properties)
.gitIgnore()
.pattern("infinitest.filters")
.and()
.files()
.add(from("infinitest/template-infinitest.filters"), to("infinitest.filters"))
.and()
.build();
//@formatter:on
}
}
55 changes: 51 additions & 4 deletions src/main/java/tech/jhipster/lite/module/domain/JHipsterModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,15 @@
import tech.jhipster.lite.module.domain.JHipsterModulePreActions.JHipsterModulePreActionsBuilder;
import tech.jhipster.lite.module.domain.buildproperties.JHipsterModuleBuildProperties;
import tech.jhipster.lite.module.domain.buildproperties.JHipsterModuleBuildProperties.JHipsterModuleBuildPropertiesBuilder;
import tech.jhipster.lite.module.domain.file.*;
import tech.jhipster.lite.module.domain.file.JHipsterDestination;
import tech.jhipster.lite.module.domain.file.JHipsterFilesToDelete;
import tech.jhipster.lite.module.domain.file.JHipsterFilesToMove;
import tech.jhipster.lite.module.domain.file.JHipsterModuleFile;
import tech.jhipster.lite.module.domain.file.JHipsterModuleFiles;
import tech.jhipster.lite.module.domain.file.JHipsterModuleFiles.JHipsterModuleFilesBuilder;
import tech.jhipster.lite.module.domain.file.JHipsterSource;
import tech.jhipster.lite.module.domain.gitignore.JHipsterModuleGitIgnore;
import tech.jhipster.lite.module.domain.gitignore.JHipsterModuleGitIgnore.JHipsterModuleGitIgnoreBuilder;
import tech.jhipster.lite.module.domain.gradleconfiguration.JHipsterModuleGradleConfigurations;
import tech.jhipster.lite.module.domain.gradleconfiguration.JHipsterModuleGradleConfigurations.JHipsterModuleGradleConfigurationBuilder;
import tech.jhipster.lite.module.domain.gradleplugin.GradleCommunityPlugin;
Expand All @@ -28,9 +35,13 @@
import tech.jhipster.lite.module.domain.gradleplugin.GradleCorePlugin.GradleCorePluginIdBuilder;
import tech.jhipster.lite.module.domain.gradleplugin.JHipsterModuleGradlePlugins;
import tech.jhipster.lite.module.domain.gradleplugin.JHipsterModuleGradlePlugins.JHipsterModuleGradlePluginBuilder;
import tech.jhipster.lite.module.domain.javabuild.*;
import tech.jhipster.lite.module.domain.javabuild.ArtifactId;
import tech.jhipster.lite.module.domain.javabuild.GroupId;
import tech.jhipster.lite.module.domain.javabuild.JHipsterModuleMavenBuildExtensions;
import tech.jhipster.lite.module.domain.javabuild.JHipsterModuleMavenBuildExtensions.JHipsterModuleMavenBuildExtensionsBuilder;
import tech.jhipster.lite.module.domain.javabuild.MavenBuildExtension;
import tech.jhipster.lite.module.domain.javabuild.MavenBuildExtension.MavenBuildExtensionGroupIdBuilder;
import tech.jhipster.lite.module.domain.javabuild.VersionSlug;
import tech.jhipster.lite.module.domain.javabuildprofile.BuildProfileActivation;
import tech.jhipster.lite.module.domain.javabuildprofile.BuildProfileActivation.BuildProfileActivationBuilder;
import tech.jhipster.lite.module.domain.javabuildprofile.BuildProfileId;
Expand All @@ -41,9 +52,22 @@
import tech.jhipster.lite.module.domain.javadependency.JHipsterModuleJavaDependencies.JHipsterModuleJavaDependenciesBuilder;
import tech.jhipster.lite.module.domain.javadependency.JavaDependency;
import tech.jhipster.lite.module.domain.javadependency.JavaDependency.JavaDependencyGroupIdBuilder;
import tech.jhipster.lite.module.domain.javaproperties.*;
import tech.jhipster.lite.module.domain.javaproperties.Comment;
import tech.jhipster.lite.module.domain.javaproperties.JHipsterModuleSpringFactories;
import tech.jhipster.lite.module.domain.javaproperties.JHipsterModuleSpringFactories.JHipsterModuleSpringFactoriesBuilder;
import tech.jhipster.lite.module.domain.javaproperties.JHipsterModuleSpringProperties;
import tech.jhipster.lite.module.domain.javaproperties.JHipsterModuleSpringProperties.JHipsterModuleSpringPropertiesBuilder;
import tech.jhipster.lite.module.domain.javaproperties.PropertyKey;
import tech.jhipster.lite.module.domain.javaproperties.PropertyValue;
import tech.jhipster.lite.module.domain.javaproperties.SpringComment;
import tech.jhipster.lite.module.domain.javaproperties.SpringComments;
import tech.jhipster.lite.module.domain.javaproperties.SpringFactories;
import tech.jhipster.lite.module.domain.javaproperties.SpringFactory;
import tech.jhipster.lite.module.domain.javaproperties.SpringFactoryType;
import tech.jhipster.lite.module.domain.javaproperties.SpringProfile;
import tech.jhipster.lite.module.domain.javaproperties.SpringProperties;
import tech.jhipster.lite.module.domain.javaproperties.SpringProperty;
import tech.jhipster.lite.module.domain.javaproperties.SpringPropertyType;
import tech.jhipster.lite.module.domain.mavenplugin.JHipsterModuleMavenPlugins;
import tech.jhipster.lite.module.domain.mavenplugin.JHipsterModuleMavenPlugins.JHipsterModuleMavenPluginsBuilder;
import tech.jhipster.lite.module.domain.mavenplugin.MavenPlugin;
Expand All @@ -59,9 +83,17 @@
import tech.jhipster.lite.module.domain.postaction.JHipsterModulePostActions.JHipsterModulePostActionsBuilder;
import tech.jhipster.lite.module.domain.properties.JHipsterModuleProperties;
import tech.jhipster.lite.module.domain.properties.JHipsterProjectFolder;
import tech.jhipster.lite.module.domain.replacement.*;
import tech.jhipster.lite.module.domain.replacement.FileStartReplacer;
import tech.jhipster.lite.module.domain.replacement.JHipsterModuleMandatoryReplacementsFactory;
import tech.jhipster.lite.module.domain.replacement.JHipsterModuleMandatoryReplacementsFactory.JHipsterModuleMandatoryReplacementsFactoryBuilder;
import tech.jhipster.lite.module.domain.replacement.JHipsterModuleOptionalReplacementsFactory;
import tech.jhipster.lite.module.domain.replacement.JHipsterModuleOptionalReplacementsFactory.JHipsterModuleOptionalReplacementsFactoryBuilder;
import tech.jhipster.lite.module.domain.replacement.RegexNeedleAfterReplacer;
import tech.jhipster.lite.module.domain.replacement.RegexNeedleBeforeReplacer;
import tech.jhipster.lite.module.domain.replacement.RegexReplacer;
import tech.jhipster.lite.module.domain.replacement.TextNeedleAfterReplacer;
import tech.jhipster.lite.module.domain.replacement.TextNeedleBeforeReplacer;
import tech.jhipster.lite.module.domain.replacement.TextReplacer;
import tech.jhipster.lite.module.domain.startupcommand.JHipsterModuleStartupCommands;
import tech.jhipster.lite.module.domain.startupcommand.JHipsterModuleStartupCommands.JHipsterModuleStartupCommandsBuilder;
import tech.jhipster.lite.module.domain.startupcommand.JHipsterStartupCommands;
Expand Down Expand Up @@ -91,6 +123,7 @@ public final class JHipsterModule {
private final SpringProperties springProperties;
private final SpringComments springComments;
private final SpringFactories springFactories;
private final JHipsterModuleGitIgnore gitIgnore;

private JHipsterModule(JHipsterModuleBuilder builder) {
properties = builder.properties;
Expand All @@ -113,6 +146,7 @@ private JHipsterModule(JHipsterModuleBuilder builder) {
springProperties = buildSpringProperties(builder);
springComments = buildSpringComments(builder);
springFactories = buildSpringFactories(builder);
gitIgnore = builder.gitIgnore.build();
}

private JHipsterModule(JHipsterModule source, JHipsterModuleUpgrade upgrade) {
Expand All @@ -137,6 +171,7 @@ private JHipsterModule(JHipsterModule source, JHipsterModuleUpgrade upgrade) {
springProperties = source.springProperties;
springComments = source.springComments;
springFactories = source.springFactories;
gitIgnore = source.gitIgnore;
}

private SpringProperties buildSpringProperties(JHipsterModuleBuilder builder) {
Expand Down Expand Up @@ -461,6 +496,10 @@ public SpringFactories springFactories() {
return springFactories;
}

public JHipsterModuleGitIgnore gitIgnore() {
return gitIgnore;
}

public static final class JHipsterModuleBuilder {

private static final String PROFILE = "profile";
Expand Down Expand Up @@ -491,6 +530,7 @@ public static final class JHipsterModuleBuilder {
private final JHipsterModulePostActionsBuilder postActions = JHipsterModulePostActions.builder(this);
private final Map<PropertiesKey, JHipsterModuleSpringPropertiesBuilder> springProperties = new HashMap<>();
private final Map<SpringFactoryType, JHipsterModuleSpringFactoriesBuilder> springFactories = new EnumMap<>(SpringFactoryType.class);
private final JHipsterModuleGitIgnoreBuilder gitIgnore = JHipsterModuleGitIgnore.builder(this);

private JHipsterModuleBuilder(JHipsterModuleProperties properties) {
Assert.notNull("properties", properties);
Expand Down Expand Up @@ -654,6 +694,13 @@ public JHipsterModuleSpringFactoriesBuilder springTestFactories() {
return springFactories.computeIfAbsent(SpringFactoryType.TEST_FACTORIES, key -> JHipsterModuleSpringFactories.builder(this));
}

/**
* Add new entries to the {@code .gitignore} file.
*/
public JHipsterModuleGitIgnoreBuilder gitIgnore() {
return gitIgnore;
}

String packagePath() {
return properties.basePackage().path();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import tech.jhipster.lite.module.domain.file.JHipsterFilesToDelete;
import tech.jhipster.lite.module.domain.file.JHipsterFilesToMove;
import tech.jhipster.lite.module.domain.file.JHipsterTemplatedFiles;
import tech.jhipster.lite.module.domain.gitignore.JHipsterModuleGitIgnore;
import tech.jhipster.lite.module.domain.javabuild.command.JavaBuildCommands;
import tech.jhipster.lite.module.domain.javaproperties.SpringComments;
import tech.jhipster.lite.module.domain.javaproperties.SpringFactories;
Expand Down Expand Up @@ -35,6 +36,7 @@ public final class JHipsterModuleChanges {
private final SpringProperties springYamlProperties;
private final SpringComments springYamlComments;
private final SpringFactories springFactories;
private final JHipsterModuleGitIgnore gitIgnore;

private JHipsterModuleChanges(JHipsterModuleChangesBuilder builder) {
assertMandatoryFields(builder);
Expand All @@ -56,6 +58,7 @@ private JHipsterModuleChanges(JHipsterModuleChangesBuilder builder) {
springYamlProperties = builder.springYamlProperties;
springYamlComments = builder.springYamlComments;
springFactories = builder.springFactories;
gitIgnore = builder.gitIgnore;
}

private void assertMandatoryFields(JHipsterModuleChangesBuilder builder) {
Expand Down Expand Up @@ -116,6 +119,10 @@ public JHipsterModulePackageJson packageJson() {
return packageJson;
}

public JHipsterModuleGitIgnore gitIgnore() {
return gitIgnore;
}

public JHipsterModulePreActions preActions() {
return preActions;
}
Expand Down Expand Up @@ -162,7 +169,8 @@ private static final class JHipsterModuleChangesBuilder
JHipsterModuleChangesSpringPropertiesBuilder,
JHipsterModuleChangesSpringCommentsBuilder,
JHipsterModuleChangesSpringFactoriesBuilder,
JHipsterModuleChangesSpringYamlCommentsBuilder {
JHipsterModuleChangesSpringYamlCommentsBuilder,
JHipsterModuleChangesGitIgnorePatternsBuilder {

private JHipsterModuleContext context;
private JHipsterProjectFolder projectFolder;
Expand All @@ -181,6 +189,7 @@ private static final class JHipsterModuleChangesBuilder
private SpringProperties springYamlProperties = SpringProperties.EMPTY;
private SpringComments springYamlComments = SpringComments.EMPTY;
private SpringFactories springFactories;
private JHipsterModuleGitIgnore gitIgnore;

@Override
public JHipsterModuleChangesProjectFolderBuilder context(JHipsterModuleContext context) {
Expand Down Expand Up @@ -246,12 +255,19 @@ public JHipsterModuleChangesPackageJsonBuilder javaBuildCommands(JavaBuildComman
}

@Override
public JHipsterModuleChangesPreActionsBuilder packageJson(JHipsterModulePackageJson packageJson) {
public JHipsterModuleChangesGitIgnorePatternsBuilder packageJson(JHipsterModulePackageJson packageJson) {
this.packageJson = packageJson;

return this;
}

@Override
public JHipsterModuleChangesPreActionsBuilder gitIgnore(JHipsterModuleGitIgnore gitIgnore) {
this.gitIgnore = gitIgnore;

return this;
}

@Override
public JHipsterModuleChangesPostActionsBuilder preActions(JHipsterModulePreActions preActions) {
this.preActions = preActions;
Expand Down Expand Up @@ -339,7 +355,11 @@ public interface JHipsterModuleChangesJavaBuildCommandsBuilder {
}

public interface JHipsterModuleChangesPackageJsonBuilder {
JHipsterModuleChangesPreActionsBuilder packageJson(JHipsterModulePackageJson packageJson);
JHipsterModuleChangesGitIgnorePatternsBuilder packageJson(JHipsterModulePackageJson packageJson);
}

public interface JHipsterModuleChangesGitIgnorePatternsBuilder {
JHipsterModuleChangesPreActionsBuilder gitIgnore(JHipsterModuleGitIgnore gitIgnore);
}

public interface JHipsterModuleChangesPreActionsBuilder {
Expand Down
Loading

0 comments on commit 134caf2

Please sign in to comment.