001 /**
002 *
003 * Licensed to the Apache Software Foundation (ASF) under one or more
004 * contributor license agreements. See the NOTICE file distributed with
005 * this work for additional information regarding copyright ownership.
006 * The ASF licenses this file to You under the Apache License, Version 2.0
007 * (the "License"); you may not use this file except in compliance with
008 * the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018 package org.apache.camel.management;
019
020 import java.io.IOException;
021
022 import org.apache.camel.Endpoint;
023 import org.apache.camel.Route;
024 import org.springframework.jmx.export.annotation.ManagedAttribute;
025 import org.springframework.jmx.export.annotation.ManagedOperation;
026 import org.springframework.jmx.export.annotation.ManagedResource;
027
028 @ManagedResource(
029 description="Managed Route",
030 currencyTimeLimit=15)
031 public class ManagedRoute{
032
033 public static final String VALUE_UNKNOWN = "Unknown";
034 private Route route;
035
036 ManagedRoute(Route route) {
037 this.route = route;
038 }
039
040 public Route getRoute() {
041 return route;
042 }
043
044 @ManagedAttribute(description = "Route Endpoint Uri")
045 public String getEndpointUri() {
046 Endpoint ep = route.getEndpoint();
047 return ep != null ? ep.getEndpointUri() : VALUE_UNKNOWN;
048 }
049
050 @ManagedOperation(description = "Start Route")
051 public void start() throws IOException {
052 throw new IOException("Not supported");
053 }
054
055 @ManagedOperation(description = "Stop Route")
056 public void stop() throws IOException {
057 throw new IOException("Not supported");
058 }
059 }