From 3da1c9025b77f5ca3ba4c296b8ab3089235b9c3b Mon Sep 17 00:00:00 2001 From: Roger Meier Date: Sat, 16 Nov 2013 15:37:20 +0100 Subject: [PATCH] THRIFT-2260 java: Thrift imposes unneeded dependency on commons-lang3 Patch: Andrew Gaul --- compiler/cpp/src/generate/t_java_generator.cc | 25 ++++++++----------- contrib/Vagrantfile | 2 +- debian/control | 3 +-- lib/java/build.properties | 1 - lib/java/build.xml | 1 - 5 files changed, 13 insertions(+), 19 deletions(-) diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc index e978af80..454119d3 100644 --- a/compiler/cpp/src/generate/t_java_generator.cc +++ b/compiler/cpp/src/generate/t_java_generator.cc @@ -364,9 +364,6 @@ string t_java_generator::java_package() { string t_java_generator::java_type_imports() { string hash_builder; string tree_set_and_map; - if (gen_hash_code_) { - hash_builder = "import org.apache.commons.lang3.builder.HashCodeBuilder;\n"; - } if (sorted_containers_) { tree_set_and_map = string() + "import java.util.TreeSet;\n" + @@ -1248,19 +1245,19 @@ void t_java_generator::generate_union_hashcode(ofstream& out, t_struct* tstruct) if (gen_hash_code_) { indent(out) << "@Override" << endl; indent(out) << "public int hashCode() {" << endl; - indent(out) << " HashCodeBuilder hcb = new HashCodeBuilder();" << endl; - indent(out) << " hcb.append(this.getClass().getName());" << endl; + indent(out) << " List list = new ArrayList();" << endl; + indent(out) << " list.add(this.getClass().getName());" << endl; indent(out) << " org.apache.thrift.TFieldIdEnum setField = getSetField();" << endl; indent(out) << " if (setField != null) {" << endl; - indent(out) << " hcb.append(setField.getThriftFieldId());" << endl; + indent(out) << " list.add(setField.getThriftFieldId());" << endl; indent(out) << " Object value = getFieldValue();" << endl; indent(out) << " if (value instanceof org.apache.thrift.TEnum) {" << endl; - indent(out) << " hcb.append(((org.apache.thrift.TEnum)getFieldValue()).getValue());" << endl; + indent(out) << " list.add(((org.apache.thrift.TEnum)getFieldValue()).getValue());" << endl; indent(out) << " } else {" << endl; - indent(out) << " hcb.append(value);" << endl; + indent(out) << " list.add(value);" << endl; indent(out) << " }" << endl; indent(out) << " }" << endl; - indent(out) << " return hcb.toHashCode();" << endl; + indent(out) << " return list.hashCode();" << endl; indent(out) << "}"; } else { indent(out) << "/**" << endl; @@ -1599,7 +1596,7 @@ void t_java_generator::generate_java_struct_equality(ofstream& out, indent() << "public int hashCode() {" << endl; indent_up(); if (gen_hash_code_) { - indent(out) << "HashCodeBuilder builder = new HashCodeBuilder();" << endl; + indent(out) << "List list = new ArrayList();" << endl; for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) { out << endl; @@ -1616,17 +1613,17 @@ void t_java_generator::generate_java_struct_equality(ofstream& out, } indent(out) << "boolean present_" << name << " = " << present << ";" << endl; - indent(out) << "builder.append(present_" << name << ");" << endl; + indent(out) << "list.add(present_" << name << ");" << endl; indent(out) << "if (present_" << name << ")" << endl; if (t->is_enum()) { - indent(out) << " builder.append(" << name << ".getValue());" << endl; + indent(out) << " list.add(" << name << ".getValue());" << endl; } else { - indent(out) << " builder.append(" << name << ");" << endl; + indent(out) << " list.add(" << name << ");" << endl; } } out << endl; - indent(out) << "return builder.toHashCode();" << endl; + indent(out) << "return list.hashCode();" << endl; } else { indent(out) << "return 0;" << endl; } diff --git a/contrib/Vagrantfile b/contrib/Vagrantfile index fd678218..5a99127c 100644 --- a/contrib/Vagrantfile +++ b/contrib/Vagrantfile @@ -31,7 +31,7 @@ sudo apt-get upgrade -qq -y sudo apt-get install -qq libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev make libqt4-dev git debhelper # Java dependencies -sudo apt-get install -qq ant openjdk-7-jdk libcommons-lang3-java +sudo apt-get install -qq ant openjdk-7-jdk # Python dependencies sudo apt-get install -qq python-all python-all-dev python-all-dbg python-setuptools diff --git a/debian/control b/debian/control index 84e545eb..6ec66146 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,7 @@ Priority: extra Build-Depends: debhelper (>= 5), build-essential, mono-gmcs, python-dev, ant, mono-devel, libmono-system-web2.0-cil, erlang-base, ruby1.8-dev, autoconf, python-support, automake, pkg-config, libtool, bison, flex, libboost-dev | libboost1.40-dev, python-all, - python-all-dev, python-all-dbg, openjdk-6-jdk | java-sdk, libcommons-lang3-java, + python-all-dev, python-all-dbg, openjdk-6-jdk | java-sdk, libboost-test-dev | libboost-test1.40-dev, libevent-dev, perl (>= 5.8.0-7), php5, php5-dev, libglib2.0-dev, libqt4-dev Maintainer: Thrift Developer's @@ -78,7 +78,6 @@ Package: libthrift-java Architecture: all Section: libs Depends: java-gcj-compat | java1-runtime | java2-runtime, ${misc:Depends} -Recommends: libcommons-lang3-java Description: Java bindings for Thrift Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to diff --git a/lib/java/build.properties b/lib/java/build.properties index 8d603a68..b3a4755c 100644 --- a/lib/java/build.properties +++ b/lib/java/build.properties @@ -27,6 +27,5 @@ mvn.ant.task.version=2.1.3 httpclient.version=4.2.5 httpcore.version=4.2.4 slf4j.version=1.5.8 -commons-lang3.version=3.1 servlet.version=2.5 diff --git a/lib/java/build.xml b/lib/java/build.xml index c2bfd9cb..fa00ee7d 100755 --- a/lib/java/build.xml +++ b/lib/java/build.xml @@ -318,7 +318,6 @@ - -- 2.17.1