Author: boday Date: Fri Mar 9 00:15:22 2012 New Revision: 1298664 URL: http://svn.apache.org/viewvc?rev=1298664&view=rev Log: CAMEL-5071 revised the solr msg detection logic to be more efficient and changed camel-spring-test dependency to camel-test
Modified: camel/branches/camel-2.9.x/components/camel-solr/pom.xml camel/branches/camel-2.9.x/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrProducer.java Modified: camel/branches/camel-2.9.x/components/camel-solr/pom.xml URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-solr/pom.xml?rev=1298664&r1=1298663&r2=1298664&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-solr/pom.xml (original) +++ camel/branches/camel-2.9.x/components/camel-solr/pom.xml Fri Mar 9 00:15:22 2012 @@ -64,7 +64,7 @@ <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-test-spring</artifactId> + <artifactId>camel-test</artifactId> <scope>test</scope> </dependency> Modified: camel/branches/camel-2.9.x/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrProducer.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrProducer.java?rev=1298664&r1=1298663&r2=1298664&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrProducer.java (original) +++ camel/branches/camel-2.9.x/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrProducer.java Fri Mar 9 00:15:22 2012 @@ -74,12 +74,6 @@ public class SolrProducer extends Defaul Object body = exchange.getIn().getBody(); - boolean hasSolrHeaders = false; - Map<String, Object> headers = exchange.getIn().getHeaders(); - if (headers != null && headers.containsKey(SolrConstants.FIELD + "id")) { - hasSolrHeaders = true; - } - if (body instanceof File) { ContentStreamUpdateRequest updateRequest = new ContentStreamUpdateRequest(getRequestHandler()); @@ -109,43 +103,54 @@ public class SolrProducer extends Defaul updateRequest.process(solrServer); } - } else if (hasSolrHeaders) { - - UpdateRequest updateRequest = new UpdateRequest(getRequestHandler()); + } else { - SolrInputDocument doc = new SolrInputDocument(); + boolean hasSolrHeaders = false; + Map<String, Object> headers = exchange.getIn().getHeaders(); for (Map.Entry<String, Object> entry : exchange.getIn().getHeaders().entrySet()) { if (entry.getKey().startsWith(SolrConstants.FIELD)) { - String fieldName = entry.getKey().substring(SolrConstants.FIELD.length()); - doc.setField(fieldName, entry.getValue()); + hasSolrHeaders = true; + break; } } - updateRequest.add(doc); - if (isStreaming) { - updateRequest.process(streamingSolrServer); - } else { - updateRequest.process(solrServer); - } + if (hasSolrHeaders) { - } else if (body instanceof String) { + UpdateRequest updateRequest = new UpdateRequest(getRequestHandler()); - String bodyAsString = (String) body; + SolrInputDocument doc = new SolrInputDocument(); + for (Map.Entry<String, Object> entry : exchange.getIn().getHeaders().entrySet()) { + if (entry.getKey().startsWith(SolrConstants.FIELD)) { + String fieldName = entry.getKey().substring(SolrConstants.FIELD.length()); + doc.setField(fieldName, entry.getValue()); + } + } + updateRequest.add(doc); - if (!bodyAsString.startsWith("<add")) { - bodyAsString = "<add>" + bodyAsString + "</add>"; - } + if (isStreaming) { + updateRequest.process(streamingSolrServer); + } else { + updateRequest.process(solrServer); + } - DirectXmlRequest xmlRequest = new DirectXmlRequest(getRequestHandler(), bodyAsString); + } else if (body instanceof String) { - if (isStreaming) { - streamingSolrServer.request(xmlRequest); + String bodyAsString = (String) body; + + if (!bodyAsString.startsWith("<add")) { + bodyAsString = "<add>" + bodyAsString + "</add>"; + } + + DirectXmlRequest xmlRequest = new DirectXmlRequest(getRequestHandler(), bodyAsString); + + if (isStreaming) { + streamingSolrServer.request(xmlRequest); + } else { + solrServer.request(xmlRequest); + } } else { - solrServer.request(xmlRequest); + throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "unable to find data in Exchange to update Solr"); } - - } else { - throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "unable to find data in Exchange to update Solr"); } }