Author: sergiykarpenko
Date: 2011-01-24 04:42:28 -0500 (Mon, 24 Jan 2011)
New Revision: 3831
Modified:
core/trunk/exo.core.component.database/src/main/java/org/exoplatform/services/database/creator/DBConnectionInfo.java
core/trunk/exo.core.component.database/src/main/java/org/exoplatform/services/database/creator/DBCreator.java
Log:
EXOJCR-1148: additional properties support added to DBCreator configuration
Modified:
core/trunk/exo.core.component.database/src/main/java/org/exoplatform/services/database/creator/DBConnectionInfo.java
===================================================================
---
core/trunk/exo.core.component.database/src/main/java/org/exoplatform/services/database/creator/DBConnectionInfo.java 2011-01-21
16:36:06 UTC (rev 3830)
+++
core/trunk/exo.core.component.database/src/main/java/org/exoplatform/services/database/creator/DBConnectionInfo.java 2011-01-24
09:42:28 UTC (rev 3831)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.services.database.creator;
+import java.util.Map;
+
/**
* Class contains needed database connection information.
*
@@ -46,6 +48,8 @@
*/
private final String password;
+ private final Map<String, String> additionalProperties;
+
/**
* DBConnectionInfo constructor.
*
@@ -60,10 +64,31 @@
*/
public DBConnectionInfo(String driver, String url, String username, String password)
{
+ this(driver, url, username, password, null);
+ }
+
+ /**
+ * DBConnectionInfo constructor.
+ *
+ * @param driver
+ * driver class name
+ * @param url
+ * db connection url
+ * @param username
+ * db connection user name
+ * @param password
+ * user's password
+ * @param additionalProperties
+ * additonal connection properties
+ */
+ public DBConnectionInfo(String driver, String url, String username, String password,
+ Map<String, String> additionalProperties)
+ {
this.driver = driver;
this.url = url;
this.username = username;
this.password = password;
+ this.additionalProperties = additionalProperties;
}
/**
@@ -98,4 +123,8 @@
return password;
}
+ public Map<String, String> getAdditionalProperties()
+ {
+ return additionalProperties;
+ }
}
Modified:
core/trunk/exo.core.component.database/src/main/java/org/exoplatform/services/database/creator/DBCreator.java
===================================================================
---
core/trunk/exo.core.component.database/src/main/java/org/exoplatform/services/database/creator/DBCreator.java 2011-01-21
16:36:06 UTC (rev 3830)
+++
core/trunk/exo.core.component.database/src/main/java/org/exoplatform/services/database/creator/DBCreator.java 2011-01-24
09:42:28 UTC (rev 3831)
@@ -23,6 +23,7 @@
import org.exoplatform.container.configuration.ConfigurationException;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.PropertiesParam;
+import org.exoplatform.container.xml.Property;
import java.io.IOException;
import java.io.InputStream;
@@ -32,6 +33,9 @@
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
/**
* @author <a href="anatoliy.bazko(a)exoplatform.org">Anatoliy
Bazko</a>
@@ -96,6 +100,11 @@
protected final String dbPassword;
/**
+ * Additional connection properties.
+ */
+ protected final Map<String, String> additionalProperties;
+
+ /**
* DBCreator constructor.
*
* @param params
@@ -137,6 +146,24 @@
}
this.internal_logon = prop.getProperty("internal_logon");
+
+ // Store additional properties into map
+ Iterator<Property> pit = prop.getPropertyIterator();
+
+ additionalProperties = new HashMap<String, String>();
+
+ while (pit.hasNext())
+ {
+ Property p = pit.next();
+ String name = p.getName();
+ if (name.equalsIgnoreCase("driverClassName") ||
name.equalsIgnoreCase("url")
+ || name.equalsIgnoreCase("username") ||
name.equalsIgnoreCase("password")
+ || name.equalsIgnoreCase("internal_logon"))
+ {
+ continue;
+ }
+ additionalProperties.put(name, p.getValue());
+ }
}
else
{
@@ -380,7 +407,7 @@
dbUrl = dbUrl + (dbUrl.endsWith("/") ? "" : "/") +
dbName;
}
- return new DBConnectionInfo(driver, dbUrl, dbUserName, dbPassword);
+ return new DBConnectionInfo(driver, dbUrl, dbUserName, dbPassword,
additionalProperties);
}
/**
Show replies by date