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.StopExceptionNested classes/interfaces inherited from interface org.cometd.bayeux.Bayeux
org.cometd.bayeux.Bayeux.BayeuxListener, org.cometd.bayeux.Bayeux.ValidatorNested classes/interfaces inherited from interface org.cometd.bayeux.server.BayeuxServer
BayeuxServer.BayeuxServerListener, BayeuxServer.ChannelListener, BayeuxServer.Extension, BayeuxServer.SessionListener, BayeuxServer.SubscriptionListenerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.Listener -
Field Summary
Fields Modifier and Type Field Description static java.lang.StringALLOWED_TRANSPORTS_OPTIONstatic java.lang.StringBROADCAST_TO_PUBLISHER_OPTIONstatic java.lang.StringEXECUTOR_MAX_THREADSstatic java.lang.StringSCHEDULER_THREADSstatic java.lang.StringSWEEP_PERIOD_OPTIONstatic java.lang.StringTRANSPORTS_OPTIONstatic java.lang.StringVALIDATE_MESSAGE_FIELDS_OPTIONFields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPINGFields inherited from interface org.cometd.bayeux.server.BayeuxServer
ATTRIBUTEFields inherited from interface org.eclipse.jetty.util.component.Dumpable
KEY -
Constructor Summary
Constructors Constructor Description BayeuxServerImpl() -
Method Summary
Modifier and Type Method Description voidaddExtension(BayeuxServer.Extension extension)voidaddListener(BayeuxServer.BayeuxServerListener listener)protected voidaddServerSession(ServerSessionImpl session, ServerMessage message)ServerTransportaddTransport(ServerTransport transport)org.cometd.bayeux.MarkedReference<ServerChannel>createChannelIfAbsent(java.lang.String channelName, ConfigurableServerChannel.Initializer... initializers)protected ServerMessage.MutablecreateReply(ServerMessage.Mutable message)protected voiddoStart()protected voiddoStop()voiddump(java.lang.Appendable out, java.lang.String indent)protected voiderror(ServerMessage.Mutable reply, java.lang.String error)voidexecute(java.lang.Runnable job)protected voidextendOutgoing(ServerSession sender, ServerSession session, ServerMessage.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise)voidextendReply(ServerSessionImpl sender, ServerSessionImpl session, ServerMessage.Mutable reply, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise)protected AbstractHttpTransportfindHttpTransport(javax.servlet.http.HttpServletRequest request)voidfreeze(ServerMessage.Mutable mutable)java.util.List<java.lang.String>getAllowedTransports()ServerChannelgetChannel(java.lang.String channelId)java.util.List<ServerChannel>getChannels()java.util.concurrent.ExecutorgetExecutor()java.util.List<BayeuxServer.Extension>getExtensions()JSONContextServergetJSONContext()java.util.Set<java.lang.String>getKnownTransportNames()protected java.util.List<BayeuxServer.BayeuxServerListener>getListeners()java.lang.StringgetName()java.lang.ObjectgetOption(java.lang.String qualifiedName)protected booleangetOption(java.lang.String name, boolean dft)protected longgetOption(java.lang.String name, long dft)java.util.Set<java.lang.String>getOptionNames()java.util.Map<java.lang.String,java.lang.Object>getOptions()org.eclipse.jetty.util.thread.SchedulergetScheduler()SecurityPolicygetSecurityPolicy()ServerSessiongetSession(java.lang.String clientId)java.util.List<ServerSession>getSessions()ServerTransportgetTransport(java.lang.String transport)java.util.List<ServerTransport>getTransports()voidhandle(ServerSessionImpl session, ServerMessage.Mutable message, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise)protected voidinitializeJSONContext()protected voidinitializeMetaChannels()protected voidinitializeServerTransports()booleanisBroadcastToPublisher()booleanisDetailedDump()org.cometd.bayeux.ChannelIdnewChannelId(java.lang.String id)LocalSessionnewLocalSession(java.lang.String idHint)ServerMessage.MutablenewMessage()ServerMessage.MutablenewMessage(ServerMessage original)ServerSessionImplnewServerSession()protected voidpublish(ServerSessionImpl session, ServerChannelImpl channel, ServerMessage.Mutable message, boolean receiving, org.cometd.bayeux.Promise<java.lang.Boolean> promise)longrandomLong()voidremoveExtension(BayeuxServer.Extension extension)voidremoveListener(BayeuxServer.BayeuxServerListener listener)protected booleanremoveServerChannel(ServerChannelImpl channel)booleanremoveServerSession(ServerSession session, boolean timeout)booleanremoveSession(ServerSession session)protected org.cometd.bayeux.Promise<java.lang.Boolean>resolveLoop(AsyncFoldLeft.Loop<java.lang.Boolean> loop)org.eclipse.jetty.util.thread.Scheduler.Taskschedule(java.lang.Runnable task, long delay)Entry point to schedule tasks in CometD.voidsetAllowedTransports(java.lang.String... allowed)voidsetAllowedTransports(java.util.List<java.lang.String> allowed)voidsetDetailedDump(boolean detailedDump)voidsetExecutor(java.util.concurrent.Executor executor)voidsetOption(java.lang.String qualifiedName, java.lang.Object value)voidsetOptions(java.util.Map<java.lang.String,java.lang.Object> options)voidsetScheduler(org.eclipse.jetty.util.thread.Scheduler scheduler)voidsetSecurityPolicy(SecurityPolicy securityPolicy)voidsetTransports(java.util.List<ServerTransport> transports)voidsetTransports(ServerTransport... transports)voidsweep()protected voidunknownSession(ServerMessage.Mutable reply)protected java.lang.StringvalidateMessage(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, updateBeansMethods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListenersMethods inherited from interface org.eclipse.jetty.util.component.Dumpable
dump, dumpSelfMethods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
Field Details
-
ALLOWED_TRANSPORTS_OPTION
public static final java.lang.String ALLOWED_TRANSPORTS_OPTION- See Also:
- Constant Field Values
-
SWEEP_PERIOD_OPTION
public static final java.lang.String SWEEP_PERIOD_OPTION- See Also:
- Constant Field Values
-
TRANSPORTS_OPTION
public static final java.lang.String TRANSPORTS_OPTION- See Also:
- Constant Field Values
-
VALIDATE_MESSAGE_FIELDS_OPTION
public static final java.lang.String VALIDATE_MESSAGE_FIELDS_OPTION- See Also:
- Constant Field Values
-
BROADCAST_TO_PUBLISHER_OPTION
public static final java.lang.String BROADCAST_TO_PUBLISHER_OPTION- See Also:
- Constant Field Values
-
SCHEDULER_THREADS
public static final java.lang.String SCHEDULER_THREADS- See Also:
- Constant Field Values
-
EXECUTOR_MAX_THREADS
public static final java.lang.String EXECUTOR_MAX_THREADS- See Also:
- Constant Field Values
-
-
Constructor Details
-
BayeuxServerImpl
public BayeuxServerImpl()
-
-
Method Details
-
getName
public java.lang.String getName() -
doStart
protected void doStart() throws java.lang.Exception- Overrides:
doStartin classorg.eclipse.jetty.util.component.ContainerLifeCycle- Throws:
java.lang.Exception
-
doStop
protected void doStop() throws java.lang.Exception- Overrides:
doStopin classorg.eclipse.jetty.util.component.ContainerLifeCycle- Throws:
java.lang.Exception
-
initializeMetaChannels
protected void initializeMetaChannels() -
initializeJSONContext
protected void initializeJSONContext() throws java.lang.Exception- Throws:
java.lang.Exception
-
initializeServerTransports
protected void initializeServerTransports() -
setExecutor
public void setExecutor(java.util.concurrent.Executor executor) -
getExecutor
public java.util.concurrent.Executor getExecutor() -
execute
public void execute(java.lang.Runnable job) -
setScheduler
public void setScheduler(org.eclipse.jetty.util.thread.Scheduler scheduler) -
getScheduler
public org.eclipse.jetty.util.thread.Scheduler getScheduler() -
schedule
public org.eclipse.jetty.util.thread.Scheduler.Task schedule(java.lang.Runnable task, long delay)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
public org.cometd.bayeux.ChannelId newChannelId(java.lang.String id) -
getOptions
public java.util.Map<java.lang.String,java.lang.Object> getOptions() -
getOption
@ManagedOperation(value="The value of the given configuration option", impact="INFO") public java.lang.Object getOption(@Name("optionName") java.lang.String qualifiedName)- Specified by:
getOptionin interfaceorg.cometd.bayeux.Bayeux
-
getOption
protected long getOption(java.lang.String name, long dft) -
getOption
protected boolean getOption(java.lang.String name, boolean dft) -
getOptionNames
public java.util.Set<java.lang.String> getOptionNames()- Specified by:
getOptionNamesin interfaceorg.cometd.bayeux.Bayeux
-
setOption
public void setOption(java.lang.String qualifiedName, java.lang.Object value)- Specified by:
setOptionin interfaceorg.cometd.bayeux.Bayeux
-
setOptions
public void setOptions(java.util.Map<java.lang.String,java.lang.Object> options) -
randomLong
public long randomLong() -
getSecurityPolicy
- Specified by:
getSecurityPolicyin interfaceBayeuxServer
-
getJSONContext
-
createChannelIfAbsent
public org.cometd.bayeux.MarkedReference<ServerChannel> createChannelIfAbsent(java.lang.String channelName, ConfigurableServerChannel.Initializer... initializers)- Specified by:
createChannelIfAbsentin interfaceBayeuxServer
-
getSessions
- Specified by:
getSessionsin interfaceBayeuxServer
-
getSession
- Specified by:
getSessionin interfaceBayeuxServer
-
addServerSession
-
removeSession
- Specified by:
removeSessionin 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:
newLocalSessionin interfaceBayeuxServer
-
newMessage
- Specified by:
newMessagein interfaceBayeuxServer
-
newMessage
-
setSecurityPolicy
- Specified by:
setSecurityPolicyin interfaceBayeuxServer
-
addExtension
- Specified by:
addExtensionin interfaceBayeuxServer
-
removeExtension
- Specified by:
removeExtensionin interfaceBayeuxServer
-
getExtensions
- Specified by:
getExtensionsin interfaceBayeuxServer
-
addListener
- Specified by:
addListenerin interfaceBayeuxServer
-
getChannel
- Specified by:
getChannelin interfaceBayeuxServer
-
getChannels
- Specified by:
getChannelsin interfaceBayeuxServer
-
removeListener
- Specified by:
removeListenerin 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<java.lang.Boolean> promise) -
resolveLoop
protected org.cometd.bayeux.Promise<java.lang.Boolean> resolveLoop(AsyncFoldLeft.Loop<java.lang.Boolean> loop) -
freeze
-
extendOutgoing
protected void extendOutgoing(ServerSession sender, ServerSession session, ServerMessage.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise) -
extendReply
public void extendReply(ServerSessionImpl sender, ServerSessionImpl session, ServerMessage.Mutable reply, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise) -
removeServerChannel
-
getListeners
-
getKnownTransportNames
public java.util.Set<java.lang.String> getKnownTransportNames()- Specified by:
getKnownTransportNamesin interfaceorg.cometd.bayeux.Bayeux
-
getTransport
- Specified by:
getTransportin interfaceorg.cometd.bayeux.Bayeux
-
addTransport
-
setTransports
-
setTransports
-
getTransports
-
findHttpTransport
-
getAllowedTransports
@ManagedAttribute(value="The transports allowed by this CoemtD server", readonly=true) public java.util.List<java.lang.String> getAllowedTransports()- Specified by:
getAllowedTransportsin interfaceorg.cometd.bayeux.Bayeux
-
setAllowedTransports
public void setAllowedTransports(java.lang.String... allowed) -
setAllowedTransports
public void setAllowedTransports(java.util.List<java.lang.String> allowed) -
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
public void dump(java.lang.Appendable out, java.lang.String indent) throws java.io.IOException- Specified by:
dumpin interfaceorg.eclipse.jetty.util.component.Dumpable- Overrides:
dumpin classorg.eclipse.jetty.util.component.ContainerLifeCycle- Throws:
java.io.IOException
-