org.cometd.oort
Class Oort

java.lang.Object
  extended by org.cometd.oort.Oort

public class Oort
extends java.lang.Object

Oort cluster of cometd servers.

This class maintains a collection of OortComet instances to each comet server identified by calls to observeComet(String). The Oort instance is created and configured by OortServlet.

The key configuration parameter that must be set is the Oort URL, which is full public URL to the cometd servlet, eg. http://myserver:8080/context/cometd See OortServlet for more configuration detail.

Author:
gregw

Nested Class Summary
protected  class Oort.OortExtension
          Extension to detect incoming handshake from other Oort servers and to call oortHandshook(String, String, String).
protected  class Oort.RemoteOortClientExtension
          An Extension installed on sessions for remote Oort servers that prevents publish loops.
protected  class Oort.RootOortClientListener
          MessageListener that handles publishes to /oort/cloud
 
Field Summary
protected  BayeuxServer _bayeux
           
protected  java.util.Set<java.lang.String> _channels
           
protected  org.eclipse.jetty.client.HttpClient _httpClient
           
protected  java.util.Map<java.lang.String,OortComet> _knownCommets
           
protected  LocalSession _oortSession
           
protected  java.util.Random _random
           
protected  java.lang.String _secret
           
protected  java.lang.String _url
           
static java.lang.String OORT_ATTRIBUTE
           
static java.lang.String OORT_CHANNELS
           
static java.lang.String OORT_CLOUD
           
static java.lang.String OORT_URL
           
 
Method Summary
 BayeuxServer getBayeux()
           
 java.util.Set<java.lang.String> getKnownComets()
           
 java.lang.String getSecret()
           
 java.lang.String getURL()
           
 boolean isOort(LocalSession session)
           
 boolean isOort(ServerSession session)
           
 void observeChannel(java.lang.String channelId)
          Observer a channel.
 OortComet observeComet(java.lang.String cometUrl)
          Observe an Oort Comet server.
protected  void oortHandshook(java.lang.String oortUrl, java.lang.String oortSecret, java.lang.String clientId)
          Called to register the details of a successful handshake with an Oort comet.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

OORT_URL

public static final java.lang.String OORT_URL
See Also:
Constant Field Values

OORT_CLOUD

public static final java.lang.String OORT_CLOUD
See Also:
Constant Field Values

OORT_CHANNELS

public static final java.lang.String OORT_CHANNELS
See Also:
Constant Field Values

OORT_ATTRIBUTE

public static final java.lang.String OORT_ATTRIBUTE
See Also:
Constant Field Values

_url

protected final java.lang.String _url

_secret

protected final java.lang.String _secret

_bayeux

protected final BayeuxServer _bayeux

_httpClient

protected final org.eclipse.jetty.client.HttpClient _httpClient

_random

protected final java.util.Random _random

_oortSession

protected final LocalSession _oortSession

_knownCommets

protected final java.util.Map<java.lang.String,OortComet> _knownCommets

_channels

protected final java.util.Set<java.lang.String> _channels
Method Detail

getBayeux

public BayeuxServer getBayeux()

getURL

public java.lang.String getURL()
Returns:
The oublic absolute URL of the Oort cometd server.

getSecret

public java.lang.String getSecret()

observeComet

public OortComet observeComet(java.lang.String cometUrl)
Observe an Oort Comet server.

The the comet server is not already observed, start a OortComet instance for it.

Parameters:
cometUrl -
Returns:
The OortComet instance for the comet server.

getKnownComets

public java.util.Set<java.lang.String> getKnownComets()
Returns:
The set of known Oort comet servers URLs.

observeChannel

public void observeChannel(java.lang.String channelId)
Observer a channel.

Once observed, all OortComet instances subscribe to the channel and will repeat any messages published to the local channel (with loop prevention), so that the messages are distributed to all Oort comet servers.

Parameters:
channelId -

isOort

public boolean isOort(ServerSession session)

isOort

public boolean isOort(LocalSession session)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

oortHandshook

protected void oortHandshook(java.lang.String oortUrl,
                             java.lang.String oortSecret,
                             java.lang.String clientId)
Called to register the details of a successful handshake with an Oort comet. A RemoteOortClientListener instance is added to the local Oort client instance.

Parameters:
oortUrl -
oortSecret -
clientId -


Copyright © 2010 Dojo Foundation. All Rights Reserved.