Skip to content

Commit

Permalink
Merge pull request #2528 from DamnClin/migrate-gradle
Browse files Browse the repository at this point in the history
Gradle migration
  • Loading branch information
pascalgrimaud authored Jul 12, 2022
2 parents a8de7e9 + 4687e94 commit 631166b
Show file tree
Hide file tree
Showing 23 changed files with 104 additions and 552 deletions.
1 change: 0 additions & 1 deletion .github/workflows/github-actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ jobs:
- consulapp
- gatewayapp
- mongodbapp
- gradleapp
- angularapp
- reactapp
- vueapp
Expand Down

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,33 +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 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 Down Expand Up @@ -216,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 631166b

Please sign in to comment.