[Jboss-cvs] JBossAS SVN: r56515 - branches/JBoss_4_0_0_Case10829/naming/src/main/org/jnp/interfaces

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Sep 1 20:27:28 EDT 2006


Author: scott.stark at jboss.org
Date: 2006-09-01 20:27:27 -0400 (Fri, 01 Sep 2006)
New Revision: 56515

Removed:
   branches/JBoss_4_0_0_Case10829/naming/src/main/org/jnp/interfaces/NamingContextFactory2.java
Log:
Remove the java5 based factory

Deleted: branches/JBoss_4_0_0_Case10829/naming/src/main/org/jnp/interfaces/NamingContextFactory2.java
===================================================================
--- branches/JBoss_4_0_0_Case10829/naming/src/main/org/jnp/interfaces/NamingContextFactory2.java	2006-09-01 23:58:37 UTC (rev 56514)
+++ branches/JBoss_4_0_0_Case10829/naming/src/main/org/jnp/interfaces/NamingContextFactory2.java	2006-09-02 00:27:27 UTC (rev 56515)
@@ -1,159 +0,0 @@
-package org.jnp.interfaces;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Hashtable;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import javax.naming.CommunicationException;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-import javax.naming.spi.InitialContextFactory;
-
-import org.jboss.logging.Logger;
-import org.jnp.interfaces.NamingContext;
-
-/**
- * An initial context factory that overrides the default NamingContext with a
- * TimedLookupContext.
- * 
- * @author Scott.Stark at jboss.org
- * @version $Revision:$
- */
-public class NamingContextFactory2 implements InitialContextFactory
-{
-   static Logger log = Logger.getLogger(NamingContextFactory2.class);
-   static final String TIMEOUT_NAME = "jnp.timeout";
-   static ExecutorService lookupPool = Executors.newCachedThreadPool();
-
-   /**
-    * Create a TimedLookupContext that overrides the lookup to execute it in
-    * a thread, retrying if a response it not in in jnp.timeout milliseconds.
-    */
-   public Context getInitialContext(Hashtable env)
-      throws NamingException
-   {
-      String providerURL = (String) env.get(Context.PROVIDER_URL);
-      String[] serverInfo = {};
-      if( providerURL != null )
-      {
-          serverInfo = providerURL.split(",");
-      }
-      return new TimedLookupContext(env, null, serverInfo);
-   }
-
-   /**
-    * Override the NamingContext.lookup method
-    * 
-    * @author Scott.Stark at jboss.org
-    * @version $Revision:$
-    */
-   static class TimedLookupContext extends NamingContext
-   {
-      private static final long serialVersionUID = 1L;
-
-      // Timeout to wait for a connection, 10 seconds is default
-      private int timeout = 10*1000;
-      private ArrayList<String> serverInfo;
-      private boolean trace = log.isTraceEnabled();
-
-      public TimedLookupContext(Hashtable env, Name prefix, String[] servers)
-         throws NamingException
-      {
-         super(env, prefix, null);
-         String to = (String) env.get(TIMEOUT_NAME);
-         this.serverInfo = new ArrayList<String>();
-         this.serverInfo.addAll(Arrays.asList(servers));
-         Collections.shuffle(this.serverInfo);
-         if( to != null )
-         {
-            timeout = Integer.parseInt(to);
-         }
-         if( trace )
-            log.trace("Created TimedLookupContext, timeout: "+timeout+", servers: "+serverInfo);
-      }
-
-      @Override
-      public Object lookup(final Name name) throws NamingException
-      {
-         Object lookup = null;
-         if( trace )
-            log.trace("Begin lookup, name="+name);
-         for(String server : serverInfo)
-         {
-            CallLookup call = new CallLookup(server, name);
-            Future<Object> result = lookupPool.submit(call);
-            try
-            {
-               lookup = result.get(timeout, TimeUnit.MILLISECONDS);
-               return lookup;
-            }
-            catch(TimeoutException t)
-            {
-               if( trace )
-                  log.trace("Lookup timed out for server: "+server);
-            }
-            catch(InterruptedException e)
-            {
-               // Treat as retryable
-               if( trace )
-                  log.trace("Continuing after interrupt", e);
-               continue;
-            }
-            catch(ExecutionException e)
-            {
-               Throwable t = e.getCause();
-               if( trace )
-                  log.trace("Saw exception during lookup, e="+t.getMessage());
-               if( t instanceof CommunicationException )
-               {
-                  if( trace )
-                     log.trace("Continuing after CommunicationException", e);
-                  continue;
-               }
-               else if( t instanceof NamingException )
-                  throw (NamingException) t;
-               else
-               {
-                  NamingException ne = new NamingException("Unexpected failure on lookup of: "+name);
-                  ne.setRootCause(t);
-                  throw ne;
-               }
-            }
-         }
-         if( trace )
-            log.trace("End lookup, name="+name);
-         CommunicationException ce = new CommunicationException("Failed to resolve lookup for servers: "+Arrays.asList(serverInfo));
-         ce.setRemainingName(name);
-         throw ce;
-      }
-
-      class CallLookup implements Callable<Object>
-      {
-         private String serverInfo;
-         private Name name;
-         CallLookup(String serverInfo, Name name)
-         {
-            this.serverInfo = serverInfo;
-            this.name = name;
-         }
-         public Object call() throws Exception
-         {
-            Hashtable callEnv = (Hashtable) env.clone();
-            callEnv.put(Context.PROVIDER_URL, serverInfo);
-            if( trace )
-               log.trace("Performing lookup against: "+serverInfo);
-            NamingContext ctx = new NamingContext(callEnv, null, null);
-            return ctx.lookup(name);
-         }
-      }
-   }
-}




More information about the jboss-cvs-commits mailing list