Repository: cassandra
Updated Branches:
  refs/heads/trunk a479fe09b -> 9f4284aef


Allow cassandra to compile under java 8

patch by dbrosius reviewed by jmckenzie for cassandra-7028


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2279d49e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2279d49e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2279d49e

Branch: refs/heads/trunk
Commit: 2279d49e96aa7cabf2702f239a8b6500c58a7bac
Parents: ca224b3
Author: Dave Brosius <dbros...@mebigfatguy.com>
Authored: Thu Oct 2 12:47:08 2014 -0500
Committer: Joshua McKenzie <josh.mcken...@datastax.com>
Committed: Thu Oct 2 12:47:08 2014 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |   1 +
 build.xml                                       |  13 ++++++---
 lib/antlr-3.2.jar                               | Bin 1928009 -> 0 bytes
 lib/antlr-runtime-3.5.2.jar                     | Bin 0 -> 167761 bytes
 lib/licenses/antlr-3.2.txt                      |  27 -------------------
 lib/licenses/antlr-runtime-3.5.2.txt            |  27 +++++++++++++++++++
 lib/licenses/stringtemplate-4.0.2.txt           |  27 +++++++++++++++++++
 lib/stringtemplate-4.0.2.jar                    | Bin 0 -> 226406 bytes
 src/java/org/apache/cassandra/cql/Cql.g         |   2 +-
 src/java/org/apache/cassandra/cql3/Cql.g        |  22 +++++++++++----
 .../apache/cassandra/cql3/CqlParserTest.java    |   7 ++---
 11 files changed, 86 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index e86ad5b..ac83b12 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.1
+ * Allow compilation in java 8 (CASSANDRA-7208)
  * Fix Assertion error on RangeTombstoneList diff (CASSANDRA-8013)
  * Release references to overlapping sstables during compaction 
(CASSANDRA-7819)
  * Send notification when opening compaction results early (CASSANDRA-8034)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 5f2b568..957006a 100644
--- a/build.xml
+++ b/build.xml
@@ -194,7 +194,7 @@
     <target name="gen-cli-grammar" depends="check-gen-cli-grammar" 
unless="cliUpToDate">
       <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cli/Cli.g  
....</echo>
       <java classname="org.antlr.Tool"
-            classpath="${build.lib}/antlr-3.2.jar"
+        
classpath="${build.dir.lib}/jars/antlr-3.5.2.jar;${build.lib}/antlr-runtime-3.5.2.jar;${build.lib}/stringtemplate-4.0.2.jar"
             fork="true"
             failonerror="true">
          <jvmarg value="-Xmx512M" />
@@ -221,7 +221,7 @@
     <target name="gen-cql2-grammar" depends="check-gen-cql2-grammar" 
unless="cql2current">
       <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cql/Cql.g  
...</echo>
       <java classname="org.antlr.Tool"
-            classpath="${build.lib}/antlr-3.2.jar"
+            
classpath="${build.dir.lib}/jars/antlr-3.5.2.jar;${build.lib}/antlr-runtime-3.5.2.jar;${build.lib}/stringtemplate-4.0.2.jar"
             fork="true"
             failonerror="true">
          <jvmarg value="-Xmx512M" />
@@ -233,7 +233,7 @@
     <target name="gen-cql3-grammar" depends="check-gen-cql3-grammar" 
unless="cql3current">
       <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cql3/Cql.g 
 ...</echo>
       <java classname="org.antlr.Tool"
-            classpath="${build.lib}/antlr-3.2.jar"
+            
classpath="${build.dir.lib}/jars/antlr-3.5.2.jar;${build.lib}/antlr-runtime-3.5.2.jar;${build.lib}/stringtemplate-4.0.2.jar"
             fork="true"
             failonerror="true">
          <jvmarg value="-Xmx512M" />
@@ -356,7 +356,9 @@
           <dependency groupId="org.apache.commons" artifactId="commons-lang3" 
version="3.1"/>
           <dependency groupId="org.apache.commons" artifactId="commons-math3" 
version="3.2"/>
           <dependency groupId="com.googlecode.concurrentlinkedhashmap" 
artifactId="concurrentlinkedhashmap-lru" version="1.3"/>
-          <dependency groupId="org.antlr" artifactId="antlr" version="3.2"/>
+          <dependency groupId="org.antlr" artifactId="antlr" version="3.5.2"/>
+          <dependency groupId="org.antlr" artifactId="antlr-runtime" 
version="3.5.2"/>
+          <dependency groupId="org.antlr" artifactId="stringtemplate" 
version="4.0.2"/>
           <dependency groupId="org.slf4j" artifactId="slf4j-api" 
version="1.7.2"/>
           <dependency groupId="ch.qos.logback" artifactId="logback-core" 
version="1.1.2"/>
           <dependency groupId="ch.qos.logback" artifactId="logback-classic" 
version="1.1.2"/>
@@ -443,6 +445,7 @@
        <dependency groupId="org.apache.hadoop" 
artifactId="hadoop-minicluster"/>
         <dependency groupId="org.apache.pig" artifactId="pig"/>
        <dependency groupId="com.google.code.findbugs" artifactId="jsr305"/>
+        <dependency groupId="org.antlr" artifactId="antlr"/>
         <dependency groupId="com.datastax.cassandra" 
artifactId="cassandra-driver-core"/>
        <dependency groupId="net.ju-n.compile-command-annotations" 
artifactId="compile-command-annotations"/>
       </artifact:pom>
@@ -485,6 +488,8 @@
         <dependency groupId="org.apache.commons" artifactId="commons-math3"/>
         <dependency groupId="com.googlecode.concurrentlinkedhashmap" 
artifactId="concurrentlinkedhashmap-lru"/>
         <dependency groupId="org.antlr" artifactId="antlr"/>
+        <dependency groupId="org.antlr" artifactId="antlr-runtime"/>
+        <dependency groupId="org.antlr" artifactId="stringtemplate" 
version="4.0.2"/>
         <dependency groupId="org.slf4j" artifactId="slf4j-api"/>
         <dependency groupId="org.codehaus.jackson" 
artifactId="jackson-core-asl"/>
         <dependency groupId="org.codehaus.jackson" 
artifactId="jackson-mapper-asl"/>

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/lib/antlr-3.2.jar
----------------------------------------------------------------------
diff --git a/lib/antlr-3.2.jar b/lib/antlr-3.2.jar
deleted file mode 100644
index fdd167d..0000000
Binary files a/lib/antlr-3.2.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/lib/antlr-runtime-3.5.2.jar
----------------------------------------------------------------------
diff --git a/lib/antlr-runtime-3.5.2.jar b/lib/antlr-runtime-3.5.2.jar
new file mode 100644
index 0000000..d48e3e8
Binary files /dev/null and b/lib/antlr-runtime-3.5.2.jar differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/lib/licenses/antlr-3.2.txt
----------------------------------------------------------------------
diff --git a/lib/licenses/antlr-3.2.txt b/lib/licenses/antlr-3.2.txt
deleted file mode 100644
index 015a53d..0000000
--- a/lib/licenses/antlr-3.2.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-
-Copyright (c) 2003-2006 Terence Parr
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
- 3. The name of the author may not be used to endorse or promote products
-    derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/lib/licenses/antlr-runtime-3.5.2.txt
----------------------------------------------------------------------
diff --git a/lib/licenses/antlr-runtime-3.5.2.txt 
b/lib/licenses/antlr-runtime-3.5.2.txt
new file mode 100644
index 0000000..015a53d
--- /dev/null
+++ b/lib/licenses/antlr-runtime-3.5.2.txt
@@ -0,0 +1,27 @@
+
+Copyright (c) 2003-2006 Terence Parr
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ 1. Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+ 3. The name of the author may not be used to endorse or promote products
+    derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/lib/licenses/stringtemplate-4.0.2.txt
----------------------------------------------------------------------
diff --git a/lib/licenses/stringtemplate-4.0.2.txt 
b/lib/licenses/stringtemplate-4.0.2.txt
new file mode 100644
index 0000000..015a53d
--- /dev/null
+++ b/lib/licenses/stringtemplate-4.0.2.txt
@@ -0,0 +1,27 @@
+
+Copyright (c) 2003-2006 Terence Parr
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ 1. Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+ 3. The name of the author may not be used to endorse or promote products
+    derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/lib/stringtemplate-4.0.2.jar
----------------------------------------------------------------------
diff --git a/lib/stringtemplate-4.0.2.jar b/lib/stringtemplate-4.0.2.jar
new file mode 100644
index 0000000..87d7faf
Binary files /dev/null and b/lib/stringtemplate-4.0.2.jar differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/src/java/org/apache/cassandra/cql/Cql.g
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/Cql.g 
b/src/java/org/apache/cassandra/cql/Cql.g
index 3c41f44..f76be27 100644
--- a/src/java/org/apache/cassandra/cql/Cql.g
+++ b/src/java/org/apache/cassandra/cql/Cql.g
@@ -86,7 +86,7 @@ options {
     public Token nextToken() {
         super.nextToken();
         if (tokens.size() == 0)
-            return Token.EOF_TOKEN;
+            return new CommonToken(Token.EOF);
         return tokens.remove(0);
     }
     

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/src/java/org/apache/cassandra/cql3/Cql.g
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/Cql.g 
b/src/java/org/apache/cassandra/cql3/Cql.g
index 9d54866..2c90c18 100644
--- a/src/java/org/apache/cassandra/cql3/Cql.g
+++ b/src/java/org/apache/cassandra/cql3/Cql.g
@@ -184,7 +184,7 @@ options {
     {
         super.nextToken();
         if (tokens.size() == 0)
-            return Token.EOF_TOKEN;
+            return new CommonToken(Token.EOF);
         return tokens.remove(0);
     }
 
@@ -936,7 +936,16 @@ term returns [Term.Raw term]
     ;
 
 columnOperation[List<Pair<ColumnIdentifier, Operation.RawUpdate>> operations]
-    : key=cident '=' t=term ('+' c=cident )?
+    : key=cident columnOperationDifferentiator[operations, key]
+    ;
+    
+columnOperationDifferentiator[List<Pair<ColumnIdentifier, 
Operation.RawUpdate>> operations, ColumnIdentifier key]
+    : '=' normalColumnOperation[operations, key]
+    | '[' k=term ']' specializedColumnOperation[operations, key, k]
+    ;
+    
+normalColumnOperation[List<Pair<ColumnIdentifier, Operation.RawUpdate>> 
operations, ColumnIdentifier key]
+    : t=term ('+' c=cident )?
       {
           if (c == null)
           {
@@ -949,13 +958,13 @@ columnOperation[List<Pair<ColumnIdentifier, 
Operation.RawUpdate>> operations]
               addRawUpdate(operations, key, new Operation.Prepend(t));
           }
       }
-    | key=cident '=' c=cident sig=('+' | '-') t=term
+    | c=cident sig=('+' | '-') t=term
       {
           if (!key.equals(c))
               addRecognitionError("Only expressions of the form X = X " + 
$sig.text + "<value> are supported.");
           addRawUpdate(operations, key, $sig.text.equals("+") ? new 
Operation.Addition(t) : new Operation.Substraction(t));
       }
-    | key=cident '=' c=cident i=INTEGER
+    | c=cident i=INTEGER
       {
           // Note that this production *is* necessary because X = X - 3 will 
in fact be lexed as [ X, '=', X, INTEGER].
           if (!key.equals(c))
@@ -963,7 +972,10 @@ columnOperation[List<Pair<ColumnIdentifier, 
Operation.RawUpdate>> operations]
               addRecognitionError("Only expressions of the form X = X " + 
($i.text.charAt(0) == '-' ? '-' : '+') + " <value> are supported.");
           addRawUpdate(operations, key, new 
Operation.Addition(Constants.Literal.integer($i.text)));
       }
-    | key=cident '[' k=term ']' '=' t=term
+    ;
+      
+specializedColumnOperation[List<Pair<ColumnIdentifier, Operation.RawUpdate>> 
operations, ColumnIdentifier key, Term.Raw k]
+    : '=' t=term
       {
           addRawUpdate(operations, key, new Operation.SetElement(k, t));
       }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2279d49e/test/unit/org/apache/cassandra/cql3/CqlParserTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/CqlParserTest.java 
b/test/unit/org/apache/cassandra/cql3/CqlParserTest.java
index d122eb5..84509e8 100644
--- a/test/unit/org/apache/cassandra/cql3/CqlParserTest.java
+++ b/test/unit/org/apache/cassandra/cql3/CqlParserTest.java
@@ -46,8 +46,9 @@ public class CqlParserTest
 
         parser.query();
 
-        assertEquals(1, firstCounter.count);
-        assertEquals(1, secondCounter.count);
+        // ANTLR 3.5 reports 2 errors in the sentence above (missing FROM and 
missing EOF).
+        assertTrue(firstCounter.count > 0);
+        assertTrue(secondCounter.count > 0);
     }
 
     @Test
@@ -67,7 +68,7 @@ public class CqlParserTest
 
         parser.query();
 
-        assertEquals(1, firstCounter.count);
+        assertTrue(firstCounter.count > 0);
         assertEquals(0, secondCounter.count);
     }
 

Reply via email to