You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by db...@apache.org on 2014/04/16 02:58:52 UTC
git commit: Allow cassandra to compile under java 8
Repository: cassandra
Updated Branches:
refs/heads/trunk 2804ce994 -> 4d0691759
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/4d069175
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4d069175
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4d069175
Branch: refs/heads/trunk
Commit: 4d0691759a19f1faafe889d765145ae6a5096397
Parents: 2804ce9
Author: Dave Brosius <db...@mebigfatguy.com>
Authored: Tue Apr 15 20:36:16 2014 -0400
Committer: Dave Brosius <db...@mebigfatguy.com>
Committed: Tue Apr 15 20:38:32 2014 -0400
----------------------------------------------------------------------
CHANGES.txt | 1 +
build.xml | 11 ++++++++---
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/cql3/Cql.g | 22 ++++++++++++++++-----
9 files changed, 80 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4d069175/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index cbf82de..2fbf3ae 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,7 @@
* Remove CQL2 (CASSANDRA-5918)
* Add Thrift get_multi_slice call (CASSANDRA-6757)
* Optimize fetching multiple cells by name (CASSANDRA-6933)
+ * Allow compilation in java 8 (CASSANDRA-7208)
2.1.0-beta2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4d069175/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 8c4cb7b..9326424 100644
--- a/build.xml
+++ b/build.xml
@@ -190,7 +190,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">
<arg value="${build.src.java}/org/apache/cassandra/cli/Cli.g" />
@@ -211,7 +211,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">
<arg value="-Xconversiontimeout" />
@@ -330,7 +330,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.12"/>
<dependency groupId="ch.qos.logback" artifactId="logback-classic" version="1.1.12"/>
@@ -403,6 +405,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"/>
</artifact:pom>
@@ -444,6 +447,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/4d069175/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/4d069175/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/4d069175/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/4d069175/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/4d069175/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/4d069175/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/4d069175/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 4c1f2dc..6b4ad29 100644
--- a/src/java/org/apache/cassandra/cql3/Cql.g
+++ b/src/java/org/apache/cassandra/cql3/Cql.g
@@ -171,7 +171,7 @@ options {
{
super.nextToken();
if (tokens.size() == 0)
- return Token.EOF_TOKEN;
+ return new CommonToken(Token.EOF);
return tokens.remove(0);
}
@@ -900,7 +900,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)
{
@@ -913,13 +922,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))
@@ -927,7 +936,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));
}