diff --git a/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/JmxNamespaceHandler.java b/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/JmxNamespaceHandler.java new file mode 100644 index 0000000000..1855a5cc68 --- /dev/null +++ b/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/JmxNamespaceHandler.java @@ -0,0 +1,33 @@ +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed 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.springframework.integration.jmx.config; + +import org.springframework.integration.config.xml.AbstractIntegrationNamespaceHandler; + +/** + * Namespace handler for Spring Integration's jmx namespace. + * + * @author Mark Fisher + * @since 2.0 + */ +public class JmxNamespaceHandler extends AbstractIntegrationNamespaceHandler { + + public void init() { + this.registerBeanDefinitionParser("operation-invoking-channel-adapter", new OperationInvokingChannelAdapterParser()); + } + +} diff --git a/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/OperationInvokingChannelAdapterParser.java b/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/OperationInvokingChannelAdapterParser.java new file mode 100644 index 0000000000..b191f8aaca --- /dev/null +++ b/org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/OperationInvokingChannelAdapterParser.java @@ -0,0 +1,43 @@ +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed 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.springframework.integration.jmx.config; + +import org.w3c.dom.Element; + +import org.springframework.beans.factory.support.AbstractBeanDefinition; +import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.beans.factory.xml.ParserContext; +import org.springframework.integration.config.xml.AbstractOutboundChannelAdapterParser; +import org.springframework.integration.config.xml.IntegrationNamespaceUtils; + +/** + * @author Mark Fisher + * @since 2.0 + */ +public class OperationInvokingChannelAdapterParser extends AbstractOutboundChannelAdapterParser { + + @Override + protected AbstractBeanDefinition parseConsumer(Element element, ParserContext parserContext) { + BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition( + "org.springframework.integration.jmx.OperationInvokingMessageHandler"); + IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "mbean-server", "server"); + IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "default-object-name"); + IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "default-operation-name"); + return builder.getBeanDefinition(); + } + +} diff --git a/org.springframework.integration.jmx/src/main/resources/META-INF/spring.handlers b/org.springframework.integration.jmx/src/main/resources/META-INF/spring.handlers new file mode 100644 index 0000000000..3f9887e935 --- /dev/null +++ b/org.springframework.integration.jmx/src/main/resources/META-INF/spring.handlers @@ -0,0 +1 @@ +http\://www.springframework.org/schema/integration/jmx=org.springframework.integration.jmx.config.JmxNamespaceHandler \ No newline at end of file diff --git a/org.springframework.integration.jmx/src/main/resources/META-INF/spring.schemas b/org.springframework.integration.jmx/src/main/resources/META-INF/spring.schemas new file mode 100644 index 0000000000..d7c1983d4b --- /dev/null +++ b/org.springframework.integration.jmx/src/main/resources/META-INF/spring.schemas @@ -0,0 +1,2 @@ +http\://www.springframework.org/schema/integration/jmx/spring-integration-jmx-2.0.xsd=org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd +http\://www.springframework.org/schema/integration/jmx/spring-integration-jmx.xsd=org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd \ No newline at end of file diff --git a/org.springframework.integration.jmx/src/main/resources/META-INF/spring.tooling b/org.springframework.integration.jmx/src/main/resources/META-INF/spring.tooling new file mode 100644 index 0000000000..e82f40a94e --- /dev/null +++ b/org.springframework.integration.jmx/src/main/resources/META-INF/spring.tooling @@ -0,0 +1,4 @@ +# Tooling related information for the integration jmx namespace +http\://www.springframework.org/schema/integration/jmx@name=integration jmx Namespace +http\://www.springframework.org/schema/integration/jmx@prefix=int-jmx +#http\://www.springframework.org/schema/integration/jmx@icon=org/springframework/integration/jmx/config/spring-integration-jmx.gif diff --git a/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd b/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd new file mode 100644 index 0000000000..cd3e7e2364 --- /dev/null +++ b/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + Defines an inbound Channel Adapter that polls for JMX attribute values. + + + + + + + + + + + Defines an outbound Channel Adapter for invoking JMX operations. + + + + + + + + + + + + \ No newline at end of file diff --git a/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx.gif b/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx.gif new file mode 100644 index 0000000000..0100631e08 Binary files /dev/null and b/org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx.gif differ