Index: hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestPutWriteToWal.java =================================================================== --- hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestPutWriteToWal.java (revision 0) +++ hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestPutWriteToWal.java (working copy) @@ -0,0 +1,72 @@ +/* + * 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.hadoop.hbase.client; + +import org.apache.hadoop.hbase.SmallTests; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * Tests for testing methods added in HBASE-9093. This set of tests is meant + * to test the {@linkplain Mutation#setWriteToWal(boolean)} + * and {@linkplain Mutation#getWriteToWal()} methods which provide + * a compatibility layer with HBase versions < 95's client side WAL semantics. + */ +@Category(SmallTests.class) +public class TestPutWriteToWal { + + private Put put; + @Before + public void setUp() throws Exception { + put = new Put("test".getBytes()); + } + + @Test + public void testWriteToWal(){ + put.setWriteToWal(true); + Assert.assertEquals(Durability.USE_DEFAULT, put.getDurability()); + } + + @Test + public void testNoWriteToWal() { + put.setWriteToWal(false); + Assert.assertEquals(Durability.SKIP_WAL, put.getDurability()); + } + + @Test + public void testWriteToWalSwitch() { + put.setWriteToWal(false); + Assert.assertEquals(Durability.SKIP_WAL, put.getDurability()); + put.setWriteToWal(true); + Assert.assertEquals(Durability.USE_DEFAULT, put.getDurability()); + } + + @Test + public void testPutCopy() { + put.setWriteToWal(false); + Put putCopy1 = new Put(put); + Assert.assertEquals(Durability.SKIP_WAL, putCopy1.getDurability()); + + put.setWriteToWal(true); + Put putCopy2 = new Put(put); + Assert.assertEquals(Durability.USE_DEFAULT, putCopy2.getDurability()); + } +} Property changes on: hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestPutWriteToWal.java ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Index: hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java =================================================================== --- hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java (revision 1508685) +++ hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java (working copy) @@ -179,6 +179,34 @@ } /** + * Set the durability for this mutation. If this is set to true, + * the default durability of the table is set. + * @param writeToWal + */ + @Deprecated + public void setWriteToWal(boolean writeToWal) { + if(!writeToWal) { + setDurability(Durability.SKIP_WAL); + } else { + // This is required to handle the case where this method is + // called twice, first with writeToWal = false, + // and then with writeToWal = true + setDurability(Durability.USE_DEFAULT); + } + } + + /** + * Get the durability for this mutation. + * @return - true if this mutation is set to write to the WAL either + * synchronously, asynchronously or fsync to disk on the file system. + * - to get the exact durability, use the {#getDurability} method. + */ + @Deprecated + public boolean getWriteToWal() { + return Durability.SKIP_WAL != getDurability(); + } + + /** * Method for retrieving the put's familyMap * @return familyMap */