You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2014/05/08 09:34:32 UTC

svn commit: r1593197 - /manifoldcf/branches/CONNECTORS-916/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java

Author: kwright
Date: Thu May  8 07:34:32 2014
New Revision: 1593197

URL: http://svn.apache.org/r1593197
Log:
Hook up new structure in actual indexing method

Modified:
    manifoldcf/branches/CONNECTORS-916/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java

Modified: manifoldcf/branches/CONNECTORS-916/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-916/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java?rev=1593197&r1=1593196&r2=1593197&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-916/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java (original)
+++ manifoldcf/branches/CONNECTORS-916/connectors/amazoncloudsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/amazoncloudsearch/AmazonCloudSearchConnector.java Thu May  8 07:34:32 2014
@@ -345,9 +345,7 @@ public class AmazonCloudSearchConnector 
     // Establish a session
     getSession();
     
-    Map<String, List<String>> sourceTargets = new HashMap<String, List<String>>();
-    boolean keepAllMetadata = true;
-    keepAllMetadata = readConfigurationDescription(outputDescription, sourceTargets);
+    SpecPacker sp = new SpecPacker(outputDescription);
     
     String jsondata = "";
     try {
@@ -365,17 +363,14 @@ public class AmazonCloudSearchConnector 
       {
         String fName = itr.next();
         Object[] value = document.getField(fName);
-        if(sourceTargets.get(fName)!=null)
+        String target = sp.getMapping(fName);
+        if(target!=null)
         {
-          List<String> fnameList = sourceTargets.get(fName);
-          for(String newName : fnameList)
-          {
-            fields.put(newName, value);
-          }
+          fields.put(target, value);
         }
         else
         {
-          if(keepAllMetadata)
+          if(sp.keepAllMetadata())
           {
             fields.put(fName, value);
           }
@@ -386,17 +381,14 @@ public class AmazonCloudSearchConnector 
       String[] metaNames = metadata.names();
       for(String mName : metaNames){
         String value = metadata.get(mName);
-        if(sourceTargets.get(mName)!=null)
+        String target = sp.getMapping(mName);
+        if(target!=null)
         {
-          List<String> nameList = sourceTargets.get(mName);
-          for(String newName : nameList)
-          {
-            fields.put(newName, value);
-          }
+          fields.put(target, value);
         }
         else
         {
-          if(keepAllMetadata)
+          if(sp.keepAllMetadata())
           {
             fields.put(mName, value);
           }
@@ -441,49 +433,6 @@ public class AmazonCloudSearchConnector 
     }
   }
 
-  private boolean readConfigurationDescription(String outputDescription,
-      Map<String, List<String>> sourceTargets)
-      throws ManifoldCFException {
-    ObjectMapper mapper = new ObjectMapper();
-    
-    boolean keepAllMetadata = true;
-    try
-    {
-      JsonNode node = mapper.readTree(outputDescription);
-      Iterator<String> ir = node.fieldNames();
-      while(ir.hasNext()){
-        String fieldName = ir.next();
-        if("fieldMappings".equals(fieldName))
-        {
-          JsonNode fm = node.path(fieldName);
-          Iterator<String> itr = fm.fieldNames();
-          while(itr.hasNext())
-          {
-            String from = itr.next();
-            String to = fm.path(from).asText();
-            
-            List<String> list = sourceTargets.get(from);
-            if (list == null) {
-              list = new ArrayList<String>();
-              sourceTargets.put(from, list);
-            }
-            list.add(to);
-          }
-        }
-        else if("keepAllMetadata".equals(fieldName)){
-          String meta = node.path(fieldName).toString();
-          keepAllMetadata = Boolean.getBoolean(meta);
-        }
-      }
-      return keepAllMetadata;
-      
-    } catch (JsonProcessingException e) {
-      throw new ManifoldCFException(e);
-    } catch (IOException e) {
-      throw new ManifoldCFException(e);
-    }
-  }
-
   private Metadata extractBinaryFile(RepositoryDocument document, HashMap fields)
       throws IOException, SAXException, TikaException {
     
@@ -1052,6 +1001,13 @@ public class AmazonCloudSearchConnector 
       return extensions.contains(extension);
     }
     
+    public String getMapping(String source) {
+      return sourceTargets.get(source);
+    }
+    
+    public boolean keepAllMetadata() {
+      return keepAllMetadata;
+    }
   }
   
 }