1 /*==================================================================== 2 3 OpenCCM: The Open CORBA Component Model Platform 4 Copyright (C) 2000-2004 INRIA - USTL - LIFL - GOAL 5 Contact: openccm@objectweb.org 6 7 This library is free software; you can redistribute it and/or 8 modify it under the terms of the GNU Lesser General Public 9 License as published by the Free Software Foundation; either 10 version 2.1 of the License, or any later version. 11 12 This library 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 library; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 20 USA 21 22 Initial developer(s): Briclet Frédéric. 23 Contributor(s): ______________________________________. 24 25 ====================================================================*/ 26 package org.objectweb.openccm.descriptor.softpkg.ccm; 27 28 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.base.HandlerBase; 29 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.base.InitializationError; 30 import org.objectweb.openccm.descriptor.corbacomponent.ccm.CorbacomponentDeployer; 31 import org.objectweb.openccm.descriptor.softpkg.beans.DescriptorBeanImpl; 32 33 /** 34 * This handler is used to produce descriptor deployer from an 35 * descriptor bean. 36 * 37 * @author <a HREF="mailto:briclet@lifl.fr">Briclet Frédéric</a> 38 * 39 * @version 0.1 40 */ 41 public class DescriptorDeployerHandler 42 extends HandlerBase 43 { 44 // ================================================================== 45 // 46 // Internal state. 47 // 48 // ================================================================== 49 private DescriptorDeployer _deploy; 50 // ================================================================== 51 // 52 // Constructors. 53 // 54 // ================================================================== 55 // ================================================================== 56 // 57 // Internal methods. 58 // 59 // ================================================================== 60 // ================================================================== 61 // 62 // Public methods. 63 // 64 // ================================================================== 65 /** 66 * Produce the descriptor deployer binded 67 * to the given @param comp. 68 * 69 * @param comp The descriptor bean 70 * @return the deployer produced in initialize state 71 * @throws InitializationError thrown if a problem is detected 72 */ 73 public Object 74 getInstance(DescriptorBeanImpl comp) 75 throws InitializationError 76 { 77 if (_deploy == null) { 78 _deploy = new DescriptorDeployer(); 79 _deploy.connectDescriptor(comp); 80 applyCommonConfig(_deploy); 81 82 if (comp.getFileinarchive() != null) 83 _deploy.connectFileinarchiveDeployer( 84 (FileinarchiveDeployer) getDeployer(comp 85 .getFileinarchive())); 86 try { 87 _deploy.initialize(); 88 if (_deploy.getCorbacomponent() != null) 89 _deploy.connectCorbaComponentDeployer( 90 (CorbacomponentDeployer) getDeployer(_deploy 91 .getCorbacomponent())); 92 } catch (CorbaComponentFileLoadingFailureException e) { 93 _deploy.getErrorManager().submitException(e); 94 } 95 96 } 97 return (_deploy); 98 } 99 } 100