Skip to content

Update dependency org.owasp.encoder:encoder to v1.6.0 - #3150

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/org.owasp.encoder-encoder-1.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/org.owasp.encoder-encoder-1.x

Update dependency org.owasp.encoder:encoder to v1.6.0

abb6788
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
GitHub Actions / JUnit Maven 26 windows-latest failed Oct 21, 2026 in 0s

233 tests run, 229 passed, 2 skipped, 2 failed.

Annotations

Check failure on line 50 in plugin-maven\src\test\java\com\diffplug\spotless\maven\groovy\GrEclipseTest.java

See this annotation in the file changed.

@github-actions github-actions / JUnit Maven 26 windows-latest

GrEclipseTest.doesNotFormatJavaFiles()

org.opentest4j.AssertionFailedError: [Run without error > arguments: [cmd, /c, mvnw -e spotless:apply]
> exit code: 1
>    stdout: (below)
> [INFO] Error stacktraces are turned on.
> [INFO] Scanning for projects...
> [INFO]                                                                         
> [INFO] ------------------------------------------------------------------------
> [INFO] Building Spotless Maven Plugin Tests 1.0.0-SNAPSHOT
> [INFO] ------------------------------------------------------------------------
> [INFO] 
> [INFO] --- spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) @ spotless-maven-plugin-tests ---
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 2.143 s
> [INFO] Finished at: 2026-10-21T15:25:48+00:00
> [INFO] Final Memory: 15M/54M
> [INFO] ------------------------------------------------------------------------
> [ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) on project spotless-maven-plugin-tests: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies: We could not parse the content at https://download.eclipse.org/eclipse/updates/4.25/p2.index:
> [ERROR] 
> [ERROR] <!DOCTYPE html>
> [ERROR] <html lang="en">
> [ERROR] <head>
> [ERROR] <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
> [ERROR] <meta name="description" content="Temporary offline.">
> [ERROR] <link href="favicon.ico" rel=icon type=image/x-icon>
> [ERROR] <meta name="robots" content="follow, noarchive, noindex">
> [ERROR] <title>Git content has moved.</title>
> [ERROR] <style>
> [ERROR] :root {
> [ERROR] --primary-color: #f7941e;
> [ERROR] --primary-dark: #F06C02;
> [ERROR] --primary-gradient: linear-gradient(180deg, #F06C02 0%, #A34201 100%);
> [ERROR] --text-color: #2c2c2c;
> [ERROR] --secondary-text: #666;
> [ERROR] --link-color: #f7941e;
> [ERROR] --border-color: #e8e8e8;
> [ERROR] --card-color: white;
> [ERROR] }
> [ERROR] body {
> [ERROR] margin: 0;
> [ERROR] padding: 0;
> [ERROR] font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
> [ERROR] color: var(--text-color);
> [ERROR] line-height: 1.6;
> [ERROR] min-height: 100vh;
> [ERROR] display: flex;
> [ERROR] flex-direction: column;
> [ERROR] }
> [ERROR] main {
> [ERROR] flex: 1;
> [ERROR] display: flex;
> [ERROR] align-items: center;
> [ERROR] justify-content: center;
> [ERROR] padding: 2rem;
> [ERROR] }
> [ERROR] .container {
> [ERROR] background: var(--card-color);
> [ERROR] max-width: 600px;
> [ERROR] width: 100%;
> [ERROR] text-align: center;
> [ERROR] transition: transform 0.3s ease;
> [ERROR] }
> [ERROR] .logo {
> [ERROR] width: 180px;
> [ERROR] transition: transform 0.3s ease;
> [ERROR] }
> [ERROR] h1 {
> [ERROR] font-size: 2rem;
> [ERROR] color: var(--text-color);
> [ERROR] margin-bottom: 1.5rem;
> [ERROR] font-weight: 600;
> [ERROR] letter-spacing: -0.02em;
> [ERROR] }
> [ERROR] .content {
> [ERROR] margin: 2rem 0;
> [ERROR] color: var(--secondary-text);
> [ERROR] text-align: left;
> [ERROR] }
> [ERROR] .actions {
> [ERROR] list-style: none;
> [ERROR] padding: 0;
> [ERROR] margin: 2rem 0;
> [ERROR] text-align: left;
> [ERROR] }
> [ERROR] .actions li {
> [ERROR] margin: 0.75rem 0;
> [ERROR] padding-left: 1.75rem;
> [ERROR] position: relative;
> [ERROR] }
> [ERROR] .actions li::before {
> [ERROR] content: "?";
> [ERROR] color: var(--primary-color);
> [ERROR] position: absolute;
> [ERROR] left: 0;
> [ERROR] font-weight: bold;
> [ERROR] }
> [ERROR] .links {
> [ERROR] margin-top: 2.5rem;
> [ERROR] display: flex;
> [ERROR] gap: 1rem;
> [ERROR] justify-content: center;
> [ERROR] flex-wrap: wrap;
> [ERROR] }
> [ERROR] .links a {
> [ERROR] font-weight: 700;
> [ERROR] text-decoration: none;
> [ERROR] padding: 0.75rem 1.5rem;
> [ERROR] border-radius: 50px;
> [ERROR] font-size: 1rem;
> [ERROR] position: relative;
> [ERROR] }
> [ERROR] .links a.secondary {
> [ERROR] color: var(--primary-dark);
> [ERROR] }
> [ERROR] .links a.secondary::after {
> [ERROR] content: "?";
> [ERROR] color: var(--primary-dark);
> [ERROR] position: absolute;
> [ERROR] right: 0;
> [ERROR] top: 50%;
> [ERROR] transform: translateY(-50%);
> [ERROR] font-weight: bold;
> [ERROR] }
> [ERROR] .links a.primary {
> [ERROR] background: linear-gradient(180deg, var(--primary-dark) 0%, var(--primary-dark) 100%);
> [ERROR] color: white;
> [ERROR] }
> [ERROR] .links a.primary:hover {
> [ERROR] background: var(--primary-gradient);
> [ERROR] }
> [ERROR] footer {
> [ERROR] background: white;
> [ERROR] border-top: 1px solid var(--border-color);
> [ERROR] padding: 1.5rem;
> [ERROR] font-size: 0.875rem;
> [ERROR] color: var(--secondary-text);
> [ERROR] text-align: center;
> [ERROR] }
> [ERROR] .footer-links {
> [ERROR] margin-top: 1rem;
> [ERROR] display: flex;
> [ERROR] flex-wrap: wrap;
> [ERROR] justify-content: center;
> [ERROR] gap: 1rem;
> [ERROR] }
> [ERROR] .footer-links a {
> [ERROR] color: var(--secondary-text);
> [ERROR] text-decoration: none;
> [ERROR] transition: color 0.3s ease;
> [ERROR] }
> [ERROR] .footer-links a:hover {
> [ERROR] color: var(--primary-color);
> [ERROR] }
> [ERROR] @media (max-width: 640px) {
> [ERROR] main {
> [ERROR] padding: 1rem;
> [ERROR] }
> [ERROR] html {
> [ERROR] font-size: 14px;
> [ERROR] }
> [ERROR] .links a.secondary::after {
> [ERROR] display: none;
> [ERROR] }
> [ERROR] .logo {
> [ERROR] width: 140px;
> [ERROR] }
> [ERROR] .links a {
> [ERROR] padding: 0.2rem 1rem;
> [ERROR] }
> [ERROR] }
> [ERROR] </style>
> [ERROR] </head>
> [ERROR] <body><main>
> [ERROR] <div class="container">
> [ERROR] <img
> [ERROR] src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyODMuMiA5MC43Ij4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjkuMi4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjAgQnVpbGQgMTE2KSAgLS0+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5zdDAgewogICAgICAgIGZpbGw6ICNmMDZjMDI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNjUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3YxMVpNMjMzLjMsNzUuN2M0LjIsMCw1LjgsMy4zLDUuOCw2LjNzLTEuNiw2LTUuOCw2LTUuNy0zLjEtNS44LTYsMS43LTYuMyw1LjgtNi4zWk0yMzMuMyw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yMTIuMSw5MC43di0xNy43aC0zLjN2MTcuN2gzLjNaTTE4OC41LDkwLjdoMy4zdi0xNC43aDUuNnYtM2gtMTQuNnYzaDUuNnYxNC43aDBaTTE2OS42LDg0LjJoLTYuNmwzLjMtNy42LDMuMyw3LjZaTTE3Mi40LDkwLjdoMy42bC03LjktMTcuN2gtMy42bC04LDE3LjdoMy42bDEuNS0zLjNoOS4zbDEuNSwzLjNoMFpNMTM0LjQsNzYuMWgzLjZjMy45LDAsNS41LDIuOCw1LjUsNS41cy0xLjUsNS44LTUuNSw1LjhoLTMuNnYtMTEuNGgwWk0xMzguMSw3M2gtNi45djE3LjdoNi45YzYuMiwwLDguOS00LjUsOC45LTlzLTIuOC04LjctOC45LTguN2gwWk0xMTUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3MwLDExLDAsMTFaTTg4LjIsNzN2MTAuMmMwLDMtMS42LDQuOS00LjMsNC45cy00LjYtMS43LTQuNi00Ljl2LTEwLjFoLTMuM3YxMC4xYzAsNS4zLDMuNiw3LjksNy45LDcuOXM3LjctMi43LDcuNy03Ljl2LTEwLjFoLTMuNFpNNTUuMiw3NS43YzQuMiwwLDUuOCwzLjMsNS44LDYuM3MtMS42LDYtNS44LDYtNS43LTMuMS01LjgtNiwxLjctNi4zLDUuOC02LjNoMFpNNTUuMiw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yNS41LDkwLjd2LTYuNWg4Ljl2LTMuMWgtOC45di00LjhoOS40di0zLjJoLTEyLjd2MTcuNmgzLjNaIi8+CiAgPHBhdGggZD0iTTI2OS40LDU0LjRoLTIyLjJ2LTguOWgyMS40di02LjloLTIxLjR2LTkuMWgyMi4ydi03LjJoLTI5LjZ2MzkuNWgyOS42di03LjNoMFpNMjI5LjQsMjguOGMtMy02LjEtOS40LTcuOC0xNS41LTcuOHMtMTUuMywzLjQtMTUuMywxMS41LDcuNCwxMSwxNS41LDEyYzUuMi42LDkuMSwyLjEsOS4xLDUuOHMtNC40LDUuOS05LjEsNS45LTkuNC0xLjktMTEuMS02LjNsLTYuMiwzLjJjMi45LDcuMiw5LjEsOS43LDE3LjIsOS43czE2LjYtMy44LDE2LjYtMTIuNi03LjctMTEuNi0xNS45LTEyLjZjLTQuNy0uNi04LjgtMS41LTguOC01czIuNi01LjIsOC4yLTUuMiw4LDIuMiw5LjQsNC40bDUuOS0zaDBaTTE3NiwyMi4yaC0xOC42djM5LjVoNy40di0xMS42aDExLjJjMTkuNCwwLDE5LjMtMjcuOSwwLTI3LjloMFpNMTY0LjksMjkuM2gxMS4yYzkuNSwwLDkuNSwxNCwwLDE0aC0xMS4ydi0xNFpNMTQ2LjksNjEuOFYyMi4yaC03LjR2MzkuNWg3LjRaTTEwMi45LDIyLjJ2MzkuNWgyNy44di02LjloLTIwLjNWMjIuMnMtNy41LDAtNy41LDBaTTkwLjcsNTEuN2MtMi43LDIuNS02LjIsNC05LjksNC05LjgsMC0xMy41LTYuOC0xMy42LTEzLjRzNC4xLTEzLjcsMTMuNi0xMy43LDcsMS4zLDkuNSwzLjdsNS00LjhjLTMuOC0zLjktOS4xLTYtMTQuNS02LTE0LjMsMC0yMSwxMC41LTIwLjksMjAuOCwwLDEwLjMsNi4zLDIwLjMsMjAuOSwyMC4zLDUuNiwwLDExLTIsMTUtNS45bC01LjEtNS4xaDBaTTUxLjcsNTQuNGgtMjIuMnYtOC45aDIxLjR2LTYuOWgtMjEuNHYtOS4xaDIyLjJ2LTcuMmgtMjkuNXYzOS41aDI5LjZ2LTcuM2gtLjFaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTkuOCwxOC4yQzE4LjgsNC4xLDM3LS44LDUyLjEsNS45bC0xLS43QzM1LjYtNC42LDE1LjEtLjIsNS4zLDE1LjMtNC42LDMwLjctLjIsNTEuMiwxNS4zLDYxLjFsMS4xLjZDMy44LDUwLjguOCwzMi4zLDkuOCwxOC4yWiIvPgogIDxwYXRoIGQ9Ik0yNzIuMiwyNi4xaDBjMC0yLjUsMi4xLTQuNiw0LjYtNC42czQuNiwyLjEsNC42LDUuNmgwYzAsMi41LTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42Wk0yODAuOCwyNi4xaDBjMC0yLjItMS44LTQuMS00LTQuMXMtNC4xLDEuOC00LjEsNC4xaDBjMCwyLjIsMS43LDQsMy45LDQuMWguMWMyLjIsMCw0LjEtMS44LDQuMS00aDBaTTI3NC44LDIzLjZoMi4zYzEuMSwwLDEuOS41LDEuOSwxLjZzLS40LDEuMy0xLjEsMS41bDEuMiwxLjdoLTEuNGwtMS0xLjVoLS43djEuNWgtMS4xdi00LjdoMFpNMjc3LDI1LjljLjUsMCwuOC0uMy44LS43cy0uMy0uNy0uOC0uN2gtMXYxLjNoMVoiLz4KPC9zdmc+"
> [ERROR] alt="Eclipse Foundation" class="logo">
> [ERROR] <h1>Temporary shutdown.</h1>
> [ERROR] <section class="content">
> [ERROR] <p>The Eclipse Foundation service you are trying to reach has been temporarily shutdown.</p>
> [ERROR] <p>We apologize for the inconvenience and will be back soon.</p>
> [ERROR] </section>
> [ERROR] </div>
> [ERROR] </main>
> [ERROR] <footer>
> [ERROR] <div>� Eclipse Foundation AISBL. All Rights Reserved.</div>
> [ERROR] <div class="footer-links"><a href="https://www.eclipse.org/">Eclipse.org</a><a href="https://www.eclipse.org/legal/privacy/">Privacy Policy</a><a href="https://www.eclipse.org/legal/terms-of-use/">Terms of Use</a><a href="https://www.eclipse.org/legal/compliance/">Compliance</a><a href="https://www.eclipse.org/legal/">Legal</a></div>
> [ERROR] </footer>
> [ERROR] </body></html>: No match found
> [ERROR] -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) on project spotless-maven-plugin-tests: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
> 	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
> 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
> 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
> 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39)
> 	at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122)
> 	at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:55)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:143)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
> 	... 22 more
> Caused by: com.diffplug.spotless.ThrowingEx$WrappedAsRuntimeException: java.io.IOException: Failed to provision P2 dependencies
> 	at com.diffplug.spotless.ThrowingEx.asRuntime(ThrowingEx.java:95)
> 	at com.diffplug.spotless.JarState$Promised.get(JarState.java:81)
> 	at com.diffplug.spotless.JarState$Promised.writeObject(JarState.java:88)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1453)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1410)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1453)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:414)
> 	at com.diffplug.spotless.FormatterStepSerializationRoundtrip.writeObject(FormatterStepSerializationRoundtrip.java:84)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at java.base/java.util.ArrayList.writeObject(ArrayList.java:957)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at com.diffplug.spotless.Formatter.writeObject(Formatter.java:56)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at com.diffplug.spotless.maven.incremental.PluginFingerprint.digest(PluginFingerprint.java:109)
> 	at com.diffplug.spotless.maven.incremental.PluginFingerprint.from(PluginFingerprint.java:48)
> 	at com.diffplug.spotless.maven.incremental.IndexBasedChecker.create(IndexBasedChecker.java:43)
> 	at com.diffplug.spotless.maven.incremental.UpToDateChecker.forProject(UpToDateChecker.java:40)
> 	at com.diffplug.spotless.maven.AbstractSpotlessMojo.createUpToDateChecker(AbstractSpotlessMojo.java:473)
> 	at com.diffplug.spotless.maven.AbstractSpotlessMojo.execute(AbstractSpotlessMojo.java:284)
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
> 	... 23 more
> Caused by: java.io.IOException: Failed to provision P2 dependencies
> 	at com.diffplug.spotless.extra.P2Provisioner.lambda$createDefault$0(P2Provisioner.java:87)
> 	at com.diffplug.spotless.extra.EquoBasedStepBuilder.lambda$build$0(EquoBasedStepBuilder.java:135)
> 	at com.diffplug.spotless.JarState$Promised.get(JarState.java:75)
> 	... 67 more
> Caused by: java.lang.UnsupportedOperationException: We could not parse the content at https://download.eclipse.org/eclipse/updates/4.25/p2.index:
> 
> <!DOCTYPE html>
> <html lang="en">
> <head>
>   <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
>   <meta name="description" content="Temporary offline.">
>   <link href="favicon.ico" rel=icon type=image/x-icon>
>   <meta name="robots" content="follow, noarchive, noindex">
>   <title>Git content has moved.</title>
>   <style>
>     :root {
>       --primary-color: #f7941e;
>       --primary-dark: #F06C02;
>       --primary-gradient: linear-gradient(180deg, #F06C02 0%, #A34201 100%);
>       --text-color: #2c2c2c;
>       --secondary-text: #666;
>       --link-color: #f7941e;
>       --border-color: #e8e8e8;
>       --card-color: white;
>     }
>     body {
>       margin: 0;
>       padding: 0;
>       font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
>       color: var(--text-color);
>       line-height: 1.6;
>       min-height: 100vh;
>       display: flex;
>       flex-direction: column;
>     }
>     main {
>       flex: 1;
>       display: flex;
>       align-items: center;
>       justify-content: center;
>       padding: 2rem;
>     }
>     .container {
>       background: var(--card-color);
>       max-width: 600px;
>       width: 100%;
>       text-align: center;
>       transition: transform 0.3s ease;
>     }
>     .logo {
>       width: 180px;
>       transition: transform 0.3s ease;
>     }
>     h1 {
>       font-size: 2rem;
>       color: var(--text-color);
>       margin-bottom: 1.5rem;
>       font-weight: 600;
>       letter-spacing: -0.02em;
>     }
>     .content {
>       margin: 2rem 0;
>       color: var(--secondary-text);
>       text-align: left;
>     }
>     .actions {
>       list-style: none;
>       padding: 0;
>       margin: 2rem 0;
>       text-align: left;
>     }
>     .actions li {
>       margin: 0.75rem 0;
>       padding-left: 1.75rem;
>       position: relative;
>     }
>     .actions li::before {
>       content: "?";
>       color: var(--primary-color);
>       position: absolute;
>       left: 0;
>       font-weight: bold;
>     }
>     .links {
>       margin-top: 2.5rem;
>       display: flex;
>       gap: 1rem;
>       justify-content: center;
>       flex-wrap: wrap;
>     }
>     .links a {
>       font-weight: 700;
>       text-decoration: none;
>       padding: 0.75rem 1.5rem;
>       border-radius: 50px;
>       font-size: 1rem;
>       position: relative;
>     }
>     .links a.secondary {
>       color: var(--primary-dark);
>     }
>     .links a.secondary::after {
>       content: "?";
>       color: var(--primary-dark);
>       position: absolute;
>       right: 0;
>       top: 50%;
>       transform: translateY(-50%);
>       font-weight: bold;
>     }
>     .links a.primary {
>       background: linear-gradient(180deg, var(--primary-dark) 0%, var(--primary-dark) 100%);
>       color: white;
>     }
>     .links a.primary:hover {
>       background: var(--primary-gradient);
>     }
>     footer {
>       background: white;
>       border-top: 1px solid var(--border-color);
>       padding: 1.5rem;
>       font-size: 0.875rem;
>       color: var(--secondary-text);
>       text-align: center;
>     }
>     .footer-links {
>       margin-top: 1rem;
>       display: flex;
>       flex-wrap: wrap;
>       justify-content: center;
>       gap: 1rem;
>     }
>     .footer-links a {
>       color: var(--secondary-text);
>       text-decoration: none;
>       transition: color 0.3s ease;
>     }
>     .footer-links a:hover {
>       color: var(--primary-color);
>     }
>     @media (max-width: 640px) {
>       main {
>         padding: 1rem;
>       }
>       html {
>         font-size: 14px;
>       }
>       .links a.secondary::after {
>         display: none;
>       }
>       .logo {
>         width: 140px;
>       }
>       .links a {
>         padding: 0.2rem 1rem;
>       }
>     }
>   </style>
> </head>
> <body><main>
>     <div class="container">
>       <img
>         src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyODMuMiA5MC43Ij4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjkuMi4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjAgQnVpbGQgMTE2KSAgLS0+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5zdDAgewogICAgICAgIGZpbGw6ICNmMDZjMDI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNjUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3YxMVpNMjMzLjMsNzUuN2M0LjIsMCw1LjgsMy4zLDUuOCw2LjNzLTEuNiw2LTUuOCw2LTUuNy0zLjEtNS44LTYsMS43LTYuMyw1LjgtNi4zWk0yMzMuMyw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yMTIuMSw5MC43di0xNy43aC0zLjN2MTcuN2gzLjNaTTE4OC41LDkwLjdoMy4zdi0xNC43aDUuNnYtM2gtMTQuNnYzaDUuNnYxNC43aDBaTTE2OS42LDg0LjJoLTYuNmwzLjMtNy42LDMuMyw3LjZaTTE3Mi40LDkwLjdoMy42bC03LjktMTcuN2gtMy42bC04LDE3LjdoMy42bDEuNS0zLjNoOS4zbDEuNSwzLjNoMFpNMTM0LjQsNzYuMWgzLjZjMy45LDAsNS41LDIuOCw1LjUsNS41cy0xLjUsNS44LTUuNSw1LjhoLTMuNnYtMTEuNGgwWk0xMzguMSw3M2gtNi45djE3LjdoNi45YzYuMiwwLDguOS00LjUsOC45LTlzLTIuOC04LjctOC45LTguN2gwWk0xMTUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3MwLDExLDAsMTFaTTg4LjIsNzN2MTAuMmMwLDMtMS42LDQuOS00LjMsNC45cy00LjYtMS43LTQuNi00Ljl2LTEwLjFoLTMuM3YxMC4xYzAsNS4zLDMuNiw3LjksNy45LDcuOXM3LjctMi43LDcuNy03Ljl2LTEwLjFoLTMuNFpNNTUuMiw3NS43YzQuMiwwLDUuOCwzLjMsNS44LDYuM3MtMS42LDYtNS44LDYtNS43LTMuMS01LjgtNiwxLjctNi4zLDUuOC02LjNoMFpNNTUuMiw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yNS41LDkwLjd2LTYuNWg4Ljl2LTMuMWgtOC45di00LjhoOS40di0zLjJoLTEyLjd2MTcuNmgzLjNaIi8+CiAgPHBhdGggZD0iTTI2OS40LDU0LjRoLTIyLjJ2LTguOWgyMS40di02LjloLTIxLjR2LTkuMWgyMi4ydi03LjJoLTI5LjZ2MzkuNWgyOS42di03LjNoMFpNMjI5LjQsMjguOGMtMy02LjEtOS40LTcuOC0xNS41LTcuOHMtMTUuMywzLjQtMTUuMywxMS41LDcuNCwxMSwxNS41LDEyYzUuMi42LDkuMSwyLjEsOS4xLDUuOHMtNC40LDUuOS05LjEsNS45LTkuNC0xLjktMTEuMS02LjNsLTYuMiwzLjJjMi45LDcuMiw5LjEsOS43LDE3LjIsOS43czE2LjYtMy44LDE2LjYtMTIuNi03LjctMTEuNi0xNS45LTEyLjZjLTQuNy0uNi04LjgtMS41LTguOC01czIuNi01LjIsOC4yLTUuMiw4LDIuMiw5LjQsNC40bDUuOS0zaDBaTTE3NiwyMi4yaC0xOC42djM5LjVoNy40di0xMS42aDExLjJjMTkuNCwwLDE5LjMtMjcuOSwwLTI3LjloMFpNMTY0LjksMjkuM2gxMS4yYzkuNSwwLDkuNSwxNCwwLDE0aC0xMS4ydi0xNFpNMTQ2LjksNjEuOFYyMi4yaC03LjR2MzkuNWg3LjRaTTEwMi45LDIyLjJ2MzkuNWgyNy44di02LjloLTIwLjNWMjIuMnMtNy41LDAtNy41LDBaTTkwLjcsNTEuN2MtMi43LDIuNS02LjIsNC05LjksNC05LjgsMC0xMy41LTYuOC0xMy42LTEzLjRzNC4xLTEzLjcsMTMuNi0xMy43LDcsMS4zLDkuNSwzLjdsNS00LjhjLTMuOC0zLjktOS4xLTYtMTQuNS02LTE0LjMsMC0yMSwxMC41LTIwLjksMjAuOCwwLDEwLjMsNi4zLDIwLjMsMjAuOSwyMC4zLDUuNiwwLDExLTIsMTUtNS45bC01LjEtNS4xaDBaTTUxLjcsNTQuNGgtMjIuMnYtOC45aDIxLjR2LTYuOWgtMjEuNHYtOS4xaDIyLjJ2LTcuMmgtMjkuNXYzOS41aDI5LjZ2LTcuM2gtLjFaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTkuOCwxOC4yQzE4LjgsNC4xLDM3LS44LDUyLjEsNS45bC0xLS43QzM1LjYtNC42LDE1LjEtLjIsNS4zLDE1LjMtNC42LDMwLjctLjIsNTEuMiwxNS4zLDYxLjFsMS4xLjZDMy44LDUwLjguOCwzMi4zLDkuOCwxOC4yWiIvPgogIDxwYXRoIGQ9Ik0yNzIuMiwyNi4xaDBjMC0yLjUsMi4xLTQuNiw0LjYtNC42czQuNiwyLjEsNC42LDUuNmgwYzAsMi41LTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42Wk0yODAuOCwyNi4xaDBjMC0yLjItMS44LTQuMS00LTQuMXMtNC4xLDEuOC00LjEsNC4xaDBjMCwyLjIsMS43LDQsMy45LDQuMWguMWMyLjIsMCw0LjEtMS44LDQuMS00aDBaTTI3NC44LDIzLjZoMi4zYzEuMSwwLDEuOS41LDEuOSwxLjZzLS40LDEuMy0xLjEsMS41bDEuMiwxLjdoLTEuNGwtMS0xLjVoLS43djEuNWgtMS4xdi00LjdoMFpNMjc3LDI1LjljLjUsMCwuOC0uMy44LS43cy0uMy0uNy0uOC0uN2gtMXYxLjNoMVoiLz4KPC9zdmc+"
>         alt="Eclipse Foundation" class="logo">
>       <h1>Temporary shutdown.</h1>
>       <section class="content">
>         <p>The Eclipse Foundation service you are trying to reach has been temporarily shutdown.</p>
>         <p>We apologize for the inconvenience and will be back soon.</p>
>       </section>
>     </div>
>   </main>
>   <footer>
>     <div>� Eclipse Foundation AISBL. All Rights Reserved.</div>
>     <div class="footer-links"><a href="https://www.eclipse.org/">Eclipse.org</a><a href="https://www.eclipse.org/legal/privacy/">Privacy Policy</a><a href="https://www.eclipse.org/legal/terms-of-use/">Terms of Use</a><a href="https://www.eclipse.org/legal/compliance/">Compliance</a><a href="https://www.eclipse.org/legal/">Legal</a></div>
>   </footer>
> </body></html>
> 
> 	at dev.equo.solstice.p2.P2Client$Folder.<init>(P2Client.java:257)
> 	at dev.equo.solstice.p2.P2Client.addUnits(P2Client.java:101)
> 	at dev.equo.solstice.p2.P2Session.populateFrom(P2Session.java:34)
> 	at dev.equo.solstice.p2.P2Model.queryRaw(P2Model.java:107)
> 	at dev.equo.solstice.p2.P2Model.query(P2Model.java:136)
> 	at com.diffplug.spotless.extra.P2Provisioner.lambda$createDefault$0(P2Provisioner.java:74)
> 	... 69 more
> Caused by: java.lang.IllegalStateException: No match found
> 	at java.base/java.util.regex.Matcher.checkMatch(Matcher.java:1850)
> 	at java.base/java.util.regex.Matcher.group(Matcher.java:685)
> 	at dev.equo.solstice.p2.P2Client.getGroup1(P2Client.java:239)
> 	at dev.equo.solstice.p2.P2Client$Folder.<init>(P2Client.java:255)
> 	... 74 more
> [ERROR] 
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR] 
> [ERROR] For more information about the errors and possible solutions, please read the following articles:
> [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
] 
expected: 0
 but was: 1
Raw output
org.opentest4j.AssertionFailedError: [Run without error > arguments: [cmd, /c, mvnw -e spotless:apply]
> exit code: 1
>    stdout: (below)
> [INFO] Error stacktraces are turned on.
> [INFO] Scanning for projects...
> [INFO]                                                                         
> [INFO] ------------------------------------------------------------------------
> [INFO] Building Spotless Maven Plugin Tests 1.0.0-SNAPSHOT
> [INFO] ------------------------------------------------------------------------
> [INFO] 
> [INFO] --- spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) @ spotless-maven-plugin-tests ---
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 2.143 s
> [INFO] Finished at: 2026-10-21T15:25:48+00:00
> [INFO] Final Memory: 15M/54M
> [INFO] ------------------------------------------------------------------------
> [ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) on project spotless-maven-plugin-tests: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies: We could not parse the content at https://download.eclipse.org/eclipse/updates/4.25/p2.index:
> [ERROR] 
> [ERROR] <!DOCTYPE html>
> [ERROR] <html lang="en">
> [ERROR] <head>
> [ERROR] <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
> [ERROR] <meta name="description" content="Temporary offline.">
> [ERROR] <link href="favicon.ico" rel=icon type=image/x-icon>
> [ERROR] <meta name="robots" content="follow, noarchive, noindex">
> [ERROR] <title>Git content has moved.</title>
> [ERROR] <style>
> [ERROR] :root {
> [ERROR] --primary-color: #f7941e;
> [ERROR] --primary-dark: #F06C02;
> [ERROR] --primary-gradient: linear-gradient(180deg, #F06C02 0%, #A34201 100%);
> [ERROR] --text-color: #2c2c2c;
> [ERROR] --secondary-text: #666;
> [ERROR] --link-color: #f7941e;
> [ERROR] --border-color: #e8e8e8;
> [ERROR] --card-color: white;
> [ERROR] }
> [ERROR] body {
> [ERROR] margin: 0;
> [ERROR] padding: 0;
> [ERROR] font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
> [ERROR] color: var(--text-color);
> [ERROR] line-height: 1.6;
> [ERROR] min-height: 100vh;
> [ERROR] display: flex;
> [ERROR] flex-direction: column;
> [ERROR] }
> [ERROR] main {
> [ERROR] flex: 1;
> [ERROR] display: flex;
> [ERROR] align-items: center;
> [ERROR] justify-content: center;
> [ERROR] padding: 2rem;
> [ERROR] }
> [ERROR] .container {
> [ERROR] background: var(--card-color);
> [ERROR] max-width: 600px;
> [ERROR] width: 100%;
> [ERROR] text-align: center;
> [ERROR] transition: transform 0.3s ease;
> [ERROR] }
> [ERROR] .logo {
> [ERROR] width: 180px;
> [ERROR] transition: transform 0.3s ease;
> [ERROR] }
> [ERROR] h1 {
> [ERROR] font-size: 2rem;
> [ERROR] color: var(--text-color);
> [ERROR] margin-bottom: 1.5rem;
> [ERROR] font-weight: 600;
> [ERROR] letter-spacing: -0.02em;
> [ERROR] }
> [ERROR] .content {
> [ERROR] margin: 2rem 0;
> [ERROR] color: var(--secondary-text);
> [ERROR] text-align: left;
> [ERROR] }
> [ERROR] .actions {
> [ERROR] list-style: none;
> [ERROR] padding: 0;
> [ERROR] margin: 2rem 0;
> [ERROR] text-align: left;
> [ERROR] }
> [ERROR] .actions li {
> [ERROR] margin: 0.75rem 0;
> [ERROR] padding-left: 1.75rem;
> [ERROR] position: relative;
> [ERROR] }
> [ERROR] .actions li::before {
> [ERROR] content: "?";
> [ERROR] color: var(--primary-color);
> [ERROR] position: absolute;
> [ERROR] left: 0;
> [ERROR] font-weight: bold;
> [ERROR] }
> [ERROR] .links {
> [ERROR] margin-top: 2.5rem;
> [ERROR] display: flex;
> [ERROR] gap: 1rem;
> [ERROR] justify-content: center;
> [ERROR] flex-wrap: wrap;
> [ERROR] }
> [ERROR] .links a {
> [ERROR] font-weight: 700;
> [ERROR] text-decoration: none;
> [ERROR] padding: 0.75rem 1.5rem;
> [ERROR] border-radius: 50px;
> [ERROR] font-size: 1rem;
> [ERROR] position: relative;
> [ERROR] }
> [ERROR] .links a.secondary {
> [ERROR] color: var(--primary-dark);
> [ERROR] }
> [ERROR] .links a.secondary::after {
> [ERROR] content: "?";
> [ERROR] color: var(--primary-dark);
> [ERROR] position: absolute;
> [ERROR] right: 0;
> [ERROR] top: 50%;
> [ERROR] transform: translateY(-50%);
> [ERROR] font-weight: bold;
> [ERROR] }
> [ERROR] .links a.primary {
> [ERROR] background: linear-gradient(180deg, var(--primary-dark) 0%, var(--primary-dark) 100%);
> [ERROR] color: white;
> [ERROR] }
> [ERROR] .links a.primary:hover {
> [ERROR] background: var(--primary-gradient);
> [ERROR] }
> [ERROR] footer {
> [ERROR] background: white;
> [ERROR] border-top: 1px solid var(--border-color);
> [ERROR] padding: 1.5rem;
> [ERROR] font-size: 0.875rem;
> [ERROR] color: var(--secondary-text);
> [ERROR] text-align: center;
> [ERROR] }
> [ERROR] .footer-links {
> [ERROR] margin-top: 1rem;
> [ERROR] display: flex;
> [ERROR] flex-wrap: wrap;
> [ERROR] justify-content: center;
> [ERROR] gap: 1rem;
> [ERROR] }
> [ERROR] .footer-links a {
> [ERROR] color: var(--secondary-text);
> [ERROR] text-decoration: none;
> [ERROR] transition: color 0.3s ease;
> [ERROR] }
> [ERROR] .footer-links a:hover {
> [ERROR] color: var(--primary-color);
> [ERROR] }
> [ERROR] @media (max-width: 640px) {
> [ERROR] main {
> [ERROR] padding: 1rem;
> [ERROR] }
> [ERROR] html {
> [ERROR] font-size: 14px;
> [ERROR] }
> [ERROR] .links a.secondary::after {
> [ERROR] display: none;
> [ERROR] }
> [ERROR] .logo {
> [ERROR] width: 140px;
> [ERROR] }
> [ERROR] .links a {
> [ERROR] padding: 0.2rem 1rem;
> [ERROR] }
> [ERROR] }
> [ERROR] </style>
> [ERROR] </head>
> [ERROR] <body><main>
> [ERROR] <div class="container">
> [ERROR] <img
> [ERROR] src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyODMuMiA5MC43Ij4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjkuMi4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjAgQnVpbGQgMTE2KSAgLS0+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5zdDAgewogICAgICAgIGZpbGw6ICNmMDZjMDI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNjUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3YxMVpNMjMzLjMsNzUuN2M0LjIsMCw1LjgsMy4zLDUuOCw2LjNzLTEuNiw2LTUuOCw2LTUuNy0zLjEtNS44LTYsMS43LTYuMyw1LjgtNi4zWk0yMzMuMyw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yMTIuMSw5MC43di0xNy43aC0zLjN2MTcuN2gzLjNaTTE4OC41LDkwLjdoMy4zdi0xNC43aDUuNnYtM2gtMTQuNnYzaDUuNnYxNC43aDBaTTE2OS42LDg0LjJoLTYuNmwzLjMtNy42LDMuMyw3LjZaTTE3Mi40LDkwLjdoMy42bC03LjktMTcuN2gtMy42bC04LDE3LjdoMy42bDEuNS0zLjNoOS4zbDEuNSwzLjNoMFpNMTM0LjQsNzYuMWgzLjZjMy45LDAsNS41LDIuOCw1LjUsNS41cy0xLjUsNS44LTUuNSw1LjhoLTMuNnYtMTEuNGgwWk0xMzguMSw3M2gtNi45djE3LjdoNi45YzYuMiwwLDguOS00LjUsOC45LTlzLTIuOC04LjctOC45LTguN2gwWk0xMTUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3MwLDExLDAsMTFaTTg4LjIsNzN2MTAuMmMwLDMtMS42LDQuOS00LjMsNC45cy00LjYtMS43LTQuNi00Ljl2LTEwLjFoLTMuM3YxMC4xYzAsNS4zLDMuNiw3LjksNy45LDcuOXM3LjctMi43LDcuNy03Ljl2LTEwLjFoLTMuNFpNNTUuMiw3NS43YzQuMiwwLDUuOCwzLjMsNS44LDYuM3MtMS42LDYtNS44LDYtNS43LTMuMS01LjgtNiwxLjctNi4zLDUuOC02LjNoMFpNNTUuMiw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yNS41LDkwLjd2LTYuNWg4Ljl2LTMuMWgtOC45di00LjhoOS40di0zLjJoLTEyLjd2MTcuNmgzLjNaIi8+CiAgPHBhdGggZD0iTTI2OS40LDU0LjRoLTIyLjJ2LTguOWgyMS40di02LjloLTIxLjR2LTkuMWgyMi4ydi03LjJoLTI5LjZ2MzkuNWgyOS42di03LjNoMFpNMjI5LjQsMjguOGMtMy02LjEtOS40LTcuOC0xNS41LTcuOHMtMTUuMywzLjQtMTUuMywxMS41LDcuNCwxMSwxNS41LDEyYzUuMi42LDkuMSwyLjEsOS4xLDUuOHMtNC40LDUuOS05LjEsNS45LTkuNC0xLjktMTEuMS02LjNsLTYuMiwzLjJjMi45LDcuMiw5LjEsOS43LDE3LjIsOS43czE2LjYtMy44LDE2LjYtMTIuNi03LjctMTEuNi0xNS45LTEyLjZjLTQuNy0uNi04LjgtMS41LTguOC01czIuNi01LjIsOC4yLTUuMiw4LDIuMiw5LjQsNC40bDUuOS0zaDBaTTE3NiwyMi4yaC0xOC42djM5LjVoNy40di0xMS42aDExLjJjMTkuNCwwLDE5LjMtMjcuOSwwLTI3LjloMFpNMTY0LjksMjkuM2gxMS4yYzkuNSwwLDkuNSwxNCwwLDE0aC0xMS4ydi0xNFpNMTQ2LjksNjEuOFYyMi4yaC03LjR2MzkuNWg3LjRaTTEwMi45LDIyLjJ2MzkuNWgyNy44di02LjloLTIwLjNWMjIuMnMtNy41LDAtNy41LDBaTTkwLjcsNTEuN2MtMi43LDIuNS02LjIsNC05LjksNC05LjgsMC0xMy41LTYuOC0xMy42LTEzLjRzNC4xLTEzLjcsMTMuNi0xMy43LDcsMS4zLDkuNSwzLjdsNS00LjhjLTMuOC0zLjktOS4xLTYtMTQuNS02LTE0LjMsMC0yMSwxMC41LTIwLjksMjAuOCwwLDEwLjMsNi4zLDIwLjMsMjAuOSwyMC4zLDUuNiwwLDExLTIsMTUtNS45bC01LjEtNS4xaDBaTTUxLjcsNTQuNGgtMjIuMnYtOC45aDIxLjR2LTYuOWgtMjEuNHYtOS4xaDIyLjJ2LTcuMmgtMjkuNXYzOS41aDI5LjZ2LTcuM2gtLjFaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTkuOCwxOC4yQzE4LjgsNC4xLDM3LS44LDUyLjEsNS45bC0xLS43QzM1LjYtNC42LDE1LjEtLjIsNS4zLDE1LjMtNC42LDMwLjctLjIsNTEuMiwxNS4zLDYxLjFsMS4xLjZDMy44LDUwLjguOCwzMi4zLDkuOCwxOC4yWiIvPgogIDxwYXRoIGQ9Ik0yNzIuMiwyNi4xaDBjMC0yLjUsMi4xLTQuNiw0LjYtNC42czQuNiwyLjEsNC42LDUuNmgwYzAsMi41LTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42Wk0yODAuOCwyNi4xaDBjMC0yLjItMS44LTQuMS00LTQuMXMtNC4xLDEuOC00LjEsNC4xaDBjMCwyLjIsMS43LDQsMy45LDQuMWguMWMyLjIsMCw0LjEtMS44LDQuMS00aDBaTTI3NC44LDIzLjZoMi4zYzEuMSwwLDEuOS41LDEuOSwxLjZzLS40LDEuMy0xLjEsMS41bDEuMiwxLjdoLTEuNGwtMS0xLjVoLS43djEuNWgtMS4xdi00LjdoMFpNMjc3LDI1LjljLjUsMCwuOC0uMy44LS43cy0uMy0uNy0uOC0uN2gtMXYxLjNoMVoiLz4KPC9zdmc+"
> [ERROR] alt="Eclipse Foundation" class="logo">
> [ERROR] <h1>Temporary shutdown.</h1>
> [ERROR] <section class="content">
> [ERROR] <p>The Eclipse Foundation service you are trying to reach has been temporarily shutdown.</p>
> [ERROR] <p>We apologize for the inconvenience and will be back soon.</p>
> [ERROR] </section>
> [ERROR] </div>
> [ERROR] </main>
> [ERROR] <footer>
> [ERROR] <div>� Eclipse Foundation AISBL. All Rights Reserved.</div>
> [ERROR] <div class="footer-links"><a href="https://www.eclipse.org/">Eclipse.org</a><a href="https://www.eclipse.org/legal/privacy/">Privacy Policy</a><a href="https://www.eclipse.org/legal/terms-of-use/">Terms of Use</a><a href="https://www.eclipse.org/legal/compliance/">Compliance</a><a href="https://www.eclipse.org/legal/">Legal</a></div>
> [ERROR] </footer>
> [ERROR] </body></html>: No match found
> [ERROR] -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) on project spotless-maven-plugin-tests: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
> 	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
> 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
> 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
> 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39)
> 	at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122)
> 	at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:55)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:143)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
> 	... 22 more
> Caused by: com.diffplug.spotless.ThrowingEx$WrappedAsRuntimeException: java.io.IOException: Failed to provision P2 dependencies
> 	at com.diffplug.spotless.ThrowingEx.asRuntime(ThrowingEx.java:95)
> 	at com.diffplug.spotless.JarState$Promised.get(JarState.java:81)
> 	at com.diffplug.spotless.JarState$Promised.writeObject(JarState.java:88)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1453)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1410)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1453)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:414)
> 	at com.diffplug.spotless.FormatterStepSerializationRoundtrip.writeObject(FormatterStepSerializationRoundtrip.java:84)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at java.base/java.util.ArrayList.writeObject(ArrayList.java:957)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at com.diffplug.spotless.Formatter.writeObject(Formatter.java:56)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at com.diffplug.spotless.maven.incremental.PluginFingerprint.digest(PluginFingerprint.java:109)
> 	at com.diffplug.spotless.maven.incremental.PluginFingerprint.from(PluginFingerprint.java:48)
> 	at com.diffplug.spotless.maven.incremental.IndexBasedChecker.create(IndexBasedChecker.java:43)
> 	at com.diffplug.spotless.maven.incremental.UpToDateChecker.forProject(UpToDateChecker.java:40)
> 	at com.diffplug.spotless.maven.AbstractSpotlessMojo.createUpToDateChecker(AbstractSpotlessMojo.java:473)
> 	at com.diffplug.spotless.maven.AbstractSpotlessMojo.execute(AbstractSpotlessMojo.java:284)
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
> 	... 23 more
> Caused by: java.io.IOException: Failed to provision P2 dependencies
> 	at com.diffplug.spotless.extra.P2Provisioner.lambda$createDefault$0(P2Provisioner.java:87)
> 	at com.diffplug.spotless.extra.EquoBasedStepBuilder.lambda$build$0(EquoBasedStepBuilder.java:135)
> 	at com.diffplug.spotless.JarState$Promised.get(JarState.java:75)
> 	... 67 more
> Caused by: java.lang.UnsupportedOperationException: We could not parse the content at https://download.eclipse.org/eclipse/updates/4.25/p2.index:
> 
> <!DOCTYPE html>
> <html lang="en">
> <head>
>   <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
>   <meta name="description" content="Temporary offline.">
>   <link href="favicon.ico" rel=icon type=image/x-icon>
>   <meta name="robots" content="follow, noarchive, noindex">
>   <title>Git content has moved.</title>
>   <style>
>     :root {
>       --primary-color: #f7941e;
>       --primary-dark: #F06C02;
>       --primary-gradient: linear-gradient(180deg, #F06C02 0%, #A34201 100%);
>       --text-color: #2c2c2c;
>       --secondary-text: #666;
>       --link-color: #f7941e;
>       --border-color: #e8e8e8;
>       --card-color: white;
>     }
>     body {
>       margin: 0;
>       padding: 0;
>       font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
>       color: var(--text-color);
>       line-height: 1.6;
>       min-height: 100vh;
>       display: flex;
>       flex-direction: column;
>     }
>     main {
>       flex: 1;
>       display: flex;
>       align-items: center;
>       justify-content: center;
>       padding: 2rem;
>     }
>     .container {
>       background: var(--card-color);
>       max-width: 600px;
>       width: 100%;
>       text-align: center;
>       transition: transform 0.3s ease;
>     }
>     .logo {
>       width: 180px;
>       transition: transform 0.3s ease;
>     }
>     h1 {
>       font-size: 2rem;
>       color: var(--text-color);
>       margin-bottom: 1.5rem;
>       font-weight: 600;
>       letter-spacing: -0.02em;
>     }
>     .content {
>       margin: 2rem 0;
>       color: var(--secondary-text);
>       text-align: left;
>     }
>     .actions {
>       list-style: none;
>       padding: 0;
>       margin: 2rem 0;
>       text-align: left;
>     }
>     .actions li {
>       margin: 0.75rem 0;
>       padding-left: 1.75rem;
>       position: relative;
>     }
>     .actions li::before {
>       content: "?";
>       color: var(--primary-color);
>       position: absolute;
>       left: 0;
>       font-weight: bold;
>     }
>     .links {
>       margin-top: 2.5rem;
>       display: flex;
>       gap: 1rem;
>       justify-content: center;
>       flex-wrap: wrap;
>     }
>     .links a {
>       font-weight: 700;
>       text-decoration: none;
>       padding: 0.75rem 1.5rem;
>       border-radius: 50px;
>       font-size: 1rem;
>       position: relative;
>     }
>     .links a.secondary {
>       color: var(--primary-dark);
>     }
>     .links a.secondary::after {
>       content: "?";
>       color: var(--primary-dark);
>       position: absolute;
>       right: 0;
>       top: 50%;
>       transform: translateY(-50%);
>       font-weight: bold;
>     }
>     .links a.primary {
>       background: linear-gradient(180deg, var(--primary-dark) 0%, var(--primary-dark) 100%);
>       color: white;
>     }
>     .links a.primary:hover {
>       background: var(--primary-gradient);
>     }
>     footer {
>       background: white;
>       border-top: 1px solid var(--border-color);
>       padding: 1.5rem;
>       font-size: 0.875rem;
>       color: var(--secondary-text);
>       text-align: center;
>     }
>     .footer-links {
>       margin-top: 1rem;
>       display: flex;
>       flex-wrap: wrap;
>       justify-content: center;
>       gap: 1rem;
>     }
>     .footer-links a {
>       color: var(--secondary-text);
>       text-decoration: none;
>       transition: color 0.3s ease;
>     }
>     .footer-links a:hover {
>       color: var(--primary-color);
>     }
>     @media (max-width: 640px) {
>       main {
>         padding: 1rem;
>       }
>       html {
>         font-size: 14px;
>       }
>       .links a.secondary::after {
>         display: none;
>       }
>       .logo {
>         width: 140px;
>       }
>       .links a {
>         padding: 0.2rem 1rem;
>       }
>     }
>   </style>
> </head>
> <body><main>
>     <div class="container">
>       <img
>         src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyODMuMiA5MC43Ij4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjkuMi4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjAgQnVpbGQgMTE2KSAgLS0+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5zdDAgewogICAgICAgIGZpbGw6ICNmMDZjMDI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNjUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3YxMVpNMjMzLjMsNzUuN2M0LjIsMCw1LjgsMy4zLDUuOCw2LjNzLTEuNiw2LTUuOCw2LTUuNy0zLjEtNS44LTYsMS43LTYuMyw1LjgtNi4zWk0yMzMuMyw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yMTIuMSw5MC43di0xNy43aC0zLjN2MTcuN2gzLjNaTTE4OC41LDkwLjdoMy4zdi0xNC43aDUuNnYtM2gtMTQuNnYzaDUuNnYxNC43aDBaTTE2OS42LDg0LjJoLTYuNmwzLjMtNy42LDMuMyw3LjZaTTE3Mi40LDkwLjdoMy42bC03LjktMTcuN2gtMy42bC04LDE3LjdoMy42bDEuNS0zLjNoOS4zbDEuNSwzLjNoMFpNMTM0LjQsNzYuMWgzLjZjMy45LDAsNS41LDIuOCw1LjUsNS41cy0xLjUsNS44LTUuNSw1LjhoLTMuNnYtMTEuNGgwWk0xMzguMSw3M2gtNi45djE3LjdoNi45YzYuMiwwLDguOS00LjUsOC45LTlzLTIuOC04LjctOC45LTguN2gwWk0xMTUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3MwLDExLDAsMTFaTTg4LjIsNzN2MTAuMmMwLDMtMS42LDQuOS00LjMsNC45cy00LjYtMS43LTQuNi00Ljl2LTEwLjFoLTMuM3YxMC4xYzAsNS4zLDMuNiw3LjksNy45LDcuOXM3LjctMi43LDcuNy03Ljl2LTEwLjFoLTMuNFpNNTUuMiw3NS43YzQuMiwwLDUuOCwzLjMsNS44LDYuM3MtMS42LDYtNS44LDYtNS43LTMuMS01LjgtNiwxLjctNi4zLDUuOC02LjNoMFpNNTUuMiw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yNS41LDkwLjd2LTYuNWg4Ljl2LTMuMWgtOC45di00LjhoOS40di0zLjJoLTEyLjd2MTcuNmgzLjNaIi8+CiAgPHBhdGggZD0iTTI2OS40LDU0LjRoLTIyLjJ2LTguOWgyMS40di02LjloLTIxLjR2LTkuMWgyMi4ydi03LjJoLTI5LjZ2MzkuNWgyOS42di03LjNoMFpNMjI5LjQsMjguOGMtMy02LjEtOS40LTcuOC0xNS41LTcuOHMtMTUuMywzLjQtMTUuMywxMS41LDcuNCwxMSwxNS41LDEyYzUuMi42LDkuMSwyLjEsOS4xLDUuOHMtNC40LDUuOS05LjEsNS45LTkuNC0xLjktMTEuMS02LjNsLTYuMiwzLjJjMi45LDcuMiw5LjEsOS43LDE3LjIsOS43czE2LjYtMy44LDE2LjYtMTIuNi03LjctMTEuNi0xNS45LTEyLjZjLTQuNy0uNi04LjgtMS41LTguOC01czIuNi01LjIsOC4yLTUuMiw4LDIuMiw5LjQsNC40bDUuOS0zaDBaTTE3NiwyMi4yaC0xOC42djM5LjVoNy40di0xMS42aDExLjJjMTkuNCwwLDE5LjMtMjcuOSwwLTI3LjloMFpNMTY0LjksMjkuM2gxMS4yYzkuNSwwLDkuNSwxNCwwLDE0aC0xMS4ydi0xNFpNMTQ2LjksNjEuOFYyMi4yaC03LjR2MzkuNWg3LjRaTTEwMi45LDIyLjJ2MzkuNWgyNy44di02LjloLTIwLjNWMjIuMnMtNy41LDAtNy41LDBaTTkwLjcsNTEuN2MtMi43LDIuNS02LjIsNC05LjksNC05LjgsMC0xMy41LTYuOC0xMy42LTEzLjRzNC4xLTEzLjcsMTMuNi0xMy43LDcsMS4zLDkuNSwzLjdsNS00LjhjLTMuOC0zLjktOS4xLTYtMTQuNS02LTE0LjMsMC0yMSwxMC41LTIwLjksMjAuOCwwLDEwLjMsNi4zLDIwLjMsMjAuOSwyMC4zLDUuNiwwLDExLTIsMTUtNS45bC01LjEtNS4xaDBaTTUxLjcsNTQuNGgtMjIuMnYtOC45aDIxLjR2LTYuOWgtMjEuNHYtOS4xaDIyLjJ2LTcuMmgtMjkuNXYzOS41aDI5LjZ2LTcuM2gtLjFaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTkuOCwxOC4yQzE4LjgsNC4xLDM3LS44LDUyLjEsNS45bC0xLS43QzM1LjYtNC42LDE1LjEtLjIsNS4zLDE1LjMtNC42LDMwLjctLjIsNTEuMiwxNS4zLDYxLjFsMS4xLjZDMy44LDUwLjguOCwzMi4zLDkuOCwxOC4yWiIvPgogIDxwYXRoIGQ9Ik0yNzIuMiwyNi4xaDBjMC0yLjUsMi4xLTQuNiw0LjYtNC42czQuNiwyLjEsNC42LDUuNmgwYzAsMi41LTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42Wk0yODAuOCwyNi4xaDBjMC0yLjItMS44LTQuMS00LTQuMXMtNC4xLDEuOC00LjEsNC4xaDBjMCwyLjIsMS43LDQsMy45LDQuMWguMWMyLjIsMCw0LjEtMS44LDQuMS00aDBaTTI3NC44LDIzLjZoMi4zYzEuMSwwLDEuOS41LDEuOSwxLjZzLS40LDEuMy0xLjEsMS41bDEuMiwxLjdoLTEuNGwtMS0xLjVoLS43djEuNWgtMS4xdi00LjdoMFpNMjc3LDI1LjljLjUsMCwuOC0uMy44LS43cy0uMy0uNy0uOC0uN2gtMXYxLjNoMVoiLz4KPC9zdmc+"
>         alt="Eclipse Foundation" class="logo">
>       <h1>Temporary shutdown.</h1>
>       <section class="content">
>         <p>The Eclipse Foundation service you are trying to reach has been temporarily shutdown.</p>
>         <p>We apologize for the inconvenience and will be back soon.</p>
>       </section>
>     </div>
>   </main>
>   <footer>
>     <div>� Eclipse Foundation AISBL. All Rights Reserved.</div>
>     <div class="footer-links"><a href="https://www.eclipse.org/">Eclipse.org</a><a href="https://www.eclipse.org/legal/privacy/">Privacy Policy</a><a href="https://www.eclipse.org/legal/terms-of-use/">Terms of Use</a><a href="https://www.eclipse.org/legal/compliance/">Compliance</a><a href="https://www.eclipse.org/legal/">Legal</a></div>
>   </footer>
> </body></html>
> 
> 	at dev.equo.solstice.p2.P2Client$Folder.<init>(P2Client.java:257)
> 	at dev.equo.solstice.p2.P2Client.addUnits(P2Client.java:101)
> 	at dev.equo.solstice.p2.P2Session.populateFrom(P2Session.java:34)
> 	at dev.equo.solstice.p2.P2Model.queryRaw(P2Model.java:107)
> 	at dev.equo.solstice.p2.P2Model.query(P2Model.java:136)
> 	at com.diffplug.spotless.extra.P2Provisioner.lambda$createDefault$0(P2Provisioner.java:74)
> 	... 69 more
> Caused by: java.lang.IllegalStateException: No match found
> 	at java.base/java.util.regex.Matcher.checkMatch(Matcher.java:1850)
> 	at java.base/java.util.regex.Matcher.group(Matcher.java:685)
> 	at dev.equo.solstice.p2.P2Client.getGroup1(P2Client.java:239)
> 	at dev.equo.solstice.p2.P2Client$Folder.<init>(P2Client.java:255)
> 	... 74 more
> [ERROR] 
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR] 
> [ERROR] For more information about the errors and possible solutions, please read the following articles:
> [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
] 
expected: 0
 but was: 1
	at com.diffplug.spotless.maven.MavenRunner.runNoError(MavenRunner.java:105)
	at com.diffplug.spotless.maven.groovy.GrEclipseTest.doesNotFormatJavaFiles(GrEclipseTest.java:50)

Check failure on line 32 in plugin-maven\src\test\java\com\diffplug\spotless\maven\groovy\GrEclipseTest.java

See this annotation in the file changed.

@github-actions github-actions / JUnit Maven 26 windows-latest

GrEclipseTest.testEclipse()

org.opentest4j.AssertionFailedError: [Run without error > arguments: [cmd, /c, mvnw -e spotless:apply]
> exit code: 1
>    stdout: (below)
> [INFO] Error stacktraces are turned on.
> [INFO] Scanning for projects...
> [INFO]                                                                         
> [INFO] ------------------------------------------------------------------------
> [INFO] Building Spotless Maven Plugin Tests 1.0.0-SNAPSHOT
> [INFO] ------------------------------------------------------------------------
> [INFO] 
> [INFO] --- spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) @ spotless-maven-plugin-tests ---
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 1.680 s
> [INFO] Finished at: 2026-10-21T15:25:51+00:00
> [INFO] Final Memory: 14M/54M
> [INFO] ------------------------------------------------------------------------
> [ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) on project spotless-maven-plugin-tests: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies: We could not parse the content at https://download.eclipse.org/eclipse/updates/4.25/p2.index:
> [ERROR] 
> [ERROR] <!DOCTYPE html>
> [ERROR] <html lang="en">
> [ERROR] <head>
> [ERROR] <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
> [ERROR] <meta name="description" content="Temporary offline.">
> [ERROR] <link href="favicon.ico" rel=icon type=image/x-icon>
> [ERROR] <meta name="robots" content="follow, noarchive, noindex">
> [ERROR] <title>Git content has moved.</title>
> [ERROR] <style>
> [ERROR] :root {
> [ERROR] --primary-color: #f7941e;
> [ERROR] --primary-dark: #F06C02;
> [ERROR] --primary-gradient: linear-gradient(180deg, #F06C02 0%, #A34201 100%);
> [ERROR] --text-color: #2c2c2c;
> [ERROR] --secondary-text: #666;
> [ERROR] --link-color: #f7941e;
> [ERROR] --border-color: #e8e8e8;
> [ERROR] --card-color: white;
> [ERROR] }
> [ERROR] body {
> [ERROR] margin: 0;
> [ERROR] padding: 0;
> [ERROR] font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
> [ERROR] color: var(--text-color);
> [ERROR] line-height: 1.6;
> [ERROR] min-height: 100vh;
> [ERROR] display: flex;
> [ERROR] flex-direction: column;
> [ERROR] }
> [ERROR] main {
> [ERROR] flex: 1;
> [ERROR] display: flex;
> [ERROR] align-items: center;
> [ERROR] justify-content: center;
> [ERROR] padding: 2rem;
> [ERROR] }
> [ERROR] .container {
> [ERROR] background: var(--card-color);
> [ERROR] max-width: 600px;
> [ERROR] width: 100%;
> [ERROR] text-align: center;
> [ERROR] transition: transform 0.3s ease;
> [ERROR] }
> [ERROR] .logo {
> [ERROR] width: 180px;
> [ERROR] transition: transform 0.3s ease;
> [ERROR] }
> [ERROR] h1 {
> [ERROR] font-size: 2rem;
> [ERROR] color: var(--text-color);
> [ERROR] margin-bottom: 1.5rem;
> [ERROR] font-weight: 600;
> [ERROR] letter-spacing: -0.02em;
> [ERROR] }
> [ERROR] .content {
> [ERROR] margin: 2rem 0;
> [ERROR] color: var(--secondary-text);
> [ERROR] text-align: left;
> [ERROR] }
> [ERROR] .actions {
> [ERROR] list-style: none;
> [ERROR] padding: 0;
> [ERROR] margin: 2rem 0;
> [ERROR] text-align: left;
> [ERROR] }
> [ERROR] .actions li {
> [ERROR] margin: 0.75rem 0;
> [ERROR] padding-left: 1.75rem;
> [ERROR] position: relative;
> [ERROR] }
> [ERROR] .actions li::before {
> [ERROR] content: "?";
> [ERROR] color: var(--primary-color);
> [ERROR] position: absolute;
> [ERROR] left: 0;
> [ERROR] font-weight: bold;
> [ERROR] }
> [ERROR] .links {
> [ERROR] margin-top: 2.5rem;
> [ERROR] display: flex;
> [ERROR] gap: 1rem;
> [ERROR] justify-content: center;
> [ERROR] flex-wrap: wrap;
> [ERROR] }
> [ERROR] .links a {
> [ERROR] font-weight: 700;
> [ERROR] text-decoration: none;
> [ERROR] padding: 0.75rem 1.5rem;
> [ERROR] border-radius: 50px;
> [ERROR] font-size: 1rem;
> [ERROR] position: relative;
> [ERROR] }
> [ERROR] .links a.secondary {
> [ERROR] color: var(--primary-dark);
> [ERROR] }
> [ERROR] .links a.secondary::after {
> [ERROR] content: "?";
> [ERROR] color: var(--primary-dark);
> [ERROR] position: absolute;
> [ERROR] right: 0;
> [ERROR] top: 50%;
> [ERROR] transform: translateY(-50%);
> [ERROR] font-weight: bold;
> [ERROR] }
> [ERROR] .links a.primary {
> [ERROR] background: linear-gradient(180deg, var(--primary-dark) 0%, var(--primary-dark) 100%);
> [ERROR] color: white;
> [ERROR] }
> [ERROR] .links a.primary:hover {
> [ERROR] background: var(--primary-gradient);
> [ERROR] }
> [ERROR] footer {
> [ERROR] background: white;
> [ERROR] border-top: 1px solid var(--border-color);
> [ERROR] padding: 1.5rem;
> [ERROR] font-size: 0.875rem;
> [ERROR] color: var(--secondary-text);
> [ERROR] text-align: center;
> [ERROR] }
> [ERROR] .footer-links {
> [ERROR] margin-top: 1rem;
> [ERROR] display: flex;
> [ERROR] flex-wrap: wrap;
> [ERROR] justify-content: center;
> [ERROR] gap: 1rem;
> [ERROR] }
> [ERROR] .footer-links a {
> [ERROR] color: var(--secondary-text);
> [ERROR] text-decoration: none;
> [ERROR] transition: color 0.3s ease;
> [ERROR] }
> [ERROR] .footer-links a:hover {
> [ERROR] color: var(--primary-color);
> [ERROR] }
> [ERROR] @media (max-width: 640px) {
> [ERROR] main {
> [ERROR] padding: 1rem;
> [ERROR] }
> [ERROR] html {
> [ERROR] font-size: 14px;
> [ERROR] }
> [ERROR] .links a.secondary::after {
> [ERROR] display: none;
> [ERROR] }
> [ERROR] .logo {
> [ERROR] width: 140px;
> [ERROR] }
> [ERROR] .links a {
> [ERROR] padding: 0.2rem 1rem;
> [ERROR] }
> [ERROR] }
> [ERROR] </style>
> [ERROR] </head>
> [ERROR] <body><main>
> [ERROR] <div class="container">
> [ERROR] <img
> [ERROR] src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyODMuMiA5MC43Ij4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjkuMi4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjAgQnVpbGQgMTE2KSAgLS0+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5zdDAgewogICAgICAgIGZpbGw6ICNmMDZjMDI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNjUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3YxMVpNMjMzLjMsNzUuN2M0LjIsMCw1LjgsMy4zLDUuOCw2LjNzLTEuNiw2LTUuOCw2LTUuNy0zLjEtNS44LTYsMS43LTYuMyw1LjgtNi4zWk0yMzMuMyw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yMTIuMSw5MC43di0xNy43aC0zLjN2MTcuN2gzLjNaTTE4OC41LDkwLjdoMy4zdi0xNC43aDUuNnYtM2gtMTQuNnYzaDUuNnYxNC43aDBaTTE2OS42LDg0LjJoLTYuNmwzLjMtNy42LDMuMyw3LjZaTTE3Mi40LDkwLjdoMy42bC03LjktMTcuN2gtMy42bC04LDE3LjdoMy42bDEuNS0zLjNoOS4zbDEuNSwzLjNoMFpNMTM0LjQsNzYuMWgzLjZjMy45LDAsNS41LDIuOCw1LjUsNS41cy0xLjUsNS44LTUuNSw1LjhoLTMuNnYtMTEuNGgwWk0xMzguMSw3M2gtNi45djE3LjdoNi45YzYuMiwwLDguOS00LjUsOC45LTlzLTIuOC04LjctOC45LTguN2gwWk0xMTUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3MwLDExLDAsMTFaTTg4LjIsNzN2MTAuMmMwLDMtMS42LDQuOS00LjMsNC45cy00LjYtMS43LTQuNi00Ljl2LTEwLjFoLTMuM3YxMC4xYzAsNS4zLDMuNiw3LjksNy45LDcuOXM3LjctMi43LDcuNy03Ljl2LTEwLjFoLTMuNFpNNTUuMiw3NS43YzQuMiwwLDUuOCwzLjMsNS44LDYuM3MtMS42LDYtNS44LDYtNS43LTMuMS01LjgtNiwxLjctNi4zLDUuOC02LjNoMFpNNTUuMiw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yNS41LDkwLjd2LTYuNWg4Ljl2LTMuMWgtOC45di00LjhoOS40di0zLjJoLTEyLjd2MTcuNmgzLjNaIi8+CiAgPHBhdGggZD0iTTI2OS40LDU0LjRoLTIyLjJ2LTguOWgyMS40di02LjloLTIxLjR2LTkuMWgyMi4ydi03LjJoLTI5LjZ2MzkuNWgyOS42di03LjNoMFpNMjI5LjQsMjguOGMtMy02LjEtOS40LTcuOC0xNS41LTcuOHMtMTUuMywzLjQtMTUuMywxMS41LDcuNCwxMSwxNS41LDEyYzUuMi42LDkuMSwyLjEsOS4xLDUuOHMtNC40LDUuOS05LjEsNS45LTkuNC0xLjktMTEuMS02LjNsLTYuMiwzLjJjMi45LDcuMiw5LjEsOS43LDE3LjIsOS43czE2LjYtMy44LDE2LjYtMTIuNi03LjctMTEuNi0xNS45LTEyLjZjLTQuNy0uNi04LjgtMS41LTguOC01czIuNi01LjIsOC4yLTUuMiw4LDIuMiw5LjQsNC40bDUuOS0zaDBaTTE3NiwyMi4yaC0xOC42djM5LjVoNy40di0xMS42aDExLjJjMTkuNCwwLDE5LjMtMjcuOSwwLTI3LjloMFpNMTY0LjksMjkuM2gxMS4yYzkuNSwwLDkuNSwxNCwwLDE0aC0xMS4ydi0xNFpNMTQ2LjksNjEuOFYyMi4yaC03LjR2MzkuNWg3LjRaTTEwMi45LDIyLjJ2MzkuNWgyNy44di02LjloLTIwLjNWMjIuMnMtNy41LDAtNy41LDBaTTkwLjcsNTEuN2MtMi43LDIuNS02LjIsNC05LjksNC05LjgsMC0xMy41LTYuOC0xMy42LTEzLjRzNC4xLTEzLjcsMTMuNi0xMy43LDcsMS4zLDkuNSwzLjdsNS00LjhjLTMuOC0zLjktOS4xLTYtMTQuNS02LTE0LjMsMC0yMSwxMC41LTIwLjksMjAuOCwwLDEwLjMsNi4zLDIwLjMsMjAuOSwyMC4zLDUuNiwwLDExLTIsMTUtNS45bC01LjEtNS4xaDBaTTUxLjcsNTQuNGgtMjIuMnYtOC45aDIxLjR2LTYuOWgtMjEuNHYtOS4xaDIyLjJ2LTcuMmgtMjkuNXYzOS41aDI5LjZ2LTcuM2gtLjFaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTkuOCwxOC4yQzE4LjgsNC4xLDM3LS44LDUyLjEsNS45bC0xLS43QzM1LjYtNC42LDE1LjEtLjIsNS4zLDE1LjMtNC42LDMwLjctLjIsNTEuMiwxNS4zLDYxLjFsMS4xLjZDMy44LDUwLjguOCwzMi4zLDkuOCwxOC4yWiIvPgogIDxwYXRoIGQ9Ik0yNzIuMiwyNi4xaDBjMC0yLjUsMi4xLTQuNiw0LjYtNC42czQuNiwyLjEsNC42LDUuNmgwYzAsMi41LTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42Wk0yODAuOCwyNi4xaDBjMC0yLjItMS44LTQuMS00LTQuMXMtNC4xLDEuOC00LjEsNC4xaDBjMCwyLjIsMS43LDQsMy45LDQuMWguMWMyLjIsMCw0LjEtMS44LDQuMS00aDBaTTI3NC44LDIzLjZoMi4zYzEuMSwwLDEuOS41LDEuOSwxLjZzLS40LDEuMy0xLjEsMS41bDEuMiwxLjdoLTEuNGwtMS0xLjVoLS43djEuNWgtMS4xdi00LjdoMFpNMjc3LDI1LjljLjUsMCwuOC0uMy44LS43cy0uMy0uNy0uOC0uN2gtMXYxLjNoMVoiLz4KPC9zdmc+"
> [ERROR] alt="Eclipse Foundation" class="logo">
> [ERROR] <h1>Temporary shutdown.</h1>
> [ERROR] <section class="content">
> [ERROR] <p>The Eclipse Foundation service you are trying to reach has been temporarily shutdown.</p>
> [ERROR] <p>We apologize for the inconvenience and will be back soon.</p>
> [ERROR] </section>
> [ERROR] </div>
> [ERROR] </main>
> [ERROR] <footer>
> [ERROR] <div>� Eclipse Foundation AISBL. All Rights Reserved.</div>
> [ERROR] <div class="footer-links"><a href="https://www.eclipse.org/">Eclipse.org</a><a href="https://www.eclipse.org/legal/privacy/">Privacy Policy</a><a href="https://www.eclipse.org/legal/terms-of-use/">Terms of Use</a><a href="https://www.eclipse.org/legal/compliance/">Compliance</a><a href="https://www.eclipse.org/legal/">Legal</a></div>
> [ERROR] </footer>
> [ERROR] </body></html>: No match found
> [ERROR] -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) on project spotless-maven-plugin-tests: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
> 	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
> 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
> 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
> 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39)
> 	at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122)
> 	at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:55)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:143)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
> 	... 22 more
> Caused by: com.diffplug.spotless.ThrowingEx$WrappedAsRuntimeException: java.io.IOException: Failed to provision P2 dependencies
> 	at com.diffplug.spotless.ThrowingEx.asRuntime(ThrowingEx.java:95)
> 	at com.diffplug.spotless.JarState$Promised.get(JarState.java:81)
> 	at com.diffplug.spotless.JarState$Promised.writeObject(JarState.java:88)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1453)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1410)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1453)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:414)
> 	at com.diffplug.spotless.FormatterStepSerializationRoundtrip.writeObject(FormatterStepSerializationRoundtrip.java:84)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at java.base/java.util.ArrayList.writeObject(ArrayList.java:957)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at com.diffplug.spotless.Formatter.writeObject(Formatter.java:56)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at com.diffplug.spotless.maven.incremental.PluginFingerprint.digest(PluginFingerprint.java:109)
> 	at com.diffplug.spotless.maven.incremental.PluginFingerprint.from(PluginFingerprint.java:48)
> 	at com.diffplug.spotless.maven.incremental.IndexBasedChecker.create(IndexBasedChecker.java:43)
> 	at com.diffplug.spotless.maven.incremental.UpToDateChecker.forProject(UpToDateChecker.java:40)
> 	at com.diffplug.spotless.maven.AbstractSpotlessMojo.createUpToDateChecker(AbstractSpotlessMojo.java:473)
> 	at com.diffplug.spotless.maven.AbstractSpotlessMojo.execute(AbstractSpotlessMojo.java:284)
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
> 	... 23 more
> Caused by: java.io.IOException: Failed to provision P2 dependencies
> 	at com.diffplug.spotless.extra.P2Provisioner.lambda$createDefault$0(P2Provisioner.java:87)
> 	at com.diffplug.spotless.extra.EquoBasedStepBuilder.lambda$build$0(EquoBasedStepBuilder.java:135)
> 	at com.diffplug.spotless.JarState$Promised.get(JarState.java:75)
> 	... 67 more
> Caused by: java.lang.UnsupportedOperationException: We could not parse the content at https://download.eclipse.org/eclipse/updates/4.25/p2.index:
> 
> <!DOCTYPE html>
> <html lang="en">
> <head>
>   <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
>   <meta name="description" content="Temporary offline.">
>   <link href="favicon.ico" rel=icon type=image/x-icon>
>   <meta name="robots" content="follow, noarchive, noindex">
>   <title>Git content has moved.</title>
>   <style>
>     :root {
>       --primary-color: #f7941e;
>       --primary-dark: #F06C02;
>       --primary-gradient: linear-gradient(180deg, #F06C02 0%, #A34201 100%);
>       --text-color: #2c2c2c;
>       --secondary-text: #666;
>       --link-color: #f7941e;
>       --border-color: #e8e8e8;
>       --card-color: white;
>     }
>     body {
>       margin: 0;
>       padding: 0;
>       font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
>       color: var(--text-color);
>       line-height: 1.6;
>       min-height: 100vh;
>       display: flex;
>       flex-direction: column;
>     }
>     main {
>       flex: 1;
>       display: flex;
>       align-items: center;
>       justify-content: center;
>       padding: 2rem;
>     }
>     .container {
>       background: var(--card-color);
>       max-width: 600px;
>       width: 100%;
>       text-align: center;
>       transition: transform 0.3s ease;
>     }
>     .logo {
>       width: 180px;
>       transition: transform 0.3s ease;
>     }
>     h1 {
>       font-size: 2rem;
>       color: var(--text-color);
>       margin-bottom: 1.5rem;
>       font-weight: 600;
>       letter-spacing: -0.02em;
>     }
>     .content {
>       margin: 2rem 0;
>       color: var(--secondary-text);
>       text-align: left;
>     }
>     .actions {
>       list-style: none;
>       padding: 0;
>       margin: 2rem 0;
>       text-align: left;
>     }
>     .actions li {
>       margin: 0.75rem 0;
>       padding-left: 1.75rem;
>       position: relative;
>     }
>     .actions li::before {
>       content: "?";
>       color: var(--primary-color);
>       position: absolute;
>       left: 0;
>       font-weight: bold;
>     }
>     .links {
>       margin-top: 2.5rem;
>       display: flex;
>       gap: 1rem;
>       justify-content: center;
>       flex-wrap: wrap;
>     }
>     .links a {
>       font-weight: 700;
>       text-decoration: none;
>       padding: 0.75rem 1.5rem;
>       border-radius: 50px;
>       font-size: 1rem;
>       position: relative;
>     }
>     .links a.secondary {
>       color: var(--primary-dark);
>     }
>     .links a.secondary::after {
>       content: "?";
>       color: var(--primary-dark);
>       position: absolute;
>       right: 0;
>       top: 50%;
>       transform: translateY(-50%);
>       font-weight: bold;
>     }
>     .links a.primary {
>       background: linear-gradient(180deg, var(--primary-dark) 0%, var(--primary-dark) 100%);
>       color: white;
>     }
>     .links a.primary:hover {
>       background: var(--primary-gradient);
>     }
>     footer {
>       background: white;
>       border-top: 1px solid var(--border-color);
>       padding: 1.5rem;
>       font-size: 0.875rem;
>       color: var(--secondary-text);
>       text-align: center;
>     }
>     .footer-links {
>       margin-top: 1rem;
>       display: flex;
>       flex-wrap: wrap;
>       justify-content: center;
>       gap: 1rem;
>     }
>     .footer-links a {
>       color: var(--secondary-text);
>       text-decoration: none;
>       transition: color 0.3s ease;
>     }
>     .footer-links a:hover {
>       color: var(--primary-color);
>     }
>     @media (max-width: 640px) {
>       main {
>         padding: 1rem;
>       }
>       html {
>         font-size: 14px;
>       }
>       .links a.secondary::after {
>         display: none;
>       }
>       .logo {
>         width: 140px;
>       }
>       .links a {
>         padding: 0.2rem 1rem;
>       }
>     }
>   </style>
> </head>
> <body><main>
>     <div class="container">
>       <img
>         src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyODMuMiA5MC43Ij4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjkuMi4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjAgQnVpbGQgMTE2KSAgLS0+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5zdDAgewogICAgICAgIGZpbGw6ICNmMDZjMDI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNjUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3YxMVpNMjMzLjMsNzUuN2M0LjIsMCw1LjgsMy4zLDUuOCw2LjNzLTEuNiw2LTUuOCw2LTUuNy0zLjEtNS44LTYsMS43LTYuMyw1LjgtNi4zWk0yMzMuMyw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yMTIuMSw5MC43di0xNy43aC0zLjN2MTcuN2gzLjNaTTE4OC41LDkwLjdoMy4zdi0xNC43aDUuNnYtM2gtMTQuNnYzaDUuNnYxNC43aDBaTTE2OS42LDg0LjJoLTYuNmwzLjMtNy42LDMuMyw3LjZaTTE3Mi40LDkwLjdoMy42bC03LjktMTcuN2gtMy42bC04LDE3LjdoMy42bDEuNS0zLjNoOS4zbDEuNSwzLjNoMFpNMTM0LjQsNzYuMWgzLjZjMy45LDAsNS41LDIuOCw1LjUsNS41cy0xLjUsNS44LTUuNSw1LjhoLTMuNnYtMTEuNGgwWk0xMzguMSw3M2gtNi45djE3LjdoNi45YzYuMiwwLDguOS00LjUsOC45LTlzLTIuOC04LjctOC45LTguN2gwWk0xMTUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3MwLDExLDAsMTFaTTg4LjIsNzN2MTAuMmMwLDMtMS42LDQuOS00LjMsNC45cy00LjYtMS43LTQuNi00Ljl2LTEwLjFoLTMuM3YxMC4xYzAsNS4zLDMuNiw3LjksNy45LDcuOXM3LjctMi43LDcuNy03Ljl2LTEwLjFoLTMuNFpNNTUuMiw3NS43YzQuMiwwLDUuOCwzLjMsNS44LDYuM3MtMS42LDYtNS44LDYtNS43LTMuMS01LjgtNiwxLjctNi4zLDUuOC02LjNoMFpNNTUuMiw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yNS41LDkwLjd2LTYuNWg4Ljl2LTMuMWgtOC45di00LjhoOS40di0zLjJoLTEyLjd2MTcuNmgzLjNaIi8+CiAgPHBhdGggZD0iTTI2OS40LDU0LjRoLTIyLjJ2LTguOWgyMS40di02LjloLTIxLjR2LTkuMWgyMi4ydi03LjJoLTI5LjZ2MzkuNWgyOS42di03LjNoMFpNMjI5LjQsMjguOGMtMy02LjEtOS40LTcuOC0xNS41LTcuOHMtMTUuMywzLjQtMTUuMywxMS41LDcuNCwxMSwxNS41LDEyYzUuMi42LDkuMSwyLjEsOS4xLDUuOHMtNC40LDUuOS05LjEsNS45LTkuNC0xLjktMTEuMS02LjNsLTYuMiwzLjJjMi45LDcuMiw5LjEsOS43LDE3LjIsOS43czE2LjYtMy44LDE2LjYtMTIuNi03LjctMTEuNi0xNS45LTEyLjZjLTQuNy0uNi04LjgtMS41LTguOC01czIuNi01LjIsOC4yLTUuMiw4LDIuMiw5LjQsNC40bDUuOS0zaDBaTTE3NiwyMi4yaC0xOC42djM5LjVoNy40di0xMS42aDExLjJjMTkuNCwwLDE5LjMtMjcuOSwwLTI3LjloMFpNMTY0LjksMjkuM2gxMS4yYzkuNSwwLDkuNSwxNCwwLDE0aC0xMS4ydi0xNFpNMTQ2LjksNjEuOFYyMi4yaC03LjR2MzkuNWg3LjRaTTEwMi45LDIyLjJ2MzkuNWgyNy44di02LjloLTIwLjNWMjIuMnMtNy41LDAtNy41LDBaTTkwLjcsNTEuN2MtMi43LDIuNS02LjIsNC05LjksNC05LjgsMC0xMy41LTYuOC0xMy42LTEzLjRzNC4xLTEzLjcsMTMuNi0xMy43LDcsMS4zLDkuNSwzLjdsNS00LjhjLTMuOC0zLjktOS4xLTYtMTQuNS02LTE0LjMsMC0yMSwxMC41LTIwLjksMjAuOCwwLDEwLjMsNi4zLDIwLjMsMjAuOSwyMC4zLDUuNiwwLDExLTIsMTUtNS45bC01LjEtNS4xaDBaTTUxLjcsNTQuNGgtMjIuMnYtOC45aDIxLjR2LTYuOWgtMjEuNHYtOS4xaDIyLjJ2LTcuMmgtMjkuNXYzOS41aDI5LjZ2LTcuM2gtLjFaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTkuOCwxOC4yQzE4LjgsNC4xLDM3LS44LDUyLjEsNS45bC0xLS43QzM1LjYtNC42LDE1LjEtLjIsNS4zLDE1LjMtNC42LDMwLjctLjIsNTEuMiwxNS4zLDYxLjFsMS4xLjZDMy44LDUwLjguOCwzMi4zLDkuOCwxOC4yWiIvPgogIDxwYXRoIGQ9Ik0yNzIuMiwyNi4xaDBjMC0yLjUsMi4xLTQuNiw0LjYtNC42czQuNiwyLjEsNC42LDUuNmgwYzAsMi41LTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42Wk0yODAuOCwyNi4xaDBjMC0yLjItMS44LTQuMS00LTQuMXMtNC4xLDEuOC00LjEsNC4xaDBjMCwyLjIsMS43LDQsMy45LDQuMWguMWMyLjIsMCw0LjEtMS44LDQuMS00aDBaTTI3NC44LDIzLjZoMi4zYzEuMSwwLDEuOS41LDEuOSwxLjZzLS40LDEuMy0xLjEsMS41bDEuMiwxLjdoLTEuNGwtMS0xLjVoLS43djEuNWgtMS4xdi00LjdoMFpNMjc3LDI1LjljLjUsMCwuOC0uMy44LS43cy0uMy0uNy0uOC0uN2gtMXYxLjNoMVoiLz4KPC9zdmc+"
>         alt="Eclipse Foundation" class="logo">
>       <h1>Temporary shutdown.</h1>
>       <section class="content">
>         <p>The Eclipse Foundation service you are trying to reach has been temporarily shutdown.</p>
>         <p>We apologize for the inconvenience and will be back soon.</p>
>       </section>
>     </div>
>   </main>
>   <footer>
>     <div>� Eclipse Foundation AISBL. All Rights Reserved.</div>
>     <div class="footer-links"><a href="https://www.eclipse.org/">Eclipse.org</a><a href="https://www.eclipse.org/legal/privacy/">Privacy Policy</a><a href="https://www.eclipse.org/legal/terms-of-use/">Terms of Use</a><a href="https://www.eclipse.org/legal/compliance/">Compliance</a><a href="https://www.eclipse.org/legal/">Legal</a></div>
>   </footer>
> </body></html>
> 
> 	at dev.equo.solstice.p2.P2Client$Folder.<init>(P2Client.java:257)
> 	at dev.equo.solstice.p2.P2Client.addUnits(P2Client.java:101)
> 	at dev.equo.solstice.p2.P2Session.populateFrom(P2Session.java:34)
> 	at dev.equo.solstice.p2.P2Model.queryRaw(P2Model.java:107)
> 	at dev.equo.solstice.p2.P2Model.query(P2Model.java:136)
> 	at com.diffplug.spotless.extra.P2Provisioner.lambda$createDefault$0(P2Provisioner.java:74)
> 	... 69 more
> Caused by: java.lang.IllegalStateException: No match found
> 	at java.base/java.util.regex.Matcher.checkMatch(Matcher.java:1850)
> 	at java.base/java.util.regex.Matcher.group(Matcher.java:685)
> 	at dev.equo.solstice.p2.P2Client.getGroup1(P2Client.java:239)
> 	at dev.equo.solstice.p2.P2Client$Folder.<init>(P2Client.java:255)
> 	... 74 more
> [ERROR] 
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR] 
> [ERROR] For more information about the errors and possible solutions, please read the following articles:
> [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
] 
expected: 0
 but was: 1
Raw output
org.opentest4j.AssertionFailedError: [Run without error > arguments: [cmd, /c, mvnw -e spotless:apply]
> exit code: 1
>    stdout: (below)
> [INFO] Error stacktraces are turned on.
> [INFO] Scanning for projects...
> [INFO]                                                                         
> [INFO] ------------------------------------------------------------------------
> [INFO] Building Spotless Maven Plugin Tests 1.0.0-SNAPSHOT
> [INFO] ------------------------------------------------------------------------
> [INFO] 
> [INFO] --- spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) @ spotless-maven-plugin-tests ---
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 1.680 s
> [INFO] Finished at: 2026-10-21T15:25:51+00:00
> [INFO] Final Memory: 14M/54M
> [INFO] ------------------------------------------------------------------------
> [ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) on project spotless-maven-plugin-tests: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies: We could not parse the content at https://download.eclipse.org/eclipse/updates/4.25/p2.index:
> [ERROR] 
> [ERROR] <!DOCTYPE html>
> [ERROR] <html lang="en">
> [ERROR] <head>
> [ERROR] <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
> [ERROR] <meta name="description" content="Temporary offline.">
> [ERROR] <link href="favicon.ico" rel=icon type=image/x-icon>
> [ERROR] <meta name="robots" content="follow, noarchive, noindex">
> [ERROR] <title>Git content has moved.</title>
> [ERROR] <style>
> [ERROR] :root {
> [ERROR] --primary-color: #f7941e;
> [ERROR] --primary-dark: #F06C02;
> [ERROR] --primary-gradient: linear-gradient(180deg, #F06C02 0%, #A34201 100%);
> [ERROR] --text-color: #2c2c2c;
> [ERROR] --secondary-text: #666;
> [ERROR] --link-color: #f7941e;
> [ERROR] --border-color: #e8e8e8;
> [ERROR] --card-color: white;
> [ERROR] }
> [ERROR] body {
> [ERROR] margin: 0;
> [ERROR] padding: 0;
> [ERROR] font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
> [ERROR] color: var(--text-color);
> [ERROR] line-height: 1.6;
> [ERROR] min-height: 100vh;
> [ERROR] display: flex;
> [ERROR] flex-direction: column;
> [ERROR] }
> [ERROR] main {
> [ERROR] flex: 1;
> [ERROR] display: flex;
> [ERROR] align-items: center;
> [ERROR] justify-content: center;
> [ERROR] padding: 2rem;
> [ERROR] }
> [ERROR] .container {
> [ERROR] background: var(--card-color);
> [ERROR] max-width: 600px;
> [ERROR] width: 100%;
> [ERROR] text-align: center;
> [ERROR] transition: transform 0.3s ease;
> [ERROR] }
> [ERROR] .logo {
> [ERROR] width: 180px;
> [ERROR] transition: transform 0.3s ease;
> [ERROR] }
> [ERROR] h1 {
> [ERROR] font-size: 2rem;
> [ERROR] color: var(--text-color);
> [ERROR] margin-bottom: 1.5rem;
> [ERROR] font-weight: 600;
> [ERROR] letter-spacing: -0.02em;
> [ERROR] }
> [ERROR] .content {
> [ERROR] margin: 2rem 0;
> [ERROR] color: var(--secondary-text);
> [ERROR] text-align: left;
> [ERROR] }
> [ERROR] .actions {
> [ERROR] list-style: none;
> [ERROR] padding: 0;
> [ERROR] margin: 2rem 0;
> [ERROR] text-align: left;
> [ERROR] }
> [ERROR] .actions li {
> [ERROR] margin: 0.75rem 0;
> [ERROR] padding-left: 1.75rem;
> [ERROR] position: relative;
> [ERROR] }
> [ERROR] .actions li::before {
> [ERROR] content: "?";
> [ERROR] color: var(--primary-color);
> [ERROR] position: absolute;
> [ERROR] left: 0;
> [ERROR] font-weight: bold;
> [ERROR] }
> [ERROR] .links {
> [ERROR] margin-top: 2.5rem;
> [ERROR] display: flex;
> [ERROR] gap: 1rem;
> [ERROR] justify-content: center;
> [ERROR] flex-wrap: wrap;
> [ERROR] }
> [ERROR] .links a {
> [ERROR] font-weight: 700;
> [ERROR] text-decoration: none;
> [ERROR] padding: 0.75rem 1.5rem;
> [ERROR] border-radius: 50px;
> [ERROR] font-size: 1rem;
> [ERROR] position: relative;
> [ERROR] }
> [ERROR] .links a.secondary {
> [ERROR] color: var(--primary-dark);
> [ERROR] }
> [ERROR] .links a.secondary::after {
> [ERROR] content: "?";
> [ERROR] color: var(--primary-dark);
> [ERROR] position: absolute;
> [ERROR] right: 0;
> [ERROR] top: 50%;
> [ERROR] transform: translateY(-50%);
> [ERROR] font-weight: bold;
> [ERROR] }
> [ERROR] .links a.primary {
> [ERROR] background: linear-gradient(180deg, var(--primary-dark) 0%, var(--primary-dark) 100%);
> [ERROR] color: white;
> [ERROR] }
> [ERROR] .links a.primary:hover {
> [ERROR] background: var(--primary-gradient);
> [ERROR] }
> [ERROR] footer {
> [ERROR] background: white;
> [ERROR] border-top: 1px solid var(--border-color);
> [ERROR] padding: 1.5rem;
> [ERROR] font-size: 0.875rem;
> [ERROR] color: var(--secondary-text);
> [ERROR] text-align: center;
> [ERROR] }
> [ERROR] .footer-links {
> [ERROR] margin-top: 1rem;
> [ERROR] display: flex;
> [ERROR] flex-wrap: wrap;
> [ERROR] justify-content: center;
> [ERROR] gap: 1rem;
> [ERROR] }
> [ERROR] .footer-links a {
> [ERROR] color: var(--secondary-text);
> [ERROR] text-decoration: none;
> [ERROR] transition: color 0.3s ease;
> [ERROR] }
> [ERROR] .footer-links a:hover {
> [ERROR] color: var(--primary-color);
> [ERROR] }
> [ERROR] @media (max-width: 640px) {
> [ERROR] main {
> [ERROR] padding: 1rem;
> [ERROR] }
> [ERROR] html {
> [ERROR] font-size: 14px;
> [ERROR] }
> [ERROR] .links a.secondary::after {
> [ERROR] display: none;
> [ERROR] }
> [ERROR] .logo {
> [ERROR] width: 140px;
> [ERROR] }
> [ERROR] .links a {
> [ERROR] padding: 0.2rem 1rem;
> [ERROR] }
> [ERROR] }
> [ERROR] </style>
> [ERROR] </head>
> [ERROR] <body><main>
> [ERROR] <div class="container">
> [ERROR] <img
> [ERROR] src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyODMuMiA5MC43Ij4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjkuMi4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjAgQnVpbGQgMTE2KSAgLS0+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5zdDAgewogICAgICAgIGZpbGw6ICNmMDZjMDI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNjUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3YxMVpNMjMzLjMsNzUuN2M0LjIsMCw1LjgsMy4zLDUuOCw2LjNzLTEuNiw2LTUuOCw2LTUuNy0zLjEtNS44LTYsMS43LTYuMyw1LjgtNi4zWk0yMzMuMyw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yMTIuMSw5MC43di0xNy43aC0zLjN2MTcuN2gzLjNaTTE4OC41LDkwLjdoMy4zdi0xNC43aDUuNnYtM2gtMTQuNnYzaDUuNnYxNC43aDBaTTE2OS42LDg0LjJoLTYuNmwzLjMtNy42LDMuMyw3LjZaTTE3Mi40LDkwLjdoMy42bC03LjktMTcuN2gtMy42bC04LDE3LjdoMy42bDEuNS0zLjNoOS4zbDEuNSwzLjNoMFpNMTM0LjQsNzYuMWgzLjZjMy45LDAsNS41LDIuOCw1LjUsNS41cy0xLjUsNS44LTUuNSw1LjhoLTMuNnYtMTEuNGgwWk0xMzguMSw3M2gtNi45djE3LjdoNi45YzYuMiwwLDguOS00LjUsOC45LTlzLTIuOC04LjctOC45LTguN2gwWk0xMTUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3MwLDExLDAsMTFaTTg4LjIsNzN2MTAuMmMwLDMtMS42LDQuOS00LjMsNC45cy00LjYtMS43LTQuNi00Ljl2LTEwLjFoLTMuM3YxMC4xYzAsNS4zLDMuNiw3LjksNy45LDcuOXM3LjctMi43LDcuNy03Ljl2LTEwLjFoLTMuNFpNNTUuMiw3NS43YzQuMiwwLDUuOCwzLjMsNS44LDYuM3MtMS42LDYtNS44LDYtNS43LTMuMS01LjgtNiwxLjctNi4zLDUuOC02LjNoMFpNNTUuMiw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yNS41LDkwLjd2LTYuNWg4Ljl2LTMuMWgtOC45di00LjhoOS40di0zLjJoLTEyLjd2MTcuNmgzLjNaIi8+CiAgPHBhdGggZD0iTTI2OS40LDU0LjRoLTIyLjJ2LTguOWgyMS40di02LjloLTIxLjR2LTkuMWgyMi4ydi03LjJoLTI5LjZ2MzkuNWgyOS42di03LjNoMFpNMjI5LjQsMjguOGMtMy02LjEtOS40LTcuOC0xNS41LTcuOHMtMTUuMywzLjQtMTUuMywxMS41LDcuNCwxMSwxNS41LDEyYzUuMi42LDkuMSwyLjEsOS4xLDUuOHMtNC40LDUuOS05LjEsNS45LTkuNC0xLjktMTEuMS02LjNsLTYuMiwzLjJjMi45LDcuMiw5LjEsOS43LDE3LjIsOS43czE2LjYtMy44LDE2LjYtMTIuNi03LjctMTEuNi0xNS45LTEyLjZjLTQuNy0uNi04LjgtMS41LTguOC01czIuNi01LjIsOC4yLTUuMiw4LDIuMiw5LjQsNC40bDUuOS0zaDBaTTE3NiwyMi4yaC0xOC42djM5LjVoNy40di0xMS42aDExLjJjMTkuNCwwLDE5LjMtMjcuOSwwLTI3LjloMFpNMTY0LjksMjkuM2gxMS4yYzkuNSwwLDkuNSwxNCwwLDE0aC0xMS4ydi0xNFpNMTQ2LjksNjEuOFYyMi4yaC03LjR2MzkuNWg3LjRaTTEwMi45LDIyLjJ2MzkuNWgyNy44di02LjloLTIwLjNWMjIuMnMtNy41LDAtNy41LDBaTTkwLjcsNTEuN2MtMi43LDIuNS02LjIsNC05LjksNC05LjgsMC0xMy41LTYuOC0xMy42LTEzLjRzNC4xLTEzLjcsMTMuNi0xMy43LDcsMS4zLDkuNSwzLjdsNS00LjhjLTMuOC0zLjktOS4xLTYtMTQuNS02LTE0LjMsMC0yMSwxMC41LTIwLjksMjAuOCwwLDEwLjMsNi4zLDIwLjMsMjAuOSwyMC4zLDUuNiwwLDExLTIsMTUtNS45bC01LjEtNS4xaDBaTTUxLjcsNTQuNGgtMjIuMnYtOC45aDIxLjR2LTYuOWgtMjEuNHYtOS4xaDIyLjJ2LTcuMmgtMjkuNXYzOS41aDI5LjZ2LTcuM2gtLjFaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTkuOCwxOC4yQzE4LjgsNC4xLDM3LS44LDUyLjEsNS45bC0xLS43QzM1LjYtNC42LDE1LjEtLjIsNS4zLDE1LjMtNC42LDMwLjctLjIsNTEuMiwxNS4zLDYxLjFsMS4xLjZDMy44LDUwLjguOCwzMi4zLDkuOCwxOC4yWiIvPgogIDxwYXRoIGQ9Ik0yNzIuMiwyNi4xaDBjMC0yLjUsMi4xLTQuNiw0LjYtNC42czQuNiwyLjEsNC42LDUuNmgwYzAsMi41LTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42Wk0yODAuOCwyNi4xaDBjMC0yLjItMS44LTQuMS00LTQuMXMtNC4xLDEuOC00LjEsNC4xaDBjMCwyLjIsMS43LDQsMy45LDQuMWguMWMyLjIsMCw0LjEtMS44LDQuMS00aDBaTTI3NC44LDIzLjZoMi4zYzEuMSwwLDEuOS41LDEuOSwxLjZzLS40LDEuMy0xLjEsMS41bDEuMiwxLjdoLTEuNGwtMS0xLjVoLS43djEuNWgtMS4xdi00LjdoMFpNMjc3LDI1LjljLjUsMCwuOC0uMy44LS43cy0uMy0uNy0uOC0uN2gtMXYxLjNoMVoiLz4KPC9zdmc+"
> [ERROR] alt="Eclipse Foundation" class="logo">
> [ERROR] <h1>Temporary shutdown.</h1>
> [ERROR] <section class="content">
> [ERROR] <p>The Eclipse Foundation service you are trying to reach has been temporarily shutdown.</p>
> [ERROR] <p>We apologize for the inconvenience and will be back soon.</p>
> [ERROR] </section>
> [ERROR] </div>
> [ERROR] </main>
> [ERROR] <footer>
> [ERROR] <div>� Eclipse Foundation AISBL. All Rights Reserved.</div>
> [ERROR] <div class="footer-links"><a href="https://www.eclipse.org/">Eclipse.org</a><a href="https://www.eclipse.org/legal/privacy/">Privacy Policy</a><a href="https://www.eclipse.org/legal/terms-of-use/">Terms of Use</a><a href="https://www.eclipse.org/legal/compliance/">Compliance</a><a href="https://www.eclipse.org/legal/">Legal</a></div>
> [ERROR] </footer>
> [ERROR] </body></html>: No match found
> [ERROR] -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply (default-cli) on project spotless-maven-plugin-tests: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
> 	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
> 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
> 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
> 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39)
> 	at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122)
> 	at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:55)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal com.diffplug.spotless:spotless-maven-plugin:3.10.4-SNAPSHOT:apply failed: java.io.IOException: Failed to provision P2 dependencies
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:143)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
> 	... 22 more
> Caused by: com.diffplug.spotless.ThrowingEx$WrappedAsRuntimeException: java.io.IOException: Failed to provision P2 dependencies
> 	at com.diffplug.spotless.ThrowingEx.asRuntime(ThrowingEx.java:95)
> 	at com.diffplug.spotless.JarState$Promised.get(JarState.java:81)
> 	at com.diffplug.spotless.JarState$Promised.writeObject(JarState.java:88)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1453)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1410)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1453)
> 	at java.base/java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:414)
> 	at com.diffplug.spotless.FormatterStepSerializationRoundtrip.writeObject(FormatterStepSerializationRoundtrip.java:84)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at java.base/java.util.ArrayList.writeObject(ArrayList.java:957)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at com.diffplug.spotless.Formatter.writeObject(Formatter.java:56)
> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
> 	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946)
> 	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1397)
> 	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1319)
> 	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> 	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:327)
> 	at com.diffplug.spotless.maven.incremental.PluginFingerprint.digest(PluginFingerprint.java:109)
> 	at com.diffplug.spotless.maven.incremental.PluginFingerprint.from(PluginFingerprint.java:48)
> 	at com.diffplug.spotless.maven.incremental.IndexBasedChecker.create(IndexBasedChecker.java:43)
> 	at com.diffplug.spotless.maven.incremental.UpToDateChecker.forProject(UpToDateChecker.java:40)
> 	at com.diffplug.spotless.maven.AbstractSpotlessMojo.createUpToDateChecker(AbstractSpotlessMojo.java:473)
> 	at com.diffplug.spotless.maven.AbstractSpotlessMojo.execute(AbstractSpotlessMojo.java:284)
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
> 	... 23 more
> Caused by: java.io.IOException: Failed to provision P2 dependencies
> 	at com.diffplug.spotless.extra.P2Provisioner.lambda$createDefault$0(P2Provisioner.java:87)
> 	at com.diffplug.spotless.extra.EquoBasedStepBuilder.lambda$build$0(EquoBasedStepBuilder.java:135)
> 	at com.diffplug.spotless.JarState$Promised.get(JarState.java:75)
> 	... 67 more
> Caused by: java.lang.UnsupportedOperationException: We could not parse the content at https://download.eclipse.org/eclipse/updates/4.25/p2.index:
> 
> <!DOCTYPE html>
> <html lang="en">
> <head>
>   <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
>   <meta name="description" content="Temporary offline.">
>   <link href="favicon.ico" rel=icon type=image/x-icon>
>   <meta name="robots" content="follow, noarchive, noindex">
>   <title>Git content has moved.</title>
>   <style>
>     :root {
>       --primary-color: #f7941e;
>       --primary-dark: #F06C02;
>       --primary-gradient: linear-gradient(180deg, #F06C02 0%, #A34201 100%);
>       --text-color: #2c2c2c;
>       --secondary-text: #666;
>       --link-color: #f7941e;
>       --border-color: #e8e8e8;
>       --card-color: white;
>     }
>     body {
>       margin: 0;
>       padding: 0;
>       font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
>       color: var(--text-color);
>       line-height: 1.6;
>       min-height: 100vh;
>       display: flex;
>       flex-direction: column;
>     }
>     main {
>       flex: 1;
>       display: flex;
>       align-items: center;
>       justify-content: center;
>       padding: 2rem;
>     }
>     .container {
>       background: var(--card-color);
>       max-width: 600px;
>       width: 100%;
>       text-align: center;
>       transition: transform 0.3s ease;
>     }
>     .logo {
>       width: 180px;
>       transition: transform 0.3s ease;
>     }
>     h1 {
>       font-size: 2rem;
>       color: var(--text-color);
>       margin-bottom: 1.5rem;
>       font-weight: 600;
>       letter-spacing: -0.02em;
>     }
>     .content {
>       margin: 2rem 0;
>       color: var(--secondary-text);
>       text-align: left;
>     }
>     .actions {
>       list-style: none;
>       padding: 0;
>       margin: 2rem 0;
>       text-align: left;
>     }
>     .actions li {
>       margin: 0.75rem 0;
>       padding-left: 1.75rem;
>       position: relative;
>     }
>     .actions li::before {
>       content: "?";
>       color: var(--primary-color);
>       position: absolute;
>       left: 0;
>       font-weight: bold;
>     }
>     .links {
>       margin-top: 2.5rem;
>       display: flex;
>       gap: 1rem;
>       justify-content: center;
>       flex-wrap: wrap;
>     }
>     .links a {
>       font-weight: 700;
>       text-decoration: none;
>       padding: 0.75rem 1.5rem;
>       border-radius: 50px;
>       font-size: 1rem;
>       position: relative;
>     }
>     .links a.secondary {
>       color: var(--primary-dark);
>     }
>     .links a.secondary::after {
>       content: "?";
>       color: var(--primary-dark);
>       position: absolute;
>       right: 0;
>       top: 50%;
>       transform: translateY(-50%);
>       font-weight: bold;
>     }
>     .links a.primary {
>       background: linear-gradient(180deg, var(--primary-dark) 0%, var(--primary-dark) 100%);
>       color: white;
>     }
>     .links a.primary:hover {
>       background: var(--primary-gradient);
>     }
>     footer {
>       background: white;
>       border-top: 1px solid var(--border-color);
>       padding: 1.5rem;
>       font-size: 0.875rem;
>       color: var(--secondary-text);
>       text-align: center;
>     }
>     .footer-links {
>       margin-top: 1rem;
>       display: flex;
>       flex-wrap: wrap;
>       justify-content: center;
>       gap: 1rem;
>     }
>     .footer-links a {
>       color: var(--secondary-text);
>       text-decoration: none;
>       transition: color 0.3s ease;
>     }
>     .footer-links a:hover {
>       color: var(--primary-color);
>     }
>     @media (max-width: 640px) {
>       main {
>         padding: 1rem;
>       }
>       html {
>         font-size: 14px;
>       }
>       .links a.secondary::after {
>         display: none;
>       }
>       .logo {
>         width: 140px;
>       }
>       .links a {
>         padding: 0.2rem 1rem;
>       }
>     }
>   </style>
> </head>
> <body><main>
>     <div class="container">
>       <img
>         src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyODMuMiA5MC43Ij4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjkuMi4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjAgQnVpbGQgMTE2KSAgLS0+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5zdDAgewogICAgICAgIGZpbGw6ICNmMDZjMDI7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNjUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3YxMVpNMjMzLjMsNzUuN2M0LjIsMCw1LjgsMy4zLDUuOCw2LjNzLTEuNiw2LTUuOCw2LTUuNy0zLjEtNS44LTYsMS43LTYuMyw1LjgtNi4zWk0yMzMuMyw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yMTIuMSw5MC43di0xNy43aC0zLjN2MTcuN2gzLjNaTTE4OC41LDkwLjdoMy4zdi0xNC43aDUuNnYtM2gtMTQuNnYzaDUuNnYxNC43aDBaTTE2OS42LDg0LjJoLTYuNmwzLjMtNy42LDMuMyw3LjZaTTE3Mi40LDkwLjdoMy42bC03LjktMTcuN2gtMy42bC04LDE3LjdoMy42bDEuNS0zLjNoOS4zbDEuNSwzLjNoMFpNMTM0LjQsNzYuMWgzLjZjMy45LDAsNS41LDIuOCw1LjUsNS41cy0xLjUsNS44LTUuNSw1LjhoLTMuNnYtMTEuNGgwWk0xMzguMSw3M2gtNi45djE3LjdoNi45YzYuMiwwLDguOS00LjUsOC45LTlzLTIuOC04LjctOC45LTguN2gwWk0xMTUuNyw4NGwtOC43LTExaC0yLjd2MTcuN2gzLjN2LTEybDkuMywxMmgyLjF2LTE3LjdoLTMuM3MwLDExLDAsMTFaTTg4LjIsNzN2MTAuMmMwLDMtMS42LDQuOS00LjMsNC45cy00LjYtMS43LTQuNi00Ljl2LTEwLjFoLTMuM3YxMC4xYzAsNS4zLDMuNiw3LjksNy45LDcuOXM3LjctMi43LDcuNy03Ljl2LTEwLjFoLTMuNFpNNTUuMiw3NS43YzQuMiwwLDUuOCwzLjMsNS44LDYuM3MtMS42LDYtNS44LDYtNS43LTMuMS01LjgtNiwxLjctNi4zLDUuOC02LjNoMFpNNTUuMiw3Mi43Yy02LjEsMC05LjEsNC43LTkuMSw5LjNzMi45LDkuMSw5LjEsOS4xLDktNC42LDkuMS05LjItMy05LjMtOS4xLTkuM2gwWk0yNS41LDkwLjd2LTYuNWg4Ljl2LTMuMWgtOC45di00LjhoOS40di0zLjJoLTEyLjd2MTcuNmgzLjNaIi8+CiAgPHBhdGggZD0iTTI2OS40LDU0LjRoLTIyLjJ2LTguOWgyMS40di02LjloLTIxLjR2LTkuMWgyMi4ydi03LjJoLTI5LjZ2MzkuNWgyOS42di03LjNoMFpNMjI5LjQsMjguOGMtMy02LjEtOS40LTcuOC0xNS41LTcuOHMtMTUuMywzLjQtMTUuMywxMS41LDcuNCwxMSwxNS41LDEyYzUuMi42LDkuMSwyLjEsOS4xLDUuOHMtNC40LDUuOS05LjEsNS45LTkuNC0xLjktMTEuMS02LjNsLTYuMiwzLjJjMi45LDcuMiw5LjEsOS43LDE3LjIsOS43czE2LjYtMy44LDE2LjYtMTIuNi03LjctMTEuNi0xNS45LTEyLjZjLTQuNy0uNi04LjgtMS41LTguOC01czIuNi01LjIsOC4yLTUuMiw4LDIuMiw5LjQsNC40bDUuOS0zaDBaTTE3NiwyMi4yaC0xOC42djM5LjVoNy40di0xMS42aDExLjJjMTkuNCwwLDE5LjMtMjcuOSwwLTI3LjloMFpNMTY0LjksMjkuM2gxMS4yYzkuNSwwLDkuNSwxNCwwLDE0aC0xMS4ydi0xNFpNMTQ2LjksNjEuOFYyMi4yaC03LjR2MzkuNWg3LjRaTTEwMi45LDIyLjJ2MzkuNWgyNy44di02LjloLTIwLjNWMjIuMnMtNy41LDAtNy41LDBaTTkwLjcsNTEuN2MtMi43LDIuNS02LjIsNC05LjksNC05LjgsMC0xMy41LTYuOC0xMy42LTEzLjRzNC4xLTEzLjcsMTMuNi0xMy43LDcsMS4zLDkuNSwzLjdsNS00LjhjLTMuOC0zLjktOS4xLTYtMTQuNS02LTE0LjMsMC0yMSwxMC41LTIwLjksMjAuOCwwLDEwLjMsNi4zLDIwLjMsMjAuOSwyMC4zLDUuNiwwLDExLTIsMTUtNS45bC01LjEtNS4xaDBaTTUxLjcsNTQuNGgtMjIuMnYtOC45aDIxLjR2LTYuOWgtMjEuNHYtOS4xaDIyLjJ2LTcuMmgtMjkuNXYzOS41aDI5LjZ2LTcuM2gtLjFaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTkuOCwxOC4yQzE4LjgsNC4xLDM3LS44LDUyLjEsNS45bC0xLS43QzM1LjYtNC42LDE1LjEtLjIsNS4zLDE1LjMtNC42LDMwLjctLjIsNTEuMiwxNS4zLDYxLjFsMS4xLjZDMy44LDUwLjguOCwzMi4zLDkuOCwxOC4yWiIvPgogIDxwYXRoIGQ9Ik0yNzIuMiwyNi4xaDBjMC0yLjUsMi4xLTQuNiw0LjYtNC42czQuNiwyLjEsNC42LDUuNmgwYzAsMi41LTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42Wk0yODAuOCwyNi4xaDBjMC0yLjItMS44LTQuMS00LTQuMXMtNC4xLDEuOC00LjEsNC4xaDBjMCwyLjIsMS43LDQsMy45LDQuMWguMWMyLjIsMCw0LjEtMS44LDQuMS00aDBaTTI3NC44LDIzLjZoMi4zYzEuMSwwLDEuOS41LDEuOSwxLjZzLS40LDEuMy0xLjEsMS41bDEuMiwxLjdoLTEuNGwtMS0xLjVoLS43djEuNWgtMS4xdi00LjdoMFpNMjc3LDI1LjljLjUsMCwuOC0uMy44LS43cy0uMy0uNy0uOC0uN2gtMXYxLjNoMVoiLz4KPC9zdmc+"
>         alt="Eclipse Foundation" class="logo">
>       <h1>Temporary shutdown.</h1>
>       <section class="content">
>         <p>The Eclipse Foundation service you are trying to reach has been temporarily shutdown.</p>
>         <p>We apologize for the inconvenience and will be back soon.</p>
>       </section>
>     </div>
>   </main>
>   <footer>
>     <div>� Eclipse Foundation AISBL. All Rights Reserved.</div>
>     <div class="footer-links"><a href="https://www.eclipse.org/">Eclipse.org</a><a href="https://www.eclipse.org/legal/privacy/">Privacy Policy</a><a href="https://www.eclipse.org/legal/terms-of-use/">Terms of Use</a><a href="https://www.eclipse.org/legal/compliance/">Compliance</a><a href="https://www.eclipse.org/legal/">Legal</a></div>
>   </footer>
> </body></html>
> 
> 	at dev.equo.solstice.p2.P2Client$Folder.<init>(P2Client.java:257)
> 	at dev.equo.solstice.p2.P2Client.addUnits(P2Client.java:101)
> 	at dev.equo.solstice.p2.P2Session.populateFrom(P2Session.java:34)
> 	at dev.equo.solstice.p2.P2Model.queryRaw(P2Model.java:107)
> 	at dev.equo.solstice.p2.P2Model.query(P2Model.java:136)
> 	at com.diffplug.spotless.extra.P2Provisioner.lambda$createDefault$0(P2Provisioner.java:74)
> 	... 69 more
> Caused by: java.lang.IllegalStateException: No match found
> 	at java.base/java.util.regex.Matcher.checkMatch(Matcher.java:1850)
> 	at java.base/java.util.regex.Matcher.group(Matcher.java:685)
> 	at dev.equo.solstice.p2.P2Client.getGroup1(P2Client.java:239)
> 	at dev.equo.solstice.p2.P2Client$Folder.<init>(P2Client.java:255)
> 	... 74 more
> [ERROR] 
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR] 
> [ERROR] For more information about the errors and possible solutions, please read the following articles:
> [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
] 
expected: 0
 but was: 1
	at com.diffplug.spotless.maven.MavenRunner.runNoError(MavenRunner.java:105)
	at com.diffplug.spotless.maven.groovy.GrEclipseTest.testEclipse(GrEclipseTest.java:32)