From 0885ee15d83fbecb155705b3ba550814e82ce2bd Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 9 Mar 2010 22:55:13 +0000 Subject: [PATCH] INT-793, INT-1015 Adding initial support for JMX namespace and first version of operation-invoking-channel-adapter parser. --- .../jmx/config/JmxNamespaceHandler.java | 33 ++++++++++++ ...OperationInvokingChannelAdapterParser.java | 43 ++++++++++++++++ .../main/resources/META-INF/spring.handlers | 1 + .../main/resources/META-INF/spring.schemas | 2 + .../main/resources/META-INF/spring.tooling | 4 ++ .../jmx/config/spring-integration-jmx-2.0.xsd | 48 ++++++++++++++++++ .../jmx/config/spring-integration-jmx.gif | Bin 0 -> 558 bytes 7 files changed, 131 insertions(+) create mode 100644 org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/JmxNamespaceHandler.java create mode 100644 org.springframework.integration.jmx/src/main/java/org/springframework/integration/jmx/config/OperationInvokingChannelAdapterParser.java create mode 100644 org.springframework.integration.jmx/src/main/resources/META-INF/spring.handlers create mode 100644 org.springframework.integration.jmx/src/main/resources/META-INF/spring.schemas create mode 100644 org.springframework.integration.jmx/src/main/resources/META-INF/spring.tooling create mode 100644 org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-2.0.xsd create mode 100644 org.springframework.integration.jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx.gif 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 0000000000000000000000000000000000000000..0100631e08d98cf2324da4a4511a5138d80318a6 GIT binary patch literal 558 zcmZ?wbhEHb6krfwc*Xz%|NsB*n7XcK>7}_V_Ut}<@$k93DQ(LbZ1QAM7nzl>jq2Z> zHR}+AU(d1o z^3H%&J;4t)7f;Bx?9H@jO)zSVHS9?PL&i&6_b)%ubw zuFpugIVWXip-+~p#>51hDam$MC&ljVN?z9(f4n7RZfnWWhR`Fm!SmBxx0MDQYlzrc z8$vf9Ghg85ZD-oU%+A5iytj>sgNKJh`2It8 tRu-n0SMT3of4EOvOjJOSpYI&k&r40uU%foSA)+w*TgP;L$3_MQYXJJ{p-un* literal 0 HcmV?d00001