[CAMEL-9659] Add more headers to resulting exchange

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

Branch: refs/heads/master
Commit: f80654f493481535ca297e240ee03468ab0cd2f7
Parents: bfaec78
Author: Daniel Kulp <dk...@apache.org>
Authored: Mon Feb 29 13:14:31 2016 -0500
Committer: Daniel Kulp <dk...@apache.org>
Committed: Tue Mar 1 14:23:00 2016 -0500

----------------------------------------------------------------------
 .../camel/component/gridfs/GridFsConsumer.java      |  2 +-
 .../camel/component/gridfs/GridFsProducer.java      | 16 ++++++++++++----
 2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f80654f4/src/main/java/org/apache/camel/component/gridfs/GridFsConsumer.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/camel/component/gridfs/GridFsConsumer.java 
b/src/main/java/org/apache/camel/component/gridfs/GridFsConsumer.java
index dce195a..4f2ce66 100644
--- a/src/main/java/org/apache/camel/component/gridfs/GridFsConsumer.java
+++ b/src/main/java/org/apache/camel/component/gridfs/GridFsConsumer.java
@@ -26,7 +26,7 @@ import org.apache.camel.impl.DefaultConsumer;
  * 
  */
 public class GridFsConsumer extends DefaultConsumer {
-    GridFsEndpoint ep;
+    final GridFsEndpoint ep;
     
     /**
      * @param endpoint

http://git-wip-us.apache.org/repos/asf/camel/blob/f80654f4/src/main/java/org/apache/camel/component/gridfs/GridFsProducer.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/camel/component/gridfs/GridFsProducer.java 
b/src/main/java/org/apache/camel/component/gridfs/GridFsProducer.java
index 5178220..7954644 100644
--- a/src/main/java/org/apache/camel/component/gridfs/GridFsProducer.java
+++ b/src/main/java/org/apache/camel/component/gridfs/GridFsProducer.java
@@ -32,6 +32,10 @@ import org.apache.camel.impl.DefaultProducer;
 
 
 public class GridFsProducer extends DefaultProducer {
+    public static final String GRIDFS_OPERATION = "gridfs.operation";
+    public static final String GRIDFS_METADATA = "gridfs.metadata";
+    public static final String GRIDFS_CHUNKSIZE = "gridfs.chunksize";
+    
     private GridFsEndpoint endpoint;
 
     public GridFsProducer(GridFsEndpoint endpoint) {
@@ -42,11 +46,11 @@ public class GridFsProducer extends DefaultProducer {
     public void process(Exchange exchange) throws Exception {
         String operation = endpoint.getOperation();
         if (operation == null) {
-            operation = exchange.getIn().getHeader("gridfs.operation", 
String.class);
+            operation = exchange.getIn().getHeader(GRIDFS_OPERATION, 
String.class);
         }
         if (operation == null || "create".equals(operation)) {
             final String filename = 
exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
-            Long chunkSize = exchange.getIn().getHeader("gridfs.chunksize", 
Long.class);
+            Long chunkSize = exchange.getIn().getHeader(GRIDFS_CHUNKSIZE, 
Long.class);
 
             InputStream ins = 
exchange.getIn().getMandatoryBody(InputStream.class);
             GridFSInputFile gfsFile = endpoint.getGridFs().createFile(ins, 
filename, true);
@@ -57,7 +61,7 @@ public class GridFsProducer extends DefaultProducer {
             if (ct != null) {
                 gfsFile.setContentType(ct);
             }
-            String metaData = exchange.getIn().getHeader("gridfs.metadata", 
String.class);
+            String metaData = exchange.getIn().getHeader(GRIDFS_METADATA, 
String.class);
             DBObject dbObject = (DBObject) JSON.parse(metaData);
             gfsFile.setMetaData(dbObject);
             gfsFile.save();
@@ -69,7 +73,11 @@ public class GridFsProducer extends DefaultProducer {
             final String filename = 
exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
             GridFSDBFile file = endpoint.getGridFs().findOne(filename);
             if (file != null) {
-                exchange.getIn().setBody(file.getInputStream(), 
InputStream.class);
+                exchange.getIn().setHeader(GRIDFS_METADATA, 
JSON.serialize(file.getMetaData()));
+                exchange.getIn().setHeader(Exchange.FILE_CONTENT_TYPE, 
file.getContentType());
+                exchange.getIn().setHeader(Exchange.FILE_LENGTH, 
file.getLength());
+                exchange.getIn().setHeader(Exchange.FILE_LAST_MODIFIED, 
file.getUploadDate());
+                exchange.getIn().setBody(file.getInputStream(), 
InputStream.class);                
             } else {
                 throw new FileNotFoundException("No GridFS file for " + 
filename);
             }

Reply via email to