From 22e401b056b6311fe88929b810c7ab7c3d941b26 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 21 Jan 2010 14:56:10 +0000
Subject: [PATCH] Hide LB classes for now and expose only constructors via Connections class.

---
 sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java |   52 ++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 40 insertions(+), 12 deletions(-)

diff --git a/sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java b/sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java
index 5794506..40d3717 100644
--- a/sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java
+++ b/sdk/src/org/opends/sdk/LoadBalancingConnectionFactory.java
@@ -1,20 +1,44 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Copyright 2010 Sun Microsystems, Inc.
+ */
+
 package org.opends.sdk;
 
 
 
-import com.sun.opends.sdk.util.Validator;
 import com.sun.opends.sdk.util.AbstractFutureResult;
-
-import org.opends.sdk.responses.Responses;
+import com.sun.opends.sdk.util.Validator;
 
 
 
 /**
- * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time:
- * 3:23:52 PM To change this template use File | Settings | File
- * Templates.
+ * A load balancing connection factory allocates connections using the
+ * provided algorithm.
  */
-public class LoadBalancingConnectionFactory extends
+final class LoadBalancingConnectionFactory extends
     AbstractConnectionFactory
 {
   private final LoadBalancingAlgorithm algorithm;
@@ -32,8 +56,13 @@
   public FutureResult<AsynchronousConnection> getAsynchronousConnection(
       ResultHandler<AsynchronousConnection> resultHandler)
   {
-    ConnectionFactory factory = algorithm.getNextConnectionFactory();
-    if (factory == null)
+    ConnectionFactory factory;
+
+    try
+    {
+      factory = algorithm.getNextConnectionFactory();
+    }
+    catch (ErrorResultException e)
     {
       AbstractFutureResult<AsynchronousConnection> future = new AbstractFutureResult<AsynchronousConnection>(
           resultHandler)
@@ -43,9 +72,8 @@
           return -1;
         }
       };
-      future.handleErrorResult(new ErrorResultException(Responses
-          .newResult(ResultCode.CLIENT_SIDE_CONNECT_ERROR)
-          .setDiagnosticMessage("No connection factories available")));
+
+      future.handleErrorResult(e);
       return future;
     }
 

--
Gitblit v1.10.0