Java - Registrando manipuladores de protocolo de URL personalizados
Tentei registrar um manipulador de URL personalizado para um protocolo de caminho de classe, conforme descrito em outro fio. Aqui está o código:
package com.mycompany;
import org.junit.Test;
import java.net.MalformedURLException;
import java.net.URL;
import com.mycompany.protocol.classpath.Handler;
public class ParserTest {
@Test
public void testParsing() throws MalformedURLException {
System.out.println(System.getProperty("java.protocol.handler.pkgs"));
//URL url = new URL(null, "classpath://com.mycompany/hello-world.xml", new Handler(ClassLoader.getSystemClassLoader()));
URL url = new URL("classpath://com.mycompany/hello-world.xml");
}
}
O caso de teste possui os seguintes argumentos da JVM:
-Djava.protocol.handler.pkgs=com.mycompany.protocol
OSystem.out.println
linha produz corretamentecom.mycompany.protocol
, então a propriedade está sendo definida. No entanto, parece que não está sendo efetivado, porque a chamada acima gera umjava.net.MalformedURLException: unknown protocol: classpath
exceção.
Se eu fornecer o manipulador explicitamente, como na linha comentada, está tudo bem. No entanto, prefiro não fornecer explicitamente - isso deve ser feito automaticament
O que estou fazendo errado