public interface Topic extends Destination
Topic
object encapsulates a provider-specific topic name.
It is the way a client specifies the identity of a topic to JMS API methods.
For those methods that use a Destination
as a parameter, a
Topic
object may used as an argument . For
example, a Topic can be used to create a MessageConsumer
and a MessageProducer
by calling:
Session.CreateConsumer(Destination destination)
Session.CreateProducer(Destination destination)
Many publish/subscribe (pub/sub) providers group topics into hierarchies
and provide various options for subscribing to parts of the hierarchy. The
JMS API places no restriction on what a Topic
object
represents. It may be a leaf in a topic hierarchy, or it may be a larger
part of the hierarchy.
The organization of topics and the granularity of subscriptions to
them is an important part of a pub/sub application's architecture. The JMS
API
does not specify a policy for how this should be done. If an application
takes advantage of a provider-specific topic-grouping mechanism, it
should document this. If the application is installed using a different
provider, it is the job of the administrator to construct an equivalent
topic architecture and create equivalent Topic
objects.
Solace TopicsGenerally, a Topic name represents a hierarchy of levels, separated by slashes. Topics are used by producers for publishing, or by consumers as Topic Subscriptions. Only Topic Subscriptions can be wildcarded.
The following rules define valid Topics and Topic Subscriptions (using the EBNF syntax from http://www.w3.org/TR/REC-xml/#sec-notation):
slash ::= "/" wildcard ::= ">" digit ::= [0-9] letter ::= [a-z][A-Z] symbol ::= [~`!\@$\%|^()_+={}\:,?/] | "#" | "-" | ";" | "[" | "]" level-char ::= digit | letter | symbol level ::= level-char (level-char)* topic ::= level (slash level)* 1 <= length (topic) <= 250 topic-subscription ::= wildcard | topic [slash wildcard] 1 <= length (topic-subscription) <= 250
Examples:
enterprise-1/branch-15/frontdesk
(Topic or Topic subscription)
enterprise-2/>
(Wildcarded Topic subscription)A Topic is considered wildcarded if it meets one of the following conditions:
- The Topic name is ">"
- The Topic subscription has at least one level and ends with "/>"
Wildcarded Topics can only be used as Topic Subscriptions.
Session.createConsumer(Destination)
,
Session.createProducer(Destination)
,
TopicSession.createTopic(String)
Modifier and Type | Method and Description |
---|---|
String |
getTopicName()
Gets the name of this topic.
|
String |
toString()
Returns a string representation of this object.
|
String getTopicName() throws JMSException
Clients that depend upon the name are not portable.
JMSException
- if the JMS provider implementation of
Topic
fails to return the topic
name due to some internal
error.Copyright 2004-2024 Solace Corporation. All rights reserved.