diff --git a/.github/workflows/lth.yml b/.github/workflows/lth.yml
index fc5a5dd1..b3a1184b 100644
--- a/.github/workflows/lth.yml
+++ b/.github/workflows/lth.yml
@@ -25,7 +25,8 @@ jobs:
TF_VAR_TEST_CATALOG: main
TF_VAR_TEST_SCHEMA: liquibase_harness_test_ds
WORKSPACE_ID: ${{ secrets.TH_DATABRICKS_WORKSPACE_ID }}
-
+ LIQUIBOT_TOKEN: ${{ secrets.LIQUIBOT_PAT }}
+ GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
strategy:
max-parallel: 1
matrix:
@@ -62,12 +63,54 @@ jobs:
distribution: temurin
cache: 'maven'
+ - name: maven-settings-xml-action
+ uses: whelk-io/maven-settings-xml-action@v22
+ with:
+ repositories: |
+ [
+ {
+ "id": "liquibase",
+ "url": "https://maven.pkg.github.com/liquibase/liquibase",
+ "releases": {
+ "enabled": "false"
+ },
+ "snapshots": {
+ "enabled": "true",
+ "updatePolicy": "always"
+ }
+ },
+ {
+ "id": "liquibase-pro",
+ "url": "https://maven.pkg.github.com/liquibase/liquibase-pro",
+ "releases": {
+ "enabled": "false"
+ },
+ "snapshots": {
+ "enabled": "true",
+ "updatePolicy": "always"
+ }
+ }
+ ]
+ servers: |
+ [
+ {
+ "id": "liquibase-pro",
+ "username": "liquibot",
+ "password": "${{ secrets.LIQUIBOT_PAT }}"
+ },
+ {
+ "id": "liquibase",
+ "username": "liquibot",
+ "password": "${{ secrets.LIQUIBOT_PAT }}"
+ }
+ ]
+
- name: Build with Maven # Build the code with Maven (skip tests)
- run: mvn -B -ntp -Dmaven.test.skip package
+ run: mvn -B -ntp -Dmaven.test.skip package -Dliquibase.version=master-SNAPSHOT
- name: Run ${{ matrix.liquibase-support-level }} Liquibase Test Harness # Run the Liquibase test harness at each test level
if: always() # Run the action even if the previous steps fail
- run: mvn -B -ntp -DdbPassword=${{env.TF_VAR_DBX_TOKEN}} -DdbUrl='${{env.DATABRICKS_URL}}' -Dtest=liquibase.ext.databricks.${{ matrix.liquibase-support-level }}ExtensionHarnessTestSuite test # Run the Liquibase test harness at each test level
+ run: mvn -B -ntp -DdbPassword=${{env.TF_VAR_DBX_TOKEN}} -DdbUrl='${{env.DATABRICKS_URL}}' -Dtest=liquibase.ext.databricks.${{ matrix.liquibase-support-level }}ExtensionHarnessTestSuite test -Dliquibase.version=master-SNAPSHOT # Run the Liquibase test harness at each test level
- name: Test Reporter # Generate a test report using the Test Reporter action
uses: dorny/test-reporter@v1.9.1
@@ -93,4 +136,4 @@ jobs:
else
echo "Schema does not exist. Skipping removal."
fi
- fi
\ No newline at end of file
+ fi
diff --git a/pom.xml b/pom.xml
index 7a4fe798..2c877ef8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,8 +64,8 @@
src/main/java
src/test
1.0.10
- 5.11.0
- 1.11.0
+ 5.11.2
+ 1.11.2
target
@@ -160,7 +160,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.10.0
+ 3.10.1
true
false
diff --git a/src/main/java/liquibase/ext/databricks/parser/NamespaceDetailsDatabricks.java b/src/main/java/liquibase/ext/databricks/parser/NamespaceDetailsDatabricks.java
new file mode 100644
index 00000000..33994df2
--- /dev/null
+++ b/src/main/java/liquibase/ext/databricks/parser/NamespaceDetailsDatabricks.java
@@ -0,0 +1,55 @@
+package liquibase.ext.databricks.parser;
+
+import liquibase.parser.LiquibaseParser;
+import liquibase.parser.NamespaceDetails;
+import liquibase.parser.core.xml.XMLChangeLogSAXParser;
+import liquibase.serializer.LiquibaseSerializer;
+import liquibase.serializer.core.xml.XMLChangeLogSerializer;
+
+/**
+ * Namespace details for Databricks extension.
+ * It is used by Liquibase when generating changelogs - ie during a snapshot.
+ */
+public class NamespaceDetailsDatabricks implements NamespaceDetails {
+
+ public static final String DATABRICKS_NAMESPACE = "http://www.liquibase.org/xml/ns/databricks";
+
+ public static final String DATABRICKS_XSD = "http://www.liquibase.org/xml/ns/databricks/liquibase-databricks-latest.xsd";
+
+ @Override
+ public int getPriority() {
+ return PRIORITY_EXTENSION;
+ }
+
+ @Override
+ public boolean supports(LiquibaseSerializer serializer, String namespace) {
+ return namespaceCorrect(namespace) && serializer instanceof XMLChangeLogSerializer;
+ }
+
+ @Override
+ public boolean supports(LiquibaseParser parser, String namespace) {
+ return namespaceCorrect(namespace) && parser instanceof XMLChangeLogSAXParser;
+ }
+
+ @Override
+ public String getShortName(String namespace) {
+ return "databricks";
+ }
+
+ @Override
+ public String getSchemaUrl(String namespace) {
+ return DATABRICKS_XSD;
+ }
+
+ @Override
+ public String[] getNamespaces() {
+ return new String[]{
+ DATABRICKS_NAMESPACE
+ };
+ }
+
+ private boolean namespaceCorrect(String namespace) {
+ return namespace.equals(DATABRICKS_NAMESPACE) || namespace.equals(DATABRICKS_XSD);
+ }
+
+}
diff --git a/src/main/resources/META-INF/services/liquibase.parser.NamespaceDetails b/src/main/resources/META-INF/services/liquibase.parser.NamespaceDetails
new file mode 100644
index 00000000..351dd668
--- /dev/null
+++ b/src/main/resources/META-INF/services/liquibase.parser.NamespaceDetails
@@ -0,0 +1 @@
+liquibase.ext.databricks.parser.NamespaceDetailsDatabricks