View Javadoc

1   /**
2    *
3    *  Licensed to the Apache Software Foundation (ASF) under one or more
4    *  contributor license agreements.  See the NOTICE file distributed with
5    *  this work for additional information regarding copyright ownership.
6    *  The ASF licenses this file to You under the Apache License, Version 2.0
7    *  (the "License"); you may not use this file except in compliance with
8    *  the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *  Unless required by applicable law or agreed to in writing, software
13   *  distributed under the License is distributed on an "AS IS" BASIS,
14   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   *  See the License for the specific language governing permissions and
16   *  limitations under the License.
17   */
18  package org.apache.geronimo.j2ee.deployment;
19  
20  import java.io.File;
21  import java.util.Collection;
22  import java.util.HashMap;
23  import java.util.Map;
24  
25  import org.apache.geronimo.common.DeploymentException;
26  import org.apache.geronimo.deployment.DeploymentContext;
27  import org.apache.geronimo.gbean.AbstractName;
28  import org.apache.geronimo.gbean.AbstractNameQuery;
29  import org.apache.geronimo.kernel.Naming;
30  import org.apache.geronimo.kernel.config.ConfigurationManager;
31  import org.apache.geronimo.kernel.config.ConfigurationModuleType;
32  import org.apache.geronimo.kernel.repository.Environment;
33  
34  /**
35   * @version $Rev:386276 $ $Date: 2006-11-02 15:30:55 -0800 (Thu, 02 Nov 2006) $
36   */
37  public class EARContext extends DeploymentContext {
38  
39      private final AbstractNameQuery serverName;
40      private final AbstractNameQuery transactionManagerObjectName;
41      private final AbstractNameQuery connectionTrackerObjectName;
42      private final AbstractNameQuery transactedTimerName;
43      private final AbstractNameQuery nonTransactedTimerName;
44      private final AbstractNameQuery corbaGBeanObjectName;
45  
46      private final Map contextIDToPermissionsMap = new HashMap();
47      private AbstractName jaccManagerName;
48      private Object securityConfiguration;
49  
50      private final Map  messageDestinations = new HashMap();
51  
52      public EARContext(File baseDir,
53              File inPlaceConfigurationDir,
54              Environment environment,
55              ConfigurationModuleType moduleType,
56              Naming naming,
57              ConfigurationManager configurationManager, Collection repositories,
58              AbstractNameQuery serverName,
59              AbstractName baseName,
60              AbstractNameQuery transactionManagerObjectName,
61              AbstractNameQuery connectionTrackerObjectName,
62              AbstractNameQuery transactedTimerName,
63              AbstractNameQuery nonTransactedTimerName,
64              AbstractNameQuery corbaGBeanObjectName
65      ) throws DeploymentException {
66          super(baseDir, inPlaceConfigurationDir, environment, baseName, moduleType, naming, configurationManager, repositories);
67  
68          this.serverName = serverName;
69          this.transactionManagerObjectName = transactionManagerObjectName;
70          this.connectionTrackerObjectName = connectionTrackerObjectName;
71          this.transactedTimerName = transactedTimerName;
72          this.nonTransactedTimerName = nonTransactedTimerName;
73          this.corbaGBeanObjectName = corbaGBeanObjectName;
74      }
75  
76      public EARContext(File baseDir,
77              File inPlaceConfigurationDir,
78              Environment environment,
79              ConfigurationModuleType moduleType,
80              Naming naming,
81              ConfigurationManager configurationManager,
82              AbstractNameQuery serverName,
83              AbstractName baseName,
84              AbstractNameQuery transactionManagerObjectName,
85              AbstractNameQuery connectionTrackerObjectName,
86              AbstractNameQuery transactedTimerName,
87              AbstractNameQuery nonTransactedTimerName,
88              AbstractNameQuery corbaGBeanObjectName
89      ) throws DeploymentException {
90          super(baseDir, inPlaceConfigurationDir, environment, baseName, moduleType, naming, configurationManager);
91  
92          this.serverName = serverName;
93  
94          this.transactionManagerObjectName = transactionManagerObjectName;
95          this.connectionTrackerObjectName = connectionTrackerObjectName;
96          this.transactedTimerName = transactedTimerName;
97          this.nonTransactedTimerName = nonTransactedTimerName;
98          this.corbaGBeanObjectName = corbaGBeanObjectName;
99      }
100 
101     public EARContext(File baseDir, File inPlaceConfigurationDir, Environment environment, ConfigurationModuleType moduleType, AbstractName baseName, EARContext parent) throws DeploymentException {
102         super(baseDir, inPlaceConfigurationDir, environment, baseName, moduleType, parent.getNaming(), parent.getConfigurationManager());
103         this.serverName = parent.getServerName();
104 
105         this.transactionManagerObjectName = parent.getTransactionManagerName();
106         this.connectionTrackerObjectName = parent.getConnectionTrackerName();
107         this.transactedTimerName = parent.getTransactedTimerName();
108         this.nonTransactedTimerName = parent.getNonTransactedTimerName();
109         this.corbaGBeanObjectName = parent.getCORBAGBeanName();
110     }
111 
112     public AbstractNameQuery getServerName() {
113         return serverName;
114     }
115 
116     public AbstractNameQuery getTransactionManagerName() {
117         return transactionManagerObjectName;
118     }
119 
120     public AbstractNameQuery getConnectionTrackerName() {
121         return connectionTrackerObjectName;
122     }
123 
124     public AbstractNameQuery getTransactedTimerName() {
125         return transactedTimerName;
126     }
127 
128     public AbstractNameQuery getNonTransactedTimerName() {
129         return nonTransactedTimerName;
130     }
131 
132     public AbstractNameQuery getCORBAGBeanName() {
133         return corbaGBeanObjectName;
134     }
135 
136     public Map getContextIDToPermissionsMap() {
137         return contextIDToPermissionsMap;
138     }
139 
140     public void addSecurityContext(String contextID, Object componentPermissions) throws DeploymentException {
141         Object old = contextIDToPermissionsMap.put(contextID, componentPermissions);
142         if (old != null) {
143             throw new DeploymentException("Duplicate contextID registered! " + contextID);
144         }
145     }
146 
147     public void setJaccManagerName(AbstractName jaccManagerName) {
148         this.jaccManagerName = jaccManagerName;
149     }
150 
151     public AbstractName getJaccManagerName() {
152         return jaccManagerName;
153     }
154 
155     public void setSecurityConfiguration(Object securityConfiguration) throws DeploymentException {
156         if (this.securityConfiguration != null) {
157             throw new DeploymentException("Only one security configuration allowed per application");
158         }
159         this.securityConfiguration = securityConfiguration;
160     }
161 
162     public Object getSecurityConfiguration() {
163         return securityConfiguration;
164     }
165 
166     public void registerMessageDestionations(String moduleName, Map nameMap) throws DeploymentException {
167         messageDestinations.put(moduleName, nameMap);
168     }
169 
170     public Map getMessageDestinations() {
171         return messageDestinations;
172     }
173 
174 }