Skip to content

Commit dea2a7c

Browse files
committed
chore: Readability of CallSiteUtils::toURL
1 parent b5ef0ba commit dea2a7c

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

buildSrc/.kotlin/sessions/kotlin-compiler-1497087473482789025.salive

Whitespace-only changes.

buildSrc/call-site-instrumentation-plugin/src/main/java/datadog/trace/plugin/csi/util/CallSiteUtils.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.File;
44
import java.net.MalformedURLException;
55
import java.net.URL;
6+
import java.nio.file.Files;
67
import java.nio.file.Path;
78
import java.util.stream.Collectors;
89
import java.util.stream.IntStream;
@@ -48,9 +49,13 @@ public static String repeat(final char value, int count) {
4849
public static URL toURL(final Path path) {
4950
try {
5051
URL url = path.toUri().toURL();
51-
// There's a subtle detail where `URLClassLoader` requires directory URLs to end with '/',
52-
// otherwise they are assimilated to jar file, and vice versa.
53-
if (path.toFile().isDirectory() || !path.toString().endsWith(".jar")) {
52+
// URLClassLoader interprets URLs ending with '/' as directories. If the trailing '/' is
53+
// missing, a directory URL is treated as a JAR. If the path does yet exist on disk
54+
// assumes that paths not ending with ".jar" are directories.
55+
boolean shouldAddSlash =
56+
Files.exists(path) ? Files.isDirectory(path) : !path.toString().endsWith(".jar");
57+
58+
if (shouldAddSlash) {
5459
String urlString = url.toString();
5560
if (!urlString.endsWith("/")) {
5661
url = new URL(urlString + "/");

buildSrc/src/main/kotlin/datadog/gradle/plugin/csi/CallSiteInstrumentationExtension.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package datadog.gradle.plugin.csi
22

3-
import org.gradle.api.Project
4-
import org.gradle.api.artifacts.Configuration
53
import org.gradle.api.file.ConfigurableFileCollection
64
import org.gradle.api.file.DirectoryProperty
75
import org.gradle.api.file.ProjectLayout
@@ -19,7 +17,6 @@ import javax.inject.Inject
1917
* This extension allows to configure the Call Site Instrumenter plugin execution.
2018
*/
2119
abstract class CallSiteInstrumentationExtension @Inject constructor(
22-
project: Project,
2320
objectFactory: ObjectFactory,
2421
layout: ProjectLayout
2522
) {

0 commit comments

Comments
 (0)