Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gradle migration #2528

Merged
merged 1 commit into from
Jul 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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