You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2013/03/10 16:05:21 UTC

svn commit: r1454862 [42/49] - in /lucene/dev/branches/lucene4258: ./ dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/ dev-tools/idea/.idea/libraries/ dev-tools/idea/lucene/demo/ dev-tools/idea/lucene/facet/ dev-tools/idea/lucene/highlighter/ dev-to...

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java Sun Mar 10 15:04:57 2013
@@ -140,6 +140,8 @@ public class DistributedUpdateProcessor 
 
   private int numNodes;
 
+  private UpdateCommand updateCommand;  // the current command this processor is working on.
+
   
   public DistributedUpdateProcessor(SolrQueryRequest req,
       SolrQueryResponse rsp, UpdateRequestProcessor next) {
@@ -184,8 +186,13 @@ public class DistributedUpdateProcessor 
     // if we are in zk mode...
     if (zkEnabled) {
 
+      if ((updateCommand.getFlags() & (UpdateCommand.REPLAY | UpdateCommand.PEER_SYNC)) != 0) {
+        isLeader = false;     // we actually might be the leader, but we don't want leader-logic for these types of updates anyway.
+        forwardToLeader = false;
+        return nodes;
+      }
+
       String coreName = req.getCore().getName();
-      String coreNodeName = zkController.getNodeName() + "_" + coreName;
 
       ClusterState cstate = zkController.getClusterState();
       numNodes = cstate.getLiveNodes().size();
@@ -209,17 +216,16 @@ public class DistributedUpdateProcessor 
       try {
         // Not equivalent to getLeaderProps, which does retries to find a leader.
         // Replica leader = slice.getLeader();
-
-        ZkCoreNodeProps leaderProps = new ZkCoreNodeProps(zkController.getZkStateReader().getLeaderRetry(
-            collection, shardId));
-
-        String leaderNodeName = leaderProps.getCoreNodeName();
-        isLeader = coreNodeName.equals(leaderNodeName);
+        Replica leaderReplica = zkController.getZkStateReader().getLeaderRetry(
+            collection, shardId);
+        ZkCoreNodeProps leaderProps = new ZkCoreNodeProps(leaderReplica);
+        String coreNodeName = zkController.getCoreNodeName(req.getCore().getCoreDescriptor());
+        isLeader = coreNodeName.equals(leaderReplica.getName());
 
         DistribPhase phase =
             DistribPhase.parseParam(req.getParams().get(DISTRIB_UPDATE_PARAM));
 
-        doDefensiveChecks(shardId, phase);
+        doDefensiveChecks(phase);
 
 
         if (DistribPhase.FROMLEADER == phase) {
@@ -230,7 +236,7 @@ public class DistributedUpdateProcessor 
           // so get the replicas...
           forwardToLeader = false;
           List<ZkCoreNodeProps> replicaProps = zkController.getZkStateReader()
-              .getReplicaProps(collection, shardId, zkController.getNodeName(),
+              .getReplicaProps(collection, shardId, coreNodeName,
                   coreName, null, ZkStateReader.DOWN);
           if (replicaProps != null) {
             nodes = new ArrayList<Node>(replicaProps.size());
@@ -271,11 +277,13 @@ public class DistributedUpdateProcessor 
   }
 
 
-  private void doDefensiveChecks(String shardId, DistribPhase phase) {
+  private void doDefensiveChecks(DistribPhase phase) {
+    boolean isReplayOrPeersync = (updateCommand.getFlags() & (UpdateCommand.REPLAY | UpdateCommand.REPLAY)) != 0;
+    if (isReplayOrPeersync) return;
+
     String from = req.getParams().get("distrib.from");
-    boolean logReplay = req.getParams().getBool(LOG_REPLAY, false);
     boolean localIsLeader = req.getCore().getCoreDescriptor().getCloudDescriptor().isLeader();
-    if (!logReplay && DistribPhase.FROMLEADER == phase && localIsLeader && from != null) { // from will be null on log replay
+    if (DistribPhase.FROMLEADER == phase && localIsLeader && from != null) { // from will be null on log replay
       log.error("Request says it is coming from leader, but we are the leader: " + req.getParamString());
       throw new SolrException(ErrorCode.SERVICE_UNAVAILABLE, "Request says it is coming from leader, but we are the leader");
     }
@@ -293,21 +301,19 @@ public class DistributedUpdateProcessor 
     String shardId = cloudDesc.getShardId();
 
     try {
+      Replica leaderReplica = zkController.getZkStateReader().getLeaderRetry(
+          collection, shardId);
+      String leaderCoreNodeName = leaderReplica.getName();
 
-      ZkCoreNodeProps leaderProps = new ZkCoreNodeProps(zkController.getZkStateReader().getLeaderRetry(
-          collection, shardId));
-
-      String leaderNodeName = leaderProps.getCoreNodeName();
-      String coreName = req.getCore().getName();
-      String coreNodeName = zkController.getNodeName() + "_" + coreName;
-      isLeader = coreNodeName.equals(leaderNodeName);
+      String coreNodeName = zkController.getCoreNodeName(req.getCore().getCoreDescriptor());
+      isLeader = coreNodeName.equals(leaderCoreNodeName);
 
       // TODO: what if we are no longer the leader?
 
       forwardToLeader = false;
       List<ZkCoreNodeProps> replicaProps = zkController.getZkStateReader()
-          .getReplicaProps(collection, shardId, zkController.getNodeName(),
-              coreName);
+          .getReplicaProps(collection, shardId, coreNodeName,
+              req.getCore().getName());
       if (replicaProps != null) {
         nodes = new ArrayList<Node>(replicaProps.size());
         for (ZkCoreNodeProps props : replicaProps) {
@@ -326,6 +332,8 @@ public class DistributedUpdateProcessor 
 
   @Override
   public void processAdd(AddUpdateCommand cmd) throws IOException {
+    updateCommand = cmd;
+
     if (zkEnabled) {
       zkCheck();
       nodes = setupRequest(cmd.getHashableId(), cmd.getSolrInputDocument());
@@ -407,11 +415,9 @@ public class DistributedUpdateProcessor 
 
     // TODO: we should do this in the background it would seem
     for (SolrCmdDistributor.Error error : response.errors) {
-      if (error.node instanceof RetryNode || error.e instanceof SolrException) {
+      if (error.node instanceof RetryNode) {
         // we don't try to force a leader to recover
         // when we cannot forward to it
-        // and we assume SolrException means
-        // the node went down
         continue;
       }
       // TODO: we should force their state to recovering ??
@@ -424,8 +430,8 @@ public class DistributedUpdateProcessor 
       log.info("try and ask " + recoveryUrl + " to recover");
       try {
         server = new HttpSolrServer(recoveryUrl);
-        server.setSoTimeout(5000);
-        server.setConnectionTimeout(5000);
+        server.setSoTimeout(15000);
+        server.setConnectionTimeout(15000);
         
         RequestRecovery recoverRequestCmd = new RequestRecovery();
         recoverRequestCmd.setAction(CoreAdminAction.REQUESTRECOVERY);
@@ -495,8 +501,8 @@ public class DistributedUpdateProcessor 
       }
     }
 
-    boolean isReplay = (cmd.getFlags() & UpdateCommand.REPLAY) != 0;
-    boolean leaderLogic = isLeader && !isReplay;
+    boolean isReplayOrPeersync = (cmd.getFlags() & (UpdateCommand.REPLAY | UpdateCommand.REPLAY)) != 0;
+    boolean leaderLogic = isLeader && !isReplayOrPeersync;
 
 
     VersionBucket bucket = vinfo.bucket(bucketHash);
@@ -692,6 +698,8 @@ public class DistributedUpdateProcessor 
   
   @Override
   public void processDelete(DeleteUpdateCommand cmd) throws IOException {
+    updateCommand = cmd;
+
     if (!cmd.isDeleteById()) {
       doDeleteByQuery(cmd);
       return;
@@ -800,10 +808,9 @@ public class DistributedUpdateProcessor 
 
         // Am I the leader for this slice?
         ZkCoreNodeProps coreLeaderProps = new ZkCoreNodeProps(leader);
-        String leaderNodeName = coreLeaderProps.getCoreNodeName();
-        String coreName = req.getCore().getName();
-        String coreNodeName = zkController.getNodeName() + "_" + coreName;
-        isLeader = coreNodeName.equals(leaderNodeName);
+        String leaderCoreNodeName = leader.getName();
+        String coreNodeName = zkController.getCoreNodeName(req.getCore().getCoreDescriptor());
+        isLeader = coreNodeName.equals(leaderCoreNodeName);
 
         if (isLeader) {
           // don't forward to ourself
@@ -850,8 +857,8 @@ public class DistributedUpdateProcessor 
     }
     versionOnUpdate = Math.abs(versionOnUpdate);  // normalize to positive version
 
-    boolean isReplay = (cmd.getFlags() & UpdateCommand.REPLAY) != 0;
-    boolean leaderLogic = isLeader && !isReplay;
+    boolean isReplayOrPeersync = (cmd.getFlags() & (UpdateCommand.REPLAY | UpdateCommand.REPLAY)) != 0;
+    boolean leaderLogic = isLeader && !isReplayOrPeersync;
 
     if (!leaderLogic && versionOnUpdate==0) {
       throw new SolrException(ErrorCode.BAD_REQUEST, "missing _version_ on update from leader");
@@ -914,6 +921,11 @@ public class DistributedUpdateProcessor 
 
 
   private void zkCheck() {
+    if ((updateCommand.getFlags() & (UpdateCommand.REPLAY | UpdateCommand.PEER_SYNC)) != 0) {
+      // for log reply or peer sync, we don't need to be connected to ZK
+      return;
+    }
+
     if (zkController.isConnected()) {
       return;
     }
@@ -957,8 +969,8 @@ public class DistributedUpdateProcessor 
     long signedVersionOnUpdate = versionOnUpdate;
     versionOnUpdate = Math.abs(versionOnUpdate);  // normalize to positive version
 
-    boolean isReplay = (cmd.getFlags() & UpdateCommand.REPLAY) != 0;
-    boolean leaderLogic = isLeader && !isReplay;
+    boolean isReplayOrPeersync = (cmd.getFlags() & (UpdateCommand.REPLAY | UpdateCommand.REPLAY)) != 0;
+    boolean leaderLogic = isLeader && !isReplayOrPeersync;
 
     if (!leaderLogic && versionOnUpdate==0) {
       throw new SolrException(ErrorCode.BAD_REQUEST, "missing _version_ on update from leader");
@@ -1028,6 +1040,8 @@ public class DistributedUpdateProcessor 
 
   @Override
   public void processCommit(CommitUpdateCommand cmd) throws IOException {
+    updateCommand = cmd;
+
     if (zkEnabled) {
       zkCheck();
     }
@@ -1055,11 +1069,9 @@ public class DistributedUpdateProcessor 
       if (!req.getParams().getBool(COMMIT_END_POINT, false)) {
         params.set(COMMIT_END_POINT, true);
 
-        String nodeName = req.getCore().getCoreDescriptor().getCoreContainer()
-            .getZkController().getNodeName();
-        String shardZkNodeName = nodeName + "_" + req.getCore().getName();
+        String coreNodeName = zkController.getCoreNodeName(req.getCore().getCoreDescriptor());
         List<Node> nodes = getCollectionUrls(req, req.getCore().getCoreDescriptor()
-            .getCloudDescriptor().getCollectionName(), shardZkNodeName);
+            .getCloudDescriptor().getCollectionName(), coreNodeName);
 
         if (nodes != null) {
           cmdDistrib.distribCommit(cmd, nodes, params);
@@ -1078,7 +1090,7 @@ public class DistributedUpdateProcessor 
  
 
   
-  private List<Node> getCollectionUrls(SolrQueryRequest req, String collection, String shardZkNodeName) {
+  private List<Node> getCollectionUrls(SolrQueryRequest req, String collection, String coreNodeName) {
     ClusterState clusterState = req.getCore().getCoreDescriptor()
         .getCoreContainer().getZkController().getClusterState();
     List<Node> urls = new ArrayList<Node>();
@@ -1094,7 +1106,7 @@ public class DistributedUpdateProcessor 
       
       for (Entry<String,Replica> entry : shardMap.entrySet()) {
         ZkCoreNodeProps nodeProps = new ZkCoreNodeProps(entry.getValue());
-        if (clusterState.liveNodesContain(nodeProps.getNodeName()) && !entry.getKey().equals(shardZkNodeName)) {
+        if (clusterState.liveNodesContain(nodeProps.getNodeName()) && !entry.getKey().equals(coreNodeName)) {
           urls.add(new StdNode(nodeProps));
         }
       }
@@ -1119,11 +1131,6 @@ public class DistributedUpdateProcessor 
       this.collection = collection;
       this.shardId = shardId;
     }
-    
-    @Override
-    public String toString() {
-      return url;
-    }
 
     @Override
     public boolean checkRetry() {
@@ -1136,7 +1143,7 @@ public class DistributedUpdateProcessor 
         return false;
       }
       
-      this.url = leaderProps.getCoreUrl();
+      this.nodeProps = leaderProps;
 
       return true;
     }
@@ -1157,16 +1164,16 @@ public class DistributedUpdateProcessor 
       if (!super.equals(obj)) return false;
       if (getClass() != obj.getClass()) return false;
       RetryNode other = (RetryNode) obj;
-      if (url == null) {
-        if (other.url != null) return false;
-      } else if (!url.equals(other.url)) return false;
+      if (nodeProps.getCoreUrl() == null) {
+        if (other.nodeProps.getCoreUrl() != null) return false;
+      } else if (!nodeProps.getCoreUrl().equals(other.nodeProps.getCoreUrl())) return false;
 
       return true;
     }
   }
 
   /**
-   * Returns a boolean indicating wether or not the caller should behave as 
+   * Returns a boolean indicating whether or not the caller should behave as
    * if this is the "leader" even when ZooKeeper is not enabled.  
    * (Even in non zk mode, tests may simulate updates to/from a leader)
    */

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/FieldLengthUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/FieldLengthUpdateProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/FieldLengthUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/FieldLengthUpdateProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -43,8 +43,7 @@ import org.apache.solr.core.SolrCore;
  *     &lt;str&gt;solr.TrieIntField&lt;/str&gt;
  *     &lt;str&gt;solr.TrieLongField&lt;/str&gt;
  *   &lt;/arr&gt;
- * &lt;/processor&gt;
- * </pre>
+ * &lt;/processor&gt;</pre>
  */
 public final class FieldLengthUpdateProcessorFactory extends FieldMutatingUpdateProcessorFactory {
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -91,8 +91,7 @@ import org.apache.solr.util.plugin.SolrC
  *   &lt;lst name="exclude"&gt;
  *     &lt;str name="typeClass"&gt;solr.DateField&lt;/str&gt;
  *   &lt;/lst&gt;
- * &lt;/processor&gt;
- * </pre>
+ * &lt;/processor&gt;</pre>
  * 
  * <p>
  * Subclasses define the default selection behavior to be applied if no 
@@ -243,7 +242,7 @@ public abstract class FieldMutatingUpdat
 
   /**
    * Removes all instance of the key from NamedList, returning the Set of 
-   * Strings that key refered to.  Throws an error if the key didn't refer 
+   * Strings that key referred to.  Throws an error if the key didn't refer
    * to one or more strings (or arrays of strings)
    * @exception SolrException invalid arr/str structure.
    */

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/HTMLStripFieldUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/HTMLStripFieldUpdateProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/HTMLStripFieldUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/HTMLStripFieldUpdateProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -43,8 +43,7 @@ import java.io.StringWriter;
  * <pre class="prettyprint">
  * &lt;processor class="solr.HTMLStripFieldUpdateProcessorFactory"&gt;
  *   &lt;str name="typeClass"&gt;solr.StrField&lt;/str&gt;
- * &lt;/processor&gt;
- * </pre>
+ * &lt;/processor&gt;</pre>
  */
 public final class HTMLStripFieldUpdateProcessorFactory extends FieldMutatingUpdateProcessorFactory {
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/IgnoreFieldUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/IgnoreFieldUpdateProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/IgnoreFieldUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/IgnoreFieldUpdateProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -42,22 +42,16 @@ import org.apache.solr.response.SolrQuer
  * </p>
  *
  * <pre class="prettyprint">
- *  &lt;updateRequestProcessorChain&gt;
- *    &lt;processor class="solr.IgnoreFieldUpdateProcessorFactory" /&gt;
- *  &lt;/updateRequestProcessorChain&gt;
- * </pre>
+ * &lt;processor class="solr.IgnoreFieldUpdateProcessorFactory" /&gt;</pre>
  *
  * <p>
  * In this second example, any field name ending in "_raw" found in a 
  * document being added would be removed...
  * </p>
  * <pre class="prettyprint">
- *  &lt;updateRequestProcessorChain&gt;
- *    &lt;processor class="solr.IgnoreFieldUpdateProcessorFactory"&gt;
- *      &lt;str name="fieldRegex"&gt;.*_raw&lt;/str&gt;
- *    &lt;/processor&gt;
- *  &lt;/updateRequestProcessorChain&gt;
- * </pre>
+ * &lt;processor class="solr.IgnoreFieldUpdateProcessorFactory"&gt;
+ *   &lt;str name="fieldRegex"&gt;.*_raw&lt;/str&gt;
+ * &lt;/processor&gt;</pre>
  */
 public final class IgnoreFieldUpdateProcessorFactory extends FieldMutatingUpdateProcessorFactory {
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -94,7 +94,7 @@ class LogUpdateProcessor extends UpdateR
   
   @Override
   public void processAdd(AddUpdateCommand cmd) throws IOException {
-    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString()); }
+    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString() + " " + req); }
 
     // call delegate first so we can log things like the version that get set later
     if (next != null) next.processAdd(cmd);
@@ -117,7 +117,7 @@ class LogUpdateProcessor extends UpdateR
 
   @Override
   public void processDelete( DeleteUpdateCommand cmd ) throws IOException {
-    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString()); }
+    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString() + " " + req); }
     if (next != null) next.processDelete(cmd);
 
     if (cmd.isDeleteById()) {
@@ -145,7 +145,7 @@ class LogUpdateProcessor extends UpdateR
 
   @Override
   public void processMergeIndexes(MergeIndexesCommand cmd) throws IOException {
-    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString()); }
+    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString() + " " + req); }
     if (next != null) next.processMergeIndexes(cmd);
 
     toLog.add("mergeIndexes", cmd.toString());
@@ -153,7 +153,7 @@ class LogUpdateProcessor extends UpdateR
 
   @Override
   public void processCommit( CommitUpdateCommand cmd ) throws IOException {
-    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString()); }
+    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString() + " " + req); }
     if (next != null) next.processCommit(cmd);
 
 
@@ -166,7 +166,7 @@ class LogUpdateProcessor extends UpdateR
    */
   @Override
   public void processRollback( RollbackUpdateCommand cmd ) throws IOException {
-    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString()); }
+    if (logDebug) { log.debug("PRE_UPDATE " + cmd.toString() + " " + req); }
     if (next != null) next.processRollback(cmd);
 
     toLog.add("rollback", "");
@@ -175,39 +175,28 @@ class LogUpdateProcessor extends UpdateR
 
   @Override
   public void finish() throws IOException {
-    if (logDebug) { log.debug("PRE_UPDATE finish()"); }
+    if (logDebug) { log.debug("PRE_UPDATE FINISH " + req); }
     if (next != null) next.finish();
 
     // LOG A SUMMARY WHEN ALL DONE (INFO LEVEL)
-    
 
+    if (log.isInfoEnabled()) {
+      StringBuilder sb = new StringBuilder(rsp.getToLogAsString(req.getCore().getLogId()));
 
-    NamedList<Object> stdLog = rsp.getToLog();
+      rsp.getToLog().clear();   // make it so SolrCore.exec won't log this again
 
-    StringBuilder sb = new StringBuilder(req.getCore().getLogId());
-
-    for (int i=0; i<stdLog.size(); i++) {
-      String name = stdLog.getName(i);
-      Object val = stdLog.getVal(i);
-      if (name != null) {
-        sb.append(name).append('=');
+      // if id lists were truncated, show how many more there were
+      if (adds != null && numAdds > maxNumToLog) {
+        adds.add("... (" + numAdds + " adds)");
       }
-      sb.append(val).append(' ');
-    }
-
-    stdLog.clear();   // make it so SolrCore.exec won't log this again
+      if (deletes != null && numDeletes > maxNumToLog) {
+        deletes.add("... (" + numDeletes + " deletes)");
+      }
+      long elapsed = rsp.getEndTime() - req.getStartTime();
 
-    // if id lists were truncated, show how many more there were
-    if (adds != null && numAdds > maxNumToLog) {
-      adds.add("... (" + numAdds + " adds)");
-    }
-    if (deletes != null && numDeletes > maxNumToLog) {
-      deletes.add("... (" + numDeletes + " deletes)");
+      sb.append(toLog).append(" 0 ").append(elapsed);
+      log.info(sb.toString());
     }
-    long elapsed = rsp.getEndTime() - req.getStartTime();
-
-    sb.append(toLog).append(" 0 ").append(elapsed);
-    log.info(sb.toString());
   }
 }
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/RegexReplaceProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/RegexReplaceProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/RegexReplaceProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/RegexReplaceProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -52,8 +52,7 @@ import org.slf4j.LoggerFactory;
  *   &lt;str name="fieldName"&gt;title&lt;/str&gt;
  *   &lt;str name="pattern"&gt;\s+&lt;/str&gt;
  *   &lt;str name="replacement"&gt; &lt;/str&gt;
- * &lt;/processor&gt;
- * </pre>
+ * &lt;/processor&gt;</pre>
  * 
  * @see java.util.regex.Pattern
  */

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/RemoveBlankFieldUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/RemoveBlankFieldUpdateProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/RemoveBlankFieldUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/RemoveBlankFieldUpdateProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -39,8 +39,7 @@ import org.apache.solr.response.SolrQuer
  *   &lt;lst name="exclude"&gt;
  *     &lt;str name="fieldRegex"&gt;.*_literal&lt;/str&gt;
  *   &lt;/lst&gt;
- * &lt;/processor&gt;
- * </pre>
+ * &lt;/processor&gt;</pre>
  *
  */
 public final class RemoveBlankFieldUpdateProcessorFactory extends FieldMutatingUpdateProcessorFactory {

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -134,7 +134,13 @@ public class SignatureUpdateProcessorFac
       if (enabled) {
         SolrInputDocument doc = cmd.getSolrInputDocument();
         List<String> currDocSigFields = null;
+        boolean isPartialUpdate = DistributedUpdateProcessor.isAtomicUpdate(cmd);
         if (sigFields == null || sigFields.size() == 0) {
+          if (isPartialUpdate)  {
+            throw new SolrException
+                (ErrorCode.SERVER_ERROR,
+                    "Can't use SignatureUpdateProcessor with partial updates on signature fields");
+          }
           Collection<String> docFields = doc.getFieldNames();
           currDocSigFields = new ArrayList<String>(docFields.size());
           currDocSigFields.addAll(docFields);
@@ -149,6 +155,12 @@ public class SignatureUpdateProcessorFac
         for (String field : currDocSigFields) {
           SolrInputField f = doc.getField(field);
           if (f != null) {
+            if (isPartialUpdate)  {
+              throw new SolrException
+                  (ErrorCode.SERVER_ERROR,
+                      "Can't use SignatureUpdateProcessor with partial update request " +
+                          "containing signature field: " + field);
+            }
             sig.add(field);
             Object o = f.getValue();
             if (o instanceof Collection) {

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/TrimFieldUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/TrimFieldUpdateProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/TrimFieldUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/TrimFieldUpdateProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -39,8 +39,7 @@ import org.apache.solr.response.SolrQuer
  *   &lt;lst name="exclude"&gt;
  *     &lt;str name="fieldRegex"&gt;.*_literal&lt;/str&gt;
  *   &lt;/lst&gt;
- * &lt;/processor&gt;
- * </pre>
+ * &lt;/processor&gt;</pre>
  */
 public final class TrimFieldUpdateProcessorFactory extends FieldMutatingUpdateProcessorFactory {
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/TruncateFieldUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/TruncateFieldUpdateProcessorFactory.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/TruncateFieldUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/TruncateFieldUpdateProcessorFactory.java Sun Mar 10 15:04:57 2013
@@ -40,8 +40,7 @@ import org.apache.solr.response.SolrQuer
  * &lt;processor class="solr.TruncateFieldUpdateProcessorFactory"&gt;
  *   &lt;str name="typeClass"&gt;solr.StrField&lt;/str&gt;
  *   &lt;int name="maxLength"&gt;100&lt;/int&gt;
- * &lt;/processor&gt;
- * </pre>
+ * &lt;/processor&gt;</pre>
  */
 public final class TruncateFieldUpdateProcessorFactory 
   extends FieldMutatingUpdateProcessorFactory {

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java Sun Mar 10 15:04:57 2013
@@ -145,8 +145,7 @@ public final class UpdateRequestProcesso
    * If the <code>DISTRIB_UPDATE_PARAM</code> is present in the request and is 
    * non-blank, then any factory in this chain prior to the instance of 
    * <code>{@link DistributingUpdateProcessorFactory}</code> will be skipped, 
-   * and the <code>UpdateRequestProcessor</code> returned will be from that 
-   * <code>DistributingUpdateProcessorFactory</code>
+   * except for the log update processor factory.
    *
    * @see UpdateRequestProcessorFactory#getInstance
    * @see DistributingUpdateProcessorFactory#DISTRIB_UPDATE_PARAM
@@ -157,18 +156,28 @@ public final class UpdateRequestProcesso
     UpdateRequestProcessor processor = null;
     UpdateRequestProcessor last = null;
     
-    final String distribPhase = req.getParams().get
-      (DistributingUpdateProcessorFactory.DISTRIB_UPDATE_PARAM, "");
-    final boolean skipToDistrib = ! distribPhase.trim().isEmpty();
+    final String distribPhase = req.getParams().get(DistributingUpdateProcessorFactory.DISTRIB_UPDATE_PARAM);
+    final boolean skipToDistrib = distribPhase != null;
+    boolean afterDistrib = true;  // we iterate backwards, so true to start
 
     for (int i = chain.length-1; i>=0; i--) {
-      processor = chain[i].getInstance(req, rsp, last);
-      last = processor == null ? last : processor;
-      if (skipToDistrib 
-          && chain[i] instanceof DistributingUpdateProcessorFactory) {
-        break;
+      UpdateRequestProcessorFactory factory = chain[i];
+
+      if (skipToDistrib) {
+        if (afterDistrib) {
+          if (factory instanceof DistributingUpdateProcessorFactory) {
+            afterDistrib = false;
+          }
+        } else if (!(factory instanceof LogUpdateProcessorFactory)) {    // TODO: use a marker interface for this?
+          // skip anything that is not the log factory
+          continue;
+        }
       }
+
+      processor = factory.getInstance(req, rsp, last);
+      last = processor == null ? last : processor;
     }
+
     return last;
   }
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/DOMUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/DOMUtil.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/DOMUtil.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/DOMUtil.java Sun Mar 10 15:04:57 2013
@@ -42,7 +42,7 @@ public class DOMUtil {
     outer: for (int j=0; j<attrs.getLength(); j++) {
       Node attr = attrs.item(j);
 
-      // automaticly exclude things in the xml namespace, ie: xml:base
+      // automatically exclude things in the xml namespace, ie: xml:base
       if (XML_RESERVED_PREFIX.equals(attr.getPrefix())) continue outer;
 
       String attrName = attr.getNodeName();
@@ -234,7 +234,7 @@ public class DOMUtil {
          according to the DOM Level-3 Core documentation - which
          specifies that the Attr's children should have their
          textContent concated (Attr's can have a single child which
-         is either Text node or an EntityRefrence).  In practice,
+         is either Text node or an EntityReference).  In practice,
          DOM implementations do not seem to use child nodes of
          Attributes, storing the "text" directly as the nodeValue.
          Fortunately, the DOM Spec indicates that when Attr.nodeValue
@@ -289,117 +289,18 @@ public class DOMUtil {
 
       // handle child by node type
       if (child.getNodeType() == Node.TEXT_NODE) {
-        child.setNodeValue(substituteProperty(child.getNodeValue(), properties));
+        child.setNodeValue(PropertiesUtil.substituteProperty(child.getNodeValue(), properties));
       } else if (child.getNodeType() == Node.ELEMENT_NODE) {
         // handle child elements with recursive call
         NamedNodeMap attributes = child.getAttributes();
         for (int i = 0; i < attributes.getLength(); i++) {
           Node attribute = attributes.item(i);
-          attribute.setNodeValue(substituteProperty(attribute.getNodeValue(), properties));
+          attribute.setNodeValue(PropertiesUtil.substituteProperty(attribute.getNodeValue(), properties));
         }
         substituteProperties(child, properties);
       }
     }
   }
 
-  /*
-   * This method borrowed from Ant's PropertyHelper.replaceProperties:
-   *   http://svn.apache.org/repos/asf/ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java
-   */
-  public static String substituteProperty(String value, Properties coreProperties) {
-    if (value == null || value.indexOf('$') == -1) {
-      return value;
-    }
-
-    List<String> fragments = new ArrayList<String>();
-    List<String> propertyRefs = new ArrayList<String>();
-    parsePropertyString(value, fragments, propertyRefs);
-
-    StringBuilder sb = new StringBuilder();
-    Iterator<String> i = fragments.iterator();
-    Iterator<String> j = propertyRefs.iterator();
-
-    while (i.hasNext()) {
-      String fragment = i.next();
-      if (fragment == null) {
-        String propertyName = j.next();
-        String defaultValue = null;
-        int colon_index = propertyName.indexOf(':');
-        if (colon_index > -1) {
-          defaultValue = propertyName.substring(colon_index + 1);
-          propertyName = propertyName.substring(0,colon_index);
-        }
-        if (coreProperties != null) {
-          fragment = coreProperties.getProperty(propertyName);
-        }
-        if (fragment == null) {
-          fragment = System.getProperty(propertyName, defaultValue);
-        }
-        if (fragment == null) {
-          throw new SolrException( SolrException.ErrorCode.SERVER_ERROR, "No system property or default value specified for " + propertyName + " value:" + value);
-        }
-      }
-      sb.append(fragment);
-    }
-    return sb.toString();
-  }
-
-  /*
-   * This method borrowed from Ant's PropertyHelper.parsePropertyStringDefault:
-   *   http://svn.apache.org/repos/asf/ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java
-   */
-  private static void parsePropertyString(String value, List<String> fragments, List<String> propertyRefs) {
-      int prev = 0;
-      int pos;
-      //search for the next instance of $ from the 'prev' position
-      while ((pos = value.indexOf("$", prev)) >= 0) {
-
-          //if there was any text before this, add it as a fragment
-          //TODO, this check could be modified to go if pos>prev;
-          //seems like this current version could stick empty strings
-          //into the list
-          if (pos > 0) {
-              fragments.add(value.substring(prev, pos));
-          }
-          //if we are at the end of the string, we tack on a $
-          //then move past it
-          if (pos == (value.length() - 1)) {
-              fragments.add("$");
-              prev = pos + 1;
-          } else if (value.charAt(pos + 1) != '{') {
-              //peek ahead to see if the next char is a property or not
-              //not a property: insert the char as a literal
-              /*
-              fragments.addElement(value.substring(pos + 1, pos + 2));
-              prev = pos + 2;
-              */
-              if (value.charAt(pos + 1) == '$') {
-                  //backwards compatibility two $ map to one mode
-                  fragments.add("$");
-                  prev = pos + 2;
-              } else {
-                  //new behaviour: $X maps to $X for all values of X!='$'
-                  fragments.add(value.substring(pos, pos + 2));
-                  prev = pos + 2;
-              }
-
-          } else {
-              //property found, extract its name or bail on a typo
-              int endName = value.indexOf('}', pos);
-              if (endName < 0) {
-                throw new RuntimeException("Syntax error in property: " + value);
-              }
-              String propertyName = value.substring(pos + 2, endName);
-              fragments.add(null);
-              propertyRefs.add(propertyName);
-              prev = endName + 1;
-          }
-      }
-      //no more $ signs found
-      //if there is any tail to the string, append it
-      if (prev < value.length()) {
-          fragments.add(value.substring(prev));
-      }
-  }
 
 }

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/DateMathParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/DateMathParser.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/DateMathParser.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/DateMathParser.java Sun Mar 10 15:04:57 2013
@@ -18,6 +18,7 @@
 package org.apache.solr.util;
 
 import org.apache.solr.request.SolrRequestInfo;
+import org.apache.solr.common.params.CommonParams; //jdoc
 
 import java.util.Date;
 import java.util.Calendar;
@@ -59,23 +60,37 @@ import java.util.regex.Pattern;
  * </pre>
  *
  * <p>
+ * (Multiple aliases exist for the various units of time (ie:
+ * <code>MINUTE</code> and <code>MINUTES</code>; <code>MILLI</code>,
+ * <code>MILLIS</code>, <code>MILLISECOND</code>, and
+ * <code>MILLISECONDS</code>.)  The complete list can be found by
+ * inspecting the keySet of {@link #CALENDAR_UNITS})
+ * </p>
+ *
+ * <p>
  * All commands are relative to a "now" which is fixed in an instance of
  * DateMathParser such that
  * <code>p.parseMath("+0MILLISECOND").equals(p.parseMath("+0MILLISECOND"))</code>
  * no matter how many wall clock milliseconds elapse between the two
  * distinct calls to parse (Assuming no other thread calls
- * "<code>setNow</code>" in the interim)
+ * "<code>setNow</code>" in the interim).  The default value of 'now' is 
+ * the time at the moment the <code>DateMathParser</code> instance is 
+ * constructed, unless overridden by the {@link CommonParams#NOW NOW}
+ * request param.
  * </p>
  *
  * <p>
- * Multiple aliases exist for the various units of time (ie:
- * <code>MINUTE</code> and <code>MINUTES</code>; <code>MILLI</code>,
- * <code>MILLIS</code>, <code>MILLISECOND</code>, and
- * <code>MILLISECONDS</code>.)  The complete list can be found by
- * inspecting the keySet of <code>CALENDAR_UNITS</code>.
+ * All commands are also affected to the rules of a specified {@link TimeZone}
+ * (including the start/end of DST if any) which determine when each arbitrary 
+ * day starts.  This not only impacts rounding/adding of DAYs, but also 
+ * cascades to rounding of HOUR, MIN, MONTH, YEAR as well.  The default 
+ * <code>TimeZone</code> used is <code>UTC</code> unless  overridden by the 
+ * {@link CommonParams#TZ TZ}
+ * request param.
  * </p>
  *
- *
+ * @see SolrRequestInfo#getClientTimeZone
+ * @see SolrRequestInfo#getNOW
  */
 public class DateMathParser  {
   
@@ -207,7 +222,7 @@ public class DateMathParser  {
    * Default constructor that assumes UTC should be used for rounding unless 
    * otherwise specified in the SolrRequestInfo
    * 
-   * @see #DEFAULT_MATH_TZ
+   * @see SolrRequestInfo#getClientTimeZone
    * @see #DEFAULT_MATH_LOCALE
    */
   public DateMathParser() {

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/SimplePostTool.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/SimplePostTool.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/SimplePostTool.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/SimplePostTool.java Sun Mar 10 15:04:57 2013
@@ -28,7 +28,9 @@ import java.io.ByteArrayInputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -36,6 +38,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.HashSet;
+import java.util.TimeZone;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 import java.util.zip.GZIPInputStream;
@@ -165,6 +168,7 @@ public class SimplePostTool {
    * This method delegates to the correct mode method.
    */
   public void execute() {
+    final long startTime = System.currentTimeMillis();
     if (DATA_MODE_FILES.equals(mode) && args.length > 0) {
       doFilesMode();
     } else if(DATA_MODE_ARGS.equals(mode) && args.length > 0) {
@@ -180,9 +184,21 @@ public class SimplePostTool {
     
     if (commit)   commit();
     if (optimize) optimize();
+    final long endTime = System.currentTimeMillis();
+    displayTiming(endTime - startTime);
   }
   
   /**
+   * Pretty prints the number of milliseconds taken to post the content to Solr
+   * @param millis the time in milliseconds
+   */
+  private void displayTiming(long millis) {
+    SimpleDateFormat df = new SimpleDateFormat("H:mm:ss.SSS", Locale.getDefault());
+    df.setTimeZone(TimeZone.getTimeZone("UTC"));
+    System.out.println("Time spent: "+df.format(new Date(millis)));
+  }
+
+  /**
    * Parses incoming arguments and system params and initializes the tool
    * @param args the incoming cmd line args
    * @return an instance of SimplePostTool
@@ -196,7 +212,8 @@ public class SimplePostTool {
         fatal("System Property 'data' is not valid for this tool: " + mode);
       }
       String params = System.getProperty("params", "");
-      urlStr = System.getProperty("url", SimplePostTool.appendParam(DEFAULT_POST_URL, params));
+      urlStr = System.getProperty("url", DEFAULT_POST_URL);
+      urlStr = SimplePostTool.appendParam(urlStr, params);
       URL url = new URL(urlStr);
       boolean auto = isOn(System.getProperty("auto", DEFAULT_AUTO));
       String type = System.getProperty("type");
@@ -800,7 +817,7 @@ public class SimplePostTool {
             " " + urlc.getResponseMessage() + " for url "+url);
       }
     } catch (IOException e) {
-      warn("An error occured posting data to "+url+". Please check that Solr is running.");
+      warn("An error occurred posting data to "+url+". Please check that Solr is running.");
     }
   }
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java Sun Mar 10 15:04:57 2013
@@ -622,7 +622,7 @@ public class SolrPluginUtils {
   private final static Pattern CONSECUTIVE_OP_PATTERN = Pattern.compile( "\\s+[+-](?:\\s*[+-]+)+" );
 
   /**
-   * Strips operators that are used illegally, otherwise reuturns it's
+   * Strips operators that are used illegally, otherwise returns its
    * input.  Some examples of illegal user queries are: "chocolate +-
    * chip", "chocolate - - chip", and "chocolate chip -".
    */

Modified: lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/doc-files/min-should-match.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/doc-files/min-should-match.html?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/doc-files/min-should-match.html (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/java/org/apache/solr/util/doc-files/min-should-match.html Sun Mar 10 15:04:57 2013
@@ -30,7 +30,7 @@ DisMaxRequestHandler. 
 </blockquote>
 
 
-<h2>Explaination of Concept: "Min Number Should Match"</h2>
+<h2>Explanation of Concept: "Min Number Should Match"</h2>
 <div>
 :TODO:
 </div>
@@ -55,7 +55,7 @@ DisMaxRequestHandler. 
 
  <dt><code>75%</code></dt>
  <dd>A percentage, indicating that this percent of the total number of
-     optional clauses are neccessary.  The number computed from the
+     optional clauses are necessary.  The number computed from the
      percentage is rounded down and used as the minimum.
  </dd>
 
@@ -71,17 +71,17 @@ DisMaxRequestHandler. 
      by any of the previously mentioned specifiers is a conditional
      specification.  It indicates that if the number of optional clauses is
      equal to (or less than) the integer, they are all required, but
-     if it's greater then the integer, the specification applies.
+     if it's greater than the integer, the specification applies.
      In this example: if there are 1 to 3 clauses they are all required,
      but for 4 or more clauses only 90% are required.
  </dd>
 
  <dt><code>2&lt;-25% 9&lt;-3</code></dt>
- <dd>Multiple conditional specifications can be seperated by spaces,
-     each one only being valid for numbers greater then the one before it.
+ <dd>Multiple conditional specifications can be separated by spaces,
+     each one only being valid for numbers greater than the one before it.
      In this example: if there are 1 or 2 clauses both are required,
-     if there are 3-9 clauses all but 25% are requred, and if there
-     are more then 9 clauses, all but three are required.
+     if there are 3-9 clauses all but 25% are required, and if there
+     are more than 9 clauses, all but three are required.
  </dd>
 </dl>
 
@@ -104,10 +104,10 @@ DisMaxRequestHandler. 
  </li>
  <li>
  No matter what number the calculation arrives at,
- a value greater then the number of optional clauses, or a value less then
+ a value greater than the number of optional clauses, or a value less than
  1 will never be used.  (ie: no matter how low or how high the result of the
  calculation result is, the minimum number of required matches will never
- be lower then 1 or greatered then the number of clauses.
+ be lower than 1 or greater than the number of clauses.
  </li>
 </ul>
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/bad_solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/bad_solrconfig.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/bad_solrconfig.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/bad_solrconfig.xml Sun Mar 10 15:04:57 2013
@@ -17,10 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id: solrconfig.xml 382610 2006-03-03 01:43:03Z yonik $
-     $Source$
-     $Name$
-  -->
 
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/currency.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/currency.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/currency.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/currency.xml Sun Mar 10 15:04:57 2013
@@ -16,17 +16,20 @@
  limitations under the License.
 -->
 
-<!-- Example exchange rates file.  -->
+<!-- Example exchange rates file, 
+
+
+     NOTE: this data must be kept in sync with ./open-exchange-rates.json
+-->
 
 <currencyConfig version="1.0">
   <rates>
-    <!-- Example -->
-    <rate from="USD" to="JPY" rate="81.29"/>
-
     <!-- Fake rates for testing -->
+    <rate from="USD" to="JPY" rate="81.29"/>
     <rate from="USD" to="EUR" rate="2.5"/>
     <rate from="USD" to="GBP" rate="0.5"/>
     <rate from="EUR" to="GBP" rate="0.5"/>
+    <rate from="MXN" to="USD" rate="0.5"/>
 
     <!-- Asymmetric rate -->
     <rate from="EUR" to="USD" rate="0.5"/>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/open-exchange-rates.json
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/open-exchange-rates.json?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/open-exchange-rates.json (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/open-exchange-rates.json Sun Mar 10 15:04:57 2013
@@ -1,167 +1,18 @@
 {
-  "disclaimer": "This data is collected from various providers and provided free of charge for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability or fitness for any purpose; use at your own risk. Other than that - have fun, and please share/watch/fork if you think data like this should be free!",
-  "license": "Data collected from various providers with public-facing APIs; copyright may apply; not for resale; no warranties given.",
+  "disclaimer": "This data is not real, it was synthetically created to match currency.xml.  It is modeled after the data format available from openexchangerates.org.  See https://openexchangerates.org/documentation for details",
+  "license": "http://www.apache.org/licenses/LICENSE-2.0",
   "timestamp": 1332070464,
+
+
+  "IMPORTANT NOTE": "In order for tests to work, this data must be kept in sync with ./currency.xml",
+
+
   "base": "USD",
   "rates": {
-    "AED": 3.6732,
-    "AFN": 48.299999,
-    "ALL": 105.919998,
-    "AMD": 388.890015,
-    "ANG": 1.79,
-    "AOA": 94.769997,
-    "ARS": 4.35,
-    "AUD": 0.943931,
-    "AWG": 1.7899,
-    "AZN": 0.7863,
-    "BAM": 1.48775,
-    "BBD": 2,
-    "BDT": 82,
-    "BGN": 1.4962,
-    "BHD": 0.37703,
-    "BIF": 1304.170044,
-    "BMD": 1,
-    "BND": 1.2575,
-    "BOB": 6.91,
-    "BRL": 1.8003,
-    "BSD": 1,
-    "BTN": 50.185001,
-    "BWP": 7.2307,
-    "BYR": 8150,
-    "BZD": 1.9135,
-    "CAD": 0.9921,
-    "CDF": 917.276917,
-    "CHF": 0.9164,
-    "CLF": 0.02146,
-    "CLP": 482.75,
-    "CNY": 6.3239,
-    "COP": 1760,
-    "CRC": 507.600006,
-    "CUP": 1,
-    "CVE": 84.190002,
-    "CZK": 18.606001,
-    "DJF": 179.490005,
-    "DKK": 5.64424,
-    "DOP": 39.025002,
-    "DZD": 74.544998,
-    "EGP": 6.0385,
-    "ETB": 17.720449,
-    "EUR": 0.758956,
-    "FJD": 1.7734,
-    "FKP": 0.6316,
-    "GBP": 0.631373,
-    "GEL": 1.6469,
-    "GHS": 1.7455,
-    "GIP": 0.63165,
-    "GMD": 31.5,
-    "GNF": 7100,
-    "GTQ": 7.6975,
-    "GYD": 203.699997,
-    "HKD": 7.76306,
-    "HNL": 19.055,
-    "HRK": 5.7333,
-    "HTG": 41,
-    "HUF": 219.850006,
-    "IDR": 9118,
-    "IEP": 0.5978,
-    "ILS": 3.7542,
-    "INR": 50.165001,
-    "IQD": 1165.5,
-    "IRR": 12308,
-    "ISK": 127.440002,
-    "JMD": 86.699997,
-    "JOD": 0.7095,
-    "JPY": 83.445,
-    "KES": 83.18,
-    "KGS": 46.699402,
-    "KHR": 4010.300049,
-    "KMF": 373.424255,
-    "KPW": 900,
-    "KRW": 1125.849976,
-    "KWD": 0.27925,
-    "KZT": 147.690002,
-    "LAK": 7993.799805,
-    "LBP": 1504,
-    "LKR": 125.224998,
-    "LRD": 73.459999,
-    "LSL": 7.5768,
-    "LTL": 2.6219,
-    "LVL": 0.5291,
-    "LYD": 1.2572,
-    "MAD": 8.4611,
-    "MDL": 11.89,
-    "MGA": 2155,
-    "MKD": 46.705002,
-    "MMK": 6.51,
-    "MNT": 1322.5,
-    "MOP": 7.9958,
-    "MRO": 293,
-    "MUR": 29.110001,
-    "MVR": 15.36,
-    "MWK": 165.206207,
-    "MXN": 12.6745,
-    "MYR": 3.0575,
-    "MZN": 27.200001,
-    "NAD": 7.58,
-    "NGN": 157.600006,
-    "NIO": 23.215,
-    "NOK": 5.73163,
-    "NPR": 80.620003,
-    "NZD": 1.212269,
-    "OMR": 0.38485,
-    "PAB": 1,
-    "PEN": 2.674,
-    "PGK": 2.0627,
-    "PHP": 43.02,
-    "PKR": 90.800003,
-    "PLN": 3.1285,
-    "PYG": 4245,
-    "QAR": 3.6415,
-    "RON": 3.3256,
-    "RSD": 84.100502,
-    "RUB": 29.2342,
-    "RWF": 606.717468,
-    "SAR": 3.7505,
-    "SBD": 7.075973,
-    "SCR": 14.0447,
-    "SDG": 2.6765,
-    "SEK": 6.74525,
-    "SGD": 1.258,
-    "SHP": 0.63165,
-    "SLL": 4364.5,
-    "SOS": 1629,
-    "SRD": 3.2875,
-    "STD": 18650,
-    "SVC": 8.7475,
-    "SYP": 57.450001,
-    "SZL": 7.5752,
-    "THB": 30.700001,
-    "TJS": 4.7588,
-    "TMT": 2.85,
-    "TND": 1.5178,
-    "TOP": 1.693601,
-    "TRY": 1.796,
-    "TTD": 6.40015,
-    "TWD": 29.532,
-    "TZS": 1595,
-    "UAH": 8.029,
-    "UGX": 2481.699951,
     "USD": 1,
-    "UYU": 19.469999,
-    "UZS": 1835.75,
-    "VEF": 4.295,
-    "VND": 20820,
-    "VUV": 90.199997,
-    "WST": 2.247475,
-    "XAF": 497.898987,
-    "XCD": 2.7,
-    "XDR": 0.652794,
-    "XOF": 498.399994,
-    "XPF": 90.639999,
-    "YER": 216.005005,
-    "ZAR": 7.5688,
-    "ZMK": 5271.5,
-    "ZWD": 378.700012,
-    "ZWL": 322.355011
+    "JPY": 81.29,
+    "EUR": 2.5,
+    "GBP": 0.5,
+    "MXN": 2.0
   }
-}
\ No newline at end of file
+}

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-binaryfield.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-binaryfield.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-binaryfield.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-binaryfield.xml Sun Mar 10 15:04:57 2013
@@ -23,9 +23,6 @@
      kitchen sink thrown in. See example/solr/conf/schema.xml for a
      more concise example.
 
-     $Id: schema-copyfield-test.xml 721758 2008-11-30 04:46:20Z koji $
-     $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
-     $Name:  $
   -->
 
 <schema name="test" version="1.2">

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-copyfield-test.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-copyfield-test.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-copyfield-test.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-copyfield-test.xml Sun Mar 10 15:04:57 2013
@@ -23,9 +23,6 @@
      kitchen sink thrown in. See example/solr/conf/schema.xml for a 
      more concise example.
 
-     $Id$
-     $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
-     $Name:  $
   -->
 
 <schema name="test" version="1.0">

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-not-required-unique-key.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-not-required-unique-key.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-not-required-unique-key.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-not-required-unique-key.xml Sun Mar 10 15:04:57 2013
@@ -20,8 +20,6 @@
     Striped down schema used to make sure an explicit required=false is
     observed for the uniqueKey field
 
-    $Id$
-    $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
   -->
 <schema name="test" version="1.0">
   <types>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-numeric.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-numeric.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-numeric.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-numeric.xml Sun Mar 10 15:04:57 2013
@@ -23,9 +23,6 @@
      kitchen sink thrown in. See example/solr/conf/schema.xml for a 
      more concise example.
 
-     $Id: schema.xml 382610 2006-03-03 01:43:03Z yonik $
-     $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
-     $Name:  $
   -->
 
 <schema name="test" version="1.0">

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-replication1.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-replication1.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-replication1.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-replication1.xml Sun Mar 10 15:04:57 2013
@@ -23,9 +23,6 @@
      kitchen sink thrown in. See example/solr/conf/schema.xml for a 
      more concise example.
 
-     $Id$
-     $Source$
-     $Name$
   -->
 
 <schema name="test" version="1.2">

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-replication2.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-replication2.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-replication2.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-replication2.xml Sun Mar 10 15:04:57 2013
@@ -23,9 +23,6 @@
      kitchen sink thrown in. See example/solr/conf/schema.xml for a 
      more concise example.
 
-     $Id$
-     $Source$
-     $Name$
   -->
 
 <schema name="test" version="1.2">

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-required-fields.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-required-fields.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-required-fields.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-required-fields.xml Sun Mar 10 15:04:57 2013
@@ -23,9 +23,6 @@
      kitchen sink thrown in. See example/solr/conf/schema.xml for a 
      more concise example.
 
-     $Id$
-     $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
-     $Name:  $
   -->
 
 <schema name="test" version="1.0">

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-stop-keep.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-stop-keep.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-stop-keep.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema-stop-keep.xml Sun Mar 10 15:04:57 2013
@@ -20,9 +20,6 @@
 
   For testing stopword configuration and keep word configuration
 
-     $Id: schema.xml 382610 2006-03-03 01:43:03Z yonik $
-     $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
-     $Name:  $
   -->
 
 <schema name="test" version="1.0">

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema.xml Sun Mar 10 15:04:57 2013
@@ -23,9 +23,6 @@
      kitchen sink thrown in. See example/solr/conf/schema.xml for a
      more concise example.
 
-     $Id: schema.xml 382610 2006-03-03 01:43:03Z yonik $
-     $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
-     $Name:  $
   -->
 
 <schema name="test" version="1.0">
@@ -401,7 +398,7 @@
   <!-- Currency type -->
   <fieldType name="currency" class="solr.CurrencyField" currencyConfig="currency.xml" multiValued="false" />
   <fieldType name="mock_currency" class="solr.CurrencyField" providerClass="solr.MockExchangeRateProvider" foo="bar" multiValued="false" />
-  <fieldType name="openexchangeratesorg_currency" 
+  <fieldType name="oer_currency" 
              class="solr.CurrencyField" 
              multiValued="false"
              providerClass="solr.OpenExchangeRatesOrgProvider"
@@ -484,6 +481,7 @@
    <!-- Test currency -->
    <field name="amount" type="currency" indexed="true" stored="true" multiValued="false"/>
    <field name="mock_amount" type="mock_currency" indexed="true" stored="true"/>
+   <field name="oer_amount" type="oer_currency" indexed="true" stored="true"/>
 
    <!-- test different combinations of indexed and stored -->
    <field name="bind" type="boolean" indexed="true" stored="false"/>
@@ -570,7 +568,7 @@
 
    <field name="textgap" type="textgap" indexed="true" stored="true"/>
 
-   <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
+   <field name="timestamp" type="date" indexed="true" stored="true" docValues="true" default="NOW" multiValued="false"/>
    <field name="multiDefault" type="string" indexed="true" stored="true" default="muLti-Default" multiValued="true"/>
    <field name="intDefault" type="int" indexed="true" stored="true" default="42" multiValued="false"/>
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema12.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema12.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema12.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema12.xml Sun Mar 10 15:04:57 2013
@@ -23,9 +23,6 @@
      kitchen sink thrown in. See example/solr/conf/schema.xml for a 
      more concise example.
 
-     $Id$
-     $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
-     $Name:  $
   -->
 
 <schema name="test" version="1.4">
@@ -597,6 +594,7 @@
    <!-- unused, for testing luke copyFields -->
    <dynamicField name="foo_copysource_*" type="ignored" multiValued="true"/>
    <dynamicField name="bar_copydest_*" type="ignored" multiValued="true"/>
+   <dynamicField name="*_es"  type="text"    indexed="true"  stored="true"/>
 
  </fields>
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema15.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema15.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema15.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema15.xml Sun Mar 10 15:04:57 2013
@@ -45,6 +45,7 @@
     <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
     <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
     <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
+    <fieldType name="currency" class="solr.CurrencyField" currencyConfig="currency.xml" multiValued="false" />
 
     <!-- numeric field types that manipulate the value into
        a string value that isn't human readable in it's internal form,
@@ -518,6 +519,7 @@
    <field name="pointD" type="xyd" indexed="true" stored="true" multiValued="false"/>
    <field name="point_hash" type="geohash" indexed="true" stored="true" multiValued="false"/>
    <field name="store" type="location" indexed="true" stored="true"/>
+   <field name="amount" type="currency" indexed="true" stored="true" multiValued="false"/>
    
    <!-- to test uniq fields -->   
    <field name="uniq" type="string" indexed="true" stored="true" multiValued="true"/>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema_codec.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema_codec.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema_codec.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schema_codec.xml Sun Mar 10 15:04:57 2013
@@ -20,18 +20,29 @@
   <fieldType name="string_pulsing" class="solr.StrField" postingsFormat="Pulsing41"/>
   <fieldType name="string_simpletext" class="solr.StrField" postingsFormat="SimpleText"/>
   <fieldType name="string_standard" class="solr.StrField" postingsFormat="Lucene41"/>
-    <fieldType name="string" class="solr.StrField" />
-  
+
+  <fieldType name="string_disk" class="solr.StrField" docValuesFormat="Disk" />
+  <fieldType name="string_memory" class="solr.StrField" docValuesFormat="Lucene42" />
+
+  <fieldType name="string" class="solr.StrField" />
+
  </types>
  <fields>
    <field name="string_pulsing_f" type="string_pulsing" indexed="true" stored="true" />
    <field name="string_simpletext_f" type="string_simpletext" indexed="true" stored="true" />
    <field name="string_standard_f" type="string_standard" indexed="true" stored="true" />
-   <field name="string_f" type="string" indexed="true" stored="true" />
+
+   <field name="string_disk_f" type="string_disk" indexed="false" stored="false" docValues="true" default="" />
+   <field name="string_memory_f" type="string_memory" indexed="false" stored="false" docValues="true" default="" />
+
+   <field name="string_f" type="string" indexed="true" stored="true" docValues="true" required="true"/>
+
    <dynamicField name="*_simple" type="string_simpletext"  indexed="true" stored="true"/>
    <dynamicField name="*_pulsing" type="string_pulsing"  indexed="true" stored="true"/>
    <dynamicField name="*_standard" type="string_standard"  indexed="true" stored="true"/>
-   
+
+   <dynamicField name="*_disk" type="string_disk" indexed="false" stored="false" docValues="true" default="" />
+   <dynamicField name="*_memory" type="string_memory" indexed="false" stored="false" docValues="true" default="" />
  </fields>
   <defaultSearchField>string_f</defaultSearchField>
  <uniqueKey>string_f</uniqueKey>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/schemasurround.xml Sun Mar 10 15:04:57 2013
@@ -23,9 +23,6 @@
      kitchen sink thrown in. See example/solr/conf/schema.xml for a 
      more concise example.
 
-     $Id: schema12.xml 1149050 2011-07-21 07:09:27Z koji $
-     $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
-     $Name:  $
   -->
 
 <schema name="test" version="1.4">

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-SOLR-749.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-SOLR-749.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-SOLR-749.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-SOLR-749.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id: solrconfig.xml 382610 2006-03-03 01:43:03Z yonik $
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-delpolicy1.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-delpolicy1.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-delpolicy1.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-delpolicy1.xml Sun Mar 10 15:04:57 2013
@@ -17,10 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-  -->
 
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-elevate.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-elevate.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-elevate.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-elevate.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id: solrconfig.xml 382610 2006-03-03 01:43:03Z yonik $
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <jmx />
@@ -179,7 +174,7 @@
 
   <admin>
     <defaultQuery>solr</defaultQuery>
-    <gettableFiles>solrconfig.xml scheam.xml admin-extra.html</gettableFiles>
+    <gettableFiles>solrconfig.xml schema.xml admin-extra.html</gettableFiles>
   </admin>
 
   <!-- test getting system property -->

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-enableplugin.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-enableplugin.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-enableplugin.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-enableplugin.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id: solrconfig-slave.xml 741684 2009-02-06 19:21:44Z shalin $
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <dataDir>${solr.data.dir:}</dataDir>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>  
   <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master1.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master1.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master1.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master1.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <dataDir>${solr.data.dir:}</dataDir>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master2.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master2.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master2.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master2.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <dataDir>${solr.data.dir:}</dataDir>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master3.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master3.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master3.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-master3.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id: solrconfig-master2.xml 1144761 2011-07-09 23:01:53Z sarowe $
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <dataDir>${solr.data.dir:}</dataDir>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-mergepolicy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-mergepolicy.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-mergepolicy.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-mergepolicy.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id: solrconfig.xml 382610 2006-03-03 01:43:03Z yonik $
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-nocache.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-nocache.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-nocache.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-nocache.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-propinject-indexdefault.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-propinject-indexdefault.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-propinject-indexdefault.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-propinject-indexdefault.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,7 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-
-
+<!-- 
 
      This is a "kitchen sink" config file that tests can use.
      When writting a new test, feel free to add *new* items (plugins,

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-propinject.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-propinject.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-propinject.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-propinject.xml Sun Mar 10 15:04:57 2013
@@ -17,10 +17,7 @@
  limitations under the License.
 -->
 
-<!-- $Id: solrconfig.xml 382610 2006-03-03 01:43:03Z yonik $
-     $Source$
-     $Name$
-
+<!-- 
 
 
      This is a "kitchen sink" config file that tests can use.

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-querysender-noquery.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-querysender-noquery.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-querysender-noquery.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-querysender-noquery.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id: solrconfig-querysender.xml 1048886 2010-12-14 01:10:52Z hossman $
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
     <!--  The DirectoryFactory to use for indexes.

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-querysender.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-querysender.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-querysender.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-querysender.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
     <!--  The DirectoryFactory to use for indexes.

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-repeater.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-repeater.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-repeater.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-repeater.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>
@@ -56,7 +51,6 @@
     </lst>
     <lst name="slave">
       <str name="masterUrl">http://127.0.0.1:TEST_PORT/solr/replication</str>
-      <str name="pollInterval">00:00:01</str>
     </lst>
   </requestHandler>
 

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-response-log-component.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-response-log-component.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-response-log-component.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-response-log-component.xml Sun Mar 10 15:04:57 2013
@@ -17,13 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id: $
-     $Source: $
-     $Name: $
-
-Config for testing responselog component
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <requestHandler name="standard"

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-slave.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-slave.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-slave.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-slave.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-slave1.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-slave1.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-slave1.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-slave1.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id$
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <dataDir>${solr.data.dir:}</dataDir>

Modified: lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-solcoreproperties.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-solcoreproperties.xml?rev=1454862&r1=1454861&r2=1454862&view=diff
==============================================================================
--- lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-solcoreproperties.xml (original)
+++ lucene/dev/branches/lucene4258/solr/core/src/test-files/solr/collection1/conf/solrconfig-solcoreproperties.xml Sun Mar 10 15:04:57 2013
@@ -17,11 +17,6 @@
  limitations under the License.
 -->
 
-<!-- $Id: solrconfig-slave.xml 741684 2009-02-06 19:21:44Z shalin $
-     $Source$
-     $Name$
-  -->
-
 <config>
   <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
   <dataDir>${solr.data.dir:}</dataDir>