[OPENJPA-2640] Applying provided patch

git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@1743607 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
index 71f97af..7f36978 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/JDBCBrokerFactory.java
@@ -144,7 +144,7 @@
 
         String props = Configurations.getProperties(action);
         action = Configurations.getClassName(action);
-        MappingTool tool = new MappingTool(conf, action, false);
+        MappingTool tool = new MappingTool(conf, action, false, loader);
         Configurations.configureInstance(tool, conf, props,
             "SynchronizeMappings");
 
diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java
index aa2992f..8f176d9 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java
@@ -109,6 +109,7 @@
     private final String _action;
     private final boolean _meta;
     private final int _mode;
+    private final ClassLoader _loader;
     private final DBDictionary _dict;
 
     private MappingRepository _repos = null;
@@ -136,6 +137,13 @@
      * Constructor. Supply configuration and action.
      */
     public MappingTool(JDBCConfiguration conf, String action, boolean meta) {
+        this(conf, action, meta, null);
+    }
+
+    /**
+     * Constructor. Supply configuration and action.
+     */
+    public MappingTool(JDBCConfiguration conf, String action, boolean meta, ClassLoader loader) {
         _conf = conf;
         _log = conf.getLog(JDBCConfiguration.LOG_METADATA);
         _meta = meta;
@@ -154,6 +162,8 @@
         else
             _mode = MODE_MAPPING;
 
+        _loader = loader;
+        
         _dict = _conf.getDBDictionaryInstance();
     }
 
@@ -627,7 +637,7 @@
         for (int i = 0; i < fmds.length; i++) {
             smd = fmds[i].getValueSequenceMetaData();
             if (smd != null) {
-                seq = smd.getInstance(null);
+                seq = smd.getInstance(_loader);
                 if (seq instanceof JDBCSeq)
                     ((JDBCSeq) seq).addSchema(mapping, group);
             } else if (fmds[i].getEmbeddedMapping() != null)
@@ -936,7 +946,7 @@
             public boolean run(Options opts) throws IOException, SQLException {
                 JDBCConfiguration conf = new JDBCConfigurationImpl();
                 try {
-                    return MappingTool.run(conf, args, opts);
+                    return MappingTool.run(conf, args, opts, null);
                 } finally {
                     conf.close();
                 }
@@ -955,7 +965,7 @@
      * @see #main
      */
     public static boolean run(JDBCConfiguration conf, String[] args,
-        Options opts)
+        Options opts, ClassLoader loader)
         throws IOException, SQLException {
         // flags
         Flags flags = new Flags();
@@ -991,8 +1001,6 @@
             opts.setProperty("schemas", schemas);
 
         Configurations.populateConfiguration(conf, opts);
-        ClassLoader loader = conf.getClassResolverInstance().
-            getClassLoader(MappingTool.class, null);
         if (flags.meta && ACTION_ADD.equals(flags.action))
             flags.metaDataFile = Files.getFile(fileName, loader);
         else
@@ -1066,7 +1074,7 @@
 
         MappingTool tool;
         try {
-            tool = new MappingTool(conf, flags.action, flags.meta);
+            tool = new MappingTool(conf, flags.action, flags.meta, loader);
         } catch (IllegalArgumentException iae) {
             return false;
         }
diff --git a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/AbstractOpenJpaMappingToolMojo.java b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/AbstractOpenJpaMappingToolMojo.java
index 2d17a6d..ceca525 100644
--- a/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/AbstractOpenJpaMappingToolMojo.java
+++ b/openjpa-tools/openjpa-maven-plugin/src/main/java/org/apache/openjpa/tools/maven/AbstractOpenJpaMappingToolMojo.java
@@ -104,7 +104,7 @@
                     public boolean run(Options opts) throws IOException, SQLException {
                         JDBCConfiguration conf = new JDBCConfigurationImpl();
                         try {
-                            return MappingTool.run(conf, args, opts);
+                            return MappingTool.run(conf, args, opts, Thread.currentThread().getContextClassLoader());
                         } finally {
                             conf.close();
                         }