Przeglądaj źródła

HADOOP-4467. SerializationFactory now uses the current context ClassLoader allowing for user supplied Serialization instances. Contributed by Chris Wensel.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/trunk@707258 13f79535-47bb-0310-9956-ffa450edef68
Arun Murthy 16 lat temu
rodzic
commit
53e663d74a

+ 4 - 0
CHANGES.txt

@@ -1052,6 +1052,10 @@ Release 0.18.2 - Unreleased
     HADOOP-3914. DFSClient sends Checksum Ok only once for a block. 
     (Christain Kunz via hairong)
  
+    HADOOP-4467. SerializationFactory now uses the current context ClassLoader
+    allowing for user supplied Serialization instances. (Chris Wensel via
+    acmurthy)
+ 
 Release 0.18.1 - 2008-09-17
 
   IMPROVEMENTS

+ 3 - 3
src/core/org/apache/hadoop/io/serializer/SerializationFactory.java

@@ -51,16 +51,16 @@ public class SerializationFactory extends Configured {
     super(conf);
     for (String serializerName : conf.getStrings("io.serializations", 
       new String[]{"org.apache.hadoop.io.serializer.WritableSerialization"})) {
-      add(serializerName);
+      add(conf, serializerName);
     }
   }
   
   @SuppressWarnings("unchecked")
-  private void add(String serializationName) {
+  private void add(Configuration conf, String serializationName) {
     try {
       
       Class<? extends Serialization> serializionClass =
-        (Class<? extends Serialization>) Class.forName(serializationName);
+        (Class<? extends Serialization>) conf.getClassByName(serializationName);
       serializations.add((Serialization)
           ReflectionUtils.newInstance(serializionClass, getConf()));
     } catch (ClassNotFoundException e) {