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.j2eeobjectnames; 018 019 import javax.management.ObjectName; 020 021 /** 022 * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $ 023 */ 024 public class J2eeContextImpl implements J2eeContext { 025 026 private final String domainName; 027 private final String serverName; 028 private final String applicationName; 029 private final String moduleType; 030 private final String moduleName; 031 private final String j2eeName; 032 private final String j2eeType; 033 034 public J2eeContextImpl(String domainName, String serverName, String applicationName, String moduleType, String moduleName, String j2eeName, String j2eeType) { 035 this.domainName = domainName; 036 this.serverName = serverName; 037 this.applicationName = applicationName; 038 this.moduleType = moduleType; 039 this.moduleName = moduleName; 040 this.j2eeName = j2eeName; 041 this.j2eeType = j2eeType; 042 } 043 044 public static J2eeContextImpl newContext(ObjectName source, String moduleType) { 045 return new J2eeContextImpl(source.getDomain(), 046 source.getKeyProperty(NameFactory.J2EE_SERVER), 047 source.getKeyProperty(NameFactory.J2EE_APPLICATION), 048 moduleType, 049 source.getKeyProperty(moduleType), // <-- This might be wrong!!! GERONIMO-1140 050 source.getKeyProperty(NameFactory.J2EE_NAME), 051 source.getKeyProperty(NameFactory.J2EE_TYPE)); 052 } 053 054 /** 055 * This method is a workaround for GERONIMO-1140 -- it's the same as the 056 * previous one except for the offending line. If this is determined to 057 * be a valid change in general, this can replace newContext(ObjectName, String) 058 * However, I'm not 100% sure that it's OK to have the J2EE_NAME in two 059 * consecutive parameters in the general case. 060 */ 061 public static J2eeContextImpl newModuleContext(ObjectName source, String moduleType) { 062 return new J2eeContextImpl(source.getDomain(), 063 source.getKeyProperty(NameFactory.J2EE_SERVER), 064 source.getKeyProperty(NameFactory.J2EE_APPLICATION), 065 moduleType, 066 source.getKeyProperty(NameFactory.J2EE_NAME), 067 source.getKeyProperty(NameFactory.J2EE_NAME), 068 source.getKeyProperty(NameFactory.J2EE_TYPE)); 069 } 070 071 public static J2eeContextImpl newModuleContextFromApplication(ObjectName source, String moduleType, String moduleName) { 072 return new J2eeContextImpl(source.getDomain(), 073 source.getKeyProperty(NameFactory.J2EE_SERVER), 074 source.getKeyProperty(NameFactory.J2EE_NAME), //application name in module is name key property in application's object name 075 moduleType, 076 moduleName, 077 null, 078 null); 079 } 080 081 public static J2eeContextImpl newModuleContextFromApplication(J2eeContext source, String moduleType, String moduleName) { 082 return new J2eeContextImpl(source.getJ2eeDomainName(), 083 source.getJ2eeServerName(), 084 source.getJ2eeApplicationName(), 085 moduleType, 086 moduleName, 087 null, 088 null); 089 } 090 091 public String getJ2eeDomainName() { 092 return domainName; 093 } 094 095 public String getJ2eeServerName() { 096 return serverName; 097 } 098 099 public String getJ2eeApplicationName() { 100 return applicationName; 101 } 102 103 public String getJ2eeModuleType() { 104 return moduleType; 105 } 106 107 public String getJ2eeModuleName() { 108 return moduleName; 109 } 110 111 public String getJ2eeName() { 112 return j2eeName; 113 } 114 115 public String getJ2eeType() { 116 return j2eeType; 117 } 118 119 public String getJ2eeDomainName(String override) { 120 return override == null ? domainName : override; 121 } 122 123 public String getJ2eeServerName(String override) { 124 return override == null ? serverName : override; 125 } 126 127 public String getJ2eeApplicationName(String override) { 128 return override == null ? applicationName : override; 129 } 130 131 public String getJ2eeModuleType(String override) { 132 return override == null ? moduleType : override; 133 } 134 135 public String getJ2eeModuleName(String override) { 136 return override == null ? moduleName : override; 137 } 138 139 //most likely the last 2 don't make any sense. 140 public String getJ2eeName(String override) { 141 return override == null ? j2eeName : override; 142 } 143 144 public String getJ2eeType(String override) { 145 return override == null ? j2eeType : override; 146 } 147 }