Skip to content

Commit 1963905

Browse files
committed
Print also aligned deps for shaded
Signed-off-by: Jakub Stejskal <xstejs24@gmail.com>
1 parent 9438d6f commit 1963905

File tree

1 file changed

+54
-23
lines changed

1 file changed

+54
-23
lines changed

src/main/java/com/github/streamshub/ShadeAwareAlignmentReporter.java

Lines changed: 54 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.io.IOException;
2323
import java.io.PrintWriter;
2424
import java.io.StringWriter;
25+
import java.util.Comparator;
2526
import java.util.List;
2627
import java.util.regex.Pattern;
2728

@@ -157,17 +158,33 @@ public String generateShadeReport(final ShadeAlignmentResult result, final Patte
157158
writer.println();
158159
}
159160

160-
// Only show unaligned shaded artifacts in the main report
161+
// Show both aligned and unaligned shaded artifacts, similar to regular dependency reports
162+
List<Artifact> alignedShadedArtifacts = result.getShadedArtifacts()
163+
.stream()
164+
.filter(artifact -> alignmentPattern.matcher(artifact.getVersion()).find())
165+
.collect(java.util.stream.Collectors.toList());
166+
161167
List<Artifact> unalignedShadedArtifacts = result.getShadedArtifacts()
162168
.stream()
163169
.filter(artifact -> !alignmentPattern.matcher(artifact.getVersion()).find())
164170
.collect(java.util.stream.Collectors.toList());
165171

172+
if (!alignedShadedArtifacts.isEmpty()) {
173+
String title = String.format("%d Aligned artifacts affected by shading", alignedShadedArtifacts.size());
174+
writer.println(title);
175+
writer.println("-".repeat(title.length()));
176+
for (Artifact artifact : alignedShadedArtifacts) {
177+
writer.println(String.format("Aligned - %s", artifact));
178+
}
179+
writer.println();
180+
}
181+
166182
if (!unalignedShadedArtifacts.isEmpty()) {
167-
writer.println("Unaligned Artifacts Affected by Shading");
168-
writer.println("---------------------------------------");
183+
String title = String.format("%d Unaligned artifacts affected by shading", unalignedShadedArtifacts.size());
184+
writer.println(title);
185+
writer.println("-".repeat(title.length()));
169186
for (Artifact artifact : unalignedShadedArtifacts) {
170-
writer.println(String.format(" - %s", artifact));
187+
writer.println(String.format("Unaligned - %s", artifact));
171188
}
172189
writer.println();
173190
}
@@ -208,43 +225,57 @@ public String generateShadeAlignmentSummary(final ShadeAlignmentResult result, f
208225
.stream()
209226
.filter(artifact -> !alignmentPattern.matcher(artifact.getVersion())
210227
.find())
211-
.forEach(artifact -> writer.println(String.format(" - %s", artifact)));
228+
.forEach(artifact -> writer.println(String.format("Unaligned - %s", artifact)));
212229
}
213230

214231
// Add path information if available
215232
if (result.hasPathInformation() && !result.getShadedArtifactsWithPaths()
216233
.isEmpty()) {
217234
writer.println();
218-
writer.println("Unaligned Shaded Artifacts with Dependency Paths:");
219-
writer.println("-------------------------------------------------");
235+
writer.println("Shaded Artifacts with Dependency Paths");
236+
writer.println("--------------------------------------");
220237

221-
// Group by direct vs transitive, but only show unaligned ones
222-
List<ArtifactWithPath> directUnalignedShaded = result.getShadedArtifactsWithPaths()
238+
// Group by alignment status and dependency type
239+
List<ArtifactWithPath> transitiveAlignedShaded = result.getShadedArtifactsWithPaths()
223240
.stream()
224-
.filter(ArtifactWithPath::isDirect)
225-
.filter(awp -> !alignmentPattern.matcher(awp.getArtifact().getVersion()).find())
226-
.sorted((a, b) -> a.getArtifact()
227-
.toString()
228-
.compareTo(b.getArtifact()
229-
.toString()))
241+
.filter(ArtifactWithPath::isTransitive)
242+
.filter(awp -> alignmentPattern.matcher(awp.getArtifact().getVersion()).find())
243+
.sorted(Comparator.comparing(a -> a.getArtifact()
244+
.toString()))
230245
.collect(java.util.stream.Collectors.toList());
231246

232247
List<ArtifactWithPath> transitiveUnalignedShaded = result.getShadedArtifactsWithPaths()
233248
.stream()
234249
.filter(ArtifactWithPath::isTransitive)
235250
.filter(awp -> !alignmentPattern.matcher(awp.getArtifact().getVersion()).find())
236-
.sorted((a, b) -> a.getArtifact()
237-
.toString()
238-
.compareTo(b.getArtifact()
239-
.toString()))
251+
.sorted(Comparator.comparing(a -> a.getArtifact()
252+
.toString()))
240253
.collect(java.util.stream.Collectors.toList());
241254

242-
if (!directUnalignedShaded.isEmpty()) {
255+
if (!transitiveAlignedShaded.isEmpty()) {
256+
writer.println();
257+
writer.println("Direct Aligned Shaded Artifacts:");
258+
writer.println("---------------------------------");
259+
for (ArtifactWithPath awp : transitiveAlignedShaded) {
260+
writer.println(String.format("Aligned - %s", awp.getArtifact()));
261+
}
262+
}
263+
264+
if (!transitiveUnalignedShaded.isEmpty()) {
243265
writer.println();
244266
writer.println("Direct Unaligned Shaded Artifacts:");
245267
writer.println("----------------------------------");
246-
for (ArtifactWithPath awp : directUnalignedShaded) {
247-
writer.println(String.format(" - %s", awp.getArtifact()));
268+
for (ArtifactWithPath awp : transitiveUnalignedShaded) {
269+
writer.println(String.format("Unaligned - %s", awp.getArtifact()));
270+
}
271+
}
272+
273+
if (!transitiveAlignedShaded.isEmpty()) {
274+
writer.println();
275+
writer.println("Transitive Aligned Shaded Artifacts:");
276+
writer.println("------------------------------------");
277+
for (ArtifactWithPath awp : transitiveAlignedShaded) {
278+
writer.println(String.format("Aligned - %s", awp.formatDependencyPath()));
248279
}
249280
}
250281

@@ -253,7 +284,7 @@ public String generateShadeAlignmentSummary(final ShadeAlignmentResult result, f
253284
writer.println("Transitive Unaligned Shaded Artifacts:");
254285
writer.println("--------------------------------------");
255286
for (ArtifactWithPath awp : transitiveUnalignedShaded) {
256-
writer.println(String.format(" - %s", awp.formatDependencyPath()));
287+
writer.println(String.format("Unaligned - %s", awp.formatDependencyPath()));
257288
}
258289
}
259290
}

0 commit comments

Comments
 (0)