Skip to content

Commit

Permalink
Centralize internal packages in ClassLoaderHelper
Browse files Browse the repository at this point in the history
- Rename ClassloadHelper to the more consistent ClassLoaderHelper
- Add a few internal packages
- Centralize the internal packages now that we have a common CL artifact
  • Loading branch information
gsmet committed Jul 13, 2024
1 parent 29a8cf8 commit 015e65e
Show file tree
Hide file tree
Showing 37 changed files with 79 additions and 63 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.BufferedWriter;
import java.io.IOException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.StringWriter;
import java.io.Writer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
import io.quarkus.builder.BuildChainBuilder;
import io.quarkus.builder.BuildContext;
import io.quarkus.builder.BuildStep;
import io.quarkus.commons.classloading.ClassloadHelper;
import io.quarkus.commons.classloading.ClassLoaderHelper;
import io.quarkus.deployment.builditem.ApplicationClassPredicateBuildItem;
import io.quarkus.deployment.console.ConsoleCommand;
import io.quarkus.deployment.console.ConsoleStateManager;
Expand Down Expand Up @@ -481,7 +481,7 @@ public void execute(BuildContext context) {
public boolean test(String s) {
QuarkusClassLoader cl = (QuarkusClassLoader) Thread.currentThread()
.getContextClassLoader();
String resourceName = ClassloadHelper.fromClassNameToResourceName(s);
String resourceName = ClassLoaderHelper.fromClassNameToResourceName(s);
//if the class file is present in this (and not the parent) CL then it is an application class
List<ClassPathElement> res = cl
.getElementsWithResource(resourceName, true);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment.dev.filesystem;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.File;
import java.io.IOException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment.dev.testing;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.IOException;
import java.io.InputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment.index;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.IOException;
import java.io.InputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment.pkg.steps;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;
import static io.quarkus.deployment.pkg.PackageConfig.JarConfig.JarType.*;

import java.io.BufferedInputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment.steps;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.util.ArrayList;
import java.util.Collections;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment.steps;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.IOException;
import java.io.UncheckedIOException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment.steps;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.File;
import java.io.FileOutputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment.util;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.IOException;
import java.io.InputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.runner.bootstrap;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.Closeable;
import java.io.File;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.deployment.pkg.steps;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import org.jboss.jandex.Type.Kind;
import org.junit.jupiter.api.Test;

import io.quarkus.commons.classloading.ClassloadHelper;
import io.quarkus.commons.classloading.ClassLoaderHelper;

public class JandexUtilTest {

Expand Down Expand Up @@ -309,7 +309,7 @@ private static Index index(Class<?>... classes) {
for (Class<?> clazz : classes) {
try {
try (InputStream stream = JandexUtilTest.class.getClassLoader()
.getResourceAsStream(ClassloadHelper.fromClassNameToResourceName(clazz.getName()))) {
.getResourceAsStream(ClassLoaderHelper.fromClassNameToResourceName(clazz.getName()))) {
indexer.index(stream);
}
} catch (IOException e) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.hibernate.orm.runtime.boot.scan;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.util.Collections;
import java.util.HashSet;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import org.jboss.jandex.ParameterizedType;
import org.junit.jupiter.api.Test;

import io.quarkus.commons.classloading.ClassloadHelper;
import io.quarkus.commons.classloading.ClassLoaderHelper;
import io.quarkus.qute.Engine;
import io.quarkus.qute.Expression;
import io.quarkus.qute.deployment.TypeInfos.Info;
Expand Down Expand Up @@ -95,7 +95,7 @@ private void assertHints(String hintStr, String... expectedHints) {
private static Index index(Class<?>... classes) throws IOException {
Indexer indexer = new Indexer();
for (Class<?> clazz : classes) {
final String resourceName = ClassloadHelper.fromClassNameToResourceName(clazz.getName());
final String resourceName = ClassLoaderHelper.fromClassNameToResourceName(clazz.getName());
try (InputStream stream = TypeInfosTest.class.getClassLoader()
.getResourceAsStream(resourceName)) {
indexer.index(stream);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import org.jboss.jandex.Type;
import org.junit.jupiter.api.Test;

import io.quarkus.commons.classloading.ClassloadHelper;
import io.quarkus.commons.classloading.ClassLoaderHelper;
import io.quarkus.qute.EvalContext;
import io.quarkus.qute.ValueResolver;
import io.quarkus.qute.deployment.Types.AssignabilityCheck;
Expand Down Expand Up @@ -79,7 +79,7 @@ public void testIsImplementorOf() throws IOException {
private static Index index(Class<?>... classes) throws IOException {
Indexer indexer = new Indexer();
for (Class<?> clazz : classes) {
final String resourceName = ClassloadHelper.fromClassNameToResourceName(clazz.getName());
final String resourceName = ClassLoaderHelper.fromClassNameToResourceName(clazz.getName());
try (InputStream stream = TypesTest.class.getClassLoader()
.getResourceAsStream(resourceName)) {
indexer.index(stream);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.resteasy.reactive.server.deployment;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.IOException;
import java.io.InputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.resteasy.reactive.server.deployment;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.IOException;
import java.io.InputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.resteasy.reactive.server.test.simple;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.InputStream;
import java.io.PrintWriter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.security.test.rolesallowed;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.IOException;
import java.io.InputStream;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
import org.reactivestreams.Publisher;
import org.reactivestreams.Subscriber;

import io.quarkus.commons.classloading.ClassloadHelper;
import io.quarkus.commons.classloading.ClassLoaderHelper;
import io.quarkus.deployment.builditem.GeneratedClassBuildItem;
import io.quarkus.deployment.builditem.RunTimeConfigurationDefaultBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
Expand Down Expand Up @@ -147,7 +147,7 @@ Function<String, Assert> assertStartsWith(String starts) {
private static IndexView index(List<Class<?>> classes) {
Indexer indexer = new Indexer();
for (Class<?> clazz : classes) {
final String resourceName = ClassloadHelper.fromClassNameToResourceName(clazz.getName());
final String resourceName = ClassLoaderHelper.fromClassNameToResourceName(clazz.getName());
try {
try (InputStream stream = DefaultSerdeConfigTest.class.getClassLoader()
.getResourceAsStream(resourceName)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.smallrye.reactivemessaging.kafka.deployment;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.groups.Tuple.tuple;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
import org.reactivestreams.Subscriber;

import io.quarkus.arc.deployment.SyntheticBeanBuildItem;
import io.quarkus.commons.classloading.ClassloadHelper;
import io.quarkus.commons.classloading.ClassLoaderHelper;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.builditem.RunTimeConfigurationDefaultBuildItem;
import io.quarkus.deployment.recording.RecorderContext;
Expand Down Expand Up @@ -137,7 +137,7 @@ String generateId(Type type, String targetType) {
private static IndexView index(List<Class<?>> classes) {
Indexer indexer = new Indexer();
for (Class<?> clazz : classes) {
final String resourceName = ClassloadHelper.fromClassNameToResourceName(clazz.getName());
final String resourceName = ClassLoaderHelper.fromClassNameToResourceName(clazz.getName());
try {
try (InputStream stream = DefaultSchemaConfigTest.class.getClassLoader()
.getResourceAsStream(resourceName)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.spring.boot.properties.deployment;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;

import java.io.IOException;
import java.io.InputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.quarkus.spring.data.deployment;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Warmup;

import io.quarkus.commons.classloading.ClassloadHelper;
import io.quarkus.commons.classloading.ClassLoaderHelper;

/**
* We benchmark this strategy with CompilerControl.Mode.EXCLUDE as this code
Expand All @@ -36,7 +36,7 @@ public class BenchmarkClassnameToResourceName {

@Benchmark
public String checkNewMethod() {
return ClassloadHelper.fromClassNameToResourceName(arg);
return ClassLoaderHelper.fromClassNameToResourceName(arg);
}

@Benchmark
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package io.quarkus.commons.classloading;

public final class ClassloadHelper {
public final class ClassLoaderHelper {

private ClassloadHelper() {
private static final String JAVA = "java.";
private static final String JDK_INTERNAL = "jdk.internal.";
private static final String SUN_MISC = "sun.misc.";

private ClassLoaderHelper() {
//Not meant to be instantiated
}

Expand All @@ -18,4 +22,7 @@ public static String fromClassNameToResourceName(final String className) {
return className.replace('.', '/').concat(".class");
}

public static boolean isInJdkPackage(String name) {
return name.startsWith(JAVA) || name.startsWith(JDK_INTERNAL) || name.startsWith(SUN_MISC);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package io.quarkus.commons.classloading;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

public class ClassLoaderHelperTest {

@Test
public void testFromClassToResourceName() {
Assertions.assertEquals("java/lang/String.class", ClassLoaderHelper.fromClassNameToResourceName("java.lang.String"));
Assertions.assertEquals(".class", ClassLoaderHelper.fromClassNameToResourceName(""));
}

@Test
public void testIsInJdkPackage() {
Assertions.assertFalse(ClassLoaderHelper.isInJdkPackage("io.quarkus.runtime.Test"));
Assertions.assertFalse(ClassLoaderHelper.isInJdkPackage("javax.validation.Validation"));
Assertions.assertTrue(ClassLoaderHelper.isInJdkPackage("java.lang.String"));
Assertions.assertTrue(ClassLoaderHelper.isInJdkPackage("jdk.internal.misc.Unsafe"));
Assertions.assertTrue(ClassLoaderHelper.isInJdkPackage("sun.misc.SignalHandler"));
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.quarkus.bootstrap.classloading;

import static io.quarkus.commons.classloading.ClassloadHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.fromClassNameToResourceName;
import static io.quarkus.commons.classloading.ClassLoaderHelper.isInJdkPackage;

import java.io.ByteArrayInputStream;
import java.io.Closeable;
Expand Down Expand Up @@ -44,7 +45,6 @@ public class QuarkusClassLoader extends ClassLoader implements Closeable {
private static final byte STATUS_CLOSED = -1;

protected static final String META_INF_SERVICES = "META-INF/services/";
protected static final String JAVA = "java.";

static {
registerAsParallelCapable();
Expand Down Expand Up @@ -186,7 +186,7 @@ private String sanitizeName(String name) {
public boolean isParentFirst(String name) {
ensureOpen();

if (name.startsWith(JAVA)) {
if (isInJdkPackage(name)) {
return true;
}

Expand Down Expand Up @@ -516,7 +516,7 @@ protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundE
for (ClassLoaderEventListener l : classLoaderEventListeners) {
l.loadClass(name, this.name);
}
if (name.startsWith(JAVA)) {
if (isInJdkPackage(name)) {
return parent.loadClass(name);
}
//even if the thread is interrupted we still want to be able to load classes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.apache.maven.shared.utils.cli.CommandLineUtils;

import io.quarkus.bootstrap.util.PropertyUtils;
import io.quarkus.commons.classloading.ClassloadHelper;
import io.quarkus.commons.classloading.ClassLoaderHelper;

/**
* This class resolves relevant Maven command line options in case it's called
Expand Down Expand Up @@ -257,7 +257,7 @@ private static Map<String, Object> invokeParser(ClassLoader cl, String[] args) t
* classpath of the context classloader
*/
public static Path getClassOrigin(Class<?> cls) throws IOException {
return getResourceOrigin(cls.getClassLoader(), ClassloadHelper.fromClassNameToResourceName(cls.getName()));
return getResourceOrigin(cls.getClassLoader(), ClassLoaderHelper.fromClassNameToResourceName(cls.getName()));
}

public static Path getResourceOrigin(ClassLoader cl, final String name) throws IOException {
Expand Down
Loading

0 comments on commit 015e65e

Please sign in to comment.