Author: aadamchik
Date: Sun May 21 12:29:14 2006
New Revision: 408465

URL: http://svn.apache.org/viewvc?rev=408465&view=rev
Log:
setting mavne profiles to support regression profiling on different dbs

Added:
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/AbstractCase.java
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/ConnectionProperties.java
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java
Removed:
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/AbstractCase.java
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/resources/regression-profile.driver.xml
Modified:
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/pom.xml
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java
    
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/resources/cayenne.xml

Modified: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/pom.xml?rev=408465&r1=408464&r2=408465&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/pom.xml
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/pom.xml
 Sun May 21 12:29:14 2006
@@ -4,17 +4,8 @@
   <artifactId>cayenne-regression-profiler</artifactId>
   <packaging>war</packaging>
   <name>Cayenne Regression Profiler Web Application</name>
-  <version>1.2-SNAPSHOT</version>
+  <version>1.1-SNAPSHOT</version>
   <url>http://incubator.apache.org/cayenne/</url>
-  
-  <repositories>
-               <repository>
-                       <id>objectstyle</id>
-                       <name>ObjectStyle Public Maven2 repo</name>
-                       <url>http://objectstyle.org/maven2</url>
-               </repository>
-  </repositories>
-  
   <build>
     <finalName>cayenne-regression-profiler</finalName>
     <plugins>
@@ -41,9 +32,6 @@
           </execution>
         </executions>
       </plugin>
-      <!-- before running , do this:
-           export MAVEN_OPTS="-Xms128M -Xmx128M"
-      -->
       <plugin>
         <groupId>org.mortbay.jetty</groupId>
         <artifactId>maven-jetty6-plugin</artifactId>
@@ -62,6 +50,61 @@
       </plugin>
     </plugins>
   </build>
+    <profiles>
+    <!-- Database profiles -->
+    <profile>
+      <id>default-db</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+        <property>
+               <name>cayenne.test.connection</name>
+               <value>internal_embedded_datasource</value>
+       </property>
+      </activation>
+      <dependencies>
+        <dependency>
+               <groupId>hsqldb</groupId>
+               <artifactId>hsqldb</artifactId>
+               <version>1.8.0.1</version>
+               <scope>runtime</scope>
+       </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>mysql</id>
+      <activation>
+       <property>
+               <name>cayenne.test.connection</name>
+               <value>mysql</value>
+       </property>
+      </activation>
+      <dependencies>
+        <dependency>
+               <groupId>mysql</groupId>
+               <artifactId>mysql-connector-java</artifactId>
+               <version>3.1.11</version>
+               <scope>runtime</scope>
+       </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>oracle</id>
+      <activation>
+      <property>
+       <name>cayenne.test.connection</name>
+       <value>oracle</value>
+      </property>
+      </activation>
+      <dependencies>
+        <dependency>
+                       <groupId>com.oracle</groupId>
+                       <artifactId>oracle-driver</artifactId>
+                       <version>10</version>
+                       <scope>runtime</scope>
+               </dependency>
+      </dependencies>
+    </profile>
+  </profiles>
   <dependencies>
     <dependency>
       <groupId>javax.servlet</groupId>
@@ -75,15 +118,9 @@
                <version>3.8.1</version>
        </dependency>
     <dependency>
-      <groupId>hsqldb</groupId>
-      <artifactId>hsqldb</artifactId>
-      <version>1.8.0.1</version>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
                        <groupId>org.objectstyle.cayenne</groupId>
                        <artifactId>cayenne</artifactId>
                        <version>1.1.4</version>
-               </dependency>
+       </dependency>
   </dependencies>
 </project>

Added: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/AbstractCase.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/AbstractCase.java?rev=408465&view=auto
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/AbstractCase.java
 (added)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/AbstractCase.java
 Sun May 21 12:29:14 2006
@@ -0,0 +1,53 @@
+/*
+ *  Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.cayenne.profile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import junit.framework.TestCase;
+
+import org.objectstyle.cayenne.access.DataContext;
+
+/**
+ * An noop profiling case.
+ * 
+ * @author Andrus Adamchik
+ */
+public class AbstractCase extends TestCase {
+
+    public void doGet(
+            DataContext context,
+            HttpServletRequest request,
+            HttpServletResponse response) {
+
+        doRequest(context, request, response);
+    }
+
+    public void doPost(
+            DataContext context,
+            HttpServletRequest request,
+            HttpServletResponse response) {
+        doRequest(context, request, response);
+    }
+
+    protected void doRequest(
+            DataContext context,
+            HttpServletRequest request,
+            HttpServletResponse response) {
+
+    }
+}

Added: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/ConnectionProperties.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/ConnectionProperties.java?rev=408465&view=auto
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/ConnectionProperties.java
 (added)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/ConnectionProperties.java
 Sun May 21 12:29:14 2006
@@ -0,0 +1,215 @@
+/*
+ *  Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.cayenne.profile;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections.ExtendedProperties;
+import org.apache.log4j.Logger;
+import org.objectstyle.cayenne.conn.DataSourceInfo;
+import org.objectstyle.cayenne.project.CayenneUserDir;
+
+/**
+ * Porting from 1.2 - this class was different in 1.1.4.
+ * 
+ * @author Andrus Adamchik
+ */
+public class ConnectionProperties {
+
+    static final Logger logObj = Logger.getLogger(ConnectionProperties.class);
+
+    public static final String EMBEDDED_DATASOURCE = 
"internal_embedded_datasource";
+    public static final String EMBEDDED_DATASOURCE_DBADAPTER = 
"org.objectstyle.cayenne.dba.hsqldb.HSQLDBAdapter";
+    public static final String EMBEDDED_DATASOURCE_USERNAME = "sa";
+    public static final String EMBEDDED_DATASOURCE_PASSWORD = "";
+    public static final String EMBEDDED_DATASOURCE_URL = 
"jdbc:hsqldb:mem:aname";
+    public static final String EMBEDDED_DATASOURCE_JDBC_DRIVER = 
"org.hsqldb.jdbcDriver";
+
+    public static final String PROPERTIES_FILE = "connection.properties";
+    public static final String ADAPTER_KEY = "cayenne.adapter";
+    public static final String USER_NAME_KEY = "jdbc.username";
+    public static final String PASSWORD_KEY = "jdbc.password";
+    public static final String URL_KEY = "jdbc.url";
+    public static final String DRIVER_KEY = "jdbc.driver";
+
+    protected static ConnectionProperties sharedInstance;
+    protected Map connectionInfos = Collections.synchronizedMap(new HashMap());
+
+    static {
+        sharedInstance = loadDefaultProperties();
+    }
+
+    /**
+     * Returns ConnectionProperties singleton.
+     */
+    public static ConnectionProperties getInstance() {
+        return sharedInstance;
+    }
+
+    /**
+     * Loads connection properties from $HOME/.cayenne/connection.properties.
+     */
+    protected static ConnectionProperties loadDefaultProperties() {
+        File f = CayenneUserDir.getInstance().resolveFile(PROPERTIES_FILE);
+
+        try {
+            if (f.exists()) {
+                return new ConnectionProperties(new ExtendedProperties(f
+                        .getAbsolutePath()));
+            }
+            else {
+                // lets touch this file so that users would get a clue of what 
it is
+                createSamplePropertiesFile(f);
+            }
+        }
+        catch (IOException e) {
+            logObj.warn("Error loading connection properties. Ignoring..", e);
+        }
+
+        return new ConnectionProperties(new ExtendedProperties());
+    }
+
+    protected static void createSamplePropertiesFile(File f) throws 
IOException {
+        BufferedWriter out = new BufferedWriter(new FileWriter(f));
+
+        try {
+            out.write("# Cayenne named connections configuration file.");
+            out.newLine();
+
+            out.write("#");
+            out.newLine();
+            out.write("# Sample named connections (named 'example1' and 
'example2'): ");
+            out.newLine();
+
+            out.write("#");
+            out.newLine();
+            out.write("# example1."
+                    + ADAPTER_KEY
+                    + " = org.objectstyle.cayenne.dba.mysql.MySQLAdapter");
+            out.newLine();
+            out.write("# example1." + USER_NAME_KEY + " = some_user");
+            out.newLine();
+            out.write("# example1." + PASSWORD_KEY + " = some_passwd");
+            out.newLine();
+            out.write("# example1." + URL_KEY + " = 
jdbc:mysql://noise/cayenne");
+            out.newLine();
+            out.write("# example1." + DRIVER_KEY + " = 
org.gjt.mm.mysql.Driver");
+            out.newLine();
+
+            // example 2
+            out.write("#");
+            out.newLine();
+            out.write("# example2."
+                    + ADAPTER_KEY
+                    + " = org.objectstyle.cayenne.dba.mysql.MySQLAdapter");
+            out.newLine();
+            out.write("# example2." + USER_NAME_KEY + " = some_user");
+            out.newLine();
+            out.write("# example2." + PASSWORD_KEY + " = some_passwd");
+            out.newLine();
+            out.write("# example2." + URL_KEY + " = 
jdbc:mysql://noise/cayenne");
+            out.newLine();
+            out.write("# example2." + DRIVER_KEY + " = 
org.gjt.mm.mysql.Driver");
+            out.newLine();
+        }
+        finally {
+            out.close();
+        }
+    }
+
+    /**
+     * Constructor for ConnectionProperties.
+     */
+    public ConnectionProperties(ExtendedProperties props) {
+        Iterator names = extractNames(props).iterator();
+        while (names.hasNext()) {
+            String name = (String) names.next();
+            DataSourceInfo dsi = buildDataSourceInfo(props.subset(name));
+            connectionInfos.put(name, dsi);
+        }
+    }
+
+    /**
+     * Returns DataSourceInfo object for a symbolic name. If name does not 
match an
+     * existing object, returns null.
+     */
+    public DataSourceInfo getConnectionInfo(String name) {
+
+        if (EMBEDDED_DATASOURCE.equals(name)) {
+            // Create embedded data source instead
+            DataSourceInfo connectionInfo = new DataSourceInfo();
+            connectionInfo.setAdapterClassName(EMBEDDED_DATASOURCE_DBADAPTER);
+            connectionInfo.setUserName(EMBEDDED_DATASOURCE_USERNAME);
+            connectionInfo.setPassword(EMBEDDED_DATASOURCE_PASSWORD);
+            connectionInfo.setDataSourceUrl(EMBEDDED_DATASOURCE_URL);
+            connectionInfo.setJdbcDriver(EMBEDDED_DATASOURCE_JDBC_DRIVER);
+            return connectionInfo;
+        }
+
+        synchronized (connectionInfos) {
+            return (DataSourceInfo) connectionInfos.get(name);
+        }
+    }
+
+    /**
+     * Creates a DataSourceInfo object from a set of properties.
+     */
+    protected DataSourceInfo buildDataSourceInfo(ExtendedProperties props) {
+        DataSourceInfo dsi = new DataSourceInfo();
+
+        dsi.setAdapterClassName(props.getString(ADAPTER_KEY));
+        dsi.setUserName(props.getString(USER_NAME_KEY));
+        dsi.setPassword(props.getString(PASSWORD_KEY));
+        dsi.setDataSourceUrl(props.getString(URL_KEY));
+        dsi.setJdbcDriver(props.getString(DRIVER_KEY));
+
+        return dsi;
+    }
+
+    /**
+     * Returns a list of connection names configured in the properties object.
+     */
+    protected List extractNames(ExtendedProperties props) {
+        Iterator it = props.getKeys();
+        List list = new ArrayList();
+
+        while (it.hasNext()) {
+            String key = (String) it.next();
+
+            int dotInd = key.indexOf('.');
+            if (dotInd <= 0 || dotInd >= key.length()) {
+                continue;
+            }
+
+            String name = key.substring(0, dotInd);
+            if (!list.contains(name)) {
+                list.add(name);
+            }
+        }
+
+        return list;
+    }
+
+}

Added: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java?rev=408465&view=auto
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java
 (added)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java
 Sun May 21 12:29:14 2006
@@ -0,0 +1,76 @@
+/*
+ *  Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.cayenne.profile;
+
+import javax.sql.DataSource;
+
+import org.apache.log4j.Level;
+import org.objectstyle.cayenne.CayenneRuntimeException;
+import org.objectstyle.cayenne.conf.Configuration;
+import org.objectstyle.cayenne.conf.DataSourceFactory;
+import org.objectstyle.cayenne.conn.DataSourceInfo;
+import org.objectstyle.cayenne.conn.PoolManager;
+
+/**
+ * A DataSourceFactory that loads connection info from connection properties, 
the same way
+ * unit tests do.
+ * 
+ * @author Andrus Adamchik
+ */
+public class TestDataSourceFactory implements DataSourceFactory {
+
+    // same as the one used in unit tests
+    public static final String CONNECTION_SET_PROPERTY = 
"cayenne.test.connection";
+
+    public static DataSourceInfo getDataSourceInfo() {
+        String connectionSet = getDataSourceName();
+        return 
ConnectionProperties.getInstance().getConnectionInfo(connectionSet);
+    }
+
+    public static String getDataSourceName() {
+        String connectionSet = System.getProperty(CONNECTION_SET_PROPERTY);
+        if (connectionSet == null) {
+            connectionSet = ConnectionProperties.EMBEDDED_DATASOURCE;
+        }
+
+        return connectionSet;
+    }
+
+    public DataSource getDataSource(String location) throws Exception {
+
+        DataSourceInfo dsi = getDataSourceInfo();
+
+        if (dsi == null) {
+            throw new CayenneRuntimeException("Connection info for key '"
+                    + getDataSourceName()
+                    + "' is not configured");
+        }
+
+        return new PoolManager(dsi.getJdbcDriver(), dsi.getDataSourceUrl(), dsi
+                .getMinConnections(), dsi.getMaxConnections(), 
dsi.getUserName(), dsi
+                .getPassword());
+    }
+
+    /**
+     * @deprecated since 1.2 super is deprecated
+     */
+    public DataSource getDataSource(String location, Level logLevel) throws 
Exception {
+        return getDataSource(location);
+    }
+
+    public void initializeWithParentConfiguration(Configuration conf) {
+    }
+}

Modified: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java?rev=408465&r1=408464&r2=408465&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java
 Sun May 21 12:29:14 2006
@@ -18,8 +18,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.cayenne.profile.AbstractCase;
 import org.apache.cayenne.profile.entity.Entity1;
-import org.apache.cayenne.profile.servlet.AbstractCase;
 import org.objectstyle.cayenne.access.DataContext;
 import org.objectstyle.cayenne.query.SQLTemplate;
 

Modified: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java?rev=408465&r1=408464&r2=408465&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java
 Sun May 21 12:29:14 2006
@@ -18,8 +18,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.cayenne.profile.AbstractCase;
 import org.apache.cayenne.profile.entity.Entity1;
-import org.apache.cayenne.profile.servlet.AbstractCase;
 import org.objectstyle.cayenne.access.DataContext;
 
 public class InsertCase extends AbstractCase {

Modified: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java?rev=408465&r1=408464&r2=408465&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java
 Sun May 21 12:29:14 2006
@@ -18,8 +18,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.cayenne.profile.AbstractCase;
 import org.apache.cayenne.profile.entity.Entity1;
-import org.apache.cayenne.profile.servlet.AbstractCase;
 import org.objectstyle.cayenne.access.DataContext;
 import org.objectstyle.cayenne.exp.Expression;
 import org.objectstyle.cayenne.query.SelectQuery;

Modified: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java?rev=408465&r1=408464&r2=408465&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java
 Sun May 21 12:29:14 2006
@@ -15,19 +15,18 @@
  */
 package org.apache.cayenne.profile.servlet;
 
-import java.io.File;
-
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 
+import org.apache.cayenne.profile.TestDataSourceFactory;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.objectstyle.cayenne.access.DataDomain;
 import org.objectstyle.cayenne.access.DataNode;
 import org.objectstyle.cayenne.access.DbGenerator;
 import org.objectstyle.cayenne.conf.Configuration;
+import org.objectstyle.cayenne.dba.DbAdapter;
 import org.objectstyle.cayenne.util.LocalizedStringsHandler;
-import org.objectstyle.cayenne.util.Util;
 
 /**
  * A filter that sets up DB schema.
@@ -38,20 +37,6 @@
 
     public synchronized void init(FilterConfig config) throws ServletException 
{
 
-        // remove old database
-        // store this value and log it after Cayenne logging is initialized.
-        boolean deletedOldDb = false;
-        File dbDir = new File("target/regression-db");
-        if (dbDir.isDirectory()) {
-            if (Util.delete(dbDir.getAbsolutePath(), true)) {
-                deletedOldDb = true;
-            }
-            
-            if (dbDir.isDirectory()) {
-                throw new ServletException("Can't delete the old database");
-            }
-        }
-
         // start Cayenne stack
         super.init(config);
 
@@ -59,14 +44,35 @@
         if (cayenneVersion == null) {
             cayenneVersion = "unknown";
         }
-        logger.info("Started Cayenne version - '" + cayenneVersion + "'");
-        if(deletedOldDb) {
-            logger.info("deleted old database");
-        }
 
-        // create fresh database
         DataDomain domain = Configuration.getSharedConfiguration().getDomain();
         DataNode node = domain.getNode("regression-profile");
+
+        // 1.1 doesn't have AutoAdapter - set the right adapter manually.
+        String adapterName = TestDataSourceFactory
+                .getDataSourceInfo()
+                .getAdapterClassName();
+
+        try {
+            node.setAdapter((DbAdapter) Class.forName(
+                    adapterName,
+                    true,
+                    
Thread.currentThread().getContextClassLoader()).newInstance());
+        }
+        catch (Exception e) {
+            throw new ServletException("Error instantiating adapter - " + 
adapterName, e);
+        }
+
+        logger.info("Started Cayenne... Version - '"
+                + cayenneVersion
+                + "'; connection: '"
+                + TestDataSourceFactory.getDataSourceName()
+                + "'; adapter: '"
+                + adapterName
+                + "'");
+
+        // create fresh database
+
         DbGenerator generator = new DbGenerator(node.getAdapter(), domain
                 .getMap("regression-profile"));
         try {

Modified: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java?rev=408465&r1=408464&r2=408465&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java
 Sun May 21 12:29:14 2006
@@ -22,6 +22,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.cayenne.profile.AbstractCase;
 import org.objectstyle.cayenne.access.DataContext;
 
 /**

Modified: 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/resources/cayenne.xml
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/resources/cayenne.xml?rev=408465&r1=408464&r2=408465&view=diff
==============================================================================
--- 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/resources/cayenne.xml
 (original)
+++ 
incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1/src/main/resources/cayenne.xml
 Sun May 21 12:29:14 2006
@@ -4,9 +4,9 @@
        <map name="regression-profile" location="regression-profile.map.xml"/>
 
        <node name="regression-profile"
-                datasource="regression-profile.driver.xml"
-                adapter="org.objectstyle.cayenne.dba.hsqldb.HSQLDBAdapter"
-                factory="org.objectstyle.cayenne.conf.DriverDataSourceFactory">
+                datasource="regression-profile"
+                adapter="org.objectstyle.cayenne.dba.JdbcAdapter"
+                factory="org.apache.cayenne.profile.TestDataSourceFactory">
                        <map-ref name="regression-profile"/>
         </node>
 </domain>


Reply via email to