Skip to content

Commit

Permalink
Revert change to Xml Lists in maven model #585
Browse files Browse the repository at this point in the history
  • Loading branch information
tkvangorder committed Apr 26, 2022
1 parent 5f3ba7e commit 8c79639
Show file tree
Hide file tree
Showing 10 changed files with 263 additions and 138 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,13 @@ public void setMavenSettings(@Nullable MavenSettings settings, String... activeP
}

if (settings.getServers() != null) {
setCredentials(settings.getServers().stream()
setCredentials(settings.getServers().getServers().stream()
.map(server -> new MavenRepositoryCredentials(server.getId(), server.getUsername(), server.getPassword()))
.collect(Collectors.toList()));
}

if (settings.getMirrors() != null) {
setMirrors(settings.getMirrors().stream()
setMirrors(settings.getMirrors().getMirrors().stream()
.map(mirror -> new MavenRepositoryMirror(mirror.getId(), mirror.getUrl(), mirror.getMirrorOf(), mirror.getReleases(), mirror.getSnapshots()))
.collect(Collectors.toList()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,11 @@
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.*;
import lombok.experimental.FieldDefaults;
import lombok.experimental.NonFinal;
import org.openrewrite.ExecutionContext;
import org.openrewrite.Parser;
import org.openrewrite.internal.lang.Nullable;
import org.openrewrite.maven.internal.MavenXmlMapper;
import org.openrewrite.maven.internal.RawRepository;
import org.openrewrite.maven.internal.RawRepositories;
import org.openrewrite.maven.tree.ProfileActivation;

import java.io.IOException;
Expand All @@ -34,32 +33,25 @@

import static java.util.Collections.emptyList;

@FieldDefaults(level = AccessLevel.PRIVATE)
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
@ToString(onlyExplicitlyIncluded = true)
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Data
public class MavenSettings {
@Nullable
Profiles profiles;

@NonFinal
@JacksonXmlElementWrapper(localName = "profiles")
@JacksonXmlProperty(localName = "profile")
List<Profile> profiles = emptyList();

@NonFinal
@JacksonXmlElementWrapper(localName = "activeProfiles")
@JacksonXmlProperty(localName = "activeProfile")
List<String> activeProfiles = emptyList();
@Nullable
ActiveProfiles activeProfiles;

@NonFinal
@JacksonXmlElementWrapper(localName = "mirrors")
@JacksonXmlProperty(localName = "mirror")
List<Mirror> mirrors = emptyList();
@Nullable
@Getter
Mirrors mirrors;

@NonFinal
@Nullable
@JacksonXmlElementWrapper(localName = "servers")
@JacksonXmlProperty(localName = "server")
List<Server> servers = emptyList();
@Getter
@With
Servers servers;

@Nullable
public static MavenSettings parse(Parser.Input source, ExecutionContext ctx) {
Expand All @@ -71,20 +63,41 @@ public static MavenSettings parse(Parser.Input source, ExecutionContext ctx) {
}
}

public List<RawRepository> getActiveRepositories(Iterable<String> activeProfiles) {
List<RawRepository> activeRepositories = new ArrayList<>();
public List<RawRepositories.Repository> getActiveRepositories(Iterable<String> activeProfiles) {
List<RawRepositories.Repository> activeRepositories = new ArrayList<>();

for (Profile profile : profiles) {
if (profile.isActive(activeProfiles) || profile.isActive(this.activeProfiles)) {
if (profile.getRepositories() != null) {
activeRepositories.addAll(profile.getRepositories());
if (profiles != null) {
for (Profile profile : profiles.getProfiles()) {
if (profile.isActive(activeProfiles) || (this.activeProfiles != null &&
profile.isActive(this.activeProfiles.getActiveProfiles()))) {
if (profile.repositories != null) {
activeRepositories.addAll(profile.repositories.getRepositories());
}
}
}
}

return activeRepositories;
}

@FieldDefaults(level = AccessLevel.PRIVATE)
@Getter
@Setter
public static class Profiles {
@JacksonXmlProperty(localName = "profile")
@JacksonXmlElementWrapper(useWrapping = false)
List<Profile> profiles = emptyList();
}

@FieldDefaults(level = AccessLevel.PRIVATE)
@Getter
@Setter
public static class ActiveProfiles {
@JacksonXmlProperty(localName = "activeProfile")
@JacksonXmlElementWrapper(useWrapping = false)
List<String> activeProfiles = emptyList();
}

@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
@Data
public static class Profile {
Expand All @@ -94,11 +107,8 @@ public static class Profile {
@Nullable
ProfileActivation activation;

@NonFinal
@Nullable
@JacksonXmlElementWrapper(localName = "repositories")
@JacksonXmlProperty(localName = "repository")
List<RawRepository> repositories;
RawRepositories repositories;

public boolean isActive(Iterable<String> activeProfiles) {
return ProfileActivation.isActive(id, activeProfiles, activation);
Expand All @@ -109,6 +119,15 @@ public boolean isActive(String... activeProfiles) {
}
}

@FieldDefaults(level = AccessLevel.PRIVATE)
@Getter
@Setter
public static class Mirrors {
@JacksonXmlProperty(localName = "mirror")
@JacksonXmlElementWrapper(useWrapping = false)
List<Mirror> mirrors = emptyList();
}

@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
@Data
public static class Mirror {
Expand All @@ -128,6 +147,15 @@ public static class Mirror {
Boolean snapshots;
}

@FieldDefaults(level = AccessLevel.PRIVATE)
@Getter
@Setter
public static class Servers {
@JacksonXmlProperty(localName = "server")
@JacksonXmlElementWrapper(useWrapping = false)
List<Server> servers = emptyList();
}

@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
@Data
public static class Server {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser;
import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
import com.fasterxml.jackson.module.kotlin.KotlinModule;
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;

import javax.xml.stream.XMLInputFactory;
Expand Down Expand Up @@ -61,9 +60,7 @@ public class MavenXmlMapper {
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
.withCreatorVisibility(JsonAutoDetect.Visibility.PUBLIC_ONLY)).
registerModule(new KotlinModule.Builder().build()).
registerModule(new StringTrimModule())
;
registerModule(new StringTrimModule());
}
{
writeMapper = XmlMapper.builder(xmlFactory)
Expand Down
Loading

0 comments on commit 8c79639

Please sign in to comment.