[hibernate-commits] Hibernate SVN: r14420 - in core/tags:
hibernate-3.3.0.Alpha1 and 19 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Mon Mar 10 21:59:19 EDT 2008
Author: steve.ebersole at jboss.com
Date: 2008-03-10 21:59:19 -0400 (Mon, 10 Mar 2008)
New Revision: 14420
Added:
core/tags/hibernate-3.3.0.Alpha1/
core/tags/hibernate-3.3.0.Alpha1/cache-ehcache/pom.xml
core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache/pom.xml
core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache2/pom.xml
core/tags/hibernate-3.3.0.Alpha1/cache-oscache/pom.xml
core/tags/hibernate-3.3.0.Alpha1/cache-swarmcache/pom.xml
core/tags/hibernate-3.3.0.Alpha1/connection-c3p0/pom.xml
core/tags/hibernate-3.3.0.Alpha1/connection-proxool/pom.xml
core/tags/hibernate-3.3.0.Alpha1/core/
core/tags/hibernate-3.3.0.Alpha1/core/pom.xml
core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/dialect/DialectFactory.java
core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/engine/ActionQueue.java
core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/jdbc/JDBCContext.java
core/tags/hibernate-3.3.0.Alpha1/documentation/manual/pom.xml
core/tags/hibernate-3.3.0.Alpha1/eg/pom.xml
core/tags/hibernate-3.3.0.Alpha1/jmx/pom.xml
core/tags/hibernate-3.3.0.Alpha1/pom.xml
core/tags/hibernate-3.3.0.Alpha1/src/assembly/dist.xml
core/tags/hibernate-3.3.0.Alpha1/src/assembly/hibernate-all.xml
core/tags/hibernate-3.3.0.Alpha1/src/site/apt/index.apt
core/tags/hibernate-3.3.0.Alpha1/src/site/site.xml
core/tags/hibernate-3.3.0.Alpha1/testing/pom.xml
core/tags/hibernate-3.3.0.Alpha1/testsuite/pom.xml
Removed:
core/tags/hibernate-3.3.0.Alpha1/cache-ehcache/pom.xml
core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache/pom.xml
core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache2/pom.xml
core/tags/hibernate-3.3.0.Alpha1/cache-oscache/pom.xml
core/tags/hibernate-3.3.0.Alpha1/cache-swarmcache/pom.xml
core/tags/hibernate-3.3.0.Alpha1/connection-c3p0/pom.xml
core/tags/hibernate-3.3.0.Alpha1/connection-proxool/pom.xml
core/tags/hibernate-3.3.0.Alpha1/core/
core/tags/hibernate-3.3.0.Alpha1/core/pom.xml
core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/dialect/DialectFactory.java
core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/engine/ActionQueue.java
core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/jdbc/JDBCContext.java
core/tags/hibernate-3.3.0.Alpha1/documentation/manual/pom.xml
core/tags/hibernate-3.3.0.Alpha1/eg/pom.xml
core/tags/hibernate-3.3.0.Alpha1/jmx/pom.xml
core/tags/hibernate-3.3.0.Alpha1/pom.xml
core/tags/hibernate-3.3.0.Alpha1/src/assembly/dist.xml
core/tags/hibernate-3.3.0.Alpha1/src/site/apt/index.apt
core/tags/hibernate-3.3.0.Alpha1/src/site/site.xml
core/tags/hibernate-3.3.0.Alpha1/testing/pom.xml
core/tags/hibernate-3.3.0.Alpha1/testsuite/pom.xml
Log:
[maven-release-plugin] copy for tag hibernate-3.3.0.Alpha1
Copied: core/tags/hibernate-3.3.0.Alpha1 (from rev 14241, core/trunk)
Deleted: core/tags/hibernate-3.3.0.Alpha1/cache-ehcache/pom.xml
===================================================================
--- core/trunk/cache-ehcache/pom.xml 2007-12-11 01:09:52 UTC (rev 14241)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-ehcache/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,97 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core-parent</artifactId>
- <version>1</version>
- </parent>
-
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-ehcache</artifactId>
- <version>3.3.0-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>Hibernate Ehcache Integration</name>
- <description>Integration of Hibernate with Ehcache</description>
-
- <dependencies>
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>net.sf.ehcache</groupId>
- <artifactId>ehcache</artifactId>
- <version>1.2.3</version>
- </dependency>
-
- <!-- testing deps -->
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-testing</artifactId>
- <version>${version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>1.8.0.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>99.0-does-not-exist</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging-api</artifactId>
- <version>99.0-does-not-exist</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl104-over-slf4j</artifactId>
- <version>1.4.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.4.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.14</version>
- <scope>test</scope>
- </dependency>
- <!-- these are optional on core... :( -->
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.4.GA</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>2.1_3</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm-attrs</artifactId>
- <version>1.5.3</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-</project>
Copied: core/tags/hibernate-3.3.0.Alpha1/cache-ehcache/pom.xml (from rev 14419, core/trunk/cache-ehcache/pom.xml)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/cache-ehcache/pom.xml (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-ehcache/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,101 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core-parent</artifactId>
+ <version>1</version>
+ </parent>
+
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-ehcache</artifactId>
+ <version>3.3.0.Alpha1</version>
+ <packaging>jar</packaging>
+
+ <name>Hibernate Ehcache Integration</name>
+ <description>Integration of Hibernate with Ehcache</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ <version>1.2.3</version>
+ </dependency>
+
+ <!-- testing deps -->
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-testing</artifactId>
+ <version>${version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>99.0-does-not-exist</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging-api</artifactId>
+ <version>99.0-does-not-exist</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl104-over-slf4j</artifactId>
+ <version>1.4.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.4.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- these are optional on core... :( -->
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.4.GA</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ <version>2.1_3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm-attrs</artifactId>
+ <version>1.5.3</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-ehcache</developerConnection>
+ <url>http://viewvc.jboss.org/cgi-bin/viewvc.cgi/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-ehcache</url>
+ </scm>
+</project>
\ No newline at end of file
Deleted: core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache/pom.xml
===================================================================
--- core/trunk/cache-jbosscache/pom.xml 2007-12-11 01:09:52 UTC (rev 14241)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,128 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core-parent</artifactId>
- <version>1</version>
- </parent>
-
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-jbosscache</artifactId>
- <version>3.3.0-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>Hibernate JBossCache Integration</name>
- <description>Integration of Hibernate with JBossCache (based on JBossCache1.x APIs)</description>
-
- <dependencies>
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>jboss-cache</artifactId>
- <version>1.4.1.GA</version>
- </dependency>
- <!-- jboss-cache (the one from the jboss repo, anyway) does not properly define its dependencies -->
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>jboss-system</artifactId>
- <version>4.0.2</version>
- </dependency>
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>jboss-common</artifactId>
- <version>4.0.2</version>
- </dependency>
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>jboss-minimal</artifactId>
- <version>4.0.2</version>
- </dependency>
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>jboss-j2se</artifactId>
- <version>200504122039</version>
- </dependency>
- <dependency>
- <groupId>concurrent</groupId>
- <artifactId>concurrent</artifactId>
- <version>1.3.4</version>
- </dependency>
- <dependency>
- <groupId>jgroups</groupId>
- <artifactId>jgroups-all</artifactId>
- <version>2.2.7</version>
- </dependency>
-
- <!-- testing deps -->
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-testing</artifactId>
- <version>${version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>1.8.0.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>99.0-does-not-exist</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging-api</artifactId>
- <version>99.0-does-not-exist</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl104-over-slf4j</artifactId>
- <version>1.4.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.4.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.14</version>
- <scope>test</scope>
- </dependency>
- <!-- these are optional on core... :( -->
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.4.GA</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>2.1_3</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm-attrs</artifactId>
- <version>1.5.3</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-</project>
Copied: core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache/pom.xml (from rev 14419, core/trunk/cache-jbosscache/pom.xml)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache/pom.xml (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,132 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core-parent</artifactId>
+ <version>1</version>
+ </parent>
+
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-jbosscache</artifactId>
+ <version>3.3.0.Alpha1</version>
+ <packaging>jar</packaging>
+
+ <name>Hibernate JBossCache Integration</name>
+ <description>Integration of Hibernate with JBossCache (based on JBossCache1.x APIs)</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-cache</artifactId>
+ <version>1.4.1.GA</version>
+ </dependency>
+ <!-- jboss-cache (the one from the jboss repo, anyway) does not properly define its dependencies -->
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-system</artifactId>
+ <version>4.0.2</version>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-common</artifactId>
+ <version>4.0.2</version>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-minimal</artifactId>
+ <version>4.0.2</version>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-j2se</artifactId>
+ <version>200504122039</version>
+ </dependency>
+ <dependency>
+ <groupId>concurrent</groupId>
+ <artifactId>concurrent</artifactId>
+ <version>1.3.4</version>
+ </dependency>
+ <dependency>
+ <groupId>jgroups</groupId>
+ <artifactId>jgroups-all</artifactId>
+ <version>2.2.7</version>
+ </dependency>
+
+ <!-- testing deps -->
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-testing</artifactId>
+ <version>${version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>99.0-does-not-exist</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging-api</artifactId>
+ <version>99.0-does-not-exist</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl104-over-slf4j</artifactId>
+ <version>1.4.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.4.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- these are optional on core... :( -->
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.4.GA</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ <version>2.1_3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm-attrs</artifactId>
+ <version>1.5.3</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-jbosscache</developerConnection>
+ <url>http://viewvc.jboss.org/cgi-bin/viewvc.cgi/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-jbosscache</url>
+ </scm>
+</project>
\ No newline at end of file
Deleted: core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache2/pom.xml
===================================================================
--- core/trunk/cache-jbosscache2/pom.xml 2007-12-11 01:09:52 UTC (rev 14241)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache2/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,177 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core-parent</artifactId>
- <version>1</version>
- </parent>
-
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-jbosscache2</artifactId>
- <version>3.3.0-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>Hibernate JBossCache2.x Integration</name>
- <description>Integration of Hibernate with JBossCache (based on JBossCache2.x APIs)</description>
-
- <dependencies>
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.cache</groupId>
- <artifactId>jbosscache-core</artifactId>
- <!-- I'd prefer this, at least until we get a GA...
- <version>[2.0.0.BETA2,)</version>
- -->
- <version>2.1.0.BETA1</version>
- </dependency>
-
- <!-- test dependencies -->
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-testing</artifactId>
- <version>${version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>1.8.0.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>99.0-does-not-exist</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging-api</artifactId>
- <version>99.0-does-not-exist</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl104-over-slf4j</artifactId>
- <version>1.4.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.4.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.14</version>
- <scope>test</scope>
- </dependency>
- <!-- these are optional on core :( and needed for testing -->
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.4.GA</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>2.1_3</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm-attrs</artifactId>
- <version>1.5.3</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <testResources>
- <testResource>
- <filtering>false</filtering>
- <directory>src/test/java</directory>
- <includes>
- <include>**/*.xml</include>
- </includes>
- </testResource>
- <testResource>
- <filtering>true</filtering>
- <directory>src/test/resources</directory>
- </testResource>
- </testResources>
-
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <systemProperties>
- <property>
- <name>hibernate.test.validatefailureexpected</name>
- <value>true</value>
- </property>
- <property>
- <name>jgroups.bind_addr</name>
- <value>${jgroups.bind_addr}</value>
- </property>
- <!-- There are problems with multicast and IPv6 on some
- OS/JDK combos, so we tell Java to use IPv4. If you
- have problems with multicast when running the tests
- you can try setting this to 'false', although typically
- that won't be helpful.
- -->
- <property>
- <name>java.net.preferIPv4Stack</name>
- <value>true</value>
- </property>
- </systemProperties>
- <skipExec>${skipUnitTests}</skipExec>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <properties>
- <skipUnitTests>true</skipUnitTests>
- <!--
- Following is the default jgroups mcast address. If you find the testsuite runs very slowly, there
- may be problems with multicast on the interface JGroups uses by default on your machine. You can
- try to resolve setting 'jgroups.bind_addr' as a system-property to the jvm launching maven and
- setting the value to an interface where you know multicast works
- -->
- <jgroups.bind_addr>127.0.0.1</jgroups.bind_addr>
- </properties>
-
- <profiles>
- <profile>
- <id>test</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <properties>
- <skipUnitTests>false</skipUnitTests>
- </properties>
- </profile>
- </profiles>
-
-</project>
Copied: core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache2/pom.xml (from rev 14419, core/trunk/cache-jbosscache2/pom.xml)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache2/pom.xml (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-jbosscache2/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,212 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core-parent</artifactId>
+ <version>1</version>
+ </parent>
+
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-jbosscache2</artifactId>
+ <version>3.3.0.Alpha1</version>
+ <packaging>jar</packaging>
+
+ <name>Hibernate JBossCache2.x Integration</name>
+ <description>Integration of Hibernate with JBossCache (based on JBossCache2.x APIs)</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.cache</groupId>
+ <artifactId>jbosscache-core</artifactId>
+ <version>2.1.0.CR4</version>
+ </dependency>
+ <!-- TODO Remove once JBC 2.1.0.GA uses JG 2.6.1 -->
+ <dependency>
+ <groupId>jgroups</groupId>
+ <artifactId>jgroups</artifactId>
+ <version>2.6.1</version>
+ </dependency>
+
+ <!-- test dependencies -->
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-testing</artifactId>
+ <version>${version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>99.0-does-not-exist</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging-api</artifactId>
+ <version>99.0-does-not-exist</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl104-over-slf4j</artifactId>
+ <version>1.4.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.4.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- these are optional on core :( and needed for testing -->
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.4.GA</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ <version>2.1_3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm-attrs</artifactId>
+ <version>1.5.3</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <testResources>
+ <testResource>
+ <filtering>false</filtering>
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </testResource>
+ <testResource>
+ <filtering>true</filtering>
+ <directory>src/test/resources</directory>
+ </testResource>
+ </testResources>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <!-- Skip a long-running test of a prototype class -->
+ <exclude>**/ClusteredConcurrentTimestampRegionTestCase.java</exclude>
+ </excludes>
+ <systemProperties>
+ <property>
+ <name>hibernate.test.validatefailureexpected</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>jgroups.bind_addr</name>
+ <value>${jgroups.bind_addr}</value>
+ </property>
+ <!-- There are problems with multicast and IPv6 on some
+ OS/JDK combos, so we tell Java to use IPv4. If you
+ have problems with multicast when running the tests
+ you can try setting this to 'false', although typically
+ that won't be helpful.
+ -->
+ <property>
+ <name>java.net.preferIPv4Stack</name>
+ <value>true</value>
+ </property>
+ <!-- Tell JGroups to only wait a short time for PING
+ responses before determining coordinator. Speeds cluster
+ formation during integration tests. (This is too
+ low a value for a real system; only use for tests.)
+ -->
+ <property>
+ <name>jgroups.ping.timeout</name>
+ <value>500</value>
+ </property>
+ <!-- Tell JGroups to only require one PING response
+ before determining coordinator. Speeds cluster
+ formation during integration tests. (This is too
+ low a value for a real system; only use for tests.)
+ -->
+ <property>
+ <name>jgroups.ping.num_initial_members</name>
+ <value>1</value>
+ </property>
+ <!-- Disable the JGroups message bundling feature
+ to speed tests and avoid FLUSH issue -->
+ <property>
+ <name>jgroups.udp.enable_bundling</name>
+ <value>false</value>
+ </property>
+ </systemProperties>
+ <skipExec>${skipUnitTests}</skipExec>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <properties>
+ <skipUnitTests>true</skipUnitTests>
+ <!--
+ Following is the default jgroups mcast address. If you find the testsuite runs very slowly, there
+ may be problems with multicast on the interface JGroups uses by default on your machine. You can
+ try to resolve setting 'jgroups.bind_addr' as a system-property to the jvm launching maven and
+ setting the value to an interface where you know multicast works
+ -->
+ <jgroups.bind_addr>127.0.0.1</jgroups.bind_addr>
+ </properties>
+
+ <profiles>
+ <profile>
+ <id>test</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <properties>
+ <skipUnitTests>false</skipUnitTests>
+ </properties>
+ </profile>
+ </profiles>
+
+
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-jbosscache2</developerConnection>
+ <url>http://viewvc.jboss.org/cgi-bin/viewvc.cgi/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-jbosscache2</url>
+ </scm>
+</project>
\ No newline at end of file
Deleted: core/tags/hibernate-3.3.0.Alpha1/cache-oscache/pom.xml
===================================================================
--- core/trunk/cache-oscache/pom.xml 2007-12-11 01:09:52 UTC (rev 14241)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-oscache/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,34 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core-parent</artifactId>
- <version>1</version>
- </parent>
-
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-oscache</artifactId>
- <version>3.3.0-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>Hibernate OSCache Integration</name>
- <description>Integration of Hibernate with OSCache</description>
-
- <dependencies>
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>opensymphony</groupId>
- <artifactId>oscache</artifactId>
- <version>2.1</version>
- </dependency>
- </dependencies>
-
-</project>
Copied: core/tags/hibernate-3.3.0.Alpha1/cache-oscache/pom.xml (from rev 14419, core/trunk/cache-oscache/pom.xml)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/cache-oscache/pom.xml (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-oscache/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,38 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core-parent</artifactId>
+ <version>1</version>
+ </parent>
+
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-oscache</artifactId>
+ <version>3.3.0.Alpha1</version>
+ <packaging>jar</packaging>
+
+ <name>Hibernate OSCache Integration</name>
+ <description>Integration of Hibernate with OSCache</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>opensymphony</groupId>
+ <artifactId>oscache</artifactId>
+ <version>2.1</version>
+ </dependency>
+ </dependencies>
+
+
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-oscache</developerConnection>
+ <url>http://viewvc.jboss.org/cgi-bin/viewvc.cgi/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-oscache</url>
+ </scm>
+</project>
\ No newline at end of file
Deleted: core/tags/hibernate-3.3.0.Alpha1/cache-swarmcache/pom.xml
===================================================================
--- core/trunk/cache-swarmcache/pom.xml 2007-12-11 01:09:52 UTC (rev 14241)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-swarmcache/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,34 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core-parent</artifactId>
- <version>1</version>
- </parent>
-
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-swarmcache</artifactId>
- <version>3.3.0-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>Hibernate SwarmCache Integration</name>
- <description>Integration of Hibernate with SwarmCache</description>
-
- <dependencies>
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>swarmcache</groupId>
- <artifactId>swarmcache</artifactId>
- <version>1.0RC2</version>
- </dependency>
- </dependencies>
-
-</project>
Copied: core/tags/hibernate-3.3.0.Alpha1/cache-swarmcache/pom.xml (from rev 14419, core/trunk/cache-swarmcache/pom.xml)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/cache-swarmcache/pom.xml (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/cache-swarmcache/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,38 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core-parent</artifactId>
+ <version>1</version>
+ </parent>
+
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-swarmcache</artifactId>
+ <version>3.3.0.Alpha1</version>
+ <packaging>jar</packaging>
+
+ <name>Hibernate SwarmCache Integration</name>
+ <description>Integration of Hibernate with SwarmCache</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>swarmcache</groupId>
+ <artifactId>swarmcache</artifactId>
+ <version>1.0RC2</version>
+ </dependency>
+ </dependencies>
+
+
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-swarmcache</developerConnection>
+ <url>http://viewvc.jboss.org/cgi-bin/viewvc.cgi/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-swarmcache</url>
+ </scm>
+</project>
\ No newline at end of file
Deleted: core/tags/hibernate-3.3.0.Alpha1/connection-c3p0/pom.xml
===================================================================
--- core/trunk/connection-c3p0/pom.xml 2007-12-11 01:09:52 UTC (rev 14241)
+++ core/tags/hibernate-3.3.0.Alpha1/connection-c3p0/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,34 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core-parent</artifactId>
- <version>1</version>
- </parent>
-
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-c3p0</artifactId>
- <version>3.3.0-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>Hibernate C3P0 ConnectionProvider</name>
- <description>C3P0-based implementation of the Hibernate ConnectionProvder contract</description>
-
- <dependencies>
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>c3p0</groupId>
- <artifactId>c3p0</artifactId>
- <version>0.9.1</version>
- </dependency>
- </dependencies>
-
-</project>
Copied: core/tags/hibernate-3.3.0.Alpha1/connection-c3p0/pom.xml (from rev 14419, core/trunk/connection-c3p0/pom.xml)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/connection-c3p0/pom.xml (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/connection-c3p0/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,38 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core-parent</artifactId>
+ <version>1</version>
+ </parent>
+
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-c3p0</artifactId>
+ <version>3.3.0.Alpha1</version>
+ <packaging>jar</packaging>
+
+ <name>Hibernate C3P0 ConnectionProvider</name>
+ <description>C3P0-based implementation of the Hibernate ConnectionProvder contract</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>c3p0</groupId>
+ <artifactId>c3p0</artifactId>
+ <version>0.9.1</version>
+ </dependency>
+ </dependencies>
+
+
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-c3p0</developerConnection>
+ <url>http://viewvc.jboss.org/cgi-bin/viewvc.cgi/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-c3p0</url>
+ </scm>
+</project>
\ No newline at end of file
Deleted: core/tags/hibernate-3.3.0.Alpha1/connection-proxool/pom.xml
===================================================================
--- core/trunk/connection-proxool/pom.xml 2007-12-11 01:09:52 UTC (rev 14241)
+++ core/tags/hibernate-3.3.0.Alpha1/connection-proxool/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,34 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core-parent</artifactId>
- <version>1</version>
- </parent>
-
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-proxool</artifactId>
- <version>3.3.0-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>Hibernate Proxool ConnectionProvider</name>
- <description>Proxool-based implementation of the Hibernate ConnectionProvder contract</description>
-
- <dependencies>
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>proxool</groupId>
- <artifactId>proxool</artifactId>
- <version>0.8.3</version>
- </dependency>
- </dependencies>
-
-</project>
Copied: core/tags/hibernate-3.3.0.Alpha1/connection-proxool/pom.xml (from rev 14419, core/trunk/connection-proxool/pom.xml)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/connection-proxool/pom.xml (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/connection-proxool/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,38 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core-parent</artifactId>
+ <version>1</version>
+ </parent>
+
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-proxool</artifactId>
+ <version>3.3.0.Alpha1</version>
+ <packaging>jar</packaging>
+
+ <name>Hibernate Proxool ConnectionProvider</name>
+ <description>Proxool-based implementation of the Hibernate ConnectionProvder contract</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${groupId}</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>proxool</groupId>
+ <artifactId>proxool</artifactId>
+ <version>0.8.3</version>
+ </dependency>
+ </dependencies>
+
+
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-proxool</developerConnection>
+ <url>http://viewvc.jboss.org/cgi-bin/viewvc.cgi/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-proxool</url>
+ </scm>
+</project>
\ No newline at end of file
Copied: core/tags/hibernate-3.3.0.Alpha1/core (from rev 14306, core/trunk/core)
Deleted: core/tags/hibernate-3.3.0.Alpha1/core/pom.xml
===================================================================
--- core/trunk/core/pom.xml 2008-02-02 07:51:59 UTC (rev 14306)
+++ core/tags/hibernate-3.3.0.Alpha1/core/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,147 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core-parent</artifactId>
- <version>1</version>
- </parent>
-
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>3.3.0-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>Hibernate Core</name>
- <description>The core functionality of Hibernate</description>
-
- <dependencies>
- <dependency>
- <groupId>antlr</groupId>
- <artifactId>antlr</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
- <dependency>
- <groupId>dom4j</groupId>
- <artifactId>dom4j</artifactId>
- </dependency>
-
- <dependency>
- <!-- YUCK, YUCK, YUCK!!!! -->
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>javax.security</groupId>
- <artifactId>jaas</artifactId>
- <version>1.0.01</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.security</groupId>
- <artifactId>jacc</artifactId>
- <version>1.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>ant</groupId>
- <artifactId>ant</artifactId>
- <version>1.6.5</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- optional deps for bytecode providers until those are finally properly scoped -->
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.4.GA</version>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>2.1_3</version>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm-attrs</artifactId>
- <version>1.5.3</version>
- <optional>true</optional>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>antlr-maven-plugin</artifactId>
- <version>${antlrPluginVersion}</version>
- <configuration>
- <grammars>hql.g,hql-sql.g,sql-gen.g</grammars>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>antlr-maven-plugin</artifactId>
- <version>${antlrPluginVersion}</version>
- <configuration>
- <!-- eventually should be based on the second phase grammar -->
- <grammars>hql.g</grammars>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <configuration>
- <!--
- for the time being, gonna ignore the custom stylesheet (what did it do anyway???)
- <stylesheetfile>xyz</stylesheetfile>
- -->
- <groups>
- <group>
- <title>Core API</title>
- <packages>org.hibernate:org.hibernate.classic:org.hibernate.criterion:org.hibernate.metadata:org.hibernate.cfg:org.hibernate.usertype</packages>
- </group>
- <group>
- <title>Extension API</title>
- <packages>org.hibernate.id:org.hibernate.connection:org.hibernate.transaction:org.hibernate.type:org.hibernate.dialect*:org.hibernate.cache*:org.hibernate.event*:org.hibernate.action:org.hibernate.property:org.hibernate.loader*:org.hibernate.persister*:org.hibernate.proxy:org.hibernate.tuple:org.hibernate.transform:org.hibernate.collection:org.hibernate.jdbc</packages>
- </group>
- <group>
- <title>Miscellaneous API</title>
- <packages>org.hibernate.stat:org.hibernate.tool.hbm2ddl:org.hibernate.jmx:org.hibernate.mapping:org.hibernate.tool.instrument</packages>
- </group>
- <group>
- <title>Internal Implementation</title>
- <packages>org.hibernate.engine:org.hibernate.impl:org.hibernate.sql:org.hibernate.lob:org.hibernate.util:org.hibernate.exception:org.hibernate.hql:org.hibernate.hql.ast:org.hibernate.hql.antlr:org.hibernate.hql.classic:org.hibernate.intercept:org.hibernate.secure:org.hibernate.pretty</packages>
- </group>
- </groups>
- </configuration>
- </plugin>
- </plugins>
- </reporting>
-
- <properties>
- <antlrPluginVersion>2.1-SNAPSHOT</antlrPluginVersion>
- </properties>
-
-</project>
Copied: core/tags/hibernate-3.3.0.Alpha1/core/pom.xml (from rev 14419, core/trunk/core/pom.xml)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/core/pom.xml (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/core/pom.xml 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,151 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core-parent</artifactId>
+ <version>1</version>
+ </parent>
+
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>3.3.0.Alpha1</version>
+ <packaging>jar</packaging>
+
+ <name>Hibernate Core</name>
+ <description>The core functionality of Hibernate</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>antlr</groupId>
+ <artifactId>antlr</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ </dependency>
+
+ <dependency>
+ <!-- YUCK, YUCK, YUCK!!!! -->
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.security</groupId>
+ <artifactId>jaas</artifactId>
+ <version>1.0.01</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.security</groupId>
+ <artifactId>jacc</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>1.6.5</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- optional deps for bytecode providers until those are finally properly scoped -->
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.4.GA</version>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ <version>2.1_3</version>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm-attrs</artifactId>
+ <version>1.5.3</version>
+ <optional>true</optional>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>antlr-maven-plugin</artifactId>
+ <version>${antlrPluginVersion}</version>
+ <configuration>
+ <grammars>hql.g,hql-sql.g,sql-gen.g</grammars>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>antlr-maven-plugin</artifactId>
+ <version>${antlrPluginVersion}</version>
+ <configuration>
+ <!-- eventually should be based on the second phase grammar -->
+ <grammars>hql.g</grammars>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <!--
+ for the time being, gonna ignore the custom stylesheet (what did it do anyway???)
+ <stylesheetfile>xyz</stylesheetfile>
+ -->
+ <groups>
+ <group>
+ <title>Core API</title>
+ <packages>org.hibernate:org.hibernate.classic:org.hibernate.criterion:org.hibernate.metadata:org.hibernate.cfg:org.hibernate.usertype</packages>
+ </group>
+ <group>
+ <title>Extension API</title>
+ <packages>org.hibernate.id:org.hibernate.connection:org.hibernate.transaction:org.hibernate.type:org.hibernate.dialect*:org.hibernate.cache*:org.hibernate.event*:org.hibernate.action:org.hibernate.property:org.hibernate.loader*:org.hibernate.persister*:org.hibernate.proxy:org.hibernate.tuple:org.hibernate.transform:org.hibernate.collection:org.hibernate.jdbc</packages>
+ </group>
+ <group>
+ <title>Miscellaneous API</title>
+ <packages>org.hibernate.stat:org.hibernate.tool.hbm2ddl:org.hibernate.jmx:org.hibernate.mapping:org.hibernate.tool.instrument</packages>
+ </group>
+ <group>
+ <title>Internal Implementation</title>
+ <packages>org.hibernate.engine:org.hibernate.impl:org.hibernate.sql:org.hibernate.lob:org.hibernate.util:org.hibernate.exception:org.hibernate.hql:org.hibernate.hql.ast:org.hibernate.hql.antlr:org.hibernate.hql.classic:org.hibernate.intercept:org.hibernate.secure:org.hibernate.pretty</packages>
+ </group>
+ </groups>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+
+ <properties>
+ <antlrPluginVersion>2.1</antlrPluginVersion>
+ </properties>
+
+
+ <scm>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-core</developerConnection>
+ <url>http://viewvc.jboss.org/cgi-bin/viewvc.cgi/hibernate/core/tags/hibernate-3.3.0.Alpha1/hibernate-core</url>
+ </scm>
+</project>
\ No newline at end of file
Deleted: core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/dialect/DialectFactory.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/dialect/DialectFactory.java 2008-02-02 07:51:59 UTC (rev 14306)
+++ core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/dialect/DialectFactory.java 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,151 +0,0 @@
-// $Id: DialectFactory.java 9789 2006-04-25 17:06:55Z epbernard $
-package org.hibernate.dialect;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import org.hibernate.HibernateException;
-import org.hibernate.cfg.Environment;
-import org.hibernate.util.ReflectHelper;
-
-/**
- * A factory for generating Dialect instances.
- *
- * @author Steve Ebersole
- */
-public class DialectFactory {
-
- /**
- * Builds an appropriate Dialect instance.
- * <p/>
- * If a dialect is explicitly named in the incoming properties, it is used. Otherwise, the database name and version
- * (obtained from connection metadata) are used to make the dertemination.
- * <p/>
- * An exception is thrown if a dialect was not explicitly set and the database name is not known.
- *
- * @param props The configuration properties.
- * @param databaseName The name of the database product (obtained from metadata).
- * @param databaseMajorVersion The major version of the database product (obtained from metadata).
- *
- * @return The appropriate dialect.
- *
- * @throws HibernateException No dialect specified and database name not known.
- */
- public static Dialect buildDialect(Properties props, String databaseName, int databaseMajorVersion)
- throws HibernateException {
- String dialectName = props.getProperty( Environment.DIALECT );
- if ( dialectName == null ) {
- return determineDialect( databaseName, databaseMajorVersion );
- }
- else {
- return buildDialect( dialectName );
- }
- }
-
- /**
- * Determine the appropriate Dialect to use given the database product name
- * and major version.
- *
- * @param databaseName The name of the database product (obtained from metadata).
- * @param databaseMajorVersion The major version of the database product (obtained from metadata).
- *
- * @return An appropriate dialect instance.
- */
- public static Dialect determineDialect(String databaseName, int databaseMajorVersion) {
- if ( databaseName == null ) {
- throw new HibernateException( "Hibernate Dialect must be explicitly set" );
- }
-
- DatabaseDialectMapper mapper = ( DatabaseDialectMapper ) MAPPERS.get( databaseName );
- if ( mapper == null ) {
- throw new HibernateException( "Hibernate Dialect must be explicitly set for database: " + databaseName );
- }
-
- String dialectName = mapper.getDialectClass( databaseMajorVersion );
- return buildDialect( dialectName );
- }
-
- /**
- * Returns a dialect instance given the name of the class to use.
- *
- * @param dialectName The name of the dialect class.
- *
- * @return The dialect instance.
- */
- public static Dialect buildDialect(String dialectName) {
- try {
- return ( Dialect ) ReflectHelper.classForName( dialectName ).newInstance();
- }
- catch ( ClassNotFoundException cnfe ) {
- throw new HibernateException( "Dialect class not found: " + dialectName );
- }
- catch ( Exception e ) {
- throw new HibernateException( "Could not instantiate dialect class", e );
- }
- }
-
- /**
- * For a given database product name, instances of
- * DatabaseDialectMapper know which Dialect to use for different versions.
- */
- public static interface DatabaseDialectMapper {
- public String getDialectClass(int majorVersion);
- }
-
- /**
- * A simple DatabaseDialectMapper for dialects which are independent
- * of the underlying database product version.
- */
- public static class VersionInsensitiveMapper implements DatabaseDialectMapper {
- private String dialectClassName;
-
- public VersionInsensitiveMapper(String dialectClassName) {
- this.dialectClassName = dialectClassName;
- }
-
- public String getDialectClass(int majorVersion) {
- return dialectClassName;
- }
- }
-
- // TODO : this is the stuff it'd be nice to move to a properties file or some other easily user-editable place
- private static final Map MAPPERS = new HashMap();
- static {
- MAPPERS.put( "HSQL Database Engine", new VersionInsensitiveMapper( "org.hibernate.dialect.HSQLDialect" ) );
- MAPPERS.put( "H2", new VersionInsensitiveMapper( "org.hibernate.dialect.H2Dialect" ) );
- MAPPERS.put( "MySQL", new VersionInsensitiveMapper( "org.hibernate.dialect.MySQLDialect" ) );
- MAPPERS.put( "PostgreSQL", new VersionInsensitiveMapper( "org.hibernate.dialect.PostgreSQLDialect" ) );
- MAPPERS.put( "Apache Derby", new VersionInsensitiveMapper( "org.hibernate.dialect.DerbyDialect" ) );
-
- MAPPERS.put( "Microsoft SQL Server Database", new VersionInsensitiveMapper( "org.hibernate.dialect.SQLServerDialect" ) );
- MAPPERS.put( "Microsoft SQL Server", new VersionInsensitiveMapper( "org.hibernate.dialect.SQLServerDialect" ) );
- MAPPERS.put( "Sybase SQL Server", new VersionInsensitiveMapper( "org.hibernate.dialect.SybaseDialect" ) );
- MAPPERS.put( "Adaptive Server Enterprise", new VersionInsensitiveMapper( "org.hibernate.dialect.SybaseDialect" ) );
-
- MAPPERS.put( "Informix Dynamic Server", new VersionInsensitiveMapper( "org.hibernate.dialect.InformixDialect" ) );
-
- // thanks goodness for "universal" databases...
- MAPPERS.put( "DB2/NT", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
- MAPPERS.put( "DB2/LINUX", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
- MAPPERS.put( "DB2/6000", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
- MAPPERS.put( "DB2/HPUX", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
- MAPPERS.put( "DB2/SUN", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
- MAPPERS.put( "DB2/LINUX390", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
- MAPPERS.put( "DB2/AIX64", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
-
- MAPPERS.put(
- "Oracle",
- new DatabaseDialectMapper() {
- public String getDialectClass(int majorVersion) {
- switch ( majorVersion ) {
- case 8: return Oracle8iDialect.class.getName();
- case 9: return Oracle9iDialect.class.getName();
- case 10: return Oracle10gDialect.class.getName();
- default: throw new HibernateException( "unknown Oracle major version [" + majorVersion + "]" );
- }
- }
- }
- );
- }
-}
Copied: core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/dialect/DialectFactory.java (from rev 14317, core/trunk/core/src/main/java/org/hibernate/dialect/DialectFactory.java)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/dialect/DialectFactory.java (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/dialect/DialectFactory.java 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,156 @@
+// $Id: DialectFactory.java 9789 2006-04-25 17:06:55Z epbernard $
+package org.hibernate.dialect;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.hibernate.HibernateException;
+import org.hibernate.cfg.Environment;
+import org.hibernate.util.ReflectHelper;
+
+/**
+ * A factory for generating Dialect instances.
+ *
+ * @author Steve Ebersole
+ */
+public class DialectFactory {
+
+ /**
+ * Builds an appropriate Dialect instance.
+ * <p/>
+ * If a dialect is explicitly named in the incoming properties, it is used. Otherwise, the database name and version
+ * (obtained from connection metadata) are used to make the dertemination.
+ * <p/>
+ * An exception is thrown if a dialect was not explicitly set and the database name is not known.
+ *
+ * @param props The configuration properties.
+ * @param databaseName The name of the database product (obtained from metadata).
+ * @param databaseMajorVersion The major version of the database product (obtained from metadata).
+ *
+ * @return The appropriate dialect.
+ *
+ * @throws HibernateException No dialect specified and database name not known.
+ */
+ public static Dialect buildDialect(Properties props, String databaseName, int databaseMajorVersion)
+ throws HibernateException {
+ String dialectName = props.getProperty( Environment.DIALECT );
+ if ( dialectName == null ) {
+ return determineDialect( databaseName, databaseMajorVersion );
+ }
+ else {
+ return buildDialect( dialectName );
+ }
+ }
+
+ /**
+ * Determine the appropriate Dialect to use given the database product name
+ * and major version.
+ *
+ * @param databaseName The name of the database product (obtained from metadata).
+ * @param databaseMajorVersion The major version of the database product (obtained from metadata).
+ *
+ * @return An appropriate dialect instance.
+ */
+ public static Dialect determineDialect(String databaseName, int databaseMajorVersion) {
+ if ( databaseName == null ) {
+ throw new HibernateException( "Hibernate Dialect must be explicitly set" );
+ }
+
+ DatabaseDialectMapper mapper = ( DatabaseDialectMapper ) MAPPERS.get( databaseName );
+ if ( mapper == null ) {
+ throw new HibernateException( "Hibernate Dialect must be explicitly set for database: " + databaseName );
+ }
+
+ String dialectName = mapper.getDialectClass( databaseMajorVersion );
+ return buildDialect( dialectName );
+ }
+
+ /**
+ * Returns a dialect instance given the name of the class to use.
+ *
+ * @param dialectName The name of the dialect class.
+ *
+ * @return The dialect instance.
+ */
+ public static Dialect buildDialect(String dialectName) {
+ try {
+ return ( Dialect ) ReflectHelper.classForName( dialectName ).newInstance();
+ }
+ catch ( ClassNotFoundException cnfe ) {
+ throw new HibernateException( "Dialect class not found: " + dialectName );
+ }
+ catch ( Exception e ) {
+ throw new HibernateException( "Could not instantiate dialect class", e );
+ }
+ }
+
+ /**
+ * For a given database product name, instances of
+ * DatabaseDialectMapper know which Dialect to use for different versions.
+ */
+ public static interface DatabaseDialectMapper {
+ public String getDialectClass(int majorVersion);
+ }
+
+ /**
+ * A simple DatabaseDialectMapper for dialects which are independent
+ * of the underlying database product version.
+ */
+ public static class VersionInsensitiveMapper implements DatabaseDialectMapper {
+ private String dialectClassName;
+
+ public VersionInsensitiveMapper(String dialectClassName) {
+ this.dialectClassName = dialectClassName;
+ }
+
+ public String getDialectClass(int majorVersion) {
+ return dialectClassName;
+ }
+ }
+
+ // TODO : this is the stuff it'd be nice to move to a properties file or some other easily user-editable place
+ private static final Map MAPPERS = new HashMap();
+ static {
+ // detectors...
+ MAPPERS.put( "HSQL Database Engine", new VersionInsensitiveMapper( "org.hibernate.dialect.HSQLDialect" ) );
+ MAPPERS.put( "H2", new VersionInsensitiveMapper( "org.hibernate.dialect.H2Dialect" ) );
+ MAPPERS.put( "MySQL", new VersionInsensitiveMapper( "org.hibernate.dialect.MySQLDialect" ) );
+ MAPPERS.put( "PostgreSQL", new VersionInsensitiveMapper( "org.hibernate.dialect.PostgreSQLDialect" ) );
+ MAPPERS.put( "Apache Derby", new VersionInsensitiveMapper( "org.hibernate.dialect.DerbyDialect" ) );
+
+ MAPPERS.put( "Ingres", new VersionInsensitiveMapper( "org.hibernate.dialect.IngresDialect" ) );
+ MAPPERS.put( "ingres", new VersionInsensitiveMapper( "org.hibernate.dialect.IngresDialect" ) );
+ MAPPERS.put( "INGRES", new VersionInsensitiveMapper( "org.hibernate.dialect.IngresDialect" ) );
+
+ MAPPERS.put( "Microsoft SQL Server Database", new VersionInsensitiveMapper( "org.hibernate.dialect.SQLServerDialect" ) );
+ MAPPERS.put( "Microsoft SQL Server", new VersionInsensitiveMapper( "org.hibernate.dialect.SQLServerDialect" ) );
+ MAPPERS.put( "Sybase SQL Server", new VersionInsensitiveMapper( "org.hibernate.dialect.SybaseDialect" ) );
+ MAPPERS.put( "Adaptive Server Enterprise", new VersionInsensitiveMapper( "org.hibernate.dialect.SybaseDialect" ) );
+
+ MAPPERS.put( "Informix Dynamic Server", new VersionInsensitiveMapper( "org.hibernate.dialect.InformixDialect" ) );
+
+ // thanks goodness for "universal" databases...
+ MAPPERS.put( "DB2/NT", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
+ MAPPERS.put( "DB2/LINUX", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
+ MAPPERS.put( "DB2/6000", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
+ MAPPERS.put( "DB2/HPUX", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
+ MAPPERS.put( "DB2/SUN", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
+ MAPPERS.put( "DB2/LINUX390", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
+ MAPPERS.put( "DB2/AIX64", new VersionInsensitiveMapper( "org.hibernate.dialect.DB2Dialect" ) );
+
+ MAPPERS.put(
+ "Oracle",
+ new DatabaseDialectMapper() {
+ public String getDialectClass(int majorVersion) {
+ switch ( majorVersion ) {
+ case 8: return Oracle8iDialect.class.getName();
+ case 9: return Oracle9iDialect.class.getName();
+ case 10: return Oracle10gDialect.class.getName();
+ default: throw new HibernateException( "unknown Oracle major version [" + majorVersion + "]" );
+ }
+ }
+ }
+ );
+ }
+}
Deleted: core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/engine/ActionQueue.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/engine/ActionQueue.java 2008-02-02 07:51:59 UTC (rev 14306)
+++ core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/engine/ActionQueue.java 2008-03-11 01:59:19 UTC (rev 14420)
@@ -1,531 +0,0 @@
-// $Id: ActionQueue.java 11402 2007-04-11 14:24:35Z steve.ebersole at jboss.com $
-package org.hibernate.engine;
-
-import org.hibernate.action.EntityInsertAction;
-import org.hibernate.action.EntityDeleteAction;
-import org.hibernate.action.Executable;
-import org.hibernate.action.EntityUpdateAction;
-import org.hibernate.action.CollectionRecreateAction;
-import org.hibernate.action.CollectionRemoveAction;
-import org.hibernate.action.CollectionUpdateAction;
-import org.hibernate.action.EntityIdentityInsertAction;
-import org.hibernate.action.BulkOperationCleanupAction;
-import org.hibernate.HibernateException;
-import org.hibernate.AssertionFailure;
-import org.hibernate.cache.CacheException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.io.ObjectInputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import java.io.ObjectOutputStream;
-
-/**
- * Responsible for maintaining the queue of actions related to events.
- * </p>
- * The ActionQueue holds the DML operations queued as part of a session's
- * transactional-write-behind semantics. DML operations are queued here
- * until a flush forces them to be executed against the database.
- *
- * @author Steve Ebersole
- */
-public class ActionQueue {
-
- private static final Logger log = LoggerFactory.getLogger( ActionQueue.class );
- private static final int INIT_QUEUE_LIST_SIZE = 5;
-
- private SessionImplementor session;
-
- // Object insertions, updates, and deletions have list semantics because
- // they must happen in the right order so as to respect referential
- // integrity
- private ArrayList insertions;
- private ArrayList deletions;
- private ArrayList updates;
- // Actually the semantics of the next three are really "Bag"
- // Note that, unlike objects, collection insertions, updates,
- // deletions are not really remembered between flushes. We
- // just re-use the same Lists for convenience.
- private ArrayList collectionCreations;
- private ArrayList collectionUpdates;
- private ArrayList collectionRemovals;
-
- private ArrayList executions;
-
- /**
- * Constructs an action queue bound to the given session.
- *
- * @param session The session "owning" this queue.
- */
- public ActionQueue(SessionImplementor session) {
- this.session = session;
- init();
- }
-
- private void init() {
- insertions = new ArrayList( INIT_QUEUE_LIST_SIZE );
- deletions = new ArrayList( INIT_QUEUE_LIST_SIZE );
- updates = new ArrayList( INIT_QUEUE_LIST_SIZE );
-
- collectionCreations = new ArrayList( INIT_QUEUE_LIST_SIZE );
- collectionRemovals = new ArrayList( INIT_QUEUE_LIST_SIZE );
- collectionUpdates = new ArrayList( INIT_QUEUE_LIST_SIZE );
-
- executions = new ArrayList( INIT_QUEUE_LIST_SIZE * 3 );
- }
-
- public void clear() {
- updates.clear();
- insertions.clear();
- deletions.clear();
-
- collectionCreations.clear();
- collectionRemovals.clear();
- collectionUpdates.clear();
- }
-
- public void addAction(EntityInsertAction action) {
- insertions.add( action );
- }
-
- public void addAction(EntityDeleteAction action) {
- deletions.add( action );
- }
-
- public void addAction(EntityUpdateAction action) {
- updates.add( action );
- }
-
- public void addAction(CollectionRecreateAction action) {
- collectionCreations.add( action );
- }
-
- public void addAction(CollectionRemoveAction action) {
- collectionRemovals.add( action );
- }
-
- public void addAction(CollectionUpdateAction action) {
- collectionUpdates.add( action );
- }
-
- public void addAction(EntityIdentityInsertAction insert) {
- insertions.add( insert );
- }
-
- public void addAction(BulkOperationCleanupAction cleanupAction) {
- // Add these directly to the executions queue
- executions.add( cleanupAction );
- }
-
- /**
- * Perform all currently queued entity-insertion actions.
- *
- * @throws HibernateException error executing queued insertion actions.
- */
- public void executeInserts() throws HibernateException {
- executeActions( insertions );
- }
-
- /**
- * Perform all currently queued actions.
- *
- * @throws HibernateException error executing queued actions.
- */
- public void executeActions() throws HibernateException {
- executeActions( insertions );
- executeActions( updates );
- executeActions( collectionRemovals );
- executeActions( collectionUpdates );
- executeActions( collectionCreations );
- executeActions( deletions );
- }
-
- /**
- * Prepares the internal action queues for execution.
- *
- * @throws HibernateException error preparing actions.
- */
- public void prepareActions() throws HibernateException {
- prepareActions( collectionRemovals );
- prepareActions( collectionUpdates );
- prepareActions( collectionCreations );
- }
-
- /**
- * Performs cleanup of any held cache softlocks.
- *
- * @param success Was the transaction successful.
- */
- public void afterTransactionCompletion(boolean success) {
- int size = executions.size();
- final boolean invalidateQueryCache = session.getFactory().getSettings().isQueryCacheEnabled();
- for ( int i = 0; i < size; i++ ) {
- try {
- Executable exec = ( Executable ) executions.get(i);
- try {
- exec.afterTransactionCompletion( success );
- }
- finally {
- if ( invalidateQueryCache ) {
- session.getFactory().getUpdateTimestampsCache().invalidate( exec.getPropertySpaces() );
- }
- }
- }
- catch (CacheException ce) {
- log.error( "could not release a cache lock", ce );
- // continue loop
- }
- catch (Exception e) {
- throw new AssertionFailure( "Exception releasing cache locks", e );
- }
- }
- executions.clear();
- }
-
- /**
- * Check whether the given tables/query-spaces are to be executed against
- * given the currently queued actions.
- *
- * @param tables The table/query-spaces to check.
- * @return True if we contain pending actions against any of the given
- * tables; false otherwise.
- */
- public boolean areTablesToBeUpdated(Set tables) {
- return areTablesToUpdated( updates, tables ) ||
- areTablesToUpdated( insertions, tables ) ||
- areTablesToUpdated( deletions, tables ) ||
- areTablesToUpdated( collectionUpdates, tables ) ||
- areTablesToUpdated( collectionCreations, tables ) ||
- areTablesToUpdated( collectionRemovals, tables );
- }
-
- /**
- * Check whether any insertion or deletion actions are currently queued.
- *
- * @return True if insertions or deletions are currently queued; false otherwise.
- */
- public boolean areInsertionsOrDeletionsQueued() {
- return ( insertions.size() > 0 || deletions.size() > 0 );
- }
-
- private static boolean areTablesToUpdated(List executables, Set tablespaces) {
- int size = executables.size();
- for ( int j = 0; j < size; j++ ) {
- Serializable[] spaces = ( (Executable) executables.get(j) ).getPropertySpaces();
- for ( int i = 0; i < spaces.length; i++ ) {
- if ( tablespaces.contains( spaces[i] ) ) {
- if ( log.isDebugEnabled() ) log.debug( "changes must be flushed to space: " + spaces[i] );
- return true;
- }
- }
- }
- return false;
- }
-
- private void executeActions(List list) throws HibernateException {
- int size = list.size();
- for ( int i = 0; i < size; i++ ) {
- execute( (Executable) list.get(i) );
- }
- list.clear();
- session.getBatcher().executeBatch();
- }
-
- public void execute(Executable executable) {
- final boolean lockQueryCache = session.getFactory().getSettings().isQueryCacheEnabled();
- if ( executable.hasAfterTransactionCompletion() || lockQueryCache ) {
- executions.add( executable );
- }
- if (lockQueryCache) {
- session.getFactory()
- .getUpdateTimestampsCache()
- .preinvalidate( executable.getPropertySpaces() );
- }
- executable.execute();
- }
-
- private void prepareActions(List queue) throws HibernateException {
- int size = queue.size();
- for ( int i=0; i<size; i++ ) {
- Executable executable = ( Executable ) queue.get(i);
- executable.beforeExecutions();
- }
- }
-
- /**
- * Returns a string representation of the object.
- *
- * @return a string representation of the object.
- */
- public String toString() {
- return new StringBuffer()
- .append("ActionQueue[insertions=").append(insertions)
- .append(" updates=").append(updates)
- .append(" deletions=").append(deletions)
- .append(" collectionCreations=").append(collectionCreations)
- .append(" collectionRemovals=").append(collectionRemovals)
- .append(" collectionUpdates=").append(collectionUpdates)
- .append("]")
- .toString();
- }
-
- public int numberOfCollectionRemovals() {
- return collectionRemovals.size();
- }
-
- public int numberOfCollectionUpdates() {
- return collectionUpdates.size();
- }
-
- public int numberOfCollectionCreations() {
- return collectionCreations.size();
- }
-
- public int numberOfDeletions() {
- return deletions.size();
- }
-
- public int numberOfUpdates() {
- return updates.size();
- }
-
- public int numberOfInsertions() {
- return insertions.size();
- }
-
- public void sortCollectionActions() {
- if ( session.getFactory().getSettings().isOrderUpdatesEnabled() ) {
- //sort the updates by fk
- java.util.Collections.sort( collectionCreations );
- java.util.Collections.sort( collectionUpdates );
- java.util.Collections.sort( collectionRemovals );
- }
- }
-
- public void sortActions() {
- if ( session.getFactory().getSettings().isOrderUpdatesEnabled() ) {
- //sort the updates by pk
- java.util.Collections.sort( updates );
- }
- if ( session.getFactory().getSettings().isOrderInsertsEnabled() ) {
- sortInsertActions();
- }
- }
-
- /**
- * Provided the option is set ({@link org.hibernate.cfg.Environment#ORDER_INSERTS}),
- * then order the {@link #insertions} queue such that we group inserts
- * against the same entity together (without violating constraints). The
- * original order is generated by cascade order, which in turn is based on
- * the directionality of foreign-keys. So even though we will be changing
- * the ordering here, we need to make absolutely certain that we do not
- * circumvent this FK ordering to the extent of causing constraint
- * violations
- */
- private void sortInsertActions() {
- // IMPLEMENTATION NOTES:
- //
- // The main data structure in this ordering algorithm is the 'positionToAction'
- // map. Essentially this can be thought of as an put-ordered map (the problem with
- // actually implementing it that way and doing away with the 'nameList' is that
- // we'd end up having potential duplicate key values). 'positionToAction' maitains
- // a mapping from a position within the 'nameList' structure to a "partial queue"
- // of actions.
-
- HashMap positionToAction = new HashMap();
- List nameList = new ArrayList();
-
- loopInsertion: while( !insertions.isEmpty() ) {
- EntityInsertAction action = ( EntityInsertAction ) insertions.remove( 0 );
- String thisEntityName = action.getEntityName();
-
- // see if we have already encountered this entity-name...
- if ( ! nameList.contains( thisEntityName ) ) {
- // we have not, so create the proper entries in nameList and positionToAction
- ArrayList segmentedActionQueue = new ArrayList();
- segmentedActionQueue.add( action );
- nameList.add( thisEntityName );
- positionToAction.put( new Integer( nameList.indexOf( thisEntityName ) ), segmentedActionQueue );
- }
- else {
- // we have seen it before, so we need to determine if this insert action is
- // is depenedent upon a previously processed action in terms of FK
- // relationships (this FK checking is done against the entity's property-state
- // associated with the action...)
- int lastPos = nameList.lastIndexOf( thisEntityName );
- Object[] states = action.getState();
- for ( int i = 0; i < states.length; i++ ) {
- for ( int j = 0; j < nameList.size(); j++ ) {
- ArrayList tmpList = ( ArrayList ) positionToAction.get( new Integer( j ) );
- for ( int k = 0; k < tmpList.size(); k++ ) {
- final EntityInsertAction checkAction = ( EntityInsertAction ) tmpList.get( k );
- if ( checkAction.getInstance() == states[i] && j > lastPos ) {
- // 'checkAction' is inserting an entity upon which 'action'
- // depends...
- // note: this is an assumption and may not be correct in the case of one-to-one
- ArrayList segmentedActionQueue = new ArrayList();
- segmentedActionQueue.add( action );
- nameList.add( thisEntityName );
- positionToAction.put(new Integer( nameList.lastIndexOf( thisEntityName ) ), segmentedActionQueue );
- continue loopInsertion;
- }
- }
- }
- }
-
- ArrayList actionQueue = ( ArrayList ) positionToAction.get( new Integer( lastPos ) );
- actionQueue.add( action );
- }
- }
-
- // now iterate back through positionToAction map and move entityInsertAction back to insertion list
- for ( int p = 0; p < nameList.size(); p++ ) {
- ArrayList actionQueue = ( ArrayList ) positionToAction.get( new Integer( p ) );
- Iterator itr = actionQueue.iterator();
- while ( itr.hasNext() ) {
- insertions.add( itr.next() );
- }
- }
- }
-
- public ArrayList cloneDeletions() {
- return (ArrayList) deletions.clone();
- }
-
- public void clearFromFlushNeededCheck(int previousCollectionRemovalSize) {
- collectionCreations.clear();
- collectionUpdates.clear();
- updates.clear();
- // collection deletions are a special case since update() can add
- // deletions of collections not loaded by the session.
- for ( int i = collectionRemovals.size()-1; i >= previousCollectionRemovalSize; i-- ) {
- collectionRemovals.remove(i);
- }
- }
-
- public boolean hasAnyQueuedActions() {
- return updates.size() > 0 ||
- insertions.size() > 0 ||
- deletions.size() > 0 ||
- collectionUpdates.size() > 0 ||
- collectionRemovals.size() > 0 ||
- collectionCreations.size() > 0;
- }
-
- /**
- * Used by the owning session to explicitly control serialization of the
- * action queue
- *
- * @param oos The stream to which the action queue should get written
- * @throws IOException
- */
- public void serialize(ObjectOutputStream oos) throws IOException {
- log.trace( "serializing action-queue" );
-
- int queueSize = insertions.size();
- log.trace( "starting serialization of [" + queueSize + "] insertions entries" );
- oos.writeInt( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- oos.writeObject( insertions.get( i ) );
- }
-
- queueSize = deletions.size();
- log.trace( "starting serialization of [" + queueSize + "] deletions entries" );
- oos.writeInt( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- oos.writeObject( deletions.get( i ) );
- }
-
- queueSize = updates.size();
- log.trace( "starting serialization of [" + queueSize + "] updates entries" );
- oos.writeInt( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- oos.writeObject( updates.get( i ) );
- }
-
- queueSize = collectionUpdates.size();
- log.trace( "starting serialization of [" + queueSize + "] collectionUpdates entries" );
- oos.writeInt( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- oos.writeObject( collectionUpdates.get( i ) );
- }
-
- queueSize = collectionRemovals.size();
- log.trace( "starting serialization of [" + queueSize + "] collectionRemovals entries" );
- oos.writeInt( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- oos.writeObject( collectionRemovals.get( i ) );
- }
-
- queueSize = collectionCreations.size();
- log.trace( "starting serialization of [" + queueSize + "] collectionCreations entries" );
- oos.writeInt( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- oos.writeObject( collectionCreations.get( i ) );
- }
- }
-
- /**
- * Used by the owning session to explicitly control deserialization of the
- * action queue
- *
- * @param ois The stream from which to read the action queue
- * @throws IOException
- */
- public static ActionQueue deserialize(
- ObjectInputStream ois,
- SessionImplementor session) throws IOException, ClassNotFoundException {
- log.trace( "deserializing action-queue" );
- ActionQueue rtn = new ActionQueue( session );
-
- int queueSize = ois.readInt();
- log.trace( "starting deserialization of [" + queueSize + "] insertions entries" );
- rtn.insertions = new ArrayList( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- rtn.insertions.add( ois.readObject() );
- }
-
- queueSize = ois.readInt();
- log.trace( "starting deserialization of [" + queueSize + "] deletions entries" );
- rtn.deletions = new ArrayList( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- rtn.deletions.add( ois.readObject() );
- }
-
- queueSize = ois.readInt();
- log.trace( "starting deserialization of [" + queueSize + "] updates entries" );
- rtn.updates = new ArrayList( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- rtn.updates.add( ois.readObject() );
- }
-
- queueSize = ois.readInt();
- log.trace( "starting deserialization of [" + queueSize + "] collectionUpdates entries" );
- rtn.collectionUpdates = new ArrayList( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- rtn.collectionUpdates.add( ois.readObject() );
- }
-
- queueSize = ois.readInt();
- log.trace( "starting deserialization of [" + queueSize + "] collectionRemovals entries" );
- rtn.collectionRemovals = new ArrayList( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- rtn.collectionRemovals.add( ois.readObject() );
- }
-
- queueSize = ois.readInt();
- log.trace( "starting deserialization of [" + queueSize + "] collectionCreations entries" );
- rtn.collectionCreations = new ArrayList( queueSize );
- for ( int i = 0; i < queueSize; i++ ) {
- rtn.collectionCreations.add( ois.readObject() );
- }
- return rtn;
- }
-
-}
Copied: core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/engine/ActionQueue.java (from rev 14356, core/trunk/core/src/main/java/org/hibernate/engine/ActionQueue.java)
===================================================================
--- core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/engine/ActionQueue.java (rev 0)
+++ core/tags/hibernate-3.3.0.Alpha1/core/src/main/java/org/hibernate/engine/ActionQueue.java 2008-03-11 01:59:19 UTC (rev 14420)
@@ -0,0 +1,619 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2007, Red Hat Middleware LLC or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Middleware LLC.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ *
+ */
+package org.hibernate.engine;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.hibernate.AssertionFailure;
+import org.hibernate.HibernateException;
+import org.hibernate.action.BulkOperationCleanupAction;
+import org.hibernate.action.CollectionRecreateAction;
+import org.hibernate.action.CollectionRemoveAction;
+import org.hibernate.action.CollectionUpdateAction;
+import org.hibernate.action.EntityDeleteAction;
+import org.hibernate.action.EntityIdentityInsertAction;
+import org.hibernate.action.EntityInsertAction;
+import org.hibernate.action.EntityUpdateAction;
+import org.hibernate.action.Executable;
+import org.hibernate.cache.CacheException;
+import org.hibernate.type.Type;
+
+/**
+ * Responsible for maintaining the queue of actions related to events.
+ * </p>
+ * The ActionQueue holds the DML operations queued as part of a session's
+ * transactional-write-behind semantics. DML operations are queued here
+ * until a flush forces them to be executed against the database.
+ *
+ * @author Steve Ebersole
+ */
+public class ActionQueue {
+
+ private static final Logger log = LoggerFactory.getLogger( ActionQueue.class );
+ private static final int INIT_QUEUE_LIST_SIZE = 5;
+
+ private SessionImplementor session;
+
+ // Object insertions, updates, and deletions have list semantics because
+ // they must happen in the right order so as to respect referential
+ // integrity
+ private ArrayList insertions;
+ private ArrayList deletions;
+ private ArrayList updates;
+ // Actually the semantics of the next three are really "Bag"
+ // Note that, unlike objects, collection insertions, updates,
+ // deletions are not really remembered between flushes. We
+ // just re-use the same Lists for convenience.
+ private ArrayList collectionCreations;
+ private ArrayList collectionUpdates;
+ private ArrayList collectionRemovals;
+
+ private ArrayList executions;
+
+ /**
+ * Constructs an action queue bound to the given session.
+ *
+ * @param session The session "owning" this queue.
+ */
+ public ActionQueue(SessionImplementor session) {
+ this.session = session;
+ init();
+ }
+
+ private void init() {
+ insertions = new ArrayList( INIT_QUEUE_LIST_SIZE );
+ deletions = new ArrayList( INIT_QUEUE_LIST_SIZE );
+ updates = new ArrayList( INIT_QUEUE_LIST_SIZE );
+
+ collectionCreations = new ArrayList( INIT_QUEUE_LIST_SIZE );
+ collectionRemovals = new ArrayList( INIT_QUEUE_LIST_SIZE );
+ collectionUpdates = new ArrayList( INIT_QUEUE_LIST_SIZE );
+
+ executions = new ArrayList( INIT_QUEUE_LIST_SIZE * 3 );
+ }
+
+ public void clear() {
+ updates.clear();
+ insertions.clear();
+ deletions.clear();
+
+ collectionCreations.clear();
+ collectionRemovals.clear();
+ collectionUpdates.clear();
+ }
+
+ public void addAction(EntityInsertAction action) {
+ insertions.add( action );
+ }
+
+ public void addAction(EntityDeleteAction action) {
+ deletions.add( action );
+ }
+
+ public void addAction(EntityUpdateAction action) {
+ updates.add( action );
+ }
+
+ public void addAction(CollectionRecreateAction action) {
+ collectionCreations.add( action );
+ }
+
+ public void addAction(CollectionRemoveAction action) {
+ collectionRemovals.add( action );
+ }
+
+ public void addAction(CollectionUpdateAction action) {
+ collectionUpdates.add( action );
+ }
+
+ public void addAction(EntityIdentityInsertAction insert) {
+ insertions.add( insert );
+ }
+
+ public void addAction(BulkOperationCleanupAction cleanupAction) {
+ // Add these directly to the executions queue
+ executions.add( cleanupAction );
+ }
+
+ /**
+ * Perform all currently queued entity-insertion actions.
+ *
+ * @throws HibernateException error executing queued insertion actions.
+ */
+ public void executeInserts() throws HibernateException {
+ executeActions( insertions );
+ }
+
+ /**
+ * Perform all currently queued actions.
+ *
+ * @throws HibernateException error executing queued actions.
+ */
+ public void executeActions() throws HibernateException {
+ executeActions( insertions );
+ executeActions( updates );
+ executeActions( collectionRemovals );
+ executeActions( collectionUpdates );
+ executeActions( collectionCreations );
+ executeActions( deletions );
+ }
+
+ /**
+ * Prepares the internal action queues for execution.
+ *
+ * @throws HibernateException error preparing actions.
+ */
+ public void prepareActions() throws HibernateException {
+ prepareActions( collectionRemovals );
+ prepareActions( collectionUpdates );
+ prepareActions( collectionCreations );
+ }
+
+ /**
+ * Performs cleanup of any held cache softlocks.
+ *
+ * @param success Was the transaction successful.
+ */
+ public void afterTransactionCompletion(boolean success) {
+ int size = executions.size();
+ final boolean invalidateQueryCache = session.getFactory().getSettings().isQueryCacheEnabled();
+ for ( int i = 0; i < size; i++ ) {
+ try {
+ Executable exec = ( Executable ) executions.get( i );
+ try {
+ exec.afterTransactionCompletion( success );
+ }
+ finally {
+ if ( invalidateQueryCache ) {
+ session.getFactory().getUpdateTimestampsCache().invalidate( exec.getPropertySpaces() );
+ }
+ }
+ }
+ catch ( CacheException ce ) {
+ log.error( "could not release a cache lock", ce );
+ // continue loop
+ }
+ catch ( Exception e ) {
+ throw new AssertionFailure( "Exception releasing cache locks", e );
+ }
+ }
+ executions.clear();
+ }
+
+ /**
+ * Check whether the given tables/query-spaces are to be executed against
+ * given the currently queued actions.
+ *
+ * @param tables The table/query-spaces to check.
+ *
+ * @return True if we contain pending actions against any of the given
+ * tables; false otherwise.
+ */
+ public boolean areTablesToBeUpdated(Set tables) {
+ return areTablesToUpdated( updates, tables ) ||
+ areTablesToUpdated( insertions, tables ) ||
+ areTablesToUpdated( deletions, tables ) ||
+ areTablesToUpdated( collectionUpdates, tables ) ||
+ areTablesToUpdated( collectionCreations, tables ) ||
+ areTablesToUpdated( collectionRemovals, tables );
+ }
+
+ /**
+ * Check whether any insertion or deletion actions are currently queued.
+ *
+ * @return True if insertions or deletions are currently queued; false otherwise.
+ */
+ public boolean areInsertionsOrDeletionsQueued() {
+ return ( insertions.size() > 0 || deletions.size() > 0 );
+ }
+
+ private static boolean areTablesToUpdated(List executables, Set tablespaces) {
+ int size = executables.size();
+ for ( int j = 0; j < size; j++ ) {
+ Serializable[] spaces = ( ( Executable ) executables.get( j ) ).getPropertySpaces();
+ for ( int i = 0; i < spaces.length; i++ ) {
+ if ( tablespaces.contains( spaces[i] ) ) {
+ if ( log.isDebugEnabled() ) {
+ log.debug( "changes must be flushed to space: " + spaces[i] );
+ }
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private void executeActions(List list) throws HibernateException {
+ int size = list.size();
+ for ( int i = 0; i < size; i++ ) {
+ execute( ( Executable ) list.get( i ) );
+ }
+ list.clear();
+ session.getBatcher().executeBatch();
+ }
+
+ public void execute(Executable executable) {
+ final boolean lockQueryCache = session.getFactory().getSettings().isQueryCacheEnabled();
+ if ( executable.hasAfterTransactionCompletion() || lockQueryCache ) {
+ executions.add( executable );
+ }
+ if ( lockQueryCache ) {
+ session.getFactory()
+ .getUpdateTimestampsCache()
+ .preinvalidate( executable.getPropertySpaces() );
+ }
+ executable.execute();
+ }
+
+ private void prepareActions(List queue) throws HibernateException {
+ int size = queue.size();
+ for ( int i = 0; i < size; i++ ) {
+ Executable executable = ( Executable ) queue.get( i );
+ executable.beforeExecutions();
+ }
+ }
+
+ /**
+ * Returns a string representation of the object.
+ *
+ * @return a string representation of the object.
+ */
+ public String toString() {
+ return new StringBuffer()
+ .append( "ActionQueue[insertions=" ).append( insertions )
+ .append( " updates=" ).append( updates )
+ .append( " deletions=" ).append( deletions )
+ .append( " collectionCreations=" ).append( collectionCreations )
+ .append( " collectionRemovals=" ).append( collectionRemovals )
+ .append( " collectionUpdates=" ).append( collectionUpdates )
+ .append( "]" )
+ .toString();
+ }
+
+ public int numberOfCollectionRemovals() {
+ return collectionRemovals.size();
+ }
+
+ public int numberOfCollectionUpdates() {
+ return collectionUpdates.size();
+ }
+
+ public int numberOfCollectionCreations() {
+ return collectionCreations.size();
+ }
+
+ public int numberOfDeletions() {
+ return deletions.size();
+ }
+
+ public int numberOfUpdates() {
+ return updates.size();
+ }
+
+ public int numberOfInsertions() {
+ return insertions.size();
+ }
+
+ public void sortCollectionActions() {
+ if ( session.getFactory().getSettings().isOrderUpdatesEnabled() ) {
+ //sort the updates by fk
+ java.util.Collections.sort( collectionCreations );
+ java.util.Collections.sort( collectionUpdates );
+ java.util.Collections.sort( collectionRemovals );
+ }
+ }
+
+ public void sortActions() {
+ if ( session.getFactory().getSettings().isOrderUpdatesEnabled() ) {
+ //sort the updates by pk
+ java.util.Collections.sort( updates );
+ }
+ if ( session.getFactory().getSettings().isOrderInsertsEnabled() ) {
+ sortInsertActions();
+ }
+ }
+
+ /**
+ * Order the {@link #insertions} queue such that we group inserts
+ * against the same entity together (without violating constraints). The
+ * original order is generated by cascade order, which in turn is based on
+ * the directionality of foreign-keys. So even though we will be changing
+ * the ordering here, we need to make absolutely certain that we do not
+ * circumvent this FK ordering to the extent of causing constraint
+ * violations
+ */
+ private void sortInsertActions() {
+ new InsertActionSorter().sort();
+ }
+
+ public ArrayList cloneDelet