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.j2ee.deployment; 018 019 import java.io.File; 020 import java.util.Collection; 021 import java.util.HashMap; 022 import java.util.Map; 023 024 import org.apache.geronimo.common.DeploymentException; 025 import org.apache.geronimo.deployment.DeploymentContext; 026 import org.apache.geronimo.gbean.AbstractName; 027 import org.apache.geronimo.gbean.AbstractNameQuery; 028 import org.apache.geronimo.kernel.Naming; 029 import org.apache.geronimo.kernel.config.ConfigurationManager; 030 import org.apache.geronimo.kernel.config.ConfigurationModuleType; 031 import org.apache.geronimo.kernel.repository.Environment; 032 033 /** 034 * @version $Rev:386276 $ $Date: 2008-10-21 14:44:05 +0000 (Tue, 21 Oct 2008) $ 035 */ 036 public class EARContext extends DeploymentContext { 037 038 private final AbstractNameQuery serverName; 039 private final AbstractNameQuery transactionManagerObjectName; 040 private final AbstractNameQuery connectionTrackerObjectName; 041 private final AbstractNameQuery transactedTimerName; 042 private final AbstractNameQuery nonTransactedTimerName; 043 private final AbstractNameQuery corbaGBeanObjectName; 044 045 private final Map contextIDToPermissionsMap = new HashMap(); 046 private AbstractName jaccManagerName; 047 private Object securityConfiguration; 048 049 private final Map messageDestinations; 050 051 private final Map<Object,Object> generalData = new HashMap<Object,Object>(); 052 053 public EARContext(File baseDir, 054 File inPlaceConfigurationDir, 055 Environment environment, 056 ConfigurationModuleType moduleType, 057 Naming naming, 058 ConfigurationManager configurationManager, 059 Collection repositories, 060 AbstractNameQuery serverName, 061 AbstractName baseName, 062 AbstractNameQuery transactionManagerObjectName, 063 AbstractNameQuery connectionTrackerObjectName, 064 AbstractNameQuery transactedTimerName, 065 AbstractNameQuery nonTransactedTimerName, 066 AbstractNameQuery corbaGBeanObjectName 067 ) throws DeploymentException { 068 super(baseDir, inPlaceConfigurationDir, environment, baseName, moduleType, naming, configurationManager, repositories); 069 070 this.serverName = serverName; 071 this.transactionManagerObjectName = transactionManagerObjectName; 072 this.connectionTrackerObjectName = connectionTrackerObjectName; 073 this.transactedTimerName = transactedTimerName; 074 this.nonTransactedTimerName = nonTransactedTimerName; 075 this.corbaGBeanObjectName = corbaGBeanObjectName; 076 this.messageDestinations = new HashMap(); 077 } 078 079 public EARContext(File baseDir, 080 File inPlaceConfigurationDir, 081 Environment environment, 082 ConfigurationModuleType moduleType, 083 Naming naming, 084 ConfigurationManager configurationManager, 085 AbstractNameQuery serverName, 086 AbstractName baseName, 087 AbstractNameQuery transactionManagerObjectName, 088 AbstractNameQuery connectionTrackerObjectName, 089 AbstractNameQuery transactedTimerName, 090 AbstractNameQuery nonTransactedTimerName, 091 AbstractNameQuery corbaGBeanObjectName, 092 Map messageDestinations) throws DeploymentException { 093 super(baseDir, inPlaceConfigurationDir, environment, baseName, moduleType, naming, configurationManager); 094 095 this.serverName = serverName; 096 097 this.transactionManagerObjectName = transactionManagerObjectName; 098 this.connectionTrackerObjectName = connectionTrackerObjectName; 099 this.transactedTimerName = transactedTimerName; 100 this.nonTransactedTimerName = nonTransactedTimerName; 101 this.corbaGBeanObjectName = corbaGBeanObjectName; 102 this.messageDestinations = messageDestinations; 103 } 104 105 public EARContext(File baseDir, File inPlaceConfigurationDir, Environment environment, ConfigurationModuleType moduleType, AbstractName baseName, EARContext parent) throws DeploymentException { 106 super(baseDir, inPlaceConfigurationDir, environment, baseName, moduleType, parent.getNaming(), parent.getConfigurationManager()); 107 this.serverName = parent.getServerName(); 108 109 this.transactionManagerObjectName = parent.getTransactionManagerName(); 110 this.connectionTrackerObjectName = parent.getConnectionTrackerName(); 111 this.transactedTimerName = parent.getTransactedTimerName(); 112 this.nonTransactedTimerName = parent.getNonTransactedTimerName(); 113 this.corbaGBeanObjectName = parent.getCORBAGBeanName(); 114 this.messageDestinations = new HashMap(); 115 } 116 117 public AbstractNameQuery getServerName() { 118 return serverName; 119 } 120 121 public AbstractNameQuery getTransactionManagerName() { 122 return transactionManagerObjectName; 123 } 124 125 public AbstractNameQuery getConnectionTrackerName() { 126 return connectionTrackerObjectName; 127 } 128 129 public AbstractNameQuery getTransactedTimerName() { 130 return transactedTimerName; 131 } 132 133 public AbstractNameQuery getNonTransactedTimerName() { 134 return nonTransactedTimerName; 135 } 136 137 public AbstractNameQuery getCORBAGBeanName() { 138 return corbaGBeanObjectName; 139 } 140 141 public Map getContextIDToPermissionsMap() { 142 return contextIDToPermissionsMap; 143 } 144 145 public void addSecurityContext(String contextID, Object componentPermissions) throws DeploymentException { 146 Object old = contextIDToPermissionsMap.put(contextID, componentPermissions); 147 if (old != null) { 148 throw new DeploymentException("Duplicate contextID registered! " + contextID); 149 } 150 } 151 152 public void setJaccManagerName(AbstractName jaccManagerName) { 153 this.jaccManagerName = jaccManagerName; 154 } 155 156 public AbstractName getJaccManagerName() { 157 return jaccManagerName; 158 } 159 160 public void setSecurityConfiguration(Object securityConfiguration) throws DeploymentException { 161 if (this.securityConfiguration != null) { 162 throw new DeploymentException("Only one security configuration allowed per application"); 163 } 164 this.securityConfiguration = securityConfiguration; 165 } 166 167 public Object getSecurityConfiguration() { 168 return securityConfiguration; 169 } 170 171 public void registerMessageDestionations(String moduleName, Map nameMap) throws DeploymentException { 172 messageDestinations.put(moduleName, nameMap); 173 } 174 175 public Map getMessageDestinations() { 176 return messageDestinations; 177 } 178 179 public Map<Object,Object> getGeneralData() { 180 return generalData; 181 } 182 }