blob: 03a18cfc88aabfbec47f05d11e78b17f5cd1fa41 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional information regarding
* copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License. You may obtain a
* copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.apache.geode.admin.jmx.internal;
import javax.management.ObjectName;
import javax.management.modelmbean.ModelMBean;
import org.apache.geode.admin.AdminException;
import org.apache.geode.admin.internal.SystemMemberBridgeServerImpl;
import org.apache.geode.admin.internal.SystemMemberCacheImpl;
import org.apache.geode.internal.admin.AdminBridgeServer;
import org.apache.geode.internal.admin.GemFireVM;
/**
* MBean representation of a {@link org.apache.geode.admin.SystemMemberBridgeServer}.
*
* @since GemFire 4.0
*/
@Deprecated
public class SystemMemberBridgeServerJmxImpl extends SystemMemberBridgeServerImpl
implements ManagedResource {
/** The object name of this managed resource */
private ObjectName objectName;
/** The name of the MBean that will manage this resource */
private String mbeanName;
/** The ModelMBean that is configured to manage this resource */
private ModelMBean modelMBean;
////////////////////// Constructors //////////////////////
/**
* Creates a new <code>SystemMemberBridgeServerJmxImpl</code> that serves the contents of the
* given cache.
*/
SystemMemberBridgeServerJmxImpl(SystemMemberCacheImpl cache, AdminBridgeServer bridgeInfo)
throws AdminException {
super(cache, bridgeInfo);
initializeMBean(cache);
}
////////////////////// Instance Methods //////////////////////
/**
* Creates and registers the MBean to manage this resource
*/
private void initializeMBean(SystemMemberCacheImpl cache) throws AdminException {
GemFireVM vm = cache.getVM();
mbeanName = "GemFire.Cache:" + "name="
+ MBeanUtils.makeCompliantMBeanNameProperty(cache.getName()) + ",id="
+ getBridgeId() + ",owner="
+ MBeanUtils.makeCompliantMBeanNameProperty(vm.getId().toString())
+ ",type=CacheServer";
objectName = MBeanUtils.createMBean(this);
}
@Override
public String getMBeanName() {
return mbeanName;
}
@Override
public ModelMBean getModelMBean() {
return modelMBean;
}
@Override
public void setModelMBean(ModelMBean modelMBean) {
this.modelMBean = modelMBean;
}
@Override
public ObjectName getObjectName() {
return objectName;
}
@Override
public ManagedResourceType getManagedResourceType() {
return ManagedResourceType.SYSTEM_MEMBER_CACHE_SERVER;
}
@Override
public void cleanupResource() {}
/**
* Checks equality of the given object with <code>this</code> based on the type (Class) and the
* MBean Name returned by <code>getMBeanName()</code> methods.
*
* @param obj object to check equality with
* @return true if the given object is if the same type and its MBean Name is same as
* <code>this</code> object's MBean Name, false otherwise
*/
@Override
public boolean equals(Object obj) {
if (!(obj instanceof SystemMemberBridgeServerJmxImpl)) {
return false;
}
SystemMemberBridgeServerJmxImpl other = (SystemMemberBridgeServerJmxImpl) obj;
return getMBeanName().equals(other.getMBeanName());
}
/**
* Returns hash code for <code>this</code> object which is based on the MBean Name generated.
*
* @return hash code for <code>this</code> object
*/
@Override
public int hashCode() {
return getMBeanName().hashCode();
}
}