diff --git a/src/main/java/com/google/gwtorm/jdbc/JdbcExecutor.java b/src/main/java/com/google/gwtorm/jdbc/JdbcExecutor.java
index 52f870a..b310535 100644
--- a/src/main/java/com/google/gwtorm/jdbc/JdbcExecutor.java
+++ b/src/main/java/com/google/gwtorm/jdbc/JdbcExecutor.java
@@ -45,6 +45,7 @@
     }
   }
 
+  @Override
   public void close() {
     try {
       stmt.close();
diff --git a/src/main/java/com/google/gwtorm/server/Schema.java b/src/main/java/com/google/gwtorm/server/Schema.java
index b90ad03..2357a89 100644
--- a/src/main/java/com/google/gwtorm/server/Schema.java
+++ b/src/main/java/com/google/gwtorm/server/Schema.java
@@ -55,7 +55,7 @@
  * }
  * </pre>
  */
-public interface Schema {
+public interface Schema extends AutoCloseable {
   /** Commit a pending transaction. */
   public void commit() throws OrmException;
 
@@ -72,7 +72,7 @@
    * @param e executor to perform (or log) the statements.
    * @throws OrmException one or more objects could not be added to the schema.
    */
-  void updateSchema(StatementExecutor e) throws OrmException;
+  public void updateSchema(StatementExecutor e) throws OrmException;
 
   /**
    * Drop any unused columns, tables, or sequences.
@@ -82,15 +82,12 @@
    * @param e executor to perform (or log) the statements.
    * @throws OrmException one or more drops could not be completed.
    */
-  void pruneSchema(StatementExecutor e) throws OrmException;
+  public void pruneSchema(StatementExecutor e) throws OrmException;
 
-  /**
-   * @return access interface for each declared relation.
-   */
-  Access<?, ?>[] allRelations();
+  /** @return access interface for each declared relation. */
+  public Access<?, ?>[] allRelations();
 
-  /**
-   * Close the schema and release all resources.
-   */
-  void close();
+  /** Close the schema and release all resources. */
+  @Override
+  public void close();
 }
diff --git a/src/main/java/com/google/gwtorm/server/StatementExecutor.java b/src/main/java/com/google/gwtorm/server/StatementExecutor.java
index 048c439..a202d55 100644
--- a/src/main/java/com/google/gwtorm/server/StatementExecutor.java
+++ b/src/main/java/com/google/gwtorm/server/StatementExecutor.java
@@ -14,8 +14,10 @@
 
 package com.google.gwtorm.server;
 
-
 /** Executes statements against the schema. */
-public interface StatementExecutor {
+public interface StatementExecutor extends AutoCloseable {
   void execute(String sql) throws OrmException;
+
+  @Override
+  void close();
 }
