| MediaEngineDeployer.java |
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.media.engine;
import java.io.File;
import java.net.URL;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.jboss.deployment.DeploymentException;
import org.jboss.deployment.DeploymentInfo;
import org.jboss.deployment.SubDeployer;
import org.jboss.deployment.SubDeployerSupport;
/**
* @version <tt>$Revision: 1.4 $</tt>
* @author <a href="mailto:spyridon_samothrakis@yahoo.com">Spyridon Samothrakis</a>
*
* @jmx:mbean extends="org.jboss.deployment.SubDeployerMBean"
*/
public class MediaEngineDeployer
extends SubDeployerSupport
implements SubDeployer, MediaEngineDeployerMBean
{
public MediaEngineDeployer()
{
}
/**
* @see org.jboss.deployment.SubDeployerMBean#accepts(DeploymentInfo)
*/
public boolean accepts(DeploymentInfo info)
{
String urlStr = info.url.toString();
return (urlStr.endsWith("-media.xml"));
}
protected boolean isDeployable(String name, URL url)
{
return (name.endsWith("-media.xml"));
}
public void init(DeploymentInfo di) throws DeploymentException
{
//default action on duplicate deployment is to ignore this one.
super.init(di);
boolean debug = log.isDebugEnabled();
try
{
if (di.watch == null)
{
// resolve the watch
if (di.url.getProtocol().equals("file"))
{
File file = new File(di.url.getFile());
// If not directory we watch the package
if (!file.isDirectory())
{
di.watch = di.url;
}
}
else
{
// We watch the top only, no directory support
di.watch = di.url;
}
}
// Get the document if not already present
parseDocument(di);
}
catch (Exception e)
{
log.error("failed to parse media document: ", e);
throw new DeploymentException(e);
}
}
/**
* @param di
*/
private void parseDocument(DeploymentInfo di)
throws DeploymentException, DocumentException
{
// Spy: Have a look at this:
/*if (di.getDocument() == null)
{
//DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
URL docURL = di.localUrl;
// Load jboss-service.xml from the jar or directory
if (docURL == null)
throw new DeploymentException("Failed to initialize");
SAXReader sr = new SAXReader();
di.setDocument(sr.read(docURL));
}
else
{
log.debug("Using existing deployment.document");
}*/
}
/* (non-Javadoc)
* @see org.jboss.deployment.SubDeployerMBean#create(org.jboss.deployment.DeploymentInfo)
*/
public synchronized void create(DeploymentInfo di)
throws DeploymentException
{
super.create(di);
log.info("Deploying *-media.xml descriptor");
}
/* (non-Javadoc)
* @see org.jboss.deployment.SubDeployerMBean#start(org.jboss.deployment.DeploymentInfo)
*/
public void start(DeploymentInfo di) throws DeploymentException
{
// Spy: Have a look at this:
/*super.start(di);
try
{
MediaXmlLoader.deployXML(
di.getW3CDocument(),
di.localUrl,
getServer());
}
catch (Exception ex)
{
ex.printStackTrace();
throw new DeploymentException(ex);
}
super.start(di);*/
}
/* (non-Javadoc)
* @see org.jboss.deployment.SubDeployerMBean#stop(org.jboss.deployment.DeploymentInfo)
*/
public synchronized void stop(DeploymentInfo di) throws DeploymentException
{
// Spy: Have a look at this:
/*super.stop(di);
try
{
MediaXmlLoader.undeploy(di.getW3CDocument(), di.localUrl, getServer());
}
catch (Exception ex)
{
ex.printStackTrace();
throw new DeploymentException(ex);
}
super.start(di);*/
}
}
| MediaEngineDeployer.java |