[jboss-cvs] JBossRemoting/src/main/org/jboss/remoting ...
Ron Sigal
ron_sigal at yahoo.com
Wed Jan 17 00:15:19 EST 2007
User: rsigal
Date: 07/01/17 00:15:19
Modified: src/main/org/jboss/remoting ServerInvoker.java
AbstractInvoker.java
Log:
JBREM-298: Added ability to create socket creation listener from class name.
Revision Changes Path
1.61 +27 -4 JBossRemoting/src/main/org/jboss/remoting/ServerInvoker.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ServerInvoker.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/ServerInvoker.java,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -b -r1.60 -r1.61
--- ServerInvoker.java 17 Jan 2007 02:58:20 -0000 1.60
+++ ServerInvoker.java 17 Jan 2007 05:15:19 -0000 1.61
@@ -65,7 +65,7 @@
*
* @author <a href="mailto:jhaynie at vocalocity.net">Jeff Haynie</a>
* @author <a href="mailto:tom.elrod at jboss.com">Tom Elrod</a>
- * @version $Revision: 1.60 $
+ * @version $Revision: 1.61 $
*/
public abstract class ServerInvoker extends AbstractInvoker implements ServerInvokerMBean
{
@@ -524,10 +524,33 @@
return ssf;
Object o = config.get(Remoting.SOCKET_CREATION_SERVER_LISTENER);
- if (o != null && o instanceof SocketCreationListener)
- return new CreationListenerServerSocketFactory(ssf, (SocketCreationListener) o);
+ if (o == null)
return ssf;
+
+ if (o instanceof SocketCreationListener)
+ {
+ return new CreationListenerServerSocketFactory(ssf, (SocketCreationListener) o);
+ }
+ else if (o instanceof String)
+ {
+ try
+ {
+ Class c = ClassLoaderUtility.loadClass((String) o, ServerInvoker.class);
+ SocketCreationListener listener = (SocketCreationListener) c.newInstance();
+ return new CreationListenerServerSocketFactory(ssf, listener);
+ }
+ catch (Exception e)
+ {
+ log.error("unable to instantiate class: " + o, e);
+ return ssf;
+ }
+ }
+ else
+ {
+ log.error("unrecognized type for socket creation server listener: " + o);
+ return ssf;
+ }
}
1.19 +26 -5 JBossRemoting/src/main/org/jboss/remoting/AbstractInvoker.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: AbstractInvoker.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/AbstractInvoker.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- AbstractInvoker.java 17 Jan 2007 02:55:03 -0000 1.18
+++ AbstractInvoker.java 17 Jan 2007 05:15:19 -0000 1.19
@@ -51,11 +51,11 @@
*
* @author <a href="mailto:jhaynie at vocalocity.net">Jeff Haynie</a>
* @author <a href="mailto:telrod at e2technologies.net">Tom Elrod</a>
- * @version $Revision: 1.18 $
+ * @version $Revision: 1.19 $
*/
public abstract class AbstractInvoker implements Invoker
{
- protected final Logger log = Logger.getLogger(getClass());
+ protected final static Logger log = Logger.getLogger(AbstractInvoker.class);
protected ClassByteClassLoader classbyteloader;
protected InvokerLocator locator;
protected Map localServerLocators = new HashMap();
@@ -319,14 +319,35 @@
return socketFactory;
Object o = config.get(Remoting.SOCKET_CREATION_CLIENT_LISTENER);
- if (o != null && o instanceof SocketCreationListener)
+
+ if (o == null)
+ return socketFactory;
+
+ if (o instanceof SocketCreationListener)
{
SocketCreationListener listener = (SocketCreationListener) o;
return new CreationListenerSocketFactory(socketFactory, listener);
}
-
+ else if (o instanceof String)
+ {
+ try
+ {
+ Class c = ClassLoaderUtility.loadClass((String) o, AbstractInvoker.class);
+ SocketCreationListener listener = (SocketCreationListener) c.newInstance();
+ return new CreationListenerSocketFactory(socketFactory, listener);
+ }
+ catch (Exception e)
+ {
+ log.error("unable to instantiate class: " + o, e);
+ return socketFactory;
+ }
+ }
+ else
+ {
+ log.error("unrecognized type for socket creation client listener: " + o);
return socketFactory;
}
+ }
static public boolean isCompleteSocketFactory(SocketFactory sf)
More information about the jboss-cvs-commits
mailing list