Skip to content

Commit

Permalink
remove the need for PackageJsonChanges.java by using the context from…
Browse files Browse the repository at this point in the history
… JHipsterModuleChanges. This will also address the code duplication issue identified by Sonar as a secondary benefit
  • Loading branch information
renanfranca committed May 11, 2024
1 parent 8c86f56 commit 5bfbc94
Show file tree
Hide file tree
Showing 7 changed files with 74 additions and 122 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import tech.jhipster.lite.module.domain.javaproperties.SpringComments;
import tech.jhipster.lite.module.domain.javaproperties.SpringFactories;
import tech.jhipster.lite.module.domain.javaproperties.SpringProperties;
import tech.jhipster.lite.module.domain.packagejson.PackageJsonChanges;
import tech.jhipster.lite.module.domain.packagejson.JHipsterModulePackageJson;
import tech.jhipster.lite.module.domain.postaction.JHipsterModulePostActions;
import tech.jhipster.lite.module.domain.properties.JHipsterProjectFolder;
import tech.jhipster.lite.module.domain.replacement.ContentReplacers;
Expand All @@ -27,7 +27,7 @@ public final class JHipsterModuleChanges {
private final ContentReplacers replacers;
private final JHipsterStartupCommands startupCommands;
private final JavaBuildCommands javaBuildCommands;
private final PackageJsonChanges packageJson;
private final JHipsterModulePackageJson packageJson;
private final JHipsterModulePreActions preActions;
private final JHipsterModulePostActions postActions;
private final SpringProperties springProperties;
Expand Down Expand Up @@ -112,7 +112,7 @@ public JavaBuildCommands javaBuildCommands() {
return javaBuildCommands;
}

public PackageJsonChanges packageJson() {
public JHipsterModulePackageJson packageJson() {
return packageJson;
}

Expand Down Expand Up @@ -172,7 +172,7 @@ private static final class JHipsterModuleChangesBuilder
private ContentReplacers replacers;
private JHipsterStartupCommands startupCommands;
private JavaBuildCommands javaBuildCommands;
private PackageJsonChanges packageJson;
private JHipsterModulePackageJson packageJson;
private Indentation indentation;
private JHipsterModulePreActions preActions;
private JHipsterModulePostActions postActions;
Expand Down Expand Up @@ -246,7 +246,7 @@ public JHipsterModuleChangesPackageJsonBuilder javaBuildCommands(JavaBuildComman
}

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

return this;
Expand Down Expand Up @@ -339,7 +339,7 @@ public interface JHipsterModuleChangesJavaBuildCommandsBuilder {
}

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

public interface JHipsterModuleChangesPreActionsBuilder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import tech.jhipster.lite.module.domain.javabuild.command.JavaBuildCommands;
import tech.jhipster.lite.module.domain.javadependency.JavaDependenciesVersionsRepository;
import tech.jhipster.lite.module.domain.javadependency.ProjectJavaDependenciesRepository;
import tech.jhipster.lite.module.domain.packagejson.PackageJsonChanges;
import tech.jhipster.lite.module.domain.properties.JHipsterProjectFolder;
import tech.jhipster.lite.module.domain.replacement.ContentReplacer;
import tech.jhipster.lite.module.domain.replacement.ContentReplacers;
Expand Down Expand Up @@ -85,7 +84,7 @@ public JHipsterModuleApplied apply(JHipsterModuleToApply moduleToApply) {
.merge(buildGradlePluginsChanges(module))
.merge(buildGradleConfigurationsChanges(module))
)
.packageJson(buildPackageJsonChanges(module))
.packageJson(module.packageJson())
.preActions(module.preActions())
.postActions(module.postActions())
.springFactories(module.springFactories());
Expand Down Expand Up @@ -116,12 +115,6 @@ private Optional<JavaBuildTool> detectedJavaBuildTool(JHipsterModule module) {
return javaBuildTools.detect(module.projectFolder()).or(() -> javaBuildTools.detect(module.files()));
}

private PackageJsonChanges buildPackageJsonChanges(JHipsterModule module) {
JHipsterModuleContext context = contextWithJavaBuildTool(module);

return module.packageJson().buildChanges(context);
}

private JHipsterTemplatedFiles buildTemplatedFiles(JHipsterModule module) {
JHipsterModuleContext context = contextWithJavaBuildTool(module);
List<JHipsterTemplatedFile> templatedFiles = module
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package tech.jhipster.lite.module.domain.packagejson;

import static tech.jhipster.lite.module.domain.JHipsterModule.*;

import java.util.ArrayList;
import java.util.Collection;
import tech.jhipster.lite.module.domain.JHipsterModuleContext;
import tech.jhipster.lite.module.domain.JHipsterModule.JHipsterModuleBuilder;
import tech.jhipster.lite.shared.error.domain.Assert;

public final class JHipsterModulePackageJson {
Expand All @@ -29,8 +27,14 @@ public static JHipsterModulePackageJsonBuilder builder(JHipsterModuleBuilder mod
return new JHipsterModulePackageJsonBuilder(module);
}

public PackageJsonChanges buildChanges(JHipsterModuleContext context) {
return new PackageJsonChanges(this, context);
public boolean isEmpty() {
return (
scripts.isEmpty() &&
dependencies.isEmpty() &&
devDependencies.isEmpty() &&
dependenciesToRemove.isEmpty() &&
devDependenciesToRemove.isEmpty()
);
}

public Scripts scripts() {
Expand Down Expand Up @@ -59,18 +63,18 @@ public PackageJsonType type() {

public static final class JHipsterModulePackageJsonBuilder {

private final JHipsterModuleBuilder parentBuilder;
private final JHipsterModuleBuilder module;
private final Collection<Script> scripts = new ArrayList<>();
private final Collection<PackageJsonDependency> dependencies = new ArrayList<>();
private final Collection<PackageJsonDependency> devDependencies = new ArrayList<>();
private final Collection<PackageJsonDependency> dependenciesToRemove = new ArrayList<>();
private final Collection<PackageJsonDependency> devDependenciesToRemove = new ArrayList<>();
private String type;

private JHipsterModulePackageJsonBuilder(JHipsterModuleBuilder parentBuilder) {
Assert.notNull("module", parentBuilder);
private JHipsterModulePackageJsonBuilder(JHipsterModuleBuilder module) {
Assert.notNull("module", module);

this.parentBuilder = parentBuilder;
this.module = module;
}

public JHipsterModulePackageJsonBuilder addScript(ScriptKey key, ScriptCommand command) {
Expand Down Expand Up @@ -132,7 +136,7 @@ public JHipsterModulePackageJsonBuilder addType(String t) {
}

public JHipsterModuleBuilder and() {
return parentBuilder;
return module;
}

public JHipsterModulePackageJson build() {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public void apply(JHipsterModuleChanges changes) {
yamlSpringProperties.handle(changes.indentation(), changes.projectFolder(), changes.springYamlProperties());
yamlSpringComments.handle(changes.indentation(), changes.projectFolder(), changes.springYamlComments());
springFactories.handle(changes.projectFolder(), changes.springFactories());
packageJson.handle(changes.indentation(), changes.projectFolder(), changes.packageJson());
packageJson.handle(changes.indentation(), changes.projectFolder(), changes.packageJson(), changes.context());
replacer.handle(changes.projectFolder(), changes.replacers(), changes.context());
startupCommands.handle(changes.projectFolder(), changes.startupCommands(), changes.context());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,16 @@ public FileSystemPackageJsonHandler(NpmVersions npmVersions, TemplateRenderer te
this.templateRenderer = templateRenderer;
}

public void handle(Indentation indentation, JHipsterProjectFolder projectFolder, PackageJsonChanges packageJson) {
public void handle(
Indentation indentation,
JHipsterProjectFolder projectFolder,
JHipsterModulePackageJson packageJson,
JHipsterModuleContext context
) {
Assert.notNull("indentation", indentation);
Assert.notNull("projectFolder", projectFolder);
Assert.notNull("packageJson", packageJson);
Assert.notNull("context", context);

if (packageJson.isEmpty()) {
return;
Expand All @@ -60,7 +66,7 @@ public void handle(Indentation indentation, JHipsterProjectFolder projectFolder,
content = removeDependencies(indentation, packageJson.dependenciesToRemove(), content);
content = removeDevDependencies(indentation, packageJson.devDependenciesToRemove(), content);

content = replacePlaceholders(content, packageJson.context());
content = replacePlaceholders(content, context);
content = cleanupLineBreaks(indentation, content);

write(file, content);
Expand Down
Loading

0 comments on commit 5bfbc94

Please sign in to comment.