00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 package org.objectweb.joram.client.jms.admin;
00025
00026 import javax.naming.*;
00027
00028 import org.objectweb.joram.shared.JoramTracing;
00029 import org.objectweb.util.monolog.api.BasicLevel;
00030
00035 public class ObjectFactory implements javax.naming.spi.ObjectFactory {
00036
00038 public Object getObjectInstance(Object obj,
00039 Name name,
00040 Context ctx,
00041 java.util.Hashtable env) throws Exception {
00042 if (JoramTracing.dbgClient.isLoggable(BasicLevel.DEBUG))
00043 JoramTracing.dbgClient.log(BasicLevel.DEBUG,
00044 "ObjectFactory.getObjectInstance(" +
00045 obj + ',' + name + ',' +
00046 ctx + ',' + env + ')');
00047
00048 Reference ref = (Reference) obj;
00049 AdministeredObject ao = null;
00050 try {
00051 Class clazz = Class.forName(ref.getClassName());
00052 ao = (AdministeredObject) clazz.newInstance();
00053 ao.fromReference(ref);
00054 } catch (Exception exc) {
00055 if (JoramTracing.dbgClient.isLoggable(BasicLevel.ERROR))
00056 JoramTracing.dbgClient.log(BasicLevel.ERROR, "", exc);
00057 }
00058 return ao;
00059 }
00060 }