001    /**
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  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    package org.apache.geronimo.corba;
018    
019    import java.net.InetSocketAddress;
020    
021    import javax.ejb.spi.HandleDelegate;
022    
023    import org.apache.geronimo.gbean.AbstractName;
024    import org.apache.geronimo.gbean.GBeanInfo;
025    import org.apache.geronimo.gbean.GBeanInfoBuilder;
026    import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
027    import org.apache.geronimo.corba.security.config.ConfigAdapter;
028    import org.apache.geronimo.corba.security.config.ssl.SSLConfig;
029    import org.apache.geronimo.corba.security.config.tss.TSSConfig;
030    import org.apache.geronimo.openejb.OpenEjbSystem; 
031    import org.omg.CORBA.ORB;
032    import org.omg.PortableServer.POA;
033    
034    /**
035     * @version $Revision$ $Date$
036     */
037    public final class CORBABeanGBean {
038    
039        public static final GBeanInfo GBEAN_INFO;
040    
041        static {
042            GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(CORBABeanGBean.class, "OpenEJB ORB Adapter", CORBABean.class, NameFactory.CORBA_SERVICE);
043    
044            infoBuilder.addAttribute("abstractName", AbstractName.class, false);
045            infoBuilder.addAttribute("host", String.class, true);
046            infoBuilder.addAttribute("port", int.class, true);
047            infoBuilder.addAttribute("tssConfig", TSSConfig.class, true);
048    
049            infoBuilder.addAttribute("listenAddress", InetSocketAddress.class, false);
050            infoBuilder.addAttribute("ORB", ORB.class, false);
051            infoBuilder.addAttribute("rootPOA", POA.class, false);
052    
053            infoBuilder.addAttribute("handleDelegate", HandleDelegate.class, false);
054    
055            infoBuilder.addAttribute("classLoader", ClassLoader.class, false);
056    
057            infoBuilder.addReference("ConfigAdapter", ConfigAdapter.class, NameFactory.ORB_CONFIG);
058            infoBuilder.addReference("SSLConfig", SSLConfig.class, NameFactory.CORBA_SSL);
059            infoBuilder.addReference("NameService", NameService.class, NameFactory.CORBA_NAME_SERVICE);
060            infoBuilder.addReference("OpenEjbSystem", OpenEjbSystem.class);
061            
062            infoBuilder.setConstructor(new String[]{"abstractName", "ConfigAdapter", "host", "port", "classLoader", "NameService", "OpenEjbSystem", "SSLConfig"});
063    
064            GBEAN_INFO = infoBuilder.getBeanInfo();
065        }
066    
067        public static GBeanInfo getGBeanInfo() {
068            return GBEAN_INFO;
069        }
070    }