Skip to content

Commit

Permalink
Merge branch 'main' into remove-unused-imports-ambiguous
Browse files Browse the repository at this point in the history
  • Loading branch information
Laurens-W authored Sep 3, 2024
2 parents ac3484e + 1f4564c commit 27fd9a1
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 22 deletions.
13 changes: 4 additions & 9 deletions rewrite-core/src/main/java/org/openrewrite/GitRemote.java
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,7 @@ private String repositoryPath(RemoteServerMatch match, URI normalizedUri) {

private static final Pattern PORT_PATTERN = Pattern.compile(":\\d+");

static URI normalize(String original) {
String url = original.toLowerCase(Locale.ENGLISH);
static URI normalize(String url) {
try {
URIish uri = new URIish(url);
String scheme = uri.getScheme();
Expand Down Expand Up @@ -267,7 +266,7 @@ static URI normalize(String original) {
String path = uri.getPath().replaceFirst("/$", "")
.replaceFirst("\\.git$", "")
.replaceFirst("^/", "");
return URI.create((scheme + "://" + host + maybePort + "/" + path).replaceFirst("/$", "").toLowerCase(Locale.ENGLISH));
return URI.create((scheme + "://" + host + maybePort + "/" + path).replaceFirst("/$", ""));
} catch (URISyntaxException e) {
throw new IllegalStateException("Unable to parse origin from: " + url, e);
}
Expand Down Expand Up @@ -306,12 +305,8 @@ public RemoteServer(Service service, String origin, URI... uris) {

public RemoteServer(Service service, String origin, Collection<URI> uris) {
this.service = service;
this.origin = origin.toLowerCase(Locale.ENGLISH);
this.uris.addAll(uris.stream()
.map(URI::toString)
.map(urlString -> urlString.toLowerCase(Locale.ENGLISH))
.map(URI::create)
.collect(Collectors.toList()));
this.origin = origin;
this.uris.addAll(uris);
}

private GitRemote.Parser.@Nullable RemoteServerMatch match(URI normalizedUri) {
Expand Down
15 changes: 6 additions & 9 deletions rewrite-core/src/test/java/org/openrewrite/GitRemoteTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,13 @@ public class GitRemoteTest {
git@gitlab.com:group/subgroup/subergroup/subestgroup/repo.git, gitlab.com, group/subgroup/subergroup/subestgroup/repo, group/subgroup/subergroup/subestgroup, repo
ssh://git@gitlab.com:22/group/subgroup/subergroup/subestgroup/repo.git, gitlab.com, group/subgroup/subergroup/subestgroup/repo, group/subgroup/subergroup/subestgroup, repo
https://bitbucket.org/PRJ/repo, bitbucket.org, prj/repo, prj, repo
git@bitbucket.org:PRJ/repo.git, bitbucket.org, prj/repo, prj, repo
ssh://bitbucket.org/PRJ/repo.git, bitbucket.org, prj/repo, prj, repo
https://bitbucket.org/PRJ/repo, bitbucket.org, PRJ/repo, PRJ, repo
git@bitbucket.org:PRJ/repo.git, bitbucket.org, PRJ/repo, PRJ, repo
ssh://bitbucket.org/PRJ/repo.git, bitbucket.org, PRJ/repo, PRJ, repo
https://org@dev.azure.com/org/project/_git/repo, dev.azure.com, org/project/repo, org/project, repo
https://dev.azure.com/org/project/_git/repo, dev.azure.com, org/project/repo, org/project, repo
git@ssh.dev.azure.com:v3/org/project/repo, dev.azure.com, org/project/repo, org/project, repo
HTTPS://GITHUB.COM/ORG/REPO.GIT, github.com, org/repo, org, repo
HtTpS://GitHub.CoM/OrG/R3P0.GIT, github.com, org/r3p0, org, r3p0
""")
void parseKnownRemotes(String cloneUrl, String expectedOrigin, String expectedPath, String expectedOrganization, String expectedRepositoryName) {
GitRemote.Parser parser = new GitRemote.Parser();
Expand Down Expand Up @@ -86,9 +83,9 @@ void parseUnknownRemote(String cloneUrl, String expectedOrigin, String expectedP
https://scm.company.com:443/stash/scm/org/repo.git, scm.company.com/stash, Bitbucket, scm.company.com/stash, org/repo, org, repo
https://scm.company.com:1234/stash/scm/org/repo.git, https://scm.company.com:1234/stash, Bitbucket, scm.company.com:1234/stash, org/repo, org, repo
git@scm.company.com:stash/org/repo.git, scm.company.com/stash, Bitbucket, scm.company.com/stash, org/repo, org, repo
ssh://scm.CompanY.com/stash/org/repo, scm.cOMpAnY.com/stash, Bitbucket, scm.company.com/stash, org/repo, org, repo
ssh://scm.company.com/stash/org/repo, scm.company.com/stash, Bitbucket, scm.company.com/stash, org/repo, org, repo
ssh://scm.company.com:22/stash/org/repo, scm.company.com/stash, Bitbucket, scm.company.com/stash, org/repo, org, repo
ssh://scm.company.com:7999/stash/org/repo, ssh://sCm.company.com:7999/stash, Bitbucket, scm.company.com:7999/stash, org/repo, org, repo
ssh://scm.company.com:7999/stash/org/repo, ssh://scm.company.com:7999/stash, Bitbucket, scm.company.com:7999/stash, org/repo, org, repo
https://scm.company.com/very/long/context/path/org/repo.git, scm.company.com/very/long/context/path, Bitbucket, scm.company.com/very/long/context/path, org/repo, org, repo
https://scm.company.com:1234/very/long/context/path/org/repo.git, https://scm.company.com:1234/very/long/context/path, Bitbucket, scm.company.com:1234/very/long/context/path, org/repo, org, repo
Expand All @@ -100,7 +97,7 @@ void parseUnknownRemote(String cloneUrl, String expectedOrigin, String expectedP
git@scm.company.com:group/subgroup/subergroup/subestgroup/repo.git, ssh://scm.company.com, GitLab, scm.company.com, group/subgroup/subergroup/subestgroup/repo, group/subgroup/subergroup/subestgroup, repo
https://scm.company.com:443/group/subgroup/subergroup/subestgroup/repo.git, scm.company.com, GitLab, scm.company.com, group/subgroup/subergroup/subestgroup/repo, group/subgroup/subergroup/subestgroup, repo
ssh://scm.company.com:22/group/subgroup/subergroup/subestgroup/repo.git, ssh://scm.company.com, GitLab, scm.company.com, group/subgroup/subergroup/subestgroup/repo, group/subgroup/subergroup/subestgroup, repo
ssh://SCM.COMPANY.COM:222/group/subgroup/subergroup/subestgroup/repo.git, ssh://SCM.CoMpAnY.cOm:222, GitLab, scm.company.com:222, group/subgroup/subergroup/subestgroup/repo, group/subgroup/subergroup/subestgroup, repo
ssh://scm.company.com:222/group/subgroup/subergroup/subestgroup/repo.git, ssh://scm.company.com:222, GitLab, scm.company.com:222, group/subgroup/subergroup/subestgroup/repo, group/subgroup/subergroup/subestgroup, repo
https://scm.company.com/very/long/context/path/group/subgroup/subergroup/subestgroup/repo, scm.company.com/very/long/context/path, GitLab, scm.company.com/very/long/context/path, group/subgroup/subergroup/subestgroup/repo, group/subgroup/subergroup/subestgroup, repo
""")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ public J visitIdentifier(J.Identifier ident, ExecutionContext ctx) {
.withType(null)
.withPrefix(ident.getPrefix()));
} else {
if (sf != null && hasNoConflictingImport(sf)) {
if (hasNoConflictingImport(sf)) {
ident = ident.withSimpleName(((JavaType.FullyQualified) targetType).getClassName());
} else {
ident = ident.withSimpleName(((JavaType.FullyQualified) targetType).getFullyQualifiedName());
Expand Down Expand Up @@ -508,11 +508,11 @@ private boolean isTargetFullyQualifiedType(JavaType.@Nullable FullyQualified fq)
return fq != null && TypeUtils.isOfClassType(fq, originalType.getFullyQualifiedName()) && targetType instanceof JavaType.FullyQualified;
}

private boolean hasNoConflictingImport(JavaSourceFile sf) {
private boolean hasNoConflictingImport(@Nullable JavaSourceFile sf) {
JavaType.FullyQualified oldType = TypeUtils.asFullyQualified(originalType);
JavaType.FullyQualified newType = TypeUtils.asFullyQualified(targetType);
if (oldType == null || newType == null) {
return false; // No way to be sure
if (sf == null || oldType == null || newType == null) {
return true; // No way to be sure so we retain previous behaviour
}
for (J.Import anImport : sf.getImports()) {
JavaType.FullyQualified currType = TypeUtils.asFullyQualified(anImport.getQualid().getType());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@
package org.openrewrite.java;

import org.junit.jupiter.api.Test;
import org.openrewrite.DocumentExample;
import org.openrewrite.test.RewriteTest;

import static org.openrewrite.java.Assertions.java;

class AddMethodParameterTest implements RewriteTest {

@DocumentExample
@Test
void primitive() {
rewriteRun(
Expand Down

0 comments on commit 27fd9a1

Please sign in to comment.