diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/CHANGES | 8 | ||||
-rw-r--r-- | java/demo/Ice/hello/Client.java | 24 | ||||
-rw-r--r-- | java/src/Ice/ObjectPrxHelperBase.java | 111 |
3 files changed, 68 insertions, 75 deletions
diff --git a/java/CHANGES b/java/CHANGES index 8dc2ae5b724..7fcb083a8f3 100644 --- a/java/CHANGES +++ b/java/CHANGES @@ -1,6 +1,14 @@ Changes since version 3.2.X (binary incompatible) ------------------------------------------------- +- A number of proxy methods (ice_timeout(), ice_oneway() etc.) now + return a proxy of the same type as the target. This allows you to + cast the return proxy instead using uncheckedCast on the Helper. + For example, you can now write: + hello = (HelloPrx)hello.ice_oneway(); + instead of: + hello = HelloPrxHelper.uncheckedCast(hello.ice_oneway()); + - Added support for a password callback in IceSSL. Also added new properties for specifying the name of a password callback class or certificate verifier class. See manual for more details. diff --git a/java/demo/Ice/hello/Client.java b/java/demo/Ice/hello/Client.java index cb8f29a5e68..47ab65ea2a6 100644 --- a/java/demo/Ice/hello/Client.java +++ b/java/demo/Ice/hello/Client.java @@ -69,10 +69,10 @@ public class Client extends Ice.Application System.err.println("invalid proxy"); return 1; } - HelloPrx oneway = HelloPrxHelper.uncheckedCast(twoway.ice_oneway()); - HelloPrx batchOneway = HelloPrxHelper.uncheckedCast(twoway.ice_batchOneway()); - HelloPrx datagram = HelloPrxHelper.uncheckedCast(twoway.ice_datagram()); - HelloPrx batchDatagram = HelloPrxHelper.uncheckedCast(twoway.ice_batchDatagram()); + HelloPrx oneway = (HelloPrx)twoway.ice_oneway(); + HelloPrx batchOneway = (HelloPrx)twoway.ice_batchOneway(); + HelloPrx datagram = (HelloPrx)twoway.ice_datagram(); + HelloPrx batchDatagram = (HelloPrx)twoway.ice_batchDatagram(); boolean secure = false; int timeout = -1; @@ -143,9 +143,9 @@ public class Client extends Ice.Application timeout = -1; } - twoway = HelloPrxHelper.uncheckedCast(twoway.ice_timeout(timeout)); - oneway = HelloPrxHelper.uncheckedCast(oneway.ice_timeout(timeout)); - batchOneway = HelloPrxHelper.uncheckedCast(batchOneway.ice_timeout(timeout)); + twoway = (HelloPrx)twoway.ice_timeout(timeout); + oneway = (HelloPrx)oneway.ice_timeout(timeout); + batchOneway = (HelloPrx)batchOneway.ice_timeout(timeout); if(timeout == -1) { @@ -180,11 +180,11 @@ public class Client extends Ice.Application { secure = !secure; - twoway = HelloPrxHelper.uncheckedCast(twoway.ice_secure(secure)); - oneway = HelloPrxHelper.uncheckedCast(oneway.ice_secure(secure)); - batchOneway = HelloPrxHelper.uncheckedCast(batchOneway.ice_secure(secure)); - datagram = HelloPrxHelper.uncheckedCast(datagram.ice_secure(secure)); - batchDatagram = HelloPrxHelper.uncheckedCast(batchDatagram.ice_secure(secure)); + twoway = (HelloPrx)twoway.ice_secure(secure); + oneway = (HelloPrx)oneway.ice_secure(secure); + batchOneway = (HelloPrx)batchOneway.ice_secure(secure); + datagram = (HelloPrx)datagram.ice_secure(secure); + batchDatagram = (HelloPrx)batchDatagram.ice_secure(secure); if(secure) { diff --git a/java/src/Ice/ObjectPrxHelperBase.java b/java/src/Ice/ObjectPrxHelperBase.java index 3bcc8527cb3..72df0844773 100644 --- a/java/src/Ice/ObjectPrxHelperBase.java +++ b/java/src/Ice/ObjectPrxHelperBase.java @@ -330,9 +330,7 @@ public class ObjectPrxHelperBase implements ObjectPrx public final ObjectPrx ice_context(java.util.Map newContext) { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeContext(newContext)); - return proxy; + return newInstance(_reference.changeContext(newContext)); } /** @@ -350,9 +348,7 @@ public class ObjectPrxHelperBase implements ObjectPrx public final ObjectPrx ice_defaultContext() { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.defaultContext()); - return proxy; + return newInstance(_reference.defaultContext()); } public final String @@ -410,9 +406,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeAdapterId(newAdapterId)); - return proxy; + return newInstance(_reference.changeAdapterId(newAdapterId)); } } @@ -442,9 +436,7 @@ public class ObjectPrxHelperBase implements ObjectPrx { IceInternal.EndpointI[] edpts = new IceInternal.EndpointI[newEndpoints.length]; edpts = (IceInternal.EndpointI[])java.util.Arrays.asList(newEndpoints).toArray(edpts); - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeEndpoints(edpts)); - return proxy; + return newInstance(_reference.changeEndpoints(edpts)); } } @@ -472,9 +464,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeLocatorCacheTimeout(newTimeout)); - return proxy; + return newInstance(_reference.changeLocatorCacheTimeout(newTimeout)); } } @@ -493,9 +483,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeCacheConnection(newCache)); - return proxy; + return newInstance(_reference.changeCacheConnection(newCache)); } } @@ -514,9 +502,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeEndpointSelection(newType)); - return proxy; + return newInstance(_reference.changeEndpointSelection(newType)); } } @@ -535,9 +521,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeSecure(b)); - return proxy; + return newInstance(_reference.changeSecure(b)); } } @@ -556,9 +540,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changePreferSecure(b)); - return proxy; + return newInstance(_reference.changePreferSecure(b)); } } @@ -579,9 +561,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(ref); - return proxy; + return newInstance(ref); } } @@ -602,9 +582,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(ref); - return proxy; + return newInstance(ref); } } @@ -632,9 +610,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeCollocationOptimization(b)); - return proxy; + return newInstance(_reference.changeCollocationOptimization(b)); } } @@ -647,9 +623,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeMode(IceInternal.Reference.ModeTwoway)); - return proxy; + return newInstance(_reference.changeMode(IceInternal.Reference.ModeTwoway)); } } @@ -668,9 +642,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeMode(IceInternal.Reference.ModeOneway)); - return proxy; + return newInstance(_reference.changeMode(IceInternal.Reference.ModeOneway)); } } @@ -689,9 +661,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeMode(IceInternal.Reference.ModeBatchOneway)); - return proxy; + return newInstance(_reference.changeMode(IceInternal.Reference.ModeBatchOneway)); } } @@ -710,9 +680,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeMode(IceInternal.Reference.ModeDatagram)); - return proxy; + return newInstance(_reference.changeMode(IceInternal.Reference.ModeDatagram)); } } @@ -731,9 +699,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(_reference.changeMode(IceInternal.Reference.ModeBatchDatagram)); - return proxy; + return newInstance(_reference.changeMode(IceInternal.Reference.ModeBatchDatagram)); } } @@ -753,9 +719,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(ref); - return proxy; + return newInstance(ref); } } @@ -769,9 +733,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(ref); - return proxy; + return newInstance(ref); } } @@ -785,9 +747,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(ref); - return proxy; + return newInstance(ref); } } @@ -807,9 +767,7 @@ public class ObjectPrxHelperBase implements ObjectPrx } else { - ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); - proxy.setup(ref); - return proxy; + return newInstance(ref); } } @@ -1109,6 +1067,33 @@ public class ObjectPrxHelperBase implements ObjectPrx _reference = ref; } + private final ObjectPrxHelperBase + newInstance(IceInternal.Reference ref) + { + try + { + ObjectPrxHelperBase proxy = (ObjectPrxHelperBase)getClass().newInstance(); + proxy.setup(ref); + return proxy; + } + catch(InstantiationException e) + { + // + // Impossible + // + assert false; + return null; + } + catch(IllegalAccessException e) + { + // + // Impossible + // + assert false; + return null; + } + } + protected static final java.util.Map _emptyContext = new java.util.HashMap(); private IceInternal.Reference _reference; |