@Override
	protected URLConnection openConnection(URL url) throws IOException {

		if (!GhidraURL.PROTOCOL.equals(url.getProtocol())) {
			throw new IllegalArgumentException("unsupported URL protocol: " + url.getProtocol());
		}

		// Need to check for protocol extension if URL is of form ghidra:<extension-url>
		// Example:  ghidra:http://host/repo/folder/filename
		if (url.getAuthority() == null && !url.getPath().startsWith("/")) {
			// check for protocol handler which provides access to a full repository
			// while specifying a specific folder/file within the repository.  
			// The repository root is inferred from the URL path.
			try {
				GhidraProtocolHandler protocolHandler = getProtocolExtensionHandler(url);
				// strip ghidra protocol specifier from URL
				url = new URL(url.toExternalForm().substring(GhidraURL.PROTOCOL.length() + 1));
				return new GhidraURLConnection(url, protocolHandler);
			}
			catch (NotFoundException e) {
				throw new IOException("unsupported ghidra URL", e);
			}
		}

		return new GhidraURLConnection(url);
	}
Determine if the specified url is supported and that any required 
protocol extensions are recognized.
@param url
@return true if support ghidra URL
Ghidra/Framework/Project/src/main/java/ghidra/framework/protocol/ghidra/Handler.java