1 /* 2 * JBoss, Home of Professional Open Source 3 * Copyright 2006, JBoss Inc., and individual contributors as indicated 4 * by the @authors tag. See the copyright.txt in the distribution for a 5 * full listing of individual contributors. 6 * 7 * This is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as 9 * published by the Free Software Foundation; either version 2.1 of 10 * the License, or (at your option) any later version. 11 * 12 * This software is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this software; if not, write to the Free 19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 21 */ 22 package org.jboss.deployers.spi.deployment; 23 24 import java.util.Collection; 25 26 import org.jboss.deployers.spi.DeploymentException; 27 import org.jboss.deployers.spi.structure.DeploymentContext; 28 29 /** 30 * MainDeployer.<p> 31 * 32 * The basic contract is to add and remove deployment 33 * contexts then use process method to actually 34 * bring the deployments to required state. 35 * 36 * @author <a HREF="adrian@jboss.com">Adrian Brock</a> 37 * @version $Revision: 1.1 $ 38 */ 39 public interface MainDeployer 40 { 41 /** 42 * Get a deployment context 43 * 44 * @param name the name 45 * @return the context or null if not found 46 */ 47 DeploymentContext getDeploymentContext(String name); 48 49 /** 50 * Get the top level deployments 51 * 52 * @return the top level deployments 53 */ 54 Collection<DeploymentContext> getTopLevel(); 55 56 /** 57 * Get all the deployments 58 * 59 * @return the deployments 60 */ 61 Collection<DeploymentContext> getAll(); 62 63 /** 64 * Get the deployments in error 65 * 66 * @return the deployments 67 */ 68 Collection<DeploymentContext> getErrors(); 69 70 /** 71 * Get the deployments missing a deployer 72 * 73 * @return the deployments 74 */ 75 Collection<DeploymentContext> getMissingDeployer(); 76 77 /** 78 * Add a deployment context 79 * 80 * @param context the deployment context 81 * @throws DeploymentException for any error 82 */ 83 void addDeploymentContext(DeploymentContext context) throws DeploymentException; 84 85 /** 86 * Remove a deployment context 87 * 88 * @param name the name of the context 89 * @return false when the context was previously unknown 90 * @throws DeploymentException for any error 91 */ 92 boolean removeDeploymentContext(String name) throws DeploymentException; 93 94 /** 95 * Process the outstanding deployments 96 */ 97 void process(); 98 99 /** 100 * Shutdown. Removes all the deployments. 101 */ 102 void shutdown(); 103 } 104