Skip to content

Commit

Permalink
Try to get the liquibase 4.23.0 metadata (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
antoinebhs authored Oct 9, 2024
1 parent d72c891 commit f26a565
Show file tree
Hide file tree
Showing 16 changed files with 4,348 additions and 1,280 deletions.
4,723 changes: 3,468 additions & 1,255 deletions metadata/org.liquibase/liquibase-core/4.23.0/reflect-config.json

Large diffs are not rendered by default.

110 changes: 85 additions & 25 deletions metadata/org.liquibase/liquibase-core/4.23.0/resource-config.json
Original file line number Diff line number Diff line change
@@ -1,26 +1,86 @@
{
"bundles": [
{
"name": "liquibase/i18n/liquibase-core",
"locales": [
"und"
]
}
],
"resources": {
"includes": [
{
"condition": {
"typeReachable": "liquibase.util.LiquibaseUtil"
},
"pattern": "\\Qliquibase.build.properties\\E"
},
{
"condition": {
"typeReachable": "liquibase.parser.core.xml.LiquibaseEntityResolver"
},
"pattern": "^www.liquibase.org/xml/ns/dbchangelog/dbchangelog-.*"
}
]
}
}
"resources":{
"includes":[{
"condition":{"typeReachable":"liquibase.parser.core.yaml.YamlChangeLogParser"},
"pattern":"\\QMETA-INF/services/liquibase.change.Change\\E"
}, {
"condition":{"typeReachable":"liquibase.command.CommandFactory"},
"pattern":"\\QMETA-INF/services/liquibase.command.CommandStep\\E"
}, {
"condition":{"typeReachable":"liquibase.configuration.LiquibaseConfiguration"},
"pattern":"\\QMETA-INF/services/liquibase.configuration.AutoloadedConfigurations\\E"
}, {
"condition":{"typeReachable":"liquibase.configuration.LiquibaseConfiguration"},
"pattern":"\\QMETA-INF/services/liquibase.configuration.ConfigurationValueProvider\\E"
}, {
"condition":{"typeReachable":"liquibase.database.DatabaseFactory"},
"pattern":"\\QMETA-INF/services/liquibase.database.Database\\E"
}, {
"condition":{"typeReachable":"liquibase.datatype.DataTypeFactory"},
"pattern":"\\QMETA-INF/services/liquibase.datatype.LiquibaseDataType\\E"
}, {
"condition":{"typeReachable":"liquibase.diff.DiffGeneratorFactory"},
"pattern":"\\QMETA-INF/services/liquibase.diff.DiffGenerator\\E"
}, {
"condition":{"typeReachable":"liquibase.diff.compare.DatabaseObjectComparatorFactory"},
"pattern":"\\QMETA-INF/services/liquibase.diff.compare.DatabaseObjectComparator\\E"
}, {
"condition":{"typeReachable":"liquibase.diff.output.changelog.ChangeGeneratorFactory"},
"pattern":"\\QMETA-INF/services/liquibase.diff.output.changelog.ChangeGenerator\\E"
}, {
"condition":{"typeReachable":"liquibase.license.LicenseServiceFactory"},
"pattern":"\\QMETA-INF/services/liquibase.license.LicenseService\\E"
}, {
"condition":{"typeReachable":"liquibase.lockservice.LockServiceFactory"},
"pattern":"\\QMETA-INF/services/liquibase.lockservice.LockService\\E"
}, {
"condition":{"typeReachable":"liquibase.logging.core.LogServiceFactory"},
"pattern":"\\QMETA-INF/services/liquibase.logging.LogService\\E"
}, {
"condition":{"typeReachable":"liquibase.parser.ChangeLogParserFactory"},
"pattern":"\\QMETA-INF/services/liquibase.parser.ChangeLogParser\\E"
}, {
"condition":{"typeReachable":"liquibase.precondition.PreconditionFactory"},
"pattern":"\\QMETA-INF/services/liquibase.precondition.Precondition\\E"
}, {
"condition":{"typeReachable":"liquibase.Scope"},
"pattern":"\\QMETA-INF/services/liquibase.servicelocator.ServiceLocator\\E"
}, {
"condition":{"typeReachable":"liquibase.snapshot.SnapshotGeneratorFactory"},
"pattern":"\\QMETA-INF/services/liquibase.snapshot.SnapshotGenerator\\E"
}, {
"condition":{"typeReachable":"liquibase.sqlgenerator.SqlGeneratorFactory"},
"pattern":"\\QMETA-INF/services/liquibase.sqlgenerator.SqlGenerator\\E"
}, {
"condition":{"typeReachable":"liquibase.structure.core.DatabaseObjectFactory"},
"pattern":"\\QMETA-INF/services/liquibase.structure.DatabaseObject\\E"
}, {
"condition":{"typeReachable":"liquibase.command.core.helpers.DatabaseChangelogCommandStep"},
"pattern":"\\Qchangelog.xml\\E"
}, {
"condition":{"typeReachable":"liquibase.parser.core.yaml.YamlChangeLogParser"},
"pattern":"\\Qchangelog.yaml\\E"
}, {
"condition":{"typeReachable":"liquibase.changelog.DatabaseChangeLog"},
"pattern":"\\Qincluded.changelog.xml\\E"
}, {
"condition":{"typeReachable":"liquibase.util.LiquibaseUtil"},
"pattern":"\\Qliquibase.build.properties\\E"
}, {
"condition":{"typeReachable":"liquibase.changelog.DatabaseChangeLog"},
"pattern":"\\Qrenamed.changelog.xml\\E"
}, {
"condition":{"typeReachable":"liquibase.parser.core.xml.LiquibaseEntityResolver$CombinedClassLoader"},
"pattern":"\\Qwww.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd\\E"
}, {
"condition":{"typeReachable":"liquibase.changelog.visitor.StatusVisitor"},
"pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt67b/nfc.nrm\\E"
}]},
"bundles":[{
"name":"com.sun.org.apache.xerces.internal.impl.xpath.regex.message",
"locales":["und"]
}, {
"name":"liquibase/i18n/liquibase-core",
"locales":["und"]
}]
}
5 changes: 5 additions & 0 deletions tests/src/org.liquibase/liquibase-core/4.23.0/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
gradlew.bat
gradlew
gradle/
build/
generate-metadata/
10 changes: 10 additions & 0 deletions tests/src/org.liquibase/liquibase-core/4.23.0/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

# Liquibase

The metadata has been generated by executing the following script:

```bash
./generate-metadata.sh
```

The generated metadata can be found in the `generated-metadata` directory.
43 changes: 43 additions & 0 deletions tests/src/org.liquibase/liquibase-core/4.23.0/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* Copyright and related rights waived via CC0
*
* You should have received a copy of the CC0 legalcode along with this
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/

plugins {
id "org.graalvm.internal.tck"
}

String libraryVersion = tck.testedLibraryVersion.get()

dependencies {
testImplementation "org.liquibase:liquibase-core:$libraryVersion"
testImplementation 'com.h2database:h2:2.1.210'
testImplementation 'org.assertj:assertj-core:3.22.0'
}

task deleteGeneratedMetadata(type: Delete) {
delete files(project.projectDir.toString() + "/generated-metadata")
}

graalvmNative {
agent {
defaultMode = "conditional"
modes {
conditional {
userCodeFilterPath = "user-code-filter.json"
}
}
metadataCopy {
inputTaskNames.add("test")
outputDirectories.add("generated-metadata")
mergeWithExisting = true
}
}
binaries {
test {
buildArgs.add('--enable-url-protocols=http')
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

../../../../../gradlew clean
../../../../../gradlew deleteGeneratedMetadata
../../../../../gradlew test --tests "org_liquibase.liquibase_core.LiquibaseCoreTest" -Pagent metadataCopy
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
library.version=4.23.0
metadata.dir=org.liquibase/liquibase-core/4.23.0/
13 changes: 13 additions & 0 deletions tests/src/org.liquibase/liquibase-core/4.23.0/settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
pluginManagement {
def tckPath = Objects.requireNonNullElse(
System.getenv("GVM_TCK_TCKDIR"),
"../../../../tck-build-logic"
)
includeBuild(tckPath)
}

plugins {
id "org.graalvm.internal.tck-settings" version "1.0.0-SNAPSHOT"
}

rootProject.name = 'org.liquibase.liquibase-core_tests'
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
/*
* Copyright and related rights waived via CC0
*
* You should have received a copy of the CC0 legalcode along with this
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
package org_liquibase.liquibase_core;

import liquibase.change.custom.CustomSqlChange;
import liquibase.change.custom.CustomSqlRollback;
import liquibase.database.Database;
import liquibase.exception.RollbackImpossibleException;
import liquibase.exception.SetupException;
import liquibase.exception.ValidationErrors;
import liquibase.resource.ResourceAccessor;
import liquibase.statement.SqlStatement;
import liquibase.statement.core.RawSqlStatement;
import liquibase.structure.core.Column;
import liquibase.structure.core.Table;

public class ExampleCustomSqlChange implements CustomSqlChange, CustomSqlRollback {

private String schemaName;
private String tableName;
private String columnName;
private String newValue;

@SuppressWarnings("unused")
private ResourceAccessor resourceAccessor;


public String getSchemaName() {
return schemaName;
}

public void setSchemaName(String schemaName) {
this.schemaName = schemaName;
}

public String getTableName() {
return tableName;
}

public void setTableName(String tableName) {
this.tableName = tableName;
}

public String getColumnName() {
return columnName;
}

public void setColumnName(String columnName) {
this.columnName = columnName;
}

public String getNewValue() {
return newValue;
}

public void setNewValue(String newValue) {
this.newValue = newValue;
}

@Override
public SqlStatement[] generateStatements(Database database) {
return new SqlStatement[]{
new RawSqlStatement("UPDATE " + database.escapeObjectName(null, schemaName, tableName, Table.class)
+ " SET " + database.escapeObjectName(columnName, Column.class) + " = " + newValue)
};
}

@Override
public SqlStatement[] generateRollbackStatements(Database database) throws RollbackImpossibleException {
return new SqlStatement[]{
new RawSqlStatement("UPDATE " + database.escapeObjectName(null, schemaName, tableName, Table.class)
+ " SET " + database.escapeObjectName(columnName, Column.class) + " = NULL")
};
}

@Override
public String getConfirmationMessage() {
return "Custom class updated " + tableName + "." + columnName;
}

@Override
public void setUp() throws SetupException {
}

@Override
public void setFileOpener(ResourceAccessor resourceAccessor) {
this.resourceAccessor = resourceAccessor;
}

@Override
public ValidationErrors validate(Database database) {
return new ValidationErrors();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/*
* Copyright and related rights waived via CC0
*
* You should have received a copy of the CC0 legalcode along with this
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
package org_liquibase.liquibase_core;

import liquibase.Scope;
import liquibase.change.custom.CustomTaskChange;
import liquibase.change.custom.CustomTaskRollback;
import liquibase.database.Database;
import liquibase.exception.ValidationErrors;
import liquibase.resource.ResourceAccessor;

public class ExampleCustomTaskChange implements CustomTaskChange, CustomTaskRollback {

private String helloTo;

@SuppressWarnings({"UnusedDeclaration", "FieldCanBeLocal"})
private ResourceAccessor resourceAccessor;


public String getHelloTo() {
return helloTo;
}

public void setHelloTo(String helloTo) {
this.helloTo = helloTo;
}

@Override
public void execute(Database database) {
Scope.getCurrentScope().getLog(getClass()).info("Hello " + getHelloTo());
}

@Override
public void rollback(Database database) {
Scope.getCurrentScope().getLog(getClass()).info("Goodbye " + getHelloTo());
}

@Override
public String getConfirmationMessage() {
return "Said Hello";
}

@Override
public void setUp() {
}

@Override
public void setFileOpener(ResourceAccessor resourceAccessor) {
this.resourceAccessor = resourceAccessor;
}

@Override
public ValidationErrors validate(Database database) {
return new ValidationErrors();
}
}
Loading

0 comments on commit f26a565

Please sign in to comment.