You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/04/02 19:06:40 UTC

svn commit: r1308432 [2/2] - in /lucene/dev/branches/branch_3x: ./ dev-tools/eclipse/ dev-tools/idea/.idea/libraries/ dev-tools/idea/lucene/ dev-tools/maven/ dev-tools/maven/solr/core/ lucene/ lucene/backwards/ lucene/backwards/lib/ lucene/contrib/anal...

Modified: lucene/dev/branches/branch_3x/solr/contrib/dataimporthandler-extras/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/contrib/dataimporthandler-extras/build.xml?rev=1308432&r1=1308431&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/contrib/dataimporthandler-extras/build.xml (original)
+++ lucene/dev/branches/branch_3x/solr/contrib/dataimporthandler-extras/build.xml Mon Apr  2 17:06:33 2012
@@ -45,14 +45,21 @@
     </ant>
   </target>
 
+  <!-- we don't actually need to compile this thing, we just want its libs -->
+  <target name="resolve-extraction-libs">
+    <ant dir="${common-solr.dir}/contrib/extraction" target="resolve" inheritAll="false">
+      <propertyset refid="uptodate.and.compiled.properties"/>
+    </ant>
+  </target>
+
   <path id="classpath">
     <pathelement location="${common-solr.dir}/build/contrib/solr-dataimporthandler/classes/java"/>
     <pathelement location="${common-solr.dir}/build/contrib/solr-dataimporthandler/classes/test"/>
-    <fileset dir="${common-solr.dir}/contrib/dataimporthandler/lib" includes="**/*.jar"/>
-    <fileset dir="${common-solr.dir}/contrib/extraction/lib" includes="**/*.jar"/>
+    <fileset dir="${common-solr.dir}/contrib/dataimporthandler/lib" excludes="*.txt"/>
+    <fileset dir="${common-solr.dir}/contrib/extraction/lib" excludes="*.txt"/>
     <path refid="solr.base.classpath"/>
   </path>
 
-  <target name="compile-core" depends="compile-solr-dataimporthandler, solr-contrib-build.compile-core"/>
+  <target name="compile-core" depends="compile-solr-dataimporthandler,resolve-extraction-libs,solr-contrib-build.compile-core"/>
   <target name="compile-test" depends="compile-solr-dataimporthandler-tests, common-solr.compile-test"/>
 </project>

Modified: lucene/dev/branches/branch_3x/solr/contrib/langid/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/contrib/langid/build.xml?rev=1308432&r1=1308431&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/contrib/langid/build.xml (original)
+++ lucene/dev/branches/branch_3x/solr/contrib/langid/build.xml Mon Apr  2 17:06:33 2012
@@ -26,8 +26,8 @@
 	<import file="../contrib-build.xml"/>
 
 	<path id="classpath">
-    <fileset dir="../extraction/lib" includes="*.jar"/>
-    <fileset dir="lib" includes="*.jar"/>
+    <fileset dir="../extraction/lib" excludes="*.txt,*.template"/>
+    <fileset dir="lib" excludes="*.txt,*.template"/>
     <path refid="solr.base.classpath"/>   
   </path>
 
@@ -39,4 +39,13 @@
     <m2-deploy-with-pom-template pom.xml="${solr-langid.dir}/lib/langdetect-pom.xml.template"
                                  jar.file="${solr-langid.dir}/lib/langdetect-r111-java5.jar" />
   </target>
+
+    <!-- we don't actually need to compile this thing, we just want its libs -->
+  <target name="resolve-extraction-libs">
+    <ant dir="${common-solr.dir}/contrib/extraction" target="resolve" inheritAll="false">
+      <propertyset refid="uptodate.and.compiled.properties"/>
+    </ant>
+  </target>
+
+  <target name="compile-core" depends="resolve-extraction-libs,solr-contrib-build.compile-core"/>
 </project>

Copied: lucene/dev/branches/branch_3x/solr/contrib/langid/ivy.xml (from r1307563, lucene/dev/trunk/solr/contrib/langid/ivy.xml)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/contrib/langid/ivy.xml?p2=lucene/dev/branches/branch_3x/solr/contrib/langid/ivy.xml&p1=lucene/dev/trunk/solr/contrib/langid/ivy.xml&r1=1307563&r2=1308432&rev=1308432&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/langid/ivy.xml (original)
+++ lucene/dev/branches/branch_3x/solr/contrib/langid/ivy.xml Mon Apr  2 17:06:33 2012
@@ -19,8 +19,8 @@
 <ivy-module version="2.0">
     <info organisation="org.apache.solr" module="langid"/>
     <dependencies>
-      <dependency org="langdetect" name="langdetect" rev="c51112119be53a81e59706ce57bacaa90c052284">
-        <artifact name="langdetect" type="jar" url="http://language-detection.googlecode.com/git-history/c51112119be53a81e59706ce57bacaa90c052284/lib/langdetect.jar"/>
+      <dependency org="langdetect" name="langdetect" rev="r111-java5">
+        <artifact name="langdetect" type="jar" url="http://svn.apache.org/repos/asf/lucene/dev/tags/lucene_solr_3_5_0/solr/contrib/langid/lib/langdetect-r111-java5.jar"/>
       </dependency>
       <dependency org="jsonic" name="jsonic" rev="1.2.0">
         <artifact name="jsonic" type="jar" url="http://language-detection.googlecode.com/git-history/c51112119be53a81e59706ce57bacaa90c052284/lib/jsonic-1.2.0.jar"/>

Modified: lucene/dev/branches/branch_3x/solr/core/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/core/build.xml?rev=1308432&r1=1308431&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/core/build.xml (original)
+++ lucene/dev/branches/branch_3x/solr/core/build.xml Mon Apr  2 17:06:33 2012
@@ -18,15 +18,12 @@
 <project name="solr-core" default="default">
   <description>Solr Core</description>
 
+  <!-- hackidty-hack-hack -->
+
+  <property name="ivy.retrieve.pattern" value="${common-solr.dir}/lib/[artifact]-[revision].[ext]"/>
+
   <import file="../common-build.xml"/>
 
   <target name="compile-core" depends="compile-solrj,common-solr.compile-core"/>
 
-  <target name="dist-maven" depends="jar-core,javadocs,jar-src,common.dist-maven">
-    <m2-deploy-with-pom-template pom.xml="${common-solr.dir}/lib/apache-solr-commons-csv-pom.xml.template"
-                                 jar.file="${common-solr.dir}/lib/apache-solr-commons-csv-1.0-SNAPSHOT-r966014.jar" />
-
-    <m2-deploy-with-pom-template pom.xml="${common-solr.dir}/lib/apache-solr-noggit-pom.xml.template"
-                                 jar.file="${common-solr.dir}/lib/apache-solr-noggit-r1099557.jar" />
-  </target>
 </project>

Copied: lucene/dev/branches/branch_3x/solr/core/ivy.xml (from r1307563, lucene/dev/trunk/solr/core/ivy.xml)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/core/ivy.xml?p2=lucene/dev/branches/branch_3x/solr/core/ivy.xml&p1=lucene/dev/trunk/solr/core/ivy.xml&r1=1307563&r2=1308432&rev=1308432&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/ivy.xml (original)
+++ lucene/dev/branches/branch_3x/solr/core/ivy.xml Mon Apr  2 17:06:33 2012
@@ -31,11 +31,11 @@
       <dependency org="com.google.guava" name="guava" rev="r05" transitive="false"/>
       <dependency org="org.codehaus.woodstox" name="wstx-asl" rev="3.2.7" transitive="false"/>
       <dependency org="org.easymock" name="easymock" rev="2.2" transitive="false"/>
+      <dependency org="org.apache.geronimo.specs" name="geronimo-stax-api_1.0_spec" rev="1.0.1" transitive="false"/>
       <dependency org="org.slf4j" name="slf4j-api" rev="1.6.1" transitive="false"/>
       <dependency org="org.slf4j" name="slf4j-jdk14" rev="1.6.1" transitive="false"/>
-      <dependency org="com.spatial4j" name="spatial4j" rev="0.2" transitive="false"/>
       <dependency org="junit" name="junit" rev="4.10" transitive="false"/>
-      <dependency org="javax.servlet" name="javax.servlet-api" rev="3.0.1" transitive="false"/>
+      <dependency org="javax.servlet" name="servlet-api" rev="2.4" transitive="false"/>
       <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
     </dependencies>
 </ivy-module>

Copied: lucene/dev/branches/branch_3x/solr/example/build.xml (from r1307563, lucene/dev/trunk/solr/example/build.xml)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/example/build.xml?p2=lucene/dev/branches/branch_3x/solr/example/build.xml&p1=lucene/dev/trunk/solr/example/build.xml&r1=1307563&r2=1308432&rev=1308432&view=diff
==============================================================================
--- lucene/dev/trunk/solr/example/build.xml (original)
+++ lucene/dev/branches/branch_3x/solr/example/build.xml Mon Apr  2 17:06:33 2012
@@ -36,16 +36,13 @@
   <target name="resolve" depends="ivy-availability-check">
     <sequential>
     <!-- jetty libs in lib/ -->
-    <ivy:retrieve conf="default" type="jar" log="download-only"/>
+    <ivy:retrieve conf="jetty" type="jar" log="download-only"/>
+    <!-- jetty libs in lib/jsp-2.1 -->
+    <ivy:retrieve conf="jsp" type="jar" log="download-only" 
+                  pattern="${example}/lib/jsp-2.1/[artifact]-[revision].[ext]"/>
     <!-- start.jar -->
-    <!-- TODO: put this in ivy.xml -->
-    <ivy:retrieve inline="true" organisation="org.eclipse.jetty" 
-                  module="jetty-start" revision="8.1.2.v20120308" 
-                  transitive="false" type="jar" log="download-only" 
-                  pattern="start.jar"/>
-    <!-- servlet-api.jar -->
-    <ivy:retrieve conf="servlet" log="download-only" type="orbit"
-                  pattern="lib/servlet-api-3.0.jar"/>
+    <ivy:retrieve conf="start" type="jar" log="download-only" 
+                  pattern="${example}/start.jar"/>
     </sequential>
   </target>
 

Copied: lucene/dev/branches/branch_3x/solr/example/ivy.xml (from r1307563, lucene/dev/trunk/solr/example/ivy.xml)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/example/ivy.xml?p2=lucene/dev/branches/branch_3x/solr/example/ivy.xml&p1=lucene/dev/trunk/solr/example/ivy.xml&r1=1307563&r2=1308432&rev=1308432&view=diff
==============================================================================
--- lucene/dev/trunk/solr/example/ivy.xml (original)
+++ lucene/dev/branches/branch_3x/solr/example/ivy.xml Mon Apr  2 17:06:33 2012
@@ -19,25 +19,24 @@
 <ivy-module version="2.0">
     <info organisation="org.apache.solr" module="example"/>
     <configurations>
-      <conf name="default" description="jetty jars"/>
-      <conf name="servlet" description="servlet-api jar"/>
+      <conf name="jetty" description="jetty jars"/>
+      <conf name="jsp" description="jsp jar"/>
+      <conf name="start" description="start.jar"/>
     </configurations>
 
     <dependencies>
-      <dependency org="org.eclipse.jetty" name="jetty-continuation" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-deploy" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-http" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-io" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-jmx" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-security" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-server" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-servlet" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-util" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-webapp" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty" name="jetty-xml" rev="8.1.2.v20120308" transitive="false"/>
-      <dependency org="org.eclipse.jetty.orbit" name="javax.servlet" rev="3.0.0.v201112011016" transitive="false" conf="servlet->default">
-        <artifact name="javax.servlet" type="orbit" ext="jar"/>
+      <dependency org="org.mortbay.jetty" name="servlet-api" rev="2.5-20081211" transitive="false" conf="jetty->default"/>
+      <dependency org="org.mortbay.jetty" name="jetty-util" rev="6.1.26-patched-JETTY-1340" transitive="false" conf="jetty->default">
+        <artifact name="jetty-util" type="jar" url="http://svn.apache.org/repos/asf/lucene/dev/tags/lucene_solr_3_5_0/solr/example/lib/jetty-util-6.1.26-patched-JETTY-1340.jar"/>
       </dependency>
+      <dependency org="org.mortbay.jetty" name="jetty" rev="6.1.26-patched-JETTY-1340" transitive="false" conf="jetty->default">
+        <artifact name="jetty" type="jar" url="http://svn.apache.org/repos/asf/lucene/dev/tags/lucene_solr_3_5_0/solr/example/lib/jetty-6.1.26-patched-JETTY-1340.jar"/>
+      </dependency>
+      <dependency org="org.mortbay.jetty" name="jsp-2.1-glassfish" rev="2.1.v20091210" transitive="false" conf="jsp->default"/>
+      <dependency org="org.mortbay.jetty" name="jsp-api-2.1-glassfish" rev="2.1.v20091210" transitive="false" conf="jsp->default"/>
+      <dependency org="org.mortbay.jetty" name="jsp-2.1-jetty" rev="6.1.26" transitive="false" conf="jsp->default"/>
+      <dependency org="org.eclipse.jdt" name="core" rev="3.1.1" transitive="false" conf="jsp->default"/>
+      <dependency org="org.mortbay.jetty" name="start" rev="6.1.26" transitive="false" conf="start->default"/>
       <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
     </dependencies>
 </ivy-module>

Modified: lucene/dev/branches/branch_3x/solr/solrj/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/build.xml?rev=1308432&r1=1308431&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/solrj/build.xml (original)
+++ lucene/dev/branches/branch_3x/solr/solrj/build.xml Mon Apr  2 17:06:33 2012
@@ -18,6 +18,8 @@
 <project name="solr-solrj" default="default">
   <description>Solrj - Solr Java Client</description>
 
+  <property name="ivy.retrieve.pattern" value="${common-solr.dir}/lib/[artifact]-[revision].[ext]"/>
+
   <import file="../common-build.xml"/>
 
   <!-- Specialized common-solr.test.classpath, to remove the Solr core test output -->

Copied: lucene/dev/branches/branch_3x/solr/solrj/ivy.xml (from r1307563, lucene/dev/trunk/solr/solrj/ivy.xml)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/ivy.xml?p2=lucene/dev/branches/branch_3x/solr/solrj/ivy.xml&p1=lucene/dev/trunk/solr/solrj/ivy.xml&r1=1307563&r2=1308432&rev=1308432&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/ivy.xml (original)
+++ lucene/dev/branches/branch_3x/solr/solrj/ivy.xml Mon Apr  2 17:06:33 2012
@@ -20,14 +20,15 @@
     <info organisation="org.apache.solr" module="solrj"/>
 
     <dependencies>
-      <dependency org="org.apache.zookeeper" name="zookeeper" rev="3.3.4" transitive="false"/>
       <dependency org="org.slf4j" name="log4j-over-slf4j" rev="1.6.1" transitive="false"/>
       <dependency org="org.apache.httpcomponents" name="httpcore" rev="4.1.4" transitive="false"/>
       <dependency org="org.apache.httpcomponents" name="httpclient" rev="4.1.3" transitive="false"/>
       <dependency org="org.apache.httpcomponents" name="httpmime" rev="4.1.3" transitive="false"/>
+      <dependency org="commons-httpclient" name="commons-httpclient" rev="3.1" transitive="false"/>
       <dependency org="commons-io" name="commons-io" rev="2.1" transitive="false"/>
       <dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.6.1" transitive="false"/>
       <dependency org="org.codehaus.woodstox" name="wstx-asl" rev="3.2.7" transitive="false"/>
+      <dependency org="org.apache.geronimo.specs" name="geronimo-stax-api_1.0_spec" rev="1.0.1" transitive="false"/>
       <dependency org="org.slf4j" name="slf4j-api" rev="1.6.1" transitive="false"/>
       <dependency org="org.slf4j" name="slf4j-jdk14" rev="1.6.1" transitive="false"/> 
       <dependency org="junit" name="junit" rev="4.10" transitive="false"/>

Modified: lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/CharArr.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/CharArr.java?rev=1308432&r1=1307563&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/CharArr.java (original)
+++ lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/CharArr.java Mon Apr  2 17:06:33 2012
@@ -37,7 +37,7 @@ import java.nio.CharBuffer;
 
 /**
  * @author yonik
- * @version $Id: CharArr.java 583538 2007-10-10 16:53:02Z yonik $
+ * @version $Id$
  */
 public class CharArr implements CharSequence, Appendable {
   protected char[] buf;

Modified: lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/CharUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/CharUtil.java?rev=1308432&r1=1307563&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/CharUtil.java (original)
+++ lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/CharUtil.java Mon Apr  2 17:06:33 2012
@@ -20,7 +20,7 @@ package org.apache.noggit;
 
 /**
  * @author yonik
- * @version $Id: CharUtil.java 479919 2006-11-28 05:53:55Z yonik $
+ * @version $Id$
  */
 public class CharUtil {
 

Modified: lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONParser.java?rev=1308432&r1=1307563&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONParser.java (original)
+++ lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONParser.java Mon Apr  2 17:06:33 2012
@@ -22,7 +22,7 @@ import java.io.Reader;
 
 /**
  * @author yonik
- * @version $Id: JSONParser.java 1099557 2011-05-04 18:54:26Z yonik $
+ * @version $Id$
  */
 
 public class JSONParser {
@@ -57,12 +57,6 @@ public class JSONParser {
   /** Event indicating the end of input has been reached */
   public static final int EOF=11;
 
-  public static class ParseException extends RuntimeException {
-    public ParseException(String msg) {
-      super(msg);
-    }
-  }
-
   public static String getEventString( int e )
   {
     switch( e )
@@ -208,7 +202,7 @@ public class JSONParser {
     }
   }
 
-  private ParseException err(String msg) {
+  private RuntimeException err(String msg) {
     // We can't tell if EOF was hit by comparing start<=end
     // because the illegal char could have been the last in the buffer
     // or in the stream.  To deal with this, the "eof" var was introduced
@@ -220,13 +214,13 @@ public class JSONParser {
       if (start>=end) msg = "Unexpected EOF";
       else msg="JSON Parse Error";
     }
-    return new ParseException(msg + ": " + tot);
+    return new RuntimeException(msg + ": " + tot);
   }
 
   private String getContext() {
     String context = "";
     if (start>=0) {
-      context += " BEFORE='" + errEscape(Math.max(start-60,0), start+1) + "'";
+      context += " BEFORE='" + errEscape(Math.max(start-40,0), start+1) + "'";
     }
     if (start<end) {
       context += " AFTER='" + errEscape(start+1, start+40) + "'";
@@ -255,10 +249,7 @@ public class JSONParser {
     // We build up the number in the negative plane since it's larger (by one) than
     // the positive plane.
     long v = '0' - firstChar;
-     // can't overflow a long in 18 decimal digits (i.e. 17 additional after the first).
-     // we also need 22 additional to handle double so we'll handle in 2 separate loops.
-    int i;
-    for (i=0; i<17; i++) {
+    for (int i=0; i<22; i++) {
       int ch = getChar();
       // TODO: is this switch faster as an if-then-else?
       switch(ch) {
@@ -272,7 +263,7 @@ public class JSONParser {
         case '7':
         case '8':
         case '9':
-          v = v*10 - (ch-'0');
+          v = v *10 - (ch-'0');
           out.unsafeWrite(ch);
           continue;
         case '.':
@@ -290,56 +281,19 @@ public class JSONParser {
           // for invalid chars following the number.
           if (ch!=-1) --start;   // push back last char if not EOF
 
-          valstate = LONG;
-          return isNeg ? v : -v;
-      }
-    }
-
-    // after this, we could overflow a long and need to do extra checking
-    boolean overflow = false;
-    long maxval = isNeg ? Long.MIN_VALUE : -Long.MAX_VALUE;
-
-    for (; i<22; i++) {
-      int ch = getChar();
-      switch(ch) {
-        case '0':
-        case '1':
-        case '2':
-        case '3':
-        case '4':
-        case '5':
-        case '6':
-        case '7':
-        case '8':
-        case '9':
-          if (v < (0x8000000000000000L/10)) overflow=true;  // can't multiply by 10 w/o overflowing
-          v *= 10;
-          int digit = ch - '0';
-          if (v < maxval + digit) overflow=true; // can't add digit w/o overflowing
-          v -= digit;
-          out.unsafeWrite(ch);
-          continue;
-        case '.':
-          out.unsafeWrite('.');
-          valstate = readFrac(out,22-i);
-          return 0;
-        case 'e':
-        case 'E':
-          out.unsafeWrite(ch);
-          nstate=0;
-          valstate = readExp(out,22-i);
-          return 0;
-        default:
-          // return the number, relying on nextEvent() to return an error
-          // for invalid chars following the number.
-          if (ch!=-1) --start;   // push back last char if not EOF
-
-          valstate = overflow ? BIGNUMBER : LONG;
-          return isNeg ? v : -v;
+          // the max number of digits we are reading only allows for
+          // a long to wrap once, so we can just check if the sign is
+          // what is expected to detect an overflow.
+          if (isNeg) {
+            // -0 is allowed by the spec
+            valstate = v<=0 ? LONG : BIGNUMBER;
+          } else {
+            v=-v;
+            valstate = v>=0 ? LONG : BIGNUMBER;
+          }
+          return v;
       }
     }
-
-
     nstate=0;
     valstate = BIGNUMBER;
     return 0;
@@ -491,7 +445,6 @@ public class JSONParser {
     for (;;) {
       if (middle>=end) {
         arr.write(buf,start,middle-start);
-        start=middle;
         getMore();
         middle=start;
       }
@@ -574,7 +527,7 @@ public class JSONParser {
             return valstate;
           } else if (ch>'9' || ch<'0') {
             out.unsafeWrite('0');
-            if (ch!=-1) start--;
+            start--;
             lval = 0;
             valstate=LONG;
             return LONG;

Modified: lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONUtil.java?rev=1308432&r1=1307563&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONUtil.java (original)
+++ lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONUtil.java Mon Apr  2 17:06:33 2012
@@ -19,7 +19,7 @@ package org.apache.noggit;
 
 /**
  * @author yonik
- * @version $Id: JSONUtil.java 1209632 2011-12-02 18:48:42Z yonik $
+ * @version $Id$
  */
 
 public class JSONUtil {
@@ -35,34 +35,18 @@ public class JSONUtil {
   public static final char ARRAY_END = ']';
 
   public static String toJSON(Object o) {
-    CharArr out = new CharArr();
-    new JSONWriter(out).write(o);
-   return out.toString();
-  }
-
-  /**
-   * @param o  The object to convert to JSON
-   * @param indentSize  The number of space characters to use as an indent (default 2). 0=newlines but no spaces, -1=no indent at all.
-   * @return Given Object converted to its JSON representation using the given indentSize
-   */
-  public static String toJSON(Object o, int indentSize) {
-    CharArr out = new CharArr();
-    new JSONWriter(out,indentSize).write(o);
+       CharArr out = new CharArr();
+    new TextSerializer().serialize(new JSONWriter(out), o);
     return out.toString();
-  }
 
-  public static void writeNumber(int number, CharArr out) {
-    out.write(Integer.toString(number));
   }
 
+
+
   public static void writeNumber(long number, CharArr out) {
     out.write(Long.toString(number));
   }
 
-  public static void writeNumber(float number, CharArr out) {
-    out.write(Float.toString(number));
-  }
-
   public static void writeNumber(double number, CharArr out) {
     out.write(Double.toString(number));
   }
@@ -102,12 +86,7 @@ public class JSONUtil {
           if (ch <= 0x1F) {
             unicodeEscape(ch,out);
           } else {
-            // These characters are valid JSON, but not valid JavaScript
-            if (ch=='\u2028' || ch=='\u2029') {
-              unicodeEscape(ch,out);
-            } else {
-              out.write(ch);
-            }
+            out.write(ch);
           }
       }
     }
@@ -132,12 +111,7 @@ public class JSONUtil {
           if (ch <= 0x1F) {
             unicodeEscape(ch,out);
           } else {
-            // These characters are valid JSON, but not valid JavaScript
-            if (ch=='\u2028' || ch=='\u2029') {
-              unicodeEscape(ch,out);
-            } else {
-              out.write(ch);
-            }
+            out.write(ch);
           }
       }
     }

Modified: lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONWriter.java?rev=1308432&r1=1307563&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONWriter.java (original)
+++ lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/JSONWriter.java Mon Apr  2 17:06:33 2012
@@ -17,244 +17,30 @@
 
 package org.apache.noggit;
 
-import java.util.*;
+import java.util.HashMap;
 
 /**
  * @author yonik
- * @version $Id: JSONWriter.java 1211150 2011-12-06 21:10:01Z yonik $
+ * @version $Id$
  */
-public class JSONWriter {
 
-  /** Implement this interface on your class to support serialization */
-  public static interface Writable {
-    public void write(JSONWriter writer);
-  }
-
-  protected int level;
-  protected int indent;
-  protected final CharArr out;
-
-  /**
-   * @param out the CharArr to write the output to.
-   * @param indentSize  The number of space characters to use as an indent (default 2). 0=newlines but no spaces, -1=no indent at all.
-   */
-  public JSONWriter(CharArr out, int indentSize) {
-    this.out = out;
-    this.indent = indentSize;
-  }
-
-  public JSONWriter(CharArr out) {
-    this(out, 2);
-  }
+     
 
-  public void setIndentSize(int indentSize) {
-    this.indent = indentSize;
-  }
-
-  public void indent() {
-    if (indent >= 0) {
-      out.write('\n');
-      if (indent > 0) {
-        int spaces = level*indent;
-        out.reserve(spaces);
-        for (int i=0; i<spaces; i++) {
-          out.unsafeWrite(' ');
-        }
-      }
-    }
-  }
-
-  public void write(Object o) {
-    if (o == null) {
-      writeNull();
-    } else if (o instanceof CharSequence) {
-      writeString((CharSequence)o);
-    } else if (o instanceof Number) {
-      if (o instanceof Integer || o instanceof Long) {
-        write(((Number)o).longValue());
-      } else if (o instanceof Float || o instanceof Double) {
-        write(((Number)o).doubleValue());
-      } else {
-        CharArr arr = new CharArr();
-        arr.write(o.toString());
-        writeNumber(arr);
-      }
-    } else if (o instanceof Map) {
-      write((Map)o);
-    } else if (o instanceof Collection) {
-      write((Collection)o);
-    } else if (o instanceof Object[]) {
-      write(Arrays.asList((Object[])o));
-    } else if (o instanceof Boolean) {
-      write(((Boolean)o).booleanValue());
-    } else if (o instanceof Writable) {
-      ((Writable) o).write(this);
-    }
-    else if (o instanceof int[]) {
-      write((int[])o);
-    } else if (o instanceof float[]) {
-      write((float[])o);
-    } else if (o instanceof long[]) {
-      write((long[])o);
-    } else if (o instanceof double[]) {
-      write((double[])o);
-    } else if (o instanceof short[]) {
-      write((short[])o);
-    } else if (o instanceof boolean[]) {
-      write((boolean[])o);
-    } else if (o instanceof char[]) {
-      write((char[])o);
-    } else if (o instanceof byte[]) {
-      write((byte[])o);
-    } else {
-      handleUnknownClass(o);
-    }
-  }
-
-  /** Override this method for custom handling of unknown classes.  Also see the Writable interface. */
-  public void handleUnknownClass(Object o) {
-    writeString(out.toString());
-  }
-
-  public void write(Map val) {
-    startObject();
-    int sz = val.size();
-    boolean first = true;
-    for (Map.Entry entry : (Set<Map.Entry>)val.entrySet()) {
-      if (first) {
-        first = false;
-      } else {
-        writeValueSeparator();
-      }
-      if (sz>1) indent();
-      writeString(entry.getKey().toString());
-      writeNameSeparator();
-      write(entry.getValue());
-    }
-    endObject();
-  }
-
-  public void write(Collection val) {
-    startArray();
-    int sz = val.size();
-    boolean first = true;
-    for (Object o : val) {
-      if (first) {
-        first = false;
-      } else {
-        writeValueSeparator();
-      }
-      if (sz>1) indent();
-      write(o);
-    }
-    endArray();
-  }
-
-  /** A byte[] may be either a single logical value, or a list of small integers.
-   * It's up to the implementation to decide.
-   */
-  public void write(byte[] val) {
-    startArray();
-    boolean first = true;
-    for (short v : val) {
-      if (first) {
-        first = false;
-      } else {
-        writeValueSeparator();
-      }
-      write(v);
-    }
-    endArray();
-  }
-
-  public void write(short[] val) {
-    startArray();
-    boolean first = true;
-    for (short v : val) {
-      if (first) {
-        first = false;
-      } else {
-        writeValueSeparator();
-      }
-      write(v);
-    }
-    endArray();
-  }
-
-  public void write(int[] val) {
-    startArray();
-    boolean first = true;
-    for (int v : val) {
-      if (first) {
-        first = false;
-      } else {
-        writeValueSeparator();
-      }
-      write(v);
-    }
-    endArray();
-  }
-
-  public void write(long[] val) {
-    startArray();
-    boolean first = true;
-    for (long v : val) {
-      if (first) {
-        first = false;
-      } else {
-        writeValueSeparator();
-      }
-      write(v);
-    }
-    endArray();
-  }
-
-  public void write(float[] val) {
-    startArray();
-    boolean first = true;
-    for (float v : val) {
-      if (first) {
-        first = false;
-      } else {
-        writeValueSeparator();
-      }
-      write(v);
-    }
-    endArray();
-  }
-
-  public void write(double[] val) {
-    startArray();
-    boolean first = true;
-    for (double v : val) {
-      if (first) {
-        first = false;
-      } else {
-        writeValueSeparator();
-      }
-      write(v);
-    }
-    endArray();
-  }
-
-  public void write(boolean[] val) {
-    startArray();
-    boolean first = true;
-    for (boolean v : val) {
-      if (first) {
-        first = false;
-      } else {
-        writeValueSeparator();
-      }
-      write(v);
-    }
-    endArray();
-  }
+// how to couple with JSONParser to allow streaming large values from input to
+// output?
+// IDEA 1) have JSONParser.getString(JSONWriter out)?
+// IDEA 2) have an output CharArr that acts as a filter to escape data
 
+// IDEA: a subclass of JSONWriter could provide more state and stricter checking
 
-  public void write(short number) { write ((int)number); }
-  public void write(byte number) { write((int)number); }
+public class JSONWriter extends TextWriter {
+  int level;
+  boolean doIndent;
+  final CharArr out;
 
+  JSONWriter(CharArr out) {
+    this.out = out;
+  }
 
   public void writeNull() {
     JSONUtil.writeNull(out);
@@ -284,26 +70,14 @@ public class JSONWriter {
     JSONUtil.writeNumber(number,out);
   }
 
-  public void write(int number) {
-    JSONUtil.writeNumber(number,out);
-  }
-
   public void write(double number) {
     JSONUtil.writeNumber(number,out);
   }
 
-  public void write(float number) {
-    JSONUtil.writeNumber(number,out);
-  }
-
   public void write(boolean bool) {
     JSONUtil.writeBoolean(bool,out);
   }
 
-  public void write(char[] val) {
-    JSONUtil.writeString(val, 0, val.length, out);
-  }
-
   public void writeNumber(CharArr digits) {
     out.write(digits);
   }
@@ -319,7 +93,7 @@ public class JSONWriter {
 
   public void endObject() {
     out.write('}');
-    level--;
+    level--;    
   }
 
   public void startArray() {
@@ -337,7 +111,7 @@ public class JSONWriter {
   }
 
   public void writeNameSeparator() {
-    out.write(':');
+    out.write(':');    
   }
 
 }

Modified: lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/ObjectBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/ObjectBuilder.java?rev=1308432&r1=1307563&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/ObjectBuilder.java (original)
+++ lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/ObjectBuilder.java Mon Apr  2 17:06:33 2012
@@ -1,154 +1,154 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.noggit;
-
-import java.util.*;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-/**
- * @author yonik
- * @version $Id$
- */
-public class ObjectBuilder {
-
-  public static Object fromJSON(String json) throws IOException {
-    JSONParser p = new JSONParser(json);
-    return getVal(p);
-  }
-
-  public static Object getVal(JSONParser parser) throws IOException {
-    return new ObjectBuilder(parser).getVal();
-  }
-
-  final JSONParser parser;
-  
-  public ObjectBuilder(JSONParser parser) throws IOException {
-    this.parser = parser;
-    if (parser.lastEvent()==0) parser.nextEvent();
-  }
-
-
-  public Object getVal() throws IOException {
-    int ev = parser.lastEvent();
-    switch(ev) {
-      case JSONParser.STRING: return getString();
-      case JSONParser.LONG: return getLong();
-      case JSONParser.NUMBER: return getNumber();
-      case JSONParser.BIGNUMBER: return getBigNumber();
-      case JSONParser.BOOLEAN: return getBoolean();
-      case JSONParser.NULL: return getNull();
-      case JSONParser.OBJECT_START: return getObject();
-      case JSONParser.OBJECT_END: return null; // OR ERROR?
-      case JSONParser.ARRAY_START: return getArray();
-      case JSONParser.ARRAY_END: return  null; // OR ERROR?
-      case JSONParser.EOF: return null; // OR ERROR?
-      default: return null; // OR ERROR?
-    }
-  }
-
-
-  public Object getString() throws IOException {
-    return parser.getString();    
-  }
-
-  public Object getLong() throws IOException {
-    return Long.valueOf(parser.getLong());    
-  }
-
-  public Object getNumber() throws IOException {
-    CharArr num = parser.getNumberChars();
-    String numstr = num.toString();
-    double d = Double.parseDouble(numstr);
-    if (!Double.isInfinite(d)) return Double.valueOf(d);
-    // TODO: use more efficient constructor in Java5
-    return new BigDecimal(numstr);
-  }
-
-  public Object getBigNumber() throws IOException {
-    CharArr num = parser.getNumberChars();
-    String numstr = num.toString();
-    for(int ch; (ch=num.read())!=-1;) {
-      if (ch=='.' || ch=='e' || ch=='E') return new BigDecimal(numstr);
-    }
-    return new BigInteger(numstr);
-  }
-
-  public Object getBoolean() throws IOException {
-    return parser.getBoolean();
-  }
-
-  public Object getNull() throws IOException {
-    parser.getNull();
-    return null;
-  }
-
-  public Object newObject() throws IOException {
-    return new LinkedHashMap();
-  }
-
-  public Object getKey() throws IOException {
-    return parser.getString();
-  }
-
-  public void addKeyVal(Object map, Object key, Object val) throws IOException {
-    Object prev = ((Map)map).put(key,val);
-    // TODO: test for repeated value?
-  }
-
-  public Object objectEnd(Object obj) {
-    return obj;
-  }
-
-
-  public Object getObject() throws IOException {
-    Object m = newObject();
-    for(;;) {
-      int ev = parser.nextEvent();
-      if (ev==JSONParser.OBJECT_END) return objectEnd(m);
-      Object key = getKey();
-      ev = parser.nextEvent();      
-      Object val = getVal();
-      addKeyVal(m, key, val);
-    }
-  }
-
-  public Object newArray() {
-    return new ArrayList();
-  }
-
-  public void addArrayVal(Object arr, Object val) throws IOException {
-    ((List)arr).add(val);
-  }
-
-  public Object endArray(Object arr) {
-    return arr;
-  }
-  
-  public Object getArray() throws IOException {
-    Object arr = newArray();
-    for(;;) {
-      int ev = parser.nextEvent();
-      if (ev==JSONParser.ARRAY_END) return endArray(arr);
-      Object val = getVal();
-      addArrayVal(arr, val);
-    }
-  }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.noggit;
+
+import java.util.*;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
+/**
+ * @author yonik
+ * @version $Id$
+ */
+public class ObjectBuilder {
+
+  public static Object fromJSON(String json) throws IOException {
+    JSONParser p = new JSONParser(json);
+    return getVal(p);
+  }
+
+  public static Object getVal(JSONParser parser) throws IOException {
+    return new ObjectBuilder(parser).getVal();
+  }
+
+  final JSONParser parser;
+  
+  public ObjectBuilder(JSONParser parser) throws IOException {
+    this.parser = parser;
+    if (parser.lastEvent()==0) parser.nextEvent();
+  }
+
+
+  public Object getVal() throws IOException {
+    int ev = parser.lastEvent();
+    switch(ev) {
+      case JSONParser.STRING: return getString();
+      case JSONParser.LONG: return getLong();
+      case JSONParser.NUMBER: return getNumber();
+      case JSONParser.BIGNUMBER: return getBigNumber();
+      case JSONParser.BOOLEAN: return getBoolean();
+      case JSONParser.NULL: return getNull();
+      case JSONParser.OBJECT_START: return getObject();
+      case JSONParser.OBJECT_END: return null; // OR ERROR?
+      case JSONParser.ARRAY_START: return getArray();
+      case JSONParser.ARRAY_END: return  null; // OR ERROR?
+      case JSONParser.EOF: return null; // OR ERROR?
+      default: return null; // OR ERROR?
+    }
+  }
+
+
+  public Object getString() throws IOException {
+    return parser.getString();    
+  }
+
+  public Object getLong() throws IOException {
+    return Long.valueOf(parser.getLong());    
+  }
+
+  public Object getNumber() throws IOException {
+    CharArr num = parser.getNumberChars();
+    String numstr = num.toString();
+    double d = Double.parseDouble(numstr);
+    if (!Double.isInfinite(d)) return Double.valueOf(d);
+    // TODO: use more efficient constructor in Java5
+    return new BigDecimal(numstr);
+  }
+
+  public Object getBigNumber() throws IOException {
+    CharArr num = parser.getNumberChars();
+    String numstr = num.toString();
+    for(int ch; (ch=num.read())!=-1;) {
+      if (ch=='.' || ch=='e' || ch=='E') return new BigDecimal(numstr);
+    }
+    return new BigInteger(numstr);
+  }
+
+  public Object getBoolean() throws IOException {
+    return parser.getBoolean();
+  }
+
+  public Object getNull() throws IOException {
+    parser.getNull();
+    return null;
+  }
+
+  public Object newObject() throws IOException {
+    return new LinkedHashMap();
+  }
+
+  public Object getKey() throws IOException {
+    return parser.getString();
+  }
+
+  public void addKeyVal(Object map, Object key, Object val) throws IOException {
+    Object prev = ((Map)map).put(key,val);
+    // TODO: test for repeated value?
+  }
+
+  public Object objectEnd(Object obj) {
+    return obj;
+  }
+
+
+  public Object getObject() throws IOException {
+    Object m = newObject();
+    for(;;) {
+      int ev = parser.nextEvent();
+      if (ev==JSONParser.OBJECT_END) return objectEnd(m);
+      Object key = getKey();
+      ev = parser.nextEvent();      
+      Object val = getVal();
+      addKeyVal(m, key, val);
+    }
+  }
+
+  public Object newArray() {
+    return new ArrayList();
+  }
+
+  public void addArrayVal(Object arr, Object val) throws IOException {
+    ((List)arr).add(val);
+  }
+
+  public Object endArray(Object arr) {
+    return arr;
+  }
+  
+  public Object getArray() throws IOException {
+    Object arr = newArray();
+    for(;;) {
+      int ev = parser.nextEvent();
+      if (ev==JSONParser.ARRAY_END) return endArray(arr);
+      Object val = getVal();
+      addArrayVal(arr, val);
+    }
+  }
+
+}

Added: lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/TextSerializer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/TextSerializer.java?rev=1308432&view=auto
==============================================================================
--- lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/TextSerializer.java (added)
+++ lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/TextSerializer.java Mon Apr  2 17:06:33 2012
@@ -0,0 +1,81 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.noggit;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.Collection;
+import java.util.Arrays;
+
+public class TextSerializer {
+  public void serialize(TextWriter writer, Map val) {
+    writer.startObject();
+    boolean first = true;
+    for (Map.Entry entry : (Set<Map.Entry>)val.entrySet()) {
+      if (first) {
+        first = false;
+      } else {
+        writer.writeValueSeparator();
+      }
+      writer.writeString(entry.getKey().toString());
+      writer.writeNameSeparator();
+      serialize(writer, entry.getValue());
+    }
+    writer.endObject();
+  }
+
+  public void serialize(TextWriter writer, Collection val) {
+    writer.startArray();
+    boolean first = true;
+    for (Object o : val) {
+      if (first) {
+        first = false;
+      } else {
+        writer.writeValueSeparator();
+      }
+      serialize(writer, o);
+    }
+    writer.endArray();
+  }
+
+  public void serialize(TextWriter writer, Object o) {
+    if (o == null) {
+      writer.writeNull();
+    } else if (o instanceof CharSequence) {
+      writer.writeString((CharSequence)o);
+    } else if (o instanceof Number) {
+      if (o instanceof Integer || o instanceof Long) {
+        writer.write(((Number)o).longValue());
+      } else if (o instanceof Float || o instanceof Double) {
+        writer.write(((Number)o).doubleValue());
+      } else {
+        CharArr arr = new CharArr();
+        arr.write(o.toString());
+        writer.writeNumber(arr);
+      }
+    } else if (o instanceof Map) {
+      this.serialize(writer, (Map)o);
+    } else if (o instanceof Collection) {
+      this.serialize(writer, (Collection)o);
+    } else if (o instanceof Object[]) {
+      this.serialize(writer, Arrays.asList(o));
+    } else {
+      writer.writeString(o.toString());
+    }
+  }
+}

Added: lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/TextWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/TextWriter.java?rev=1308432&view=auto
==============================================================================
--- lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/TextWriter.java (added)
+++ lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/noggit/TextWriter.java Mon Apr  2 17:06:33 2012
@@ -0,0 +1,61 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.noggit;
+
+import java.util.*;
+
+/**
+ * @author yonik
+ * @version $Id$
+ */
+public abstract class TextWriter {
+  public abstract void writeNull();
+
+  public abstract void writeString(CharSequence str);
+
+  public abstract void writeString(CharArr str);
+
+  public abstract void writeStringStart();
+  public abstract void writeStringChars(CharArr partialStr);
+  public abstract void writeStringEnd();
+
+  public abstract void write(long number);
+
+  public abstract void write(double number);
+
+  public abstract void write(boolean bool);
+
+  public abstract void writeNumber(CharArr digits);
+  
+  public abstract void writePartialNumber(CharArr digits);
+
+  public abstract void startObject();
+
+  public abstract void endObject();
+
+  public abstract void startArray();
+
+  public abstract void endArray();
+
+  public abstract void writeValueSeparator();
+
+  public abstract void writeNameSeparator();
+
+  // void writeNameValue(String name, Object val)?
+}
+

Modified: lucene/dev/branches/branch_3x/solr/test-framework/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/test-framework/build.xml?rev=1308432&r1=1308431&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/test-framework/build.xml (original)
+++ lucene/dev/branches/branch_3x/solr/test-framework/build.xml Mon Apr  2 17:06:33 2012
@@ -42,7 +42,7 @@
   <!-- Override common-solr.javadocs to include a JUnit javadoc link     -->
   <!-- and to copy the built javadocs to ${dest}/docs/api/test-framework -->
   <target name="javadocs"
-          depends="compile-core,lucene-javadocs-all,define-lucene-javadoc-url">
+          depends="compile-core,define-lucene-javadoc-url">
     <sequential>
       <mkdir dir="${javadoc.dir}"/>
       <mkdir dir="${dest}/META-INF/"/>

Modified: lucene/dev/branches/branch_3x/solr/webapp/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/webapp/build.xml?rev=1308432&r1=1308431&r2=1308432&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/webapp/build.xml (original)
+++ lucene/dev/branches/branch_3x/solr/webapp/build.xml Mon Apr  2 17:06:33 2012
@@ -39,6 +39,16 @@
            encoding="utf8" classpathref="test.classpath"/>
   </target>
 
+  <!-- this module has no javadocs -->
+  <target name="javadocs"/>
+
+  <!-- this module has no jar either -->
+  <target name="jar-core"/>
+
+  <!-- nothing to compile -->
+  <target name="compile-core"/>
+  <target name="compile-test"/>
+
   <target name="dist"
           description="Creates the Solr WAR Distribution file."
           depends="test, init-dist, dist-core, dist-solrj, lucene-jars-to-solr">