ChannelFactory
public class JChannelFactory extends java.lang.Object implements ChannelFactory
Channel
interface.
See JChannel
for a discussion of channel properties.Constructor | Description |
---|---|
JChannelFactory() |
Constructs a
JChannelFactory instance that contains no
protocol stack configuration. |
JChannelFactory(java.io.File properties) |
Constructs a
JChannelFactory instance that utilizes the
specified file for protocl stack configuration. |
JChannelFactory(java.lang.String properties) |
Constructs a
JChannel instance with the protocol stack
configuration based upon the specified properties parameter. |
JChannelFactory(java.net.URL properties) |
Constructs a
JChannelFactory instance that utilizes the
specified file for protocl stack configuration. |
JChannelFactory(org.w3c.dom.Element properties) |
Constructs a
JChannelFactory instance that utilizes the
specified file for protocl stack configuration. |
Modifier and Type | Method | Description |
---|---|---|
void |
clearConfigurations() |
Removes all configurations
|
void |
create() |
|
Channel |
createChannel() |
Creates a
JChannel implementation of the
Channel |
Channel |
createChannel(java.lang.Object properties) |
Deprecated.
JChannel 's conversion to type-specific
construction, and the subsequent deprecation of its
JChannel(Object) constructor, necessitate the
deprecation of this factory method as well. Type-specific
protocol stack configuration should be specfied during
construction of an instance of this factory. |
Channel |
createChannel(java.lang.String stack_name) |
|
Channel |
createMultiplexerChannel(java.lang.String stack_name,
java.lang.String id) |
Creates an implementation of the Channel using a given stack name and
registering it under a given identity.
|
Channel |
createMultiplexerChannel(java.lang.String stack_name,
java.lang.String id,
boolean register_for_state_transfer,
java.lang.String substate_id) |
Creates an implementation of the Channel using a given stack name and
registering it under a given identity.
|
void |
destroy() |
|
java.lang.String |
dumpChannels() |
|
java.lang.String |
dumpConfiguration() |
|
java.lang.String |
getConfig(java.lang.String stack_name) |
Returns the stack configuration as a string (to be fed into new JChannel()).
|
java.lang.String |
getDomain() |
|
java.lang.String |
getMultiplexerConfig() |
|
javax.management.MBeanServer |
getServer() |
|
boolean |
hasMuxChannel(java.lang.String stack_name,
java.lang.String id) |
Returns true if this factory has already registered MuxChannel with given
stack_name and an id, false otherwise.
|
boolean |
isExposeChannels() |
|
boolean |
isExposeProtocols() |
|
boolean |
removeConfig(java.lang.String stack_name) |
|
void |
setDomain(java.lang.String domain) |
|
void |
setExposeChannels(boolean expose_channels) |
|
void |
setExposeProtocols(boolean expose_protocols) |
|
void |
setMultiplexerConfig(java.io.File file) |
Initializes the factory from a file.
|
void |
setMultiplexerConfig(java.io.File file,
boolean replace) |
|
void |
setMultiplexerConfig(java.lang.Object properties) |
Initializes the factory.
|
void |
setMultiplexerConfig(java.lang.Object properties,
boolean replace) |
|
void |
setMultiplexerConfig(java.lang.String properties) |
|
void |
setMultiplexerConfig(java.lang.String properties,
boolean replace) |
|
void |
setMultiplexerConfig(java.net.URL url) |
|
void |
setMultiplexerConfig(java.net.URL url,
boolean replace) |
|
void |
setMultiplexerConfig(org.w3c.dom.Element properties) |
|
void |
setMultiplexerConfig(org.w3c.dom.Element properties,
boolean replace) |
|
void |
setServer(javax.management.MBeanServer server) |
|
void |
start() |
|
void |
stop() |
public JChannelFactory()
JChannelFactory
instance that contains no
protocol stack configuration.public JChannelFactory(java.io.File properties) throws ChannelException
JChannelFactory
instance that utilizes the
specified file for protocl stack configuration.properties
- a file containing a JGroups XML protocol stack
configuration.ChannelException
- if problems occur during the interpretation of
the protocol stack configuration.public JChannelFactory(org.w3c.dom.Element properties) throws ChannelException
JChannelFactory
instance that utilizes the
specified file for protocl stack configuration.properties
- a XML element containing a JGroups XML protocol stack
configuration.ChannelException
- if problems occur during the interpretation of
the protocol stack configuration.public JChannelFactory(java.net.URL properties) throws ChannelException
JChannelFactory
instance that utilizes the
specified file for protocl stack configuration.properties
- a URL pointing to a JGroups XML protocol stack
configuration.ChannelException
- if problems occur during the interpretation of
the protocol stack configuration.public JChannelFactory(java.lang.String properties) throws ChannelException
JChannel
instance with the protocol stack
configuration based upon the specified properties parameter.properties
- an old style property string, a string representing a
system resource containing a JGroups XML configuration,
a string representing a URL pointing to a JGroups XML
XML configuration, or a string representing a file name
that contains a JGroups XML configuration.ChannelException
- if problems occur during the interpretation of
the protocol stack configuration.public void setMultiplexerConfig(java.lang.Object properties) throws java.lang.Exception
ChannelFactory
setMultiplexerConfig
in interface ChannelFactory
ChannelException
java.lang.Exception
public void setMultiplexerConfig(java.lang.Object properties, boolean replace) throws java.lang.Exception
java.lang.Exception
public void setMultiplexerConfig(java.io.File file) throws java.lang.Exception
ChannelFactory
setMultiplexerConfig
in interface ChannelFactory
ChannelException
java.lang.Exception
public void setMultiplexerConfig(java.io.File file, boolean replace) throws java.lang.Exception
java.lang.Exception
public void setMultiplexerConfig(org.w3c.dom.Element properties) throws java.lang.Exception
setMultiplexerConfig
in interface ChannelFactory
java.lang.Exception
public void setMultiplexerConfig(org.w3c.dom.Element properties, boolean replace) throws java.lang.Exception
java.lang.Exception
public void setMultiplexerConfig(java.net.URL url) throws java.lang.Exception
setMultiplexerConfig
in interface ChannelFactory
java.lang.Exception
public void setMultiplexerConfig(java.net.URL url, boolean replace) throws java.lang.Exception
java.lang.Exception
public void setMultiplexerConfig(java.lang.String properties) throws java.lang.Exception
setMultiplexerConfig
in interface ChannelFactory
java.lang.Exception
public void setMultiplexerConfig(java.lang.String properties, boolean replace) throws java.lang.Exception
java.lang.Exception
public java.lang.String getConfig(java.lang.String stack_name) throws java.lang.Exception
java.lang.Exception
public java.lang.String getMultiplexerConfig()
public void clearConfigurations()
public boolean removeConfig(java.lang.String stack_name)
public javax.management.MBeanServer getServer()
public void setServer(javax.management.MBeanServer server)
public java.lang.String getDomain()
public void setDomain(java.lang.String domain)
public boolean isExposeChannels()
public void setExposeChannels(boolean expose_channels)
public boolean isExposeProtocols()
public void setExposeProtocols(boolean expose_protocols)
public Channel createChannel(java.lang.Object properties) throws ChannelException
JChannel
's conversion to type-specific
construction, and the subsequent deprecation of its
JChannel(Object)
constructor, necessitate the
deprecation of this factory method as well. Type-specific
protocol stack configuration should be specfied during
construction of an instance of this factory.JChannel
implementation of the
Channel
interface.createChannel
in interface ChannelFactory
properties
- the protocol stack configuration information; a
null
value means use the default protocol
stack configuration.ChannelException
- if the creation of the channel failed.public Channel createChannel() throws ChannelException
JChannel
implementation of the
Channel interface using the protocol stack configuration
information specfied during construction of an instance of this factory.
createChannel
in interface ChannelFactory
ChannelException
- if the creation of the channel failed.public Channel createChannel(java.lang.String stack_name) throws java.lang.Exception
createChannel
in interface ChannelFactory
java.lang.Exception
public Channel createMultiplexerChannel(java.lang.String stack_name, java.lang.String id) throws java.lang.Exception
ChannelFactory
Channel has to be created with a unique application id per stack name.
Provided stack name has to be one of the stacks defined in a property file that was passed to setMultiplexerConfig (e.g conf/stacks.xml). If clients attempt to create a Channel for an undefined stack name or they attempt to register a duplicate Channel per stack an Exception will be thrown.
createMultiplexerChannel
in interface ChannelFactory
stack_name
- The name of the stack to be used. All stacks are defined in
the configuration with which the factory is configured (see
ChannelFactory.setMultiplexerConfig(Object)
for example.id
- The identifier used for multiplexing and demultiplexing
(dispatching requests to one of possibly multiple receivers).
Note that id needs to be a string since it will be shipped
with each message. Try to pick a short string, because this is
shipped with every message (overhead).ChannelException
java.lang.Exception
Multiplexer
,
MuxChannel
public Channel createMultiplexerChannel(java.lang.String stack_name, java.lang.String id, boolean register_for_state_transfer, java.lang.String substate_id) throws java.lang.Exception
ChannelFactory
Channel has to be created with a unique application id per stack name.
Provided stack name has to be one of the stacks defined in a property file that was passed to setMultiplexerConfig (e.g conf/stacks.xml). If clients attempt to create a Channel for an undefined stack name or they attempt to register a duplicate Channel per stack an Exception will be thrown.
Rather than having each multiplexed channel do a separate state transfer clients can bundle state transfers for all channels created with the same ChannelFactory. First of all, clients have to create Channels with register_for_state_transfer set to true. After the last Channel that was created with register_for_state_transfer set to true connects and initiates state transfer the actual state transfer for all such channels from this ChannelFactory is executed.
Using bundled state transfers is especially useful with the FLUSH protocol in a stack. Recall that each state transfer triggers a flush and thus instead of doing a separate flush for each Channel created with this ChannelFactory we execute only one flush for all state transfers.
However, be aware of the implication of asynchronous nature of bundled state transfer with the respect of channel connect. Recall that each Channel after it returns from successful getState method can assume that state is available. In case of bundled state transfer, state will be set only after the last Channel registered for the bundled state transfer connects and executes getState.
createMultiplexerChannel
in interface ChannelFactory
stack_name
- The name of the stack to be used. All stacks are defined in
the configuration with which the factory is configured (see
ChannelFactory.setMultiplexerConfig(Object)
for example.id
- The identifier used for multiplexing and demultiplexing
(dispatching requests to one of possibly multiple receivers).
Note that id needs to be a string since it will be shipped
with each message. Try to pick a short string, because this is
shipped with every message (overhead).register_for_state_transfer
- If set to true, after all registered listeners called
either Channel.connect(String, Address, String, long)
or
and Channel#getState(Address, long)
successively on the returned Channel, the state for all
registered listeners will be fetched and set in all listeners.substate_id
- The ID of the sub state to be retrieved. Set this to null if
the entire state should be retrieved. If
register_for_state_transfer is false, substate_id will be
ignoredChannelException
java.lang.Exception
Multiplexer
,
MuxChannel
public boolean hasMuxChannel(java.lang.String stack_name, java.lang.String id)
stack_name
- name of the stack usedid
- service idpublic void create() throws java.lang.Exception
java.lang.Exception
public void start() throws java.lang.Exception
java.lang.Exception
public void stop()
public void destroy()
public java.lang.String dumpConfiguration()
public java.lang.String dumpChannels()
Copyright ? 1998-2008 Bela Ban. All Rights Reserved.