Skip to content

Commit

Permalink
Merge pull request #1758 from lucasmippon/gradle-utils-methods-reposi…
Browse files Browse the repository at this point in the history
…tory

Add Gradle add repository util method
  • Loading branch information
pascalgrimaud authored May 18, 2022
2 parents fd096cb + 7d356a1 commit 1b9708c
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ public void addProperty(Project project, String key, String value) {
public void addRepository(Project project, Repository repository) {
if (project.isMavenProject()) {
mavenService.addRepository(project, repository);
} else if (project.isGradleProject()) {
gradleService.addRepository(project, repository);
} else {
throw new GeneratorException(EXCEPTION_NO_BUILD_TOOL);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

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

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 = ":";
Expand Down Expand Up @@ -39,4 +41,15 @@ public static String getDependency(Dependency dependency) {
public static String getDependencyWithNeedle(Dependency dependency) {
return getDependency(dependency) + GRADLE_NEEDLE_DEPENDENCY.indent(2);
}

public static String getRepositoryString(Repository repository) {
return """
maven {
url = uri("%s")
}
// jhipster-needle-gradle-repository
""".formatted(
repository.getUrl()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

import static tech.jhipster.lite.common.domain.FileUtils.REGEXP_SPACE_STAR;
import static tech.jhipster.lite.common.domain.FileUtils.getPath;
import static tech.jhipster.lite.generator.buildtool.gradle.domain.Gradle.END_IMPLEMENTATION;
import static tech.jhipster.lite.generator.buildtool.gradle.domain.Gradle.GRADLE_NEEDLE_DEPENDENCY;
import static tech.jhipster.lite.generator.buildtool.gradle.domain.Gradle.*;
import static tech.jhipster.lite.generator.project.domain.Constants.BUILD_GRADLE_KTS;
import static tech.jhipster.lite.generator.project.domain.Constants.SETTINGS_GRADLE_KTS;
import static tech.jhipster.lite.generator.project.domain.DefaultConfig.*;

import java.util.List;
import tech.jhipster.lite.common.domain.WordUtils;
import tech.jhipster.lite.generator.buildtool.generic.domain.Dependency;
import tech.jhipster.lite.generator.buildtool.generic.domain.Repository;
import tech.jhipster.lite.generator.project.domain.Project;
import tech.jhipster.lite.generator.project.domain.ProjectFile;
import tech.jhipster.lite.generator.project.domain.ProjectRepository;
Expand Down Expand Up @@ -78,4 +78,10 @@ public void deleteDependency(Project project, Dependency dependency) {

projectRepository.replaceRegexp(project, "", BUILD_GRADLE_KTS, dependencyNodeRegExp, "");
}

@Override
public void addRepository(Project project, Repository repository) {
String repositoryString = Gradle.getRepositoryString(repository);
projectRepository.replaceText(project, "", BUILD_GRADLE_KTS, REGEXP_SPACE_STAR + GRADLE_NEEDLE_REPOSITORY, repositoryString);
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package tech.jhipster.lite.generator.buildtool.gradle.domain;

import tech.jhipster.lite.generator.buildtool.generic.domain.Dependency;
import tech.jhipster.lite.generator.buildtool.generic.domain.Repository;
import tech.jhipster.lite.generator.project.domain.Project;

public interface GradleService {
void initJava(Project project);

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

void addDependency(Project project, Dependency dependency);

void deleteDependency(Project project, Dependency dependency);
void addRepository(Project project, Repository repository);

void addJavaBuildGradleKts(Project project);
void addGradleWrapper(Project project);
}
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,16 @@ void shouldDeleteDependency() {

verify(gradleService).deleteDependency(project, dependency);
}

@Test
void shouldAddRepository() {
Project project = tmpProjectWithBuildGradle();
Repository repository = getRepository();

buildToolDomainService.addRepository(project, repository);

verify(gradleService).addRepository(project, repository);
}
}

@Nested
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
package tech.jhipster.lite.generator.buildtool.gradle.domain.gradle;
package tech.jhipster.lite.generator.buildtool.gradle.domain;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static tech.jhipster.lite.TestUtils.tmpProject;
import static tech.jhipster.lite.TestUtils.tmpProjectWithBuildGradle;
import static tech.jhipster.lite.common.domain.FileUtils.REGEXP_SPACE_STAR;
import static tech.jhipster.lite.generator.buildtool.gradle.domain.Gradle.GRADLE_NEEDLE_DEPENDENCY;
import static tech.jhipster.lite.generator.buildtool.gradle.domain.Gradle.GRADLE_NEEDLE_REPOSITORY;
import static tech.jhipster.lite.generator.project.domain.ProjectFilesAsserter.filesCountArgument;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
Expand All @@ -7,20 +18,12 @@
import org.mockito.junit.jupiter.MockitoExtension;
import tech.jhipster.lite.UnitTest;
import tech.jhipster.lite.generator.buildtool.generic.domain.Dependency;
import tech.jhipster.lite.generator.buildtool.generic.domain.Repository;
import tech.jhipster.lite.generator.buildtool.gradle.domain.GradleDomainService;
import tech.jhipster.lite.generator.project.domain.Project;
import tech.jhipster.lite.generator.project.domain.ProjectFile;
import tech.jhipster.lite.generator.project.domain.ProjectRepository;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.*;
import static tech.jhipster.lite.TestUtils.tmpProject;
import static tech.jhipster.lite.TestUtils.tmpProjectWithBuildGradle;
import static tech.jhipster.lite.common.domain.FileUtils.REGEXP_SPACE_STAR;
import static tech.jhipster.lite.generator.buildtool.gradle.domain.Gradle.GRADLE_NEEDLE_DEPENDENCY;
import static tech.jhipster.lite.generator.project.domain.ProjectFilesAsserter.filesCountArgument;

@UnitTest
@ExtendWith(MockitoExtension.class)
class GradleDomainServiceTest {
Expand Down Expand Up @@ -82,4 +85,21 @@ void shouldDeleteDependency() {
String regexToReplace = "(?s)" + "implementation(\"org.springframework.boot:spring-boot-starter.*\")\n".indent(2);
verify(projectRepository).replaceRegexp(project, "", "build.gradle.kts", regexToReplace, "");
}

@Test
void shouldAddRepository() {
Project project = tmpProjectWithBuildGradle();
Repository repository = Repository.builder().id("spring-milestone").url("https://repo.spring.io/milestone").build();

gradleDomainService.addRepository(project, repository);

String repositoryString =
"""
maven {
url = uri("https://repo.spring.io/milestone")
}
// jhipster-needle-gradle-repository
""";
verify(projectRepository).replaceText(project, "", "build.gradle.kts", REGEXP_SPACE_STAR + GRADLE_NEEDLE_REPOSITORY, repositoryString);
}
}

0 comments on commit 1b9708c

Please sign in to comment.