You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by le...@apache.org on 2013/01/14 18:40:13 UTC
svn commit: r1433002 - in /incubator/streams/trunk: ./ streams-eip-routes/
streams-eip-routes/src/main/java/ streams-eip-routes/src/main/java/org/
streams-eip-routes/src/main/java/org/apache/
streams-eip-routes/src/main/java/org/apache/streams/ streams...
Author: letourneau
Date: Mon Jan 14 17:40:12 2013
New Revision: 1433002
URL: http://svn.apache.org/viewvc?rev=1433002&view=rev
Log:
rebasing svn and creating working deployable routes
Added:
incubator/streams/trunk/streams-eip-routes/src/main/java/
incubator/streams/trunk/streams-eip-routes/src/main/java/org/
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/ActivityRouter.java
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/impl/
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/impl/ActivityRouterImpl.java
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/RoutingRule.java
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/impl/
incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/impl/SimpleRoutingRule.java
Modified:
incubator/streams/trunk/pom.xml
incubator/streams/trunk/streams-eip-routes/pom.xml
incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/camelContext.xml
incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/osgi-component-import.xml
incubator/streams/trunk/streams-osgi-components/activity-publisher-registration/osgi.bnd
Modified: incubator/streams/trunk/pom.xml
URL: http://svn.apache.org/viewvc/incubator/streams/trunk/pom.xml?rev=1433002&r1=1433001&r2=1433002&view=diff
==============================================================================
--- incubator/streams/trunk/pom.xml (original)
+++ incubator/streams/trunk/pom.xml Mon Jan 14 17:40:12 2013
@@ -43,9 +43,10 @@
<version>1.5</version>
<extensions>true</extensions>
<configuration>
- <provision>
- <param>--platform=felix</param>
- </provision>
+ <compilerVersion>1.5</compilerVersion>
+ <provision>
+ <param>--platform=felix</param>
+ </provision>
</configuration>
<executions>
</executions>
Modified: incubator/streams/trunk/streams-eip-routes/pom.xml
URL: http://svn.apache.org/viewvc/incubator/streams/trunk/streams-eip-routes/pom.xml?rev=1433002&r1=1433001&r2=1433002&view=diff
==============================================================================
--- incubator/streams/trunk/streams-eip-routes/pom.xml (original)
+++ incubator/streams/trunk/streams-eip-routes/pom.xml Mon Jan 14 17:40:12 2013
@@ -37,9 +37,20 @@
</resources>
<plugins>
<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+
+ <plugin>
<groupId>org.ops4j</groupId>
<artifactId>maven-pax-plugin</artifactId>
<version>1.5</version>
+
<!--
| enable improved OSGi compilation support for the bundle life-cycle.
| to switch back to the standard bundle life-cycle, move this setting
@@ -58,7 +69,9 @@
<instructions>
<Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
<Bundle-Version>${pom.version}</Bundle-Version>
- <Import-Package>org.apache.streams.osgi.components;version="${pom.version}"</Import-Package>
+ <Export-Package>${bundle.namespace};version="${pom.version}"</Export-Package>
+ <Private-Package>${bundle.namespace}.messaging.routers.impl.*,${bundle.namespace}.messaging.rules.impl.*</Private-Package>
+ <Import-Package>org.apache.camel,org.springframework,org.apache.commons.logging,org.apache.streams.messaging.routers, org.apache.streams.messaging.rules,org.apache.streams.osgi-components</Import-Package>
<Include-Resource>src/main/resources</Include-Resource>
</instructions>
</configuration>
@@ -68,12 +81,31 @@
<dependencies>
<dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core</artifactId>
+ <version>2.10.3</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>3.0.5.RELEASE</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>2.0.5</version>
+ </dependency>
+
+ <dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi_R4_core</artifactId>
<version>1.0</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
+
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi_R4_compendium</artifactId>
@@ -81,6 +113,7 @@
<scope>provided</scope>
<optional>true</optional>
</dependency>
+
<dependency>
<groupId>org.apache.streams.osgi-components</groupId>
<artifactId>activity-publisher-registration</artifactId>
Added: incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/ActivityRouter.java
URL: http://svn.apache.org/viewvc/incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/ActivityRouter.java?rev=1433002&view=auto
==============================================================================
--- incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/ActivityRouter.java (added)
+++ incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/ActivityRouter.java Mon Jan 14 17:40:12 2013
@@ -0,0 +1,21 @@
+package org.apache.streams.messaging.routers;
+
+import java.lang.Object;
+import java.lang.String;
+import java.util.Map;
+import org.apache.camel.Properties;
+
+
+
+public interface ActivityRouter {
+
+ /*
+ * Use this method to compute dynamic where we should route next.
+ *
+ * @param body the message body
+ * @return endpoints to go, or <tt>null</tt> to indicate the end
+ */
+ String slip(String body,@Properties Map<String, Object> properties);
+ void addRoutingRules(Map<String,String> rules);
+
+}
Added: incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/impl/ActivityRouterImpl.java
URL: http://svn.apache.org/viewvc/incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/impl/ActivityRouterImpl.java?rev=1433002&view=auto
==============================================================================
--- incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/impl/ActivityRouterImpl.java (added)
+++ incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/routers/impl/ActivityRouterImpl.java Mon Jan 14 17:40:12 2013
@@ -0,0 +1,63 @@
+package org.apache.streams.messaging.routers.impl;
+
+import org.apache.streams.messaging.routers.ActivityRouter;
+
+import java.lang.String;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.ArrayList;
+import org.apache.streams.messaging.rules.RoutingRule;
+
+import org.apache.camel.Properties;
+import org.apache.streams.messaging.rules.impl.SimpleRoutingRule;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+
+public class ActivityRouterImpl implements ActivityRouter {
+ private static final transient Log LOG = LogFactory.getLog(ActivityRouterImpl.class);
+
+ private ArrayList<RoutingRule> routingRules;
+
+ public ActivityRouterImpl(){
+ routingRules = new ArrayList<RoutingRule>();
+ }
+
+ public ActivityRouterImpl(HashMap<String, String> routes){
+ LOG.info(">> setting up routes >>");
+ addRoutingRules(routes);
+ }
+
+ public String slip(String body, @Properties Map<String, Object> properties) {
+
+
+ // get the state from the exchange properties and keep track how many times
+ // we have been invoked
+ int invoked = 0;
+ Object current = properties.get("invoked");
+ if (current != null) {
+ invoked = Integer.valueOf(current.toString());
+ }
+ invoked++;
+ // and store the state back on the properties
+ properties.put("invoked", invoked);
+
+ for(RoutingRule r : routingRules){
+ if (r.isMessageRoutable(body)){
+ return r.getDestination();
+ }
+ }
+
+ // no more so return null
+ return "direct:foo";
+ }
+
+ public void addRoutingRules(@Properties Map<String,String> rules){
+ for(String key : rules.keySet()){
+ LOG.info(key + ">> setting up routes >>" + rules.get(key));
+ routingRules.add(new SimpleRoutingRule(key,rules.get(key)));
+ }
+
+ }
+
+}
Added: incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/RoutingRule.java
URL: http://svn.apache.org/viewvc/incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/RoutingRule.java?rev=1433002&view=auto
==============================================================================
--- incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/RoutingRule.java (added)
+++ incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/RoutingRule.java Mon Jan 14 17:40:12 2013
@@ -0,0 +1,11 @@
+package org.apache.streams.messaging.rules;
+
+
+public interface RoutingRule {
+
+ void setSource(String source);
+ String getSource();
+ void setDestination(String destination);
+ String getDestination();
+ boolean isMessageRoutable(String body);
+}
Added: incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/impl/SimpleRoutingRule.java
URL: http://svn.apache.org/viewvc/incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/impl/SimpleRoutingRule.java?rev=1433002&view=auto
==============================================================================
--- incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/impl/SimpleRoutingRule.java (added)
+++ incubator/streams/trunk/streams-eip-routes/src/main/java/org/apache/streams/messaging/rules/impl/SimpleRoutingRule.java Mon Jan 14 17:40:12 2013
@@ -0,0 +1,36 @@
+package org.apache.streams.messaging.rules.impl;
+
+import org.apache.streams.messaging.rules.RoutingRule;
+
+public class SimpleRoutingRule implements RoutingRule{
+ private String source;
+ private String destination;
+
+ public SimpleRoutingRule(String source, String destination){
+ setSource(source);
+ setDestination(destination);
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getDestination() {
+ return destination;
+ }
+
+ public void setDestination(String destination) {
+ this.destination = destination;
+ }
+
+
+ public boolean isMessageRoutable(String body){
+ if (body!=null){ return true; }
+ return false;
+ }
+
+}
Modified: incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/camelContext.xml
URL: http://svn.apache.org/viewvc/incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/camelContext.xml?rev=1433002&r1=1433001&r2=1433002&view=diff
==============================================================================
--- incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/camelContext.xml (original)
+++ incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/camelContext.xml Mon Jan 14 17:40:12 2013
@@ -12,11 +12,19 @@
+
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="timer://myTimer?fixedRate=true&period=10000"/>
- <bean ref="myTransform" method="transform"/>
+ <dynamicRouter>
+ <method ref="activityRouter" method="slip"/>
+ </dynamicRouter>
+ </route>
+
+ <route>
+ <from uri="direct:foo"/>
+ <bean ref="myTransform" method="transform"/>
<to uri="log:ExampleRouter"/>
</route>
</camelContext>
Modified: incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/osgi-component-import.xml
URL: http://svn.apache.org/viewvc/incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/osgi-component-import.xml?rev=1433002&r1=1433001&r2=1433002&view=diff
==============================================================================
--- incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/osgi-component-import.xml (original)
+++ incubator/streams/trunk/streams-eip-routes/src/main/resources/META-INF/spring/osgi-component-import.xml Mon Jan 14 17:40:12 2013
@@ -9,4 +9,13 @@
<osgi:reference id="myTransform" interface="org.apache.streams.osgi.components.TransformService" />
+ <bean id="activityRouter" class="org.apache.streams.messaging.routers.impl.ActivityRouterImpl">
+
+ <constructor-arg>
+ <map>
+ <entry key="timer://myTimer?fixedRate=true&period=10000" value="direct:foo"/>
+ </map>
+ </constructor-arg>
+ </bean>
+
</beans>
\ No newline at end of file
Modified: incubator/streams/trunk/streams-osgi-components/activity-publisher-registration/osgi.bnd
URL: http://svn.apache.org/viewvc/incubator/streams/trunk/streams-osgi-components/activity-publisher-registration/osgi.bnd?rev=1433002&r1=1433001&r2=1433002&view=diff
==============================================================================
--- incubator/streams/trunk/streams-osgi-components/activity-publisher-registration/osgi.bnd (original)
+++ incubator/streams/trunk/streams-osgi-components/activity-publisher-registration/osgi.bnd Mon Jan 14 17:40:12 2013
@@ -2,4 +2,4 @@
# Use this file to add customized Bnd instructions for the bundle
#-----------------------------------------------------------------
-Bundle-Activator: ${bundle.namespace}.internal.ExampleActivator
+