/*******************************************************************************
* Copyright (c) 2009 SpringSource, a divison of VMware, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* SpringSource, a division of VMware, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.virgo.ide.runtime.core;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.model.IModuleFile;
/**
* Interface for clients that want to control the deploy mechanism associated with a
* {@link IServerVersionHandler}.
* @author Christian Dupuis
* @since 2.0.0
*/
public interface IServerDeployer {
/**
* Deploys the given {@link IModule}s on the server.
*/
void deploy(IModule... modules);
/**
* Redeploys the given {@link IModule} on the server.
*/
void redeploy(IModule module);
/**
* Refreshes a given static resource of the given {@link IModule}s.
*/
void refreshStatic(IModule module, IModuleFile file);
/**
* Refresh the given {@link IModule}s inside a PAR.
*/
void refresh(IModule parModule, IModule... modules);
/**
* Undeploys the given {@link IModule}s.
*/
void undeploy(IModule... modules);
/**
* Shuts down the server
*/
void shutdown() throws IOException, TimeoutException;
/**
* Pings the server to if it is running
*/
Boolean ping() throws IOException, TimeoutException;
}