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 2021/03/20 11:46:14 UTC

svn commit: r1887847 - in /manifoldcf/trunk/connectors/elasticsearch/connector/src/main: java/org/apache/manifoldcf/agents/output/elasticsearch/ native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/ resources/org/apache/manifoldcf/agents/outp...

Author: kwright
Date: Sat Mar 20 11:46:13 2021
New Revision: 1887847

URL: http://svn.apache.org/viewvc?rev=1887847&view=rev
Log:
CONNECTORS-1666: Add support for documentURI field and for ingester attachment.

Modified:
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConfig.java
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnector.java
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchParam.java
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_en_US.properties
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_es_ES.properties
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_fr_FR.properties
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_ja_JP.properties
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_zh_CN.properties
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration.js
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration_Parameters.html
    manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/viewConfiguration.html

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConfig.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConfig.java?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConfig.java (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConfig.java Sat Mar 20 11:46:13 2021
@@ -48,6 +48,7 @@ public class ElasticSearchConfig extends
     ParameterEnum.SERVERKEYSTORE,
     ParameterEnum.INDEXNAME,
     ParameterEnum.INDEXTYPE,
+    ParameterEnum.USEINGESTATTACHMENT,
     ParameterEnum.USEMAPPERATTACHMENTS,
     ParameterEnum.PIPELINENAME,
     ParameterEnum.CONTENTATTRIBUTENAME,
@@ -187,6 +188,15 @@ public class ElasticSearchConfig extends
       }
     }
 
+    String useIngestAttachmentPresent = variableContext.getParameter("useingestattachment_present");
+    if (useIngestAttachmentPresent != null)
+    {
+      String useIngestAttachment = variableContext.getParameter(ParameterEnum.USEINGESTATTACHMENT.name().toLowerCase(Locale.ROOT));
+      if (useIngestAttachment == null || useIngestAttachment.length() == 0)
+        useIngestAttachment = "false";
+      parameters.setParameter(ParameterEnum.USEINGESTATTACHMENT.name(), useIngestAttachment);
+    }
+
     String useMapperAttachmentsPresent = variableContext.getParameter("usemapperattachments_present");
     if (useMapperAttachmentsPresent != null)
     {
@@ -195,7 +205,7 @@ public class ElasticSearchConfig extends
         useMapperAttachments = "false";
       parameters.setParameter(ParameterEnum.USEMAPPERATTACHMENTS.name(), useMapperAttachments);
     }
-    
+
     return rval;
   }
 
@@ -235,6 +245,11 @@ public class ElasticSearchConfig extends
     return get(ParameterEnum.INDEXTYPE);
   }
 
+  final public Boolean getUseIngestAttachment()
+  {
+    return Boolean.valueOf(get(ParameterEnum.USEINGESTATTACHMENT));
+  }
+
   final public Boolean getUseMapperAttachments()
   {
     return Boolean.valueOf(get(ParameterEnum.USEMAPPERATTACHMENTS));

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnector.java?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnector.java (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnector.java Sat Mar 20 11:46:13 2021
@@ -437,7 +437,7 @@ public class ElasticSearchConnector exte
     ElasticSearchIndex oi = new ElasticSearchIndex(client, config);
     try
     {
-      oi.execute(compressedDocumentURI, document, inputStream, acls, denyAcls, shareAcls, shareDenyAcls, parentAcls, parentDenyAcls);
+      oi.execute(compressedDocumentURI, document, inputStream, acls, denyAcls, shareAcls, shareDenyAcls, parentAcls, parentDenyAcls, documentURI);
       if (oi.getResult() != Result.OK)
         return DOCUMENTSTATUS_REJECTED;
       return DOCUMENTSTATUS_ACCEPTED;

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java Sat Mar 20 11:46:13 2021
@@ -77,21 +77,27 @@ public class ElasticSearchIndex extends
     private final String[] shareDenyAcls;
     private final String[] parentAcls;
     private final String[] parentDenyAcls;
+    private final boolean useIngesterAttachment;
     private final boolean useMapperAttachments;
     private final String contentAttributeName;
     private final String createdDateAttributeName;
     private final String modifiedDateAttributeName;
     private final String indexingDateAttributeName;
     private final String mimeTypeAttributeName;
+    private final String fullUriAttributeName;
+    private final String fullDocumentURI;
     
     public IndexRequestEntity(RepositoryDocument document, InputStream inputStream,
       String[] acls, String[] denyAcls, String[] shareAcls, String[] shareDenyAcls, String[] parentAcls, String[] parentDenyAcls,
+      boolean useIngesterAttachment,
       boolean useMapperAttachments,
       String contentAttributeName,
       String createdDateAttributeName,
       String modifiedDateAttributeName,
       String indexingDateAttributeName,
-      String mimeTypeAttributeName)
+      String mimeTypeAttributeName,
+      String fullUriAttributeName,
+      String fullDocumentURI)
       throws ManifoldCFException
     {
       this.document = document;
@@ -102,12 +108,15 @@ public class ElasticSearchIndex extends
       this.shareDenyAcls = shareDenyAcls;
       this.parentAcls = parentAcls;
       this.parentDenyAcls = parentDenyAcls;
+      this.useIngesterAttachment = useIngesterAttachment;
       this.useMapperAttachments = useMapperAttachments;
       this.contentAttributeName = contentAttributeName;
       this.createdDateAttributeName = createdDateAttributeName;
       this.modifiedDateAttributeName = modifiedDateAttributeName;
       this.indexingDateAttributeName = indexingDateAttributeName;
       this.mimeTypeAttributeName = mimeTypeAttributeName;
+      this.fullUriAttributeName = fullUriAttributeName;
+      this.fullDocumentURI = fullDocumentURI;
     }
 
     @Override
@@ -161,6 +170,9 @@ public class ElasticSearchIndex extends
           }
         }
         // Standard document fields
+        if (fullDocumentURI != null && fullUriAttributeName != null && fullUriAttributeName.length() > 0) {
+          needComma = writeField(pw, needComma, fullUriAttributeName, new String[]{fullDocumentURI});
+        }
         final Date createdDate = document.getCreatedDate();
         if (createdDate != null && createdDateAttributeName != null && createdDateAttributeName.length() > 0)
         {
@@ -185,6 +197,26 @@ public class ElasticSearchIndex extends
         needComma = writeACLs(pw, needComma, "share", shareAcls, shareDenyAcls);
         needComma = writeACLs(pw, needComma, "parent", parentAcls, parentDenyAcls);
 
+        if (useIngesterAttachment && inputStream != null) {
+          if (contentAttributeName != null)
+          {
+            if (needComma) {
+              pw.print(",");
+            }
+            String contentType = document.getMimeType();
+            if (contentType != null)
+              pw.print("\"_content_type\" : "+jsonStringEscape(contentType)+",");
+            String fileName = document.getFileName();
+            if (fileName != null)
+              pw.print("\"_name\" : "+jsonStringEscape(fileName)+",");
+            pw.append(jsonStringEscape(contentAttributeName)).append(" : \"");
+            Base64 base64 = new Base64();
+            base64.encodeStream(inputStream, pw);
+            pw.print("\"");
+            needComma = true;
+          }
+        }
+
         if (useMapperAttachments && inputStream != null) {
           if(needComma){
             pw.print(",");
@@ -415,7 +447,8 @@ public class ElasticSearchIndex extends
   */
   public boolean execute(String documentURI, RepositoryDocument document, 
     InputStream inputStream,
-    String[] acls, String[] denyAcls, String[] shareAcls, String[] shareDenyAcls, String[] parentAcls, String[] parentDenyAcls)
+    String[] acls, String[] denyAcls, String[] shareAcls, String[] shareDenyAcls, String[] parentAcls, String[] parentDenyAcls,
+    String fullDocumentURI)
     throws ManifoldCFException, ServiceInterruption
   {
     final String idField = URLEncoder.encode(documentURI);
@@ -427,12 +460,15 @@ public class ElasticSearchIndex extends
     Logging.connectors.debug("HttPutUri: " + url.toString());
     put.setEntity(new IndexRequestEntity(document, inputStream,
       acls, denyAcls, shareAcls, shareDenyAcls, parentAcls, parentDenyAcls,
+      config.getUseIngestAttachment(),
       config.getUseMapperAttachments(),
       config.getContentAttributeName(),
       config.getCreatedDateAttributeName(),
       config.getModifiedDateAttributeName(),
       config.getIndexingDateAttributeName(),
-      config.getMimeTypeAttributeName()));
+      config.getMimeTypeAttributeName(),
+      config.getUriAttributeName(),
+      fullDocumentURI));
     
     if (call(put) == false)
       return false;

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchParam.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchParam.java?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchParam.java (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchParam.java Sat Mar 20 11:46:13 2021
@@ -41,31 +41,19 @@ public class ElasticSearchParam extends
   public enum ParameterEnum
   {
     SERVERLOCATION("http://localhost:9200/"),
-
     INDEXNAME("index"),
-
     USERNAME(""),
-
     PASSWORD(""),
-
     SERVERKEYSTORE(""),
-    
     INDEXTYPE("generic"),
-
+    USEINGESTATTACHMENT("false"),
     USEMAPPERATTACHMENTS("false"),
-    
     PIPELINENAME(""),
-
     CONTENTATTRIBUTENAME("content"),
-
     URIATTRIBUTENAME("url"),
-
     CREATEDDATEATTRIBUTENAME("created"),
-    
     MODIFIEDDATEATTRIBUTENAME("last-modified"),
-    
     INDEXINGDATEATTRIBUTENAME("indexed"),
-    
     MIMETYPEATTRIBUTENAME("mime-type"),
     
     FIELDLIST("");

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_en_US.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_en_US.properties?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_en_US.properties (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_en_US.properties Sat Mar 20 11:46:13 2021
@@ -30,6 +30,9 @@ ElasticSearchConnector.Add=Add
 ElasticSearchConnector.Certificate=Certificate
 ElasticSearchConnector.IndexNameColon=Index name:
 ElasticSearchConnector.IndexTypeColon=Index type:
+ElasticSearchConnector.UseIngestAttachmentColon=Use ingest-attachment:
+ElasticSearchConnector.PipelineNameRequiredIfIngestAttachment=Pipeline field name required if using ingest attachment
+ElasticSearchConnector.CannotUseBothOfIngestAttachmentAndMapperAttachments=Cannot use both ingest attachment and mapper attachments
 ElasticSearchConnector.UseMapperAttachmentsColon=Use mapper-attachments:
 ElasticSearchConnector.PipelineNameColon=Pipeline name:
 ElasticSearchConnector.ContentAttributeNameColon=Content field name:

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_es_ES.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_es_ES.properties?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_es_ES.properties (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_es_ES.properties Sat Mar 20 11:46:13 2021
@@ -30,6 +30,9 @@ ElasticSearchConnector.Add=Add
 ElasticSearchConnector.Certificate=Certificate
 ElasticSearchConnector.IndexNameColon=El nombre de índice:
 ElasticSearchConnector.IndexTypeColon=tipo de índice:
+ElasticSearchConnector.UseIngestAttachmentColon=Use ingest-attachment:
+ElasticSearchConnector.PipelineNameRequiredIfIngestAttachment=Pipeline field name required if using ingest attachment
+ElasticSearchConnector.CannotUseBothOfIngestAttachmentAndMapperAttachments=Cannot use both ingest attachment and mapper attachments
 ElasticSearchConnector.UseMapperAttachmentsColon=Use mapper-attachments:
 ElasticSearchConnector.PipelineNameColon=Pipeline name:
 ElasticSearchConnector.ContentAttributeNameColon=Content field name:

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_fr_FR.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_fr_FR.properties?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_fr_FR.properties (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_fr_FR.properties Sat Mar 20 11:46:13 2021
@@ -29,6 +29,9 @@ ElasticSearchConnector.Add=Add
 ElasticSearchConnector.Certificate=Certificate
 ElasticSearchConnector.IndexNameColon=Nom de l'index:
 ElasticSearchConnector.IndexTypeColon=Type d'index:
+ElasticSearchConnector.UseIngestAttachmentColon=Use ingest-attachment:
+ElasticSearchConnector.PipelineNameRequiredIfIngestAttachment=Pipeline field name required if using ingest attachment
+ElasticSearchConnector.CannotUseBothOfIngestAttachmentAndMapperAttachments=Cannot use both ingest attachment and mapper attachments
 
 ElasticSearchConnector.PleaseSupplyValidElasticSearchLocation=Veuillez fournir en emplacement valide pour le serveur Elasticsearch
 ElasticSearchConnector.ChooseACertificateFile=Please choose a certificate file

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_ja_JP.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_ja_JP.properties?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_ja_JP.properties (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_ja_JP.properties Sat Mar 20 11:46:13 2021
@@ -30,6 +30,9 @@ ElasticSearchConnector.Add=Add
 ElasticSearchConnector.Certificate=Certificate
 ElasticSearchConnector.IndexNameColon=インデックス名:
 ElasticSearchConnector.IndexTypeColon=タイプ名:
+ElasticSearchConnector.UseIngestAttachmentColon=Use ingest-attachment:
+ElasticSearchConnector.PipelineNameRequiredIfIngestAttachment=Pipeline field name required if using ingest attachment
+ElasticSearchConnector.CannotUseBothOfIngestAttachmentAndMapperAttachments=Cannot use both ingest attachment and mapper attachments
 ElasticSearchConnector.UseMapperAttachmentsColon=Use mapper-attachments:
 ElasticSearchConnector.PipelineNameColon=Pipeline name:
 ElasticSearchConnector.ContentAttributeNameColon=Content field name:

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_zh_CN.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_zh_CN.properties?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_zh_CN.properties (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_zh_CN.properties Sat Mar 20 11:46:13 2021
@@ -30,6 +30,9 @@ ElasticSearchConnector.Add=Add
 ElasticSearchConnector.Certificate=Certificate
 ElasticSearchConnector.IndexNameColon=索引名: 
 ElasticSearchConnector.IndexTypeColon=索引类型: 
+ElasticSearchConnector.UseIngestAttachmentColon=Use ingest-attachment:
+ElasticSearchConnector.PipelineNameRequiredIfIngestAttachment=Pipeline field name required if using ingest attachment
+ElasticSearchConnector.CannotUseBothOfIngestAttachmentAndMapperAttachments=Cannot use both ingest attachment and mapper attachments
 ElasticSearchConnector.UseMapperAttachmentsColon=Use mapper-attachments:
 ElasticSearchConnector.PipelineNameColon=Pipeline name:
 ElasticSearchConnector.ContentAttributeNameColon=Content field name:

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration.js
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration.js?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration.js (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration.js Sat Mar 20 11:46:13 2021
@@ -39,6 +39,13 @@ function checkConfig() {
       return false;
     }
   }
+  if (editconnection.pipelinename) {
+    if (editconnection.pipelinename.value == "" && !((editconnection.useingestattachment_checkbox.value == "true" && editconnection.useingestattachment.checked == false) || (editconnection.useingestattachment_checkbox.value != "true" && editconnection.useingestattachment.value != "true"))) {
+      alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('ElasticSearchConnector.PipelineNameRequiredIfIngestAttachment'))");
+      editconnection.pipelinename.focus();
+      return false;
+    }
+  }
   if (editconnection.contentattributename) {
     if (editconnection.contentattributename.value == "" && ((editconnection.usemapperattachments_checkbox.value == "true" && editconnection. usemapperattachments.checked == false) || (editconnection.usemapperattachments_checkbox.value != "true" && editconnection.usemapperattachments.value != "true"))) {
       alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('ElasticSearchConnector.ContentAttributeNameRequiredUnlessMapperAttachments'))");
@@ -46,6 +53,13 @@ function checkConfig() {
       return false;
     }
   }
+  if (editconnection.useingestattachment && editconnection.usemapperattachments) {
+    if (!((editconnection.useingestattachment_checkbox.value == "true" && editconnection.useingestattachment.checked == false) || (editconnection.useingestattachment_checkbox.value != "true" && editconnection.useingestattachment.value != "true")) && !((editconnection.usemapperattachments_checkbox.value == "true" && editconnection.usemapperattachments.checked == false) || (editconnection.usemapperattachments_checkbox.value != "true" && editconnection.usemapperattachments.value != "true"))) {
+      alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('ElasticSearchConnector.CannotUseBothOfIngestAttachmentAndMapperAttachments'))");
+      editconnection.useingestattachment.focus();
+      return false;
+    }
+  }
   return true;
 }
 
@@ -74,6 +88,13 @@ function checkConfigForSave() {
       return false;
     }
   }
+  if (editconnection.pipelinename) {
+    if (editconnection.pipelinename.value == "" && !((editconnection.useingestattachment_checkbox.value == "true" && editconnection.useingestattachment.checked == false) || (editconnection.useingestattachment_checkbox.value != "true" && editconnection.useingestattachment.value != "true"))) {
+      alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('ElasticSearchConnector.PipelineNameRequiredIfIngestAttachment'))");
+      editconnection.pipelinename.focus();
+      return false;
+    }
+  }
   if (editconnection.contentattributename) {
     if (editconnection.contentattributename.value == "" && ((editconnection.usemapperattachments_checkbox.value == "true" && editconnection. usemapperattachments.checked == false) || (editconnection.usemapperattachments_checkbox.value != "true" && editconnection.usemapperattachments.value != "true"))) {
       alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('ElasticSearchConnector.ContentAttributeNameRequiredUnlessMapperAttachments'))");
@@ -81,6 +102,13 @@ function checkConfigForSave() {
       return false;
     }
   }
+  if (editconnection.useingestattachment && editconnection.usemapperattachments) {
+    if (!((editconnection.useingestattachment_checkbox.value == "true" && editconnection.useingestattachment.checked == false) || (editconnection.useingestattachment_checkbox.value != "true" && editconnection.useingestattachment.value != "true")) && !((editconnection.usemapperattachments_checkbox.value == "true" && editconnection.usemapperattachments.checked == false) || (editconnection.usemapperattachments_checkbox.value != "true" && editconnection.usemapperattachments.value != "true"))) {
+      alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('ElasticSearchConnector.CannotUseBothOfIngestAttachmentAndMapperAttachments'))");
+      editconnection.useingestattachment.focus();
+      return false;
+    }
+  }
   return true;
 }
 

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration_Parameters.html
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration_Parameters.html?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration_Parameters.html (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/editConfiguration_Parameters.html Sat Mar 20 11:46:13 2021
@@ -27,6 +27,18 @@
     <td class="value"><input name="indextype" type="text" value="$Encoder.attributeEscape($INDEXTYPE)" size="24" /></td>
   </tr>
   <tr>
+    <td class="description"><nobr>$Encoder.bodyEscape($ResourceBundle.getString('ElasticSearchConnector.UseIngestAttachmentColon'))</nobr></td>
+    <td class="value">
+       <input type="hidden" name="useingestattachment_checkbox" value="true"/>
+       <input type="hidden" name="useingestattachment_present" value="true"/>
+  #if($USEINGESTATTACHMENT == 'true')
+       <input type="checkbox" checked="true" name="useingestattachment" value="true"/>
+  #else
+       <input type="checkbox" name="useingestattachment" value="true"/>
+  #end
+    </td>
+  </tr>
+  <tr>
     <td class="description"><nobr>$Encoder.bodyEscape($ResourceBundle.getString('ElasticSearchConnector.UseMapperAttachmentsColon'))</nobr></td>
     <td class="value">
        <input type="hidden" name="usemapperattachments_checkbox" value="true"/>
@@ -48,6 +60,11 @@
     <td class="value"><input name="contentattributename" type="text" value="$Encoder.attributeEscape($CONTENTATTRIBUTENAME)"
       size="24" /></td>
   </tr>
+   <tr>
+    <td class="description"><nobr>$Encoder.bodyEscape($ResourceBundle.getString('ElasticSearchConnector.UriAttributeNameColon'))</nobr></td>
+    <td class="value"><input name="uriattributename" type="text" value="$Encoder.attributeEscape($URIATTRIBUTENAME)"
+      size="24" /></td>
+  </tr>
   <tr>
     <td class="description"><nobr>$Encoder.bodyEscape($ResourceBundle.getString('ElasticSearchConnector.CreatedDateAttributeNameColon'))</nobr></td>
     <td class="value"><input name="createddateattributename" type="text" value="$Encoder.attributeEscape($CREATEDDATEATTRIBUTENAME)"
@@ -74,6 +91,9 @@
 #else
 <input type="hidden" name="indexname" value="$Encoder.attributeEscape($INDEXNAME)" />
 <input type="hidden" name="indextype" value="$Encoder.attributeEscape($INDEXTYPE)" />
+<input type="hidden" name="useingestattachment_checkbox" value="false"/>
+<input type="hidden" name="useingestattachment_present" value="true"/>
+<input type="hidden" name="useingestattachment" value="$Encoder.bodyEscape($USEINGESTATTACHMENT)" />
 <input type="hidden" name="usemapperattachments_checkbox" value="false"/>
 <input type="hidden" name="usemapperattachments_present" value="true"/>
 <input type="hidden" name="usemapperattachments" value="$Encoder.bodyEscape($USEMAPPERATTACHMENTS)" />

Modified: manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/viewConfiguration.html
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/viewConfiguration.html?rev=1887847&r1=1887846&r2=1887847&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/viewConfiguration.html (original)
+++ manifoldcf/trunk/connectors/elasticsearch/connector/src/main/resources/org/apache/manifoldcf/agents/output/elasticsearch/viewConfiguration.html Sat Mar 20 11:46:13 2021
@@ -62,6 +62,10 @@
     <td class="value">$Encoder.bodyEscape($INDEXTYPE)</td>
   </tr>
   <tr>
+    <td class="description"><nobr>$Encoder.bodyEscape($ResourceBundle.getString('ElasticSearchConnector.UseIngestAttachmentColon'))</nobr></td>
+    <td class="value"><nobr>$Encoder.bodyEscape($USEINGESTATTACHMENT)</nobr></td>
+  </tr>
+  <tr>
     <td class="description"><nobr>$Encoder.bodyEscape($ResourceBundle.getString('ElasticSearchConnector.UseMapperAttachmentsColon'))</nobr></td>
     <td class="value"><nobr>$Encoder.bodyEscape($USEMAPPERATTACHMENTS)</nobr></td>
   </tr>
@@ -74,6 +78,10 @@
     <td class="value">$Encoder.bodyEscape($CONTENTATTRIBUTENAME)</td>
   </tr>
   <tr>
+    <td class="description"><nobr>$Encoder.bodyEscape($ResourceBundle.getString('ElasticSearchConnector.UriAttributeNameColon'))</nobr></td>
+    <td class="value">$Encoder.bodyEscape($URIATTRIBUTENAME)</td>
+  </tr>
+  <tr>
     <td class="description"><nobr>$Encoder.bodyEscape($ResourceBundle.getString('ElasticSearchConnector.CreatedDateAttributeNameColon'))</nobr></td>
     <td class="value">$Encoder.bodyEscape($CREATEDDATEATTRIBUTENAME)</td>
   </tr>