From d29680ef6474edfae47f899e9b6998f1a0dd2555 Mon Sep 17 00:00:00 2001
From: Glenn Van Lint <glenn.vanlint@is4u.be>
Date: Mon, 15 Apr 2013 08:13:56 +0000
Subject: [PATCH] 

---
 opendj3/opendj-virtual/src/main/java/org/forgerock/opendj/virtual/JDBCConnectionFactory.java |   99 +++++++++++++++++++++++++------------------------
 1 files changed, 50 insertions(+), 49 deletions(-)

diff --git a/opendj3/opendj-virtual/src/main/java/org/forgerock/opendj/virtual/JDBCConnectionFactory.java b/opendj3/opendj-virtual/src/main/java/org/forgerock/opendj/virtual/JDBCConnectionFactory.java
index fe92dca..5a8498b 100644
--- a/opendj3/opendj-virtual/src/main/java/org/forgerock/opendj/virtual/JDBCConnectionFactory.java
+++ b/opendj3/opendj-virtual/src/main/java/org/forgerock/opendj/virtual/JDBCConnectionFactory.java
@@ -22,72 +22,73 @@
  *
  *
  *      Copyright 2009-2010 Sun Microsystems, Inc.
- *      Portions copyright 2011-2013 ForgeRock AS.
+ *      Portions copyright 2011-2012 ForgeRock AS.
  */
+
 package org.forgerock.opendj.virtual;
 
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
+
+import org.forgerock.opendj.ldap.Connection;
+import org.forgerock.opendj.ldap.ConnectionFactory;
+import org.forgerock.opendj.ldap.ErrorResultException;
+import org.forgerock.opendj.ldap.FutureResult;
+import org.forgerock.opendj.ldap.ResultHandler;
 
 /**
- * Create a JDBC driver instance which contains all the methods for
- * connection and commands to the database.
+ * Create a JDBC driver instance which contains all the methods for 
+ * connection to the database.
  */
-public class JDBCConnectionFactory {
 
-    private String driverName = "com.mysql.jdbc.Driver";
-    private Connection con = null;
-
-    public JDBCConnectionFactory() {
-            try {
-                    Class.forName(driverName);
-            } catch (ClassNotFoundException e) {
-                    System.out.println(e.toString());
-            }
-    }
-
-    /**
-     * Set up a JDBC connection using the defined parameters.
+public final class JDBCConnectionFactory implements ConnectionFactory {
+	private String ConnectionUrl = "";
+	private final String Host;
+	private final int Port;
+	private final String DbName;
+    private JDBCConnection jdbc;
+	
+	/**
+     * Set up a JDBC connection configuration.
      *
      * @param host
-     *            The host address of the database.
+     *            The hostname of the database to connect. 
      * @param port
-     *            The port used to connect to the database.
-     * @param databaseName
-     *            The name of the database to connect with.
+     * 			  The port used to connect to the database.
+     * @param dbName
+     *            The name of the database.
      * @param userName
      *            The username required for authentication to the database.
      * @param userPass
      * 			  The password required for authentication to the database.
-     * @return The created connection.
      */
-    public Connection createConnection(String host, String port, String databaseName, String userName, String userPass) {
-            try {
-                    String connectionUrl="jdbc:mysql://"
-		                    		.concat(host+":")
-		                    		.concat(port+"/")
-		                    		.concat(databaseName);
-                    con = DriverManager
-                                    .getConnection(connectionUrl,userName,userPass);
-                    System.out.println("Connection created.");
-                    } catch (SQLException e) {
-                    System.out.println(e.toString());
-            }
-            return con;
+    public JDBCConnectionFactory(final String host, final int port, final String dbName) {
+        this.Host = host;
+        this.Port = port;
+        this.DbName = dbName;
+        
+        this.ConnectionUrl="jdbc:mysql://"
+        		.concat(this.Host+":")
+        		.concat(this.Port+"/")
+        		.concat(this.DbName);
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Connection getConnection() throws ErrorResultException {
+    	if (this.jdbc == null){
+    		this.jdbc = new JDBCConnection(this.ConnectionUrl);
+    	}
+        	return this.jdbc;
     }
 
-    /**
-     * Close the open connection to the database.
-     */
-    public void closeConnection(){
-            try{
-                    this.con.close();
-            System.out.println("Connection terminated.");
-            }catch(Exception e){
-                    System.out.println(e.toString());
-            }
-    }
+	@Override
+	public FutureResult<Connection> getConnectionAsync(
+			ResultHandler<? super Connection> handler) {
+		//TODO
+		return null;
+	}
+	
 }
 
 

--
Gitblit v1.10.0