179.6. 자체 Camel 코드에 JMX 사용

179.6.1. 관리형 엔드 포인트 등록

Camel 2.0으로 사용가능한
Spring 관리 주석 @ManagedResource 로 끝점을 장식하여 Camel MBeanServer 에 등록할 수 있으므로 JMX를 사용하여 사용자 정의 MBean에 액세스할 수 있습니다.

참고

Camel 2.1 에서는 엔드포인트 이외의 엔드포인트를 적용하도록 변경했지만, 인터페이스 org.apache.camel.spi.ManagementAware 도 구현해야 합니다. 나중에 이에 대해 더 알아보기

예를 들어 관리할 몇 가지 옵션을 정의하는 다음과 같은 사용자 지정 엔드포인트가 있습니다.

@ManagedResource(description = "Our custom managed endpoint")
public class CustomEndpoint extends MockEndpoint implements ManagementAware<CustomEndpoint> {

    public CustomEndpoint(final String endpointUri, final Component component) {
        super(endpointUri, component);
    }

    public Object getManagedObject(CustomEndpoint object) {
        return this;
    }

    public boolean isSingleton() {
        return true;
    }

    protected String createEndpointUri() {
        return "custom";
    }

    @ManagedAttribute
    public String getFoo() {
        return "bar";
    }

    @ManagedAttribute
    public String getEndpointUri() {
        return super.getEndpointUri();
    }
}

Camel 2.9 부터 org.apache.camel.api.management 패키지에서 @ManagedResource,@ManagedAttribute@ManagedOperation 을 사용하는 것이 좋습니다. 이를 통해 사용자 정의 코드는 Spring JAR에 의존하지 않습니다.