/*
 * JBoss, Home of Professional Open Source
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */
package org.jboss.deployment.services;

import java.io.File;
import java.util.Collection;
import java.util.Map;
import javax.management.ObjectName;
import javax.enterprise.deploy.spi.TargetModuleID;
import javax.enterprise.deploy.spi.exceptions.TargetException;
import javax.enterprise.deploy.shared.ModuleType;

import org.jboss.deployment.spi.SerializableTargetModuleID;

/**
 * An mbean service interface for the server side functionality needed for the
 * DeploymentManager implementation.
 * 
 * @author Scott.Stark@jboss.org
 * @version $Revision: 1.1 $
 */
public interface DeploymentManagerServiceMBean
{
   public File getUploadDir();
   public void setUploadDir(File uploadDir);

   public ObjectName getMainDeployer();
   public void setMainDeployer(ObjectName deployer);

   ObjectName getEARDeployer();
   void setEARDeployer(ObjectName name);

   ObjectName getEJBDeployer();
   void setEJBDeployer(ObjectName name);

   ObjectName getRARDeployer();
   void setRARDeployer(ObjectName name);

   ObjectName getWARDeployer();
   void setWARDeployer(ObjectName name);

   ObjectName getCARDeployer();
   void setCARDeployer(ObjectName name);

   public Map getModuleMap();

   public void deploy(SerializableTargetModuleID moduleID) throws Exception;
   public void start(String url) throws Exception;
   public void stop(String url) throws Exception;
   public void undeploy(String url) throws Exception;

   SerializableTargetModuleID[] getAvailableModules(int moduleType) throws TargetException;
}
