Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conditionally include liquibase-scripting.jar in tarball DAT-16671 #5850

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
89066c7
Conditionally include graal .jar
wwillard7800 Apr 25, 2024
ef5f9b3
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 Apr 25, 2024
afeee98
Reformat assembly file
wwillard7800 Apr 25, 2024
7ceff03
Added excluded files
wwillard7800 Apr 25, 2024
9e54f0f
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 Apr 26, 2024
f803be5
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 Apr 26, 2024
d198b73
Removed scripting references
wwillard7800 Apr 30, 2024
db7e702
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 1, 2024
ef749c0
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 1, 2024
3e66aff
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 4, 2024
cc50f71
Added property to turn off help test
wwillard7800 May 4, 2024
2d433a2
Added skip help tests property DAT-16671
wwillard7800 May 6, 2024
3806f47
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 7, 2024
a9a314d
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 16, 2024
d6db9c6
DAT-16671
wwillard7800 May 16, 2024
a09e62d
Added static access to some executeSql methods
wwillard7800 May 21, 2024
23ce475
Added property to include the liquibase scripting .jar in the tarball
wwillard7800 May 21, 2024
a38b324
Include profile setting for liquibase-scripting
wwillard7800 May 21, 2024
d463c39
Revert "Include profile setting for liquibase-scripting"
wwillard7800 May 22, 2024
c1d914e
Changed property for activation
wwillard7800 May 22, 2024
aaa51f5
Always look for 0-SNAPSHOT of liquibase-scripting
wwillard7800 May 22, 2024
a7403f4
Back to env.CI
wwillard7800 May 22, 2024
cd50088
Added to expected contents
wwillard7800 May 22, 2024
379a6d5
Switch back to using liquibase.scripting
wwillard7800 May 22, 2024
a399762
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 23, 2024
98573b1
Fix formatting
wwillard7800 May 23, 2024
067c309
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 23, 2024
4837a3e
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 23, 2024
11f549e
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 24, 2024
a930dd4
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 24, 2024
52b450f
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 28, 2024
a475555
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 28, 2024
be056ba
Comment in pom file
wwillard7800 May 29, 2024
419d73c
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 29, 2024
c6f1aeb
Merge remote-tracking branch 'origin/master' into DAT-16671
wwillard7800 May 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import liquibase.exception.LiquibaseException
import liquibase.logging.core.BufferedLogService
import liquibase.ui.ConsoleUIService
import liquibase.util.StringUtil
import org.junit.jupiter.api.Assumptions
import spock.lang.Specification
import spock.lang.Unroll

Expand Down Expand Up @@ -725,6 +726,7 @@ https://docs.liquibase.com

def "help output" () {
when:
Assumptions.assumeTrue(System.getProperty("skipHelpTests") != null, "Skipping help test")
def oldOut = System.out
def bytes = new ByteArrayOutputStream()
def newOut = new PrintStream(bytes)
Expand Down
6 changes: 6 additions & 0 deletions liquibase-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,12 @@
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>

</dependencies>

<build>
Expand Down
1 change: 1 addition & 0 deletions liquibase-dist/expected-distribution-contents.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
│   ├── jcc.jar
│   ├── liquibase-commercial.jar
│   ├── liquibase-core.jar
│   ├── liquibase-scripting.jar
│   ├── mariadb-java-client.jar
│   ├── mssql-jdbc.jar
│   ├── ojdbc8.jar
Expand Down
38 changes: 30 additions & 8 deletions liquibase-dist/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,12 @@
<db2.version>11.5.9.0</db2.version>
<firebird.version>5.0.4.java8</firebird.version>
<liquibase-pro.version>master-SNAPSHOT</liquibase-pro.version>
<liquibase-scripting.version>0-SNAPSHOT</liquibase-scripting.version>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should not be master-SNAPSHOT too?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is confusing to me, too. The artifact that is being produced right now is 0-SNAPSHOT. I think that once devops is finished with their build work it should be master-SNAPSHOT.

<assemblyConfigFile>src/main/assembly/assembly-bin.xml</assemblyConfigFile>
<maven.deploy.skip>true</maven.deploy.skip>
<maven.install.skip>true</maven.install.skip>
<artifact.version>${project.version}</artifact.version>
<sonar.coverage.jacoco.xmlReportPaths>../target/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
<sonar.coverage.jacoco.xmlReportPaths>../target/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
</properties>
<dependencies>
<dependency>
Expand Down Expand Up @@ -342,13 +343,34 @@
<assemblyConfigFile>src/main/assembly/assembly-bin-pro.xml</assemblyConfigFile>
</properties>

<dependencies>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-commercial</artifactId>
<version>${liquibase-pro.version}</version>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-commercial</artifactId>
<version>${liquibase-pro.version}</version>
</dependency>
</dependencies>
</profile>

<!-- Profile to include liquibase-scripting in the tarball -->
<profile>
<id>liquibase-scripting</id>
<activation>
<property>
<name>liquibase.scripting</name>
<value>true</value>
</property>
</activation>
<properties>
<assemblyConfigFile>src/main/assembly/assembly-bin-scripting.xml</assemblyConfigFile>
</properties>
<dependencies>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-scripting</artifactId>
<version>${liquibase-scripting.version}</version>
</dependency>
</dependencies>
</profile>

<profile>
Expand Down
191 changes: 95 additions & 96 deletions liquibase-dist/src/main/assembly/assembly-bin-common.xml
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
<!-- include all this in the tar file -->
<component>
<fileSets>
<fileSet>
<directory>${project.build.directory}/archive</directory>
<outputDirectory>${file.separator}</outputDirectory>
<lineEnding>unix</lineEnding>
<includes>
<include>liquibase</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>${project.build.directory}/archive</directory>
<!--
<outputDirectory>${file.separator}</outputDirectory> is there because maven-assembly-plugin would
complain on Windows otherwise:
"OS=Windows and the assembly descriptor contains a *nix-specific root-relative-reference (starting with slash) /"
-->
<outputDirectory>${file.separator}</outputDirectory>
<lineEnding>dos</lineEnding>
<includes>
<include>*.bat</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.build.directory}/archive</directory>
<outputDirectory>${file.separator}</outputDirectory>
<lineEnding>unix</lineEnding>
<excludes>
<exclude>liquibase</exclude>
<exclude>*.bat</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>${project.build.directory}/site/apidocs</directory>
<outputDirectory>javadoc</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.basedir}/../liquibase-standard/target/classes/liquibase/examples</directory>
<outputDirectory>examples</outputDirectory>
<includes>
<include>**/*</include>
</includes>
<fileSets>
<fileSet>
<directory>${project.build.directory}/archive</directory>
<outputDirectory>${file.separator}</outputDirectory>
<lineEnding>unix</lineEnding>
<includes>
<include>liquibase</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>${project.build.directory}/archive</directory>
<!--
<outputDirectory>${file.separator}</outputDirectory> is there because maven-assembly-plugin would
complain on Windows otherwise:
"OS=Windows and the assembly descriptor contains a *nix-specific root-relative-reference (starting with slash) /"
-->
<outputDirectory>${file.separator}</outputDirectory>
<lineEnding>dos</lineEnding>
<includes>
<include>*.bat</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.build.directory}/archive</directory>
<outputDirectory>${file.separator}</outputDirectory>
<lineEnding>unix</lineEnding>
<excludes>
<exclude>liquibase</exclude>
<exclude>*.bat</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>${project.build.directory}/site/apidocs</directory>
<outputDirectory>javadoc</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.basedir}/../liquibase-standard/target/classes/liquibase/examples</directory>
<outputDirectory>examples</outputDirectory>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/start-h2*</exclude>
</excludes>
Expand All @@ -65,49 +65,48 @@
<include>**/start-h2.bat</include>
</includes>
<lineEnding>dos</lineEnding>
</fileSet>
</fileSets>
<files>
<!-- specifying the outputDirectory as file.separator puts it in the root -->
<file>
<source>../ABOUT.txt</source>
<outputDirectory>${file.separator}</outputDirectory>
</file>
<file>
<source>../changelog.txt</source>
<outputDirectory>${file.separator}</outputDirectory>
</file>
</files>
<dependencySets>
<dependencySet>
<outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
<outputDirectory>internal/lib</outputDirectory>
</fileSet>
</fileSets>
<files>
<!-- specifying the outputDirectory as file.separator puts it in the root -->
<file>
<source>../ABOUT.txt</source>
<outputDirectory>${file.separator}</outputDirectory>
</file>
<file>
<source>../changelog.txt</source>
<outputDirectory>${file.separator}</outputDirectory>
</file>
</files>
<dependencySets>
<dependencySet>
<outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
<outputDirectory>internal/lib</outputDirectory>
<useTransitiveFiltering>true</useTransitiveFiltering>
<scope>runtime</scope>
<includes>
<include>org.liquibase:liquibase-core:</include>
<include>org.liquibase:liquibase-commercial:</include>
<includes>
<include>org.liquibase:liquibase-core:</include>
<include>org.liquibase:liquibase-commercial:</include>
<include>com.opencsv:opencsv:</include>
<include>org.yaml:snakeyaml:jar:</include>
<include>javax.xml.bind:jaxb-api:jar:</include>
<include>org.yaml:snakeyaml:jar:</include>
<include>javax.xml.bind:jaxb-api:jar:</include>
<include>org.glassfish.jaxb:jaxb-runtime:jar:</include>
<include>org.glassfish.jaxb:jaxb-core:jar:</include>
<include>info.picocli:picocli:jar:</include>
<include>com.h2database:h2:jar:</include>
<include>org.hsqldb:hsqldb:jar:</include>
<include>org.postgresql:postgresql:jar</include>
<include>org.mariadb.jdbc:mariadb-java-client:jar</include>
<include>com.oracle.database.jdbc:ojdbc8:jar</include>
<include>com.microsoft.sqlserver:mssql-jdbc:jar</include>
<include>org.xerial:sqlite-jdbc:jar:</include>
<include>com.ibm.db2:jcc:jar:</include>
<include>org.firebirdsql.jdbc:jaybird:</include>
<include>info.picocli:picocli:jar:</include>
<include>com.h2database:h2:jar:</include>
<include>org.hsqldb:hsqldb:jar:</include>
<include>org.postgresql:postgresql:jar</include>
<include>org.mariadb.jdbc:mariadb-java-client:jar</include>
<include>com.oracle.database.jdbc:ojdbc8:jar</include>
<include>com.microsoft.sqlserver:mssql-jdbc:jar</include>
<include>org.xerial:sqlite-jdbc:jar:</include>
<include>com.ibm.db2:jcc:jar:</include>
<include>org.firebirdsql.jdbc:jaybird:</include>
<include>net.snowflake:snowflake-jdbc:</include>
<include>javax.resource:connector-api:</include>

<!-- CANNOT SHIP FOR LICENSE REASONS -->
<!-- <include>mysql:mysql-connector-java:jar</include> -->
</includes>
<!-- CANNOT SHIP FOR LICENSE REASONS -->
<!-- <include>mysql:mysql-connector-java:jar</include> -->
</includes>

<!-- some libraries lie about compile vs. runtime dependencies. Or we don't hit code that uses these. So exclude them manually. -->
<excludes>
Expand All @@ -122,19 +121,19 @@
<exclude>jakarta.xml.bind:jakarta.xml.bind-api:jar:</exclude> <!-- from jaxb-runtime -->
<exclude>com.sun.activation:jakarta.activation:jar:</exclude> <!-- from jaxb-runtime -->
<exclude>javax.activation:javax.activation-api:jar:</exclude> <!-- from jaxb-api -->
<exclude>org.liquibase:liquibase-snowflake:jar:</exclude> <!-- from liquibase-core -->
<exclude>org.liquibase:liquibase-cli:jar:</exclude> <!-- from liquibase-core -->
<exclude>org.liquibase:liquibase-standard:jar:</exclude> <!-- from liquibase-standard -->
<exclude>net.java.truelicense:*:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.github.jsqlparser:jsqlparser:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>org.mvel:mvel2:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>commons-codec:commons-codec:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.fasterxml.jackson.core:*:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.fasterxml.jackson.module:*:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.github.spullara.mustache.java:compiler:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>io.github.java-diff-utils:java-diff-utils:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.github.vertical-blank:sql-formatter:jar:</exclude> <!-- from liquibase-commercial -->
</excludes>
</dependencySet>
</dependencySets>
<exclude>org.liquibase:liquibase-snowflake:jar:</exclude> <!-- from liquibase-core -->
<exclude>org.liquibase:liquibase-cli:jar:</exclude> <!-- from liquibase-core -->
<exclude>org.liquibase:liquibase-standard:jar:</exclude> <!-- from liquibase-standard -->
<exclude>net.java.truelicense:*:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.github.jsqlparser:jsqlparser:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>org.mvel:mvel2:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>commons-codec:commons-codec:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.fasterxml.jackson.core:*:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.fasterxml.jackson.module:*:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.github.spullara.mustache.java:compiler:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>io.github.java-diff-utils:java-diff-utils:jar:</exclude> <!-- from liquibase-commercial -->
<exclude>com.github.vertical-blank:sql-formatter:jar:</exclude> <!-- from liquibase-commercial -->
</excludes>
</dependencySet>
</dependencySets>
</component>
21 changes: 21 additions & 0 deletions liquibase-dist/src/main/assembly/assembly-bin-scripting.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>liquibase-bin</id>
<formats>
<format>tar.gz</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<componentDescriptors>
<componentDescriptor>src/main/assembly/assembly-bin-common.xml</componentDescriptor>
</componentDescriptors>
<dependencySets>
<dependencySet>
<outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
<outputDirectory>internal/lib</outputDirectory>
<includes>
<include>
org.liquibase:liquibase-scripting:jar:
</include>
</includes>
</dependencySet>
</dependencySets>
</assembly>
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ public void run(CommandResultsBuilder resultsBuilder) throws Exception {

protected static String determineEndDelimiter(CommandScope commandScope) {
String delimiter = commandScope.getArgumentValue(DELIMITER_ARG);
return getEndDelimiter(delimiter);
}

public static String getEndDelimiter(String delimiter) {
if (delimiter == null) {
ChangeSetService service = ChangeSetServiceFactory.getInstance().createChangeSetService();
delimiter = service.getEndDelimiter(null);
Expand All @@ -101,16 +105,19 @@ protected void handleOutput(CommandResultsBuilder resultsBuilder, String output)
}

protected String getSqlScript(String sql, String sqlFile) throws IOException, LiquibaseException {
return getSqlFromSource(sql, sqlFile);
}

public static String getSqlFromSource(String sql, String sqlFile) throws IOException, LiquibaseException {
if (sqlFile == null) {
return sql;
} else {
final PathHandlerFactory pathHandlerFactory = Scope.getCurrentScope().getSingleton(PathHandlerFactory.class);
Resource resource = pathHandlerFactory.getResource(sqlFile);
if (!resource.exists()) {
throw new LiquibaseException(FileUtil.getFileNotFoundMessage(sqlFile));
}
return StreamUtil.readStreamAsString(resource.openInputStream());
}
final PathHandlerFactory pathHandlerFactory = Scope.getCurrentScope().getSingleton(PathHandlerFactory.class);
Resource resource = pathHandlerFactory.getResource(sqlFile);
if (!resource.exists()) {
throw new LiquibaseException(FileUtil.getFileNotFoundMessage(sqlFile));
}
return StreamUtil.readStreamAsString(resource.openInputStream());
}

private String handleSelect(String sqlString, Executor executor) throws DatabaseException {
Expand Down