001 /**
002 *
003 * Licensed to the Apache Software Foundation (ASF) under one or more
004 * contributor license agreements. See the NOTICE file distributed with
005 * this work for additional information regarding copyright ownership.
006 * The ASF licenses this file to You under the Apache License, Version 2.0
007 * (the "License"); you may not use this file except in compliance with
008 * the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018 package org.apache.geronimo.openejb;
019
020 import java.util.Map;
021 import java.util.Set;
022
023 import org.apache.geronimo.gbean.GBeanInfo;
024 import org.apache.geronimo.gbean.GBeanInfoBuilder;
025 import org.apache.geronimo.gbean.GBeanLifecycle;
026 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
027 import org.apache.geronimo.naming.enc.EnterpriseNamingContext;
028 import org.apache.geronimo.security.jacc.RunAsSource;
029 import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
030 import org.apache.geronimo.connector.outbound.connectiontracking.TrackedConnectionAssociator;
031 import org.apache.geronimo.kernel.Kernel;
032
033 public class EjbDeploymentGBean extends EjbDeployment implements GBeanLifecycle {
034 public EjbDeploymentGBean(String objectName,
035 String deploymentId,
036 String ejbName,
037 String homeInterfaceName,
038 String remoteInterfaceName,
039 String localHomeInterfaceName,
040 String localInterfaceName,
041 String serviceEndpointInterfaceName,
042 String beanClassName,
043 ClassLoader classLoader,
044 boolean securityEnabled,
045 String defaultRole,
046 String runAsRole,
047 RunAsSource runAsSource,
048 Map componentContext,
049 Set unshareableResources,
050 Set applicationManagedSecurityResources,
051 TrackedConnectionAssociator trackedConnectionAssociator,
052 GeronimoTransactionManager transactionManager,
053 OpenEjbSystem openEjbSystem,
054 Kernel kernel) throws Exception {
055 super(objectName,
056 deploymentId,
057 ejbName,
058 homeInterfaceName,
059 remoteInterfaceName,
060 localHomeInterfaceName,
061 localInterfaceName,
062 serviceEndpointInterfaceName,
063 beanClassName,
064 classLoader,
065 securityEnabled,
066 defaultRole,
067 runAsRole,
068 runAsSource,
069 EnterpriseNamingContext.createEnterpriseNamingContext(componentContext, transactionManager, kernel, classLoader),
070 unshareableResources,
071 applicationManagedSecurityResources,
072 trackedConnectionAssociator,
073 openEjbSystem);
074 }
075
076 public void doStart() throws Exception {
077 start();
078 }
079
080 public void doStop() throws Exception {
081 stop();
082 }
083
084 public void doFail() {
085 stop();
086 }
087
088 // do not use this gbean info, instead use StatelessDeploymentGBean, StatefulDeploymentGBean, EntityDeploymentGBean, or MessageDrivenDeploymentGBean
089 static final GBeanInfo GBEAN_INFO;
090
091 static {
092 GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(EjbDeploymentGBean.class, EjbDeploymentGBean.class, NameFactory.STATELESS_SESSION_BEAN);
093
094 infoFactory.addAttribute("objectName", String.class, false);
095 infoFactory.addAttribute("deploymentId", String.class, true);
096 infoFactory.addAttribute("ejbName", String.class, true);
097
098 infoFactory.addAttribute("homeInterfaceName", String.class, true);
099 infoFactory.addAttribute("remoteInterfaceName", String.class, true);
100 infoFactory.addAttribute("localHomeInterfaceName", String.class, true);
101 infoFactory.addAttribute("localInterfaceName", String.class, true);
102 infoFactory.addAttribute("serviceEndpointInterfaceName", String.class, true);
103 infoFactory.addAttribute("beanClassName", String.class, true);
104 infoFactory.addAttribute("classLoader", ClassLoader.class, false);
105
106 infoFactory.addAttribute("securityEnabled", boolean.class, true);
107 infoFactory.addAttribute("defaultRole", String.class, true);
108 infoFactory.addAttribute("runAsRole", String.class, true);
109 infoFactory.addReference("RunAsSource", RunAsSource.class, NameFactory.JACC_MANAGER);
110
111 infoFactory.addAttribute("componentContextMap", Map.class, true);
112
113 infoFactory.addAttribute("unshareableResources", Set.class, true);
114 infoFactory.addAttribute("applicationManagedSecurityResources", Set.class, true);
115 infoFactory.addReference("TrackedConnectionAssociator", TrackedConnectionAssociator.class);
116 infoFactory.addReference("TransactionManager", GeronimoTransactionManager.class);
117
118 infoFactory.addReference("OpenEjbSystem", OpenEjbSystem.class);
119
120 infoFactory.addAttribute("kernel", Kernel.class, false);
121
122 infoFactory.setConstructor(new String[]{
123 "objectName",
124 "deploymentId",
125 "ejbName",
126
127 "homeInterfaceName",
128 "remoteInterfaceName",
129 "localHomeInterfaceName",
130 "localInterfaceName",
131 "serviceEndpointInterfaceName",
132 "beanClassName",
133 "classLoader",
134
135 "securityEnabled",
136 "defaultRole",
137 "runAsRole",
138 "RunAsSource",
139
140 "componentContextMap",
141
142 "unshareableResources",
143 "applicationManagedSecurityResources",
144 "TrackedConnectionAssociator",
145 "TransactionManager",
146
147 "OpenEjbSystem",
148
149 "kernel",
150 });
151
152 GBEAN_INFO = infoFactory.getBeanInfo();
153 }
154 }