diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/ObjectAdapterI.java | 15 | ||||
-rw-r--r-- | java/src/Ice/ObjectPrx.java | 3 | ||||
-rw-r--r-- | java/src/Ice/ObjectPrxHelper.java | 27 | ||||
-rw-r--r-- | java/src/IceInternal/Reference.java | 49 | ||||
-rw-r--r-- | java/src/IceInternal/ReferenceFactory.java | 9 |
5 files changed, 82 insertions, 21 deletions
diff --git a/java/src/Ice/ObjectAdapterI.java b/java/src/Ice/ObjectAdapterI.java index d9fbb6c84d4..b91d8119198 100644 --- a/java/src/Ice/ObjectAdapterI.java +++ b/java/src/Ice/ObjectAdapterI.java @@ -341,8 +341,9 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt // IceInternal.Endpoint[] endpoints = new IceInternal.Endpoint[0]; IceInternal.Reference ref = - _instance.referenceFactory().create(ident, new String[0], IceInternal.Reference.ModeTwoway, - false, "", endpoints, null, null, this, true); + _instance.referenceFactory().create(ident, new java.util.HashMap(), new String[0], + IceInternal.Reference.ModeTwoway, false, + "", endpoints, null, null, this, true); return _instance.proxyFactory().referenceToProxy(ref); } @@ -662,8 +663,9 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt // IceInternal.Endpoint[] endpoints = new IceInternal.Endpoint[0]; IceInternal.Reference reference = - _instance.referenceFactory().create(ident, new String[0], IceInternal.Reference.ModeTwoway, - false, _id, endpoints, null, _locatorInfo, null, true); + _instance.referenceFactory().create(ident, new java.util.HashMap(), new String[0], + IceInternal.Reference.ModeTwoway, false, + _id, endpoints, null, _locatorInfo, null, true); return _instance.proxyFactory().referenceToProxy(reference); } } @@ -701,8 +703,9 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt // Create a reference and return a proxy for this reference. // IceInternal.Reference reference = - _instance.referenceFactory().create(ident, new String[0], IceInternal.Reference.ModeTwoway, - false, "", endpoints, null, _locatorInfo, null, true); + _instance.referenceFactory().create(ident, new java.util.HashMap(), new String[0], + IceInternal.Reference.ModeTwoway, false, + "", endpoints, null, _locatorInfo, null, true); return _instance.proxyFactory().referenceToProxy(reference); } diff --git a/java/src/Ice/ObjectPrx.java b/java/src/Ice/ObjectPrx.java index 9633f8e7a6a..c83276dea20 100644 --- a/java/src/Ice/ObjectPrx.java +++ b/java/src/Ice/ObjectPrx.java @@ -45,6 +45,9 @@ public interface ObjectPrx Identity ice_getIdentity(); ObjectPrx ice_newIdentity(Identity newIdentity); + java.util.Map ice_getContext(); + ObjectPrx ice_newContext(java.util.Map newContext); + String[] ice_getFacet(); ObjectPrx ice_newFacet(String[] newFacet); ObjectPrx ice_appendFacet(String f); diff --git a/java/src/Ice/ObjectPrxHelper.java b/java/src/Ice/ObjectPrxHelper.java index 20673bf75b5..0bb1e235f61 100644 --- a/java/src/Ice/ObjectPrxHelper.java +++ b/java/src/Ice/ObjectPrxHelper.java @@ -252,6 +252,27 @@ public class ObjectPrxHelper implements ObjectPrx } } + public final java.util.Map + ice_getContext() + { + return _reference.context; + } + + public final ObjectPrx + ice_newContext(java.util.Map newContext) + { + if(newContext.equals(_reference.context)) + { + return this; + } + else + { + ObjectPrxHelper proxy = new ObjectPrxHelper(); + proxy.setup(_reference.changeContext(newContext)); + return proxy; + } + } + public final String[] ice_getFacet() { @@ -734,6 +755,12 @@ public class ObjectPrxHelper implements ObjectPrx return new _ObjectDelD(); } + protected java.util.Map + __defaultContext() + { + return _reference.context; + } + // // Only for use by IceInternal.ProxyFactory // diff --git a/java/src/IceInternal/Reference.java b/java/src/IceInternal/Reference.java index 164571d6a84..e4bf24035e7 100644 --- a/java/src/IceInternal/Reference.java +++ b/java/src/IceInternal/Reference.java @@ -54,6 +54,11 @@ public final class Reference return false; } + if(!context.equals(r.context)) + { + return false; + } + if(!java.util.Arrays.equals(facet, r.facet)) { return false; @@ -285,6 +290,7 @@ public final class Reference // final public Instance instance; final public Ice.Identity identity; + final public java.util.Map context; final public String[] facet; final public int mode; final public boolean secure; @@ -309,7 +315,22 @@ public final class Reference } else { - return instance.referenceFactory().create(newIdentity, facet, mode, secure, adapterId, + return instance.referenceFactory().create(newIdentity, context, facet, mode, secure, adapterId, + endpoints, routerInfo, locatorInfo, reverseAdapter, + collocationOptimization); + } + } + + public Reference + changeContext(java.util.Map newContext) + { + if(newContext.equals(context)) + { + return this; + } + else + { + return instance.referenceFactory().create(identity, newContext, facet, mode, secure, adapterId, endpoints, routerInfo, locatorInfo, reverseAdapter, collocationOptimization); } @@ -324,7 +345,7 @@ public final class Reference } else { - return instance.referenceFactory().create(identity, newFacet, mode, secure, adapterId, + return instance.referenceFactory().create(identity, context, newFacet, mode, secure, adapterId, endpoints, routerInfo, locatorInfo, reverseAdapter, collocationOptimization); } @@ -375,7 +396,7 @@ public final class Reference newLocatorInfo = instance.locatorManager().get(newLocator); } - return instance.referenceFactory().create(identity, facet, mode, secure, adapterId, + return instance.referenceFactory().create(identity, context, facet, mode, secure, adapterId, newEndpoints, newRouterInfo, newLocatorInfo, reverseAdapter, collocationOptimization); } @@ -389,7 +410,7 @@ public final class Reference } else { - return instance.referenceFactory().create(identity, facet, newMode, secure, adapterId, + return instance.referenceFactory().create(identity, context, facet, newMode, secure, adapterId, endpoints, routerInfo, locatorInfo, reverseAdapter, collocationOptimization); } @@ -404,7 +425,7 @@ public final class Reference } else { - return instance.referenceFactory().create(identity, facet, mode, newSecure, adapterId, + return instance.referenceFactory().create(identity, context, facet, mode, newSecure, adapterId, endpoints, routerInfo, locatorInfo, reverseAdapter, collocationOptimization); } @@ -455,7 +476,7 @@ public final class Reference newLocatorInfo = instance.locatorManager().get(newLocator); } - return instance.referenceFactory().create(identity, facet, mode, secure, adapterId, + return instance.referenceFactory().create(identity, context, facet, mode, secure, adapterId, newEndpoints, newRouterInfo, newLocatorInfo, reverseAdapter, collocationOptimization); } @@ -469,7 +490,7 @@ public final class Reference } else { - return instance.referenceFactory().create(identity, facet, mode, secure, newAdapterId, + return instance.referenceFactory().create(identity, context, facet, mode, secure, newAdapterId, endpoints, routerInfo, locatorInfo, reverseAdapter, collocationOptimization); } @@ -484,7 +505,7 @@ public final class Reference } else { - return instance.referenceFactory().create(identity, facet, mode, secure, adapterId, + return instance.referenceFactory().create(identity, context, facet, mode, secure, adapterId, newEndpoints, routerInfo, locatorInfo, reverseAdapter, collocationOptimization); } @@ -502,7 +523,7 @@ public final class Reference } else { - return instance.referenceFactory().create(identity, facet, mode, secure, adapterId, + return instance.referenceFactory().create(identity, context, facet, mode, secure, adapterId, endpoints, newRouterInfo, locatorInfo, reverseAdapter, collocationOptimization); } @@ -520,7 +541,7 @@ public final class Reference } else { - return instance.referenceFactory().create(identity, facet, mode, secure, adapterId, + return instance.referenceFactory().create(identity, context, facet, mode, secure, adapterId, endpoints, routerInfo, newLocatorInfo, reverseAdapter, collocationOptimization); } @@ -535,7 +556,7 @@ public final class Reference } else { - return instance.referenceFactory().create(identity, facet, mode, secure, adapterId, + return instance.referenceFactory().create(identity, context, facet, mode, secure, adapterId, endpoints, routerInfo, locatorInfo, reverseAdapter, newCollocationOptimization); } @@ -547,7 +568,7 @@ public final class Reference RouterInfo routerInfo = instance.routerManager().get(instance.referenceFactory().getDefaultRouter()); LocatorInfo locatorInfo = instance.locatorManager().get(instance.referenceFactory().getDefaultLocator()); - return instance.referenceFactory().create(identity, new String[0], ModeTwoway, false, adapterId, + return instance.referenceFactory().create(identity, context, new String[0], ModeTwoway, false, adapterId, endpoints, routerInfo, locatorInfo, null, true); } @@ -556,6 +577,7 @@ public final class Reference // Reference(Instance inst, Ice.Identity ident, + java.util.Map ctx, String[] fac, int md, boolean sec, @@ -573,6 +595,7 @@ public final class Reference instance = inst; identity = ident; + context = ctx; facet = fac; mode = md; secure = sec; @@ -597,6 +620,8 @@ public final class Reference h = 5 * h + (int)identity.category.charAt(i); } + h = 5 * h + context.entrySet().hashCode(); + for(int i = 0; i < facet.length; i++) { sz = facet[i].length(); diff --git a/java/src/IceInternal/ReferenceFactory.java b/java/src/IceInternal/ReferenceFactory.java index 621ec8c8ce1..38e3d20740a 100644 --- a/java/src/IceInternal/ReferenceFactory.java +++ b/java/src/IceInternal/ReferenceFactory.java @@ -18,6 +18,7 @@ public final class ReferenceFactory { public synchronized Reference create(Ice.Identity ident, + java.util.Map context, String[] facet, int mode, boolean secure, @@ -41,7 +42,7 @@ public final class ReferenceFactory // // Create a new reference // - Reference ref = new Reference(_instance, ident, facet, mode, secure, adapterId, + Reference ref = new Reference(_instance, ident, context, facet, mode, secure, adapterId, endpoints, routerInfo, locatorInfo, reverseAdapter, collocationOptimization); // @@ -462,7 +463,8 @@ public final class ReferenceFactory RouterInfo routerInfo = _instance.routerManager().get(getDefaultRouter()); LocatorInfo locatorInfo = _instance.locatorManager().get(getDefaultLocator()); - return create(ident, fac, mode, secure, adapter, endp, routerInfo, locatorInfo, null, true); + return create(ident, new java.util.HashMap(), fac, mode, secure, + adapter, endp, routerInfo, locatorInfo, null, true); } public Reference @@ -508,7 +510,8 @@ public final class ReferenceFactory RouterInfo routerInfo = _instance.routerManager().get(getDefaultRouter()); LocatorInfo locatorInfo = _instance.locatorManager().get(getDefaultLocator()); - return create(ident, facet, mode, secure, adapterId, endpoints, routerInfo, locatorInfo, null, true); + return create(ident, new java.util.HashMap(), facet, mode, secure, + adapterId, endpoints, routerInfo, locatorInfo, null, true); } public synchronized void |