Class TomcatURLStreamHandlerFactory
java.lang.Object
org.apache.catalina.webresources.TomcatURLStreamHandlerFactory
- All Implemented Interfaces:
URLStreamHandlerFactory
Factory for URL stream handlers that supports the war and classpath protocols.
-
Method Summary
Modifier and TypeMethodDescriptionvoidaddUserFactory(URLStreamHandlerFactory factory) Since the JVM only allows a single call toURL.setURLStreamHandlerFactory(URLStreamHandlerFactory)and Tomcat needs to register a handler, provide a mechanism to allow applications to register their own handlers.createURLStreamHandler(String protocol) static booleandisable()Prevent this factory from registering with the JVM.Obtain a reference to the singleton instance.booleanReturns whether this factory has been registered as the global URL stream handler factory.static booleanregister()Register this factory with the JVM.static voidrelease(ClassLoader classLoader) Release references to any user provided factories that have been loaded using the provided class loader.
-
Method Details
-
getInstance
Obtain a reference to the singleton instance. It is recommended that callers check the value ofisRegistered()before using the returned instance.- Returns:
- A reference to the singleton instance
-
register
public static boolean register()Register this factory with the JVM. May be called more than once. The implementation ensures that registration only occurs once.- Returns:
trueif the factory is already registered with the JVM or was successfully registered as a result of this call.falseif the factory was disabled prior to this call.
-
disable
public static boolean disable()Prevent this factory from registering with the JVM. May be called more than once.- Returns:
trueif the factory is already disabled or was successfully disabled as a result of this call.falseif the factory was already registered prior to this call.
-
release
Release references to any user provided factories that have been loaded using the provided class loader. Called during web application stop to prevent memory leaks.- Parameters:
classLoader- The class loader to release
-
isRegistered
public boolean isRegistered()Returns whether this factory has been registered as the global URL stream handler factory.- Returns:
- true if registered
-
addUserFactory
Since the JVM only allows a single call toURL.setURLStreamHandlerFactory(URLStreamHandlerFactory)and Tomcat needs to register a handler, provide a mechanism to allow applications to register their own handlers.- Parameters:
factory- The user provided factory to add to the factories Tomcat has already registered
-
createURLStreamHandler
- Specified by:
createURLStreamHandlerin interfaceURLStreamHandlerFactory
-