Skip to content

Commit

Permalink
Gradle migration
Browse files Browse the repository at this point in the history
This is not really a migration since gradle support is currently not
working. We agreed to keep the templating and remove the endpoints.

I also deleted some unused methods in project repository in the process
  • Loading branch information
DamnClin committed Jul 12, 2022
1 parent d0808e9 commit 60b4d63
Show file tree
Hide file tree
Showing 18 changed files with 87 additions and 555 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,30 +1,18 @@
package tech.jhipster.lite.generator.buildtool.gradle.domain;

import java.util.Map;
import tech.jhipster.lite.generator.buildtool.generic.domain.Dependency;

public class Gradle {

public static final String GRADLE_NEEDLE_DEPENDENCY = "// jhipster-needle-gradle-add-dependency";
public static final String GRADLE_NEEDLE_REPOSITORY = "// jhipster-needle-gradle-repository";

public static final String IMPLEMENTATION = "implementation(\"";
public static final String SEPARATOR = ":";
public static final String END_IMPLEMENTATION = "\")";
public static final String LF = "\n";
private static final String IMPLEMENTATION = "implementation(\"";
private static final String SEPARATOR = ":";
private static final String END_IMPLEMENTATION = "\")";
private static final String LF = "\n";

private Gradle() {}

public static Map<String, String> gradleWrapper() {
// prettier-ignore
return Map.of(
"gradlew", ".",
"gradlew.bat", ".",
"gradle-wrapper.jar", "gradle/wrapper",
"gradle-wrapper.properties", "gradle/wrapper"
);
}

public static String getDependency(Dependency dependency) {
return new StringBuilder()
.append(IMPLEMENTATION)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,12 @@
import static tech.jhipster.lite.common.domain.WordUtils.*;
import static tech.jhipster.lite.generator.buildtool.gradle.domain.Gradle.*;
import static tech.jhipster.lite.generator.project.domain.Constants.*;
import static tech.jhipster.lite.generator.project.domain.DefaultConfig.*;

import java.util.List;
import java.util.Optional;
import tech.jhipster.lite.common.domain.FileUtils;
import tech.jhipster.lite.common.domain.WordUtils;
import tech.jhipster.lite.error.domain.Assert;
import tech.jhipster.lite.generator.buildtool.generic.domain.Dependency;
import tech.jhipster.lite.generator.project.domain.Project;
import tech.jhipster.lite.generator.project.domain.ProjectFile;
import tech.jhipster.lite.generator.project.domain.ProjectRepository;

public class GradleDomainService implements GradleService {
Expand All @@ -26,44 +22,6 @@ public GradleDomainService(ProjectRepository projectRepository) {
this.projectRepository = projectRepository;
}

@Override
public void initJava(Project project) {
addJavaBuildGradleKts(project);
addGradleWrapper(project);
}

@Override
public void addJavaBuildGradleKts(Project project) {
project.addDefaultConfig(PACKAGE_NAME);
project.addDefaultConfig(PROJECT_NAME);
project.addDefaultConfig(BASE_NAME);

String baseName = project.getBaseName().orElse("");
project.addConfig("dasherizedBaseName", WordUtils.kebabCase(baseName));

projectRepository.template(ProjectFile.forProject(project).withSource(SOURCE, BUILD_GRADLE_KTS).withSameDestination());
projectRepository.template(ProjectFile.forProject(project).withSource(SOURCE, SETTINGS_GRADLE_KTS).withSameDestination());
}

@Override
public void addGradleWrapper(Project project) {
List<ProjectFile> files = Gradle
.gradleWrapper()
.entrySet()
.stream()
.map(entry ->
ProjectFile
.forProject(project)
.withSource(getPath(SOURCE, entry.getValue()), entry.getKey())
.withDestinationFolder(entry.getValue())
)
.toList();

projectRepository.add(files);
projectRepository.setExecutable(project, "", "gradlew");
projectRepository.setExecutable(project, "", "gradlew.bat");
}

@Override
public void addDependency(Project project, Dependency dependency) {
String newDependency = Gradle.getDependencyWithNeedle(dependency);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package tech.jhipster.lite.generator.buildtool.gradle.domain;

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

import tech.jhipster.lite.error.domain.Assert;
import tech.jhipster.lite.module.domain.JHipsterModule;
import tech.jhipster.lite.module.domain.JHipsterSource;
import tech.jhipster.lite.module.domain.properties.JHipsterModuleProperties;

public class GradleModuleFactory {

private static final JHipsterSource SOURCE = from("buildtool/gradle");

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

//@formatter:off
return moduleBuilder(properties)
.context()
.put("dasherizedBaseName", properties.projectBaseName().kebabCase())
.and()
.files()
.batch(SOURCE, to("."))
.template("build.gradle.kts")
.template("settings.gradle.kts")
.and()
.batch(SOURCE.append("gradle/wrapper"), to("gradle/wrapper"))
.file("gradle-wrapper.properties")
.file("gradle-wrapper.jar")
.and()
.addExecutable(SOURCE.file("gradlew"), to("gradlew"))
.addExecutable(SOURCE.file("gradlew.bat"), to("gradlew.bat"))
.and()
.build();
//@formatter:on
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,7 @@
import tech.jhipster.lite.generator.project.domain.Project;

public interface GradleService {
void initJava(Project project);

void addDependency(Project project, Dependency dependency);

void addJavaBuildGradleKts(Project project);
void addGradleWrapper(Project project);

Optional<String> getGroup(String folder);
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,25 @@
import tech.jhipster.lite.error.domain.Assert;

public interface ProjectRepository {
void create(Project project);

void add(Collection<ProjectFile> files);

void template(Collection<ProjectFile> files);

void rename(Project project, String source, String sourceFilename, String destinationFilename);

String getComputedTemplate(Project project, String source, String sourceFilename);

boolean containsRegexp(Project project, String source, String sourceFilename, String regexp);

void replaceText(Project project, String source, String sourceFilename, String oldText, String newText);

void write(Project project, String text, String destination, String destinationFilename);

void setExecutable(Project project, String source, String sourceFilename);

void gitInit(Project project);
void gitAddAndCommit(Project project, String message);
void gitApplyPatch(Project project, String patchFilename);

String zip(Project project);

byte[] download(Project project);

boolean isJHipsterLiteProject(String path);

default void add(ProjectFile file) {
Assert.notNull("file", file);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.nio.file.attribute.PosixFilePermission;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Consumer;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.springframework.stereotype.Repository;
Expand All @@ -32,15 +29,6 @@ public class ProjectLocalRepository implements ProjectRepository {

private static final String FILE_SEPARATOR = "/";

@Override
public void create(Project project) {
try {
FileUtils.createFolder(project.getFolder());
} catch (IOException ex) {
throw new GeneratorException("The folder can't be created");
}
}

@Override
public void add(Collection<ProjectFile> files) {
Assert.field("files", files).notEmpty().noNullElement();
Expand Down Expand Up @@ -108,17 +96,6 @@ public void rename(Project project, String source, String sourceFilename, String
}
}

@Override
public String getComputedTemplate(Project project, String source, String sourceFilename) {
String filename = MustacheUtils.withExt(sourceFilename);
String filePath = getPath(TEMPLATE_FOLDER, source, filename);
try {
return MustacheUtils.template(filePath, project.getConfig());
} catch (IOException e) {
throw new GeneratorException("The file " + filePath + " can't be read");
}
}

@Override
public boolean containsRegexp(Project project, String source, String sourceFilename, String regexp) {
try {
Expand Down Expand Up @@ -155,27 +132,6 @@ public void write(Project project, String text, String destination, String desti
}
}

@Override
public void setExecutable(Project project, String source, String sourceFilename) {
if (!FileUtils.isPosix()) {
return;
}
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_EXECUTE);

perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_EXECUTE);
File file = new File(getPath(project.getFolder(), source, sourceFilename));
try {
Files.setPosixFilePermissions(file.toPath(), perms);
} catch (IOException e) {
throw new GeneratorException("Can't change file permission for " + sourceFilename, e);
}
}

@Override
public void gitInit(Project project) {
try {
Expand All @@ -185,15 +141,6 @@ public void gitInit(Project project) {
}
}

@Override
public void gitAddAndCommit(Project project, String message) {
try {
GitUtils.addAndCommit(project.getFolder(), message);
} catch (GitAPIException | IOException e) {
throw new GeneratorException("Error when git add and commit", e);
}
}

@Override
public void gitApplyPatch(Project project, String patchFilename) {
try {
Expand Down Expand Up @@ -225,11 +172,6 @@ public byte[] download(Project project) {
}
}

@Override
public boolean isJHipsterLiteProject(String path) {
return FileUtils.exists(getPath(path, JHIPSTER_FOLDER, HISTORY_JSON));
}

private String getErrorWritingMessage(String filename) {
return "Error when writing text to '" + filename + "'";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ repositories {
// jhipster-needle-gradle-repository
}

group = "{{packageName}}{{^packageName}}com.mycompany.myapp{{/packageName}}"
group = "{{packageName}}"
version = "0.0.1-SNAPSHOT"

ext {
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
rootProject.name = "{{dasherizedBaseName}}{{^dasherizedBaseName}}jhipster{{/dasherizedBaseName}}"
rootProject.name = "{{dasherizedBaseName}}"
Loading

0 comments on commit 60b4d63

Please sign in to comment.