Return-Path: X-Original-To: apmail-manifoldcf-commits-archive@www.apache.org Delivered-To: apmail-manifoldcf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EB623D539 for ; Thu, 18 Oct 2012 09:42:18 +0000 (UTC) Received: (qmail 61018 invoked by uid 500); 18 Oct 2012 09:42:18 -0000 Delivered-To: apmail-manifoldcf-commits-archive@manifoldcf.apache.org Received: (qmail 60962 invoked by uid 500); 18 Oct 2012 09:42:18 -0000 Mailing-List: contact commits-help@manifoldcf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@manifoldcf.apache.org Delivered-To: mailing list commits@manifoldcf.apache.org Received: (qmail 60954 invoked by uid 99); 18 Oct 2012 09:42:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Oct 2012 09:42:18 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Oct 2012 09:42:13 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id BB2BE23888FE; Thu, 18 Oct 2012 09:41:28 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r1399566 - in /manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main: java/org/apache/manifoldcf/agents/output/solr/ native2ascii/org/apache/manifoldcf/agents/output/solr/ Date: Thu, 18 Oct 2012 09:41:28 -0000 To: commits@manifoldcf.apache.org From: mlizewski@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121018094128.BB2BE23888FE@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: mlizewski Date: Thu Oct 18 09:41:27 2012 New Revision: 1399566 URL: http://svn.apache.org/viewvc?rev=1399566&view=rev Log: additional tab for Solr output connection to enter forced attributes implements #552 Modified: manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConfig.java manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_en_US.properties manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_ja_JP.properties Modified: manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConfig.java URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConfig.java?rev=1399566&r1=1399565&r2=1399566&view=diff ============================================================================== --- manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConfig.java (original) +++ manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConfig.java Thu Oct 18 09:41:27 2012 @@ -79,4 +79,10 @@ public class SolrConfig /** Attribute describing a target field name */ public static final String ATTRIBUTE_TARGET = "target"; + /** Node describing a forcedfield */ + public static final String NODE_FORCEDFIELD = "forcedfield"; + /** Attribute describing a field name */ + public static final String ATTRIBUTE_FORCEDNAME = "name"; + /** Attribute describing a field value */ + public static final String ATTRIBUTE_FORCEDVALUE = "value"; } Modified: manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java?rev=1399566&r1=1399565&r2=1399566&view=diff ============================================================================== --- manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java (original) +++ manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java Thu Oct 18 09:41:27 2012 @@ -297,6 +297,8 @@ public class SolrConnector extends org.a // All the arguments need to go into this string, since they affect ingestion. Map args = new HashMap(); + Map> forcedFields = new HashMap>(); + Map fieldMap = new HashMap(); int i = 0; while (i < params.getChildCount()) { @@ -313,6 +315,28 @@ public class SolrConnector extends org.a list.add(node.getAttributeValue(SolrConfig.ATTRIBUTE_VALUE)); } } + i = 0; + while (i < spec.getChildCount()) + { + ConfigurationNode node = spec.getChild(i++); + if (node.getType().equals(SolrConfig.NODE_FIELDMAP)) + { + String source = node.getAttributeValue(SolrConfig.ATTRIBUTE_SOURCE); + String target = node.getAttributeValue(SolrConfig.ATTRIBUTE_TARGET); + if (target == null) + target = ""; + fieldMap.put(source,target); + } + if (node.getType().equals(SolrConfig.NODE_FORCEDFIELD)) { + String attrName = node.getAttributeValue(SolrConfig.ATTRIBUTE_FORCEDNAME); + ArrayList list = forcedFields.get(attrName); + if (list == null) { + list = new ArrayList(); + forcedFields.put(attrName, list); + } + list.add(node.getAttributeValue(SolrConfig.ATTRIBUTE_FORCEDVALUE)); + } + } String[] sortArray = new String[args.size()]; Iterator iter = args.keySet().iterator(); @@ -345,22 +369,7 @@ public class SolrConnector extends org.a } packList(sb,nameValues,'+'); - - Map fieldMap = new HashMap(); - i = 0; - while (i < spec.getChildCount()) - { - SpecificationNode sn = spec.getChild(i++); - if (sn.getType().equals(SolrConfig.NODE_FIELDMAP)) - { - String source = sn.getAttributeValue(SolrConfig.ATTRIBUTE_SOURCE); - String target = sn.getAttributeValue(SolrConfig.ATTRIBUTE_TARGET); - if (target == null) - target = ""; - fieldMap.put(source,target); - } - } - + sortArray = new String[fieldMap.size()]; i = 0; iter = fieldMap.keySet().iterator(); @@ -386,6 +395,21 @@ public class SolrConnector extends org.a packList(sb,sourceTargets,'+'); + // encode forced fields + ArrayList forcedItems = new ArrayList(); + + for (String name : forcedFields.keySet()) { + for( String value : forcedFields.get(name)) { + fixedList[0] = name; + fixedList[1] = value; + StringBuilder pairBuffer = new StringBuilder(); + packFixedList(pairBuffer, fixedList, '='); + forcedItems.add(pairBuffer.toString()); + } + } + + packList(sb, forcedItems, '+'); + // Here, append things which we have no intention of unpacking. This includes stuff that comes from // the configuration information, for instance. @@ -416,7 +440,7 @@ public class SolrConnector extends org.a else sb.append('-'); } - + return sb.toString(); } @@ -476,6 +500,9 @@ public class SolrConnector extends org.a index = unpackList(nameValues,outputDescription,index,'+'); ArrayList sts = new ArrayList(); index = unpackList(sts,outputDescription,index,'+'); + ArrayList forcedNameValues = new ArrayList(); + index = unpackList(forcedNameValues,outputDescription,index,'+'); + String[] fixedBuffer = new String[2]; // Do the name/value pairs @@ -503,6 +530,32 @@ public class SolrConnector extends org.a sourceTargets.put(fixedBuffer[0],fixedBuffer[1]); } + Map> forcedFields = new HashMap>(); + i = 0; + while (i < forcedNameValues.size()) { + String x = (String) forcedNameValues.get(i++); + unpackFixedList(fixedBuffer, x, 0, '='); + ArrayList list = forcedFields.get(fixedBuffer[0]); + if (list == null) { + list = new ArrayList(); + forcedFields.put(fixedBuffer[0], list); + } + list.add(fixedBuffer[1]); + } + + for (String field : forcedFields.keySet()) { + ArrayList values = forcedFields.get(field); + if (values.size() > 1) { + String[] arValues = new String[values.size()]; + for (i = 0; i < values.size(); i++) { + arValues[i] = values.get(i); + } + document.addField(field, arValues); + } else { + document.addField(field, values.get(0)); + } + } + // Establish a session getSession(); @@ -1522,6 +1575,7 @@ public class SolrConnector extends org.a throws ManifoldCFException, IOException { tabsArray.add(Messages.getString(locale,"SolrConnector.SolrFieldMapping")); + tabsArray.add(Messages.getString(locale,"SolrConnector.SolrForcedFields")); out.print( "\n" ); @@ -1702,6 +1781,93 @@ public class SolrConnector extends org.a } } + if (tabName.equals(Messages.getString(locale,"SolrConnector.SolrForcedFields"))) { + out.print( + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "

" + Messages.getBodyString(locale, "SolrConnector.ForcedFields") + "
" + Messages.getBodyString(locale, "SolrConnector.ForcedFieldsDescription") + "
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n"); + + i = 0; + while (i < os.getChildCount()) { + SpecificationNode sn = os.getChild(i); + if (sn.getType().equals(SolrConfig.NODE_FORCEDFIELD)) { + String name = sn.getAttributeValue(SolrConfig.ATTRIBUTE_FORCEDNAME); + String value = sn.getAttributeValue(SolrConfig.ATTRIBUTE_FORCEDVALUE); + String prefix = "solr_forcedfield_" + Integer.toString(i); + out.print( + " \n" + + " \n" + + " \n" + + " \n" + + " \n"); + } + i++; + } + + if (i == 0) { + out.print( + " \n"); + } + out.print( + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
" + Messages.getBodyString(locale, "SolrConnector.SolrFieldName") + "" + Messages.getBodyString(locale, "SolrConnector.SolrFieldValue") + "
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " " + org.apache.manifoldcf.ui.util.Encoder.bodyEscape(name) + "\n" + + " \n" + + " " + org.apache.manifoldcf.ui.util.Encoder.bodyEscape(value) + "\n" + + "
" + Messages.getBodyString(locale, "SolrConnector.NoForcedFieldsSpecified") + "

\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
\n" + + "
\n"); + } else { + // Hiddens for forced field + i = 0; + while (i < os.getChildCount()) { + SpecificationNode sn = os.getChild(i); + if (sn.getType().equals(SolrConfig.NODE_FORCEDFIELD)) { + String name = sn.getAttributeValue(SolrConfig.ATTRIBUTE_FORCEDNAME); + String value = sn.getAttributeValue(SolrConfig.ATTRIBUTE_FORCEDVALUE); + String prefix = "solr_forcedfield_" + Integer.toString(i); + out.print( + "\n" + + "\n"); + } + i++; + } + out.print( +"\n" + ); + } + } /** Process a specification post. @@ -1762,6 +1928,52 @@ public class SolrConnector extends org.a os.addChild(os.getChildCount(),node); } } + + x = variableContext.getParameter("solr_forcedfields_count"); + if (x != null && x.length() > 0) { + // About to gather the forced fields nodes, so get rid of the old ones. + int i = 0; + while (i < os.getChildCount()) { + SpecificationNode node = os.getChild(i); + if (node.getType().equals(SolrConfig.NODE_FORCEDFIELD)) { + os.removeChild(i); + } else { + i++; + } + } + int count = Integer.parseInt(x); + i = 0; + while (i < count) { + String prefix = "solr_forcedfield_" + Integer.toString(i); + String op = variableContext.getParameter(prefix + "_op"); + if (op == null || !op.equals("Delete")) { + // Gather the fieldmap etc. + String name = variableContext.getParameter(prefix + "_name"); + String value = variableContext.getParameter(prefix + "_value"); + if (value == null) { + value = ""; + } + SpecificationNode node = new SpecificationNode(SolrConfig.NODE_FORCEDFIELD); + node.setAttribute(SolrConfig.ATTRIBUTE_FORCEDNAME, name); + node.setAttribute(SolrConfig.ATTRIBUTE_FORCEDVALUE, value); + os.addChild(os.getChildCount(), node); + } + i++; + } + String addop = variableContext.getParameter("solr_forcedfield_op"); + if (addop != null && addop.equals("Add")) { + String name = variableContext.getParameter("solr_forcedfield_name"); + String value = variableContext.getParameter("solr_forcedfield_value"); + if (value == null) { + value = ""; + } + SpecificationNode node = new SpecificationNode(SolrConfig.NODE_FORCEDFIELD); + node.setAttribute(SolrConfig.ATTRIBUTE_FORCEDNAME, name); + node.setAttribute(SolrConfig.ATTRIBUTE_FORCEDVALUE, value); + os.addChild(os.getChildCount(), node); + } + } + return null; } @@ -1851,6 +2063,46 @@ public class SolrConnector extends org.a "\n" ); - } + // Display forced fields + out.print( + "\n" + + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
" + Messages.getBodyString(locale, "SolrConnector.ForcedFields") + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n"); + i = 0; + while (i < os.getChildCount()) { + SpecificationNode sn = os.getChild(i); + if (sn.getType().equals(SolrConfig.NODE_FORCEDFIELD)) { + String name = sn.getAttributeValue(SolrConfig.ATTRIBUTE_FORCEDNAME); + String value = sn.getAttributeValue(SolrConfig.ATTRIBUTE_FORCEDVALUE); + out.print( + " \n" + + " \n" + + " \n" + + " \n"); + } + i++; + } + + if (i == 0) { + out.print( + " \n"); + } + out.print( + "
" + Messages.getBodyString(locale, "SolrConnector.SolrFieldName") + "" + Messages.getBodyString(locale, "SolrConnector.SolrFieldValue") + "
\n" + + " " + org.apache.manifoldcf.ui.util.Encoder.bodyEscape(name) + "\n" + + " \n" + + " " + org.apache.manifoldcf.ui.util.Encoder.bodyEscape(value) + "\n" + + "
" + Messages.getBodyString(locale, "SolrConnector.NoForcedFieldsSpecified") + "
\n" + + "
\n"); + } } Modified: manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_en_US.properties URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_en_US.properties?rev=1399566&r1=1399565&r2=1399566&view=diff ============================================================================== --- manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_en_US.properties (original) +++ manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_en_US.properties Thu Oct 18 09:41:27 2012 @@ -81,3 +81,11 @@ SolrConnector.DeleteArgument=Delete argu SolrConnector.FieldMapMustHaveNonNullSource=Field map must have non-null source SolrConnector.DeleteFieldMapping=Delete field mapping # +SolrConnector.SolrForcedFields=Forced fields +SolrConnector.ForcedFieldNameMustNotBeEmpty=Field name must not be empty +SolrConnector.ForcedFields=Forced fields: +SolrConnector.ForcedFieldsDescription=Add multiple values with same field name for multivalued fields. +SolrConnector.SolrFieldValue=Value +SolrConnector.DeleteForcedField=Delete forced field +SolrConnector.NoForcedFieldsSpecified=No forced fields specified +SolrConnector.AddForcedField=Add forced field mapping Modified: manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_ja_JP.properties URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_ja_JP.properties?rev=1399566&r1=1399565&r2=1399566&view=diff ============================================================================== --- manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_ja_JP.properties (original) +++ manifoldcf/branches/CONNECTORS-552/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_ja_JP.properties Thu Oct 18 09:41:27 2012 @@ -81,3 +81,11 @@ SolrConnector.DeleteArgument=引æ•� SolrConnector.FieldMapMustHaveNonNullSource=フィールマップを入力してください SolrConnector.DeleteFieldMapping=フィールドマップを削除 # +SolrConnector.SolrForcedFields=Forced fields +SolrConnector.ForcedFieldNameMustNotBeEmpty=Field name must not be empty +SolrConnector.ForcedFields=Forced fields: +SolrConnector.ForcedFieldsDescription=Add multiple values with same field name for multivalued fields. +SolrConnector.SolrFieldValue=Value +SolrConnector.DeleteForcedField=Delete forced field +SolrConnector.NoForcedFieldsSpecified=No forced fields specified +SolrConnector.AddForcedField=Add forced field mapping