001: /*
002: * JBoss, Home of Professional Open Source.
003: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
004: * as indicated by the @author tags. See the copyright.txt file in the
005: * distribution for a full listing of individual contributors.
006: *
007: * This is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU Lesser General Public License as
009: * published by the Free Software Foundation; either version 2.1 of
010: * the License, or (at your option) any later version.
011: *
012: * This software is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this software; if not, write to the Free
019: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
021: */
022: package test.compliance.registration.support;
023:
024: import javax.management.MBeanRegistration;
025: import javax.management.ObjectName;
026: import javax.management.MBeanServer;
027:
028: public class RegistrationAware implements RegistrationAwareMBean,
029: MBeanRegistration {
030: private String something;
031:
032: private boolean preRegisterCalled = false;
033: private boolean preDeRegisterCalled = false;
034: private boolean postRegisterCalled = false;
035: private boolean postDeRegisterCalled = false;
036: private boolean postRegisterRegistrationDone = false;
037:
038: private MBeanServer registeredServer = null;
039: private ObjectName registeredObjectName = null;
040:
041: private Exception exceptionOnPreRegister = null;
042: private Exception exceptionOnPreDeRegister = null;
043:
044: private ObjectName alternateObjectName = null;
045: private boolean returnAlternateObjectName = false;
046:
047: public RegistrationAware() {
048: }
049:
050: public void setSomething(String something) {
051: this .something = something;
052: }
053:
054: public String getSomething() {
055: return something;
056: }
057:
058: public ObjectName preRegister(MBeanServer server, ObjectName name)
059: throws Exception {
060: preRegisterCalled = true;
061: registeredServer = server;
062: registeredObjectName = name;
063:
064: if (null != exceptionOnPreRegister) {
065: exceptionOnPreRegister.fillInStackTrace();
066: throw exceptionOnPreRegister;
067: }
068:
069: if (returnAlternateObjectName) {
070: return alternateObjectName;
071: }
072:
073: return name;
074: }
075:
076: // MBeanRegistration impl -------------------------------------
077: public void postRegister(Boolean registrationDone) {
078: postRegisterCalled = true;
079: postRegisterRegistrationDone = registrationDone.booleanValue();
080: }
081:
082: public void preDeregister() throws Exception {
083: preDeRegisterCalled = true;
084:
085: if (null != exceptionOnPreDeRegister) {
086: exceptionOnPreDeRegister.fillInStackTrace();
087: throw exceptionOnPreDeRegister;
088: }
089: }
090:
091: public void postDeregister() {
092: postDeRegisterCalled = true;
093: }
094:
095: // Settings setters -------------------------------------------
096: public void setExceptionOnPreRegister(
097: Exception exceptionOnPreRegister) {
098: this .exceptionOnPreRegister = exceptionOnPreRegister;
099: }
100:
101: public void setExceptionOnPreDeRegister(
102: Exception exceptionOnPreDeRegister) {
103: this .exceptionOnPreDeRegister = exceptionOnPreDeRegister;
104: }
105:
106: public void setAlternateObjectName(ObjectName alternateObjectName) {
107: this .returnAlternateObjectName = true;
108: this .alternateObjectName = alternateObjectName;
109: }
110:
111: // Status getters ---------------------------------------------
112: public boolean isPreRegisterCalled() {
113: return preRegisterCalled;
114: }
115:
116: public boolean isPreDeRegisterCalled() {
117: return preDeRegisterCalled;
118: }
119:
120: public boolean isPostRegisterCalled() {
121: return postRegisterCalled;
122: }
123:
124: public boolean isPostDeRegisterCalled() {
125: return postDeRegisterCalled;
126: }
127:
128: public boolean isPostRegisterRegistrationDone() {
129: return postRegisterRegistrationDone;
130: }
131:
132: public MBeanServer getRegisteredServer() {
133: return registeredServer;
134: }
135:
136: public ObjectName getRegisteredObjectName() {
137: return registeredObjectName;
138: }
139: }
|