dirkv 01/09/20 17:57:41
Modified: src/stores/slidestore/reference JDBCContentStore.java
JDBCDescriptorsStore.java
Log:
separate create statements from other code.
start with autocommit true
Revision Changes Path
1.11 +27 -8
jakarta-slide/src/stores/slidestore/reference/JDBCContentStore.java
Index: JDBCContentStore.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/stores/slidestore/reference/JDBCContentStore.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- JDBCContentStore.java 2001/08/31 21:37:32 1.10
+++ JDBCContentStore.java 2001/09/21 00:57:41 1.11
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/stores/slidestore/reference/JDBCContentStore.java,v 1.10
2001/08/31 21:37:32 dirkv Exp $
- * $Revision: 1.10 $
- * $Date: 2001/08/31 21:37:32 $
+ * $Header:
/home/cvs/jakarta-slide/src/stores/slidestore/reference/JDBCContentStore.java,v 1.11
2001/09/21 00:57:41 dirkv Exp $
+ * $Revision: 1.11 $
+ * $Date: 2001/09/21 00:57:41 $
*
* ====================================================================
*
@@ -90,7 +90,7 @@
* JDBC 2.0 compliant implementation of ContentStore.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a>
- * @version $Revision: 1.10 $
+ * @version $Revision: 1.11 $
*/
public class JDBCContentStore extends AbstractSimpleService
implements ContentStore {
@@ -104,8 +104,8 @@
protected static final int REVISION_URI = 1;
protected static final int REVISION_NUMBER = 2;
protected static final int REVISION_CONTENT = 3;
+
-
// ----------------------------------------------------- Instance Variables
@@ -141,6 +141,17 @@
// -------------------------------------------------------- Service Methods
+ /**
+ * Returns the sql statements to create the database objects.
+ */
+ protected String[] getDatabaseCreateStatements()
+ {
+ String[] statements = {
+ "create table revisioncontent(uri varchar(65536), " +
+ "xnumber varchar(20), content LONGVARBINARY)"};
+
+ return statements;
+ }
/**
* Read parameters.
@@ -198,12 +209,20 @@
getLogger().log(e.toString(),LOG_CHANNEL,Logger.ERROR);
throw new ServiceConnectionFailedException(this, e);
}
+
+ // Start with autocommit true (start of transaction will set it to false)
+ try {
+ connection.setAutoCommit(true);
+ } catch (SQLException e) {
+ }
+
Statement statement = null;
try {
statement = connection.createStatement();
- String s = "create table revisioncontent(uri varchar(65536), "
- + "xnumber varchar(20), content LONGVARBINARY)";
- statement.execute(s);
+ String[] statements = getDatabaseCreateStatements();
+ for (int i=0; i<statements.length ; i++ ) {
+ statement.execute(statements[i]);
+ }
} catch (SQLException e) {
} finally {
closeStatement(statement);
1.26 +51 -43
jakarta-slide/src/stores/slidestore/reference/JDBCDescriptorsStore.java
Index: JDBCDescriptorsStore.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/stores/slidestore/reference/JDBCDescriptorsStore.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- JDBCDescriptorsStore.java 2001/08/31 21:53:12 1.25
+++ JDBCDescriptorsStore.java 2001/09/21 00:57:41 1.26
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/stores/slidestore/reference/JDBCDescriptorsStore.java,v
1.25 2001/08/31 21:53:12 dirkv Exp $
- * $Revision: 1.25 $
- * $Date: 2001/08/31 21:53:12 $
+ * $Header:
/home/cvs/jakarta-slide/src/stores/slidestore/reference/JDBCDescriptorsStore.java,v
1.26 2001/09/21 00:57:41 dirkv Exp $
+ * $Revision: 1.26 $
+ * $Date: 2001/09/21 00:57:41 $
*
* ====================================================================
*
@@ -86,7 +86,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a>
* @author Dirk Verbeeck
- * @version $Revision: 1.25 $
+ * @version $Revision: 1.26 $
*/
public class JDBCDescriptorsStore
@@ -164,41 +164,6 @@
protected static final int PROPERTY_TYPE = 6;
protected static final int PROPERTY_PROTECTED = 7;
- /**
- * Statements to create the database objects.
- */
- protected static String[] DB_CREATE_STATEMENTS = {
- "create table objects(uri varchar(65536) primary key," +
- " classname varchar(4096))",
- "create table children(uri varchar(65536), " +
- " childuri varchar(65536))",
- "create table links(link varchar(65536), " +
- " linkto varchar(65536))",
- "create table permissions(object varchar(65536)," +
- " revisionnumber varchar(20), " +
- " subject varchar(65536), action varchar(65536), " +
- " inheritable int, negative int)",
- "create table locks(id varchar(65536), object varchar(4096)," +
- " subject varchar(4096), type varchar(4096), " +
- " expirationdate varchar(15), inheritable int, " +
- " xexclusive int)",
- "create table revisions(uri varchar(65536) primary key, " +
- " isversioned int, initialrevision varchar(10))",
- "create table workingrevision(uri varchar(65536), " +
- " baserevision varchar(20), xnumber varchar(20))",
- "create table latestrevisions(uri varchar(65536), " +
- " branchname varchar(4096), xnumber varchar(20))",
- "create table branches(uri varchar(65536), xnumber varchar(20)," +
- " childnumber varchar(20))",
- "create table revision(uri varchar(65536), xnumber varchar(20)," +
- " branchname varchar(4096))",
- "create table label(uri varchar(65536), xnumber varchar(20)," +
- " label varchar(4096))",
- "create table property(uri varchar(65536), xnumber varchar(20)," +
- " name varchar(4096), value varchar(65536), " +
- " namespace varchar(4096), type varchar(100), protected int)"};
-
-
// ----------------------------------------------------- Instance Variables
@@ -241,6 +206,44 @@
// -------------------------------------------------------- Service Methods
+ /**
+ * Returns the sql statements to create the database objects.
+ */
+ protected String[] getDatabaseCreateStatements()
+ {
+ String[] statements = {
+ "create table objects(uri varchar(65536) primary key," +
+ " classname varchar(4096))",
+ "create table children(uri varchar(65536), " +
+ " childuri varchar(65536))",
+ "create table links(link varchar(65536), " +
+ " linkto varchar(65536))",
+ "create table permissions(object varchar(65536)," +
+ " revisionnumber varchar(20), " +
+ " subject varchar(65536), action varchar(65536), " +
+ " inheritable int, negative int)",
+ "create table locks(id varchar(65536), object varchar(4096)," +
+ " subject varchar(4096), type varchar(4096), " +
+ " expirationdate varchar(15), inheritable int, " +
+ " xexclusive int)",
+ "create table revisions(uri varchar(65536) primary key, " +
+ " isversioned int, initialrevision varchar(10))",
+ "create table workingrevision(uri varchar(65536), " +
+ " baserevision varchar(20), xnumber varchar(20))",
+ "create table latestrevisions(uri varchar(65536), " +
+ " branchname varchar(4096), xnumber varchar(20))",
+ "create table branches(uri varchar(65536), xnumber varchar(20)," +
+ " childnumber varchar(20))",
+ "create table revision(uri varchar(65536), xnumber varchar(20)," +
+ " branchname varchar(4096))",
+ "create table label(uri varchar(65536), xnumber varchar(20)," +
+ " label varchar(4096))",
+ "create table property(uri varchar(65536), xnumber varchar(20)," +
+ " name varchar(4096), value varchar(65536), " +
+ " namespace varchar(4096), type varchar(100), protected int)"};
+
+ return statements;
+ }
/**
* Initializes the data source with a set of parameters.
@@ -306,15 +309,20 @@
getLogger().log(e.toString(),LOG_CHANNEL,Logger.ERROR);
throw new ServiceConnectionFailedException(this, e);
}
+
+ // Start with autocommit true (start of transaction will set it to false)
+ try {
+ connection.setAutoCommit(false);
+ } catch (SQLException e) {
+ }
Statement statement = null;
try {
statement = connection.createStatement();
- for (int i=0; i<DB_CREATE_STATEMENTS.length ; i++ ) {
- statement.execute(DB_CREATE_STATEMENTS[i]);
+ String[] statements = getDatabaseCreateStatements();
+ for (int i=0; i<statements.length ; i++ ) {
+ statement.execute(statements[i]);
}
- closeStatement(statement);
-
} catch (SQLException e) {
} finally {
closeStatement(statement);