You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ty...@apache.org on 2016/08/11 18:53:12 UTC

[4/4] cassandra git commit: Remove clientutil jar

Remove clientutil jar


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

Branch: refs/heads/trunk
Commit: a3e772b8b92b00a7acc86e5aac34743ba36bb2e9
Parents: 21bde4c f4c3e14
Author: Tyler Hobbs <ty...@gmail.com>
Authored: Thu Aug 11 13:51:46 2016 -0500
Committer: Tyler Hobbs <ty...@gmail.com>
Committed: Thu Aug 11 13:51:46 2016 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |   1 +
 NEWS.txt                                        |   5 +
 build.xml                                       | 115 +------------------
 .../cassandra/serializers/ClientUtilsTest.java  |  59 ----------
 4 files changed, 8 insertions(+), 172 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a3e772b8/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index a153adc,5b7f600..e1b0a44
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,42 -1,5 +1,43 @@@
 +3.10
++ * Remove clientutil jar (CASSANDRA-11635)
 + * Fix compaction throughput throttle (CASSANDRA-12366)
 + * Delay releasing Memtable memory on flush until PostFlush has finished running (CASSANDRA-12358)
 + * Cassandra stress should dump all setting on startup (CASSANDRA-11914)
 + * Make it possible to compact a given token range (CASSANDRA-10643)
 + * Allow updating DynamicEndpointSnitch properties via JMX (CASSANDRA-12179)
 + * Collect metrics on queries by consistency level (CASSANDRA-7384)
 + * Add support for GROUP BY to SELECT statement (CASSANDRA-10707)
 + * Deprecate memtable_cleanup_threshold and update default for memtable_flush_writers (CASSANDRA-12228)
 + * Upgrade to OHC 0.4.4 (CASSANDRA-12133)
 + * Add version command to cassandra-stress (CASSANDRA-12258)
 + * Create compaction-stress tool (CASSANDRA-11844)
 + * Garbage-collecting compaction operation and schema option (CASSANDRA-7019)
 + * Add schema to snapshot manifest, add USING TIMESTAMP clause to ALTER TABLE statements (CASSANDRA-7190)
 + * Add beta protocol flag for v5 native protocol (CASSANDRA-12142)
 + * Support filtering on non-PRIMARY KEY columns in the CREATE
 +   MATERIALIZED VIEW statement's WHERE clause (CASSANDRA-10368)
 + * Unify STDOUT and SYSTEMLOG logback format (CASSANDRA-12004)
 + * COPY FROM should raise error for non-existing input files (CASSANDRA-12174)
 + * Faster write path (CASSANDRA-12269)
 + * Option to leave omitted columns in INSERT JSON unset (CASSANDRA-11424)
 + * Support json/yaml output in nodetool tpstats (CASSANDRA-12035)
 + * Expose metrics for successful/failed authentication attempts (CASSANDRA-10635)
 + * Prepend snapshot name with "truncated" or "dropped" when a snapshot
 +   is taken before truncating or dropping a table (CASSANDRA-12178)
 + * Optimize RestrictionSet (CASSANDRA-12153)
 + * cqlsh does not automatically downgrade CQL version (CASSANDRA-12150)
 + * Omit (de)serialization of state variable in UDAs (CASSANDRA-9613)
 + * Create a system table to expose prepared statements (CASSANDRA-8831)
 + * Reuse DataOutputBuffer from ColumnIndex (CASSANDRA-11970)
 + * Remove DatabaseDescriptor dependency from SegmentedFile (CASSANDRA-11580)
 + * Add supplied username to authentication error messages (CASSANDRA-12076)
 + * Remove pre-startup check for open JMX port (CASSANDRA-12074)
 + * Remove compaction Severity from DynamicEndpointSnitch (CASSANDRA-11738)
 +
 +
  3.9
   * Fix value skipping with counter columns (CASSANDRA-11726)
 + * Restore resumable hints delivery (CASSANDRA-11960)
   * Fix nodetool tablestats miss SSTable count (CASSANDRA-12205)
   * Fixed flacky SSTablesIteratedTest (CASSANDRA-12282)
   * Fixed flacky SSTableRewriterTest: check file counts before calling validateCFS (CASSANDRA-12348)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a3e772b8/NEWS.txt
----------------------------------------------------------------------
diff --cc NEWS.txt
index f28c6f2,d8d84f5..a14283f
--- a/NEWS.txt
+++ b/NEWS.txt
@@@ -14,58 -14,6 +14,63 @@@ restore snapshots created with the prev
  using the provided 'sstableupgrade' tool.
  
  
 +3.10
 +====
 +
 +New features
 +------------
 +   - Support for GROUP BY queries has been added.
 +   - A new compaction-stress tool has been added to test the throughput of compaction
 +     for any cassandra-stress user schema.  see compaction-stress help for how to use.
 +   - Compaction can now take into account overlapping tables that don't take part
 +     in the compaction to look for deleted or overwritten data in the compacted tables.
 +     Then such data is found, it can be safely discarded, which in turn should enable
 +     the removal of tombstones over that data.
 +
 +     The behavior can be engaged in two ways:
 +       - as a "nodetool garbagecollect -g CELL/ROW" operation, which applies
 +         single-table compaction on all sstables to discard deleted data in one step.
 +       - as a "provide_overlapping_tombstones:CELL/ROW/NONE" compaction strategy flag,
 +         which uses overlapping tables as a source of deletions/overwrites during all
 +         compactions.
 +     The argument specifies the granularity at which deleted data is to be found:
 +       - If ROW is specified, only whole deleted rows (or sets of rows) will be
 +         discarded.
 +       - If CELL is specified, any columns whose value is overwritten or deleted
 +         will also be discarded.
 +       - NONE (default) specifies the old behavior, overlapping tables are not used to
 +         decide when to discard data.
 +     Which option to use depends on your workload, both ROW and CELL increase the
 +     disk load on compaction (especially with the size-tiered compaction strategy),
 +     with CELL being more resource-intensive. Both should lead to better read
 +     performance if deleting rows (resp. overwriting or deleting cells) is common.
 +   - Prepared statements are now persisted in the table prepared_statements in
 +     the system keyspace. Upon startup, this table is used to preload all
 +     previously prepared statements - i.e. in many cases clients do not need to
 +     re-prepare statements against restarted nodes.
 +   - cqlsh can now connect to older Cassandra versions by downgrading the native
 +     protocol version. Please note that this is currently not part of our release
 +     testing and, as a consequence, it is not guaranteed to work in all cases.
 +     See CASSANDRA-12150 for more details.
 +   - Snapshots that are automatically taken before a table is dropped or truncated
 +     will have a "dropped" or "truncated" prefix on their snapshot tag name.
 +   - Metrics are exposed for successful and failed authentication attempts.
 +     These can be located using the object names org.apache.cassandra.metrics:type=Client,name=AuthSuccess
 +     and org.apache.cassandra.metrics:type=Client,name=AuthFailure respectively.
 +   - Add support to "unset" JSON fields in prepared statements by specifying DEFAULT UNSET.
 +     See CASSANDRA-11424 for details
 +
 +Upgrading
 +---------
 +    - Logs written to stdout are now consistent with logs written to files.
 +      Time is now local (it was UTC on the console and local in files). Date, thread, file
 +      and line info where added to stdout. (see CASSANDRA-12004)
++    - The 'clientutil' jar, which has been somewhat broken on the 3.x branch, is not longer provided.
++      The features provided by that jar are provided by any good java driver and we advise relying on drivers rather on
++      that jar, but if you need that jar for backward compatiblity until you do so, you should use the version provided
++      on previous Cassandra branch, like the 3.0 branch (by design, the functionality provided by that jar are stable
++      accross versions so using the 3.0 jar for a client connecting to 3.x should work without issues).
 +
  3.8
  ===
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a3e772b8/build.xml
----------------------------------------------------------------------
diff --cc build.xml
index 6a319a9,b312376..df6d469
--- a/build.xml
+++ b/build.xml
@@@ -639,17 -637,17 +639,6 @@@
          <dependency groupId="com.googlecode.concurrent-trees" artifactId="concurrent-trees" version="2.4.0" />
  
        </artifact:pom>
--      <artifact:pom id="clientutil-pom"
--                    artifactId="cassandra-clientutil"
--                    url="http://cassandra.apache.org"
--                    name="Apache Cassandra">
--        <parent groupId="org.apache.cassandra"
--                artifactId="cassandra-parent"
--                version="${version}"/>
--        <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
--  <dependency groupId="com.google.guava" artifactId="guava"/>
--      </artifact:pom>
--      
        <artifact:pom id="dist-pom"
                      artifactId="apache-cassandra"
                      packaging="pom"
@@@ -890,8 -861,8 +879,6 @@@
  	    <artifact:writepom pomRefId="thrift-pom"
  	                       file="${build.dir}/${ant.project.name}-thrift-${version}.pom"/>
  	    <artifact:writepom pomRefId="all-pom" file="${build.dir}/${final.name}.pom"/>
--	    <artifact:writepom pomRefId="clientutil-pom"
--	    	               file="${build.dir}/${ant.project.name}-clientutil-${version}.pom"/>
  	</target>
  
  	<target name="write-poms" unless="without.maven">
@@@ -943,31 -914,32 +930,11 @@@
            <attribute name="Premain-Class"
                       value="org.apache.cassandra.infrastructure.continuations.CAgent"/>
            <attribute name="Class-Path"
--                     value="${ant.project.name}-clientutil-${version}.jar ${ant.project.name}-thrift-${version}.jar" />
++                     value="${ant.project.name}-thrift-${version}.jar" />
          <!-- </section> -->
          </manifest>
        </jar>
  
--      <!-- Clientutil Jar -->
--      <!-- TODO: write maven pom here -->
--      <jar jarfile="${build.dir}/${ant.project.name}-clientutil-${version}.jar">
--        <fileset dir="${build.classes.main}">
--          <include name="org/apache/cassandra/serializers/*" />
--          <include name="org/apache/cassandra/utils/ByteBufferUtil*.class" />
--          <include name="org/apache/cassandra/utils/Hex.class" />
--          <include name="org/apache/cassandra/utils/UUIDGen*.class" />
--          <include name="org/apache/cassandra/utils/FBUtilities*.class" />
--          <include name="org/apache/cassandra/exceptions/*.class" />
--          <include name="org/apache/cassandra/utils/CloseableIterator.class" />
--          <include name="org/apache/cassandra/io/util/*.class" />
 -          <include name="org/apache/cassandra/utils/SigarLibrary.class" />
--        </fileset>
--        <manifest>
--          <attribute name="Implementation-Title" value="Cassandra"/>
--          <attribute name="Implementation-Version" value="${version}"/>
--          <attribute name="Implementation-Vendor" value="Apache"/>
--        </manifest>
--      </jar>
--
        <!-- Stress jar -->
        <manifest file="${stress.manifest}">
          <attribute name="Built-By" value="Pavel Yaskevich"/>
@@@ -1008,18 -980,18 +975,6 @@@
        <jar jarfile="${build.dir}/${final.name}-javadoc.jar"
             basedir="${javadoc.jars.dir}/main"/>
  
--      <create-javadoc destdir="${javadoc.jars.dir}/clientutil">
--        <filesets>
--          <fileset dir="${build.src.java}" defaultexcludes="yes">
--            <include name="org/apache/cassandra/serializers/*" />
--            <include name="org/apache/cassandra/utils/ByteBufferUtil*.java" />
--            <include name="org/apache/cassandra/utils/Hex.java" />
--            <include name="org/apache/cassandra/utils/UUIDGen*.java" />
--          </fileset>
--        </filesets>
--      </create-javadoc>
--      <jar jarfile="${build.dir}/${ant.project.name}-clientutil-${version}-javadoc.jar"
--           basedir="${javadoc.jars.dir}/clientutil"/>
        <!-- javadoc task always rebuilds so might as well remove the generated docs to prevent 
             being pulled into the distribution by accident -->
        <delete quiet="true" dir="${javadoc.jars.dir}"/>
@@@ -1042,14 -1014,14 +997,6 @@@
            <include name="org/apache/**/*.java"/>
          </fileset>
        </jar>
--      <jar jarfile="${build.dir}/${ant.project.name}-clientutil-${version}-sources.jar">
--        <fileset dir="${build.src.java}" defaultexcludes="yes">
--          <include name="org/apache/cassandra/serializers/*" />
--          <include name="org/apache/cassandra/utils/ByteBufferUtil*.java" />
--          <include name="org/apache/cassandra/utils/Hex.java" />
--          <include name="org/apache/cassandra/utils/UUIDGen*.java" />
--        </fileset>
--      </jar>
      </target>
  
      <!-- creates release tarballs -->
@@@ -1065,7 -1037,7 +1012,6 @@@
          <fileset dir="${build.dir}">
            <include name="${final.name}.jar" />
            <include name="${ant.project.name}-thrift-${version}.jar" />
--          <include name="${ant.project.name}-clientutil-${version}.jar" />
          </fileset>
        </copy>
        <copy todir="${dist.dir}/javadoc">
@@@ -1310,44 -1280,47 +1256,6 @@@
      </sequential>
    </macrodef>
  
--  <!--
--    This test target is a bit different.  It's purpose is to exercise the
--    clientutil jar in order to expose any new dependencies.  For that
--    reason we use the classes from the jar, and a carefully constructed
--    classpath which only contains what we expect users to need.
--  -->
--  <target name="test-clientutil-jar" depends="build-test,jar" description="Test clientutil jar">
--    <junit fork="on" forkmode="perTest" failureproperty="testfailed" maxmemory="1024m" timeout="${test.timeout}">
 -      <!-- Note that the test pass without that next line, but it prints an ugly error message -->
 -      <jvmarg value="-Djava.library.path=${build.lib}/sigar-bin"/>
--      <test name="org.apache.cassandra.serializers.ClientUtilsTest" />
--      <formatter type="brief" usefile="false" />
--      <classpath>
--        <pathelement location="${test.classes}" />
--        <pathelement location="${build.dir}/${ant.project.name}-clientutil-${version}.jar" />
--        <pathelement location="${build.dir}/${ant.project.name}-thrift-${version}.jar" />
--        <pathelement location="${build.lib}/libthrift-0.9.0.jar" />
--        <pathelement location="${build.lib}/slf4j-api-1.7.7.jar" />
--        <pathelement location="${build.lib}/log4j-over-slf4j.jar" />
--        <pathelement location="${build.lib}/logback-core-1.1.3.jar" />
--        <pathelement location="${build.lib}/logback-classic-1.1.3.jar" />
--        <pathelement location="${build.lib}/jackson-core-asl-1.9.2.jar" />
--        <pathelement location="${build.lib}/jackson-mapper-asl-1.9.2.jar" />
 -        <pathelement location="${build.lib}/sigar-1.6.4.jar" />
--        <fileset dir="${build.dir.lib}">
--          <include name="**/junit*.jar" />
--        </fileset>
--      </classpath>
--    </junit>
--      <fail message="Clientutil test(s) failed.">
--          <condition>
--              <and>
--                  <isset property="testfailed"/>
--                  <not>
--                      <isset property="ant.test.failure.ignore"/>
--                  </not>
--              </and>
--          </condition>
--      </fail>
--  </target>
--
    <target name="testold" depends="build-test" description="Execute unit tests">
      <testmacro inputdir="${test.unit.src}" timeout="${test.timeout}">
        <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
@@@ -1584,7 -1557,7 +1492,7 @@@
    </target>
  
    <target name="test-all" 
-           depends="eclipse-warnings,test,long-test,test-compression,test-clientutil-jar,stress-test"
 -          depends="eclipse-warnings,test,long-test,test-compression,test-clientutil-jar" 
++          depends="eclipse-warnings,test,long-test,test-compression,stress-test"
            description="Run all tests except for those under test-burn" />
    
    <!-- Use JaCoCo ant extension without needing externally saved lib -->
@@@ -1983,16 -1954,16 +1891,6 @@@
               file="${build.dir}/${ant.project.name}-thrift-${version}-javadoc.jar"
               classifier="javadoc"/>
  
--    <!-- the cassandra-clientutil jar -->  
--    <install pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
--             file="${build.dir}/${ant.project.name}-clientutil-${version}.jar"/>
--    <install pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
--             file="${build.dir}/${ant.project.name}-clientutil-${version}-sources.jar"
--             classifier="sources"/>
--    <install pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
--             file="${build.dir}/${ant.project.name}-clientutil-${version}-javadoc.jar"
--             classifier="javadoc"/>
--
      <!-- the cassandra-all jar -->
      <install pomFile="${build.dir}/${final.name}.pom"
               file="${build.dir}/${final.name}.jar"/>
@@@ -2037,15 -2008,15 +1935,6 @@@
              file="${build.dir}/${ant.project.name}-thrift-${version}-javadoc.jar"
              classifier="javadoc"/>
  
--    <!-- the cassandra-clientutil jar -->  
--    <deploy pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
--            file="${build.dir}/${ant.project.name}-clientutil-${version}.jar"/>
--    <deploy pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
--             file="${build.dir}/${ant.project.name}-clientutil-${version}-sources.jar"
--             classifier="sources"/>
--    <deploy pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
--             file="${build.dir}/${ant.project.name}-clientutil-${version}-javadoc.jar"
--             classifier="javadoc"/>
      <!-- the cassandra-all jar -->
      <deploy pomFile="${build.dir}/${final.name}.pom"
              file="${build.dir}/${final.name}.jar"/>

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a3e772b8/test/unit/org/apache/cassandra/serializers/ClientUtilsTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/serializers/ClientUtilsTest.java
index 563d6cb,563d6cb..0000000
deleted file mode 100644,100644
--- a/test/unit/org/apache/cassandra/serializers/ClientUtilsTest.java
+++ /dev/null
@@@ -1,59 -1,59 +1,0 @@@
--package org.apache.cassandra.serializers;
--/*
-- *
-- * 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.
-- *
-- */
--
--
--import java.math.BigDecimal;
--import java.math.BigInteger;
--import java.nio.ByteBuffer;
--import java.sql.Date;
--import java.util.UUID;
--
--import org.apache.cassandra.utils.UUIDGen;
--import org.junit.Test;
--
--public class ClientUtilsTest
--{
--    /** Exercises the classes in the clientutil jar to expose missing dependencies. */
--    @Test
--    public void test()
--    {
--        AsciiSerializer.instance.deserialize(AsciiSerializer.instance.serialize("string"));
--        BooleanSerializer.instance.deserialize(BooleanSerializer.instance.serialize(true));
--        BytesSerializer.instance.deserialize(BytesSerializer.instance.serialize(ByteBuffer.wrap("string".getBytes())));
--
--        Date date = new Date(System.currentTimeMillis());
--        ByteBuffer dateBB = TimestampSerializer.instance.serialize(date);
--        TimestampSerializer.instance.deserialize(dateBB);
--
--        DecimalSerializer.instance.deserialize(DecimalSerializer.instance.serialize(new BigDecimal(1)));
--        DoubleSerializer.instance.deserialize(DoubleSerializer.instance.serialize(new Double(1.0d)));
--        FloatSerializer.instance.deserialize(FloatSerializer.instance.serialize(new Float(1.0f)));
--        Int32Serializer.instance.deserialize(Int32Serializer.instance.serialize(1));
--        IntegerSerializer.instance.deserialize(IntegerSerializer.instance.serialize(new BigInteger("1")));
--        LongSerializer.instance.deserialize(LongSerializer.instance.serialize(1L));
--        UTF8Serializer.instance.deserialize(UTF8Serializer.instance.serialize("string"));
--
--        // UUIDGen
--        UUID uuid = UUIDGen.getTimeUUID();
--        UUIDSerializer.instance.deserialize(UUIDSerializer.instance.serialize(uuid));
--    }
--}