001 /** 002 * 003 * Copyright 2003-2004 The Apache Software Foundation 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018 // 019 // This source code implements specifications defined by the Java 020 // Community Process. In order to remain compliant with the specification 021 // DO NOT add / change / or delete method signatures! 022 // 023 024 package javax.enterprise.deploy.spi; 025 026 import javax.enterprise.deploy.model.DeployableObject; 027 import javax.enterprise.deploy.model.DDBeanRoot; 028 import javax.enterprise.deploy.spi.exceptions.ConfigurationException; 029 import javax.enterprise.deploy.spi.exceptions.BeanNotFoundException; 030 import java.io.OutputStream; 031 import java.io.InputStream; 032 033 /** 034 * An interface that defines a container for all the server-specific configuration 035 * information for a single top-level J2EE module. The DeploymentConfiguration 036 * object could represent a single stand alone module or an EAR file that contains 037 * several sub-modules. 038 * 039 * @version $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14 Sep 2004) $ 040 */ 041 public interface DeploymentConfiguration { 042 /** 043 * Returns an object that provides access to the deployment descriptor data 044 * and classes of a J2EE module. 045 * 046 * @return A DeployableObject 047 */ 048 public DeployableObject getDeployableObject(); 049 050 /** 051 * Returns the top level configuration bean, DConfigBeanRoot, associated with 052 * the deployment descriptor represented by the designated DDBeanRoot bean. 053 * 054 * @param bean The top level bean that represents the associated deployment descriptor. 055 * 056 * @return the DConfigBeanRoot for editing the server-specific properties required by the module. 057 * 058 * @throws ConfigurationException reports errors in generating a configuration bean 059 */ 060 public DConfigBeanRoot getDConfigBeanRoot(DDBeanRoot bean) throws ConfigurationException; 061 062 /** 063 * Remove the root DConfigBean and all its children. 064 * 065 * @param bean the top leve DConfigBean to remove. 066 * 067 * @throws BeanNotFoundException the bean provided is not in this beans child list. 068 */ 069 public void removeDConfigBean(DConfigBeanRoot bean) throws BeanNotFoundException; 070 071 /** 072 * Restore from disk to instantated objects all the DConfigBeans associated with a 073 * specific deployment descriptor. The beans may be fully or partially configured. 074 * 075 * @param inputArchive The input stream for the file from which the DConfigBeans 076 * should be restored. 077 * @param bean The DDBeanRoot bean associated with the deployment descriptor file. 078 * 079 * @return The top most parent configuration bean, DConfigBeanRoot 080 * 081 * @throws ConfigurationException reports errors in generating a configuration bean 082 */ 083 public DConfigBeanRoot restoreDConfigBean(InputStream inputArchive, DDBeanRoot bean) throws ConfigurationException; 084 085 /** 086 * Save to disk all the configuration beans associated with a particular deployment 087 * descriptor file. The saved data may be fully or partially configured DConfigBeans. 088 * The output file format is recommended to be XML. 089 * 090 * @param outputArchive The output stream to which the DConfigBeans should be saved. 091 * @param bean The top level bean, DConfigBeanRoot, from which to be save. 092 * 093 * @throws ConfigurationException reports errors in storing a configuration bean 094 */ 095 public void saveDConfigBean(OutputStream outputArchive, DConfigBeanRoot bean) throws ConfigurationException; 096 097 /** 098 * Restore from disk to a full set of configuration beans previously stored. 099 * 100 * @param inputArchive The input stream from which to restore the Configuration. 101 * 102 * @throws ConfigurationException reports errors in generating a configuration bean 103 */ 104 public void restore(InputStream inputArchive) throws ConfigurationException; 105 106 /** 107 * Save to disk the current set configuration beans created for this deployable 108 * module. It is recommended the file format be XML. 109 * 110 * @param outputArchive The output stream to which to save the Configuration. 111 * 112 * @throws ConfigurationException reports errors in storing a configuration bean 113 */ 114 public void save(OutputStream outputArchive) throws ConfigurationException; 115 }