Added: hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/WccData.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/WccData.java?rev=1493924&view=auto ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/WccData.java (added) +++ hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/WccData.java Mon Jun 17 20:32:13 2013 @@ -0,0 +1,58 @@ +/** + * 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.nfs.nfs3.response; + +import org.apache.hadoop.nfs.nfs3.Nfs3FileAttributes; +import org.apache.hadoop.oncrpc.XDR; + +/** + * WccData saved information used by client for weak cache consistency + */ +public class WccData { + private WccAttr preOpAttr; + private Nfs3FileAttributes postOpAttr; + + public WccAttr getPreOpAttr() { + return preOpAttr; + } + + public void setPreOpAttr(WccAttr preOpAttr) { + this.preOpAttr = preOpAttr; + } + + public Nfs3FileAttributes getPostOpAttr() { + return postOpAttr; + } + + public void setPostOpAttr(Nfs3FileAttributes postOpAttr) { + this.postOpAttr = postOpAttr; + } + + public WccData(WccAttr preOpAttr, Nfs3FileAttributes postOpAttr) { + this.preOpAttr = (preOpAttr == null) ? new WccAttr() : preOpAttr; + this.postOpAttr = (postOpAttr == null) ? new Nfs3FileAttributes() + : postOpAttr; + } + + public void serialize(XDR out) { + out.writeBoolean(true); // attributes follow + preOpAttr.serialize(out); + out.writeBoolean(true); // attributes follow + postOpAttr.serialize(out); + } +} \ No newline at end of file
Added: hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/nfs/TestNfsTime.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/nfs/TestNfsTime.java?rev=1493924&view=auto ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/nfs/TestNfsTime.java (added) +++ hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/nfs/TestNfsTime.java Mon Jun 17 20:32:13 2013 @@ -0,0 +1,47 @@ +/** + * 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.nfs; + +import junit.framework.Assert; + +import org.apache.hadoop.nfs.NfsTime; +import org.apache.hadoop.oncrpc.XDR; +import org.junit.Test; + +public class TestNfsTime { + @Test + public void testConstructor() { + NfsTime nfstime = new NfsTime(1001); + Assert.assertEquals(1, nfstime.getSeconds()); + Assert.assertEquals(1000000, nfstime.getNseconds()); + } + + @Test + public void testSerializeDeserialize() { + // Serialize NfsTime + NfsTime t1 = new NfsTime(1001); + XDR xdr = new XDR(); + t1.serialize(xdr); + + // Deserialize it back + NfsTime t2 = NfsTime.deserialize(xdr); + + // Ensure the NfsTimes are equal + Assert.assertEquals(t1, t2); + } +} Added: hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/nfs/nfs3/TestFileHandle.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/nfs/nfs3/TestFileHandle.java?rev=1493924&view=auto ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/nfs/nfs3/TestFileHandle.java (added) +++ hadoop/common/trunk/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/nfs/nfs3/TestFileHandle.java Mon Jun 17 20:32:13 2013 @@ -0,0 +1,39 @@ +/** + * 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.nfs.nfs3; + +import junit.framework.Assert; + +import org.apache.hadoop.nfs.nfs3.FileHandle; +import org.apache.hadoop.oncrpc.XDR; +import org.junit.Test; + +public class TestFileHandle { + @Test + public void testConstructor() { + FileHandle handle = new FileHandle(1024); + XDR xdr = new XDR(); + handle.serialize(xdr); + Assert.assertEquals(handle.getFileId(), 1024); + + // Deserialize it back + FileHandle handle2 = new FileHandle(); + handle2.deserialize(xdr); + Assert.assertEquals(handle.getFileId(), 1024); + } +}
