/*
* JBoss, Home of Professional Open Source.
* Copyright 2010, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.as.server.deployment.scanner.api;
import org.jboss.msc.service.ServiceName;
/**
* The deployment scanner.
*
* @author Emanuel Muckenhuber
*/
public interface DeploymentScanner {
ServiceName BASE_SERVICE_NAME = ServiceName.JBOSS.append("server", "deployment", "scanner");
/**
* Check whether the scanner is enabled.
*
* @return true if enabled, false otherwise
*/
boolean isEnabled();
/**
* Get the current scan interval
*
* @return the scan interval in ms
*/
long getScanInterval();
/**
* Set the scan interval.
*
* @param scanInterval the scan interval in ms
*/
void setScanInterval(long scanInterval);
/**
* Start the scanner, if not already started, using a default {@link DeploymentOperations}.
*
* @see #startScanner(DeploymentOperations)
*/
void startScanner();
/**
* Start the scanner, if not already started.
*/
void startScanner(final DeploymentOperations deploymentOperations);
/**
* Stop the scanner, if not already stopped.
*/
void stopScanner();
/**
* Gets whether the scanner will attempt to deploy zipped content based solely
* on detecting a change in the content; i.e. without requiring a
* marker file to trigger the deployment.
*
* @return true if auto-deployment of zipped content is enabled
*/
boolean isAutoDeployZippedContent();
/**
* Sets whether the scanner will attempt to deploy zipped content based solely
* on detecting a change in the content; i.e. without requiring a
* marker file to trigger the deployment.
*
* param autoDeployZip true if auto-deployment of zipped content is enabled
*/
void setAutoDeployZippedContent(boolean autoDeployZip);
/**
* Gets whether the scanner will attempt to deploy exploded content based solely
* on detecting a change in the content; i.e. without requiring a
* marker file to trigger the deployment.
*
* @return true if auto-deployment of exploded content is enabled
*/
boolean isAutoDeployExplodedContent() ;
/**
* Sets whether the scanner will attempt to deploy exploded content based solely
* on detecting a change in the content; i.e. without requiring a
* marker file to trigger the deployment.
*
* param autoDeployZip true if auto-deployment of exploded content is enabled
*/
void setAutoDeployExplodedContent(boolean autoDeployExploded);
/**
* Gets whether the scanner will attempt to deploy XML content based solely
* on detecting a change in the content; i.e. without requiring a
* marker file to trigger the deployment.
*
* @return true if auto-deployment of XML content is enabled
*/
boolean isAutoDeployXMLContent();
/**
* Sets whether the scanner will attempt to deploy XML content based solely
* on detecting a change in the content; i.e. without requiring a
* marker file to trigger the deployment.
*
* param autoDeployXML true if auto-deployment of XML content is enabled
*/
void setAutoDeployXMLContent(boolean autoDeployXML);
/**
* Set the timeout used for deployments.
*
* @param timeout The deployment timeout
*/
void setDeploymentTimeout(long timeout);
/**
* Sets whether a runtime failure of a deployment causes a rollback of the deployment as well as all other (maybe
* unrelated) deployments as part of the scan operation.
*
* @param rollback true if runtime failures should trigger a rollback
*/
void setRuntimeFailureCausesRollback(boolean rollback);
}