Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java	(révision 631911)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java	(copie de travail)
@@ -78,10 +78,13 @@
     protected static final String SCHEMA_OBJECT_PREFIX_VARIABLE =
             "${schemaObjectPrefix}";
 
+    protected static final String MYSQL_ENGINE_VARIABLE = "${mysqlEngine}";
+
     protected boolean initialized;
 
     protected String schema;
     protected String schemaObjectPrefix;
+    protected String mysqlEngine;
 
     protected boolean externalBLOBs;
 
@@ -148,6 +151,7 @@
     public DatabasePersistenceManager() {
         schema = "default";
         schemaObjectPrefix = "";
+        mysqlEngine = "MyISAM";
         externalBLOBs = true;
         initialized = false;
     }
@@ -163,6 +167,14 @@
         this.schemaObjectPrefix = schemaObjectPrefix.toUpperCase();
     }
 
+    public String getMysqlEngine() {
+        return mysqlEngine;
+    }
+
+    public void setMysqlEngine(String mysqlEngine) {
+        this.mysqlEngine = mysqlEngine;
+    }
+
     public String getSchema() {
         return schema;
     }
@@ -1021,6 +1033,11 @@
                     if (!sql.startsWith("#") && sql.length() > 0) {
                         // replace prefix variable
                         sql = Text.replace(sql, SCHEMA_OBJECT_PREFIX_VARIABLE, schemaObjectPrefix);
+                        // replace MySQL engine variable
+                        sql = Text.replace(sql, MYSQL_ENGINE_VARIABLE, mysqlEngine);
+                        if (log.isDebugEnabled()) {
+                          log.debug("Executing SQL: " + sql);
+                        }
                         // execute sql stmt
                         stmt.executeUpdate(sql);
                     }
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java	(révision 631911)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java	(copie de travail)
@@ -83,6 +83,7 @@
  * <li>&lt;param name="{@link #setPassword(String) password}" value=""/>
  * <li>&lt;param name="{@link #setSchema(String) schema}" value=""/>
  * <li>&lt;param name="{@link #setSchemaObjectPrefix(String) schemaObjectPrefix}" value=""/>
+ * <li>&lt;param name="{@link #setMysqlEngine(String) mysqlEngine}" value="MyISAM"/>
  * <li>&lt;param name="{@link #setErrorHandling(String) errorHandling}" value=""/>
  * <li>&lt;param name="{@link #setBlockOnConnectionLoss(String) blockOnConnectionLoss}" value="false"/>
  * </ul>
@@ -95,6 +96,8 @@
     /** the variable for the schema prefix */
     public static final String SCHEMA_OBJECT_PREFIX_VARIABLE =
             "${schemaObjectPrefix}";
+    /** the variable for the MySQL engine */
+    private static final String MYSQL_ENGINE_VARIABLE = "${mysqlEngine}";
 
     /** storage model modifier: binary keys */
     public static final int SM_BINARY_KEYS = 1;
@@ -123,6 +126,9 @@
     /** the prefix for the database objects */
     protected String schemaObjectPrefix;
 
+    /** the MySQL engine */
+    protected String mysqlEngine = "MyISAM";
+
     /** flag indicating if a consistency check should be issued during startup */
     protected boolean consistencyCheck = false;
 
@@ -297,6 +303,23 @@
     }
 
     /**
+     * Returns the configured MySQL engine.
+     * @return the MySQL engine.
+     */
+    public String getMysqlEngine() {
+        return mysqlEngine;
+    }
+
+    /**
+     * Sets the MySQL engine.
+     *
+     * @param mysqlEngine the MySQL engine.
+     */
+    public void setMysqlEngine(String mysqlEngine) {
+        this.mysqlEngine = mysqlEngine;
+    }
+
+    /**
      * Returns if uses external (filesystem) blob store.
      * @return if uses external (filesystem) blob store.
      */
@@ -433,6 +456,9 @@
                             && (sql.indexOf("BINVAL") < 0 || useDbBlobStore())) {
                         // only create blob related tables of db blob store configured
                         // execute sql stmt
+                        if (log.isDebugEnabled()) {
+                          log.debug("Executing SQL: " + sql);
+                        }
                         stmt.executeUpdate(sql);
                     }
                     // read next sql stmt
@@ -461,7 +487,9 @@
      */
     protected String createSchemaSQL(String sql) {
         // replace prefix variable
-        return Text.replace(sql, SCHEMA_OBJECT_PREFIX_VARIABLE, schemaObjectPrefix).trim();
+        String sqlReplaced = Text.replace(sql, SCHEMA_OBJECT_PREFIX_VARIABLE, schemaObjectPrefix).trim();
+        // replace MySQL engine variable
+        return Text.replace(sqlReplaced, MYSQL_ENGINE_VARIABLE, mysqlEngine);
     }
 
     /**
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java	(révision 631911)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java	(copie de travail)
@@ -67,10 +67,13 @@
     protected static final String SCHEMA_OBJECT_PREFIX_VARIABLE =
             "${schemaObjectPrefix}";
 
+    protected static final String MYSQL_ENGINE_VARIABLE = "${mysqlEngine}";
+
     protected boolean initialized;
 
     protected String schema;
     protected String schemaObjectPrefix;
+    protected String mysqlEngine;
 
     // initial size of buffer used to serialize objects
     protected static final int INITIAL_BUFFER_SIZE = 8192;
@@ -110,6 +113,7 @@
     public DatabaseFileSystem() {
         schema = "default";
         schemaObjectPrefix = "";
+        mysqlEngine = "MyISAM";
         initialized = false;
     }
 
@@ -131,6 +135,14 @@
         this.schema = schema;
     }
 
+    public String getMysqlEngine() {
+        return mysqlEngine;
+    }
+
+    public void setMysqlEngine(String mysqlEngine) {
+        this.mysqlEngine = mysqlEngine;
+    }
+
     //-------------------------------------------< java.lang.Object overrides >
     /**
      * {@inheritDoc}
@@ -1179,6 +1191,11 @@
                     if (!sql.startsWith("#") && sql.length() > 0) {
                         // replace prefix variable
                         sql = Text.replace(sql, SCHEMA_OBJECT_PREFIX_VARIABLE, schemaObjectPrefix);
+                        // replace MySQL engine variable
+                        sql = Text.replace(sql, MYSQL_ENGINE_VARIABLE, mysqlEngine);
+                        if (log.isDebugEnabled()) {
+                          log.debug("Executing SQL: " + sql);
+                        }
                         // execute sql stmt
                         stmt.executeUpdate(sql);
                     }
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java	(révision 631911)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java	(copie de travail)
@@ -53,6 +53,8 @@
  * second field inside the JDBC connection url, delimeted by colons</li>
  * <li><code>schemaObjectPrefix</code>: the schema object prefix to be used;
  * defaults to an empty string</li>
+ * <li><code>mysqlEngine</code>: the MySQL engine to be used;
+ * defaults to <code>MyISAM</code> if the mysql schema is used</li>
  * <li><code>user</code>: username to specify when connecting</li>
  * <li><code>password</code>: password to specify when connecting</li>
  * <li><code>reconnectDelayMs</code>: number of milliseconds to wait before
@@ -83,6 +85,11 @@
             "${schemaObjectPrefix}";
 
     /**
+     * MySQL engine prefix.
+     */
+    private static final String MYSQL_ENGINE_VARIABLE = "${mysqlEngine}";
+
+    /**
      * Default DDL script name.
      */
     private static final String DEFAULT_DDL_NAME = "default.ddl";
@@ -123,6 +130,11 @@
     private String schema;
 
     /**
+     * MySQL engine, bean property.
+     */
+    private String mysqlEngine;
+
+    /**
      * User name, bean property.
      */
     private String user;
@@ -293,6 +305,9 @@
         if (schemaObjectPrefix == null) {
             schemaObjectPrefix = "";
         }
+        if (mysqlEngine == null) {
+            mysqlEngine = "MyISAM";
+        }
         if (reconnectDelayMs == 0) {
             reconnectDelayMs = DEFAULT_RECONNECT_DELAY_MS;
         }
@@ -772,6 +787,9 @@
                     if (!sql.startsWith("#") && sql.length() > 0) {
                         // replace prefix variable
                         sql = createSchemaSQL(sql);
+                        if (log.isDebugEnabled()) {
+                            log.debug("Executing SQL: " + sql);
+                        }
                         // execute sql stmt
                         stmt.executeUpdate(sql);
                     }
@@ -863,7 +881,10 @@
      * @return a valid SQL string
      */
     protected String createSchemaSQL(String sql) {
-        return Text.replace(sql, SCHEMA_OBJECT_PREFIX_VARIABLE, schemaObjectPrefix);
+      // replace prefix variable
+      String sqlReplaced = Text.replace(sql, SCHEMA_OBJECT_PREFIX_VARIABLE, schemaObjectPrefix);
+      // replace MySQL engine variable
+      return Text.replace(sqlReplaced, MYSQL_ENGINE_VARIABLE, mysqlEngine);
     }
 
     /**
@@ -935,6 +956,10 @@
         return schemaObjectPrefix;
     }
 
+    public String getMysqlEngine() {
+        return mysqlEngine;
+    }
+
     public String getUser() {
         return user;
     }
@@ -978,6 +1003,10 @@
         this.schemaObjectPrefix = schemaObjectPrefix.toUpperCase();
     }
 
+    public void setMysqlEngine(String mysqlEngine) {
+        this.mysqlEngine = mysqlEngine;
+    }
+
     public void setUser(String user) {
         this.user = user;
     }
Index: jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/persistence/db/mysql.ddl
===================================================================
--- jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/persistence/db/mysql.ddl	(révision 631911)
+++ jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/persistence/db/mysql.ddl	(copie de travail)
@@ -12,11 +12,11 @@
 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 #  See the License for the specific language governing permissions and
 #  limitations under the License.
-create table ${schemaObjectPrefix}NODE (NODE_ID char(36) not null, NODE_DATA mediumblob not null)
+create table ${schemaObjectPrefix}NODE (NODE_ID char(36) not null, NODE_DATA mediumblob not null) engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}NODE_IDX on ${schemaObjectPrefix}NODE (NODE_ID)
-create table ${schemaObjectPrefix}PROP (PROP_ID varchar(255) not null, PROP_DATA mediumblob not null)
+create table ${schemaObjectPrefix}PROP (PROP_ID varchar(255) not null, PROP_DATA mediumblob not null) engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}PROP_IDX on ${schemaObjectPrefix}PROP (PROP_ID)
-create table ${schemaObjectPrefix}REFS (NODE_ID char(36) not null, REFS_DATA mediumblob not null)
+create table ${schemaObjectPrefix}REFS (NODE_ID char(36) not null, REFS_DATA mediumblob not null) engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}REFS_IDX on ${schemaObjectPrefix}REFS (NODE_ID)
-create table ${schemaObjectPrefix}BINVAL (BINVAL_ID varchar(255) not null, BINVAL_DATA longblob not null)
+create table ${schemaObjectPrefix}BINVAL (BINVAL_ID varchar(255) not null, BINVAL_DATA longblob not null) engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}BINVAL_IDX on ${schemaObjectPrefix}BINVAL (BINVAL_ID)
Index: jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/persistence/bundle/mysql.ddl
===================================================================
--- jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/persistence/bundle/mysql.ddl	(révision 631911)
+++ jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/persistence/bundle/mysql.ddl	(copie de travail)
@@ -12,10 +12,10 @@
 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 #  See the License for the specific language governing permissions and
 #  limitations under the License.
-create table ${schemaObjectPrefix}BUNDLE (NODE_ID varbinary(16) not null, BUNDLE_DATA longblob not null)
+create table ${schemaObjectPrefix}BUNDLE (NODE_ID varbinary(16) not null, BUNDLE_DATA longblob not null) engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}BUNDLE_IDX on ${schemaObjectPrefix}BUNDLE (NODE_ID)
-create table ${schemaObjectPrefix}REFS (NODE_ID varbinary(16) not null, REFS_DATA longblob not null)
+create table ${schemaObjectPrefix}REFS (NODE_ID varbinary(16) not null, REFS_DATA longblob not null) engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}REFS_IDX on ${schemaObjectPrefix}REFS (NODE_ID)
-create table ${schemaObjectPrefix}BINVAL (BINVAL_ID varchar(64) not null, BINVAL_DATA longblob not null)
+create table ${schemaObjectPrefix}BINVAL (BINVAL_ID varchar(64) not null, BINVAL_DATA longblob not null) engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}BINVAL_IDX on ${schemaObjectPrefix}BINVAL (BINVAL_ID)
-create table ${schemaObjectPrefix}NAMES (ID INTEGER AUTO_INCREMENT PRIMARY KEY, NAME varchar(255) character set utf8 collate utf8_bin not null)
+create table ${schemaObjectPrefix}NAMES (ID INTEGER AUTO_INCREMENT PRIMARY KEY, NAME varchar(255) character set utf8 collate utf8_bin not null) engine=${mysqlEngine}
Index: jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/fs/db/mysql.ddl
===================================================================
--- jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/fs/db/mysql.ddl	(révision 631911)
+++ jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/fs/db/mysql.ddl	(copie de travail)
@@ -12,5 +12,5 @@
 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 #  See the License for the specific language governing permissions and
 #  limitations under the License.
-create table ${schemaObjectPrefix}FSENTRY (FSENTRY_PATH text not null, FSENTRY_NAME varchar(255) not null, FSENTRY_DATA longblob null, FSENTRY_LASTMOD bigint not null, FSENTRY_LENGTH bigint not null) character set latin1
+create table ${schemaObjectPrefix}FSENTRY (FSENTRY_PATH text not null, FSENTRY_NAME varchar(255) not null, FSENTRY_DATA longblob null, FSENTRY_LASTMOD bigint not null, FSENTRY_LENGTH bigint not null) character set latin1 engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}FSENTRY_IDX on ${schemaObjectPrefix}FSENTRY (FSENTRY_PATH(245), FSENTRY_NAME)
Index: jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/journal/mysql.ddl
===================================================================
--- jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/journal/mysql.ddl	(révision 631911)
+++ jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/journal/mysql.ddl	(copie de travail)
@@ -12,11 +12,11 @@
 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 #  See the License for the specific language governing permissions and
 #  limitations under the License.
-create table ${schemaObjectPrefix}JOURNAL (REVISION_ID BIGINT NOT NULL, JOURNAL_ID varchar(255), PRODUCER_ID varchar(255), REVISION_DATA longblob)
+create table ${schemaObjectPrefix}JOURNAL (REVISION_ID BIGINT NOT NULL, JOURNAL_ID varchar(255), PRODUCER_ID varchar(255), REVISION_DATA longblob) engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}JOURNAL_IDX on ${schemaObjectPrefix}JOURNAL (REVISION_ID)
-create table ${schemaObjectPrefix}GLOBAL_REVISION (REVISION_ID BIGINT NOT NULL)
+create table ${schemaObjectPrefix}GLOBAL_REVISION (REVISION_ID BIGINT NOT NULL) engine=${mysqlEngine}
 create unique index ${schemaObjectPrefix}GLOBAL_REVISION_IDX on ${schemaObjectPrefix}GLOBAL_REVISION (REVISION_ID)
-create table ${schemaObjectPrefix}LOCAL_REVISIONS (JOURNAL_ID varchar(255) NOT NULL, REVISION_ID BIGINT NOT NULL)
+create table ${schemaObjectPrefix}LOCAL_REVISIONS (JOURNAL_ID varchar(255) NOT NULL, REVISION_ID BIGINT NOT NULL) engine=${mysqlEngine}
 
 # Inserting the one and only revision counter record now helps avoiding race conditions
 insert into ${schemaObjectPrefix}GLOBAL_REVISION VALUES(0)
