JPA 2.1 updates. Amendments to draft 11
diff --git a/src/javax/persistence/EntityManager.java b/src/javax/persistence/EntityManager.java
index a853e11..647bdf2 100644
--- a/src/javax/persistence/EntityManager.java
+++ b/src/javax/persistence/EntityManager.java
@@ -79,42 +79,6 @@
      *         <code>PersistenceContextType.TRANSACTION</code>
      */    
     public <T> T merge(T entity);
-    
-    /**
-     * Merge the state of the given entity into the current
-     * persistence context using the EntityGraph as a template for
-     * applying the merge operation.
-     * @param entity  entity instance
-     * @param entityGraph   the entity graph template to be used for the
-     *        merge operation
-     * @param properties  provider-specific hints.  If an implementation
-     *        does not recognize a hint, it must be ignored.
-     * @return the managed instance that the state was merged to
-     * @throws IllegalArgumentException  if the instance is not an entity, 
-     *         is a removed entity
-     * @throws TransactionRequiredException if there is no transaction 
-     *         when invoked on a container-managed entity manager that 
-     *         is of type <code>PersistenceContextType.TRANSACTION</code>
-     * @since Java Persistence 2.1
-     */
-    public <T> T merge(T entity, EntityGraph<? super T>  entityGraph, Map<String, Object> properties);
-
-    /**
-     * Copy the provided entity graph using the EntityGraph argument
-     * as a template to specify the attributes that will be copied.
-     * Attributes not included in the EntityGraph argument will not be
-     * copied.
-     * @param entity entity instance
-     * @param entityGraph   the entity graph template to be used for
-     *        the copy operation
-     * @param properties  provider-specific hints.  If an implementation
-     *        does not recognize a hint, it must be ignored.
-     * @return copy of the entity
-     * @throws IllegalArgumentException   if the instance is not an entity 
-     *
-     * @since Java Persistence 2.1
-     */
-public <T> T copy(T entity, EntityGraph<? super T> entityGraph, Map<String, Object> properties);
 
     /**
      * Remove the entity instance.
diff --git a/src/javax/persistence/NamedEntityGraph.java b/src/javax/persistence/NamedEntityGraph.java
index 6fd21d1..d2c7c2d 100644
--- a/src/javax/persistence/NamedEntityGraph.java
+++ b/src/javax/persistence/NamedEntityGraph.java
@@ -21,8 +21,7 @@
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /**
- * Used to specify the path and boundaries for an operation (merge, copy,
- * find) or query.
+ * Used to specify the path and boundaries for a find operation or query.
  *
  * @since Java Persistence 2.1
  */
diff --git a/src/javax/persistence/Persistence.java b/src/javax/persistence/Persistence.java
index 74bdfb8..9062eb6 100644
--- a/src/javax/persistence/Persistence.java
+++ b/src/javax/persistence/Persistence.java
@@ -107,9 +107,18 @@
      * @since Java Persistence 2.1
      */
     public static void generateSchema(String persistenceUnitName, Map map) {
-
+        PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver();
+        List<PersistenceProvider> providers = resolver.getPersistenceProviders();
+        
+        for (PersistenceProvider provider : providers) {
+            if (provider.generateSchema(persistenceUnitName, map)) {
+                return;
+            }
+        }
+        
+        throw new PersistenceException("No Persistence provider to generate schema named " + persistenceUnitName);
     }
-
+    
 
     /**
      * Return the PersistenceUtil instance