All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.java.dev.weblets.packaged.URLWeblet Maven / Gradle / Ivy

package net.java.dev.weblets.packaged;

import net.java.dev.weblets.*;
import net.java.dev.weblets.util.CopyStrategyImpl;
import net.java.dev.weblets.util.CopyStrategy;
import net.java.dev.weblets.util.CopyStrategyImpl;
import net.java.dev.weblets.util.CopyStrategy;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;

/**
 * 
 * weblet which streams resources from another valid url vfs location
 * 
 * it sort of acts as proxy for remote url resources and can hide the origin of the original weblets
 * 
 * note! this stream is under construction and experimental only, it should not be used for production
 * 
 */
public class URLWeblet extends Weblet {
	public int getWebletType() {
		return WebletConfig.WEBLET_TYPE_PROXY;
	}

	public void init(WebletConfig config) {
		super.init(config);
		String httpAddress = config.getInitParameter("rootaddress");
		if (httpAddress == null) {
			throw new WebletException("Missing either init parameter \"package\" or " + " or init parameter \"resourceRoot\" for " + " Weblet \""
					+ config.getWebletName() + "\"");
		}
		_resourceRoot = httpAddress;
	}

	public void service(WebletRequest request, WebletResponse response) throws IOException {
		String resourcePath = _resourceRoot + request.getPathInfo();
		CopyStrategy copyProvider = new CopyStrategyImpl();
		URL url = new URL(resourcePath);
		WebletResourceloadingUtils.getInstance().loadFromUrl(getWebletConfig(), request, response, url, copyProvider);
	}

	public InputStream serviceStream(String webletname, String mimetype) throws IOException, WebletException {
		return null; // To change body of implemented methods use File | Settings | File Templates.
	}

	public void destroy() {
		_resourceRoot = null;
		super.destroy();
	}

	private String	_resourceRoot;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy