You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by jg...@apache.org on 2009/03/17 17:25:49 UTC
svn commit: r755308 - in /servicemix/smx4/nmr/trunk:
assembly/src/main/descriptors/ examples/ examples/interceptors/
examples/interceptors/exchange/ examples/interceptors/exchange/src/
examples/interceptors/exchange/src/main/ examples/interceptors/exch...
Author: jgoodyear
Date: Tue Mar 17 16:25:48 2009
New Revision: 755308
URL: http://svn.apache.org/viewvc?rev=755308&view=rev
Log:
SMX4NMR-129: Adding Exchange Listener Demo
Added:
servicemix/smx4/nmr/trunk/examples/interceptors/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/README.txt (with props)
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/pom.xml
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/examples/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/examples/interceptors/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/examples/interceptors/exchange/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/examples/interceptors/exchange/CustomExchangeListener.java (with props)
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/resources/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/resources/META-INF/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/resources/META-INF/spring/
servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/resources/META-INF/spring/beans.xml
servicemix/smx4/nmr/trunk/examples/interceptors/pom.xml
Modified:
servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/unix-bin.xml
servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/windows-bin.xml
servicemix/smx4/nmr/trunk/examples/pom.xml
Modified: servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/unix-bin.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/unix-bin.xml?rev=755308&r1=755307&r2=755308&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/unix-bin.xml (original)
+++ servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/unix-bin.xml Tue Mar 17 16:25:48 2009
@@ -121,6 +121,14 @@
<fileMode>0644</fileMode>
<lineEnding>unix</lineEnding>
</file>
+
+ <!--filtering README.txt-->
+ <file>
+ <source>../examples/interceptors/exchange/README.txt</source>
+ <outputDirectory>/examples/interceptors/exchange</outputDirectory>
+ <filtered>true</filtered>
+ <lineEnding>unix</lineEnding>
+ </file>
</files>
</assembly>
Modified: servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/windows-bin.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/windows-bin.xml?rev=755308&r1=755307&r2=755308&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/windows-bin.xml (original)
+++ servicemix/smx4/nmr/trunk/assembly/src/main/descriptors/windows-bin.xml Tue Mar 17 16:25:48 2009
@@ -122,6 +122,14 @@
<fileMode>0644</fileMode>
<lineEnding>dos</lineEnding>
</file>
+
+ <!--filtering README.txt-->
+ <file>
+ <source>../examples/interceptors/exchange/README.txt</source>
+ <outputDirectory>/examples/interceptors/exchange</outputDirectory>
+ <filtered>true</filtered>
+ <lineEnding>dos</lineEnding>
+ </file>
</files>
Added: servicemix/smx4/nmr/trunk/examples/interceptors/exchange/README.txt
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/examples/interceptors/exchange/README.txt?rev=755308&view=auto
==============================================================================
--- servicemix/smx4/nmr/trunk/examples/interceptors/exchange/README.txt (added)
+++ servicemix/smx4/nmr/trunk/examples/interceptors/exchange/README.txt Tue Mar 17 16:25:48 2009
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ */
+
+Welcome to the ServiceMix Custom Exchange Listener Example
+==========================================================
+
+Quick steps to install this example
+-------------------------------------
+
+Launch the ServiceMix Kernel by running
+ bin/servicemix
+in the root dir of this distribution.
+
+run:
+ mvn install
+
+Deploy the example on ServiceMix 4:
+
+- using the ServiceMix console:
+ osgi/install -s mvn:org.apache.servicemix.nmr.examples.interceptors/exchange/${version}/jar
+
+Once the bundle is installed it will capture and report to the servicemix
+log the sent and delivered exchanges in the NMR.
+
+Starting and Stopping the Listener:
+
+- using the ServiceMix console:
+ osgi/start BundleID
+ osgi/stop BundleID
+
+Note: Upon installation the Listener will automatically be started.
Propchange: servicemix/smx4/nmr/trunk/examples/interceptors/exchange/README.txt
------------------------------------------------------------------------------
svn:executable = *
Added: servicemix/smx4/nmr/trunk/examples/interceptors/exchange/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/examples/interceptors/exchange/pom.xml?rev=755308&view=auto
==============================================================================
--- servicemix/smx4/nmr/trunk/examples/interceptors/exchange/pom.xml (added)
+++ servicemix/smx4/nmr/trunk/examples/interceptors/exchange/pom.xml Tue Mar 17 16:25:48 2009
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!--
+
+ 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.
+ -->
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.servicemix.nmr.examples</groupId>
+ <artifactId>org.apache.servicemix.nmr.examples.interceptors</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.apache.servicemix.nmr.examples.interceptors</groupId>
+ <artifactId>exchange</artifactId>
+ <packaging>bundle</packaging>
+ <name>Apache ServiceMix NMR Example:: Exchange Listener</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>${commons.logging.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicemix.nmr</groupId>
+ <artifactId>org.apache.servicemix.nmr.api</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+ <Import-Package>
+ org.apache.commons.logging,
+ org.apache.servicemix.nmr.api,
+ org.apache.servicemix.nmr.api.event,
+ org.apache.servicemix.nmr.api.internal
+ </Import-Package>
+ <Private-Package>org.apache.servicemix.nmr.examples.interceptors.exchange</Private-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
Added: servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/examples/interceptors/exchange/CustomExchangeListener.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/examples/interceptors/exchange/CustomExchangeListener.java?rev=755308&view=auto
==============================================================================
--- servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/examples/interceptors/exchange/CustomExchangeListener.java (added)
+++ servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/examples/interceptors/exchange/CustomExchangeListener.java Tue Mar 17 16:25:48 2009
@@ -0,0 +1,76 @@
+package org.apache.servicemix.nmr.examples.interceptors.exchange;
+
+import org.apache.servicemix.nmr.api.Exchange;
+import org.apache.servicemix.nmr.api.Role;
+import org.apache.servicemix.nmr.api.Status;
+import org.apache.servicemix.nmr.api.event.ExchangeListener;
+import org.apache.servicemix.nmr.api.internal.InternalEndpoint;
+import org.apache.servicemix.nmr.api.internal.InternalExchange;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * This listener will be called each time an exchange is sent
+ * or delivered to an endpoint on NMR.
+ */
+public class CustomExchangeListener implements ExchangeListener {
+
+ private static final transient Log LOG = LogFactory.getLog(CustomExchangeListener.class);
+
+ /**
+ * Method called each time an exchange is sent
+ *
+ * @param exchange the exchange sent
+ */
+ public void exchangeSent(Exchange exchange) {
+ try {
+ LOG.info("Sending exchange: " + exchange);
+ // Intercept exchanges
+ if (exchange instanceof InternalExchange &&
+ exchange.getStatus() == Status.Active &&
+ exchange.getRole() == Role.Consumer &&
+ exchange.getOut(false) == null &&
+ exchange.getFault(false) == null) {
+ String id = ((InternalExchange) exchange).getSource().getId();
+ LOG.info("Source endpoint: " + id);
+ }
+ } catch (Throwable t) {
+ LOG.warn("Caught exception while processing exchange: " + t, t);
+ }
+ }
+
+ /**
+ * Method called each time an exchange is delivered
+ *
+ * @param exchange the delivered exchange
+ */
+ public void exchangeDelivered(Exchange exchange) {
+ try {
+ LOG.info("Receiving exchange: " + exchange);
+ if (exchange.getStatus() == Status.Active &&
+ exchange.getRole() == Role.Provider &&
+ exchange.getOut(false) == null &&
+ exchange.getFault(false) == null &&
+ exchange instanceof InternalExchange) {
+ String id = ((InternalExchange) exchange).getDestination().getId();
+ LOG.info("Dest endpoint: " + id);
+ }
+ } catch (Throwable t) {
+ LOG.warn("Caught exception while processing exchange: " + t, t);
+ }
+ }
+
+ /**
+ * Method called when an exchange resulted in an exception to be
+ * thrown and the exchange not delivered. This can happen if no
+ * endpoint can be found for the target or if something else bad
+ * happened.
+ *
+ * @param exchange the exchange that failed
+ */
+ public void exchangeFailed(Exchange exchange) {
+ LOG.info("Exchange Failed: " + exchange);
+ }
+
+}
Propchange: servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/java/org/apache/servicemix/nmr/examples/interceptors/exchange/CustomExchangeListener.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/resources/META-INF/spring/beans.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/resources/META-INF/spring/beans.xml?rev=755308&view=auto
==============================================================================
--- servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/resources/META-INF/spring/beans.xml (added)
+++ servicemix/smx4/nmr/trunk/examples/interceptors/exchange/src/main/resources/META-INF/spring/beans.xml Tue Mar 17 16:25:48 2009
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:osgi="http://www.springframework.org/schema/osgi"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/osgi
+ http://www.springframework.org/schema/osgi/spring-osgi.xsd
+ ">
+
+ <!-- Custome Exchange Listener -->
+ <bean id="CustomExchangeListener" class="org.apache.servicemix.nmr.examples.interceptors.exchange.CustomExchangeListener">
+ </bean>
+
+ <!-- Exchange Listener -->
+ <osgi:service ref="CustomExchangeListener">
+ <osgi:interfaces>
+ <value>org.apache.servicemix.nmr.api.event.ExchangeListener</value>
+ <value>org.apache.servicemix.nmr.api.event.Listener</value>
+ </osgi:interfaces>
+ </osgi:service>
+
+</beans>
Added: servicemix/smx4/nmr/trunk/examples/interceptors/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/examples/interceptors/pom.xml?rev=755308&view=auto
==============================================================================
--- servicemix/smx4/nmr/trunk/examples/interceptors/pom.xml (added)
+++ servicemix/smx4/nmr/trunk/examples/interceptors/pom.xml Tue Mar 17 16:25:48 2009
@@ -0,0 +1,38 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!--
+
+ 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.
+ -->
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.servicemix.nmr.examples</groupId>
+ <artifactId>examples</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.apache.servicemix.nmr.examples</groupId>
+ <artifactId>org.apache.servicemix.nmr.examples.interceptors</artifactId>
+ <packaging>pom</packaging>
+ <name>Apache Servicemix NMR Examples:: Interceptors</name>
+
+ <modules>
+ <module>exchange</module>
+ </modules>
+
+</project>
Modified: servicemix/smx4/nmr/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/examples/pom.xml?rev=755308&r1=755307&r2=755308&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/examples/pom.xml (original)
+++ servicemix/smx4/nmr/trunk/examples/pom.xml Tue Mar 17 16:25:48 2009
@@ -33,6 +33,7 @@
<modules>
<module>cluster</module>
+ <module>interceptors</module>
<module>nmr</module>
</modules>