Author: cmueller
Date: Fri Dec 30 21:28:46 2011
New Revision: 1225926
URL: http://svn.apache.org/viewvc?rev=1225926&view=rev
Log:
CAMEL-4152: jdbc idempotent repository - table creation
Modified:
camel/trunk/components/camel-sql/src/main/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepository.java
Modified:
camel/trunk/components/camel-sql/src/main/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepository.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepository.java?rev=1225926&r1=1225925&r2=1225926&view=diff
==============================================================================
---
camel/trunk/components/camel-sql/src/main/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepository.java
(original)
+++
camel/trunk/components/camel-sql/src/main/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepository.java
Fri Dec 30 21:28:46 2011
@@ -30,6 +30,7 @@ import org.springframework.transaction.s
*/
public class JdbcMessageIdRepository extends
AbstractJdbcMessageIdRepository<String> {
+ private boolean createTableIfNotExists = true;
private String tableExistsString = "SELECT 1 FROM CAMEL_MESSAGEPROCESSED
WHERE 1 = 0";
private String createString = "CREATE TABLE CAMEL_MESSAGEPROCESSED
(processorName VARCHAR(255), messageId VARCHAR(100), createdAt TIMESTAMP)";
private String queryString = "SELECT COUNT(*) FROM CAMEL_MESSAGEPROCESSED
WHERE processorName = ? AND messageId = ?";
@@ -63,15 +64,19 @@ public class JdbcMessageIdRepository ext
jdbcTemplate.execute(tableExistsString);
log.debug("table for JdbcMessageIdRepository already
exists");
} catch (DataAccessException e) {
- log.debug("creating table for JdbcMessageIdRepository
because it doesn't exists...");
- log.debug("executing query '{}'...", createString);
- // we will fail if we cannot create it
- jdbcTemplate.execute(createString);
- log.info("table created");
+ if (createTableIfNotExists) {
+ log.debug("creating table for JdbcMessageIdRepository
because it doesn't exists...");
+ // we will fail if we cannot create it
+ jdbcTemplate.execute(createString);
+ log.info("table created with query '{}'",
createString);
+ } else {
+ throw e;
+ }
+
}
return Boolean.TRUE;
}
- });
+ });
}
@Override
@@ -88,7 +93,15 @@ public class JdbcMessageIdRepository ext
protected int delete(String key) {
return jdbcTemplate.update(deleteString, processorName, key);
}
-
+
+ public boolean isCreateTableIfNotExists() {
+ return createTableIfNotExists;
+ }
+
+ public void setCreateTableIfNotExists(boolean createTableIfNotExists) {
+ this.createTableIfNotExists = createTableIfNotExists;
+ }
+
public String getTableExistsString() {
return tableExistsString;
}