def _topicmanager(self):
     """
 Returns the configured L{TopicManager} instance to use.
 Can be overridden by subclasses that wish to change out any topic mgr parameters.
 @rtype: L{TopicManager}
 """
     return TopicManager()
Beispiel #2
0
def server_from_config(config=None, server_class=None, additional_kwargs=None):
    """
    Gets a configured L{coilmq.server.StompServer} from specified config.

    If `config` is None, global L{coilmq.config.config} var will be used instead.

    The `server_class` and `additional_kwargs` are primarily hooks for using this method
    from a testing environment.

    @param config: A C{ConfigParser.ConfigParser} instance with loaded config values.
    @type config: C{ConfigParser.ConfigParser}

    @param server_class: Which class to use for the server.  (This doesn't come from config currently.)
    @type server_class: C{class}

    @param additional_kwargs: Any additional args that should be passed to class.
    @type additional_kwargs: C{list}

    @return: The configured StompServer.
    @rtype: L{coilmq.server.StompServer}
    """
    global global_config
    if not config:
        config = global_config

    queue_store_factory = resolve_name(config.get('coilmq', 'qstore.factory'))
    subscriber_scheduler_factory = resolve_name(
        config.get('coilmq', 'scheduler.subscriber_priority_factory'))
    queue_scheduler_factory = resolve_name(
        config.get('coilmq', 'scheduler.queue_priority_factory'))

    if config.has_option('coilmq', 'auth.factory'):
        authenticator_factory = resolve_name(
            config.get('coilmq', 'auth.factory'))
        authenticator = authenticator_factory()
    else:
        authenticator = None

    server = ThreadedStompServer(
        (config.get('coilmq',
                    'listen_addr'), config.getint('coilmq', 'listen_port')),
        queue_manager=QueueManager(
            store=queue_store_factory(),
            subscriber_scheduler=subscriber_scheduler_factory(),
            queue_scheduler=queue_scheduler_factory()),
        topic_manager=TopicManager(),
        authenticator=authenticator,
        protocol=STOMP11)
    logger.info("Created server:%r" % server)
    return server
Beispiel #3
0
 def setUp(self):
     self.tm = TopicManager()
     self.conn = MockConnection()