camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From acosent...@apache.org
Subject [2/2] camel git commit: Added camel-weather docs to Gitbook
Date Thu, 09 Jun 2016 09:47:17 GMT
Added camel-weather docs to Gitbook


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/97d0805f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/97d0805f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/97d0805f

Branch: refs/heads/master
Commit: 97d0805fb727a99ed139faef678e89a6a38c6675
Parents: e1a65fc
Author: Andrea Cosentino <ancosen@gmail.com>
Authored: Thu Jun 9 11:46:44 2016 +0200
Committer: Andrea Cosentino <ancosen@gmail.com>
Committed: Thu Jun 9 11:46:44 2016 +0200

----------------------------------------------------------------------
 .../camel-weather/src/main/docs/weather.adoc    | 177 +++++++++++++++++++
 docs/user-manual/en/SUMMARY.md                  |   1 +
 2 files changed, 178 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/97d0805f/components/camel-weather/src/main/docs/weather.adoc
----------------------------------------------------------------------
diff --git a/components/camel-weather/src/main/docs/weather.adoc b/components/camel-weather/src/main/docs/weather.adoc
new file mode 100644
index 0000000..7eda0d9
--- /dev/null
+++ b/components/camel-weather/src/main/docs/weather.adoc
@@ -0,0 +1,177 @@
+[[Weather-WeatherComponent]]
+Weather Component
+~~~~~~~~~~~~~~~~~
+
+*Available as of Camel 2.12*
+
+The *weather:* component is used for polling weather information from
+http://openweathermap.org[Open Weather Map] - a site that provides free
+global weather and forecast information. The information is returned as
+a json String object.
+
+Camel will poll for updates to the current weather and forecasts once
+per hour by default. It can also be used to query the weather api based
+on the parameters defined on the endpoint which is used as producer.
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-weather</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[Weather-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+---------------------------------
+weather://<unused name>[?options]
+---------------------------------
+
+[[Weather-REMARK]]
+REMARK
+^^^^^^
+
+Since the 9th of October, an Api Key is required to access the
+openweather service. This key is passed as parameter to the URI
+definition of the weather endpoint using the appid paramĀ !
+
+[[Weather-Options]]
+Options
+^^^^^^^
+
+
+// component options: START
+The Weather component has no options.
+// component options: END
+
+
+
+// endpoint options: START
+The Weather component supports 44 endpoint options which are listed below:
+
+{% raw %}
+[width="100%",cols="2s,1,1m,1m,5",options="header"]
+|=======================================================================
+| Name | Group | Default | Java Type | Description
+| name | common |  | String | *Required* The name value is not used.
+| appid | common |  | String | *Required* APPID ID used to authenticate the user connected
to the API Server
+| cnt | common |  | Integer | Number of results to be found
+| headerName | common |  | String | To store the weather result in this header instead of
the message body. This is useable if you want to keep current message body as-is.
+| ids | common |  | String | List of id's of city/stations. You can separate multiple ids
by comma.
+| language | common | en | WeatherLanguage | Language of the response.
+| lat | common |  | String | Latitude of location. You can use lat and lon options instead
of location. For boxed queries this is the bottom latitude.
+| location | common |  | String | If null Camel will try and determine your current location
using the geolocation of your ip address else specify the citycountry. For well known city
names Open Weather Map will determine the best fit but multiple results may be returned. Hence
specifying and country as well will return more accurate data. If you specify current as the
location then the component will try to get the current latitude and longitude and use that
to get the weather details. You can use lat and lon options instead of location.
+| lon | common |  | String | Longitude of location. You can use lat and lon options instead
of location. For boxed queries this is the left longtitude.
+| mode | common | JSON | WeatherMode | The output format of the weather data.
+| period | common |  | String | If null the current weather will be returned else use values
of 5 7 14 days. Only the numeric value for the forecast period is actually parsed so spelling
capitalisation of the time period is up to you (its ignored)
+| rightLon | common |  | String | For boxed queries this is the right longtitude. Needs to
be used in combination with topLat and zoom.
+| topLat | common |  | String | For boxed queries this is the top latitude. Needs to be used
in combination with rightLon and zoom.
+| units | common |  | WeatherUnits | The units for temperature measurement.
+| weatherApi | common |  | WeatherApi | The API to be use (current forecast/3 hour forecast
daily station)
+| zip | common |  | String | Zip-code e.g. 94040us
+| zoom | common |  | Integer | For boxed queries this is the zoom. Needs to be used in combination
with rightLon and topLat.
+| bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the
Camel routing Error Handler which mean any exceptions occurred while the consumer is trying
to pickup incoming messages or the likes will now be processed as a message and handled by
the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler
to deal with exceptions that will be logged at WARN/ERROR level and ignored.
+| sendEmptyMessageWhenIdle | consumer | false | boolean | If the polling consumer did not
poll any files you can enable this option to send an empty message (no body) instead.
+| exceptionHandler | consumer (advanced) |  | ExceptionHandler | To let the consumer use
a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options
is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR
level and ignored.
+| pollStrategy | consumer (advanced) |  | PollingConsumerPollStrategy | A pluggable org.apache.camel.PollingConsumerPollingStrategy
allowing you to provide your custom implementation to control error handling usually occurred
during the poll operation before an Exchange have been created and being routed in Camel.
+| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern
when creating an exchange
+| httpConnectionManager | advanced |  | HttpConnectionManager | To use a custom HttpConnectionManager
to manage connections
+| synchronous | advanced | false | boolean | Sets whether synchronous processing should be
strictly used or Camel is allowed to use asynchronous processing (if supported).
+| backoffErrorThreshold | scheduler |  | int | The number of subsequent error polls (failed
due some error) that should happen before the backoffMultipler should kick-in.
+| backoffIdleThreshold | scheduler |  | int | The number of subsequent idle polls that should
happen before the backoffMultipler should kick-in.
+| backoffMultiplier | scheduler |  | int | To let the scheduled polling consumer backoff
if there has been a number of subsequent idles/errors in a row. The multiplier is then the
number of polls that will be skipped before the next actual attempt is happening again. When
this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be
configured.
+| delay | scheduler | 500 | long | Milliseconds before the next poll. You can also specify
time values using units such as 60s (60 seconds) 5m30s (5 minutes and 30 seconds) and 1h (1
hour).
+| greedy | scheduler | false | boolean | If greedy is enabled then the ScheduledPollConsumer
will run immediately again if the previous run polled 1 or more messages.
+| initialDelay | scheduler | 1000 | long | Milliseconds before the first poll starts. You
can also specify time values using units such as 60s (60 seconds) 5m30s (5 minutes and 30
seconds) and 1h (1 hour).
+| runLoggingLevel | scheduler | TRACE | LoggingLevel | The consumer logs a start/complete
log line when it polls. This option allows you to configure the logging level for that.
+| scheduledExecutorService | scheduler |  | ScheduledExecutorService | Allows for configuring
a custom/shared thread pool to use for the consumer. By default each consumer has its own
single threaded thread pool.
+| scheduler | scheduler | none | ScheduledPollConsumerScheduler | To use a cron scheduler
from either camel-spring or camel-quartz2 component
+| schedulerProperties | scheduler |  | Map | To configure additional properties when using
a custom scheduler or any of the Quartz2 Spring based scheduler.
+| startScheduler | scheduler | true | boolean | Whether the scheduler should be auto started.
+| timeUnit | scheduler | MILLISECONDS | TimeUnit | Time unit for initialDelay and delay options.
+| useFixedDelay | scheduler | true | boolean | Controls if fixed delay or fixed rate is used.
See ScheduledExecutorService in JDK for details.
+| proxyAuthDomain | proxy |  | String | Domain for proxy NTLM authentication
+| proxyAuthHost | proxy |  | String | Optional host for proxy NTLM authentication
+| proxyAuthMethod | proxy |  | String | Authentication method for proxy either as Basic Digest
or NTLM.
+| proxyAuthPassword | proxy |  | String | Password for proxy authentication
+| proxyAuthUsername | proxy |  | String | Username for proxy authentication
+| proxyHost | proxy |  | String | The proxy host name
+| proxyPort | proxy |  | Integer | The proxy port number
+|=======================================================================
+{% endraw %}
+// endpoint options: END
+
+
+You can append query options to the URI in the following format,
+`?option=value&option=value&...`
+
+[[Weather-Exchangedataformat]]
+Exchange data format
+^^^^^^^^^^^^^^^^^^^^
+
+Camel will deliver the body as a json formatted java.lang.String (see
+the `mode` option above).
+
+[[Weather-MessageHeaders]]
+Message Headers
+^^^^^^^^^^^^^^^
+
+[width="100%",cols="10%,90%",options="header",]
+|=======================================================================
+|Header |Description
+
+|`CamelWeatherQuery` |The original query URL sent to the Open Weather Map site
+
+|`CamelWeatherLocation` |Used by the producer to override the endpoint location and use the
+location from this header instead.
+|=======================================================================
+
+[[Weather-Samples]]
+Samples
+^^^^^^^
+
+In this sample we find the 7 day weather forecast for Madrid, Spain:
+
+[source,java]
+---------------------------------------------------------------------------------------------
+from("weather:foo?location=Madrid,Spain&period=7 days&appid=APIKEY").to("jms:queue:weather");
+---------------------------------------------------------------------------------------------
+
+To just find the current weather for your current location you can use
+this:
+
+[source,java]
+---------------------------------------------------------
+from("weather:foo?appid=APIKEY").to("jms:queue:weather");
+---------------------------------------------------------
+
+And to find the weather using the producer we do:
+
+[source,java]
+--------------------------------------------------------
+from("direct:start")
+  .to("weather:foo?location=Madrid,Spain&appid=APIKEY");
+--------------------------------------------------------
+
+And we can send in a message with a header to get the weather for any
+location as shown:
+
+[source,java]
+-------------------------------------------------------------------------------------------------------------------------------------
+  String json = template.requestBodyAndHeader("direct:start", "", "CamelWeatherLocation",
"Paris,France&appid=APIKEY", String.class);
+-------------------------------------------------------------------------------------------------------------------------------------
+
+And to get the weather at the current location, then:
+
+[source,java]
+--------------------------------------------------------------------------------------------------------------------------------
+  String json = template.requestBodyAndHeader("direct:start", "", "CamelWeatherLocation",
"current&appid=APIKEY", String.class);
+--------------------------------------------------------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/camel/blob/97d0805f/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index 3e1ce21..b4ed063 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -270,6 +270,7 @@
     * [URLRewrite](urlrewrite.adoc)
     * [Velocity](velocity.adoc)
     * [Vertx](vertx.adoc)
+    * [Weather](weather.adoc)
     * [Websocket](websocket.adoc)
     * [XML Security](xmlsecurity.adoc)
     * [Yammer](yammer.adoc)


Mime
View raw message