diff options
-rw-r--r-- | javae/src/Ice/Connection.java | 2 | ||||
-rw-r--r-- | javae/src/Ice/ObjectAdapter.java | 7 | ||||
-rw-r--r-- | javae/src/Ice/ObjectPrx.java | 3 | ||||
-rw-r--r-- | javae/src/Ice/ObjectPrxHelperBase.java | 26 | ||||
-rw-r--r-- | javae/src/IceInternal/DirectReference.java | 26 | ||||
-rw-r--r-- | javae/src/IceInternal/FixedReference.java | 15 | ||||
-rw-r--r-- | javae/src/IceInternal/IndirectReference.java | 15 | ||||
-rw-r--r-- | javae/src/IceInternal/Reference.java | 5 | ||||
-rw-r--r-- | javae/src/IceInternal/ReferenceFactory.java | 20 | ||||
-rw-r--r-- | javae/src/IceInternal/RoutableReference.java | 3 |
10 files changed, 104 insertions, 18 deletions
diff --git a/javae/src/Ice/Connection.java b/javae/src/Ice/Connection.java index 202677185c0..4e600fa3d5a 100644 --- a/javae/src/Ice/Connection.java +++ b/javae/src/Ice/Connection.java @@ -907,7 +907,7 @@ public final class Connection Connection[] connections = new Connection[1]; connections[0] = this; IceInternal.Reference ref = - _instance.referenceFactory().create(ident, "", IceInternal.Reference.ModeTwoway, connections); + _instance.referenceFactory().create(ident, null, "", IceInternal.Reference.ModeTwoway, connections); return _instance.proxyFactory().referenceToProxy(ref); } diff --git a/javae/src/Ice/ObjectAdapter.java b/javae/src/Ice/ObjectAdapter.java index 13d45152e29..5c6c1e78e60 100644 --- a/javae/src/Ice/ObjectAdapter.java +++ b/javae/src/Ice/ObjectAdapter.java @@ -535,7 +535,7 @@ public final class ObjectAdapter Connection[] arr = new Connection[connections.size()]; connections.copyInto( arr); IceInternal.Reference ref = - _instance.referenceFactory().create(ident, "", IceInternal.Reference.ModeTwoway, arr); + _instance.referenceFactory().create(ident, null, "", IceInternal.Reference.ModeTwoway, arr); return _instance.proxyFactory().referenceToProxy(ref); } @@ -830,7 +830,8 @@ public final class ObjectAdapter // Connection[] connections = new Connection[0]; IceInternal.Reference reference = - _instance.referenceFactory().create(ident, facet, IceInternal.Reference.ModeTwoway, false, endpoints, null); + _instance.referenceFactory().create(ident, null, facet, IceInternal.Reference.ModeTwoway, false, endpoints, + null); return _instance.proxyFactory().referenceToProxy(reference); } @@ -844,7 +845,7 @@ public final class ObjectAdapter IceInternal.Endpoint[] endpoints = new IceInternal.Endpoint[0]; Connection[] connections = new Connection[0]; IceInternal.Reference reference = - _instance.referenceFactory().create(ident, facet, IceInternal.Reference.ModeTwoway, false, id, null, + _instance.referenceFactory().create(ident, null, facet, IceInternal.Reference.ModeTwoway, false, id, null, _locatorInfo); return _instance.proxyFactory().referenceToProxy(reference); } diff --git a/javae/src/Ice/ObjectPrx.java b/javae/src/Ice/ObjectPrx.java index b858e738de5..cea1f22f5eb 100644 --- a/javae/src/Ice/ObjectPrx.java +++ b/javae/src/Ice/ObjectPrx.java @@ -58,6 +58,9 @@ public interface ObjectPrx ObjectPrx ice_newFacet(String newFacet); ObjectPrx ice_facet(String newFacet); + String ice_getAdapterId(); + ObjectPrx ice_adapterId(String newAdapterId); + ObjectPrx ice_router(Ice.RouterPrx router); Ice.RouterPrx ice_getRouter(); diff --git a/javae/src/Ice/ObjectPrxHelperBase.java b/javae/src/Ice/ObjectPrxHelperBase.java index e83fbd9c2ab..8ec714a9371 100644 --- a/javae/src/Ice/ObjectPrxHelperBase.java +++ b/javae/src/Ice/ObjectPrxHelperBase.java @@ -391,6 +391,32 @@ public class ObjectPrxHelperBase implements ObjectPrx return ice_facet(newFacet); } + public final String + ice_getAdapterId() + { + return _reference.getAdapterId(); + } + + public final ObjectPrx + ice_adapterId(String newAdapterId) + { + if(newAdapterId == null) + { + newAdapterId = ""; + } + + if(newAdapterId.equals(_reference.getAdapterId())) + { + return this; + } + else + { + ObjectPrxHelperBase proxy = new ObjectPrxHelperBase(); + proxy.setup(_reference.changeAdapterId(newAdapterId)); + return proxy; + } + } + public final Ice.RouterPrx ice_getRouter() { diff --git a/javae/src/IceInternal/DirectReference.java b/javae/src/IceInternal/DirectReference.java index 3886708e4cb..68aad8e3bf8 100644 --- a/javae/src/IceInternal/DirectReference.java +++ b/javae/src/IceInternal/DirectReference.java @@ -15,21 +15,43 @@ public class DirectReference extends RoutableReference DirectReference(Instance inst, Ice.Communicator com, Ice.Identity ident, + java.util.Hashtable context, String fs, int md, boolean sec, Endpoint[] endpts, RouterInfo rtrInfo) { - super(inst, com, ident, fs, md, sec, rtrInfo); + super(inst, com, ident, context, fs, md, sec, rtrInfo); _endpoints = endpts; } - public Endpoint[] getEndpoints() + public Endpoint[] + getEndpoints() { return _endpoints; } + public String + getAdapterId() + { + return ""; + } + + public Reference + changeAdapterId(String newAdapterId) + { + if(newAdapterId == null || newAdapterId.length() == 0) + { + return this; + } + LocatorInfo locatorInfo = + getInstance().locatorManager().get(getInstance().referenceFactory().getDefaultLocator()); + return getInstance().referenceFactory().create(getIdentity(), getContext(), getFacet(), getMode(), + getSecure(), newAdapterId, getRouterInfo(), + locatorInfo); + } + public Reference changeLocator(Ice.LocatorPrx newLocator) { diff --git a/javae/src/IceInternal/FixedReference.java b/javae/src/IceInternal/FixedReference.java index deed94588b6..740187391e3 100644 --- a/javae/src/IceInternal/FixedReference.java +++ b/javae/src/IceInternal/FixedReference.java @@ -15,11 +15,12 @@ public class FixedReference extends Reference FixedReference(Instance inst, Ice.Communicator com, Ice.Identity ident, + java.util.Hashtable context, String fs, int md, Ice.Connection[] fixedConns) { - super(inst, com, ident, fs, md, false); + super(inst, com, ident, context, fs, md, false); _fixedConnections = fixedConns; } @@ -29,6 +30,18 @@ public class FixedReference extends Reference return new Endpoint[0]; } + public String + getAdapterId() + { + return ""; + } + + public Reference + changeAdapterId(String newAdapterId) + { + throw new Ice.FixedProxyException(); + } + public Reference changeRouter(Ice.RouterPrx newRouter) { diff --git a/javae/src/IceInternal/IndirectReference.java b/javae/src/IceInternal/IndirectReference.java index d7437e92b2a..17b7061540c 100644 --- a/javae/src/IceInternal/IndirectReference.java +++ b/javae/src/IceInternal/IndirectReference.java @@ -15,6 +15,7 @@ public class IndirectReference extends RoutableReference IndirectReference(Instance inst, Ice.Communicator com, Ice.Identity ident, + java.util.Hashtable context, String fs, int md, boolean sec, @@ -22,7 +23,7 @@ public class IndirectReference extends RoutableReference RouterInfo rtrInfo, LocatorInfo locInfo) { - super(inst, com, ident, fs, md, sec, rtrInfo); + super(inst, com, ident, context, fs, md, sec, rtrInfo); _adapterId = adptid; _locatorInfo = locInfo; } @@ -46,6 +47,18 @@ public class IndirectReference extends RoutableReference } public Reference + changeAdapterId(String newAdapterId) + { + if(_adapterId.equals(newAdapterId)) + { + return this; + } + IndirectReference r = (IndirectReference)getInstance().referenceFactory().copy(this); + r._adapterId = newAdapterId; + return r; + } + + public Reference changeLocator(Ice.LocatorPrx newLocator) { LocatorInfo newLocatorInfo = getInstance().locatorManager().get(newLocator); diff --git a/javae/src/IceInternal/Reference.java b/javae/src/IceInternal/Reference.java index ac4aa96742f..25e85ee4f4c 100644 --- a/javae/src/IceInternal/Reference.java +++ b/javae/src/IceInternal/Reference.java @@ -72,6 +72,7 @@ public abstract class Reference } public abstract Endpoint[] getEndpoints(); + public abstract String getAdapterId(); // // The change* methods (here and in derived classes) create @@ -163,6 +164,7 @@ public abstract class Reference return r; } + public abstract Reference changeAdapterId(String newAdapterId); public abstract Reference changeRouter(Ice.RouterPrx newRouter); public abstract Reference changeLocator(Ice.LocatorPrx newLocator); @@ -434,6 +436,7 @@ public abstract class Reference Reference(Instance inst, Ice.Communicator com, Ice.Identity ident, + java.util.Hashtable context, String fac, int md, boolean sec) @@ -453,7 +456,7 @@ public abstract class Reference _mode = md; _secure = sec; _identity = ident; - _context = _emptyContext; + _context = context == null ? _emptyContext : context; _facet = fac; _overrideTimeout = false; _timeout = -1; diff --git a/javae/src/IceInternal/ReferenceFactory.java b/javae/src/IceInternal/ReferenceFactory.java index 7f941e22555..2bfd3e0d507 100644 --- a/javae/src/IceInternal/ReferenceFactory.java +++ b/javae/src/IceInternal/ReferenceFactory.java @@ -13,6 +13,7 @@ public final class ReferenceFactory { public synchronized Reference create(Ice.Identity ident, + java.util.Hashtable context, String facet, int mode, boolean secure, @@ -32,11 +33,13 @@ public final class ReferenceFactory // // Create new reference // - return new DirectReference(_instance, _communicator, ident, facet, mode, secure, endpoints, routerInfo); + return new DirectReference(_instance, _communicator, ident, context, facet, mode, secure, endpoints, + routerInfo); } public synchronized Reference create(Ice.Identity ident, + java.util.Hashtable context, String facet, int mode, boolean secure, @@ -57,12 +60,13 @@ public final class ReferenceFactory // // Create new reference // - return new IndirectReference(_instance, _communicator, ident, facet, mode, secure, adapterId, + return new IndirectReference(_instance, _communicator, ident, context, facet, mode, secure, adapterId, routerInfo, locatorInfo); } public synchronized Reference create(Ice.Identity ident, + java.util.Hashtable context, String facet, int mode, Ice.Connection[] fixedConnections) @@ -80,7 +84,7 @@ public final class ReferenceFactory // // Create new reference // - return new FixedReference(_instance, _communicator, ident, facet, mode, fixedConnections); + return new FixedReference(_instance, _communicator, ident, context, facet, mode, fixedConnections); } public synchronized Reference @@ -379,7 +383,7 @@ public final class ReferenceFactory if(beg == -1) { - return create(ident, facet, mode, secure, "", routerInfo, locatorInfo); + return create(ident, null, facet, mode, secure, "", routerInfo, locatorInfo); } java.util.Vector endpoints = new java.util.Vector(); @@ -430,7 +434,7 @@ public final class ReferenceFactory Endpoint[] endp = new Endpoint[endpoints.size()]; endpoints.copyInto(endp); - return create(ident, facet, mode, secure, endp, routerInfo); + return create(ident, null, facet, mode, secure, endp, routerInfo); } else if(s.charAt(beg) == '@') { @@ -470,7 +474,7 @@ public final class ReferenceFactory throw e; } adapter = token.value; - return create(ident, facet, mode, secure, adapter, routerInfo, locatorInfo); + return create(ident, null, facet, mode, secure, adapter, routerInfo, locatorInfo); } Ice.ProxyParseException ex = new Ice.ProxyParseException(); @@ -531,13 +535,13 @@ public final class ReferenceFactory { endpoints[i] = _instance.endpointFactory().read(s); } - return create(ident, facet, mode, secure, endpoints, routerInfo); + return create(ident, null, facet, mode, secure, endpoints, routerInfo); } else { endpoints = new Endpoint[0]; adapterId = s.readString(); - return create(ident, facet, mode, secure, adapterId, routerInfo, locatorInfo); + return create(ident, null, facet, mode, secure, adapterId, routerInfo, locatorInfo); } } diff --git a/javae/src/IceInternal/RoutableReference.java b/javae/src/IceInternal/RoutableReference.java index ddc6beceddf..c675731a5ad 100644 --- a/javae/src/IceInternal/RoutableReference.java +++ b/javae/src/IceInternal/RoutableReference.java @@ -84,12 +84,13 @@ public abstract class RoutableReference extends Reference RoutableReference(Instance inst, Ice.Communicator com, Ice.Identity ident, + java.util.Hashtable context, String fac, int md, boolean secure, RouterInfo rtrInfo) { - super(inst, com, ident, fac, md, secure); + super(inst, com, ident, context, fac, md, secure); _routerInfo = rtrInfo; } |