1 /* 2 * JBoss, Home of Professional Open Source 3 * Copyright 2005, 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.deployment; 23 24 import javax.management.ObjectName; 25 26 import org.jboss.system.ServiceMBean; 27 28 /** 29 * MBean interface for SubDeployers 30 * 31 * @version <tt>$Revision: 57108 $</tt> 32 */ 33 public interface SubDeployerMBean extends ServiceMBean 34 { 35 // Attributes ---------------------------------------------------- 36 37 /** 38 * Get the JMX ObjectName of the service that provides the SubDeployer 39 * @return JMX ObjectName of the service 40 */ 41 ObjectName getServiceName(); 42 43 /** 44 * Get an array of suffixes of interest to this subdeployer 45 * @return array of suffix strings 46 */ 47 String[] getSuffixes(); 48 49 /** 50 * Get the relative order of the specified suffixes 51 * @return the relative order of the specified suffixes 52 */ 53 int getRelativeOrder(); 54 55 // Operations ---------------------------------------------------- 56 57 /** 58 * The <code>accepts</code> method is called by MainDeployer 59 * to determine which deployer is suitable for a DeploymentInfo. 60 * @param sdi a <code>DeploymentInfo</code> value 61 * @return a <code>boolean</code> value 62 */ 63 boolean accepts(DeploymentInfo sdi); 64 65 /** 66 * The <code>init</code> method lets the deployer set a few 67 * properties of the DeploymentInfo, such as the watch url. 68 * @param sdi a <code>DeploymentInfo</code> value 69 * @throws DeploymentException if an error occurs 70 */ 71 void init(DeploymentInfo sdi) throws DeploymentException; 72 73 /** 74 * Set up the components of the deployment that do not 75 * refer to other components. 76 * @param sdi a <code>DeploymentInfo</code> value 77 * @throws DeploymentException if an error occurs 78 */ 79 void create(DeploymentInfo sdi) throws DeploymentException; 80 81 /** 82 * The <code>start</code> method sets up relationships 83 * with other components. 84 * @param sdi a <code>DeploymentInfo</code> value 85 * @throws DeploymentException if an error occurs 86 */ 87 void start(DeploymentInfo sdi) throws DeploymentException; 88 89 /** 90 * The <code>stop</code> method removes relationships 91 * between components. 92 * @param sdi a <code>DeploymentInfo</code> value 93 * @throws DeploymentException if an error occurs 94 */ 95 void stop(DeploymentInfo sdi) throws DeploymentException; 96 97 /** 98 * The <code>destroy</code> method removes individual 99 * components 100 * @param sdi a <code>DeploymentInfo</code> value 101 * @throws DeploymentException if an error occurs 102 */ 103 void destroy(DeploymentInfo sdi) throws DeploymentException; 104 105 } 106