Package org.cometd.server
Class BayeuxServerImpl
java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.cometd.server.BayeuxServerImpl
- All Implemented Interfaces:
org.cometd.bayeux.Bayeux
,BayeuxServer
,org.eclipse.jetty.util.component.Container
,org.eclipse.jetty.util.component.Destroyable
,org.eclipse.jetty.util.component.Dumpable
,org.eclipse.jetty.util.component.Dumpable.DumpableContainer
,org.eclipse.jetty.util.component.LifeCycle
@ManagedObject("The CometD server")
public class BayeuxServerImpl
extends org.eclipse.jetty.util.component.ContainerLifeCycle
implements BayeuxServer, org.eclipse.jetty.util.component.Dumpable
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException
Nested classes/interfaces inherited from interface org.cometd.bayeux.Bayeux
org.cometd.bayeux.Bayeux.BayeuxListener, org.cometd.bayeux.Bayeux.Validator
Nested classes/interfaces inherited from interface org.cometd.bayeux.server.BayeuxServer
BayeuxServer.BayeuxServerListener, BayeuxServer.ChannelListener, BayeuxServer.Extension, BayeuxServer.SessionListener, BayeuxServer.SubscriptionListener
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainer
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.Listener
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic String
static String
static String
static String
static String
static String
static String
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPING
Fields inherited from interface org.cometd.bayeux.server.BayeuxServer
ATTRIBUTE
Fields inherited from interface org.eclipse.jetty.util.component.Dumpable
KEY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addExtension(BayeuxServer.Extension extension)
void
addListener(BayeuxServer.BayeuxServerListener listener)
protected void
addServerSession(ServerSessionImpl session, ServerMessage message)
addTransport(ServerTransport transport)
org.cometd.bayeux.MarkedReference<ServerChannel>
createChannelIfAbsent(String channelName, ConfigurableServerChannel.Initializer... initializers)
protected ServerMessage.Mutable
createReply(ServerMessage.Mutable message)
protected void
doStart()
protected void
doStop()
void
dump(Appendable out, String indent)
protected void
error(ServerMessage.Mutable reply, String error)
void
protected void
extendOutgoing(ServerSession sender, ServerSession session, ServerMessage.Mutable message, org.cometd.bayeux.Promise<Boolean> promise)
void
extendReply(ServerSessionImpl sender, ServerSessionImpl session, ServerMessage.Mutable reply, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise)
protected AbstractHttpTransport
findHttpTransport(jakarta.servlet.http.HttpServletRequest request)
void
freeze(ServerMessage.Mutable mutable)
getChannel(String channelId)
protected List<BayeuxServer.BayeuxServerListener>
getName()
protected boolean
protected long
org.eclipse.jetty.util.thread.Scheduler
getSession(String clientId)
getTransport(String transport)
void
handle(ServerSessionImpl session, ServerMessage.Mutable message, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise)
protected void
protected void
protected void
boolean
boolean
org.cometd.bayeux.ChannelId
newChannelId(String id)
newLocalSession(String idHint)
newMessage(ServerMessage original)
protected void
publish(ServerSessionImpl session, ServerChannelImpl channel, ServerMessage.Mutable message, boolean receiving, org.cometd.bayeux.Promise<Boolean> promise)
long
void
removeExtension(BayeuxServer.Extension extension)
void
removeListener(BayeuxServer.BayeuxServerListener listener)
protected boolean
removeServerChannel(ServerChannelImpl channel)
boolean
removeServerSession(ServerSession session, boolean timeout)
boolean
removeSession(ServerSession session)
protected org.cometd.bayeux.Promise<Boolean>
resolveLoop(AsyncFoldLeft.Loop<Boolean> loop)
org.eclipse.jetty.util.thread.Scheduler.Task
Entry point to schedule tasks in CometD.void
setAllowedTransports(String... allowed)
void
setAllowedTransports(List<String> allowed)
void
setDetailedDump(boolean detailedDump)
void
setExecutor(Executor executor)
void
void
setOptions(Map<String,Object> options)
void
setScheduler(org.eclipse.jetty.util.thread.Scheduler scheduler)
void
setSecurityPolicy(SecurityPolicy securityPolicy)
void
setTransports(List<ServerTransport> transports)
void
setTransports(ServerTransport... transports)
void
sweep()
protected void
unknownSession(ServerMessage.Mutable reply)
protected String
validateMessage(ServerMessage.Mutable message)
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListeners
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable
dump, dumpSelf
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
Field Details
-
ALLOWED_TRANSPORTS_OPTION
- See Also:
- Constant Field Values
-
SWEEP_PERIOD_OPTION
- See Also:
- Constant Field Values
-
TRANSPORTS_OPTION
- See Also:
- Constant Field Values
-
VALIDATE_MESSAGE_FIELDS_OPTION
- See Also:
- Constant Field Values
-
BROADCAST_TO_PUBLISHER_OPTION
- See Also:
- Constant Field Values
-
SCHEDULER_THREADS
- See Also:
- Constant Field Values
-
EXECUTOR_MAX_THREADS
- See Also:
- Constant Field Values
-
-
Constructor Details
-
BayeuxServerImpl
public BayeuxServerImpl()
-
-
Method Details
-
getName
-
doStart
- Overrides:
doStart
in classorg.eclipse.jetty.util.component.ContainerLifeCycle
- Throws:
Exception
-
doStop
- Overrides:
doStop
in classorg.eclipse.jetty.util.component.ContainerLifeCycle
- Throws:
Exception
-
initializeMetaChannels
protected void initializeMetaChannels() -
initializeJSONContext
- Throws:
Exception
-
initializeServerTransports
protected void initializeServerTransports() -
setExecutor
-
getExecutor
-
execute
-
setScheduler
public void setScheduler(org.eclipse.jetty.util.thread.Scheduler scheduler) -
getScheduler
public org.eclipse.jetty.util.thread.Scheduler getScheduler() -
schedule
Entry point to schedule tasks in CometD.
Subclasses may override and run the task in a
Executor
, rather than in the scheduler thread.- Parameters:
task
- the task to scheduledelay
- the delay, in milliseconds, to run the task- Returns:
- the task promise
-
newChannelId
-
getOptions
-
getOption
@ManagedOperation(value="The value of the given configuration option", impact="INFO") public Object getOption(@Name("optionName") String qualifiedName)- Specified by:
getOption
in interfaceorg.cometd.bayeux.Bayeux
-
getOption
-
getOption
-
getOptionNames
- Specified by:
getOptionNames
in interfaceorg.cometd.bayeux.Bayeux
-
setOption
- Specified by:
setOption
in interfaceorg.cometd.bayeux.Bayeux
-
setOptions
-
randomLong
public long randomLong() -
getSecurityPolicy
- Specified by:
getSecurityPolicy
in interfaceBayeuxServer
-
getJSONContext
-
createChannelIfAbsent
public org.cometd.bayeux.MarkedReference<ServerChannel> createChannelIfAbsent(String channelName, ConfigurableServerChannel.Initializer... initializers)- Specified by:
createChannelIfAbsent
in interfaceBayeuxServer
-
getSessions
- Specified by:
getSessions
in interfaceBayeuxServer
-
getSession
- Specified by:
getSession
in interfaceBayeuxServer
-
addServerSession
-
removeSession
- Specified by:
removeSession
in interfaceBayeuxServer
-
removeServerSession
- Parameters:
session
- the session to removetimeout
- whether the session has been removed due to a timeout- Returns:
- true if the session was removed and was connected
-
newServerSession
-
newLocalSession
- Specified by:
newLocalSession
in interfaceBayeuxServer
-
newMessage
- Specified by:
newMessage
in interfaceBayeuxServer
-
newMessage
-
setSecurityPolicy
- Specified by:
setSecurityPolicy
in interfaceBayeuxServer
-
addExtension
- Specified by:
addExtension
in interfaceBayeuxServer
-
removeExtension
- Specified by:
removeExtension
in interfaceBayeuxServer
-
getExtensions
- Specified by:
getExtensions
in interfaceBayeuxServer
-
addListener
- Specified by:
addListener
in interfaceBayeuxServer
-
getChannel
- Specified by:
getChannel
in interfaceBayeuxServer
-
getChannels
- Specified by:
getChannels
in interfaceBayeuxServer
-
removeListener
- Specified by:
removeListener
in interfaceBayeuxServer
-
handle
public void handle(ServerSessionImpl session, ServerMessage.Mutable message, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise) -
validateMessage
-
publish
protected void publish(ServerSessionImpl session, ServerChannelImpl channel, ServerMessage.Mutable message, boolean receiving, org.cometd.bayeux.Promise<Boolean> promise) -
resolveLoop
-
freeze
-
extendOutgoing
protected void extendOutgoing(ServerSession sender, ServerSession session, ServerMessage.Mutable message, org.cometd.bayeux.Promise<Boolean> promise) -
extendReply
public void extendReply(ServerSessionImpl sender, ServerSessionImpl session, ServerMessage.Mutable reply, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise) -
removeServerChannel
-
getListeners
-
getKnownTransportNames
- Specified by:
getKnownTransportNames
in interfaceorg.cometd.bayeux.Bayeux
-
getTransport
- Specified by:
getTransport
in interfaceorg.cometd.bayeux.Bayeux
-
addTransport
-
setTransports
-
setTransports
-
getTransports
-
findHttpTransport
-
getAllowedTransports
@ManagedAttribute(value="The transports allowed by this CometD server", readonly=true) public List<String> getAllowedTransports()- Specified by:
getAllowedTransports
in interfaceorg.cometd.bayeux.Bayeux
-
setAllowedTransports
-
setAllowedTransports
-
isBroadcastToPublisher
@ManagedAttribute(value="Whether this CometD server broadcast messages to the publisher", readonly=true) public boolean isBroadcastToPublisher() -
unknownSession
-
error
-
createReply
-
sweep
@ManagedOperation(value="Sweeps channels and sessions of this CometD server", impact="ACTION") public void sweep() -
isDetailedDump
@ManagedAttribute("Reports additional details in the dump() operation") public boolean isDetailedDump() -
setDetailedDump
public void setDetailedDump(boolean detailedDump) -
dump
- Specified by:
dump
in interfaceorg.eclipse.jetty.util.component.Dumpable
- Overrides:
dump
in classorg.eclipse.jetty.util.component.ContainerLifeCycle
- Throws:
IOException
-