Mark ThreadGroups created by FailOnTimeout as daemon groups (#1687)

 Mark ThreadGroup created by FailOnTimeout as a daemon group.

 Previously, FailOnTimeout destroyed the ThreadGroup, which could cause race conditions if the ThreadGroup was referenced by other threads.

 Fixes #1652

Mark ThreadGroups created by FailOnTimeout as daemon groups
Mark ThreadGroup created by FailOnTimeout as a daemon group.
Previously, FailOnTimeout destroyed the ThreadGroup, which could cause race conditions if the ThreadGroup was referenced by other threads.


Use Google's Maven Central mirror

 We are using Maven 3.1.1 which by default uses HTTP instead of HTTPS for
 resolving artifacts from Maven Central. Maven Central recently
 discontinued HTTP support. Therefore the build on Travis started
 failing. By using an HTTPS mirror of Maven Central the build on Travis
 will work again.

 I chose Google's mirror because Travis uses this mirror by default, too.
 I did not upgrade to a new version of Maven because there is no newer
 version with Java 5 support and it should be possible to build JUnit 4
 with Java 5 so that we can easily ensure that it works with Java 5.


Deprecate Assert#assertThat

 The method 'assertThat' is used for writing assertions with Hamcrest.
 Hamcrest is an independent assertion library and contains an own
 'assertThat' method in the class 'org.hamcrest.MatcherAssert'. It is
 available both in the old Hamcrest 1.3 release and in the current
 Hamcrest 2.1. Therefore the JUnit team recommends to use Hamcrest's own
 'assertThat' directly.


spelling: unwieldy


spelling: methods


spelling: builder


spelling: assert


style: remove space


Update JUnit 5 teaser


Update campaign spending


Use new logo and link to new website


Publish from Travis

 Remove 11

 Omit signing

 WIP


Deprecate rule ExpectedException (#1519)

 The method Assert.assertThrows provides a nicer way for verifying
 exceptions. In addition the use of ExpectedException is error-prone
 when used with other rules like TestWatcher because the order of rules
 is important in that case.

Deprecate rule ExpectedException
The method Assert.assertThrows provides a nicer way for verifying
exceptions. In addition the use of ExpectedException is error-prone
when used with other rules like TestWatcher because the order of rules
is important in that case.


Add siili


Identify reflection package jdk.internal.reflect

 JDK 9 uses classes from the package jdk.internal.reflect instead of
 sun.reflect.


Add test for handling InitializationError

 The code was changed by commit 0804ef4cd09b0e94783a9882c60914e22fca5108
 but unfortunately the test was not part of the commit. The test is based
 on Philip Graf's test in pull request #1065.

 Co-authored-by: Philip Graf <git@acanda.ch>


Upate TestName to make the 'name' field volatile.

 This ensures that the name is published across threads correctly--for
 instance, if a parallelized runner is used.

 Closes #1157


Formatting


Fixed lost names


Simplification of theory parameter names, since format automatically deals with toString() and nulls.


Make stylistic changes

 Put { on first line with a space before it


Build with Maven 3.1.1 (using Maven Wrapper)

 This makes the build independent from the Maven version that is
 installed on the build machine. E.g. Travis has Maven 3.5.6 installed
 that does not support Java 6 anymore.

 Maven version 3.1.1 is used because all newer version don't support
 Java 1.5.


Prefer interfaces over concrete classes

 Makes code easier to scan by removing unnecessary noise.


Fixed typo [WiKi -> Wiki]


Fix dead link to the ant task in FAQ (#1478)

 Documentation to the ant junit task has been moved to another location.

Fix dead link to the ant task in FAQ
Documentation to the ant junit task has been moved to another location.


Only use a property where multiple entries need syncing

 * The hamcrest version is only used in one place, i.e. the dependency.
 * Using properties to define dependency versions can cause issues for others.
 * Using properties to define a shared version across multiple dependencies causes less issues
   when you have multiple dependencies that need to be kept in sync.
 * We only have one dependency here and it doesn't need syncing to any other dependency
 * Therefore the right thing is to just specify the version in the dependency
 * End users can still override the dependency in their poms.


Ensure exceptions from methodBlock() don't result in unrooted tests.

 The introduction of the runLeaf() method in BlockJUnit4ClassRunner in
 JUnit 4.9 introduced a regression with regard to exception handling.

 Specifically, the invocation of methodBlock() is no longer executed
 within a try-catch block as was the case in previous versions of JUnit.

 Custom modifications to methodBlock() or the methods it invokes may in
 fact throw exceptions. In such cases, exceptions thrown from
 methodBlock() cause the current test execution to abort immediately. As
 a result, the failing test method is unrooted in test reports, and
 subsequent test methods are never invoked. Furthermore, RunListeners
 registered with JUnit are not notified.

 This commit addresses this issue by wrapping the invocation of
 methodBlock() within a try-catch block. If an exception is not thrown,
 the resulting Statement is passed to runLeaf(). If an exception is
 thrown, it is wrapped in a Fail statement which is passed to runLeaf().

 Closes #1066
 Closes #1082


Prepare for Maven release


getNanos() is a single thread confinement. Volatiles not needed!


Cleaning up indentation

 The inline method refactoring conducted by eclipse introduced
 some extra tabs.

 Incomplete - task : Issue 551: Resolve sensitive equality in
 MethodSorter test.


Remove tabs


Refactoring of the test case for JVM Method sorter

 Removed the string based equality, and improved naming
 (in particular calling the expected result 'actual' was confusing).

 Incomplete - task : Issue 551: Resolve sensitive equality in
 MethodSorter test.


Remove fast-tests maven target.

 Many of our tests store data in static fields, so the tests cannot be run in parallel.

 Fixes #1297


Converted tabs to spaces

 Converted tabs to spaces for newly added code to be in line with
 guidelines.


Suppress SecurityManager deprecation warnings


make MethodSorter.NAME_ASCENDING a deterministic comparator, with Method.toString used as a tiebreaker


Added different implementation for Null Sorter test

 Added an extra test case providing an alternative implementation for
 the getMethodsNullSorter test case.

 The new implementation passes when coverage analysis using jacoco is
 enabled, whereas the old one incorrectly fails.

 The new approach only checks the order of methods that are of interest
 (i.e., not looking at irrelevant extra methods that the coverage
 analyzer might generate).

 Furthermore the new approach avoid the 'sensitive equality' test smell
 by replacing toString-based equality by actual equality.


Fix indentation


Reorder assignments to match order of parameters.


Description.getTestClass() did not work reliably.
 Was assuming that the ClassLoader used for JUnit could also load test classes.
 While this may be true in a simple test runner based on a flat classpath, it is not true in all test runners.
 When we are given a Class object, keep it—do not try to reconstruct it from its name alone.


Added 3 names and a link


Added a name to list


Simplifying isEqualsRegardingNull.


Organized imports according to project's conventions


changed the expectedCause() method to accept a Matcher instead of an explicit Throwable and made some documentation changes


Increase running time of statement. Fixes #963.

 The time between starting the statement and calling the future is
 arbitrary. Now the execution time of the statement is very very long.
 This ensures that the statement is not already finished when the
 future is called.


Added one link


Reused HasWrongExpectedException instead of own defined class
 (they were the same) and relocated the changes to a better location
 in the file which is more inline with the rest of the file. And,
 of course, removed the superfluous brackets.


Merging kcooney-issue227 to master


Disable xref reports


Fix typo in test name


Apply code review.


Set master version to 4.10.1 in build.xml


Updated version to 4.9b3


Optimize ParentRunner.filter for nested suites

 Prior to this change, applying a filter to a nested suite would create redundant nested filters


4.10 final in version, non-snapshot staging


Update release notes with details on pull 986


Update JUnit version, improve ClassRule javadoc, update release notes


Create MultipleFailureException in org.junit.runners.model and deprecate the one in org.junit.internal.runners.model.
 Update MultipleFailureException to have a useful message.

 This allows developers who write custom runners to properly handle multiple exceptions without depending on internal classes.


Fixed failing tests when running on Windows.

 Note that File.separator is not sufficient to build an absolute path on Windows.
 String.format with '%n' produces a platform dependent line separator.

 Closes #1409


Fix regression in TemporaryFolder.newFolder(String) for paths with slashes. (#1402)

 In JUnit 4.11, newFolder(String) was changed to no longer support paths
 with a file separator. This has been fixed. The overload of newFolder()
 that supports passing in multiple strings still does not allow strings
 containing file separators.

Fix regression in TemporaryFolder.newFolder(String) for paths with slashes.
In JUnit 4.11, newFolder(String) was changed to no longer support paths
with a file separator. This has been fixed. The overload of newFolder()
that supports passing in multiple strings still does not allow strings
containing file separators.


applied code review


Use %n in string.format() (#1346)

 In format strings, it is generally preferable better to use %n, which will produce the platform-specific line separator.

Use %n in string.format()
In format strings, it is generally preferable better to use %n, which will produce the platform-specific line separator.


Improve error message if the thrown exception has the same class but the classes are loaded from different class loaders.


Fix distribution management


javadoc'ed, and with better names


doxia-module-markdown 1.5 supports page titles


Create a class TestWithParameters.

 This class keeps the data together that are needed for creating a runner for a single data set of a parameterized test. This makes it also clear, that the computation of the name is not the responsibility of the runner but of the Parameterized class.


Move TestClassTest to package org.junit.runners.model.

 It is common to add tests to the same package as the class under test.


surefire and javadoc maven plugin updates


Didn't want that


Bump version


checkpoint


Highlight java syntax


up version


I want these gone


minor changes in test


Fix compilation errors


Version 4.7 to 4.7.1-SNAPSHOT in build.xml


Cleaning up compile errors from reverting hamcrest change


categories 2


added the since 4.12 where appropriate


Fix ResultMatchers#hasFailureContaining (#1292)

 ResultMatchers.hasFailureContaining() should not match when the given PrintableResult has no failures.

Fix ResultMatchers#hasFailureContaining
ResultMatchers.hasFailureContaining() should not match when the given PrintableResult has no failures.


merged


org.junit.Rule, org.junit.Rules


Added better pom.xml


Delete .cvsignore files, because we're using Git now.


Updated gitignore


Remove useless variable (#1342)


Rewrite JavaDoc of ExcludeCategories.createFilter(Class<?>...).

 Remove internal details of the created filter and describe its behaviour instead.


Added release notes


Clarify that annotating suite has no effect


Single-datapoint methods are now only called if the return types could be relevant, and theory parameter signatures are compared with types via a prebuilt map rather than reflection.


don't wrap statements for before/after/etc unless there's something to wrap them with.

 Signed-off-by: Kent Beck <kent@threeriversinstitute.org>


Another TODO bites the dust


Removing more TODOs

 Signed-off-by: Kent Beck <kent@threeriversinstitute.org>


Make ParallelComputer more beautiful by creating a Decorator
 extension point in ParentRunner

 Signed-off-by: Kent Beck <kent@threeriversinstitute.org>


Added note of fixed bug


We're 4.7 now

 Signed-off-by: Kent Beck <kent@threeriversinstitute.org>


Updated to 4.6 final

 Signed-off-by: Kent Beck <kent@threeriversinstitute.org>


Preparing for 4.6


Update version to 4.6-SNAPSHOT


Javadocs for three more classes


Added profile task to build.xml


JavaDoc cleanup


A SuiteBuilder can be explicitly passed to a Runner class that needs one in its constructor.  This eliminates the ugly global constant SuiteBuilder in Suite, and breaks the cyclic dependency between runners and requests


Invalid assumptions, failed tests, and ignored tests now all print similarly


ParentRunner handles filtering and sorting for all runners, now including CompositeRunner


Remove old todo


No matching parameters is now an assumption failure, not an assertion failure


Remove


Ignore target directory


Now includes filtering


Fixed a bug in Theories classes with constructor parameters, where the method parameters and constructor parameters were switched


Simplified Theories. Factored out ignoring violated assumptions into its own Link.


- Renamed link classes.
   Absolute actions are verbs: IgnoreTest, Invoke.
   ActionModifiers are modifying phrases: ExpectingException, WithTimeout, etc.

 - Moved isShadowedBy(List) to TestMethod


Created a separate build directory for new build scripts, including FTP upload


Fixed broken link to 'How To Ask Questions The Smart Way'.


Reorganized the AssertTest, which had grown unwieldy.


Enhanced missing test.jar error message


Proofread README.md file with multiple fixes (#6807)

 Fixed typo, grammatical, punctuations, and semantic coherence to improve readability and content quality.

 Signed-off-by: Aditya Kumar Roy <akroy@umass.edu>

Proofread README.md file with multiple fixes
Fixed typo, grammatical, punctuations, and semantic coherence to improve readability and content quality.
Signed-off-by: Aditya Kumar Roy <akroy@umass.edu>


fix ut


Reduce memory allocation during address change notification. (#5613)

 1. Merge registry notification events happened in a certain short interval.
 2. cache URL instances to reduce string -> URL recreation
 3. reduce allocation during export and refer at start up.
 4. add frozen status for URL
 5. use URLBuilder for unfrozen URLs

Reduce memory allocation during address change notification.
1. Merge registry notification events happened in a certain short interval.
2. cache URL instances to reduce string -> URL recreation
3. reduce allocation during export and refer at start up.
4. add frozen status for URL
5. use URLBuilder for unfrozen URLs


DynamicConfiguration: return default value if not implemented. (#6086)

 fixes #5916


add HttpUtils.java file back.


upgrade dependency to 2.7.5


Refactor: remove NetUtils.getHostAddress() and relace it with NetUtils.getLocalHost() (#5526)


optimize config


config refactor


Shorten the life cycle of Timeout to get a better gc effect (#4081)


Enhance ProtobufTypeBuilder support generate type definition which contains Bytes List or Bytes Map. (#5083)


Add 'getUniqueServiceKey' to keep backward compatibility.


test flush


unit test for metadata


demos


update change list


fix UT


weird demo changes


Config optimization.
 1. add ConfigManager
 2. Reference/Service hold reference of ConfigCenterConfig
 3. change from-spring to include-spring-env


use revision in pom.xml (#3980)


Add `how can I contribute?` section.


fix comments


delete class


update changes for 2.7.1


add unit test


Fix compilation problem


add tests


Polish distribution pom


Correct pom version.


upgrade version to 2.5.10


Add comment


Fix typo #1260


remove tree.txt


fix compiler bug


add maven-compiler-plugin to pom.xml


update README


update version to 2.5.4-SNAPSHOT


update version to 2.5.2-SNAPSHOT


release 2.4.1


mv examples


rm dubbo-admin


Bump jackson-databind to 2.10.5.1


Update google-java-format to 1.8


Fix typo


Prepare next development version


Prepare version 2.8.1


Update changelog for 2.8.0


Prepare version 2.7.1


Add coroutine support to BehaviorDelegate


Migrate forced suspension mechanism from yield to Dispatcher.Default

 Since it's possible for certain dispatchers to completely avoid yielding, and currently the immediate dispatchers exhibit this behavior, we need an alternate mechanism of forcing suspension or UndeclaredThrowableExceptions will still be seen.

 Retrofit does not have its own thread pool onto which we can defer resuming. Instead we rely to Dispatchers.Default and forcibly suspend the caller using low-level coroutine intrinsics.


Prepare version 2.7.0


Prepare version 2.6.3


Allow service interfaces to extend other interfaces

 With a higher minSdkVersion, the bug which prevented this on Android no longer exists.


`URL` overload for `Retrofit.Builder#baseUrl`

 Functionally does nothing, just somewhat cleaner to be able to do `baseUrl(URL)` than `baseUrl(URL#toString());` if handling a `URL` rather than `String`.
 Used `HttpUrl.get(String)` as `HttpUrl.get(URL)` returns null instead of throwing an exception.


Update to Gson 2.8.5.


Back suspend methods with the CallAdapter for Call.

 This allows the regular mechanism of composition of behavior without explicitly needing to model suspending functions in the API.


Add some missing @Nullable annotations to Utils


Add annotation for skipping the callback executor


Fatal errors should crash the dispatcher thread

 This is an imperfect fix as uncaught exceptions reaching OkHttpCall which are not fatal still only log, but most of the adapters are defending against anything getting this far already.

 Also contained is a fix for the RxJava 2 async adapter. Non-200 responses delivered to the body observer would be forwarded to onError. If that callback threw a fatal exception, it would be re-delivered to the body observer despite it having already called a downstream terminal method. The fatal error should have been propagated by the async observer instead of attempting to make its way back downstream.


Use a dummy value to further validation optional delegation

 Prior to this other things might cause a null value. This ensures the value can only come from only place.


Clean out Java 8 READMEs to further discourage use


Expose static factory for Invocation

 Also rework the internals of how an Invocation gets instantiated and set as a tag on the Request. This will make a future change easier to land.


Re-work unresolvable type detection in parameters

 In order to natively support Kotlin's 'suspend' modifier in the future, we need to allow wildcards to be used for the last parameter. As a result, we only validate the shape of a type once a Retrofit annotation is detected.


Get rid of the now-useless HttpServiceMethod.Builder

 A simple static factory will do.


Consolidate exception formatters in one place


Pull out ServiceMethod base class

 This will allow us to support multiple forms of invocation beyond HTTP calls.


Update README.md


Update CHANGELOG.md


Update to OkHttp 3.10.0.


Remove old ProGuard nonsense.

 As of API 26 the android.jar contains the classes checked by Platform and used by Platform.Java8. And we don't encourage throwing checked exceptions from the service method but instead routing them through your call adapter.


Update to OkHttp 3.9.0.


Clarify that errors start at 0% probability.


Upgrade to Checkstyle 7.7.


Okio proguard rules link


Update checkstyle to the latest version.


Allow HTTP errors to be created as part of mock behavior.


Replaced invocation of deprecated factory methods in favor of newer counterparts in JacksonConverterFactory


Switch to a better, custom validating subscriber.

 TestSubscriber is a poor implementation for correctness testing. This new subscriber ensures all events are tested by being a JUnit rule. It also consumes events as they're validated so that assertion becomes more like a script than a ledger.

 This also switches tests to use unsafeSubscribe to ensure that any contract violations are not being suppressed. The latest version of RxJava is required for accessing this method on Completable.


Simplify observable creation and reduce runtime allocations.


Update to support protobuf 3.0.


Skip a UTF-8 BOM if present.


Add missing import.


Adapter Javadoc details.


All the latest of all the things.


Combine MethodHandler and RequestFactory into ServiceMethod.

 This is once class that handles all of the annotations and binding for
 a service method.


Speling.


Add example of using JSON converter as a String converter.

 This also adds the Retrofit instance as a param to the string converter to allow it to delegate to others directly. This brings it into parity with the method signatures of the other converter methods anyway.


baseUrl should end with '/'


Add support for scalars from ResponseBody


Provide ability to retrieve original Request object from Call.


Update to the latest version of okhttp


Prepare version 2.0.0-beta3.


Use new OkHttp's non-throwing close and a simpler body copy.


Add missing Call wrappers as return type


Switch to a proper builder for MockRetrofit.

 This allows passing an explicit executor for test cases.


Remove incorrect generic parameter.


Tweaks from review.


Prepare for 2.0.0-beta2.


Change log for 2.0.0-beta1.


Add a test to verify unused and potentially invalid path params are allowed.


Rewrite RxJava call adapter tests to be more understandable.


OkHttp 2.0 only.


Formatting.


Ensure we don't crash on null header values.


Prepare for 1.7.0.


Favor an immutable singleton list over immutable list view.


Next version will be 1.7.0.


Use the annotations directly for parameter handling.

 Before we attempted to normalize the parameter annotations into a name and type model. The introduction of multi-part transfer encodings required something more expressive so the annotation instances themselves were used. This change removes the name and type in favor of using the annotation for everything.

 Deprecate the pre-encoded annotations in favor of boolean fields on the corresponding 'regular' annotation.


Bump Guava dependency.


Bump test dependencies.


Add docs about null responses.


add paragraph clarifying logging


Prepare version 1.4.0.


Add simple package info to root package.


whitespace.


client: Reintroduced deprecated Response constructor


Properly name ignored exception in 'catch' block.


Changing Server to implement IServer interface.


Add docs for setting Headers with RequestInterceptor


Fix small wording issues in custom converter docs


Update custom conversion docs per feedback

 * Clarify that Gson is just the default converter
 * Add section on other built-in converters
 * Add section on implementing your own custom converters


fixed javadoc


Code review


reformat with two-space indent


Promote Android logging to a class which knows about chunking.

 Remove the concept of chunking from calling code. This is an Android-specific implementation detail which is now only performed when needed.


Prepare for 1.2.1.


Use Wire release 1.0.1


Fix IntelliJ auto-formatting.


Newine at end of file. Yes plz.


Log network and unexpected exceptions if logging is enabled.


Correct javadoc to point to proper annotation.


Expose addQueryParam via the RequestInterceptor injection-like framework.


Dependency updates.


Escape closing curly braces for Android support.


First sample is synchronous.


Remove usage of HTTP constants class from Apache dependency.


Add response object to callback success.

 Gives access to response headers while still converting response within retrofit.


Fix inconsistencies in javadocs.

 These changes were made with consistency in mind, in relation to the rest of the project:
  - Change self-closing <p/> tags to regular <p> tags.
  - Add missing <p> tags.


Provide a mutable server implementation. Update Server API to conform.


Convert all files to 100-character lines. Enforce with checkstyle.


Simplify asynchronous executor API.


Add a CONTRIBUTING file.


Pom cleanup.


Bump version back to SNAPSHOT


Restore version 0.6.0-SNAPSHOT


Bump version to RC2.


Bump version to RC1.


Fix style nits per review


Adding a preInvoke callback for right before http call is being made.


Fix spelling


Moved echo up.


Ensure ByteSinks and Files use FileDescriptor.sync()


Cleaned up code.


fix README.md typo (#6469)


Fix single failing graal test (#6445)


Update README.md (#6389)


Test docs and unit test (#6386)


Update concurrency.md (#6290)


Android 11 (#6286)


Document interceptor throwing modes (#6235)


Migrate from Travis to GitHub Action for publishing


Beef up Request's toString

 Previously it unconditionally showed tags even if empty and would not show headers.


Replace Math.min() with minOf (#5071)

 * Replace Math.min() with minOf

 * Fix

Replace Math.min() with minOf
* Replace Math.min() with minOf
* Fix


API change: Make OkHttpClient accessors final

 If we want these to be vals to Kotlin, they can't be open. I think the
 motivation to make these non-final was pretty weak, and I don't mind
 breaking API compatibility here.


Fix master build (#5477)


3.12.3 backports some bug fixes


Convert Http2Connection to Kotlin (#5014)

 * Rename Http2Connection to .kt

 * Convert Http2Connection to Kotlin

Convert Http2Connection to Kotlin
* Rename Http2Connection to .kt
* Convert Http2Connection to Kotlin


Convert HttpDate to Kotlin (#5000)

 * Convert HttpDate to Kotlin

 * Idiomatic Kotlin

 * Revert back to if condition

Convert HttpDate to Kotlin
* Convert HttpDate to Kotlin
* Idiomatic Kotlin
* Revert back to if condition


Convert Http2Reader, Http2Writer to Kotlin (#4982)

 * Rename Http2.java to .kt (and others)

 * Convert Http2Reader, Http2Writer to Kotlin

Convert Http2Reader, Http2Writer to Kotlin
* Rename Http2.java to .kt (and others)
* Convert Http2Reader, Http2Writer to Kotlin


Update the changelog for OkHttp 4.0.1


Tolerate null-hostile lists in public API


DiskLruCache snapshot() method removing entries that are being cached (#3905)

 Fixed a bug I found.
 When using DiskLruCache, hasNext() method of Iterator<Snapshot> returned by snapshot() method iterates through lruEntries, however if entry is not completed yet, it is removed (together with dirtyFiles) as cleanFiles don't exist yet - during saving response to disk. This caused sometimes file not being cached at all.

DiskLruCache snapshot() method removing entries that are being cached
Fixed a bug I found.
When using DiskLruCache, hasNext() method of Iterator<Snapshot> returned by snapshot() method iterates through lruEntries, however if entry is not completed yet, it is removed (together with dirtyFiles) as cleanFiles don't exist yet - during saving response to disk. This caused sometimes file not being cached at all.


Fix correctness of WebSocketReader reserved flags test


Remove obsolete @JvmField


Prepare for release 4.0.0-RC2.


Update javadoc


Make error-prone validate missing override annotations


Save reports (#4821)


Fix flaky DuplexTest.duplexWithRedirect

 The test is flaky because the server sometimes acts on the 301 response and resets the stream before the action added by MockDuplexResponseBody.sendResponse() is executed. This action then fails because it tries to write to a reset stream. mockDuplexResponseBody.awaitSuccess() then throws and fails the test.

 The change enforces the de-facto sequence on most runs, where the 301 response is handled only after the Duplex response is sent.

 Fixes https://github.com/square/okhttp/issues/4743


change var to val, readonly is better


Jdk8WithJettyBootPlatform - load through bootstrap


HTTP/1 >> HTTP1


Permit multipart filenames to contain non-ascii characters

 Closes: https://github.com/square/okhttp/issues/4564


Run IntelliJ inspections on the codebase

 Some nullability warnings, some diamond operators, adopting Objects.equals(),
 and some dead code elimination.


Don't crash on IPv4-mapped IPv6 addresses

 https://github.com/square/okhttp/issues/4451


Change contributing guide in repo to match wiki (#4414)


CipherSuite init speedup (#4340)


APIs to set date headers


remove experimental doc


Fixup HeldCertificate so that it's worthy of production use.

 This changes the default from the insecure 1024-bit RSA to a secure 256-bit ECDSA
 key. It adds a new option to use RSA keys for interoperating with older clients.


Support client authentication in MockWebServer

 Also expose the handshake in the RecordedResponse.

 https://github.com/square/okhttp/issues/3934


Update deploy_snapshot.sh to temporarily ignore javadoc errors and compile tests but not run (#3821)


document buffer (#3748)


Fix travis build


Don't summarize the request and response headers. (#3576)

 Just pass the Request and Response objects in directly.

Don't summarize the request and response headers.
Just pass the Request and Response objects in directly.


Fix a race in WebSocketHttpTest. (#3570)

 We were assuming on a client failure the server wouldn't have any
 further events. But it will get a failure if we give it a moment.
 This was causing some test flakiness.

Fix a race in WebSocketHttpTest.
We were assuming on a client failure the server wouldn't have any
further events. But it will get a failure if we give it a moment.
This was causing some test flakiness.


Fix code reference in Javadoc.


Add error-prone compiler and fix its found issues.


Change MediaType's failure mode to not crash on charset problems.

 As-is it throws unchecked exceptions on unexpected charsets. This is a problem
 because it can cause a misbehaving webserver to crash the client.

 I don't expect this to break existing clients; returning 'null' has always
 been a possibility; it's just returned in more cases.


Make the crawler a little better.

 Name threads by their URLs. Don't follow all fragments of the same URL.


Change HttpURL.redact() to return a String.


Correct UTF8 BOM is EFBBBF


Do not allow remote peer to arbitrarily size the HPACK decoder dynamic table.


Handle UnsupportedCharsetException in HttpLoggingInterceptor


Correct comment.


Add Call.isExecuted().

 Might be useful to expose this bookkeeping to app developers.


Fix flakiness in CallTest.cancelTagImmediatelyAfterEnqueue()

 There's a race where the HTTP engine has been created, but not yet connected
 and the cancel isn't as immediate as it could be. Fix the test by making sure
 there's a response to be retrieved.

 With the upcoming connection pool changes we might make the implementation
 more robust.

 Closes: https://github.com/square/okhttp/issues/2001


Use ResponseBody to model the response body everywhere.

 This makes cache writing and gzip layering work a bit nicer
 because there are fewer fields in HttpEngine to track the
 various competing streams.


Move cache writing out of the transport.

 This is necessary to unblock network interceptors, where the interceptor
 may elect to rewrite the response body. If we've already cached the
 original response body, we're too late.


Fix bug where request body isn't sent when it should


Some POST samples.


Add wildcard hostnames support in CertificatePinner


Add a test for interceptors throwing unchecked exceptions.

 Our behavior here is not good. Right now it looks like we're leaking
 resources; nothing is releasing the socket in a 'finally' clause when
 interceptors crash. We're also not notifying the callback that the
 call has failed; that's left hanging.

 That said, we don't expect applications to recover from these
 exceptions.

 Closes https://github.com/square/okhttp/issues/1482


Move TLS retries / fallback into Connection.

 API changes:
 1) Added: Address.getCertificatePinner()
 2) Incompatible API change: Address constructor no longer
 includes ConnectionSpecs. Removed getConnectionSpecs().
 3) Added: ConnectionSpec.isCompatible(SSLSocket)
 4) Added: TlsVersion.javaName()

 Implicit / semantic / internal changes:

 1) Connection now handles all attempts to connect via a route
 (effectively a {proxy, socket address} pair), rather than just
 one attempt. i.e. Connection now handles all the TLS negotiation
 fallbacks internally.

 2) Route no longer deals with TLS versions. Individual TLS
 failures are not counted against a Route. If no connection
 attempts to a route were successful the failure is counted
 against the route.

 3) The code makes a distinction between when various
 IOExceptions occur, with the intention making retries a bit
 smarter. It is now more obvious which exceptions happen during
 setup (RequestException), connection (RouteException),
 HTTP communication and thus which can be retried and whether
 the request might have been sent.


Fix for SslContextBuilder/MockWebServer disagreeing about localhost

 MockWebServer binds to getByName('localhost'), SslContextBuilder was using
 InetAddress.getByName(null) (null == any loopback). On Android, null
 returns IPv6 loopback, which has the name 'ip6-localhost'.


Allow specifying a socket factory for connections.

 This socket factory will be used for all non-proxy connections and HTTP proxy connections.


Test for redirect leak bug.


Move connection pooling logic.

 Previously we had this ugly, awkward release() method that
 attempted to manage connection pooling, discarding streams
 for caching, and closing broken streams.

 Move connection reuse to HttpConnection, with policy informed
 by HttpEngine. It specifies what to do when the connection
 becomes idle: pool, close or hold. The connection does what
 it's told.


Improve some Markdown


Tests for canceling async requests.


getMtu issue


Static HTTPS/SPDY3/HTTP2 server example


Added description and download info for MockWebServer.


Fix a race condition in Connection.isExpired().

 This was causing some SPDY connections to be evicted early,
 and preventing connection reuse.

 The spdyConnectionReuse test becomes flaky with the
 fix that makes MockWebServer use different sequenceNumbers
 for different requests on the same socket. With the fix
 the test is no longer flaky. The old test wasn't good enough
 to detect what it wanted to detect!

 This race has existed in the code since we added more
 aggressive time-based expiration in January 2013. In my
 basic tests the race impacted ~20% of connections on a
 desktop VM. It may have been more on mobile.


Make ConnectionPoolTest less flaky

 I was seeing flaky results in the debugger because pooled
 connections were being evicted as the test ran.


New Javadocs.

 git-svn-id: https://mockwebserver.googlecode.com/svn/trunk@20 cf848351-439f-e86a-257f-67fa721851d5


Rebuild Javadoc

 git-svn-id: https://mockwebserver.googlecode.com/svn/trunk@19 cf848351-439f-e86a-257f-67fa721851d5


Use consistent camel casing of 'SSL'.


Add Javadoc

 git-svn-id: https://mockwebserver.googlecode.com/svn/trunk@5 cf848351-439f-e86a-257f-67fa721851d5


Minor doc fix.


Move out of the libcore package.

 To promote the code into AOSP, we'll keep this package as-is
 and do the jarjar in Android instead.


Fix a severe bug where multiple TLS tunnels were attempted.

 The previous code would attempt a TLS tunnel on reused
 HTTPS connections, even after the tunnel had been established.
 This is a severe protocol error!


Correct checkstyle.


Fix TLS requiresTunnel which was being computed incorrectly.

 We were only returning 'true' once we were already in a tunnel.
 This was bogus. In theory a TLS tunnel sending extra data could
 be corrupted due to this bug.

 Also migrate one of the TLS tunnel tests to use SslContextBuilder
 instead of TestSSLContext.


Improve error handling in JDK upgrade checks

 See gh-22110


Fix mapping of Cassandra's idle-timeout and heartbeat-interval

 Previous to this commit the connection idle timeout and heartbeat
 interval were mapped to seconds whereas Cassandra expects ms for all
 duration types.

 This commit fixes the mapping and removes the default duration unit
 since it should be considered ms like every other duration properties.

 Closes gh-23249


Remove duplicate word in docs


Add pullPolicy option for image building

 This commit adds a pullPolicy option to the configuration of the Maven
 plugin spring-boot:build-image goal and the Gradle plugin bootBuildImage
 task. The new option gives users control over pulling the builder image
 and run image from a remote image registry to the local Docker daemon.

 See gh-22736


Add @WebServiceClientTest slice test support

 Add `@WebServiceClientTest` and related test auto-configuration to allow
 slice testing of Spring Web Service client applications.

 See gh-17274


Polish


Fix doc formatting

 Closes gh-6275


Document limitations of logging.pattern.*

 Closes gh-5653


Fix tests


Remove unnecessary logging by start-docker script


Disable Log4J2's shutdown hook by default

 Log4J2 enables its shutdown hook by default. When the JVM is exiting,
 this creates a race between logging that happens during the
 application context being closed and Log4J2 being shut down such that
 the logging is lost.

 This commit updates SpringBootConfigurationFactory so that it
 produces a custom sub-class of DefaultConfiguration that disables the
 shutdown hook by default. In addition to solving the problem described
 above, this also aligns the Log4J2 logging system with the
 logging.register-shutdown-hook property which defaults to false.

 Closes gh-11360


Fix health indicator auto-configuration order

 Previously, the health auto-configuration `AutoconfigureOrder` entry for
 couchbase was referring to the standard couchbase auto-configuration that
 is not responsible to configure the `CouchbaseOperations` bean. Yet, the
 health indicator implementation was relying on the presence of such a
 bean.

 This commit fixes the `AutoconfigureOrder` entry so that it refers to
 `CouchbaseDataAutoConfiguration` now.

 Closes gh-7543


Document that CRaSH commands written in Java are not supported

 Closes gh-7471


Polish docs

 This commit replaces tabs to spaces in a yaml example for configuring
 endpoint web exposure include.

 Closes gh-14670


Fix MavenSettings?handling of profiles activated by a file

 Previously, MavenSettings used a FileProfileActivator with no
 PathTransformer. If a settings.xml file contains a file-activated
 profile this would result in an NPE within Maven. This was made worse
 by the NPE not being included in the resulting failure message which
 hampered diagnosis of the problem.

 This commit updates MavenSettings to configure its FileProfileActivator
 with a PathTransformer. It also improves the failure message that’s
 created from any problems that are reported by Maven while determining
 the active profiles to include a problem’s exception if it has one.

 Closes gh-4826


Remove boxing

 See gh-18552


Polish contribution

 Closes gh-15984


Polish contribution

 Closes gh-7004


Fix NPE in FlywayEndpoint when migration.installedOn is null

 See gh-14019


Fix undertow access_log file name

 Undertow 1.3.2 changed the default access log file suffix from '.log'
 to just 'log'. Thus we need to adapt the file name pattern to include
 the missing dot.

 Closes gh-4670


Fix datasource metrics doc

 The maximum and minimum number of connections are no metrics so these
 are not exposed. Fix the doc that stated the contrary.

 Fixes gh-3319


Move files from /.eclipse into /eclipse

 Move the `eclipse.properties` file from `.eclipse` into `eclipse`
 since the IDE plugin supports both.


Add details in Jest ElasticSearch HealthIndicator

 This commit polishes the previous one and aligns the Jest
 HealthIndicator with the changes made for the REST variant.

 Closes gh-15366


Make sure exception tag values are not empty in web metrics

 See gh-13187


Remove use of regular expressions in Spring profile-based doc matching

 Closes gh-1309


Polishing


Fix documentation example

 Previously, the nested private static class would cause an error at
 startup stating that it was not accessible when trying to bind the
 property from the environment. The nested class should be public.

 Closes gh-4323


Fix ordering of keys in PropertySourcesPropertyValues

 Since @ConfigurationProperties binding uses a single instance of
 PropertySourcesPropertyValues per bean, there doesn't seem to be
 any issue with using a normal LinkedHashMap. Then the order
 passed in as PropertySources will be preserved.

 Fixes gh-2487


Remove unnecessary null check

 See gh-17916


Fix typos in the documentation: though -> through

 Closes gh-1510


Improve startup times

 Improve startup times (although not by much) by adding more background
 pre-initializers and lazily evaluating the whitelabel SpEL view.

 See gh-6177


Fix deprecation warnings in Testcontainers wait strategies

 See gh-12821


Prepend without replacing in HttpMessageConverters

 It was incorrect to simply replace existing instances because you can't
 tell from the instance which media types and java types it supports. This
 fix just prepends the custom converters so they get higher priority.

 Fixes gh-1293


Remove HSQLDB dependency from Batch Starter

 This commit removes HSQLDB dependency from Batch Starter as most apps
 that use Spring Batch will prefer to use a RDBMS of their choice to store
 batch metadata.

 Additionally, explicit spring-jdbc dependency has been replaced with JDBC
 Starter dependency.

 See gh-6081


Complete documentation of logger-name with out-of-box logging groups

 Closes gh-14456


Fix tests failing on Windows


Exclude @ManagedResources from Endpoint MBeans

 If an Endpoint is already @ManagedResource then it doesn't need
 an additional (probably wrong) MBEan registration based on the invoke()
 method.


Order char encoding filter so it sets encoding before request is read

 For the character encoding filter to work, it's vital that it sets
 the request's encoding before any other filters attempt to read the
 request. This commit updates the order of
 OrderedCharacterEncodingFilter to be HIGHEST_PRECEDENCE and improves
 the existing test to check that the ordering is as required.

 Closes gh-3912


Fix VanillaHealthIndicator javadoc


Make containsDescendantOf a default method

 Change `ConfigurationPropertySource.containsDescendantOf` to have a
 default implementation that return `UNKNOWN`.

 Fixes gh-12539


Implement simpler exclusion logic for Gradle

 Simplify the exclusion logic used in Gradle by implementing implicit
 exclusions rather than trying to detect transitive excludes.

 This commit reverts much of the code originally included to fix gh-1047
 which adds far too much complexity to the build and still doesn't solve
 the underlying issue.

 Fixes gh-1103


Fix broken links in the documentation


Fix broken test (use web app context)


Reinstate devtools debug logging with opt-out

 Reinstate `web` logging when devtools is in use, making use of the new
 logging groups support. Devtools now also logs an `INFO` message
 informing that properties defaults are offers an easy way to disable
 them.

 Closes gh-14450


Update actuator security documentation

 Update documentation to align with the new role based method.

 See gh-6889


Polish RSocket support


Add Tomcat 7 and Jetty 8 samples

 Switch the Tomcat 8 and Jetty 9 samples to Tomcat 7 and Jetty 8. Since
 Tomcat 8 and Jetty 9 are now the default versions the previous samples
 are no longer relevant, however, we do need integration tests to check
 that we remain compatible with Tomcat 7 and Jetty 8.

 See gh-1832


Add external-file-property to LogFileMvcEndpoint

 Add an additional property to LogFileMvcEndpoint to allow log files to
 be read from an external location. This is helpful when a launch.script
 is used to start the boot-application and the logfile is written by a
 redirect of stdout/stderr.

 Fixes gh-4255
 Closes gh-4836


Update Bomr config to look for minor version upgrades


Log classpath once environment has been prepared

 Previously, the classpath would be logged in response to the
 ApplicationStartedEvent. At this point, logging could be disabled
 while the logging system is being initialized, or because the
 log levels configured in the environment have not yet been applied.

 This commit moves the logging to happen in response to an
 ApplicationEnvironmentPreparedEvent by which point the logging
 system has been initialized and its levels have been configured.

 Closes gh-5313


Polish

 Closes gh-7561


Ensure JPA vendor properties are period separated

 If you bind to Map<String,Object> you get a nested Map instead
 of period-separated keys. This change just makes JpaProperties
 expose a Map<String,String> so the keys are sane.

 Fixes gh-988


Extract logic for duplicate file removal so it can be shared

 .. between Maven and Gradle plugins. Also fixed bug in recursive
 scanning logic.

 Really fixes gh-614


Polish 'Add configuration property for Spring Kafka's missingTopicsFatal'

 Closes gh-16740


Polish 'Update documentation to reference webjars-locator-core'

 Closes gh-12135


Fix failing test


Align SessionsEndpoint with Spring Session API improvements

 This commit aligns SessionsEndpoint with
 FindByIndexNameSessionRepository API improvements that simplifies
 retrieval of sessions by principal name.

 Closes gh-14124


Polish contribution


Remove outdated key

 The `spring.metrics.export.redis.aggregate-key-pattern` is no longer
 defined but was still referenced in the documentation.


Prevent authenticated principal from clashing with argument of same name

 Closes gh-11988


Fix typo 'a' -> 'an'


Add messagecode resolver format based on application property


Extract Mongo auto-configuration from Spring Data

 Extract Mongo auto-configuration classes from Spring Data specific
 auto-configuration, allowing Mongo to be used without Spring Data
 if require.


Append context id to objectName of Endpoint MBeans if name already exists in MBeanServer


Apply micrometer MeterFilter beans automatically

 Update `MeterRegistryPostProcessor` and `MetricsAutoConfiguration` so
 that micrometer `MeterFilter` beans are automatically applied.

 Fixes gh-11843


Optimize checks for java classes in Binder

 Closes gh-13567


Reduce logging in Travis


Move 'testdb' naming to DataSourceProperties

 Move the 'testdb' naming logic to `DataSourceProperties` and expose
 the `deduceDatabaseName` method so they can be used in
 auto-configuration.

 See gh-11719


Typos in Javadocs


Polish doc

 Closes gh-11529


Add support for additional Kafka listener properties

 See gh-11502


Fix exec-maven-plugin configuration issue

 fixes #133


Add missing depdendency


Polish pom.xml

 Aplly consistent formatting, drop JDK 8 support and cleanup repo
 locations to use spring.io.


Fix test


Loader changes


Add test for nested properties


Add mainClassName to springBoot DSL in Gradle plugin

 This commit introduces a new mainClassName property on the springBoot
 DSL provided by the Gradle plugin. It can be used to explicitly
 configure the mainClassName of the default bootRun, bootJar, and
 bootWar tasks in a single place. Previously, the only mechanism
 provided to do so was the mainClassName property that's only available
 when the application plugin has been applied.

 Closes gh-10623


Fix missing trailing / in resource paths


Add dependency management for org.hibernate:hibernate-spatial

 Closes gh-9950


Improve Spring Session sample

 This commit improves the Spring Session sample by providing multiple
 build profiles that make it possible to easily try out different session
 stores. By default, JDBC session store backed by an in-memory embedded H2
 database is used.

 See gh-10351


Upgrade to maven-compiler-plugin 3.6.1

 Closes gh-9620


Upgrade to Influxdb Java 2.7

 Closes gh-9663


Upgrade to Commons Lang3 3.6

 Closes gh-9661


Revisit InfluxDB configuration structure

 This commit removes the `client` namespace for InfluxDB as the
 component that is created is `InfluxDB`, not `InfluxDBClient` or
 something.

 This aligns with all the other url/user/password properties Spring
 Boot provides already

 See gh-9066


Improve links to Gradle plugin's documentation

 Closes gh-9386


Polish

 Closes gh-9103


Drop ignoreNestedProperties attribute from @ConfigurationProperties

 Closes gh-8657


Upgrade to Rxjava 1.2.10

 Closes gh-9061


Change default for new_generator_mappings to true

 Closes gh-7612


Fix broken build


Polish

 Closes gh-8879


Fix checkstyle errors


Upgrade to Rxjava2 2.0.6

 Closes gh-8378


Add byte-buddy managed dependency

 Add a managed dependency for byte-buddy since Mockito needs 1.6 and
 Hibernate pulls in 1.5.

 See gh-7770