Update CentralDirectoryParser to reduce the number of objects created
when parsing the central directory. A single CentralDirectoryFileHeader
object is now reused as entries are parsed.
Fixes gh-5260
When spring-boot-docs is built on Windows, Maven logs a warning:
[WARNING] The POM for org.crashub:crash.shell🫙1.3.2 is invalid,
transitive dependencies (if any) will not be available, enable debug
logging for more details
The build then fails as a class in crash.cli, a dependency of
crash.shell, is unavailable. The failure’s due to a hardcoded path
in the pom that Maven needs to be absolute and isn’t on Windows. See
https://jira.exoplatform.org/browse/CRASH-247 for details.
This commit works around the problem by explicitly declaring
crash.shell’s one dependency directly. The warning is still logged but
it’s now benign.
Closes gh-5633
5e0ba6ea added support for reading a jar manifest's Class-Path
attribute when resolving changeable URLs from a URLClassLoader,
however it did not handle relative URLs, i.e. URLs without a protocol,
correctly.
This commit updates ChangeableUrls so that it uses the URL of the
JAR that contains the manifest as the base for any new URLs that
are created. When the Class-Path entry is relative, this base will
be used. When the Class-Path entry is absolutee, URL's constructor
will ignore the supplied base.
Closes gh-5665
This commit enhances JettyEmbeddedServletContainerFactory to allow
Jetty to be created with a custom ThreadPool via a new
setThreadPool(ThreadPool) method.
Closes gh-5324
The ServerConnector class doesn’t exist in Jetty 8 so we have to
resort to reflection to create and configure a SelectChannelConnector
instead.
Closes gh-5649
See gh-5380
Add support for Jetty `acceptors` and `selectors` configuration, either
directly on the `JettyEmbeddedServletContainerFactory` or via
`server.jetty.acceptors`/`server.jetty.selectors` server properties.
Fixes gh-5380
Closes gh-5649
Our Windows build is failing currently because the couchbase server does
not handle a socket connection within a second (the default). This commit
adds a property to customize this option and set it to 10 sec in the
sample.
While investigating this issue, it turns out that while
`CouchbaseConfiguration` is public, it is not really possible to extend
it in user's configuration. This commit fixes this problem and add a test
that demonstrates how it can be used.
Closes gh-5657
Previously, the CLI would always use the class loader to try to locate
a source file. This was contrary to the SourceOptions javadoc which
states that the class loader is “used to try and load files that are
not found in the local filesystem”. This provide to be problematic on
Windows when a fully-qualified source file was supplied. The driver
letter colon slash (e.g. c:/) at the start of the path is considered
invalid for a class path resource by URLClassPath.Loader resulting in an
IllegalArgumentException being thrown.
A workaround for this URLClassPath behaviour was added in a71c9b5d. It
was removed as part of reworking LaunchedURLClassLoader to use a
conventional delegation model in 87fe0b2a. It was then reinstated in
cc140b2c. This work around is undesirable as it causes
LaunchedURLClassLoader’s behaviour to diverge from URLClassLoader’s
behaviour (this is contrary to the comments in the test added in
a71c9b5d which incorrectly tests the two class loader with different
class paths. If the two class loaders are created with the same class
path then their behaviour is the same).
This commit updates SourceOptions to make its behaviour match its
javadoc so that a search of the class path is only performed if the
filename doesn’t exist on the filesystem. Furthermore, when running on
Windows, if the filename is an absolute path no further searching is
performed as the path cannot reliably be used to search the class path
due to the behaviour of URLClassPath.Loader when given a path that
is an absolute file path on Windows. This ensures that the user is
presented with an error message indicating that the file could not be
found.
Closes gh-5650
The couchbase instance in our windows infra seems super slow. Trying to
workaround that issue by increasing the connect timeout from 5 to 10 sec.
See gh-5651
The instructions should have been updated as part of the work on
gh-5267 so that the zip of all of the starter poms is available to
the documentation's build. With that fixed, the current instructions
still fail as the javadoc fails to generated as a result of
org.springframework.boot:spring-boot:test-jar:tests being unavailable.
This can be avoid by simply not trying to build the javadoc, i.e.
by running generate-resources rather than install.
Closes gh-5633