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 018 package org.apache.geronimo.console.jmsmanager; 019 020 import java.util.Map; 021 022 import javax.jms.Queue; 023 import javax.jms.Topic; 024 025 import org.apache.geronimo.gbean.AbstractName; 026 import org.apache.geronimo.gbean.AbstractNameQuery; 027 import org.apache.geronimo.gbean.GBeanData; 028 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; 029 import org.apache.geronimo.kernel.GBeanNotFoundException; 030 import org.apache.geronimo.kernel.Kernel; 031 import org.apache.geronimo.kernel.KernelRegistry; 032 import org.apache.geronimo.kernel.config.Configuration; 033 import org.apache.geronimo.kernel.config.ConfigurationManager; 034 import org.apache.geronimo.kernel.config.ConfigurationUtil; 035 import org.apache.geronimo.kernel.repository.Artifact; 036 037 public abstract class AbstractJMSManager { 038 039 protected static final Artifact ACTIVEMQ_BROKER_ARTIFACT = new Artifact("geronimo", "activemq-broker", org.apache.geronimo.system.serverinfo.ServerConstants.getVersion(), "car"); 040 protected static final Artifact ACTIVEMQ_ARTIFACT = new Artifact("geronimo", "activemq", org.apache.geronimo.system.serverinfo.ServerConstants.getVersion(), "car"); 041 protected static final Kernel kernel = KernelRegistry.getSingleKernel(); 042 043 protected static final ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel); 044 protected final Configuration BROKER_CONFIGURATION = configurationManager.getConfiguration(ACTIVEMQ_BROKER_ARTIFACT); 045 protected final Configuration CONNECTOR_CONFIGURATION = configurationManager.getConfiguration(ACTIVEMQ_ARTIFACT); 046 047 private static final AbstractName earName = kernel.getNaming().createRootName(ACTIVEMQ_ARTIFACT, NameFactory.NULL, NameFactory.J2EE_APPLICATION); 048 protected static final AbstractName RESOURCE_ADAPTER_MODULE_NAME = kernel.getNaming().createChildName(earName, ACTIVEMQ_ARTIFACT.toString(), NameFactory.RESOURCE_ADAPTER_MODULE); 049 protected static final AbstractName RESOURCE_ADAPTER_NAME = kernel.getNaming().createChildName(RESOURCE_ADAPTER_MODULE_NAME, ACTIVEMQ_ARTIFACT.toString(), NameFactory.RESOURCE_ADAPTER); 050 protected static final AbstractName JCA_RESOURCE_NAME = kernel.getNaming().createChildName(RESOURCE_ADAPTER_NAME, ACTIVEMQ_ARTIFACT.toString(), NameFactory.JCA_RESOURCE); 051 protected static final AbstractName JCA_CONNECTION_FACTORY_NAME = kernel.getNaming().createChildName(JCA_RESOURCE_NAME, "DefaultActiveMQConnectionFactory", NameFactory.JCA_CONNECTION_FACTORY); 052 protected static final AbstractName JCA_MANAGED_CONNECTION_FACTORY_NAME = kernel.getNaming().createChildName(JCA_CONNECTION_FACTORY_NAME, "DefaultActiveMQConnectionFactory", NameFactory.JCA_MANAGED_CONNECTION_FACTORY); 053 054 055 protected static final String GET_BROKER_ADMIN_FUNCTION = "getBrokerAdmin"; 056 057 public static final String TOPIC_TYPE = "Topic"; 058 059 public static final String QUEUE_TYPE = "Queue"; 060 061 //ViewDestinations attribute names 062 protected static final String DESTINATION_LIST = "destinations"; 063 064 protected static final String DESTINATION_MSG = "destinationsMsg"; 065 066 //CreateDestinations attribute names 067 protected static final String DESTINATION_NAME = "destinationMessageDestinationName"; 068 069 protected static final String DESTINATION_PHYSICAL_NAME = "destinationPhysicalName"; 070 071 protected static final String DESTINATION_TYPE = "destinationType"; 072 073 protected static final String DESTINATION_APPLICATION_NAME = "destinationApplicationName"; 074 075 protected static final String DESTINATION_MODULE_NAME = "destinationModuleName"; 076 077 protected static final String DESTINATION_CONFIG_URI = "destinationConfigURI"; 078 079 protected static Object[] no_args = new Object[0]; 080 081 protected static String[] no_params = new String[0]; 082 083 084 protected static final String BASE_CONFIG_URI = "runtimedestination/"; 085 086 protected GBeanData getResourceAdapterModuleData() throws GBeanNotFoundException { 087 return CONNECTOR_CONFIGURATION.findGBeanData(new AbstractNameQuery(RESOURCE_ADAPTER_MODULE_NAME)); 088 } 089 090 protected GBeanData getQueueGBeanData() throws GBeanNotFoundException { 091 GBeanData moduleData = getResourceAdapterModuleData(); 092 Map adminObjects = (Map) moduleData.getAttribute("adminObjectInfoMap"); 093 GBeanData queueData = (GBeanData) adminObjects.get(Queue.class.getName()); 094 return new GBeanData(queueData); 095 } 096 097 protected GBeanData getTopicGBeanData() throws GBeanNotFoundException { 098 GBeanData moduleData = getResourceAdapterModuleData(); 099 Map adminObjects = (Map) moduleData.getAttribute("adminObjectInfoMap"); 100 GBeanData queueData = (GBeanData) adminObjects.get(Topic.class.getName()); 101 return new GBeanData(queueData); 102 } 103 104 // protected ObjectName mBeanName; 105 106 // public static final ObjectName DESTINATION_QUERY; 107 108 // public static final ObjectName ACTIVEMQJCA_RESOURCE_QUERY; 109 110 // public static final String ACTIVEMQJCA_RESOURCE; 111 112 // static { 113 // try { 114 // 115 // DESTINATION_QUERY = ObjectName 116 // .getInstance("geronimo.server:j2eeType=" 117 // + NameFactory.JCA_ADMIN_OBJECT + ",*"); 118 // ACTIVEMQJCA_RESOURCE_QUERY = ObjectName 119 // .getInstance("*:j2eeType=JCAManagedConnectionFactory,name=DefaultActiveMQConnectionFactory,*"); 120 // ACTIVEMQJCA_RESOURCE = getActiveMQJCA_RESOURCE(ACTIVEMQJCA_RESOURCE_QUERY); 121 // 122 // if (null == ACTIVEMQJCA_RESOURCE) { 123 // throw new RuntimeException( 124 // "No JCA resource was found for DefaultActiveMQConnectionFactory"); 125 // } 126 // 127 // } catch (MalformedObjectNameException e) { 128 // throw new RuntimeException(e); 129 // } 130 // } 131 // 132 // public static final J2eeContext baseContext = new J2eeContextImpl( 133 // "geronimo.server", "geronimo", "null", ACTIVEMQJCA_RESOURCE, null, 134 // null, NameFactory.JCA_ADMIN_OBJECT); 135 // 136 /** 137 * Get the JCA resource name of the activemq bean. 138 * 139 * @return JCA resource name 140 */ 141 // public static String getActiveMQJCA_RESOURCE(ObjectName obj) { 142 // 143 // Set modules = kernel.listGBeans(obj); 144 // 145 // String JCA_Resource = null; 146 // 147 // for (Iterator iterator = modules.iterator(); iterator.hasNext();) { 148 // ObjectName activemqObject = (ObjectName) iterator.next(); 149 // JCA_Resource = activemqObject 150 // .getKeyProperty(NameFactory.JCA_RESOURCE); 151 // } 152 // 153 // return JCA_Resource; 154 // } 155 156 }