Java tutorial
/** * 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. */ package de.taimos.camel_cosm; import org.apache.camel.Exchange; import org.apache.camel.RuntimeCamelException; import org.apache.camel.impl.DefaultProducer; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPut; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * The Pachube producer. */ public class CosmProducer extends DefaultProducer { private static final transient Logger LOG = LoggerFactory.getLogger(CosmProducer.class); private final CosmEndpoint endpoint; private final String url; /** * @param endpoint */ public CosmProducer(CosmEndpoint endpoint) { super(endpoint); this.endpoint = endpoint; this.url = "http://api.cosm.com/v2/feeds/" + endpoint.getFeed() + "/datastreams/" + endpoint.getDatastream(); CosmProducer.LOG.info(this.url); } @Override public void process(Exchange exchange) throws Exception { String key = this.endpoint.getApiKey(); final String keyHeader = exchange.getIn().getHeader("CosmKey", String.class); if (keyHeader != null) { key = keyHeader; } if (key == null) { throw new RuntimeCamelException("No ApiKey present!"); } final HttpClient httpclient = new DefaultHttpClient(); final HttpPut put = new HttpPut(this.url); put.setHeader("X-PachubeApiKey", key); put.setEntity(new StringEntity(exchange.getIn().getBody(String.class))); final HttpResponse response = httpclient.execute(put); final int statusCode = response.getStatusLine().getStatusCode(); if (statusCode >= 400) { throw new RuntimeCamelException("Error: " + response.getStatusLine().getReasonPhrase()); } CosmProducer.LOG.info(response.toString()); } }