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:07 UTC
svn commit: r408464 - in
/incubator/cayenne/main/trunk/cayenne-regression-profiler: ./
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/resources/
Author: aadamchik
Date: Sun May 21 12:29:07 2006
New Revision: 408464
URL: http://svn.apache.org/viewvc?rev=408464&view=rev
Log:
setting mavne profiles to support regression profiling on different dbs
Added:
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/AbstractCase.java
- copied, changed from r408130, incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/AbstractCase.java
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java
Removed:
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/AbstractCase.java
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/resources/regression-profile.driver.xml
Modified:
incubator/cayenne/main/trunk/cayenne-regression-profiler/pom.xml
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java
incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/resources/cayenne.xml
Modified: incubator/cayenne/main/trunk/cayenne-regression-profiler/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-regression-profiler/pom.xml?rev=408464&r1=408463&r2=408464&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-regression-profiler/pom.xml (original)
+++ incubator/cayenne/main/trunk/cayenne-regression-profiler/pom.xml Sun May 21 12:29:07 2006
@@ -6,15 +6,6 @@
<name>Cayenne Regression Profiler Web Application</name>
<version>1.2-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>
@@ -57,37 +45,96 @@
</dependencies>
<configuration>
<scanIntervalSeconds>20</scanIntervalSeconds>
- <!-- <jettyConfig>etc/jetty.xml</jettyConfig> -->
</configuration>
</plugin>
</plugins>
</build>
<profiles>
- <profile>
- <id>1.2-SNAPSHOT</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.objectstyle.cayenne</groupId>
- <artifactId>cayenne</artifactId>
- <version>1.2-SNAPSHOT</version>
- </dependency>
- </dependencies>
- </profile>
- <profile>
- <id>1.2M12</id>
- <dependencies>
- <dependency>
- <groupId>org.objectstyle.cayenne</groupId>
- <artifactId>cayenne</artifactId>
- <version>1.2M12</version>
- </dependency>
- </dependencies>
- </profile>
+ <!-- Cayenne version profiles -->
+ <profile>
+ <id>1.2-SNAPSHOT</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.objectstyle.cayenne</groupId>
+ <artifactId>cayenne</artifactId>
+ <version>1.2-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ </profile>
+ <profile>
+ <id>1.2M12</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.objectstyle.cayenne</groupId>
+ <artifactId>cayenne</artifactId>
+ <version>1.2M12</version>
+ </dependency>
+ </dependencies>
+ </profile>
+ <!-- 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>
-
+ <repositories>
+ <repository>
+ <id>objectstyle</id>
+ <name>ObjectStyle Public Maven2 repo</name>
+ <url>http://objectstyle.org/maven2</url>
+ </repository>
+ </repositories>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
@@ -96,16 +143,9 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- </dependency>
- <dependency>
- <groupId>hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>1.8.0.1</version>
- <scope>runtime</scope>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
</dependency>
-
</dependencies>
</project>
Copied: incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/AbstractCase.java (from r408130, incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/AbstractCase.java)
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/AbstractCase.java?p2=incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/AbstractCase.java&p1=incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/AbstractCase.java&r1=408130&r2=408464&rev=408464&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/AbstractCase.java (original)
+++ incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/AbstractCase.java Sun May 21 12:29:07 2006
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cayenne.profile.servlet;
+package org.apache.cayenne.profile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Added: incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java?rev=408464&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java (added)
+++ incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/TestDataSourceFactory.java Sun May 21 12:29:07 2006
@@ -0,0 +1,74 @@
+/*
+ * 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.ConnectionProperties;
+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 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 {
+
+ String connectionSet = getDataSourceName();
+ DataSourceInfo dsi = ConnectionProperties.getInstance().getConnectionInfo(
+ connectionSet);
+
+ if (dsi == null) {
+ throw new CayenneRuntimeException("Connection info for key '"
+ + connectionSet
+ + "' 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/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java?rev=408464&r1=408463&r2=408464&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java (original)
+++ incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/DeleteCase.java Sun May 21 12:29:07 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/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java?rev=408464&r1=408463&r2=408464&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java (original)
+++ incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/InsertCase.java Sun May 21 12:29:07 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/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java?rev=408464&r1=408463&r2=408464&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java (original)
+++ incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/cases/SelectCase.java Sun May 21 12:29:07 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/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java?rev=408464&r1=408463&r2=408464&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java (original)
+++ incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileFilter.java Sun May 21 12:29:07 2006
@@ -15,11 +15,10 @@
*/
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;
@@ -28,7 +27,6 @@
import org.objectstyle.cayenne.conf.Configuration;
import org.objectstyle.cayenne.conf.WebApplicationContextFilter;
import org.objectstyle.cayenne.util.LocalizedStringsHandler;
-import org.objectstyle.cayenne.util.Util;
/**
* A filter that sets up DB schema.
@@ -39,21 +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);
@@ -61,10 +44,12 @@
if (cayenneVersion == null) {
cayenneVersion = "unknown";
}
- logger.info("Started Cayenne version - '" + cayenneVersion + "'");
- if(deletedOldDb) {
- logger.info("deleted old database");
- }
+
+ logger.info("Started Cayenne... Version - '"
+ + cayenneVersion
+ + "'; connection: '"
+ + TestDataSourceFactory.getDataSourceName()
+ + "'");
// create fresh database
DataDomain domain = Configuration.getSharedConfiguration().getDomain();
Modified: incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java?rev=408464&r1=408463&r2=408464&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java (original)
+++ incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/java/org/apache/cayenne/profile/servlet/ProfileServlet.java Sun May 21 12:29:07 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/trunk/cayenne-regression-profiler/src/main/resources/cayenne.xml
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/resources/cayenne.xml?rev=408464&r1=408463&r2=408464&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/resources/cayenne.xml (original)
+++ incubator/cayenne/main/trunk/cayenne-regression-profiler/src/main/resources/cayenne.xml Sun May 21 12:29:07 2006
@@ -4,8 +4,8 @@
<map name="regression-profile" location="regression-profile.map.xml"/>
<node name="regression-profile"
- datasource="regression-profile.driver.xml"
- factory="org.objectstyle.cayenne.conf.DriverDataSourceFactory">
+ datasource="regression-profile"
+ factory="org.apache.cayenne.profile.TestDataSourceFactory">
<map-ref name="regression-profile"/>
</node>
</domain>