Hi Steinar, May I suggest you re-open/recreate the issue on the Liquibase bugtracker ?
Meanwhile you can build your own liquibase-core bundle using a pom.xml like below, you simple add your own version of src/main/java/liquibase/parser/core/xml/LiquibaseEntityResolver.java to the project (I noticed I've added an empty src\main\resources\META-INF\servicesliquibase.license.LicenseService as well, maybe that fixes the encryption exception) ---------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>your.domain.org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <packaging>bundle</packaging> <version>4.9.1.1-SNAPSHOT</version> <!-- A wrapped bundle to contain liquibase-core --> <properties> <liquibase.version>4.9.1</liquibase.version> </properties> <dependencies> <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>${liquibase.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>3.0.0-M5</version> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>5.1.4</version> <extensions>true</extensions> <configuration> <instructions> <Bundle-Activator>liquibase.osgi.Activator</Bundle-Activator> <Bundle-Name>${project.name}</Bundle-Name> <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName> <Import-Package> javax.activation*;resolution:=optional, javax.servlet.*;version="[2.6,4)";resolution:=optional, javax.sql.*, org.osgi.*, org.yaml.snakeyaml.*, *;resolution:=optional </Import-Package> <Export-Package> liquibase.*;version="${liquibase.version}", </Export-Package> <Embed-Dependency>liquibase-core;inline=true</Embed-Dependency> <Include-Resource> {maven-resources}, {maven-dependencies}, liquibase=target/classes/liquibase </Include-Resource> <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> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>7</source> <target>7</target> </configuration> </plugin> </plugins> </build> <scm> <!-- TODO --> </scm> <distributionManagement> <!-- TODO --> </distributionManagement> </project> On Sun, Aug 14, 2022 at 5:30 PM Steinar Bang <s...@dod.no> wrote: > >>>>> Steven Huypens <steven.huyp...@gmail.com>: > > > Hi Steinar, > > The xsd stacktrace can be explained by this liquibase-issue I think : > > https://github.com/liquibase/liquibase/issues/2817 > > > They closed it incorrectly imho > > The "fix" was just changed wording in the exception message...? (unless > I'm missing something...? > > If so, then I agree with you. > > I know from googling that Nathan Woxland is reluctant to making XML > parsing not requiring validation (a stack overflow answer from 2010, I > think it was), so not requiring XSDs is not an option. > > I have managed to make a workaround/hackaround, by slurping the > offending XSD file out of liquibase-core: > > https://gist.github.com/steinarb/96840701be3aa387f670b191f44ac14d#file-pom-xml-L164 > and then adding it to the resource classpath of the bundle liquibase is > executed from > > https://gist.github.com/steinarb/96840701be3aa387f670b191f44ac14d#file-pom-xml-L157 > (liquibase looks in www.liquibase.org/xml/ns/dbchangelog/ on the > classpath, for the XSD files) > > But with the additional require-capability > > https://gist.github.com/steinarb/96840701be3aa387f670b191f44ac14d#file-pom-xml-L127 > it does feel to me, like liquibase 4.x isn't very OSGi friendly... all > of this have to be done in the build config for every bundle that is to > run liquibase... > > Oh well! > >