diff --git a/pom.xml b/pom.xml
index 6294cb7..b7bfab8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -86,9 +86,9 @@
- scm:git:git@github.com:liquibase/liquibase-oracle.git
- scm:git:https://github.com/liquibase/liquibase-oracle.git
- scm:git:git@github.com:liquibase/liquibase-oracle.git
+ scm:git:git@github.com:iszilagyigit/liquibase-oracle.git
+ scm:git:https://github.com/iszilagyigit/liquibase-oracle.git
+ scm:git:git@github.com:iszilagyigit/liquibase-oracle.git
diff --git a/src/main/java/liquibase/ext/ora/createtrigger/CreateTriggerChange.java b/src/main/java/liquibase/ext/ora/createtrigger/CreateTriggerChange.java
index f6ebcc0..2edd5a9 100644
--- a/src/main/java/liquibase/ext/ora/createtrigger/CreateTriggerChange.java
+++ b/src/main/java/liquibase/ext/ora/createtrigger/CreateTriggerChange.java
@@ -4,8 +4,10 @@
import liquibase.change.Change;
import liquibase.change.ChangeMetaData;
import liquibase.change.DatabaseChange;
+import liquibase.change.DatabaseChangeProperty;
import liquibase.database.Database;
import liquibase.ext.ora.droptrigger.DropTriggerChange;
+import liquibase.serializer.LiquibaseSerializable;
import liquibase.statement.SqlStatement;
@DatabaseChange(name="createTrigger", description = "Create Trigger", priority = ChangeMetaData.PRIORITY_DEFAULT)
@@ -29,6 +31,8 @@ public class CreateTriggerChange extends AbstractChange {
private String procedure;
+ private String procedureNode;
+
public CreateTriggerChange() {
}
@@ -153,7 +157,6 @@ public void setWhenCondition(String whenCondition) {
this.whenCondition = whenCondition;
}
-
public String getProcedure() {
return procedure;
}
@@ -220,8 +223,17 @@ public SqlStatement[] generateStatements(Database database) {
statement.setViewName(getViewName());
statement.setWhenCondition(getWhenCondition());
statement.setTableName(getTableName());
- statement.setProcedure(getProcedure());
+ statement.setProcedure(getProcedureNode() != null ? getProcedureNode() : getProcedure());
return new SqlStatement[]{statement};
}
+
+ @DatabaseChangeProperty(serializationType=LiquibaseSerializable.SerializationType.DIRECT_VALUE)
+ public String getProcedureNode() {
+ return procedureNode;
+ }
+
+ public void setProcedureNode(String procedureNode) {
+ this.procedureNode = procedureNode;
+ }
}
diff --git a/src/test/java/liquibase/ext/ora/createtrigger/CreateTriggerTest.java b/src/test/java/liquibase/ext/ora/createtrigger/CreateTriggerTest.java
index 194560b..637671d 100644
--- a/src/test/java/liquibase/ext/ora/createtrigger/CreateTriggerTest.java
+++ b/src/test/java/liquibase/ext/ora/createtrigger/CreateTriggerTest.java
@@ -55,6 +55,11 @@ public void getConfirmationMessage() {
@Test
public void generateStatement() {
+ final String triggerBodyExample = " DECLARE v_username varchar2(10);\r\n"
+ + " BEGIN\r\n"
+ + " SELECT pierwsza INTO v_username FROM TriggerTest;\r\n"
+ + " :new.created_by := v_username;\r\n"
+ + " END;\r\n";
CreateTriggerChange change = new CreateTriggerChange();
change.setSchemaName("SCHEMA_NAME");
@@ -63,7 +68,8 @@ public void generateStatement() {
change.setTablespace("TABLESPACE_NAME");
change.setAfterBeforeInsteadOf("AFTER_BEFORE_INSTEADOF");
change.setNestedTableColumn("NESTED_TABLE_COLUMN");
- change.setProcedure("POCEDURE");
+ change.setProcedureNode( triggerBodyExample);
+
change.setTriggerName("TRIGGER_NAME");
change.setViewName("VIEW_NAME");
change.setWhenCondition("WHEN_CONDITION");
@@ -88,7 +94,7 @@ public void generateStatement() {
assertEquals("TABLESPACE_NAME", sqlStatement.getTablespace());
assertEquals("AFTER_BEFORE_INSTEADOF", sqlStatement.getAfterBeforeInsteadOf());
assertEquals("NESTED_TABLE_COLUMN", sqlStatement.getNestedTableColumn());
- assertEquals("POCEDURE", sqlStatement.getProcedure());
+ assertEquals(triggerBodyExample, sqlStatement.getProcedure());
assertEquals("TRIGGER_NAME", sqlStatement.getTriggerName());
assertEquals("VIEW_NAME", sqlStatement.getViewName());
assertEquals("WHEN_CONDITION", sqlStatement.getWhenCondition());