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.j2ee.deployment; 019 020 import java.io.File; 021 import java.util.Collection; 022 import java.util.HashMap; 023 import java.util.Map; 024 025 import org.apache.geronimo.common.DeploymentException; 026 import org.apache.geronimo.deployment.DeploymentContext; 027 import org.apache.geronimo.gbean.AbstractName; 028 import org.apache.geronimo.gbean.AbstractNameQuery; 029 import org.apache.geronimo.kernel.Naming; 030 import org.apache.geronimo.kernel.config.ConfigurationManager; 031 import org.apache.geronimo.kernel.config.ConfigurationModuleType; 032 import org.apache.geronimo.kernel.repository.Environment; 033 034 /** 035 * @version $Rev:386276 $ $Date: 2006-11-02 15:30:55 -0800 (Thu, 02 Nov 2006) $ 036 */ 037 public class EARContext extends DeploymentContext { 038 039 private final AbstractNameQuery serverName; 040 private final AbstractNameQuery transactionManagerObjectName; 041 private final AbstractNameQuery connectionTrackerObjectName; 042 private final AbstractNameQuery transactedTimerName; 043 private final AbstractNameQuery nonTransactedTimerName; 044 private final AbstractNameQuery corbaGBeanObjectName; 045 046 private final Map contextIDToPermissionsMap = new HashMap(); 047 private AbstractName jaccManagerName; 048 private Object securityConfiguration; 049 050 private final Map messageDestinations = new HashMap(); 051 052 public EARContext(File baseDir, 053 File inPlaceConfigurationDir, 054 Environment environment, 055 ConfigurationModuleType moduleType, 056 Naming naming, 057 ConfigurationManager configurationManager, Collection repositories, 058 AbstractNameQuery serverName, 059 AbstractName baseName, 060 AbstractNameQuery transactionManagerObjectName, 061 AbstractNameQuery connectionTrackerObjectName, 062 AbstractNameQuery transactedTimerName, 063 AbstractNameQuery nonTransactedTimerName, 064 AbstractNameQuery corbaGBeanObjectName 065 ) throws DeploymentException { 066 super(baseDir, inPlaceConfigurationDir, environment, baseName, moduleType, naming, configurationManager, repositories); 067 068 this.serverName = serverName; 069 this.transactionManagerObjectName = transactionManagerObjectName; 070 this.connectionTrackerObjectName = connectionTrackerObjectName; 071 this.transactedTimerName = transactedTimerName; 072 this.nonTransactedTimerName = nonTransactedTimerName; 073 this.corbaGBeanObjectName = corbaGBeanObjectName; 074 } 075 076 public EARContext(File baseDir, 077 File inPlaceConfigurationDir, 078 Environment environment, 079 ConfigurationModuleType moduleType, 080 Naming naming, 081 ConfigurationManager configurationManager, 082 AbstractNameQuery serverName, 083 AbstractName baseName, 084 AbstractNameQuery transactionManagerObjectName, 085 AbstractNameQuery connectionTrackerObjectName, 086 AbstractNameQuery transactedTimerName, 087 AbstractNameQuery nonTransactedTimerName, 088 AbstractNameQuery corbaGBeanObjectName 089 ) throws DeploymentException { 090 super(baseDir, inPlaceConfigurationDir, environment, baseName, moduleType, naming, configurationManager); 091 092 this.serverName = serverName; 093 094 this.transactionManagerObjectName = transactionManagerObjectName; 095 this.connectionTrackerObjectName = connectionTrackerObjectName; 096 this.transactedTimerName = transactedTimerName; 097 this.nonTransactedTimerName = nonTransactedTimerName; 098 this.corbaGBeanObjectName = corbaGBeanObjectName; 099 } 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 }