1 17 18 package org.apache.geronimo.j2ee.management.impl; 19 20 import java.util.ArrayList ; 21 import java.util.Collection ; 22 import java.util.Hashtable ; 23 import javax.management.ObjectName ; 24 25 import org.apache.geronimo.gbean.GBeanInfo; 26 import org.apache.geronimo.gbean.GBeanInfoBuilder; 27 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; 28 import org.apache.geronimo.kernel.ObjectNameUtil; 29 import org.apache.geronimo.kernel.config.ConfigurationManager; 30 import org.apache.geronimo.kernel.repository.ListableRepository; 31 import org.apache.geronimo.kernel.repository.WritableListableRepository; 32 import org.apache.geronimo.management.AppClientModule; 33 import org.apache.geronimo.management.EJBModule; 34 import org.apache.geronimo.management.J2EEDeployedObject; 35 import org.apache.geronimo.management.J2EEResource; 36 import org.apache.geronimo.management.geronimo.EJBManager; 37 import org.apache.geronimo.management.geronimo.J2EEApplication; 38 import org.apache.geronimo.management.geronimo.J2EEServer; 39 import org.apache.geronimo.management.geronimo.JMSManager; 40 import org.apache.geronimo.management.geronimo.JVM; 41 import org.apache.geronimo.management.geronimo.KeystoreManager; 42 import org.apache.geronimo.management.geronimo.LoginService; 43 import org.apache.geronimo.management.geronimo.ResourceAdapterModule; 44 import org.apache.geronimo.management.geronimo.SecurityRealm; 45 import org.apache.geronimo.management.geronimo.WebManager; 46 import org.apache.geronimo.management.geronimo.WebModule; 47 import org.apache.geronimo.system.serverinfo.ServerInfo; 48 import org.apache.geronimo.system.threads.ThreadPool; 49 import org.apache.geronimo.system.plugin.PluginInstaller; 50 import org.apache.geronimo.system.plugin.PluginRepositoryList; 51 52 55 public class J2EEServerImpl implements J2EEServer { 56 private static final String SERVER_VENDOR = "The Apache Software Foundation"; 57 private final String objectName; 58 private final ServerInfo serverInfo; 59 private final Collection jvms; 60 private final Collection resources; 61 private final Collection j2eeApplications; 62 private final Collection appClientModules; 63 private final Collection webModules; 64 private final Collection ejbModules; 65 private final Collection resourceAdapterModules; 66 private final Collection webManagers; 67 private final Collection ejbManagers; 68 private final Collection jmsManagers; 69 private final Collection threadPools; 70 private final Collection repositories; 71 private final Collection pluginRepoLists; 72 private final Collection writableRepos; 73 private final Collection securityRealms; 74 private final Collection loginServices; 75 private final Collection keystoreManagers; 76 private final PluginInstaller pluginInstaller; 77 private final ConfigurationManager configurationManager; 78 79 public J2EEServerImpl(String objectName, 80 ServerInfo serverInfo, 81 Collection jvms, 82 Collection resources, 83 Collection applications, 84 Collection appClientModules, 85 Collection webModules, 86 Collection ejbModules, 87 Collection resourceAdapterModules, 88 Collection webManagers, 89 Collection ejbManagers, 90 Collection jmsManagers, 91 Collection threadPools, 92 Collection repositories, 93 Collection writableRepos, 94 Collection securityRealms, 95 Collection loginServices, 96 Collection keystoreManagers, 97 PluginInstaller configurationInstaller, 98 ConfigurationManager configurationManager, 99 Collection pluginRepoLists) { 100 101 this.objectName = objectName; 102 ObjectName myObjectName = ObjectNameUtil.getObjectName(this.objectName); 103 verifyObjectName(myObjectName); 104 105 this.serverInfo = serverInfo; 106 this.jvms = jvms; 107 this.resources = resources; 108 109 this.j2eeApplications = applications; 110 this.appClientModules = appClientModules; 111 this.webModules = webModules; 112 this.ejbModules = ejbModules; 113 this.resourceAdapterModules = resourceAdapterModules; 114 115 this.webManagers = webManagers; 116 this.ejbManagers = ejbManagers; 117 this.jmsManagers = jmsManagers; 118 119 this.threadPools = threadPools; 120 this.repositories = repositories; 121 this.writableRepos = writableRepos; 122 this.securityRealms = securityRealms; 123 this.loginServices = loginServices; 124 this.keystoreManagers = keystoreManagers; 125 this.pluginInstaller = configurationInstaller; 126 this.configurationManager = configurationManager; 127 this.pluginRepoLists = pluginRepoLists; 128 } 129 130 public String getObjectName() { 131 return objectName; 132 } 133 134 public boolean isStateManageable() { 135 return true; 136 } 137 138 public boolean isStatisticsProvider() { 139 return false; 140 } 141 142 public boolean isEventProvider() { 143 return true; 144 } 145 146 151 private void verifyObjectName(ObjectName objectName) { 152 if (objectName.isPattern()) { 153 throw new InvalidObjectNameException("ObjectName can not be a pattern", objectName); 154 } 155 Hashtable keyPropertyList = objectName.getKeyPropertyList(); 156 if (!"J2EEServer".equals(keyPropertyList.get("j2eeType"))) { 157 throw new InvalidObjectNameException("J2EEServer object name j2eeType property must be 'J2EEServer'", objectName); 158 } 159 if (!keyPropertyList.containsKey("name")) { 160 throw new InvalidObjectNameException("J2EEServer object must contain a name property", objectName); 161 } 162 if (keyPropertyList.size() != 2) { 163 throw new InvalidObjectNameException("J2EEServer object name can only have j2eeType, and name", objectName); 164 } 165 } 166 167 168 public String [] getDeployedObjects() { 169 return Util.getObjectNames(getDeployedObjectInstances()); 170 } 171 172 public J2EEDeployedObject[] getDeployedObjectInstances() { 173 ArrayList objects = new ArrayList (); 174 if (j2eeApplications != null) { 175 objects.addAll(j2eeApplications); 176 } 177 if (appClientModules != null) { 178 objects.addAll(appClientModules); 179 } 180 if (ejbModules != null) { 181 objects.addAll(ejbModules); 182 } 183 if (webModules != null) { 184 objects.addAll(webModules); 185 } 186 if (resourceAdapterModules != null) { 187 objects.addAll(resourceAdapterModules); 188 } 189 190 return (J2EEDeployedObject[]) objects.toArray(new J2EEDeployedObject[objects.size()]); 191 } 192 193 public String [] getResources() { 194 return Util.getObjectNames(getResourceInstances()); 195 } 196 197 public J2EEResource[] getResourceInstances() { 198 if (resources == null) return new J2EEResource[0]; 199 return (J2EEResource[]) resources.toArray(new J2EEResource[resources.size()]); 200 } 201 202 public String [] getJavaVMs() { 203 return Util.getObjectNames(getJavaVMInstances()); 204 } 205 206 public JVM[] getJavaVMInstances() { 207 if (jvms == null) return new JVM[0]; 208 return (JVM[]) jvms.toArray(new JVM[jvms.size()]); 209 } 210 211 public J2EEApplication[] getApplications() { 212 if (j2eeApplications == null) return new J2EEApplication[0]; 213 return (J2EEApplication[]) j2eeApplications.toArray(new J2EEApplication[j2eeApplications.size()]); 214 } 215 216 public AppClientModule[] getAppClients() { 217 if (appClientModules == null) return new AppClientModule[0]; 218 return (AppClientModule[]) appClientModules.toArray(new AppClientModule[appClientModules.size()]); 219 } 220 221 public WebModule[] getWebModules() { 222 if (webModules == null) return new WebModule[0]; 223 return (WebModule[]) webModules.toArray(new WebModule[webModules.size()]); 224 } 225 226 public EJBModule[] getEJBModules() { 227 if (ejbModules == null) return new EJBModule[0]; 228 return (EJBModule[]) ejbModules.toArray(new EJBModule[ejbModules.size()]); 229 } 230 231 public ResourceAdapterModule[] getResourceAdapterModules() { 232 if (resourceAdapterModules == null) return new ResourceAdapterModule[0]; 233 return (ResourceAdapterModule[]) resourceAdapterModules.toArray(new ResourceAdapterModule[resourceAdapterModules.size()]); 234 } 235 236 237 public WebManager[] getWebManagers() { 238 if (webManagers == null) return new WebManager[0]; 239 return (WebManager[]) webManagers.toArray(new WebManager[webManagers.size()]); 240 } 241 242 public EJBManager[] getEJBManagers() { 243 if (ejbManagers == null) return new EJBManager[0]; 244 return (EJBManager[]) ejbManagers.toArray(new EJBManager[ejbManagers.size()]); 245 } 246 247 public JMSManager[] getJMSManagers() { 248 if (jmsManagers == null) return new JMSManager[0]; 249 return (JMSManager[]) jmsManagers.toArray(new JMSManager[jmsManagers.size()]); 250 } 251 252 public ThreadPool[] getThreadPools() { 253 if (threadPools == null) return new ThreadPool[0]; 254 return (ThreadPool[]) threadPools.toArray(new ThreadPool[threadPools.size()]); 255 } 256 257 public ListableRepository[] getRepositories() { 258 if (repositories == null) return new ListableRepository[0]; 259 return (ListableRepository[]) repositories.toArray(new ListableRepository[repositories.size()]); 260 } 261 262 public WritableListableRepository[] getWritableRepositories() { 263 if (writableRepos == null) return new WritableListableRepository[0]; 264 return (WritableListableRepository[]) writableRepos.toArray(new WritableListableRepository[writableRepos.size()]); 265 } 266 267 public SecurityRealm[] getSecurityRealms() { 268 if (securityRealms == null) return new SecurityRealm[0]; 269 return (SecurityRealm[]) securityRealms.toArray(new SecurityRealm[securityRealms.size()]); 270 } 271 272 public PluginRepositoryList[] getPluginRepositoryLists() { 273 if (pluginRepoLists == null) return new PluginRepositoryList[0]; 274 return (PluginRepositoryList[]) pluginRepoLists.toArray(new PluginRepositoryList[pluginRepoLists.size()]); 275 } 276 277 public ServerInfo getServerInfo() { 278 return serverInfo; 279 } 280 281 public LoginService getLoginService() { 282 if (loginServices == null) return null; 283 return (LoginService) loginServices.iterator().next(); 284 } 285 286 public KeystoreManager getKeystoreManager() { 287 if (keystoreManagers == null) return null; 288 return (KeystoreManager) keystoreManagers.iterator().next(); 289 } 290 291 public PluginInstaller getPluginInstaller() { 292 return pluginInstaller; 293 } 294 295 public ConfigurationManager getConfigurationManager() { 296 return configurationManager; 297 } 298 299 public String getServerVendor() { 300 return SERVER_VENDOR; 301 } 302 303 public String getServerVersion() { 304 return serverInfo.getVersion(); 305 } 306 307 public static final GBeanInfo GBEAN_INFO; 308 309 static { 310 GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(J2EEServerImpl.class, NameFactory.J2EE_SERVER); 311 312 infoFactory.addReference("ServerInfo", ServerInfo.class, NameFactory.GERONIMO_SERVICE); 313 infoFactory.addReference("JVMs", JVM.class, NameFactory.JVM); 314 infoFactory.addReference("Resources", J2EEResource.class); infoFactory.addReference("Applications", J2EEApplication.class, NameFactory.J2EE_APPLICATION); 316 infoFactory.addReference("AppClientModules", AppClientModule.class, NameFactory.APP_CLIENT_MODULE); 317 infoFactory.addReference("WebModules", WebModule.class, NameFactory.WEB_MODULE); 318 infoFactory.addReference("EJBModules", EJBModule.class, NameFactory.EJB_MODULE); 319 infoFactory.addReference("ResourceAdapterModules", ResourceAdapterModule.class, NameFactory.RESOURCE_ADAPTER_MODULE); 320 infoFactory.addReference("WebManagers", WebManager.class); 321 infoFactory.addReference("EJBManagers", EJBManager.class); 322 infoFactory.addReference("JMSManagers", JMSManager.class); 323 infoFactory.addReference("ThreadPools", ThreadPool.class); 324 infoFactory.addReference("Repositories", ListableRepository.class); 325 infoFactory.addReference("WritableRepos", WritableListableRepository.class); 326 infoFactory.addReference("SecurityRealms", SecurityRealm.class); 327 infoFactory.addReference("LoginServices", LoginService.class); 328 infoFactory.addReference("KeystoreManagers", KeystoreManager.class); 329 infoFactory.addReference("PluginInstaller", PluginInstaller.class); 330 infoFactory.addReference("PluginRepoLists", PluginRepositoryList.class); 331 infoFactory.addReference("ConfigurationManager", ConfigurationManager.class); 332 333 infoFactory.setConstructor(new String []{ 334 "objectName", 335 "ServerInfo", 336 "JVMs", 337 "Resources", 338 "Applications", 339 "AppClientModules", 340 "WebModules", 341 "EJBModules", 342 "ResourceAdapterModules", 343 "WebManagers", 344 "EJBManagers", 345 "JMSManagers", 346 "ThreadPools", 347 "Repositories", 348 "WritableRepos", 349 "SecurityRealms", 350 "LoginServices", 351 "KeystoreManagers", 352 "PluginInstaller", 353 "ConfigurationManager", 354 "PluginRepoLists", 355 }); 356 357 GBEAN_INFO = infoFactory.getBeanInfo(); 358 } 359 360 public static GBeanInfo getGBeanInfo() { 361 return GBEAN_INFO; 362 } 363 } 364 | Popular Tags |