You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ss...@apache.org on 2012/10/16 02:03:31 UTC
svn commit: r1398581 [13/14] - in
/hadoop/common/branches/MR-3902/hadoop-common-project:
hadoop-annotations/src/main/java/org/apache/hadoop/classification/tools/
hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/client/
hadoop-auth/sr...
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/avro/TestAvroSerialization.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/avro/TestAvroSerialization.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/avro/TestAvroSerialization.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/avro/TestAvroSerialization.java Tue Oct 16 00:02:55 2012
@@ -70,10 +70,12 @@ public class TestAvroSerialization exten
public static class InnerRecord {
public int x = 7;
+ @Override
public int hashCode() {
return x;
}
+ @Override
public boolean equals(Object obj) {
if (this == obj)
return true;
@@ -91,10 +93,12 @@ public class TestAvroSerialization exten
public static class RefSerializable implements AvroReflectSerializable {
public int x = 7;
+ @Override
public int hashCode() {
return x;
}
+ @Override
public boolean equals(Object obj) {
if (this == obj)
return true;
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/MiniRPCBenchmark.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/MiniRPCBenchmark.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/MiniRPCBenchmark.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/MiniRPCBenchmark.java Tue Oct 16 00:02:55 2012
@@ -165,8 +165,10 @@ public class MiniRPCBenchmark {
new TestDelegationTokenSecretManager(24*60*60*1000,
7*24*60*60*1000,24*60*60*1000,3600000);
secretManager.startThreads();
- rpcServer = RPC.getServer(MiniProtocol.class,
- this, DEFAULT_SERVER_ADDRESS, 0, 1, false, conf, secretManager);
+ rpcServer = new RPC.Builder(conf).setProtocol(MiniProtocol.class)
+ .setInstance(this).setBindAddress(DEFAULT_SERVER_ADDRESS).setPort(0)
+ .setNumHandlers(1).setVerbose(false).setSecretManager(secretManager)
+ .build();
rpcServer.start();
}
@@ -208,6 +210,7 @@ public class MiniRPCBenchmark {
try {
client = proxyUserUgi.doAs(new PrivilegedExceptionAction<MiniProtocol>() {
+ @Override
public MiniProtocol run() throws IOException {
MiniProtocol p = (MiniProtocol) RPC.getProxy(MiniProtocol.class,
MiniProtocol.versionID, addr, conf);
@@ -235,6 +238,7 @@ public class MiniRPCBenchmark {
long start = Time.now();
try {
client = currentUgi.doAs(new PrivilegedExceptionAction<MiniProtocol>() {
+ @Override
public MiniProtocol run() throws IOException {
return (MiniProtocol) RPC.getProxy(MiniProtocol.class,
MiniProtocol.versionID, addr, conf);
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/RPCCallBenchmark.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/RPCCallBenchmark.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/RPCCallBenchmark.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/RPCCallBenchmark.java Tue Oct 16 00:02:55 2012
@@ -227,11 +227,14 @@ public class RPCCallBenchmark implements
BlockingService service = TestProtobufRpcProto
.newReflectiveBlockingService(serverImpl);
- server = RPC.getServer(TestRpcService.class, service,
- opts.host, opts.port, opts.serverThreads, false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestRpcService.class)
+ .setInstance(service).setBindAddress(opts.host).setPort(opts.port)
+ .setNumHandlers(opts.serverThreads).setVerbose(false).build();
} else if (opts.rpcEngine == WritableRpcEngine.class) {
- server = RPC.getServer(TestProtocol.class, new TestRPC.TestImpl(),
- opts.host, opts.port, opts.serverThreads, false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestRPC.TestImpl()).setBindAddress(opts.host)
+ .setPort(opts.port).setNumHandlers(opts.serverThreads)
+ .setVerbose(false).build();
} else {
throw new RuntimeException("Bad engine: " + opts.rpcEngine);
}
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIPC.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIPC.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIPC.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIPC.java Tue Oct 16 00:02:55 2012
@@ -130,6 +130,7 @@ public class TestIPC {
this.count = count;
}
+ @Override
public void run() {
for (int i = 0; i < count; i++) {
try {
@@ -219,6 +220,7 @@ public class TestIPC {
private static class IOEOnReadWritable extends LongWritable {
public IOEOnReadWritable() {}
+ @Override
public void readFields(DataInput in) throws IOException {
super.readFields(in);
maybeThrowIOE();
@@ -229,6 +231,7 @@ public class TestIPC {
private static class RTEOnReadWritable extends LongWritable {
public RTEOnReadWritable() {}
+ @Override
public void readFields(DataInput in) throws IOException {
super.readFields(in);
maybeThrowRTE();
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestMultipleProtocolServer.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestMultipleProtocolServer.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestMultipleProtocolServer.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestMultipleProtocolServer.java Tue Oct 16 00:02:55 2012
@@ -175,8 +175,9 @@ public class TestMultipleProtocolServer
@Before
public void setUp() throws Exception {
// create a server with two handlers
- server = RPC.getServer(Foo0.class,
- new Foo0Impl(), ADDRESS, 0, 2, false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(Foo0.class)
+ .setInstance(new Foo0Impl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
server.addProtocol(RPC.RpcKind.RPC_WRITABLE, Foo1.class, new Foo1Impl());
server.addProtocol(RPC.RpcKind.RPC_WRITABLE, Bar.class, new BarImpl());
server.addProtocol(RPC.RpcKind.RPC_WRITABLE, Mixin.class, new BarImpl());
@@ -263,8 +264,9 @@ public class TestMultipleProtocolServer
@Test(expected=IOException.class)
public void testIncorrectServerCreation() throws IOException {
- RPC.getServer(Foo1.class,
- new Foo0Impl(), ADDRESS, 0, 2, false, conf, null);
+ new RPC.Builder(conf).setProtocol(Foo1.class).setInstance(new Foo0Impl())
+ .setBindAddress(ADDRESS).setPort(0).setNumHandlers(2).setVerbose(false)
+ .build();
}
// Now test a PB service - a server hosts both PB and Writable Rpcs.
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestProtoBufRpc.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestProtoBufRpc.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestProtoBufRpc.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestProtoBufRpc.java Tue Oct 16 00:02:55 2012
@@ -113,7 +113,8 @@ public class TestProtoBufRpc {
.newReflectiveBlockingService(serverImpl);
// Get RPC server for server side implementation
- server = RPC.getServer(TestRpcService.class, service, ADDRESS, PORT, conf);
+ server = new RPC.Builder(conf).setProtocol(TestRpcService.class)
+ .setInstance(service).setBindAddress(ADDRESS).setPort(PORT).build();
addr = NetUtils.getConnectAddress(server);
// now the second protocol
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java Tue Oct 16 00:02:55 2012
@@ -106,17 +106,21 @@ public class TestRPC {
public static class TestImpl implements TestProtocol {
int fastPingCounter = 0;
+ @Override
public long getProtocolVersion(String protocol, long clientVersion) {
return TestProtocol.versionID;
}
+ @Override
public ProtocolSignature getProtocolSignature(String protocol, long clientVersion,
int hashcode) {
return new ProtocolSignature(TestProtocol.versionID, null);
}
+ @Override
public void ping() {}
+ @Override
public synchronized void slowPing(boolean shouldSlow) {
if (shouldSlow) {
while (fastPingCounter < 2) {
@@ -131,17 +135,22 @@ public class TestRPC {
}
}
+ @Override
public String echo(String value) throws IOException { return value; }
+ @Override
public String[] echo(String[] values) throws IOException { return values; }
+ @Override
public Writable echo(Writable writable) {
return writable;
}
+ @Override
public int add(int v1, int v2) {
return v1 + v2;
}
+ @Override
public int add(int[] values) {
int sum = 0;
for (int i = 0; i < values.length; i++) {
@@ -150,16 +159,19 @@ public class TestRPC {
return sum;
}
+ @Override
public int error() throws IOException {
throw new IOException("bobo");
}
+ @Override
public void testServerGet() throws IOException {
if (!(Server.get() instanceof RPC.Server)) {
throw new IOException("Server.get() failed");
}
}
+ @Override
public int[] exchange(int[] values) {
for (int i = 0; i < values.length; i++) {
values[i] = i;
@@ -186,6 +198,7 @@ public class TestRPC {
}
// do two RPC that transfers data.
+ @Override
public void run() {
int[] indata = new int[datasize];
int[] outdata = null;
@@ -220,6 +233,7 @@ public class TestRPC {
return done;
}
+ @Override
public void run() {
try {
proxy.slowPing(true); // this would hang until two fast pings happened
@@ -300,8 +314,9 @@ public class TestRPC {
@Test
public void testConfRpc() throws Exception {
- Server server = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, 1, false, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(1).setVerbose(false).build();
// Just one handler
int confQ = conf.getInt(
CommonConfigurationKeys.IPC_SERVER_HANDLER_QUEUE_SIZE_KEY,
@@ -314,8 +329,11 @@ public class TestRPC {
assertEquals(confReaders, server.getNumReaders());
server.stop();
- server = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, 1, 3, 200, false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(1).setnumReaders(3).setQueueSizePerHandler(200)
+ .setVerbose(false).build();
+
assertEquals(3, server.getNumReaders());
assertEquals(200, server.getMaxQueueSize());
server.stop();
@@ -323,8 +341,8 @@ public class TestRPC {
@Test
public void testProxyAddress() throws Exception {
- Server server = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, conf);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0).build();
TestProtocol proxy = null;
try {
@@ -348,8 +366,10 @@ public class TestRPC {
public void testSlowRpc() throws Exception {
System.out.println("Testing Slow RPC");
// create a server with two handlers
- Server server = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, 2, false, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
+
TestProtocol proxy = null;
try {
@@ -395,8 +415,8 @@ public class TestRPC {
}
private void testCallsInternal(Configuration conf) throws Exception {
- Server server = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, conf);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0).build();
TestProtocol proxy = null;
try {
server.start();
@@ -514,8 +534,9 @@ public class TestRPC {
}
private void doRPCs(Configuration conf, boolean expectFailure) throws Exception {
- Server server = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, 5, true, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(5).setVerbose(true).build();
server.refreshServiceAcl(conf, new TestPolicyProvider());
@@ -559,8 +580,9 @@ public class TestRPC {
@Test
public void testServerAddress() throws IOException {
- Server server = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, 5, true, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(5).setVerbose(true).build();
InetSocketAddress bindAddr = null;
try {
bindAddr = NetUtils.getConnectAddress(server);
@@ -654,8 +676,9 @@ public class TestRPC {
@Test
public void testErrorMsgForInsecureClient() throws Exception {
- final Server server = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, 5, true, conf, null);
+ final Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(5).setVerbose(true).build();
server.enableSecurity();
server.start();
boolean succeeded = false;
@@ -679,8 +702,10 @@ public class TestRPC {
conf.setInt(CommonConfigurationKeys.IPC_SERVER_RPC_READ_THREADS_KEY, 2);
- final Server multiServer = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, 5, true, conf, null);
+ final Server multiServer = new RPC.Builder(conf)
+ .setProtocol(TestProtocol.class).setInstance(new TestImpl())
+ .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5).setVerbose(true)
+ .build();
multiServer.enableSecurity();
multiServer.start();
succeeded = false;
@@ -734,8 +759,9 @@ public class TestRPC {
assertEquals("Expect no Reader threads running before test",
0, threadsBefore);
- final Server server = RPC.getServer(TestProtocol.class,
- new TestImpl(), ADDRESS, 0, 5, true, conf, null);
+ final Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(5).setVerbose(true).build();
server.start();
try {
int threadsRunning = countThreads("Server$Listener$Reader");
@@ -748,6 +774,42 @@ public class TestRPC {
0, threadsAfter);
}
+ @Test
+ public void testRPCBuilder() throws Exception {
+ // Test mandatory field conf
+ try {
+ new RPC.Builder(null).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(5).setVerbose(true).build();
+ fail("Didn't throw HadoopIllegalArgumentException");
+ } catch (Exception e) {
+ if (!(e instanceof HadoopIllegalArgumentException)) {
+ fail("Expecting HadoopIllegalArgumentException but caught " + e);
+ }
+ }
+ // Test mandatory field protocol
+ try {
+ new RPC.Builder(conf).setInstance(new TestImpl()).setBindAddress(ADDRESS)
+ .setPort(0).setNumHandlers(5).setVerbose(true).build();
+ fail("Didn't throw HadoopIllegalArgumentException");
+ } catch (Exception e) {
+ if (!(e instanceof HadoopIllegalArgumentException)) {
+ fail("Expecting HadoopIllegalArgumentException but caught " + e);
+ }
+ }
+ // Test mandatory field instance
+ try {
+ new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5)
+ .setVerbose(true).build();
+ fail("Didn't throw HadoopIllegalArgumentException");
+ } catch (Exception e) {
+ if (!(e instanceof HadoopIllegalArgumentException)) {
+ fail("Expecting HadoopIllegalArgumentException but caught " + e);
+ }
+ }
+ }
+
public static void main(String[] args) throws Exception {
new TestRPC().testCallsInternal(conf);
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPCCompatibility.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPCCompatibility.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPCCompatibility.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPCCompatibility.java Tue Oct 16 00:02:55 2012
@@ -131,8 +131,9 @@ public class TestRPCCompatibility {
public void testVersion0ClientVersion1Server() throws Exception {
// create a server with two handlers
TestImpl1 impl = new TestImpl1();
- server = RPC.getServer(TestProtocol1.class,
- impl, ADDRESS, 0, 2, false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestProtocol1.class)
+ .setInstance(impl).setBindAddress(ADDRESS).setPort(0).setNumHandlers(2)
+ .setVerbose(false).build();
server.addProtocol(RPC.RpcKind.RPC_WRITABLE, TestProtocol0.class, impl);
server.start();
addr = NetUtils.getConnectAddress(server);
@@ -147,8 +148,9 @@ public class TestRPCCompatibility {
@Test // old client vs new server
public void testVersion1ClientVersion0Server() throws Exception {
// create a server with two handlers
- server = RPC.getServer(TestProtocol0.class,
- new TestImpl0(), ADDRESS, 0, 2, false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestProtocol0.class)
+ .setInstance(new TestImpl0()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
server.start();
addr = NetUtils.getConnectAddress(server);
@@ -198,8 +200,9 @@ System.out.println("echo int is NOT supp
public void testVersion2ClientVersion1Server() throws Exception {
// create a server with two handlers
TestImpl1 impl = new TestImpl1();
- server = RPC.getServer(TestProtocol1.class,
- impl, ADDRESS, 0, 2, false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestProtocol1.class)
+ .setInstance(impl).setBindAddress(ADDRESS).setPort(0).setNumHandlers(2)
+ .setVerbose(false).build();
server.addProtocol(RPC.RpcKind.RPC_WRITABLE, TestProtocol0.class, impl);
server.start();
addr = NetUtils.getConnectAddress(server);
@@ -219,8 +222,9 @@ System.out.println("echo int is NOT supp
ProtocolSignature.resetCache();
// create a server with two handlers
TestImpl2 impl = new TestImpl2();
- server = RPC.getServer(TestProtocol2.class,
- impl, ADDRESS, 0, 2, false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestProtocol2.class)
+ .setInstance(impl).setBindAddress(ADDRESS).setPort(0).setNumHandlers(2)
+ .setVerbose(false).build();
server.addProtocol(RPC.RpcKind.RPC_WRITABLE, TestProtocol0.class, impl);
server.start();
addr = NetUtils.getConnectAddress(server);
@@ -284,13 +288,15 @@ System.out.println("echo int is NOT supp
"org.apache.hadoop.ipc.TestRPCCompatibility$TestProtocol1")
public interface TestProtocol4 extends TestProtocol2 {
public static final long versionID = 4L;
+ @Override
int echo(int value) throws IOException;
}
@Test
public void testVersionMismatch() throws IOException {
- server = RPC.getServer(TestProtocol2.class, new TestImpl2(), ADDRESS, 0, 2,
- false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestProtocol2.class)
+ .setInstance(new TestImpl2()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
server.start();
addr = NetUtils.getConnectAddress(server);
@@ -307,8 +313,9 @@ System.out.println("echo int is NOT supp
@Test
public void testIsMethodSupported() throws IOException {
- server = RPC.getServer(TestProtocol2.class, new TestImpl2(), ADDRESS, 0, 2,
- false, conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestProtocol2.class)
+ .setInstance(new TestImpl2()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
server.start();
addr = NetUtils.getConnectAddress(server);
@@ -331,8 +338,9 @@ System.out.println("echo int is NOT supp
@Test
public void testProtocolMetaInfoSSTranslatorPB() throws Exception {
TestImpl1 impl = new TestImpl1();
- server = RPC.getServer(TestProtocol1.class, impl, ADDRESS, 0, 2, false,
- conf, null);
+ server = new RPC.Builder(conf).setProtocol(TestProtocol1.class)
+ .setInstance(impl).setBindAddress(ADDRESS).setPort(0).setNumHandlers(2)
+ .setVerbose(false).build();
server.addProtocol(RPC.RpcKind.RPC_WRITABLE, TestProtocol0.class, impl);
server.start();
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java Tue Oct 16 00:02:55 2012
@@ -19,10 +19,7 @@
package org.apache.hadoop.ipc;
import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
+import static org.junit.Assert.*;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
@@ -44,6 +41,7 @@ import org.apache.hadoop.fs.CommonConfig
import org.apache.hadoop.io.Text;
import org.apache.hadoop.ipc.Client.ConnectionId;
import org.apache.hadoop.net.NetUtils;
+import org.apache.hadoop.security.AccessControlException;
import org.apache.hadoop.security.KerberosInfo;
import org.apache.hadoop.security.SaslInputStream;
import org.apache.hadoop.security.SaslRpcClient;
@@ -60,6 +58,7 @@ import org.apache.hadoop.security.token.
import org.apache.hadoop.security.token.TokenSelector;
import org.apache.hadoop.security.token.SecretManager.InvalidToken;
import org.apache.log4j.Level;
+import org.junit.BeforeClass;
import org.junit.Test;
/** Unit tests for using Sasl over RPC. */
@@ -76,7 +75,8 @@ public class TestSaslRPC {
static final String SERVER_PRINCIPAL_2 = "p2/foo@BAR";
private static Configuration conf;
- static {
+ @BeforeClass
+ public static void setup() {
conf = new Configuration();
conf.set(HADOOP_SECURITY_AUTHENTICATION, "kerberos");
UserGroupInformation.setConfiguration(conf);
@@ -112,7 +112,7 @@ public class TestSaslRPC {
}
@Override
public UserGroupInformation getUser() {
- if ("".equals(realUser.toString())) {
+ if (realUser.toString().isEmpty()) {
return UserGroupInformation.createRemoteUser(tokenid.toString());
} else {
UserGroupInformation realUgi = UserGroupInformation
@@ -136,15 +136,18 @@ public class TestSaslRPC {
public static class TestTokenSecretManager extends
SecretManager<TestTokenIdentifier> {
+ @Override
public byte[] createPassword(TestTokenIdentifier id) {
return id.getBytes();
}
+ @Override
public byte[] retrievePassword(TestTokenIdentifier id)
throws InvalidToken {
return id.getBytes();
}
+ @Override
public TestTokenIdentifier createIdentifier() {
return new TestTokenIdentifier();
}
@@ -152,6 +155,7 @@ public class TestSaslRPC {
public static class BadTokenSecretManager extends TestTokenSecretManager {
+ @Override
public byte[] retrievePassword(TestTokenIdentifier id)
throws InvalidToken {
throw new InvalidToken(ERROR_MESSAGE);
@@ -186,6 +190,7 @@ public class TestSaslRPC {
public static class TestSaslImpl extends TestRPC.TestImpl implements
TestSaslProtocol {
+ @Override
public AuthenticationMethod getAuthMethod() throws IOException {
return UserGroupInformation.getCurrentUser().getAuthenticationMethod();
}
@@ -230,9 +235,11 @@ public class TestSaslRPC {
@Test
public void testDigestRpc() throws Exception {
TestTokenSecretManager sm = new TestTokenSecretManager();
- final Server server = RPC.getServer(TestSaslProtocol.class,
- new TestSaslImpl(), ADDRESS, 0, 5, true, conf, sm);
-
+ final Server server = new RPC.Builder(conf)
+ .setProtocol(TestSaslProtocol.class).setInstance(new TestSaslImpl())
+ .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5).setVerbose(true)
+ .setSecretManager(sm).build();
+
doDigestRpc(server, sm);
}
@@ -241,9 +248,10 @@ public class TestSaslRPC {
TestTokenSecretManager sm = new TestTokenSecretManager();
try {
SecurityUtil.setSecurityInfoProviders(new CustomSecurityInfo());
- final Server server = RPC.getServer(TestSaslProtocol.class,
- new TestSaslImpl(), ADDRESS, 0, 5,
- true, conf, sm);
+ final Server server = new RPC.Builder(conf)
+ .setProtocol(TestSaslProtocol.class).setInstance(new TestSaslImpl())
+ .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5)
+ .setVerbose(true).setSecretManager(sm).build();
doDigestRpc(server, sm);
} finally {
SecurityUtil.setSecurityInfoProviders(new SecurityInfo[0]);
@@ -252,8 +260,9 @@ public class TestSaslRPC {
@Test
public void testSecureToInsecureRpc() throws Exception {
- Server server = RPC.getServer(TestSaslProtocol.class,
- new TestSaslImpl(), ADDRESS, 0, 5, true, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestSaslProtocol.class)
+ .setInstance(new TestSaslImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(5).setVerbose(true).build();
server.disableSecurity();
TestTokenSecretManager sm = new TestTokenSecretManager();
doDigestRpc(server, sm);
@@ -262,8 +271,10 @@ public class TestSaslRPC {
@Test
public void testErrorMessage() throws Exception {
BadTokenSecretManager sm = new BadTokenSecretManager();
- final Server server = RPC.getServer(TestSaslProtocol.class,
- new TestSaslImpl(), ADDRESS, 0, 5, true, conf, sm);
+ final Server server = new RPC.Builder(conf)
+ .setProtocol(TestSaslProtocol.class).setInstance(new TestSaslImpl())
+ .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5).setVerbose(true)
+ .setSecretManager(sm).build();
boolean succeeded = false;
try {
@@ -350,8 +361,10 @@ public class TestSaslRPC {
@Test
public void testPerConnectionConf() throws Exception {
TestTokenSecretManager sm = new TestTokenSecretManager();
- final Server server = RPC.getServer(TestSaslProtocol.class,
- new TestSaslImpl(), ADDRESS, 0, 5, true, conf, sm);
+ final Server server = new RPC.Builder(conf)
+ .setProtocol(TestSaslProtocol.class).setInstance(new TestSaslImpl())
+ .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5).setVerbose(true)
+ .setSecretManager(sm).build();
server.start();
final UserGroupInformation current = UserGroupInformation.getCurrentUser();
final InetSocketAddress addr = NetUtils.getConnectAddress(server);
@@ -413,8 +426,10 @@ public class TestSaslRPC {
UserGroupInformation current = UserGroupInformation.getCurrentUser();
System.out.println("UGI: " + current);
- Server server = RPC.getServer(TestSaslProtocol.class, new TestSaslImpl(),
- ADDRESS, 0, 5, true, newConf, null);
+ Server server = new RPC.Builder(newConf)
+ .setProtocol(TestSaslProtocol.class).setInstance(new TestSaslImpl())
+ .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5).setVerbose(true)
+ .build();
TestSaslProtocol proxy = null;
server.start();
@@ -432,39 +447,138 @@ public class TestSaslRPC {
}
System.out.println("Test is successful.");
}
-
+
+ // insecure -> insecure
@Test
- public void testDigestAuthMethod() throws Exception {
+ public void testInsecureClientInsecureServer() throws Exception {
+ assertEquals(AuthenticationMethod.SIMPLE,
+ getAuthMethod(false, false, false));
+ }
+
+ @Test
+ public void testInsecureClientInsecureServerWithToken() throws Exception {
+ assertEquals(AuthenticationMethod.TOKEN,
+ getAuthMethod(false, false, true));
+ }
+
+ // insecure -> secure
+ @Test
+ public void testInsecureClientSecureServer() throws Exception {
+ RemoteException e = null;
+ try {
+ getAuthMethod(false, true, false);
+ } catch (RemoteException re) {
+ e = re;
+ }
+ assertNotNull(e);
+ assertEquals(AccessControlException.class.getName(), e.getClassName());
+ }
+
+ @Test
+ public void testInsecureClientSecureServerWithToken() throws Exception {
+ assertEquals(AuthenticationMethod.TOKEN,
+ getAuthMethod(false, true, true));
+ }
+
+ // secure -> secure
+ @Test
+ public void testSecureClientSecureServer() throws Exception {
+ /* Should be this when multiple secure auths are supported and we can
+ * dummy one out:
+ * assertEquals(AuthenticationMethod.SECURE_AUTH_METHOD,
+ * getAuthMethod(true, true, false));
+ */
+ try {
+ getAuthMethod(true, true, false);
+ } catch (IOException ioe) {
+ // can't actually test kerberos w/o kerberos...
+ String expectedError = "Failed to specify server's Kerberos principal";
+ String actualError = ioe.getMessage();
+ assertTrue("["+actualError+"] doesn't start with ["+expectedError+"]",
+ actualError.contains(expectedError));
+ }
+ }
+
+ @Test
+ public void testSecureClientSecureServerWithToken() throws Exception {
+ assertEquals(AuthenticationMethod.TOKEN,
+ getAuthMethod(true, true, true));
+ }
+
+ // secure -> insecure
+ @Test
+ public void testSecureClientInsecureServerWithToken() throws Exception {
+ assertEquals(AuthenticationMethod.TOKEN,
+ getAuthMethod(true, false, true));
+ }
+
+ @Test
+ public void testSecureClientInsecureServer() throws Exception {
+ /* Should be this when multiple secure auths are supported and we can
+ * dummy one out:
+ * assertEquals(AuthenticationMethod.SIMPLE
+ * getAuthMethod(true, false, false));
+ */
+ try {
+ getAuthMethod(true, false, false);
+ } catch (IOException ioe) {
+ // can't actually test kerberos w/o kerberos...
+ String expectedError = "Failed to specify server's Kerberos principal";
+ String actualError = ioe.getMessage();
+ assertTrue("["+actualError+"] doesn't start with ["+expectedError+"]",
+ actualError.contains(expectedError));
+ }
+ }
+
+
+ private AuthenticationMethod getAuthMethod(final boolean isSecureClient,
+ final boolean isSecureServer,
+ final boolean useToken
+
+ ) throws Exception {
TestTokenSecretManager sm = new TestTokenSecretManager();
- Server server = RPC.getServer(TestSaslProtocol.class,
- new TestSaslImpl(), ADDRESS, 0, 5, true, conf, sm);
+ Server server = new RPC.Builder(conf).setProtocol(TestSaslProtocol.class)
+ .setInstance(new TestSaslImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(5).setVerbose(true).setSecretManager(sm).build();
+ if (isSecureServer) {
+ server.enableSecurity();
+ } else {
+ server.disableSecurity();
+ }
server.start();
final UserGroupInformation current = UserGroupInformation.getCurrentUser();
final InetSocketAddress addr = NetUtils.getConnectAddress(server);
- TestTokenIdentifier tokenId = new TestTokenIdentifier(new Text(current
- .getUserName()));
- Token<TestTokenIdentifier> token = new Token<TestTokenIdentifier>(tokenId,
- sm);
- SecurityUtil.setTokenService(token, addr);
- current.addToken(token);
+ if (useToken) {
+ TestTokenIdentifier tokenId = new TestTokenIdentifier(
+ new Text(current.getUserName()));
+ Token<TestTokenIdentifier> token =
+ new Token<TestTokenIdentifier>(tokenId, sm);
+ SecurityUtil.setTokenService(token, addr);
+ current.addToken(token);
+ }
- current.doAs(new PrivilegedExceptionAction<Object>() {
- public Object run() throws IOException {
- TestSaslProtocol proxy = null;
- try {
- proxy = (TestSaslProtocol) RPC.getProxy(TestSaslProtocol.class,
- TestSaslProtocol.versionID, addr, conf);
- Assert.assertEquals(AuthenticationMethod.TOKEN, proxy.getAuthMethod());
- } finally {
- if (proxy != null) {
- RPC.stopProxy(proxy);
+ conf.set(HADOOP_SECURITY_AUTHENTICATION, isSecureClient ? "kerberos" : "simple");
+ UserGroupInformation.setConfiguration(conf);
+ try {
+ return current.doAs(new PrivilegedExceptionAction<AuthenticationMethod>() {
+ @Override
+ public AuthenticationMethod run() throws IOException {
+ TestSaslProtocol proxy = null;
+ try {
+ proxy = (TestSaslProtocol) RPC.getProxy(TestSaslProtocol.class,
+ TestSaslProtocol.versionID, addr, conf);
+ return proxy.getAuthMethod();
+ } finally {
+ if (proxy != null) {
+ RPC.stopProxy(proxy);
+ }
}
}
- return null;
- }
- });
- server.stop();
+ });
+ } finally {
+ server.stop();
+ }
}
public static void main(String[] args) throws Exception {
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics/TestMetricsServlet.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics/TestMetricsServlet.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics/TestMetricsServlet.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics/TestMetricsServlet.java Tue Oct 16 00:02:55 2012
@@ -43,6 +43,7 @@ public class TestMetricsServlet extends
* Initializes, for testing, two NoEmitMetricsContext's, and adds one value
* to the first of them.
*/
+ @Override
public void setUp() throws IOException {
nc1 = new NoEmitMetricsContext();
nc1.init("test1", ContextFactory.getFactory());
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/lib/TestMetricsAnnotations.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/lib/TestMetricsAnnotations.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/lib/TestMetricsAnnotations.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/lib/TestMetricsAnnotations.java Tue Oct 16 00:02:55 2012
@@ -21,8 +21,6 @@ package org.apache.hadoop.metrics2.lib;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
-import static org.apache.hadoop.test.MockitoMaker.*;
-
import org.apache.hadoop.metrics2.MetricsCollector;
import org.apache.hadoop.metrics2.MetricsException;
import org.apache.hadoop.metrics2.MetricsRecordBuilder;
@@ -145,6 +143,7 @@ public class TestMetricsAnnotations {
@Metric int getG0() { return 0; }
+ @Override
public void getMetrics(MetricsCollector collector, boolean all) {
collector.addRecord("foo")
.setContext("foocontext")
@@ -183,6 +182,7 @@ public class TestMetricsAnnotations {
@Metric MutableCounterInt c1;
+ @Override
public void getMetrics(MetricsCollector collector, boolean all) {
collector.addRecord("foo");
}
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/lib/TestMetricsRegistry.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/lib/TestMetricsRegistry.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/lib/TestMetricsRegistry.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/lib/TestMetricsRegistry.java Tue Oct 16 00:02:55 2012
@@ -51,6 +51,7 @@ public class TestMetricsRegistry {
assertTrue("s1 found", r.get("s1") instanceof MutableStat);
expectMetricsException("Metric name c1 already exists", new Runnable() {
+ @Override
public void run() { r.newCounter("c1", "test dup", 0); }
});
}
@@ -70,10 +71,12 @@ public class TestMetricsRegistry {
r.newGauge("g1", "test add", 1);
expectMetricsException("Unsupported add", new Runnable() {
+ @Override
public void run() { r.add("c1", 42); }
});
expectMetricsException("Unsupported add", new Runnable() {
+ @Override
public void run() { r.add("g1", 42); }
});
}
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/StaticMapping.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/StaticMapping.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/StaticMapping.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/StaticMapping.java Tue Oct 16 00:02:55 2012
@@ -21,10 +21,8 @@ import org.apache.hadoop.conf.Configurat
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Set;
/**
* Implements the {@link DNSToSwitchMapping} via static mappings. Used
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/FromCpp.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/FromCpp.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/FromCpp.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/FromCpp.java Tue Oct 16 00:02:55 2012
@@ -33,9 +33,11 @@ public class FromCpp extends TestCase {
super(testName);
}
+ @Override
protected void setUp() throws Exception {
}
+ @Override
protected void tearDown() throws Exception {
}
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/RecordBench.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/RecordBench.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/RecordBench.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/RecordBench.java Tue Oct 16 00:02:55 2012
@@ -23,8 +23,6 @@ import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import java.lang.reflect.Array;
-import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Random;
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/TestRecordIO.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/TestRecordIO.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/TestRecordIO.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/TestRecordIO.java Tue Oct 16 00:02:55 2012
@@ -34,9 +34,11 @@ public class TestRecordIO extends TestCa
super(testName);
}
+ @Override
protected void setUp() throws Exception {
}
+ @Override
protected void tearDown() throws Exception {
}
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/TestRecordVersioning.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/TestRecordVersioning.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/TestRecordVersioning.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/TestRecordVersioning.java Tue Oct 16 00:02:55 2012
@@ -35,9 +35,11 @@ public class TestRecordVersioning extend
super(testName);
}
+ @Override
protected void setUp() throws Exception {
}
+ @Override
protected void tearDown() throws Exception {
}
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/ToCpp.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/ToCpp.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/ToCpp.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/record/ToCpp.java Tue Oct 16 00:02:55 2012
@@ -33,9 +33,11 @@ public class ToCpp extends TestCase {
super(testName);
}
+ @Override
protected void setUp() throws Exception {
}
+ @Override
protected void tearDown() throws Exception {
}
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestAuthenticationFilter.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestAuthenticationFilter.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestAuthenticationFilter.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestAuthenticationFilter.java Tue Oct 16 00:02:55 2012
@@ -22,7 +22,6 @@ import org.apache.hadoop.http.HttpServer
import org.apache.hadoop.security.authentication.server.AuthenticationFilter;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.http.FilterContainer;
-import org.apache.hadoop.security.authentication.server.KerberosAuthenticationHandler;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
@@ -55,6 +54,7 @@ public class TestAuthenticationFilter ex
FilterContainer container = Mockito.mock(FilterContainer.class);
Mockito.doAnswer(
new Answer() {
+ @Override
public Object answer(InvocationOnMock invocationOnMock)
throws Throwable {
Object[] args = invocationOnMock.getArguments();
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestCredentials.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestCredentials.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestCredentials.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestCredentials.java Tue Oct 16 00:02:55 2012
@@ -29,13 +29,10 @@ import java.io.IOException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
-import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.Collection;
-import static org.mockito.Mockito.mock;
-
import javax.crypto.KeyGenerator;
import org.apache.hadoop.io.Text;
@@ -213,5 +210,22 @@ public class TestCredentials {
// new token & secret should be added
assertEquals(token[2], creds.getToken(service[2]));
assertEquals(secret[2], new Text(creds.getSecretKey(secret[2])));
- }
+ }
+
+ @Test
+ public void testAddTokensToUGI() {
+ UserGroupInformation ugi = UserGroupInformation.createRemoteUser("someone");
+ Credentials creds = new Credentials();
+
+ for (int i=0; i < service.length; i++) {
+ creds.addToken(service[i], token[i]);
+ }
+ ugi.addCredentials(creds);
+
+ creds = ugi.getCredentials();
+ for (int i=0; i < service.length; i++) {
+ assertSame(token[i], creds.getToken(service[i]));
+ }
+ assertEquals(service.length, creds.numberOfTokens());
+ }
}
\ No newline at end of file
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestDoAsEffectiveUser.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestDoAsEffectiveUser.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestDoAsEffectiveUser.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestDoAsEffectiveUser.java Tue Oct 16 00:02:55 2012
@@ -39,7 +39,6 @@ import org.apache.hadoop.security.author
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenInfo;
import org.junit.Test;
-import org.apache.hadoop.ipc.TestSaslRPC;
import org.apache.hadoop.ipc.TestSaslRPC.TestTokenSecretManager;
import org.apache.hadoop.ipc.TestSaslRPC.TestTokenIdentifier;
import org.apache.hadoop.ipc.TestSaslRPC.TestTokenSelector;
@@ -113,6 +112,7 @@ public class TestDoAsEffectiveUser {
PROXY_USER_NAME, realUserUgi);
UserGroupInformation curUGI = proxyUserUgi
.doAs(new PrivilegedExceptionAction<UserGroupInformation>() {
+ @Override
public UserGroupInformation run() throws IOException {
return UserGroupInformation.getCurrentUser();
}
@@ -131,10 +131,12 @@ public class TestDoAsEffectiveUser {
public class TestImpl implements TestProtocol {
+ @Override
public String aMethod() throws IOException {
return UserGroupInformation.getCurrentUser().toString();
}
+ @Override
public long getProtocolVersion(String protocol, long clientVersion)
throws IOException {
return TestProtocol.versionID;
@@ -153,8 +155,9 @@ public class TestDoAsEffectiveUser {
conf.setStrings(ProxyUsers
.getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME), "group1");
configureSuperUserIPAddresses(conf, REAL_USER_SHORT_NAME);
- Server server = RPC.getServer(TestProtocol.class, new TestImpl(), ADDRESS,
- 0, 5, true, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(5).setVerbose(true).build();
refreshConf(conf);
try {
@@ -168,6 +171,7 @@ public class TestDoAsEffectiveUser {
PROXY_USER_NAME, realUserUgi, GROUP_NAMES);
String retVal = proxyUserUgi
.doAs(new PrivilegedExceptionAction<String>() {
+ @Override
public String run() throws IOException {
proxy = RPC.getProxy(TestProtocol.class,
TestProtocol.versionID, addr, conf);
@@ -194,8 +198,9 @@ public class TestDoAsEffectiveUser {
configureSuperUserIPAddresses(conf, REAL_USER_SHORT_NAME);
conf.setStrings(ProxyUsers.getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME),
"group1");
- Server server = RPC.getServer(TestProtocol.class, new TestImpl(), ADDRESS,
- 0, 2, false, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
refreshConf(conf);
try {
@@ -210,6 +215,7 @@ public class TestDoAsEffectiveUser {
.createProxyUserForTesting(PROXY_USER_NAME, realUserUgi, GROUP_NAMES);
String retVal = proxyUserUgi
.doAs(new PrivilegedExceptionAction<String>() {
+ @Override
public String run() throws IOException {
proxy = RPC.getProxy(TestProtocol.class,
TestProtocol.versionID, addr, conf);
@@ -240,8 +246,9 @@ public class TestDoAsEffectiveUser {
"20.20.20.20"); //Authorized IP address
conf.setStrings(ProxyUsers.getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME),
"group1");
- Server server = RPC.getServer(TestProtocol.class, new TestImpl(), ADDRESS,
- 0, 2, false, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
refreshConf(conf);
@@ -257,6 +264,7 @@ public class TestDoAsEffectiveUser {
.createProxyUserForTesting(PROXY_USER_NAME, realUserUgi, GROUP_NAMES);
String retVal = proxyUserUgi
.doAs(new PrivilegedExceptionAction<String>() {
+ @Override
public String run() throws IOException {
proxy = RPC.getProxy(TestProtocol.class,
TestProtocol.versionID, addr, conf);
@@ -281,8 +289,9 @@ public class TestDoAsEffectiveUser {
final Configuration conf = new Configuration();
conf.setStrings(ProxyUsers
.getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME), "group1");
- Server server = RPC.getServer(TestProtocol.class, new TestImpl(), ADDRESS,
- 0, 2, false, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
try {
server.start();
@@ -296,6 +305,7 @@ public class TestDoAsEffectiveUser {
.createProxyUserForTesting(PROXY_USER_NAME, realUserUgi, GROUP_NAMES);
String retVal = proxyUserUgi
.doAs(new PrivilegedExceptionAction<String>() {
+ @Override
public String run() throws IOException {
proxy = RPC.getProxy(TestProtocol.class,
TestProtocol.versionID, addr, conf);
@@ -319,8 +329,9 @@ public class TestDoAsEffectiveUser {
public void testRealUserGroupNotSpecified() throws IOException {
final Configuration conf = new Configuration();
configureSuperUserIPAddresses(conf, REAL_USER_SHORT_NAME);
- Server server = RPC.getServer(TestProtocol.class, new TestImpl(), ADDRESS,
- 0, 2, false, conf, null);
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
try {
server.start();
@@ -334,6 +345,7 @@ public class TestDoAsEffectiveUser {
.createProxyUserForTesting(PROXY_USER_NAME, realUserUgi, GROUP_NAMES);
String retVal = proxyUserUgi
.doAs(new PrivilegedExceptionAction<String>() {
+ @Override
public String run() throws IOException {
proxy = (TestProtocol) RPC.getProxy(TestProtocol.class,
TestProtocol.versionID, addr, conf);
@@ -359,9 +371,9 @@ public class TestDoAsEffectiveUser {
configureSuperUserIPAddresses(conf, REAL_USER_SHORT_NAME);
conf.setStrings(ProxyUsers.getProxySuperuserGroupConfKey(REAL_USER_SHORT_NAME),
"group3");
- Server server = RPC.getServer(TestProtocol.class, new TestImpl(), ADDRESS,
- 0, 2, false, conf, null);
-
+ Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(2).setVerbose(false).build();
try {
server.start();
@@ -375,6 +387,7 @@ public class TestDoAsEffectiveUser {
.createProxyUserForTesting(PROXY_USER_NAME, realUserUgi, GROUP_NAMES);
String retVal = proxyUserUgi
.doAs(new PrivilegedExceptionAction<String>() {
+ @Override
public String run() throws IOException {
proxy = RPC.getProxy(TestProtocol.class,
TestProtocol.versionID, addr, conf);
@@ -406,8 +419,9 @@ public class TestDoAsEffectiveUser {
conf
.set(CommonConfigurationKeys.HADOOP_SECURITY_AUTHENTICATION, "kerberos");
UserGroupInformation.setConfiguration(conf);
- final Server server = RPC.getServer(TestProtocol.class, new TestImpl(),
- ADDRESS, 0, 5, true, conf, sm);
+ final Server server = new RPC.Builder(conf).setProtocol(TestProtocol.class)
+ .setInstance(new TestImpl()).setBindAddress(ADDRESS).setPort(0)
+ .setNumHandlers(5).setVerbose(true).setSecretManager(sm).build();
server.start();
@@ -460,8 +474,10 @@ public class TestDoAsEffectiveUser {
newConf.set(CommonConfigurationKeys.HADOOP_SECURITY_AUTHENTICATION,
"kerberos");
UserGroupInformation.setConfiguration(newConf);
- final Server server = RPC.getServer(TestProtocol.class, new TestImpl(),
- ADDRESS, 0, 5, true, newConf, sm);
+ final Server server = new RPC.Builder(newConf)
+ .setProtocol(TestProtocol.class).setInstance(new TestImpl())
+ .setBindAddress(ADDRESS).setPort(0).setNumHandlers(5).setVerbose(true)
+ .setSecretManager(sm).build();
server.start();
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestGroupsCaching.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestGroupsCaching.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestGroupsCaching.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestGroupsCaching.java Tue Oct 16 00:02:55 2012
@@ -54,6 +54,7 @@ public class TestGroupsCaching {
private static Set<String> allGroups = new HashSet<String>();
private static Set<String> blackList = new HashSet<String>();
+ @Override
public List<String> getGroups(String user) throws IOException {
LOG.info("Getting groups for " + user);
if (blackList.contains(user)) {
@@ -62,6 +63,7 @@ public class TestGroupsCaching {
return new LinkedList<String>(allGroups);
}
+ @Override
public void cacheGroupsRefresh() throws IOException {
LOG.info("Cache is being refreshed.");
clearBlackList();
@@ -73,6 +75,7 @@ public class TestGroupsCaching {
blackList.clear();
}
+ @Override
public void cacheGroupsAdd(List<String> groups) throws IOException {
LOG.info("Adding " + groups + " to groups.");
allGroups.addAll(groups);
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestJNIGroupsMapping.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestJNIGroupsMapping.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestJNIGroupsMapping.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestJNIGroupsMapping.java Tue Oct 16 00:02:55 2012
@@ -21,16 +21,11 @@ import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.List;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import org.apache.hadoop.fs.CommonConfigurationKeys;
import org.apache.hadoop.security.GroupMappingServiceProvider;
import org.apache.hadoop.security.JniBasedUnixGroupsMapping;
import org.apache.hadoop.security.ShellBasedUnixGroupsMapping;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.util.NativeCodeLoader;
-import org.apache.hadoop.util.ReflectionUtils;
import org.junit.Before;
import org.junit.Test;
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java Tue Oct 16 00:02:55 2012
@@ -19,12 +19,12 @@ package org.apache.hadoop.security;
import static org.junit.Assert.*;
import org.junit.*;
-import org.mockito.Mockito;
-import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.lang.reflect.Method;
import java.security.PrivilegedExceptionAction;
import java.util.Collection;
import java.util.LinkedHashSet;
@@ -35,6 +35,7 @@ import javax.security.auth.login.AppConf
import javax.security.auth.login.LoginContext;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.io.Text;
import org.apache.hadoop.metrics2.MetricsRecordBuilder;
import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;
import org.apache.hadoop.security.token.Token;
@@ -49,6 +50,7 @@ public class TestUserGroupInformation {
final private static String GROUP3_NAME = "group3";
final private static String[] GROUP_NAMES =
new String[]{GROUP1_NAME, GROUP2_NAME, GROUP3_NAME};
+ private static Configuration conf;
/**
* UGI should not use the default security conf, else it will collide
@@ -68,7 +70,7 @@ public class TestUserGroupInformation {
/** configure ugi */
@BeforeClass
public static void setup() {
- Configuration conf = new Configuration();
+ conf = new Configuration();
conf.set(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTH_TO_LOCAL,
"RULE:[2:$1@$0](.*@HADOOP.APACHE.ORG)s/@.*//" +
"RULE:[1:$1@$0](.*@HADOOP.APACHE.ORG)s/@.*//"
@@ -92,6 +94,7 @@ public class TestUserGroupInformation {
UserGroupInformation.createUserForTesting(USER_NAME, GROUP_NAMES);
UserGroupInformation curUGI =
userGroupInfo.doAs(new PrivilegedExceptionAction<UserGroupInformation>(){
+ @Override
public UserGroupInformation run() throws IOException {
return UserGroupInformation.getCurrentUser();
}});
@@ -194,8 +197,6 @@ public class TestUserGroupInformation {
public void testEqualsWithRealUser() throws Exception {
UserGroupInformation realUgi1 = UserGroupInformation.createUserForTesting(
"RealUser", GROUP_NAMES);
- UserGroupInformation realUgi2 = UserGroupInformation.createUserForTesting(
- "RealUser", GROUP_NAMES);
UserGroupInformation proxyUgi1 = UserGroupInformation.createProxyUser(
USER_NAME, realUgi1);
UserGroupInformation proxyUgi2 =
@@ -213,7 +214,146 @@ public class TestUserGroupInformation {
assertArrayEquals(new String[]{GROUP1_NAME, GROUP2_NAME, GROUP3_NAME},
uugi.getGroupNames());
}
+
+ @SuppressWarnings("unchecked") // from Mockito mocks
+ @Test
+ public <T extends TokenIdentifier> void testAddToken() throws Exception {
+ UserGroupInformation ugi =
+ UserGroupInformation.createRemoteUser("someone");
+
+ Token<T> t1 = mock(Token.class);
+ Token<T> t2 = mock(Token.class);
+ Token<T> t3 = mock(Token.class);
+
+ // add token to ugi
+ ugi.addToken(t1);
+ checkTokens(ugi, t1);
+
+ // replace token t1 with t2 - with same key (null)
+ ugi.addToken(t2);
+ checkTokens(ugi, t2);
+
+ // change t1 service and add token
+ when(t1.getService()).thenReturn(new Text("t1"));
+ ugi.addToken(t1);
+ checkTokens(ugi, t1, t2);
+ // overwrite t1 token with t3 - same key (!null)
+ when(t3.getService()).thenReturn(new Text("t1"));
+ ugi.addToken(t3);
+ checkTokens(ugi, t2, t3);
+
+ // just try to re-add with new name
+ when(t1.getService()).thenReturn(new Text("t1.1"));
+ ugi.addToken(t1);
+ checkTokens(ugi, t1, t2, t3);
+
+ // just try to re-add with new name again
+ ugi.addToken(t1);
+ checkTokens(ugi, t1, t2, t3);
+ }
+
+ @SuppressWarnings("unchecked") // from Mockito mocks
+ @Test
+ public <T extends TokenIdentifier> void testGetCreds() throws Exception {
+ UserGroupInformation ugi =
+ UserGroupInformation.createRemoteUser("someone");
+
+ Text service = new Text("service");
+ Token<T> t1 = mock(Token.class);
+ when(t1.getService()).thenReturn(service);
+ Token<T> t2 = mock(Token.class);
+ when(t2.getService()).thenReturn(new Text("service2"));
+ Token<T> t3 = mock(Token.class);
+ when(t3.getService()).thenReturn(service);
+
+ // add token to ugi
+ ugi.addToken(t1);
+ ugi.addToken(t2);
+ checkTokens(ugi, t1, t2);
+
+ Credentials creds = ugi.getCredentials();
+ creds.addToken(t3.getService(), t3);
+ assertSame(t3, creds.getToken(service));
+ // check that ugi wasn't modified
+ checkTokens(ugi, t1, t2);
+ }
+
+ @SuppressWarnings("unchecked") // from Mockito mocks
+ @Test
+ public <T extends TokenIdentifier> void testAddCreds() throws Exception {
+ UserGroupInformation ugi =
+ UserGroupInformation.createRemoteUser("someone");
+
+ Text service = new Text("service");
+ Token<T> t1 = mock(Token.class);
+ when(t1.getService()).thenReturn(service);
+ Token<T> t2 = mock(Token.class);
+ when(t2.getService()).thenReturn(new Text("service2"));
+ byte[] secret = new byte[]{};
+ Text secretKey = new Text("sshhh");
+
+ // fill credentials
+ Credentials creds = new Credentials();
+ creds.addToken(t1.getService(), t1);
+ creds.addToken(t2.getService(), t2);
+ creds.addSecretKey(secretKey, secret);
+
+ // add creds to ugi, and check ugi
+ ugi.addCredentials(creds);
+ checkTokens(ugi, t1, t2);
+ assertSame(secret, ugi.getCredentials().getSecretKey(secretKey));
+ }
+
+ @SuppressWarnings("unchecked") // from Mockito mocks
+ @Test
+ public <T extends TokenIdentifier> void testGetCredsNotSame()
+ throws Exception {
+ UserGroupInformation ugi =
+ UserGroupInformation.createRemoteUser("someone");
+ Credentials creds = ugi.getCredentials();
+ // should always get a new copy
+ assertNotSame(creds, ugi.getCredentials());
+ }
+
+
+ private void checkTokens(UserGroupInformation ugi, Token<?> ... tokens) {
+ // check the ugi's token collection
+ Collection<Token<?>> ugiTokens = ugi.getTokens();
+ for (Token<?> t : tokens) {
+ assertTrue(ugiTokens.contains(t));
+ }
+ assertEquals(tokens.length, ugiTokens.size());
+
+ // check the ugi's credentials
+ Credentials ugiCreds = ugi.getCredentials();
+ for (Token<?> t : tokens) {
+ assertSame(t, ugiCreds.getToken(t.getService()));
+ }
+ assertEquals(tokens.length, ugiCreds.numberOfTokens());
+ }
+
+ @SuppressWarnings("unchecked") // from Mockito mocks
+ @Test
+ public <T extends TokenIdentifier> void testAddNamedToken() throws Exception {
+ UserGroupInformation ugi =
+ UserGroupInformation.createRemoteUser("someone");
+
+ Token<T> t1 = mock(Token.class);
+ Text service1 = new Text("t1");
+ Text service2 = new Text("t2");
+ when(t1.getService()).thenReturn(service1);
+
+ // add token
+ ugi.addToken(service1, t1);
+ assertSame(t1, ugi.getCredentials().getToken(service1));
+
+ // add token with another name
+ ugi.addToken(service2, t1);
+ assertSame(t1, ugi.getCredentials().getToken(service1));
+ assertSame(t1, ugi.getCredentials().getToken(service2));
+ }
+
@SuppressWarnings("unchecked") // from Mockito mocks
@Test
public <T extends TokenIdentifier> void testUGITokens() throws Exception {
@@ -221,15 +361,26 @@ public class TestUserGroupInformation {
UserGroupInformation.createUserForTesting("TheDoctor",
new String [] { "TheTARDIS"});
Token<T> t1 = mock(Token.class);
+ when(t1.getService()).thenReturn(new Text("t1"));
Token<T> t2 = mock(Token.class);
+ when(t2.getService()).thenReturn(new Text("t2"));
+
+ Credentials creds = new Credentials();
+ byte[] secretKey = new byte[]{};
+ Text secretName = new Text("shhh");
+ creds.addSecretKey(secretName, secretKey);
ugi.addToken(t1);
ugi.addToken(t2);
+ ugi.addCredentials(creds);
Collection<Token<? extends TokenIdentifier>> z = ugi.getTokens();
assertTrue(z.contains(t1));
assertTrue(z.contains(t2));
assertEquals(2, z.size());
+ Credentials ugiCreds = ugi.getCredentials();
+ assertSame(secretKey, ugiCreds.getSecretKey(secretName));
+ assertEquals(1, ugiCreds.numberOfSecretKeys());
try {
z.remove(t1);
@@ -241,6 +392,7 @@ public class TestUserGroupInformation {
// ensure that the tokens are passed through doAs
Collection<Token<? extends TokenIdentifier>> otherSet =
ugi.doAs(new PrivilegedExceptionAction<Collection<Token<?>>>(){
+ @Override
public Collection<Token<?>> run() throws IOException {
return UserGroupInformation.getCurrentUser().getTokens();
}
@@ -267,6 +419,7 @@ public class TestUserGroupInformation {
// ensure that the token identifiers are passed through doAs
Collection<TokenIdentifier> otherSet = ugi
.doAs(new PrivilegedExceptionAction<Collection<TokenIdentifier>>() {
+ @Override
public Collection<TokenIdentifier> run() throws IOException {
return UserGroupInformation.getCurrentUser().getTokenIdentifiers();
}
@@ -283,6 +436,7 @@ public class TestUserGroupInformation {
ugi.setAuthenticationMethod(am);
Assert.assertEquals(am, ugi.getAuthenticationMethod());
ugi.doAs(new PrivilegedExceptionAction<Object>() {
+ @Override
public Object run() throws IOException {
Assert.assertEquals(am, UserGroupInformation.getCurrentUser()
.getAuthenticationMethod());
@@ -304,6 +458,7 @@ public class TestUserGroupInformation {
Assert.assertEquals(am, UserGroupInformation
.getRealAuthenticationMethod(proxyUgi));
proxyUgi.doAs(new PrivilegedExceptionAction<Object>() {
+ @Override
public Object run() throws IOException {
Assert.assertEquals(AuthenticationMethod.PROXY, UserGroupInformation
.getCurrentUser().getAuthenticationMethod());
@@ -376,6 +531,7 @@ public class TestUserGroupInformation {
public void testUGIUnderNonHadoopContext() throws Exception {
Subject nonHadoopSubject = new Subject();
Subject.doAs(nonHadoopSubject, new PrivilegedExceptionAction<Void>() {
+ @Override
public Void run() throws IOException {
UserGroupInformation ugi = UserGroupInformation.getCurrentUser();
assertNotNull(ugi);
@@ -383,4 +539,39 @@ public class TestUserGroupInformation {
}
});
}
+
+ /** Test hasSufficientTimeElapsed method */
+ @Test
+ public void testHasSufficientTimeElapsed() throws Exception {
+ // Make hasSufficientTimeElapsed public
+ Method method = UserGroupInformation.class
+ .getDeclaredMethod("hasSufficientTimeElapsed", long.class);
+ method.setAccessible(true);
+
+ UserGroupInformation ugi = UserGroupInformation.getCurrentUser();
+ User user = ugi.getSubject().getPrincipals(User.class).iterator().next();
+ long now = System.currentTimeMillis();
+
+ // Using default relogin time (1 minute)
+ user.setLastLogin(now - 2 * 60 * 1000); // 2 minutes before "now"
+ assertTrue((Boolean)method.invoke(ugi, now));
+ user.setLastLogin(now - 30 * 1000); // 30 seconds before "now"
+ assertFalse((Boolean)method.invoke(ugi, now));
+
+ // Using relogin time of 10 minutes
+ Configuration conf2 = new Configuration(conf);
+ conf2.setLong(
+ CommonConfigurationKeysPublic.HADOOP_KERBEROS_MIN_SECONDS_BEFORE_RELOGIN,
+ 10 * 60);
+ UserGroupInformation.setConfiguration(conf2);
+ user.setLastLogin(now - 15 * 60 * 1000); // 15 minutes before "now"
+ assertTrue((Boolean)method.invoke(ugi, now));
+ user.setLastLogin(now - 6 * 60 * 1000); // 6 minutes before "now"
+ assertFalse((Boolean)method.invoke(ugi, now));
+ // Restore original conf to UGI
+ UserGroupInformation.setConfiguration(conf);
+
+ // Restore hasSufficientTimElapsed back to private
+ method.setAccessible(false);
+ }
}
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/authorize/TestAccessControlList.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/authorize/TestAccessControlList.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/authorize/TestAccessControlList.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/authorize/TestAccessControlList.java Tue Oct 16 00:02:55 2012
@@ -22,13 +22,10 @@ import java.util.Set;
import java.util.List;
import org.junit.Test;
-import org.junit.Before;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeTrue;
-
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/TestToken.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/TestToken.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/TestToken.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/TestToken.java Tue Oct 16 00:02:55 2012
@@ -18,8 +18,6 @@
package org.apache.hadoop.security.token;
-import static junit.framework.Assert.assertEquals;
-
import java.io.*;
import java.util.Arrays;
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/delegation/TestDelegationToken.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/delegation/TestDelegationToken.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/delegation/TestDelegationToken.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/delegation/TestDelegationToken.java Tue Oct 16 00:02:55 2012
@@ -19,7 +19,6 @@
package org.apache.hadoop.security.token.delegation;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutput;
@@ -47,7 +46,6 @@ import org.apache.hadoop.security.token.
import org.apache.hadoop.security.token.SecretManager.InvalidToken;
import org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager.DelegationTokenInformation;
import org.apache.hadoop.util.Daemon;
-import org.apache.hadoop.util.StringUtils;
import org.apache.hadoop.util.Time;
import org.junit.Test;
@@ -73,9 +71,11 @@ public class TestDelegationToken {
return KIND;
}
+ @Override
public void write(DataOutput out) throws IOException {
super.write(out);
}
+ @Override
public void readFields(DataInput in) throws IOException {
super.readFields(in);
}
@@ -231,6 +231,7 @@ public class TestDelegationToken {
dtSecretManager, "SomeUser", "JobTracker");
// Fake renewer should not be able to renew
shouldThrow(new PrivilegedExceptionAction<Object>() {
+ @Override
public Object run() throws Exception {
dtSecretManager.renewToken(token, "FakeRenewer");
return null;
@@ -259,6 +260,7 @@ public class TestDelegationToken {
Thread.sleep(2000);
shouldThrow(new PrivilegedExceptionAction<Object>() {
+ @Override
public Object run() throws Exception {
dtSecretManager.renewToken(token, "JobTracker");
return null;
@@ -280,6 +282,7 @@ public class TestDelegationToken {
generateDelegationToken(dtSecretManager, "SomeUser", "JobTracker");
//Fake renewer should not be able to renew
shouldThrow(new PrivilegedExceptionAction<Object>() {
+ @Override
public Object run() throws Exception {
dtSecretManager.renewToken(token, "FakeCanceller");
return null;
@@ -287,6 +290,7 @@ public class TestDelegationToken {
}, AccessControlException.class);
dtSecretManager.cancelToken(token, "JobTracker");
shouldThrow(new PrivilegedExceptionAction<Object>() {
+ @Override
public Object run() throws Exception {
dtSecretManager.renewToken(token, "JobTracker");
return null;
@@ -379,6 +383,7 @@ public class TestDelegationToken {
final int numTokensPerThread = 100;
class tokenIssuerThread implements Runnable {
+ @Override
public void run() {
for(int i =0;i <numTokensPerThread; i++) {
generateDelegationToken(dtSecretManager, "auser", "arenewer");
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/GenericTestUtils.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/GenericTestUtils.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/GenericTestUtils.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/GenericTestUtils.java Tue Oct 16 00:02:55 2012
@@ -25,6 +25,7 @@ import java.util.Random;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Pattern;
import org.apache.commons.logging.Log;
@@ -48,6 +49,8 @@ import com.google.common.collect.Sets;
*/
public abstract class GenericTestUtils {
+ private static final AtomicInteger sequence = new AtomicInteger();
+
/**
* Extracts the name of the method where the invocation has happened
* @return String name of the invoking method
@@ -55,6 +58,14 @@ public abstract class GenericTestUtils {
public static String getMethodName() {
return Thread.currentThread().getStackTrace()[2].getMethodName();
}
+
+ /**
+ * Generates a process-wide unique sequence number.
+ * @return an unique sequence number
+ */
+ public static int uniqueSequenceId() {
+ return sequence.incrementAndGet();
+ }
/**
* Assert that a given file exists.
@@ -104,7 +115,10 @@ public abstract class GenericTestUtils {
Thread.sleep(checkEveryMillis);
} while (Time.now() - st < waitForMillis);
- throw new TimeoutException("Timed out waiting for condition");
+
+ throw new TimeoutException("Timed out waiting for condition. " +
+ "Thread diagnostics:\n" +
+ TimedOutTestsListener.buildThreadDiagnosticString());
}
public static class LogCapturer {
@@ -171,6 +185,7 @@ public abstract class GenericTestUtils {
waitLatch.countDown();
}
+ @Override
public Object answer(InvocationOnMock invocation) throws Throwable {
LOG.info("DelayAnswer firing fireLatch");
fireLatch.countDown();
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/MetricsAsserts.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/MetricsAsserts.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/MetricsAsserts.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/MetricsAsserts.java Tue Oct 16 00:02:55 2012
@@ -45,7 +45,6 @@ import org.apache.hadoop.metrics2.lib.Mu
import org.apache.hadoop.metrics2.util.Quantile;
import static org.apache.hadoop.metrics2.lib.Interns.*;
-import static org.apache.hadoop.test.MetricsAsserts.eqName;
/**
* Helpers for metrics source tests
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/MultithreadedTestUtil.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/MultithreadedTestUtil.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/MultithreadedTestUtil.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/MultithreadedTestUtil.java Tue Oct 16 00:02:55 2012
@@ -183,6 +183,7 @@ public abstract class MultithreadedTestU
this.ctx = ctx;
}
+ @Override
public void run() {
try {
doWork();
@@ -215,6 +216,7 @@ public abstract class MultithreadedTestU
* Repeats a given user action until the context is asked to stop
* or meets an error.
*/
+ @Override
public final void doWork() throws Exception {
while (ctx.shouldRun() && !stopped) {
doAnAction();
Modified: hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/JarFinder.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/JarFinder.java?rev=1398581&r1=1398580&r2=1398581&view=diff
==============================================================================
--- hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/JarFinder.java (original)
+++ hadoop/common/branches/MR-3902/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/JarFinder.java Tue Oct 16 00:02:55 2012
@@ -21,7 +21,6 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
import java.net.URL;
import java.net.URLDecoder;
import java.text.MessageFormat;