in hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/ContextSerializerFactory.java [356:411]
private void init() {
if (_parent != null) {
_serializerFiles.addAll(_parent._serializerFiles);
_deserializerFiles.addAll(_parent._deserializerFiles);
_serializerClassMap.putAll(_parent._serializerClassMap);
_deserializerClassMap.putAll(_parent._deserializerClassMap);
}
if (_parent == null) {
_serializerClassMap.putAll(_staticSerializerMap);
_deserializerClassMap.putAll(_staticDeserializerMap);
_deserializerClassNameMap.putAll(_staticClassNameMap);
}
HashMap<Class, Class> classMap;
classMap = new HashMap<Class, Class>();
initSerializerFiles("META-INF/dubbo/hessian/serializers",
_serializerFiles,
classMap,
Serializer.class);
for (Map.Entry<Class, Class> entry : classMap.entrySet()) {
try {
Serializer ser = (Serializer) entry.getValue().newInstance();
if (entry.getKey().isInterface())
_serializerInterfaceMap.put(entry.getKey(), ser);
else
_serializerClassMap.put(entry.getKey().getName(), ser);
} catch (Exception e) {
throw new HessianException(e);
}
}
classMap = new HashMap<Class, Class>();
initSerializerFiles("META-INF/dubbo/hessian/deserializers",
_deserializerFiles,
classMap,
Deserializer.class);
for (Map.Entry<Class, Class> entry : classMap.entrySet()) {
try {
Deserializer ser = (Deserializer) entry.getValue().newInstance();
if (entry.getKey().isInterface())
_deserializerInterfaceMap.put(entry.getKey(), ser);
else {
_deserializerClassMap.put(entry.getKey().getName(), ser);
}
} catch (Exception e) {
throw new HessianException(e);
}
}
}