You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by cu...@apache.org on 2010/10/26 22:45:46 UTC
svn commit: r1027741 - in /avro/trunk: ./
lang/java/src/java/org/apache/avro/mapred/tether/
lang/java/src/java/org/apache/avro/reflect/
lang/java/src/java/org/apache/avro/specific/
lang/java/src/test/java/org/apache/avro/ lang/java/src/test/java/org/ap...
Author: cutting
Date: Tue Oct 26 20:45:46 2010
New Revision: 1027741
URL: http://svn.apache.org/viewvc?rev=1027741&view=rev
Log:
AVRO-683. Java: Fix RPC proxy factories to not require casting. Contributed by Stephen Gargan.
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/java/src/java/org/apache/avro/mapred/tether/TetheredProcess.java
avro/trunk/lang/java/src/java/org/apache/avro/reflect/ReflectRequestor.java
avro/trunk/lang/java/src/java/org/apache/avro/specific/SpecificRequestor.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestBulkData.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceReflect.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceSpecific.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolDatagram.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolHttp.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflect.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflectMeta.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecific.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecificMeta.java
avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/TestNettyServer.java
avro/trunk/lang/java/src/test/java/org/apache/avro/mapred/tether/TetherTask.java
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Tue Oct 26 20:45:46 2010
@@ -19,6 +19,9 @@ Avro 1.5.0 (unreleased)
AVRO-682. Java: Add method DataFileStream.getMetaKeys().
(Harsh J Chouraria via cutting)
+ AVRO-683. Java: Fix RPC proxy factories to not require casting.
+ (Stephen Gargan via cutting)
+
BUG FIXES
AVRO-675. C: Bytes and fixed setters don't update datum size.
Modified: avro/trunk/lang/java/src/java/org/apache/avro/mapred/tether/TetheredProcess.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/mapred/tether/TetheredProcess.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/java/org/apache/avro/mapred/tether/TetheredProcess.java (original)
+++ avro/trunk/lang/java/src/java/org/apache/avro/mapred/tether/TetheredProcess.java Tue Oct 26 20:45:46 2010
@@ -71,7 +71,7 @@ class TetheredProcess {
// open client, connecting to sub-process
this.clientTransceiver =
new SocketTransceiver(new InetSocketAddress(outputService.inputPort()));
- this.inputClient = (InputProtocol)
+ this.inputClient =
SpecificRequestor.getClient(InputProtocol.class, clientTransceiver);
Modified: avro/trunk/lang/java/src/java/org/apache/avro/reflect/ReflectRequestor.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/reflect/ReflectRequestor.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/java/org/apache/avro/reflect/ReflectRequestor.java (original)
+++ avro/trunk/lang/java/src/java/org/apache/avro/reflect/ReflectRequestor.java Tue Oct 26 20:45:46 2010
@@ -52,24 +52,26 @@ public class ReflectRequestor extends Sp
}
/** Create a proxy instance whose methods invoke RPCs. */
- public static Object getClient(Class<?> iface, Transceiver transciever)
+ public static <T> T getClient(Class<T> iface, Transceiver transciever)
throws IOException {
return getClient(iface, transciever, ReflectData.get());
}
/** Create a proxy instance whose methods invoke RPCs. */
- public static Object getClient(Class<?> iface, Transceiver transciever, ReflectData reflectData)
- throws IOException {
+ @SuppressWarnings("unchecked")
+ public static <T> T getClient(Class<T> iface, Transceiver transciever,
+ ReflectData reflectData) throws IOException {
Protocol protocol = reflectData.getProtocol(iface);
- return Proxy.newProxyInstance(iface.getClassLoader(),
+ return (T)Proxy.newProxyInstance(iface.getClassLoader(),
new Class[] { iface },
new ReflectRequestor(protocol, transciever));
}
/** Create a proxy instance whose methods invoke RPCs. */
- public static Object getClient(Class<?> iface, ReflectRequestor rreq)
+ @SuppressWarnings("unchecked")
+ public static <T> T getClient(Class<T> iface, ReflectRequestor rreq)
throws IOException {
- return Proxy.newProxyInstance(iface.getClassLoader(),
+ return (T)Proxy.newProxyInstance(iface.getClassLoader(),
new Class[] { iface }, rreq);
}
}
Modified: avro/trunk/lang/java/src/java/org/apache/avro/specific/SpecificRequestor.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/specific/SpecificRequestor.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/java/org/apache/avro/specific/SpecificRequestor.java (original)
+++ avro/trunk/lang/java/src/java/org/apache/avro/specific/SpecificRequestor.java Tue Oct 26 20:45:46 2010
@@ -84,25 +84,27 @@ public class SpecificRequestor extends R
}
/** Create a proxy instance whose methods invoke RPCs. */
- public static Object getClient(Class<?> iface, Transceiver transciever)
+ public static <T> T getClient(Class<T> iface, Transceiver transciever)
throws IOException {
return getClient(iface, transciever, SpecificData.get());
}
/** Create a proxy instance whose methods invoke RPCs. */
- public static Object getClient(Class<?> iface, Transceiver transciever,
+ @SuppressWarnings("unchecked")
+ public static <T> T getClient(Class<T> iface, Transceiver transciever,
SpecificData specificData)
throws IOException {
Protocol protocol = specificData.getProtocol(iface);
- return Proxy.newProxyInstance(iface.getClassLoader(),
+ return (T)Proxy.newProxyInstance(iface.getClassLoader(),
new Class[] { iface },
new SpecificRequestor(protocol, transciever));
}
-
+
/** Create a proxy instance whose methods invoke RPCs. */
- public static Object getClient(Class<?> iface, SpecificRequestor requestor)
+ @SuppressWarnings("unchecked")
+ public static <T> T getClient(Class<T> iface, SpecificRequestor requestor)
throws IOException {
- return Proxy.newProxyInstance(iface.getClassLoader(),
+ return (T)Proxy.newProxyInstance(iface.getClassLoader(),
new Class[] { iface }, requestor);
}
}
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestBulkData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestBulkData.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestBulkData.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestBulkData.java Tue Oct 26 20:45:46 2010
@@ -71,7 +71,7 @@ public class TestBulkData {
server.start();
client =
new HttpTransceiver(new URL("http://127.0.0.1:"+server.getPort()+"/"));
- proxy = (BulkData)SpecificRequestor.getClient(BulkData.class, client);
+ proxy = SpecificRequestor.getClient(BulkData.class, client);
}
@Test
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceReflect.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceReflect.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceReflect.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceReflect.java Tue Oct 26 20:45:46 2010
@@ -35,7 +35,7 @@ public class TestNamespaceReflect extend
new InetSocketAddress(0));
server.start();
client = new SocketTransceiver(new InetSocketAddress(server.getPort()));
- proxy = (TestNamespace)ReflectRequestor.getClient(TestNamespace.class, client);
+ proxy = ReflectRequestor.getClient(TestNamespace.class, client);
}
}
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceSpecific.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceSpecific.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceSpecific.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestNamespaceSpecific.java Tue Oct 26 20:45:46 2010
@@ -59,7 +59,7 @@ public class TestNamespaceSpecific {
new InetSocketAddress(0));
server.start();
client = new SocketTransceiver(new InetSocketAddress(server.getPort()));
- proxy = (TestNamespace)SpecificRequestor.getClient(TestNamespace.class, client);
+ proxy = SpecificRequestor.getClient(TestNamespace.class, client);
}
@Test
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolDatagram.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolDatagram.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolDatagram.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolDatagram.java Tue Oct 26 20:45:46 2010
@@ -38,7 +38,7 @@ public class TestProtocolDatagram extend
new Random().nextInt(10000)+10000));
server.start();
client = new DatagramTransceiver(new InetSocketAddress("localhost", server.getPort()));
- proxy = (Simple)SpecificRequestor.getClient(Simple.class, client);
+ proxy = SpecificRequestor.getClient(Simple.class, client);
}
}
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolHttp.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolHttp.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolHttp.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolHttp.java Tue Oct 26 20:45:46 2010
@@ -36,7 +36,7 @@ public class TestProtocolHttp extends Te
server.start();
client =
new HttpTransceiver(new URL("http://127.0.0.1:"+server.getPort()+"/"));
- proxy = (Simple)SpecificRequestor.getClient(Simple.class, client);
+ proxy = SpecificRequestor.getClient(Simple.class, client);
}
}
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflect.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflect.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflect.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflect.java Tue Oct 26 20:45:46 2010
@@ -77,7 +77,7 @@ public class TestProtocolReflect {
new InetSocketAddress(0));
server.start();
client = new SocketTransceiver(new InetSocketAddress(server.getPort()));
- proxy = (Simple)ReflectRequestor.getClient(Simple.class, client);
+ proxy = ReflectRequestor.getClient(Simple.class, client);
}
@Test
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflectMeta.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflectMeta.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflectMeta.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolReflectMeta.java Tue Oct 26 20:45:46 2010
@@ -41,7 +41,7 @@ public class TestProtocolReflectMeta ext
ReflectRequestor requestor = new ReflectRequestor(Simple.class, client);
requestor.addRPCPlugin(new RPCMetaTestPlugin("key1"));
requestor.addRPCPlugin(new RPCMetaTestPlugin("key2"));
- proxy = (Simple)ReflectRequestor.getClient(Simple.class, (ReflectRequestor)requestor);
+ proxy = ReflectRequestor.getClient(Simple.class, (ReflectRequestor)requestor);
}
}
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecific.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecific.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecific.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecific.java Tue Oct 26 20:45:46 2010
@@ -82,7 +82,7 @@ public class TestProtocolSpecific {
new InetSocketAddress(0));
server.start();
client = new SocketTransceiver(new InetSocketAddress(server.getPort()));
- proxy = (Simple)SpecificRequestor.getClient(Simple.class, client);
+ proxy = SpecificRequestor.getClient(Simple.class, client);
}
@Test
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecificMeta.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecificMeta.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecificMeta.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestProtocolSpecificMeta.java Tue Oct 26 20:45:46 2010
@@ -42,6 +42,6 @@ public class TestProtocolSpecificMeta ex
SpecificRequestor req = new SpecificRequestor(Simple.class, client);
req.addRPCPlugin(new RPCMetaTestPlugin("key1"));
req.addRPCPlugin(new RPCMetaTestPlugin("key2"));
- proxy = (Simple)SpecificRequestor.getClient(Simple.class, (SpecificRequestor)req);
+ proxy = SpecificRequestor.getClient(Simple.class, (SpecificRequestor)req);
}
}
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/TestNettyServer.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/TestNettyServer.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/TestNettyServer.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/ipc/TestNettyServer.java Tue Oct 26 20:45:46 2010
@@ -54,7 +54,7 @@ public class TestNettyServer {
// client
Transceiver transceiver = new NettyTransceiver(new InetSocketAddress(
serverPort));
- Mail proxy = (Mail) SpecificRequestor.getClient(Mail.class, transceiver);
+ Mail proxy = SpecificRequestor.getClient(Mail.class, transceiver);
Message msg = new Message();
msg.to = new Utf8("wife");
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/mapred/tether/TetherTask.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/mapred/tether/TetherTask.java?rev=1027741&r1=1027740&r2=1027741&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/mapred/tether/TetherTask.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/mapred/tether/TetherTask.java Tue Oct 26 20:45:46 2010
@@ -100,8 +100,7 @@ public abstract class TetherTask<IN,MID,
int clientPort = Integer.parseInt(clientPortString);
this.clientTransceiver =
new SocketTransceiver(new InetSocketAddress(clientPort));
- this.outputClient = (OutputProtocol)
- SpecificRequestor.getClient(OutputProtocol.class, clientTransceiver);
+ this.outputClient = SpecificRequestor.getClient(OutputProtocol.class, clientTransceiver);
// send inputPort to parent
outputClient.configure(inputPort);