Index: src/edu/ucsb/nceas/metacat/dataone/hazelcast/HazelcastService.java
===================================================================
--- src/edu/ucsb/nceas/metacat/dataone/hazelcast/HazelcastService.java	(revision 7828)
+++ src/edu/ucsb/nceas/metacat/dataone/hazelcast/HazelcastService.java	(revision 7829)
@@ -62,6 +62,8 @@
 
 import edu.ucsb.nceas.metacat.IdentifierManager;
 import edu.ucsb.nceas.metacat.McdbDocNotFoundException;
+import edu.ucsb.nceas.metacat.common.index.event.IndexEvent;
+import edu.ucsb.nceas.metacat.index.IndexEventEntryListener;
 import edu.ucsb.nceas.metacat.properties.PropertyService;
 import edu.ucsb.nceas.metacat.shared.BaseService;
 import edu.ucsb.nceas.metacat.shared.ServiceException;
@@ -105,6 +107,10 @@
   /* The Hazelcast distributed index queue */
   private String hzIndexQueue;
   private ISet<SystemMetadata> indexQueue;
+  
+  /* The Hazelcast distributed index event map */
+  private String hzIndexEventMap;
+  private IMap<Identifier, IndexEvent> indexEventMap;
 
   private HazelcastInstance hzInstance;
       
@@ -194,10 +200,17 @@
       missingIdentifiers = this.hzInstance.getSet("hzMissingIdentifiersSet");
       
       missingIdentifiers.addItemListener(this, true);
-      
+
+      // for index tasks
       hzIndexQueue = PropertyService.getProperty("index.hazelcast.indexqueue");
       indexQueue = this.hzInstance.getSet(hzIndexQueue);
 
+      // for index events (failures)
+      hzIndexEventMap = PropertyService.getProperty("index.hazelcast.indexeventmap");
+      indexEventMap = this.hzInstance.getMap(hzIndexEventMap);
+      // TODO: move this where it can be switched off
+      indexEventMap.addEntryListener(new IndexEventEntryListener(), true);
+      
       // Listen for changes to the system metadata map
       systemMetadata.addEntryListener(this, true);
       
@@ -251,10 +264,17 @@
    */
   public ISet<SystemMetadata> getIndexQueue() {
       return indexQueue;
-      
   }
   
   /**
+   * Get the index event map
+   * @return indexEventMap - the hazelcast map of index events
+   */
+  public IMap<Identifier, IndexEvent> getIndexEventMap() {
+	  return indexEventMap;
+  }
+  
+  /**
    * When Metacat changes the underlying store, we need to refresh the
    * in-memory representation of it.
    * @param guid
Index: src/edu/ucsb/nceas/metacat/index/IndexEventEntryListener.java
===================================================================
--- src/edu/ucsb/nceas/metacat/index/IndexEventEntryListener.java	(nonexistent)
+++ src/edu/ucsb/nceas/metacat/index/IndexEventEntryListener.java	(revision 7829)
@@ -0,0 +1,93 @@
+package edu.ucsb.nceas.metacat.index;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.dataone.service.types.v1.Identifier;
+
+import com.hazelcast.core.EntryEvent;
+import com.hazelcast.core.EntryListener;
+import com.hazelcast.core.MapLoader;
+import com.hazelcast.core.MapStore;
+
+import edu.ucsb.nceas.metacat.common.index.event.IndexEvent;
+
+public class IndexEventEntryListener implements MapStore<Identifier, IndexEvent>, MapLoader<Identifier, IndexEvent>, EntryListener<Identifier, IndexEvent> {
+
+	
+	/**
+	 * The map store/loader methods
+	 */
+	
+	@Override
+	public IndexEvent load(Identifier arg0) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Map<Identifier, IndexEvent> loadAll(Collection<Identifier> arg0) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Set<Identifier> loadAllKeys() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void delete(Identifier arg0) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void deleteAll(Collection<Identifier> arg0) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void store(Identifier arg0, IndexEvent arg1) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void storeAll(Map<Identifier, IndexEvent> arg0) {
+		// TODO Auto-generated method stub
+		
+	}
+	
+	/**
+	 * The EntryListener methods below
+	 */
+
+	@Override
+	public void entryAdded(EntryEvent<Identifier, IndexEvent> arg0) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void entryEvicted(EntryEvent<Identifier, IndexEvent> arg0) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void entryRemoved(EntryEvent<Identifier, IndexEvent> arg0) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void entryUpdated(EntryEvent<Identifier, IndexEvent> arg0) {
+		// TODO Auto-generated method stub
+		
+	}
+
+}

Property changes on: src/edu/ucsb/nceas/metacat/index/IndexEventEntryListener.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Revision
\ No newline at end of property
