com.oracle.webservices.api.message
Interface DistributedPropertySet
- All Superinterfaces:
- PropertySet
- All Known Subinterfaces:
- MessageContext
- All Known Implementing Classes:
- BaseDistributedPropertySet, DistributedPropertySet, Packet, RequestContext, ServletFakeArtifactSet, TCPClientTransport, TCPServiceChannelWSAdapter.ServiceChannelWSSatellite
public interface DistributedPropertySet
- extends PropertySet
PropertySet that combines properties exposed from multiple
PropertySets into one.
This implementation allows one PropertySet to assemble
all properties exposed from other "satellite" PropertySets.
(A satellite may itself be a DistributedPropertySet, so
in general this can form a tree.)
This is useful for JAX-WS because the properties we expose to the application
are contributed by different pieces, and therefore we'd like each of them
to have a separate PropertySet implementation that backs up
the properties. For example, this allows FastInfoset to expose its
set of properties to RequestContext by using a strongly-typed fields.
This is also useful for a client-side transport to expose a bunch of properties
into ResponseContext. It simply needs to create a PropertySet
object with methods for each property it wants to expose, and then add that
PropertySet to Packet. This allows property values to be
lazily computed (when actually asked by users), thus improving the performance
of the typical case where property values are not asked.
A similar benefit applies on the server-side, for a transport to expose
a bunch of properties to WebServiceContext.
To achieve these benefits, access to DistributedPropertySet is slower
compared to PropertySet (such as get/set), while adding a satellite
object is relatively fast.
- Author:
- Kohsuke Kawaguchi
getSatellite
@Nullable
<T extends PropertySet> T getSatellite(Class<T> satelliteClass)
getSatellites
Map<Class<? extends PropertySet>,PropertySet> getSatellites()
addSatellite
void addSatellite(PropertySet satellite)
addSatellite
void addSatellite(Class<? extends PropertySet> keyClass,
PropertySet satellite)
removeSatellite
void removeSatellite(PropertySet satellite)
copySatelliteInto
void copySatelliteInto(MessageContext r)
Copyright © 2005-2015 Oracle Corporation. All Rights Reserved.