generated from liquibase/liquibase-extension-example
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Generated Snapshots should reference Databricks XSD
- Loading branch information
1 parent
9563f17
commit e7a9bce
Showing
2 changed files
with
56 additions
and
0 deletions.
There are no files selected for viewing
55 changes: 55 additions & 0 deletions
55
src/main/java/liquibase/ext/databricks/parser/NamespaceDetailsDatabricks.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} | ||
|
||
} |
1 change: 1 addition & 0 deletions
1
src/main/resources/META-INF/services/liquibase.parser.NamespaceDetails
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
liquibase.ext.databricks.parser.NamespaceDetailsDatabricks |