From 585286e4720f337a59de173f6a8837fada724024 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Fri, 12 May 2023 09:39:27 -0700 Subject: [PATCH] Revert "Resolve errors in layers.xsd" for 2.5 Revert layers.xsd fix to reduce risk of a regression since it has not yet made it into a 2.5 release. This reverts commit f185b0767a71c2c326769bafea5966b677d6be00, reversing changes made to bf3c6dfdba595f81722cd904723532a2593b7ca5. See gh-31126 --- .../spring-boot-maven-plugin/build.gradle | 17 ++-------- .../boot/maven/AbstractPackagerMojo.java | 3 +- .../boot/maven/CustomLayersProvider.java | 32 +------------------ .../src/main/xsd/layers-2.3.xsd | 6 ++-- .../src/main/xsd/layers-2.4.xsd | 10 +++--- .../src/main/xsd/layers-2.5.xsd | 10 +++--- .../boot/maven/CustomLayersProviderTests.java | 3 +- 7 files changed, 18 insertions(+), 63 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle index f220f448ebd..a8e7b881fb1 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle @@ -64,11 +64,6 @@ dependencies { versionProperties(project(path: ":spring-boot-project:spring-boot-dependencies", configuration: "effectiveBom")) } -ext { - versionElements = version.split("\\.") - xsdVersion = versionElements[0] + "." + versionElements[1] -} - syncDocumentationSourceForAsciidoctor { from(documentPluginGoals) { into "asciidoc/goals" @@ -76,9 +71,6 @@ syncDocumentationSourceForAsciidoctor { } sourceSets { - main { - output.dir("${buildDir}/generated/resources/xsd", builtBy: "xsdResources") - } intTest { output.dir("${buildDir}/generated-resources", builtBy: "extractVersionProperties") } @@ -86,7 +78,8 @@ sourceSets { tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) { doFirst { - attributes "spring-boot-xsd-version" : project.ext.xsdVersion + def versionEl = version.split("\\.") + attributes "spring-boot-xsd-version": versionEl[0] + '.' + versionEl[1] } } @@ -136,12 +129,6 @@ task zip(type: Zip) { } } -task xsdResources(type: Sync) { - from "src/main/xsd/layers-${project.ext.xsdVersion}.xsd" - into "${buildDir}/generated/resources/xsd/org/springframework/boot/maven" - rename { fileName -> "layers.xsd" } -} - prepareMavenBinaries { versions "3.8.1", "3.6.3", "3.5.4" } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractPackagerMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractPackagerMojo.java index 82ff6455e40..3ce19bf4c10 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractPackagerMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractPackagerMojo.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -171,7 +171,6 @@ public abstract class AbstractPackagerMojo extends AbstractDependencyFilterMojo private Document getDocumentIfAvailable(File xmlFile) throws Exception { InputSource inputSource = new InputSource(new FileInputStream(xmlFile)); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); return builder.parse(inputSource); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/CustomLayersProvider.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/CustomLayersProvider.java index 2889520bd40..5d01b34caa9 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/CustomLayersProvider.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/CustomLayersProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,24 +16,16 @@ package org.springframework.boot.maven; -import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; -import javax.xml.XMLConstants; -import javax.xml.transform.dom.DOMSource; -import javax.xml.validation.Schema; -import javax.xml.validation.SchemaFactory; -import javax.xml.validation.Validator; - import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; import org.springframework.boot.loader.tools.Layer; import org.springframework.boot.loader.tools.Library; @@ -53,7 +45,6 @@ import org.springframework.boot.loader.tools.layer.LibraryContentFilter; class CustomLayersProvider { CustomLayers getLayers(Document document) { - validate(document); Element root = document.getDocumentElement(); List> applicationSelectors = getApplicationSelectors(root); List> librarySelectors = getLibrarySelectors(root); @@ -61,27 +52,6 @@ class CustomLayersProvider { return new CustomLayers(layers, applicationSelectors, librarySelectors); } - private void validate(Document document) { - Schema schema = loadSchema(); - try { - Validator validator = schema.newValidator(); - validator.validate(new DOMSource(document)); - } - catch (SAXException | IOException ex) { - throw new IllegalStateException("Invalid layers.xml configuration", ex); - } - } - - private Schema loadSchema() { - try { - SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); - return factory.newSchema(getClass().getResource("layers.xsd")); - } - catch (SAXException ex) { - throw new IllegalStateException("Unable to load layers XSD"); - } - } - private List> getApplicationSelectors(Element root) { return getSelectors(root, "application", (element) -> getSelector(element, ApplicationContentFilter::new)); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/xsd/layers-2.3.xsd b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/xsd/layers-2.3.xsd index c5c68586516..01eca01439c 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/xsd/layers-2.3.xsd +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/xsd/layers-2.3.xsd @@ -6,9 +6,9 @@ - - - + + + diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/xsd/layers-2.4.xsd b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/xsd/layers-2.4.xsd index 20219b9bd8b..e793e2e0080 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/xsd/layers-2.4.xsd +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/xsd/layers-2.4.xsd @@ -6,9 +6,9 @@ - - - + + + @@ -78,14 +78,14 @@ - + - + - - - + + + @@ -78,14 +78,14 @@ - + - +