summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/ObjectAdapterI.java15
-rw-r--r--java/src/Ice/ObjectPrx.java3
-rw-r--r--java/src/Ice/ObjectPrxHelper.java27
-rw-r--r--java/src/IceInternal/Reference.java49
-rw-r--r--java/src/IceInternal/ReferenceFactory.java9
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