You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/05/21 21:29:15 UTC
svn commit: r408465 - in
/incubator/cayenne/main/branches/STABLE-1-1/cayene-regression-profiler-1.1:
./ src/main/java/org/apache/cayenne/profile/
src/main/java/org/apache/cayenne/profile/cases/
src/main/java/org/apache/cayenne/profile/servlet/ src/main...
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>