-
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / DatabaseTypeEnum.java
index 44cb1558dc399d96d7f71e81bb0e2b4012e43470..90f702469928c229327f8f98f5e180864ebc4a95 100644 (file)
@@ -12,8 +12,9 @@ package eu.etaxonomy.cdm.database;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
+import javax.sql.DataSource;\r
+\r
 import org.apache.log4j.Logger;\r
-import org.springframework.jdbc.datasource.DriverManagerDataSource;\r
 \r
 import eu.etaxonomy.cdm.database.types.H2DatabaseType;\r
 import eu.etaxonomy.cdm.database.types.HSqlDbDatabaseType;\r
@@ -23,7 +24,6 @@ import eu.etaxonomy.cdm.database.types.OdbcDatabaseType;
 import eu.etaxonomy.cdm.database.types.OracleDatabaseType;\r
 import eu.etaxonomy.cdm.database.types.PostgreSQLDatabaseType;\r
 import eu.etaxonomy.cdm.database.types.SqlServer2005DatabaseType;\r
-import eu.etaxonomy.cdm.database.types.SqlServer2000DatabaseType;\r
 import eu.etaxonomy.cdm.database.types.SybaseDatabaseType;\r
 \r
 /**\r
@@ -36,12 +36,33 @@ public enum DatabaseTypeEnum {
        ODBC(3),\r
        PostgreSQL(4),\r
        Oracle(5),\r
-       SqlServer2000(6),\r
+       //SqlServer2000(6),\r
        SqlServer2005(7),\r
        Sybase(8),\r
        H2(9)\r
        ;\r
 \r
+       /**\r
+        * \r
+        */\r
+       private static final String P6SPY_DRIVER_CLASS_NAME = "com.p6spy.engine.spy.P6SpyDriver";\r
+       private boolean useP6Spy = false;\r
+       \r
+       \r
+       /**\r
+        * @return the useP6Spy\r
+        */\r
+       public boolean isUseP6Spy() {\r
+               return useP6Spy;\r
+       }\r
+\r
+       /**\r
+        * @param useP6Spy the useP6Spy to set\r
+        */\r
+       public void setUseP6Spy(boolean useP6Spy) {\r
+               this.useP6Spy = useP6Spy;\r
+       }\r
+\r
        /**\r
         * Constructor\r
         * @param i\r
@@ -59,8 +80,8 @@ public enum DatabaseTypeEnum {
                this.dbType = new PostgreSQLDatabaseType(); break;\r
                case 5:\r
                this.dbType = new OracleDatabaseType(); break;\r
-            case 6:\r
-               this.dbType = new SqlServer2000DatabaseType(); break;\r
+//            case 6:\r
+//             this.dbType = new SqlServer2000DatabaseType(); break;\r
             case 7:\r
                this.dbType = new SqlServer2005DatabaseType(); break;\r
             case 8:\r
@@ -92,15 +113,20 @@ public enum DatabaseTypeEnum {
         * @return\r
         */\r
        public String getDriverClassName(){\r
-               return dbType.getClassString();\r
+               if(useP6Spy){\r
+                       return P6SPY_DRIVER_CLASS_NAME;\r
+                       \r
+               } else {\r
+                       return dbType.getClassString();                 \r
+               }\r
        }\r
     \r
        /**\r
-        * Returns the DriverManagerDataSource class that that the datasource needs to create a spring bean\r
-        * @return the DriverManagerDataSource class\r
+        * Returns the DataSource class that that the datasource needs to create a spring bean\r
+        * @return the DataSource class\r
         */\r
-       public Class<? extends DriverManagerDataSource> getDriverManagerDataSourceClass(){\r
-               return dbType.getDriverManagerDataSourceClass();\r
+       public Class<? extends DataSource> getDataSourceClass(){\r
+               return dbType.getDataSourceClass();\r
        }\r
        \r
        /**\r