package org.jboss.shrinkwrap.portal.impl.container;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.asset.Asset;
import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
import org.jboss.shrinkwrap.api.asset.FileAsset;
import org.jboss.shrinkwrap.api.asset.UrlAsset;
import org.jboss.shrinkwrap.impl.base.Validate;
import org.jboss.shrinkwrap.impl.base.asset.AssetUtil;
import org.jboss.shrinkwrap.impl.base.container.WebContainerBase;
import org.jboss.shrinkwrap.portal.api.container.PortletContainer;
import java.io.File;
import java.net.URL;
/**
* PortletContainerBase
*
* @author <a href="http://community.jboss.org/people/kenfinni">Ken Finnigan</a>
*/
public abstract class PortletContainerBase <T extends Archive<T>> extends WebContainerBase<T> implements PortletContainer<T> {
protected PortletContainerBase(Class<T> actualType, Archive<?> archive) {
super(actualType, archive);
}
/**
* @see org.jboss.shrinkwrap.portal.api.container.PortletContainer#setPortletXML(String)
*/
@Override
public T setPortletXML(String resourceName) throws IllegalArgumentException {
Validate.notNull(resourceName, "ResourceName should be specified");
return setPortletXML(new ClassLoaderAsset(resourceName));
}
/**
* @see org.jboss.shrinkwrap.portal.api.container.PortletContainer#setPortletXML(java.io.File)
*/
@Override
public T setPortletXML(File resource) throws IllegalArgumentException {
Validate.notNull(resource, "Resource should be specified");
return setPortletXML(new FileAsset(resource));
}
/**
* @see org.jboss.shrinkwrap.portal.api.container.PortletContainer#setPortletXML(java.net.URL)
*/
@Override
public T setPortletXML(URL resource) throws IllegalArgumentException {
Validate.notNull(resource, "Resource should be specified");
return setPortletXML(new UrlAsset(resource));
}
/**
* @see org.jboss.shrinkwrap.portal.api.container.PortletContainer#setPortletXML(org.jboss.shrinkwrap.api.asset.Asset)
*/
@Override
public T setPortletXML(Asset resource) throws IllegalArgumentException {
Validate.notNull(resource, "Resource should be specified");
return addAsWebInfResource(resource, "portlet.xml");
}
/**
* @see org.jboss.shrinkwrap.portal.api.container.PortletContainer#setPortletXML(Package, String)
*/
@Override
public T setPortletXML(Package resourcePackage, String resourceName) throws IllegalArgumentException {
Validate.notNull(resourcePackage, "ResourcePackage must be specified");
Validate.notNull(resourceName, "ResourceName must be specified");
String classloaderResourceName = AssetUtil.getClassLoaderResourceName(resourcePackage, resourceName);
return setPortletXML(new ClassLoaderAsset(classloaderResourceName));
}
}