From 7252ed9a9e00b4cf5071161752af11b946f14e67 Mon Sep 17 00:00:00 2001 From: Jose Date: Mon, 1 Jul 2024 12:44:10 +0200 Subject: [PATCH 1/2] Cleanup Java Reference implementation --- csharp/src/Ice/Internal/Reference.cs | 12 ++++ csharp/src/Ice/Proxy.cs | 6 +- .../main/java/com/zeroc/Ice/_ObjectPrxI.java | 68 ++++++++++--------- .../com/zeroc/IceInternal/FixedReference.java | 3 - .../java/com/zeroc/IceInternal/Reference.java | 21 ------ .../zeroc/IceInternal/RoutableReference.java | 36 +--------- 6 files changed, 52 insertions(+), 94 deletions(-) diff --git a/csharp/src/Ice/Internal/Reference.cs b/csharp/src/Ice/Internal/Reference.cs index c29181d6f0c..d802ac65939 100644 --- a/csharp/src/Ice/Internal/Reference.cs +++ b/csharp/src/Ice/Internal/Reference.cs @@ -99,6 +99,8 @@ public Ice.Communicator getCommunicator() public abstract string getConnectionId(); public abstract ThreadPool getThreadPool(); + public abstract Connection getConnection(); + // // The change* methods (here and in derived classes) create // a new reference based on the existing one, with the @@ -536,6 +538,11 @@ public override ThreadPool getThreadPool() return _fixedConnection.getThreadPool(); } + public override Connection getConnection() + { + return _fixedConnection; + } + public override Reference changeEndpoints(EndpointI[] newEndpoints) { throw new Ice.FixedProxyException(); @@ -760,6 +767,11 @@ public override ThreadPool getThreadPool() return getInstance().clientThreadPool(); } + public override Connection getConnection() + { + return null; + } + public override Reference changeEncoding(Ice.EncodingVersion newEncoding) { RoutableReference r = (RoutableReference)base.changeEncoding(newEncoding); diff --git a/csharp/src/Ice/Proxy.cs b/csharp/src/Ice/Proxy.cs index 664e949f1d5..e692e272a26 100644 --- a/csharp/src/Ice/Proxy.cs +++ b/csharp/src/Ice/Proxy.cs @@ -1441,14 +1441,14 @@ public ObjectPrx ice_fixed(Ice.Connection connection) { throw new ArgumentException("invalid connection passed to ice_fixed"); } - var reference = _reference.changeConnection((Ice.ConnectionI)connection); - if (reference == _reference) + + if (connection == _reference.getConnection()) { return this; } else { - return iceNewInstance(reference); + return iceNewInstance(_reference.changeConnection((Ice.ConnectionI)connection)); } } diff --git a/java/src/Ice/src/main/java/com/zeroc/Ice/_ObjectPrxI.java b/java/src/Ice/src/main/java/com/zeroc/Ice/_ObjectPrxI.java index c0a92d64f87..2aee2d5738e 100644 --- a/java/src/Ice/src/main/java/com/zeroc/Ice/_ObjectPrxI.java +++ b/java/src/Ice/src/main/java/com/zeroc/Ice/_ObjectPrxI.java @@ -386,7 +386,7 @@ public ObjectPrx _newInstance(com.zeroc.IceInternal.Reference ref) { @Override public ObjectPrx ice_context(java.util.Map newContext) { - return _newInstance(_getReference().changeContext(newContext)); + return _newInstance(_reference.changeContext(newContext)); } @Override @@ -395,22 +395,22 @@ public ObjectPrx ice_adapterId(String newAdapterId) { newAdapterId = ""; } - if (newAdapterId.equals(_getReference().getAdapterId())) { + if (newAdapterId.equals(_reference.getAdapterId())) { return this; } else { - return _newInstance(_getReference().changeAdapterId(newAdapterId)); + return _newInstance(_reference.changeAdapterId(newAdapterId)); } } @Override public ObjectPrx ice_endpoints(Endpoint[] newEndpoints) { - if (java.util.Arrays.equals(newEndpoints, _getReference().getEndpoints())) { + if (java.util.Arrays.equals(newEndpoints, _reference.getEndpoints())) { return this; } else { com.zeroc.IceInternal.EndpointI[] edpts = new com.zeroc.IceInternal.EndpointI[newEndpoints.length]; edpts = java.util.Arrays.asList(newEndpoints).toArray(edpts); - return _newInstance(_getReference().changeEndpoints(edpts)); + return _newInstance(_reference.changeEndpoints(edpts)); } } @@ -422,10 +422,10 @@ public ObjectPrx ice_fixed(com.zeroc.Ice.Connection connection) { if (!(connection instanceof com.zeroc.Ice.ConnectionI)) { throw new IllegalArgumentException("invalid connection passed to ice_fixed"); } - if (connection == _getReference().getConnection()) { + if (connection == _reference.getConnection()) { return this; } else { - return _newInstance(_getReference().changeConnection((com.zeroc.Ice.ConnectionI) connection)); + return _newInstance(_reference.changeConnection((com.zeroc.Ice.ConnectionI) connection)); } } @@ -435,10 +435,10 @@ public ObjectPrx ice_locatorCacheTimeout(int newTimeout) { throw new IllegalArgumentException( "invalid value passed to ice_locatorCacheTimeout: " + newTimeout); } - if (newTimeout == _getReference().getLocatorCacheTimeout()) { + if (newTimeout == _reference.getLocatorCacheTimeout()) { return this; } else { - return _newInstance(_getReference().changeLocatorCacheTimeout(newTimeout)); + return _newInstance(_reference.changeLocatorCacheTimeout(newTimeout)); } } @@ -448,46 +448,46 @@ public ObjectPrx ice_invocationTimeout(int newTimeout) { throw new IllegalArgumentException( "invalid value passed to ice_invocationTimeout: " + newTimeout); } - if (newTimeout == _getReference().getInvocationTimeout()) { + if (newTimeout == _reference.getInvocationTimeout()) { return this; } else { - return _newInstance(_getReference().changeInvocationTimeout(newTimeout)); + return _newInstance(_reference.changeInvocationTimeout(newTimeout)); } } @Override public ObjectPrx ice_connectionCached(boolean newCache) { - if (newCache == _getReference().getCacheConnection()) { + if (newCache == _reference.getCacheConnection()) { return this; } else { - return _newInstance(_getReference().changeCacheConnection(newCache)); + return _newInstance(_reference.changeCacheConnection(newCache)); } } @Override public ObjectPrx ice_endpointSelection(EndpointSelectionType newType) { - if (newType == _getReference().getEndpointSelection()) { + if (newType == _reference.getEndpointSelection()) { return this; } else { - return _newInstance(_getReference().changeEndpointSelection(newType)); + return _newInstance(_reference.changeEndpointSelection(newType)); } } @Override public ObjectPrx ice_secure(boolean b) { - if (b == _getReference().getSecure()) { + if (b == _reference.getSecure()) { return this; } else { - return _newInstance(_getReference().changeSecure(b)); + return _newInstance(_reference.changeSecure(b)); } } @Override public ObjectPrx ice_encodingVersion(EncodingVersion e) { - if (e.equals(_getReference().getEncoding())) { + if (e.equals(_reference.getEncoding())) { return this; } else { - return _newInstance(_getReference().changeEncoding(e)); + return _newInstance(_reference.changeEncoding(e)); } } @@ -501,22 +501,25 @@ public ObjectPrx ice_preferSecure(boolean b) { } @Override - public ObjectPrx ice_router(RouterPrx router) { - com.zeroc.IceInternal.Reference ref = _getReference().changeRouter(router); - if (ref.equals(_getReference())) { + public ObjectPrx ice_router(RouterPrx newRouter) { + com.zeroc.IceInternal.RouterInfo routerInfo = _reference.getRouterInfo(); + RouterPrx router = routerInfo != null ? routerInfo.getRouter() : null; + if (router == newRouter || (router != null && router.equals(newRouter))) { return this; } else { - return _newInstance(ref); + return _newInstance(_reference.changeRouter(newRouter)); } } @Override - public ObjectPrx ice_locator(LocatorPrx locator) { + public ObjectPrx ice_locator(LocatorPrx newLocator) { + com.zeroc.IceInternal.LocatorInfo locatorInfo = _reference.getLocatorInfo(); + LocatorPrx locator = locatorInfo != null ? locatorInfo.getLocator() : null; com.zeroc.IceInternal.Reference ref = _getReference().changeLocator(locator); - if (ref.equals(_getReference())) { + if (locator == newLocator || (locator != null && locator.equals(newLocator))) { return this; } else { - return _newInstance(ref); + return _newInstance(_reference.changeLocator(newLocator)); } } @@ -577,22 +580,21 @@ public ObjectPrx ice_batchDatagram() { } @Override - public ObjectPrx ice_compress(boolean co) { - com.zeroc.IceInternal.Reference ref = _getReference().changeCompress(co); - if (ref.equals(_getReference())) { + public ObjectPrx ice_compress(boolean compress) { + var value = _getReference().getCompress(); + if (value.isPresent() && value.get() == compress) { return this; } else { - return _newInstance(ref); + return _newInstance(_getReference().changeCompress(compress)); } } @Override public ObjectPrx ice_connectionId(String connectionId) { - com.zeroc.IceInternal.Reference ref = _getReference().changeConnectionId(connectionId); - if (ref.equals(_getReference())) { + if (connectionId.equals(_reference.getConnectionId())) { return this; } else { - return _newInstance(ref); + return _newInstance(_getReference().changeConnectionId(connectionId)); } } diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/FixedReference.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/FixedReference.java index a38d3d1d2b4..3674369314d 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/FixedReference.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/FixedReference.java @@ -148,9 +148,6 @@ public Reference changeConnectionId(String connectionId) { @Override public Reference changeConnection(com.zeroc.Ice.ConnectionI connection) { - if (_fixedConnection == connection) { - return this; - } FixedReference r = (FixedReference) getInstance().referenceFactory().copy(this); r._fixedConnection = connection; return r; diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/Reference.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/Reference.java index 2fc28519440..bc9ebf76f70 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/Reference.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/Reference.java @@ -105,63 +105,42 @@ public final Reference changeContext(java.util.Map newContext) { } public final Reference changeMode(int newMode) { - if (newMode == _mode) { - return this; - } Reference r = _instance.referenceFactory().copy(this); r._mode = newMode; return r; } public Reference changeSecure(boolean newSecure) { - if (newSecure == _secure) { - return this; - } Reference r = _instance.referenceFactory().copy(this); r._secure = newSecure; return r; } public final Reference changeIdentity(com.zeroc.Ice.Identity newIdentity) { - if (newIdentity.equals(_identity)) { - return this; - } Reference r = _instance.referenceFactory().copy(this); r._identity = newIdentity.clone(); return r; } public final Reference changeFacet(String newFacet) { - if (newFacet.equals(_facet)) { - return this; - } Reference r = _instance.referenceFactory().copy(this); r._facet = newFacet; return r; } public final Reference changeInvocationTimeout(int newTimeout) { - if (newTimeout == _invocationTimeout) { - return this; - } Reference r = _instance.referenceFactory().copy(this); r._invocationTimeout = newTimeout; return r; } public Reference changeEncoding(com.zeroc.Ice.EncodingVersion newEncoding) { - if (newEncoding.equals(_encoding)) { - return this; - } Reference r = _instance.referenceFactory().copy(this); r._encoding = newEncoding; return r; } public Reference changeCompress(boolean newCompress) { - if (_overrideCompress && _compress == newCompress) { - return this; - } Reference r = _instance.referenceFactory().copy(this); r._compress = newCompress; r._overrideCompress = true; diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/RoutableReference.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/RoutableReference.java index fecf47fa7cb..549ac54f16c 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/RoutableReference.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/RoutableReference.java @@ -98,9 +98,6 @@ public Reference changeCompress(boolean newCompress) { @Override public Reference changeEndpoints(EndpointI[] newEndpoints) { - if (java.util.Arrays.equals(newEndpoints, _endpoints)) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); r._endpoints = newEndpoints; r._adapterId = ""; @@ -110,9 +107,6 @@ public Reference changeEndpoints(EndpointI[] newEndpoints) { @Override public Reference changeAdapterId(String newAdapterId) { - if (_adapterId.equals(newAdapterId)) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); r._adapterId = newAdapterId; r._endpoints = _emptyEndpoints; @@ -121,31 +115,20 @@ public Reference changeAdapterId(String newAdapterId) { @Override public Reference changeLocator(com.zeroc.Ice.LocatorPrx newLocator) { - LocatorInfo newLocatorInfo = getInstance().locatorManager().get(newLocator); - if (newLocatorInfo != null && _locatorInfo != null && newLocatorInfo.equals(_locatorInfo)) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); - r._locatorInfo = newLocatorInfo; + r._locatorInfo = getInstance().locatorManager().get(newLocator); return r; } @Override public Reference changeRouter(com.zeroc.Ice.RouterPrx newRouter) { - RouterInfo newRouterInfo = getInstance().routerManager().get(newRouter); - if (newRouterInfo != null && _routerInfo != null && newRouterInfo.equals(_routerInfo)) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); - r._routerInfo = newRouterInfo; + r._routerInfo = getInstance().routerManager().get(newRouter); return r; } @Override public Reference changeCollocationOptimized(boolean newCollocationOptimized) { - if (newCollocationOptimized == _collocationOptimized) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); r._collocationOptimized = newCollocationOptimized; return r; @@ -153,9 +136,6 @@ public Reference changeCollocationOptimized(boolean newCollocationOptimized) { @Override public final Reference changeCacheConnection(boolean newCache) { - if (newCache == _cacheConnection) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); r._cacheConnection = newCache; return r; @@ -163,9 +143,6 @@ public final Reference changeCacheConnection(boolean newCache) { @Override public Reference changePreferSecure(boolean newPreferSecure) { - if (newPreferSecure == _preferSecure) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); r._preferSecure = newPreferSecure; return r; @@ -173,9 +150,6 @@ public Reference changePreferSecure(boolean newPreferSecure) { @Override public final Reference changeEndpointSelection(com.zeroc.Ice.EndpointSelectionType newType) { - if (newType == _endpointSelection) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); r._endpointSelection = newType; return r; @@ -183,9 +157,6 @@ public final Reference changeEndpointSelection(com.zeroc.Ice.EndpointSelectionTy @Override public Reference changeLocatorCacheTimeout(int newTimeout) { - if (_locatorCacheTimeout == newTimeout) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); r._locatorCacheTimeout = newTimeout; return r; @@ -193,9 +164,6 @@ public Reference changeLocatorCacheTimeout(int newTimeout) { @Override public Reference changeConnectionId(String id) { - if (_connectionId.equals(id)) { - return this; - } RoutableReference r = (RoutableReference) getInstance().referenceFactory().copy(this); r._connectionId = id; if (_endpoints.length > 0) { From d9e1d6a21a331baaceb6f578afe23204a78fa24e Mon Sep 17 00:00:00 2001 From: Jose Date: Mon, 1 Jul 2024 16:39:49 +0200 Subject: [PATCH 2/2] Fix review comment --- .../main/java/com/zeroc/Ice/_ObjectPrxI.java | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/java/src/Ice/src/main/java/com/zeroc/Ice/_ObjectPrxI.java b/java/src/Ice/src/main/java/com/zeroc/Ice/_ObjectPrxI.java index 2aee2d5738e..f31f92ddfee 100644 --- a/java/src/Ice/src/main/java/com/zeroc/Ice/_ObjectPrxI.java +++ b/java/src/Ice/src/main/java/com/zeroc/Ice/_ObjectPrxI.java @@ -493,10 +493,10 @@ public ObjectPrx ice_encodingVersion(EncodingVersion e) { @Override public ObjectPrx ice_preferSecure(boolean b) { - if (b == _getReference().getPreferSecure()) { + if (b == _reference.getPreferSecure()) { return this; } else { - return _newInstance(_getReference().changePreferSecure(b)); + return _newInstance(_reference.changePreferSecure(b)); } } @@ -515,7 +515,7 @@ public ObjectPrx ice_router(RouterPrx newRouter) { public ObjectPrx ice_locator(LocatorPrx newLocator) { com.zeroc.IceInternal.LocatorInfo locatorInfo = _reference.getLocatorInfo(); LocatorPrx locator = locatorInfo != null ? locatorInfo.getLocator() : null; - com.zeroc.IceInternal.Reference ref = _getReference().changeLocator(locator); + com.zeroc.IceInternal.Reference ref = _reference.changeLocator(locator); if (locator == newLocator || (locator != null && locator.equals(newLocator))) { return this; } else { @@ -525,67 +525,65 @@ public ObjectPrx ice_locator(LocatorPrx newLocator) { @Override public ObjectPrx ice_collocationOptimized(boolean b) { - if (b == _getReference().getCollocationOptimized()) { + if (b == _reference.getCollocationOptimized()) { return this; } else { - return _newInstance(_getReference().changeCollocationOptimized(b)); + return _newInstance(_reference.changeCollocationOptimized(b)); } } @Override public ObjectPrx ice_twoway() { - if (_getReference().getMode() == com.zeroc.IceInternal.Reference.ModeTwoway) { + if (_reference.getMode() == com.zeroc.IceInternal.Reference.ModeTwoway) { return this; } else { - return _newInstance(_getReference().changeMode(com.zeroc.IceInternal.Reference.ModeTwoway)); + return _newInstance(_reference.changeMode(com.zeroc.IceInternal.Reference.ModeTwoway)); } } @Override public ObjectPrx ice_oneway() { - if (_getReference().getMode() == com.zeroc.IceInternal.Reference.ModeOneway) { + if (_reference.getMode() == com.zeroc.IceInternal.Reference.ModeOneway) { return this; } else { - return _newInstance(_getReference().changeMode(com.zeroc.IceInternal.Reference.ModeOneway)); + return _newInstance(_reference.changeMode(com.zeroc.IceInternal.Reference.ModeOneway)); } } @Override public ObjectPrx ice_batchOneway() { - if (_getReference().getMode() == com.zeroc.IceInternal.Reference.ModeBatchOneway) { + if (_reference.getMode() == com.zeroc.IceInternal.Reference.ModeBatchOneway) { return this; } else { - return _newInstance( - _getReference().changeMode(com.zeroc.IceInternal.Reference.ModeBatchOneway)); + return _newInstance(_reference.changeMode(com.zeroc.IceInternal.Reference.ModeBatchOneway)); } } @Override public ObjectPrx ice_datagram() { - if (_getReference().getMode() == com.zeroc.IceInternal.Reference.ModeDatagram) { + if (_reference.getMode() == com.zeroc.IceInternal.Reference.ModeDatagram) { return this; } else { - return _newInstance(_getReference().changeMode(com.zeroc.IceInternal.Reference.ModeDatagram)); + return _newInstance(_reference.changeMode(com.zeroc.IceInternal.Reference.ModeDatagram)); } } @Override public ObjectPrx ice_batchDatagram() { - if (_getReference().getMode() == com.zeroc.IceInternal.Reference.ModeBatchDatagram) { + if (_reference.getMode() == com.zeroc.IceInternal.Reference.ModeBatchDatagram) { return this; } else { - return _newInstance( - _getReference().changeMode(com.zeroc.IceInternal.Reference.ModeBatchDatagram)); + return _newInstance(_reference.changeMode(com.zeroc.IceInternal.Reference.ModeBatchDatagram)); } } @Override public ObjectPrx ice_compress(boolean compress) { - var value = _getReference().getCompress(); + var value = _reference.getCompress(); if (value.isPresent() && value.get() == compress) { return this; } else { - return _newInstance(_getReference().changeCompress(compress)); + return _newInstance(_reference.changeCompress(compress)); } } @@ -594,7 +592,7 @@ public ObjectPrx ice_connectionId(String connectionId) { if (connectionId.equals(_reference.getConnectionId())) { return this; } else { - return _newInstance(_getReference().changeConnectionId(connectionId)); + return _newInstance(_reference.changeConnectionId(connectionId)); } }