Update plexi

This pulls in backward incompatible API changes. It also pulls in group
feed support, which will be needed soon.
diff --git a/lib/plexi b/lib/plexi
index 91ffe47..272e144 160000
--- a/lib/plexi
+++ b/lib/plexi
@@ -1 +1 @@
-Subproject commit 91ffe473c30925fd45ddbfb6dd5c5fa917454f17
+Subproject commit 272e144e78ef5f3416daf77ece11a0e66f2b2f10
diff --git a/test/com/google/enterprise/adaptor/sharepoint/AccumulatingDocIdPusher.java b/test/com/google/enterprise/adaptor/sharepoint/AccumulatingDocIdPusher.java
index 3004d41..3e7d35c 100644
--- a/test/com/google/enterprise/adaptor/sharepoint/AccumulatingDocIdPusher.java
+++ b/test/com/google/enterprise/adaptor/sharepoint/AccumulatingDocIdPusher.java
@@ -16,25 +16,18 @@
 
 import com.google.enterprise.adaptor.Acl;
 import com.google.enterprise.adaptor.DocId;
-import com.google.enterprise.adaptor.DocIdPusher;
-import com.google.enterprise.adaptor.PushErrorHandler;
+import com.google.enterprise.adaptor.ExceptionHandler;
 
 import java.util.*;
 
-class AccumulatingDocIdPusher implements DocIdPusher {
+class AccumulatingDocIdPusher extends UnsupportedDocIdPusher {
   private List<Record> records = new ArrayList<Record>();
   private List<Map<DocId, Acl>> namedResouces
       = new ArrayList<Map<DocId, Acl>>();
 
   @Override
-  public DocId pushDocIds(Iterable<DocId> docIds)
-      throws InterruptedException {
-    return pushDocIds(docIds, null);
-  }
-
-  @Override
   public DocId pushDocIds(Iterable<DocId> docIds,
-                          PushErrorHandler handler)
+                          ExceptionHandler handler)
       throws InterruptedException {
     List<Record> records = new ArrayList<Record>();
     for (DocId docId : docIds) {
@@ -45,14 +38,8 @@
   }
 
   @Override
-  public Record pushRecords(Iterable<Record> records)
-      throws InterruptedException {
-    return pushRecords(records, null);
-  }
-
-  @Override
   public Record pushRecords(Iterable<Record> records,
-                            PushErrorHandler handler)
+                            ExceptionHandler handler)
       throws InterruptedException {
     for (Record record : records) {
       this.records.add(record);
@@ -81,7 +68,7 @@
 
   @Override
   public DocId pushNamedResources(Map<DocId, Acl> resources,
-                                  PushErrorHandler hanlder)
+                                  ExceptionHandler hanlder)
       throws InterruptedException {
     namedResouces.add(Collections.unmodifiableMap(
         new TreeMap<DocId, Acl>(resources)));
diff --git a/test/com/google/enterprise/adaptor/sharepoint/DelegatingDocIdPusher.java b/test/com/google/enterprise/adaptor/sharepoint/DelegatingDocIdPusher.java
index 3ae9d57..ade955b 100644
--- a/test/com/google/enterprise/adaptor/sharepoint/DelegatingDocIdPusher.java
+++ b/test/com/google/enterprise/adaptor/sharepoint/DelegatingDocIdPusher.java
@@ -17,7 +17,9 @@
 import com.google.enterprise.adaptor.Acl;
 import com.google.enterprise.adaptor.DocId;
 import com.google.enterprise.adaptor.DocIdPusher;
-import com.google.enterprise.adaptor.PushErrorHandler;
+import com.google.enterprise.adaptor.ExceptionHandler;
+import com.google.enterprise.adaptor.GroupPrincipal;
+import com.google.enterprise.adaptor.Principal;
 
 import java.util.*;
 
@@ -28,12 +30,12 @@
   @Override
   public DocId pushDocIds(Iterable<DocId> docIds)
       throws InterruptedException {
-    return delegate().pushDocIds(docIds, null);
+    return pushDocIds(docIds, null);
   }
 
   @Override
   public DocId pushDocIds(Iterable<DocId> docIds,
-                          PushErrorHandler handler)
+                          ExceptionHandler handler)
       throws InterruptedException {
     return delegate().pushDocIds(docIds, handler);
   }
@@ -41,12 +43,12 @@
   @Override
   public Record pushRecords(Iterable<Record> records)
       throws InterruptedException {
-    return delegate().pushRecords(records, null);
+    return pushRecords(records, null);
   }
 
   @Override
   public Record pushRecords(Iterable<Record> records,
-                            PushErrorHandler handler)
+                            ExceptionHandler handler)
       throws InterruptedException {
     return delegate().pushRecords(records, handler);
   }
@@ -54,13 +56,28 @@
   @Override
   public DocId pushNamedResources(Map<DocId, Acl> resources)
       throws InterruptedException {
-    return delegate().pushNamedResources(resources, null);
+    return pushNamedResources(resources, null);
   }
 
   @Override
   public DocId pushNamedResources(Map<DocId, Acl> resources,
-                                  PushErrorHandler handler)
+                                  ExceptionHandler handler)
       throws InterruptedException {
     return delegate().pushNamedResources(resources, handler);
   }
+
+  @Override
+  public GroupPrincipal pushGroupDefinitions(
+      Map<GroupPrincipal, ? extends Collection<Principal>> defs,
+      boolean caseSensitive) throws InterruptedException {
+    return pushGroupDefinitions(defs, caseSensitive, null);
+  }
+
+  @Override
+  public GroupPrincipal pushGroupDefinitions(
+      Map<GroupPrincipal, ? extends Collection<Principal>> defs,
+      boolean caseSensitive, ExceptionHandler handler)
+      throws InterruptedException {
+    return delegate().pushGroupDefinitions(defs, caseSensitive, handler);
+  }
 }
diff --git a/test/com/google/enterprise/adaptor/sharepoint/MockAdaptorContext.java b/test/com/google/enterprise/adaptor/sharepoint/MockAdaptorContext.java
index 53700e1..52d26a5 100644
--- a/test/com/google/enterprise/adaptor/sharepoint/MockAdaptorContext.java
+++ b/test/com/google/enterprise/adaptor/sharepoint/MockAdaptorContext.java
@@ -19,7 +19,7 @@
 import com.google.enterprise.adaptor.DocId;
 import com.google.enterprise.adaptor.DocIdEncoder;
 import com.google.enterprise.adaptor.DocIdPusher;
-import com.google.enterprise.adaptor.GetDocIdsErrorHandler;
+import com.google.enterprise.adaptor.ExceptionHandler;
 import com.google.enterprise.adaptor.SensitiveValueDecoder;
 import com.google.enterprise.adaptor.Session;
 import com.google.enterprise.adaptor.StatusSource;
@@ -91,7 +91,7 @@
   }
 
   @Override
-  public GetDocIdsErrorHandler getGetDocIdsFullErrorHandler() {
+  public ExceptionHandler getGetDocIdsFullErrorHandler() {
     throw new UnsupportedOperationException();
   }
 
@@ -106,7 +106,7 @@
   }
 
   @Override
-  public void setGetDocIdsFullErrorHandler(GetDocIdsErrorHandler handler) {
+  public void setGetDocIdsFullErrorHandler(ExceptionHandler handler) {
     throw new UnsupportedOperationException();
   }
 
@@ -121,12 +121,12 @@
   }
 
   @Override
-  public GetDocIdsErrorHandler getGetDocIdsIncrementalErrorHandler() {
+  public ExceptionHandler getGetDocIdsIncrementalErrorHandler() {
     throw new UnsupportedOperationException();
   }
 
   @Override
-  public void setGetDocIdsIncrementalErrorHandler(GetDocIdsErrorHandler h) {
+  public void setGetDocIdsIncrementalErrorHandler(ExceptionHandler h) {
     throw new UnsupportedOperationException();
   }
 }