<?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.

-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
           http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

  <!-- CamelContext with the twitter websocket example -->
  <camelContext id="twitter-camel" xmlns="http://camel.apache.org/schema/blueprint">

    <!-- use properties files for twitter codes -->
    <propertyPlaceholder id="placeholder" location="classpath:twitter.properties"/>

    <route id="twitter-route">
      <!-- consume from twitter search to get new tweets about gaga every 5th second -->
      <from uri="twitter-search://gaga?type=polling&amp;delay=6000
        &amp;accessToken={{access.token}}&amp;accessTokenSecret={{access.token-secret}}&amp;consumerKey={{consumer.key}}&amp;consumerSecret={{consumer.secret}}"/>

      <!-- log tweet to the log -->
      <to uri="log:tweet"/>

      <!-- and send tweet to the websocket component so its viewable in the web page -->
      <to uri="websocket://localhost:9090/camel-tweet?sendToAll=true&amp;staticResources=classpath:webapp"/>
    </route>

  </camelContext>

</blueprint>
