Skip to content

Commit

Permalink
Merge branch 'master' into mark-maven-logging-deprecated
Browse files Browse the repository at this point in the history
  • Loading branch information
StevenMassaro committed Dec 28, 2021
2 parents d8af1a3 + efd286a commit fffe0cb
Show file tree
Hide file tree
Showing 39 changed files with 700 additions and 238 deletions.
29 changes: 26 additions & 3 deletions .github/workflows/build.yml
Expand Up @@ -24,6 +24,7 @@ jobs:
proBranchSha: ${{ steps.find-branches.outputs.proBranchSha }}
thisSha: ${{ steps.find-branches.outputs.thisSha }}
thisBranchName: ${{ steps.find-branches.outputs.thisBranchName }}
thisBranchFileName: ${{ steps.find-branches.outputs.thisBranchFileName }}
thisRepositoryName: ${{ steps.find-branches.outputs.thisRepositoryName }}
thisRepositoryOwner: ${{ steps.find-branches.outputs.thisRepositoryName }}
standAlonePR: ${{ steps.find-branches.outputs.standAlonePR }}
Expand Down Expand Up @@ -52,6 +53,7 @@ jobs:
core.setOutput("thisSha", helper.getCurrentSha());
core.setOutput("thisBranchName", helper.getCurrentBranch());
core.setOutput("thisBranchFileName", helper.getCurrentBranch().replace(/[^a-zA-Z0-9\-_]/g, "_"));
core.setOutput("thisRepoName", helper.getRepositoryName());
core.setOutput("thisRepoOwner", helper.getRepositoryOwner());
Expand Down Expand Up @@ -245,6 +247,15 @@ jobs:
GPG_PASSWORD: ${{ secrets.GPG_PASSPHRASE }}
run: |
mvn -B -pl liquibase-dist -P liquibase-pro source:jar package
## extract tar content for other artifacts
mkdir -p liquibase-dist/target/liquibase-0-SNAPSHOT
(cd liquibase-dist/target/liquibase-0-SNAPSHOT && tar xfz ../liquibase-0-SNAPSHOT.tar.gz)
##create zip file from tar content
(cd liquibase-dist/target/liquibase-0-SNAPSHOT && zip -r ../liquibase-0-SNAPSHOT.zip *)
##create installers
(cd liquibase-dist && ${{ github.workspace }}/.github/util/package-install4j.sh 0-SNAPSHOT)
find . -name original-*.jar -exec rm {} \;
Expand All @@ -268,20 +279,32 @@ jobs:
.github/util/sign-artifacts.sh artifacts
##prepare branch-named convenience artifacts directories
mkdir artifacts-named
cp liquibase-dist/target/liquibase-0-SNAPSHOT.tar.gz artifacts-named/liquibase-${{ needs.setup.outputs.thisBranchFileName }}.tar.gz
cp liquibase-dist/target/liquibase-0-SNAPSHOT.jar artifacts-named/liquibase-${{ needs.setup.outputs.thisBranchFileName }}.jar
cp liquibase-maven-plugin/target/liquibase-maven-plugin-0-SNAPSHOT.jar artifacts-named/liquibase-maven-plugin-${{ needs.setup.outputs.thisBranchFileName }}.jar
cp liquibase-extension-testing/target/liquibase-extension-testing-0-SNAPSHOT.jar artifacts-named/liquibase-extension-testing-${{ needs.setup.outputs.thisBranchFileName }}.jar
- name: Archive Packages
uses: actions/upload-artifact@v2
with:
name: liquibase-artifacts
path: artifacts/*

## convenience zip for faster download
- name: Archive Zip
- name: Archive Convenience Zip
uses: actions/upload-artifact@v2
with:
name: liquibase-zip-${{ needs.setup.outputs.thisBranchName }}
name: liquibase-zip-${{ needs.setup.outputs.thisBranchFileName }}
path: liquibase-dist/target/liquibase-0-SNAPSHOT/*

- name: Archive Convenience Artifacts
uses: actions/upload-artifact@v2
with:
name: liquibase-artifacts-${{ needs.setup.outputs.thisBranchFileName }}
path: artifacts-named/*


finish:
name: Finish Build
runs-on: ubuntu-latest
Expand Down
52 changes: 32 additions & 20 deletions .github/workflows/snyk.yml
@@ -1,5 +1,5 @@
# Run Snyk nightly to scan and report security issues.
name: Nightly Snyk Scan
name: Snyk Scan

# Job will run nightly at 02:05 EDT / 01:05 CDT
# Time below is UTC
Expand All @@ -13,32 +13,44 @@ jobs:
name: Snyk Security Scan
runs-on: ubuntu-latest
steps:
- name: Set up JDK
- uses: actions/checkout@v2

- name: Set up JDK 8
uses: actions/setup-java@v2
with:
java-version: 8
distribution: 'adopt'
cache: 'maven'

- name: Checkout Master Branch
uses: actions/checkout@v2

- name: Run Snyk Test to check for vulnerabilities
id: test
uses: snyk/actions/maven@master
timeout-minutes: 10
## Need to install the snyk CLI and not use the github action because the action runs snyk in a separate docker container which does not have access to the installed sub-modules.
- name: Install snyk
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
command: test
args: --fail-on=all --severity-threshold=high --all-projects --org=datical
run: |
curl -s https://static.snyk.io/cli/latest/snyk-linux -o snyk
ls -l snyk
chmod 755 snyk
./snyk config set api="$SNYK_TOKEN"
## When snyk --all-projects is ran, it runs `mvn dependency:tree` against each pom individually, and since they reference dependencies on liquibase-core:0-SNAPSHOT etc. those dependencies need to be installed for dependency:tree to succeed.
## This builds and installs the sub-modules so they are available. The liquibase-core:test module has to be installed manually since it wasn't coming along with the regular mvn install
- name: Install modules
run: |
mvn -B -pl '!liquibase-dist' test-compile install -DskipTests=true
mvn -B org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install-file -Dfile=liquibase-core/target/liquibase-core-0-SNAPSHOT-tests.jar -Dpackaging=jar -Dclassifier=tests -DgroupId=org.liquibase -DartifactId=liquibase-core
## snyk monitor requires --all-projects because otherwise it only reports on the dependencies of one of the sub-modules. It would be nice if we could have one snyk project which included all the sub-modules in it, but that doesn't seem possible at this point
## Run monitor before test, so that we report results even if the test step fails
- name: Report snyk status to web UI
run: |
./snyk monitor --all-projects --org=datical --policy-path=.snyk -- -B -Dscope=compile
## snyk test requires --all-projects because otherwise it does not fail the run when a problem is found. It just prints "no direct upgrade or path" and continues on
## Running with -Dscope=compile in order to report only on shipped modules, not "test" or "provided" scope ones
- name: Run Snyk Test to check for vulnerabilities
run: |
./snyk test --fail-on=all --all-projects --severity-threshold=high --org=datical --policy-path=.snyk -- -B -Dscope=compile
- name: Run Snyk Monitor
uses: snyk/actions/maven@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
command: monitor
args: --all-projects --org=datical
- name: Slack Notification
if: ${{ failure() }}
Expand All @@ -48,7 +60,7 @@ jobs:
SLACK_COLOR: ${{ job.status }} # or a specific color like 'good' or '#ff00ff'
SLACK_MESSAGE: "${{ github.job }}: ${{ job.status }} @here"
SLACK_USERNAME: "liquibot"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_WEBHOOK: ${{ secrets.SNYK_LIQUIBASE_SLACK_WEBHOOK }}
MSG_MINIMAL: actions url
SLACK_ICON_EMOJI: ':liquibase:'
SLACK_LINK_NAMES: true
10 changes: 10 additions & 0 deletions .snyk
@@ -0,0 +1,10 @@
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.22.1
# ignores vulnerabilities until expiry date; change duration by modifying expiry date
ignore:
SNYK-JAVA-COMH2DATABASE-1769238:
- '*':
reason: test dependency
expires: 2022-02-01T00:00:00.000Z
created: 2021-12-15T16:39:03.089Z
patch: {}
12 changes: 0 additions & 12 deletions .travis/maven.settings.xml

This file was deleted.

20 changes: 0 additions & 20 deletions .travis/mssql-init.sh

This file was deleted.

41 changes: 0 additions & 41 deletions .travis/mssql-init.sql

This file was deleted.

69 changes: 65 additions & 4 deletions liquibase-core/pom.xml
Expand Up @@ -57,13 +57,13 @@
<version>1.3</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
<version>4.3.1</version>
</dependency>
<version>5.0.0</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
Expand Down Expand Up @@ -155,10 +155,11 @@
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.3.0</version>
<version>5.1.2</version>
<configuration>
<instructions>
<Bundle-SymbolicName>org.liquibase.core</Bundle-SymbolicName>
<Bundle-Activator>liquibase.osgi.Activator</Bundle-Activator>
<Import-Package>
javax.activation*;resolution:=optional,
javax.servlet.*;version="[2.6,4)";resolution:=optional,
Expand All @@ -167,6 +168,66 @@
org.yaml.snakeyaml.*,
*;resolution:=optional
</Import-Package>
<Provide-Capability>
osgi.serviceloader; osgi.serviceloader=liquibase.serializer.ChangeLogSerializer,
osgi.serviceloader; osgi.serviceloader=liquibase.parser.NamespaceDetails,
osgi.serviceloader; osgi.serviceloader=liquibase.database.Database,
osgi.serviceloader; osgi.serviceloader=liquibase.change.Change,
osgi.serviceloader; osgi.serviceloader=liquibase.database.DatabaseConnection,
osgi.serviceloader; osgi.serviceloader=liquibase.precondition.Precondition,
osgi.serviceloader; osgi.serviceloader=liquibase.serializer.SnapshotSerializer,
osgi.serviceloader; osgi.serviceloader=liquibase.configuration.AutoloadedConfigurations,
osgi.serviceloader; osgi.serviceloader=liquibase.diff.DiffGenerator,
osgi.serviceloader; osgi.serviceloader=liquibase.lockservice.LockService,
osgi.serviceloader; osgi.serviceloader=liquibase.changelog.ChangeLogHistoryService,
osgi.serviceloader; osgi.serviceloader=liquibase.datatype.LiquibaseDataType,
osgi.serviceloader; osgi.serviceloader=liquibase.configuration.ConfigurationValueProvider,
osgi.serviceloader; osgi.serviceloader=liquibase.logging.LogService,
osgi.serviceloader; osgi.serviceloader=liquibase.snapshot.SnapshotGenerator,
osgi.serviceloader; osgi.serviceloader=liquibase.parser.ChangeLogParser,
osgi.serviceloader; osgi.serviceloader=liquibase.servicelocator.ServiceLocator,
osgi.serviceloader; osgi.serviceloader=liquibase.diff.compare.DatabaseObjectComparator,
osgi.serviceloader; osgi.serviceloader=liquibase.command.LiquibaseCommand,
osgi.serviceloader; osgi.serviceloader=liquibase.license.LicenseService,
osgi.serviceloader; osgi.serviceloader=liquibase.diff.output.changelog.ChangeGenerator,
osgi.serviceloader; osgi.serviceloader=liquibase.executor.Executor,
osgi.serviceloader; osgi.serviceloader=liquibase.structure.DatabaseObject,
osgi.serviceloader; osgi.serviceloader=liquibase.parser.SnapshotParser,
osgi.serviceloader; osgi.serviceloader=liquibase.hub.HubService,
osgi.serviceloader; osgi.serviceloader=liquibase.command.CommandStep,
osgi.serviceloader; osgi.serviceloader=liquibase.sqlgenerator.SqlGenerator
</Provide-Capability>
<Require-Capability>
osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)",
osgi.extender; filter:="(osgi.extender=osgi.serviceloader.processor)",
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.serializer.ChangeLogSerializer)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.parser.NamespaceDetails)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.database.Database)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.change.Change)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.database.DatabaseConnection)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.precondition.Precondition)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.serializer.SnapshotSerializer)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.configuration.AutoloadedConfigurations)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.diff.DiffGenerator)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.lockservice.LockService)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.changelog.ChangeLogHistoryService)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.datatype.LiquibaseDataType)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.configuration.ConfigurationValueProvider)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.logging.LogService)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.snapshot.SnapshotGenerator)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.parser.ChangeLogParser)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.servicelocator.ServiceLocator)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.diff.compare.DatabaseObjectComparator)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.command.LiquibaseCommand)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.license.LicenseService)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.diff.output.changelog.ChangeGenerator)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.executor.Executor)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.structure.DatabaseObject)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.parser.SnapshotParser)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.hub.HubService)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.command.CommandStep)"; cardinality:=multiple,
osgi.serviceloader; filter:="(osgi.serviceloader=liquibase.sqlgenerator.SqlGenerator)"; cardinality:=multiple
</Require-Capability>
</instructions>
</configuration>
<executions>
Expand Down
3 changes: 3 additions & 0 deletions liquibase-core/src/main/java/liquibase/Scope.java
Expand Up @@ -11,6 +11,7 @@
import liquibase.logging.Logger;
import liquibase.logging.core.JavaLogService;
import liquibase.logging.core.LogServiceFactory;
import liquibase.osgi.Activator;
import liquibase.resource.ClassLoaderResourceAccessor;
import liquibase.resource.ResourceAccessor;
import liquibase.servicelocator.ServiceLocator;
Expand Down Expand Up @@ -55,6 +56,7 @@ public enum Attr {
fileEncoding,
databaseChangeLog,
changeSet,
osgiPlatform
}

private static ScopeManager scopeManager;
Expand Down Expand Up @@ -95,6 +97,7 @@ public static Scope getCurrentScope() {
}

rootScope.values.put(Attr.serviceLocator.name(), serviceLocator);
rootScope.values.put(Attr.osgiPlatform.name(), Activator.OSGIContainerChecker.isOsgiPlatform());
}
return scopeManager.getCurrentScope();
}
Expand Down

0 comments on commit fffe0cb

Please sign in to comment.