/** * 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.cxf.management.jmx.export; import javax.management.JMException; import javax.management.ObjectName; import org.apache.cxf.management.ManagedComponent; import org.apache.cxf.management.annotation.ManagedAttribute; import org.apache.cxf.management.annotation.ManagedNotification; import org.apache.cxf.management.annotation.ManagedNotifications; import org.apache.cxf.management.annotation.ManagedOperation; import org.apache.cxf.management.annotation.ManagedOperationParameter; import org.apache.cxf.management.annotation.ManagedOperationParameters; import org.apache.cxf.management.annotation.ManagedResource; @ManagedResource(componentName = "AnnotationTest", description = "My Managed Bean", persistPolicy = "OnUpdate", currencyTimeLimit = 15, log = false, logFile = "jmx.log", persistPeriod = 200, persistLocation = "/local/work", persistName = "bar.jmx") @ManagedNotifications({@ManagedNotification(name = "My Notification", notificationTypes = {"type.foo", "type.bar" }) }) public class AnnotationTestInstrumentation implements ManagedComponent { private String name; private String nickName; private int age; private boolean isSuperman; @ManagedAttribute(description = "The Age Attribute", currencyTimeLimit = 15) public int getAge() { return age; } public void setAge(int a) { this.age = a; } @ManagedOperation(currencyTimeLimit = 30) public long myOperation() { return 1L; } @ManagedAttribute(description = "The Name Attribute", currencyTimeLimit = 20, defaultValue = "bar", persistPolicy = "OnUpdate") public void setName(String n) { this.name = n; } @ManagedAttribute(defaultValue = "bar", persistPeriod = 300) public String getName() { return name; } @ManagedAttribute(defaultValue = "barasd", description = "The Nick Name Attribute") public String getNickName() { return this.nickName; } public void setNickName(String n) { this.nickName = n; } @ManagedAttribute(description = "The Is Superman Attribute") public void setSuperman(boolean superman) { this.isSuperman = superman; } public boolean isSuperman() { return isSuperman; } @ManagedOperation(description = "Add Two Numbers Together") @ManagedOperationParameters({@ManagedOperationParameter( name = "x", description = "Left operand"), @ManagedOperationParameter( name = "y", description = "Right operand") }) public int add(int x, int y) { return x + y; } public ObjectName getObjectName() throws JMException { return new ObjectName("org.apache.cxf:type=AnnotationTestInstrumentation"); } }