extensions/solr/src/main/java/org/sakaiproject/nakamura/solr/ContentEventListener.java
public void handleEvent(Event event) {
		String topic = event.getTopic();
		LOGGER.debug("Got Event {} {} ", event, handlers);
		Collection<IndexingHandler> contentIndexHandler = handlers.get(topic);
		if (contentIndexHandler != null && contentIndexHandler.size() > 0) {
			try {
				int ttl = Utils.toInt(event.getProperty(TopicIndexer.TTL),
						Integer.MAX_VALUE);
				for ( IndexingHandler indexingHandler : contentIndexHandler ) {
					if ( indexingHandler instanceof QoSIndexHandler ) {
						ttl = Math.min(ttl, Utils.defaultMax(((QoSIndexHandler)indexingHandler).getTtl(event)));
					}
				}
				QueueManager q = null;
				// queues is ordered by ascending ttl, so the fastest queue is queues[0],
				// if the ttl is less that that, we can't satisfy it, so we will put it
				// in the fastest queue
				if ( ttl < queues[0].batchDelay ) {
					LOGGER.warn("Unable to satisfy TTL of {} on event {}, posting to the highest priority queue. " +
							"If this message is logged a lot please adjust the queues or change the event ttl to something that can be satisfied. " +
							"Filling the highest priority queue is counter productive. ",
							ttl, event);
					queues[0].saveEvent(event);					
				} else {
					for (QueueManager qm : queues) {
						if (ttl < qm.batchDelay) {
							q.saveEvent(event);
							q = null;
							break;
						}
						q = qm;
					}
					if (q != null) {
						q.saveEvent(event);
					}
				}
			} catch (IOException e) {
				LOGGER.warn(e.getMessage(), e);
			}
		}
	}
public void handleEvent(Event event) {
		String topic = event.getTopic();
		LOGGER.debug("Got Event {} {} ", event, handlers);
		Collection<IndexingHandler> contentIndexHandler = handlers.get(topic);
		if (contentIndexHandler != null && contentIndexHandler.size() > 0) {
			try {
				int ttl = Utils.toInt(event.getProperty(TopicIndexer.TTL),
						Integer.MAX_VALUE);
				for ( IndexingHandler indexingHandler : contentIndexHandler ) {
					if ( indexingHandler instanceof QoSIndexHandler ) {
						ttl = Math.min(ttl, Utils.defaultMax(((QoSIndexHandler)indexingHandler).getTtl(event)));
					}
				}
				QueueManager q = null;
				// queues is ordered by ascending ttl, so the fastest queue is queues[0],
				// if the ttl is less that that, we can't satisfy it, so we will put it
				// in the fastest queue
				if ( ttl < queues[0].batchDelay ) {
					LOGGER.warn("Unable to satisfy TTL of {} on event {}, posting to the highest priority queue. " +
							"If this message is logged a lot please adjust the queues or change the event ttl to something that can be satisfied. " +
							"Filling the highest priority queue is counter productive. ",
							ttl, event);
					queues[0].saveEvent(event);					
				} else {
					for (QueueManager qm : queues) {
						if (ttl < qm.batchDelay) {
							q.saveEvent(event);
							q = null;
							break;
						}
						q = qm;
					}
					if (q != null) {
						q.saveEvent(event);
					}
				}
			} catch (IOException e) {
				LOGGER.warn(e.getMessage(), e);
			}
		}
	}
public void handleEvent ( Event event ) { String topic = event . getTopic ( ) ; LOGGER . debug ( "Got Event {} {} " , event , handlers ) ; Collection < IndexingHandler > contentIndexHandler = handlers . get ( topic ) ; if ( contentIndexHandler != null && contentIndexHandler . size ( ) > 0 ) { try { int ttl = Utils . toInt ( event . getProperty ( TopicIndexer . TTL ) , Integer . MAX_VALUE ) ; for ( IndexingHandler indexingHandler : contentIndexHandler ) { if ( indexingHandler instanceof QoSIndexHandler ) { ttl = Math . min ( ttl , Utils . defaultMax ( ( ( QoSIndexHandler ) indexingHandler ) . getTtl ( event ) ) ) ; } } QueueManager q = null ; // queues is ordered by ascending ttl, so the fastest queue is queues[0], // if the ttl is less that that, we can't satisfy it, so we will put it // in the fastest queue if ( ttl < queues [ 0 ] . batchDelay ) { LOGGER . warn ( "Unable to satisfy TTL of {} on event {}, posting to the highest priority queue. " + "If this message is logged a lot please adjust the queues or change the event ttl to something that can be satisfied. " + "Filling the highest priority queue is counter productive. " , ttl , event ) ; queues [ 0 ] . saveEvent ( event ) ; } else { for ( QueueManager qm : queues ) { if ( ttl < qm . batchDelay ) { q . saveEvent ( event ) ; q = null ; break ; } q = qm ; } if ( q != null ) { q . saveEvent ( event ) ; } } } catch ( IOException e ) { LOGGER . warn ( e . getMessage ( ) , e ) ; } } }
Handles an event from OSGi and places it in the appropriate queue.
@see org.osgi.service.event.EventHandler#handleEvent(org.osgi.service.event.Event)
Handles an event from OSGi and places it in the appropriate queue .