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.


Remove reference to obsolete mailing list


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.


Revert 'ExternalResource: declare after() to throw Throwable (#1421)'

 Revert commit cebbf5e15725b4dc247ac0557f6fa63f475b15af.
 It breaks code that extends ExternalResource,
 overrides after() and calls super.after() in after().


spelling: unwieldy


spelling: methods


spelling: builder


spelling: assert


style: remove space


Remove usages of FrameworkMember as a raw type. (#1596)


ParentRunner.classRules() returns modifiable List (#1578)


Remove openjdk6 from Travis pipeline for now

 Related issue: #1577


Change links to point directly to junit4/5 repos


Update JUnit 5 teaser


Update campaign spending


Use new logo and link to new website


Deleted dead faq link.


Publish from Travis

 Remove 11

 Omit signing

 WIP


Add tests for serialization of Result.assumptionFailureCount.


Added name to contributors list


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


Adapt links to reflect repo rename


Identify reflection package jdk.internal.reflect

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


Add Assert#expectThrows and Assert#assertThrows

 Closes #1154.


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>


License link on junit.org

 Added prominent link to the project's license.

 This patch fixes #1162.

 Signed-off-by: Allon Mureinik <mureinik@gmail.com>


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


removed spaces before period in comment


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.


StopWatch does not need to be abstract.

 Fixes #1110.

StopWatch does not need to be abstract.


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.


Added a few names


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.


test: no inline comment, comment space


fail when AssertionError expected but not thrown

 When a user expected the production code to throw an AssertionError by
 using ExpectedException (together with the #handleAssertionErrors
 option) but the code under test didn't do so the test was not failing.
 This was because the ExpectedException rule caught its own
 AssertionError issued to signal that the expected exception was not
 thrown.


Kent & Erich patch swallowing in Merlin


no #deleteOnExit, no inline comment, added space in comment


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


small optimization if-else


Fixes imports


removed settings.xml, updated building-junit.txt and pom.xml


Added arcbees logo


Prepare for Maven release


Used assertArrayEquals to avoid converting an array to a list.

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


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.


fixes for #544 and #545


Remove tabs


Added #finished(long nanos, Description description)


same as ANT => excluded internal packages


fixed Javadoc 'its'
 micros -> toMicros, millis -> toMillis, seconds -> toSeconds
 fixed Javadoc 3 lines to tab
 startTime -> startNanos
 endTime -> endNanos
 enum SUCCEEDED - > PASSED
 equalTo -> is(equalTo)


Add more contributors


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.


Converted tab to spaces


List more contributor names


Remove fast-tests maven target.

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

 Fixes #1297


Implemented the changes proposed davidhart82


Remove @Deprecated from MethodRule and related methods.


Add 42talents GmbH


Add type wildcard


Converted tabs to spaces

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


closed method assertEquals with }


Issue #426 Added suggestions by dsaff

 Removed the Markdown syntax, changed import order and removed confusing
 Maximum Blank Lines section.


Improved Test: ParallelMethodTest fails few times


Suppress SecurityManager deprecation warnings


Removed the unnecessary Note: block in javadoc


improved implementation using Executors


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


Restore folder `javadoc/latest` for Javadoc.

 This folder has been used for many years. There are links to Javadoc at
 that folder (e.g. http://stackoverflow.com/questions/156503/how-do-you-assert-that-a-certain-exception-is-thrown-in-junit-4-tests/2935935#2935935 ).
 Restoring the folder `javadoc/latest` will hopefully restore the
 Javadoc pages in Google Search, too.


Reorder assignments to match order of parameters.


Create a Builder for FailOnTimeout.
 Delete all constructors created since 4.11 was released.
 Fix style issues.


implementing kcooney's suggestion


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


Add info on --filter option


Added a name to list


each' instead of 'f' for the variable name


Remove decoration on all external links


Relocate Maven artifact 'junit-dep' to 'junit'


Simplifying isEqualsRegardingNull.


Fix for issue #55

 Added Type check for MultiPointsMethod


Added AdNovum large logo


Disable parts of doclint for the site's javadoc.

 This is a follow-up to e0367cd. That commit is missing to apply the doclint rules to site generation. Hence the site goal fails because of doclint issues. Now doclint is disabled for all groups but accessibility and reference for the site generation, too.


Disable summary report


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.


Replaced IllegalArgumentException for IOException

 It's more consistent to throw an IOException instead of an
 IllegalArgumentException


Added one link


Make serialization of Result compatible with 4.11


Fix #995 - correct link to 4.12 release notes


Stripped accidental formatting from an earlier commit


RunNotifier.pleaseStop() is now thread-safe


Fixes gh-311: Fix 4.9.1 release notes, make sure markdown errors halt build


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.


Fix javac build

 Replace both() with allOf()


Pull request #182 && #483: Adding Parameter annotation for field parameters


Migrate release notes from wiki to repo


Merging kcooney-issue227 to master


Disable xref reports


Making Super and Sub member classes as suggested.
 https://github.com/KentBeck/junit/pull/293/files#r403246


Fix typo in test name


Apply code review.


Set master version to 4.10.1 in build.xml


@Rule fields/methods must not be static

 Fixes KentBeck/junit#339


Updated version to 4.9b3


Fix method names in TemporaryFolderUsageTest.


Following feedback from dsaff


Optimize ParentRunner.filter for nested suites

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


Update version in pom.xml; delete obsolete SuiteBuilder.java;
 remove duplication in build.xml


deleted duplicate EventCollector


Update build_tests.sh to test 'ant profile'


Added some names to list of contributors


4.10 final in version, non-snapshot staging


Both hasCause() and hasMessage() describe mismatches


Added logo and contributor by name


Improve error message when TemporaryFolder.newFolder() fails.


Update CONTRIBUTING.md


Update release notes with details on pull 986


Rename withStacktrace() to isException()/isThrowable()

 Following suggestion by @sf105


Update JUnit version, improve ClassRule javadoc, update release notes


fix for #49 Master now builds on windows.


remove 'f' prefix from field names, add LEGACY_CODING_STYLE, change CODING_STYLE


Add JUnitSystem.exit() back


fixed issue #89 (wrong JavaDoc of Parameterized)


Fix issue 30. Make TestWatcher abstract.


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.


further documentation cleanup, especially around TestRule


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.


Adding additional javadoc context for deprecated FrameworkMethod#producesType. Adding acknowledgements entry for pholser. Starting 4.9.1 release notes.


Automatic uploading of staged maven artifacts.


Replaced
 with

 in faq.html

 @dsaff @kcooney, I have replaced the
 tag with the
 tags. It should be fine now.
 Thank you @kcooney for spotting the issue :)


Adding bogus markdown, but should be removed later


For #855, remove FrameworkMethod.getParameterSignatures()

 Having this method in place made a class from the 'core' of JUnit
 (org.junit.runners.model) depend on something from 'experimental' --
 a dependency going in the wrong direction.


applied code review


Switching back from kcooney-run-leaf to kcooney-run-leaf


Fix ParentRunner#withClassRules javadoc.  (Thanks to lacostej for initial pull)
 Closes GH-191.


added Javadoc for RuleFieldValidator


Added release theme header


Remove author tag left in from copy&paste


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.


Update Maven GPG plugin from 1.4 to 1.5.

 Just to keep up-to-date. Release notes: http://jira.codehaus.org/browse/MGPG/fixforversion/17635


Remove redundant field fCause


alpha-ready implementation of SuiteBuilder


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


Merging from AlistairIsrael-classrules on github to ppreserve history because of non-fast forward merge (whatever that means)


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.


Throw exception with helpful message if annotated field is not public (fixes issue #260).


Multiple categories on tests, category inheritance, production classes in production package.


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


Use Field#getType()


Fixes #254: replaced @Rule by @ClassRule


Didn't want that


Bump version


checkpoint


Removed unused import


Highlight java syntax


up version


I want these gone


minor changes in test


Fix compilation errors


Take care of the TODO to make the inner class static.


#769 Fix many warnings (Eclipse 4.2/Juno based)
 - Enh: add new 'staticondemandthreshold' setting to eclipse project jdt.ui preference settings file (although this is in fact not related to kcooney's import ordering change comment)


Most of the plans and mark2 nonsense gone


Version 4.7 to 4.7.1-SNAPSHOT in build.xml


Cleaning up compile errors from reverting hamcrest change


added ReleaseNotes for 4.5


categories 2


added the since 4.12 where appropriate


CategoriesMark2 reuse code properly from TestClass


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.


Revert changes of 128553f. Fixes #687.

 Still fixes #121, but the original fix was superfluous. Added documentation
 about handling assumes and asserts in conjunction with the
 ExpectedException rule.


merged


org.junit.Rule, org.junit.Rules


Bug: ParentRunner lost test Class from a separate class loader (#1252)

 * Bug: ParentRunner lost test Class from a separate class loader

 When junit.jar located in one ClassLoader but runing tests in another ParentRunner can lost information about run class.
 For example if use @ClassRule and request test class(org.junit.runner.Description#getTestClass) we can get null,
 because ParentRunner instead of set Class as is to Description tranform it to class name string,
 as result org.junit.runner.Description#getTestClass execute Class.forName and can't find test class.

 Spring-test fail with exception if we try use SpringClassRule

 ```
 java.lang.NullPointerException
  at org.springframework.test.context.junit4.rules.SpringClassRule.validateSpringMethodRuleConfiguration(SpringClassRule.java:186)
  at org.springframework.test.context.junit4.rules.SpringClassRule.apply(SpringClassRule.java:134)
  at org.junit.rules.RunRules.applyAll(RunRules.java:26)
  at org.junit.rules.RunRules.<init>(RunRules.java:15)
  at org.junit.runners.ParentRunner.withClassRules(ParentRunner.java:245)
  at org.junit.runners.ParentRunner.classBlock(ParentRunner.java:194)
  at org.junit.runners.ParentRunner.run(ParentRunner.java:362)
  at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
 ```

 As solution, now ParentRunner create Descriptor with explicit specify Class, name and uses annotations.

 * Restore backward compatibility with sub class of ParentRunner that override getName method
 * Add ParentRunnerClassLoaderTest to AllClassesTests suite

Bug: ParentRunner lost test Class from a separate class loader
* Bug: ParentRunner lost test Class from a separate class loader
When junit.jar located in one ClassLoader but runing tests in another ParentRunner can lost information about run class.
For example if use @ClassRule and request test class(org.junit.runner.Description#getTestClass) we can get null,
because ParentRunner instead of set Class as is to Description tranform it to class name string,
as result org.junit.runner.Description#getTestClass execute Class.forName and can't find test class.
Spring-test fail with exception if we try use SpringClassRule
```
java.lang.NullPointerException
at org.springframework.test.context.junit4.rules.SpringClassRule.validateSpringMethodRuleConfiguration(SpringClassRule.java:186)
at org.springframework.test.context.junit4.rules.SpringClassRule.apply(SpringClassRule.java:134)
at org.junit.rules.RunRules.applyAll(RunRules.java:26)
at org.junit.rules.RunRules.<init>(RunRules.java:15)
at org.junit.runners.ParentRunner.withClassRules(ParentRunner.java:245)
at org.junit.runners.ParentRunner.classBlock(ParentRunner.java:194)
at org.junit.runners.ParentRunner.run(ParentRunner.java:362)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
```
As solution, now ParentRunner create Descriptor with explicit specify Class, name and uses annotations.
* Restore backward compatibility with sub class of ParentRunner that override getName method
* Add ParentRunnerClassLoaderTest to AllClassesTests suite


minor ParentRunner refactoring


StatementInterceptor takes Object target

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


Added better pom.xml


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


Updated gitignore


simplified isIgnored check in Framework, using it in
 BlockJUnit4ClassRuner


Fixing Interceptor->Rule name changes


Getting started on Interceptors javadoc

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


RunNotifier.fireTestRunStarted(Plan) to replace fireTestRunStarted(Description)


StatementInterceptor takes Object target


FailureList isn't public


Remove useless variable


Simplify Filter implementation for backward compatibility


Added parameter to annotation to mark exceptions in datapoint methods as ignorable.


drafts for tests for issue #380


Simplify Filter implementations


Getting started on Interceptors javadoc


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

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


Unnecessary array in varargs in AnnotatedBuildrer: Constructor#newInstance(Object ... initargs)


adding annotation validators functionality


Added release notes


Clarify that annotating suite has no effect


Move emptySuite method to Suite

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


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.


Changes due to code review from @dsaff.


Added two simple tests for boolean assertArrayEquals


Relicense JUnit from CPL to EPL

 EPL is the successor version of the CPL this makes re-licensing
 possible without seeking the approval of all contributors.

 CPL is actively hurting JUnit adaptation, it the following cases the
 deciding factor against JUnit was CPL. In both cases EPL would have
 been fine.
 * Netbeans can't ship JUnit [4]
 * OpenJDK uses TestNG instead of JUnit [5]

 Mike Milinkovich from the Eclipse Foundation wrote [1]

 > Back in 2009, the CPL was superseded by the EPL. This means that the
 > EPL is the successor version of the CPL. It also means that using the
 > CPL is the licensing equivalent of using deprecated code.
 >
 > Because the EPL is the successor version to the CPL, the 'new version
 > re-licensing' clause in Section 7 of the CPL applies. In other words,
 > you can re-license your project without seeking the approval of all
 > of your contributors.
 > The CPL and EPL basically differ by about one sentence, which you can
 > see here. The difference relates to the scope of patent licenses
 > terminated should someone sue another party for patent infringement.
 > This is the kind of stuff that lawyers love, but most developers
 > don't really care about.

 On the migration from CPL to EPL Mike Milinkovich wrote [2]

 > There was a two step process that was followed to make this happen.
 > First, following the terms of the CPL, IBM assigned the
 > responsibility to serve as the Agreement Steward of the CPL to the
 > Eclipse Foundation. Second, the Eclipse Foundation officially
 > recognized the EPL 1.0 as the new version of the CPL 1.0. In OSI
 > license terminology, the EPL now supersedes the CPL.
 >
 > A quick read of the two licenses will quickly show that they are very
 > very close. Other than their names and (previously) their Agreement
 > Stewards, the only substantive difference is the breadth of the
 > patent license termination in the event of a patent law suit. (See
 > the second paragraph of Section 7.) For more information on the
 > relationship between the CPL and the EPL see the EPL FAQ.

 You can find more information about the difference at [3].

 The new `LICENSE.txt` is based on a plain text version of the EPL with
 formatted so that the diff is a clean as possible.

 I'll submit another pull request for the gh-pages branch.

  [1] http://mmilinkov.wordpress.com/2013/02/13/jruby-moves-to-the-epl/
  [2] http://mmilinkov.wordpress.com/2009/04/16/one-small-step-towards-reducing-license-proliferation/
  [3] http://www.eclipse.org/legal/eplfaq.php#EPLDIFFER
  [4] https://netbeans.org/community/releases/70/relnotes.html#deprecated
  [5] http://openjdk.java.net/jtreg/build.html


ExpectedException allows multiple exceptions

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


Advance version, and beef up ErrorCollector with checkThat and checkPasses


Wrong href link for Java API in JUnit Javadoc


Changes in response to code review from @kcooney.


Issue #1127; when arrays differ in length, say so, but go ahead and find the first difference as usual to ease diagnosis


JUnitMatchers.matches creates any type

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


ExpectedException drastically simplified


Updated URL to Google's code style repository.
 Document indent size.

 Updating code style as per https://github.com/junit-team/junit4/pull/1306#issuecomment-221194760


Hamcrest 1.2 documented in release notes


Modification in response to code review from @kcooney and @dsaff.


ExpectedException Interceptor added


No Interceptors class, interceptors turned on by default


Updated release notes

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


Remove throws from TestWatchman.starting


Getting there with FrameworkField, but checking in before everything works, to demo squeezing

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


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

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


Added TestName Interceptor


Another TODO bites the dust


Removing more TODOs

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


Added parallel tests to AllTests


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

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


Ignore test for gump (need better long-term solution)


Incorporated James Abbley's patch for ParallelComputer

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


Finishing the work of ComparisonCriteria

 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>


Fix javadoc on Parameterized


Updated to 4.6 final

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


Last changes with Kent.

 Added fixed bugs to Release notes.
 Updated version number.
 Updated README.html

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


Finished release notes, I think


Added Mark Shapiro to acknowledgements

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


Preparing for 4.6


Now sorting tests globally


Oops, checked in some scaffolding and temporary changes


AllTests passes, but Eclipse doesn't cal JUnitCore, so first attempt at dogfooding failed.


Update version to 4.6-SNAPSHOT


*** empty log message ***


build.xml should be in junit*.zip


Updated README.html


JUnit4 runner as a pointer to the current default


Failing assumptions can be listened for.


Better validation in Theories


Switched classpath to Execution Environment J2SE 1.5, in hopes all developers will match that.


Added Johannes Link's test for running subclasses of Suite


Move deprecated classes back where they used to be.


Brought in old JUnit4ClassRunner for compatibility. Renamed new JUnit4ClassRunner to BlockJUnit4ClassRunner.


Finishing javadoc for org.junit.runner.*


Javadocs for three more classes


Added profile task to build.xml


Adding javadoc. Move Enclosed to experimental.


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


Remove unnecessary comments


New Suite implementation makes ClassesRequest crazy simple


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


Ignored tests should be shown differently in stack trace section of report


Remove old todo


Moved InitializationError into proper package


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


Remove


Ignore target directory


Now includes filtering


Pull classBlock up into ParentRunner


Tweaked Theories a bit. It still seems strange that the class runner creates a statement which creates another class runner (or perhaps more class runners?).


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


Theory classes can take constructor parameters


Removed MethodValidator, replaced with ErrorList, which moved to model package with InitializationError


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


Reorganize tests


Leave this method in--it's used by the JMock custom runner, and possibly others


Re-organize theory packages


Added script for uploading docs


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


Comparing arrays declared as Object now uses array comparison. There was also a strange change to the .classpath file that I reverted.
   -- Kent


Methods on inaccessible superclasses of test classes are caught during validation


Updated README about Enclosed


run awtui and swingui with -noload


fixed generated argument names


[ 609972 ] '...' in ComparisonFailure


[ 774304 ] Fix for JUnit 3.8.1 does not compile with JDK 1.1


Fixes bug reported on Support Request 615265
 swingui progress bar color on Mac OS X


assert to assertTrue


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


Added 'How do I write a test for an abstract class?'


Reorganized the AssertTest, which had grown unwieldy.


improved names of test methods


Fixed small comments


Added 'What's the difference between a failure and an error?'


rollback to correct version


Deleted unnecessary .vcm_meta file.


Added more Javadoc to Assert for messages and when they are displayed.
 Put versiontag back into Version.


Added assert FAQ.


Enhanced missing test.jar error message


update year to 2021


fix comment grammar error (#7080)

 Co-authored-by: tangtong <alan1@sfmail.sf-express.com>

fix comment grammar error
Co-authored-by: tangtong <alan1@sfmail.sf-express.com>


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>


In order to facilitate the consumer to better locate the failure of provider token check, the token value called by consumer will be printed out in the exception information (#6800)


add customized class path for javassist (#6731)

add customized class path for javassist


[Dubbo-6536]Add a remoting redis to adapt mono, sentinel and cluster redis; refactor redis registry to use the new module (#6614)

 add remoting-redis module, refactor RedisRegistry

[Dubbo-6536]Add a remoting redis to adapt mono, sentinel and cluster redis; refactor redis registry to use the new module
add remoting-redis module, refactor RedisRegistry


Fix NPE when unexport Metadata Service (#6450)

Fix NPE when unexport Metadata Service


add @SPI annotation


fix ut


Fix export provider error, change to catch throwable, handle NoClassDefFoundError (#6380)


Enhancement, support Map auto recognize in PojoUtils (#6106)

 Fix #5939


fix publish null value when use consul config center (#6351)

 * fix publish null value when use consul config center

fix publish null value when use consul config center
* fix publish null value when use consul config center


Revert 'fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)'

 This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.


Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection (#6299)


Fix compilation


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


[Enhancement] Adding the overriding rule for ExtensionLoader (#6068)


bugfix:fix alibaba RpcContext setAttachment(String,String) (#6052)


revert computeIfAbsent for jdk related bug: (#6032)

 https://bugs.openjdk.java.net/browse/JDK-8062841

revert computeIfAbsent for jdk related bug:
https://bugs.openjdk.java.net/browse/JDK-8062841


Fix concurrency problems in RpcStatus and RoundRobinLoadBalance (#5881)


register stated url to provider model, no matter the provider is configured to delay-published or not (#5757)


polish NetUtils#matchIpRange


remove reference destroy guardian (#5863)

 fix #5855

remove reference destroy guardian


Update ForkingClusterInvoker.java


collect async export services


add HttpUtils.java file back.


avoid potential shutdown race condition. (#5856)


[Dubbo-5592] simplify code for getExtensionLoader method (#5593)


fix wrong telnet command package(#5690) (#5815)

fix wrong telnet command package(#5690)


throw unknown exception


Fix stub proxy does not work cause of ProxyFactory.getProxy change (#5838)

 fix #5836


Revert '[Dubbo-5813]prevent destroyAll method of DubboShutdownHook being invoked twice when using Spring (#5814)' (#5818)

 This reverts commit 5194791f130eb34d6ed75bc43ef731289a12148a.

Revert '[Dubbo-5813]prevent destroyAll method of DubboShutdownHook being invoked twice when using Spring (#5814)'
This reverts commit 5194791f130eb34d6ed75bc43ef731289a12148a.


Remove duplicate dependency from [dubbo-bom] and [dubbo-demo-xml-consumer] (#5799)


MessageOnlyChannelHandler class should be consistent with the writing of the ExecutionChannelHandler class. (#5724)

 fix #5256


fix:Remove unused variable parameters in AbstractProxyInvoker (#5651)


[Dubbo-4991] Fix zk client create logic (#5139)

 fix #4991

[Dubbo-4991] Fix zk client create logic


[Dubbo-perf]: Reduce object allocation for ProtocolUtils.serviceKey(int, String, String, String) (#5525)


add comment for FutureAdapter, see #3979


add some unit test for dubbo-auth (#5547)

add some unit test for dubbo-auth


constant names should be all uppercase, separated by underscores (#5356)


When using zookeeper and ConfigCenterConfig is null,don't set port attribute (#5617)

 fix #5322


skip integration test by default. (#5421)

skip integration test by default.


fix typo:metodName


upgrade dependency to 2.7.5


extract duplicate code to a method (#5541)

extract duplicate code to a method


change version to 2.7.6-SNAPSHOT to prepare for next major release


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


protocols/protocolIds and registries/registryIds, make sure only one can work (#5497)


[Dubbo-4863] add switch of generic invocation with class info (#5412)

 fix #4863


Remove redundant judgment


add the router key in dubbo.xsd


Fix issue#5411


temporarily change spring-context-support dependency back to SNAPSHOT, the formal release turns to be broken.


optimize config


add start status for gRPC server


Add comments for gRPC implementations


change protoc compiler version to SNAPSHOT


add gpg signing plugin for protobuf compiler


fix NetUtils.isPreferIPV6Address bug (#5238)

fix NetUtils.isPreferIPV6Address bug


to process a scenario when service type is not available and service invocation is not generic either

 to process a scenario when service type is not available and service invocation is not generic either


add gradle wrapper jar file


ExtensionLoader try to load from itself ClassLoader when can not find resources.


Fix Dubbo-3990 #3990


copy invoker to new invocation in generic filter


adjust format of generated stub


fix parameters could be null.


[Dubbo-4871] fix cache file name issue in windows platform (#5158)


Refactor: Config Application and Bootstrap


revert #5072 by logging error msg. (#5084)

revert #5072 by logging error msg.


reduce the level of request data in  timeout log (#5149)

 to control the size of log

reduce the level of request data in  timeout log
to control the size of log


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)


delete protoc generator test files


refactor some string operations with StringUtils (#5112)

 refactor string empty check statements.

refactor some string operations with StringUtils
refactor string empty check statements.


Simplify code with Lambda (#4834)

 Simplify code with Lambda

Simplify code with Lambda
Simplify code with Lambda


Add 'getUniqueServiceKey' to keep backward compatibility.


Don't merge, disable routers


Result implements future and keep Filter backward compatibility. (#3916)


Make code of process callback of method cleaner in DubboBeanDefinitionParser (#4770)


test flush


unit test for metadata


generate urls directly for non-dubbo service instances.


unify heartbeat stamp key


performance tuning: Applicationmodel revert (#4245)


Add unit test for unpack and stick pack of dubbo and telent (#3703)


Correct @Parameter config of field of ConfigCenterConfig (#3688)


performance tuning: save rpcinvocation allocation (#4215)


register applicationconfig


fix conflicts after merged master


keep demo simple, and switch to use zookeeper as registry center (#4705)

 * keep demo simple, and switch to use zookeeper as registry center

 * remove comment

keep demo simple, and switch to use zookeeper as registry center
* keep demo simple, and switch to use zookeeper as registry center
* remove comment


fix protocol register set false not work (#4776)


Fixed Service annotation method parameters are not in effect (#4598)


check null for path before call rest server (#3665)


add 2.7.0 release notes


Multiple registry


bugfix follow #4127


just for modify comments and imports (#3227)

just for modify comments and imports


register callback once for the full filter chain. (#4127)


Solve compile problem in java11


Remove unused import for unit test (#4976)

 * clear unused import

Remove unused import for unit test
* clear unused import


demos


code format


update default dependency to the latest version.


temporarily ignore UT RegistryDataConfigTest


fix client retry create proxy lead to OOM (#4109)


update change list


typo for AccessLogFilter


rename dubbo-ops to dubbo-admin


Introduce ProtocolServer to distinguish from RemotingServer


spring delegate to bootstrap.


follow up for pr#4339, remove the space (#4591)

follow up for pr#4339, remove the space


Revert code to avoid NPE in RPC wire after providers are cleared.


revert router from layered path to flat path:
 /router/condition -> router-codition


add jdk11 to travis ci (#2487)

 * add jdk11 to travis ci
 * Update .travis.yml
 * upgrade jacoco to support jdk11

add jdk11 to travis ci
* add jdk11 to travis ci
* Update .travis.yml
* upgrade jacoco to support jdk11


move isMetaMethod to MethodUtils (#4387)

move isMetaMethod to MethodUtils


fix UT


Dubbo-3473 Fix Not Properly Closed Resources (#3474)


Upgrade maven dependency to the latest version


remove tomcat-embed-logging-juli  (#4430)

 fixes #4400

remove tomcat-embed-logging-juli


remove appConfigs cache to support one service/reference registered more than one time (if users don't explicitly add id, cache can not work properly)


format code style


Fixes #3367, fail to parse config text with white space (#3589)


set all router rule enabled by default


make metadata key contain : when version and group is empty (#4465)


fix qos configuration cannot work after added 'qos-enable' style support (#4378)

 fixes #4377


Change CopyOnWriteArrayList to regular list in DubboProtocol (#4056)


enhance shutdown hook in spring


weird demo changes


remove unnecessary null check  before instance of (#4321)

 Signed-off-by: jimin.jm <develope97>

remove unnecessary null check  before instance of
Signed-off-by: jimin.jm <develope97>


Check config instance in ConfigManager before create a new one.


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


replace Random with ThreadLocalRandom (#2433)

replace Random with ThreadLocalRandom


make loadbalance robust, add comments (#2962)

make loadbalance robust, add comments


set reg status to true after reExport


fix typo


support handle of exception from onResponse or onError (#4401)

 fix #4401


fix travis cov


Release resource after use in ConfigParserTest (#2905)


duplicate decrease for ExecuteLimitFilter onError (#4380)


port #3568 into main trunk (#3993)

 fixes #3991

port #3568 into main trunk


provide more meaningful binary releases. (#3987)

 fixes #2491


modify metadata store from sync to async


[Enhancement]: RestProtocol


app level override rule should only generate one url


[dubbo-2766] fix the bug of isMatch method of InvokeTelnetHandler (#2787)


Class comment error


use revision in pom.xml


optimize dynamic configuration api


switch from CopyOnWriteArrayList to regular list in order to avoid potential UnsupportedOperationException (#3978)

 Fixes #3242


extract method to cache default extension name (#3456)


fix NPE when no listeners registered for key


adjust zookeeper dependency


fix methodName and retries in FailoverClusterInvoker (#2145)


Simply TagRouter


Defensive check to solve issue #3923 (#3931)

Defensive check to solve issue #3923


Fix concurrent problem of zookeeper configcenter, wait to start until cache being fully populated.


Fix configurator bug


polish pom.xml (remove test profile and jvm permSize args) (#3407)


Ignore flatten related files.


modify consumer metadatareport: param type from string to map


move construction of ConfigChangeEvent outside the lambda expression (#3398)


ignore parameter(exclude=true).


change log level to info


oschina vote


code rule


change how DynamicConfiguration instance is fetched.


add checkstyle rule to check import order (#2745)


Fix NPE in TagRouter


simplify map empty judgment


fix :dubbo.properties cannot work on MetadataReportConfig


record init status.


Add spring annotation support for ConfigCenter.


Close all servers/ports after tests finish (#2741)


enhance comments


#2072: need javadoc and articles for spring annotation use. (#2076)


merge dev-metadata from upstream and refactor zk store


Package name error


Update README.md (#3808)

 add  @Override  annotation

Update README.md
add  @Override  annotation


Enable ZookeeperMetadataReportTest


replace ServiceAnnotationBeanPostProcessor log.isInfoEnabled->log.isWarnEnabled (#2712)

 simplify ExtensionLoader code segment

replace ServiceAnnotationBeanPostProcessor log.isInfoEnabled->log.isWarnEnabled
simplify ExtensionLoader code segment


Changes on demo, for test purpose.


Move UT in config-api to bootstrap temporarily, to solve the unreasonable dependency problem between modules. For long term run, we should refactor the config-api module to stop it from depending on other modules.


Add `how can I contribute?` section.


Format code


fix comments


rename log file from alibaba to custom-access (#2057)


Fix random ut falling in DubboMonitorTest (#3327)


seperate retry from AbstractMetadataReport


delete class


Remove useless config item in xsd


combine test coverage report


update changes for 2.7.1


Support static tag group in TagRouter


add unit test


fix #1641, support get system load on windows (#2631)


Fix compilation problem


add tests


Remove duplicate ut classes


fix return type


Change ConfigConditionRouter and TagRouter: scope and rules


Deactivate maven release profile.


remove getContext()


reformat the code style


Add Router name and fix routerchain error.


Extract compareTo impl to Router interface and concrete Router only responsible for provide priority. (#3240)

 something is waiting for us to disscuss:
 1. Every Route implement should set a priority?
 2.https://github.com/apache/incubator-dubbo/issues/3249

Extract compareTo impl to Router interface and concrete Router only responsible for provide priority.
something is waiting for us to disscuss:
1. Every Route implement should set a priority?
2.https://github.com/apache/incubator-dubbo/issues/3249


Solve merge conflicts manually


Support protocol config for reference annotation (#1675)


upgrade version manually after merge 2.6.2-release


Polish release notes in CHANGES.md


Add assembly plugin


Polish distribution pom


Correct pom version.


Minor improvement on test cases: (#1507)

 1. Use org.junit.Assert instead of junit.framework.Assert(@Deprecated since Junit 4)
 2. Use assertTrue and other assert methods through static import to make codes easier to read

Minor improvement on test cases:
1. Use org.junit.Assert instead of junit.framework.Assert(@Deprecated since Junit 4)
2. Use assertTrue and other assert methods through static import to make codes easier to read


Remove unused code.


Remove unnecessary null check and fix typo.


Remove unnecessary null check.


Upgrade tomcat version to 8.5.31. (#1781)

Upgrade tomcat version to 8.5.31.


Ignore testStatusChecker since it is unstable and consider removing it later.


supplementary change for pull request#1388


Fix hessian-lite spelling mistake (#1779)

Fix hessian-lite spelling mistake


Fix #1411 Java Locale use '_' split language, country, variant. (#1413)


add ASF license head (#1459)

 * add ASF license head

 * add liscense head

 * add dependecies to NOTICE

add ASF license head
* add ASF license head
* add liscense head
* add dependecies to NOTICE


upgrade version to 2.5.10


Polish, remove call of deprecated method


Add .script route rules back for UT


Fix UT problems after structure change


Remove the shutdown logic from spring bean destroy to avoid competition.


#1411: Locale deserialize 'zh-hant_CN'


Fixed #1138 check serialization in case it's changed from network.


Change Mailing list address


Add comment


#992 add codecov component


Translate missing content and add apache license


Fix typo #1260


Remove unnecessary dependencies


rename package name from CommandImpl to impl


#1104 I18N effort for dubbo code base - dubbo-plugin


Delete OptimizedSerialization


Add test example for rest


#1067: I18N effort for dubbo code base - dubbo-rpc (part1)


#1055 Translate the comments of dubbo-remoting module (#1065)


#1056: I18N effort for dubbo code base: dubbo-common


#1056 I18N effort for dubbo code base: dubbo-common


Upgrade annotation demo


remove tree.txt


Merge pull re

 fix qos port can only configure by System property problem


Fixed #946, route rule should always run when changed, but should only run at every invoke when RUNTIME_KEY is true.


Fixed typo in NamedThreadFactory: mDeamo


Adjust pull request template


Ignore unit test CuratorZookeeperClientTest(no zk server)


Update OverrideServiceImpl.java

 fix the bug: cant enable override


Fix config error of heartbeat UT in dubbo-test-examples


Add package support for 'dubbo-remoting-netty4' module


Fixed #520 change Main.class wait/notify to lock/condition


fix(dubbo-admin): webx-3.0.8 not compitable with spring-4.x


add badges for last release and license


fix compiler bug


add maven-compiler-plugin to pom.xml


update README


add unit test for parsing path


enable unit test under jdk6 and jdk7


find correct component type when the enclosing type is Foo<int[]> on JDK 7 and beyond


set ProtectionDomain for newly generated Class


add ProtectionDomain for dynamicly created class


update version to 2.5.4-SNAPSHOT


update version to 2.5.2-SNAPSHOT


release 2.4.1


mv examples


rm dubbo-admin


DUBBO-135 fix test case

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1993 1a56cb94-b969-4eaa-88fa-be21384802f2


move examples

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1678 1a56cb94-b969-4eaa-88fa-be21384802f2


update version to 2.2.0-SNAPSHOT

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1551 1a56cb94-b969-4eaa-88fa-be21384802f2


update version to 2.1.6

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1550 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1412 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1409 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1408 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1403 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1400 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1395 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1388 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1386 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1383 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1378 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1374 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1369 1a56cb94-b969-4eaa-88fa-be21384802f2


refactor package

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1365 1a56cb94-b969-4eaa-88fa-be21384802f2


DUBBO-250 Dubbo client can not supported string message

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@1283 1a56cb94-b969-4eaa-88fa-be21384802f2


README

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@880 1a56cb94-b969-4eaa-88fa-be21384802f2


http://agile.alibaba-inc.com/browse/DUBBO-743

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@147 1a56cb94-b969-4eaa-88fa-be21384802f2


fix misspelling

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@145 1a56cb94-b969-4eaa-88fa-be21384802f2


DUBBO-1 Change schema element 'sent' default value to false

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@40 1a56cb94-b969-4eaa-88fa-be21384802f2


Modify pom

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@17 1a56cb94-b969-4eaa-88fa-be21384802f2


Modify pom

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@9 1a56cb94-b969-4eaa-88fa-be21384802f2


Add 2.0.7

 git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@8 1a56cb94-b969-4eaa-88fa-be21384802f2


Bump jackson-databind to 2.10.5.1


Update google-java-format to 1.8


Fix typo


Prepare next development version


Move source/target config out of error-prone block

 Error-prone only works on pre-12 at the moment and we need this configuration to apply for all JDKs.


Add Gradle wrapper validation


Fix build conditional


Add Android integration tests


Switch to GitHub Actions


Small fixes from error-prone


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


Switch to OpenJDK


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.


Fix support for protobuf 3.5+, ExtensionRegistry cannot be null


Add more obviously missing @Nullable annotations


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


Ignore static interface methods when eagerly validating


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.


Add some missing Nullable annotations


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.


Add reified create extension for Kotlin


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.


Update to OkHttp 3.11

 Use get instead of parse for HttpUrl and MediaType where valid input is always required.


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


changed compile to implementation


Ability to add Http status code to Response.success (#2715)


Update CHANGELOG.md


Remove redundant throws.


Update to OkHttp 3.10.0.


More accurately name call adapter list field. (#2664)


Assert full JSON document consumption with Moshi.


Assert full JSON document consumption with Gson.


Update Scala dependency


Use HTTPS links in documentation where possible.

 Closes: https://github.com/square/retrofit/issues/2425


Define Automatic-Module-Name for Retrofit modules


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.


Add Retrofit.Builder.adapterFactories().


Remove volatile modifier from synchronized field.


Clarify that errors start at 0% probability.


Update to RxJava 1.3 and a stable Completable.


Use custom exception type when triggering mock failure.

 Since we omit the stack trace, this more clearly indicates the source being from Retrofit's mock behavior.


Add JSR 305 nullability annotations.


Fixed copy-paste errors.


Upgrade to Checkstyle 7.7.


Add failOnUnknown to MoshiConverterFactory


Moved validation first before cloning


Removal of Unnecessary Creation of String Builder

 if typeArguments has length 0 there is no point to create stringBuilder for that. that condition check needs to happen before stringBuilder creation.


Okio proguard rules link


Update checkstyle to the latest version.


Use Moshi 1.4's JsonAdapter.serializeNulls()


Import RxJava 2 CallAdapter.Factory

 From https://github.com/JakeWharton/retrofit2-rxjava2-adapter


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


Reflect OkHttp Call canceled state from our Call.


Remove unused interface.


Close ResponseBody on 204/205 to avoid connection leak


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


Propagate fatal exceptions even if already dispatching an error.


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.


Refactor Rx tests to avoid the use of blocking operators.


Remove duplicated test.

 It is the same as  in this file.


Update to support protobuf 3.0.


Skip a UTF-8 BOM if present.


Actually let's call it a 2.1.0.


Add missing import.


Honor the encoding of the response in XML deserialization.


Adapter Javadoc details.


Document maps don't allow null anywhere.


All the latest of all the things.


Remove the need for generated accessor methods.


Null check Call.enqueue argument.


Sample for a dynamic base URL.


Doc error. `@QueryMap` with `encoded=true` will stop default url encoding. So, calling with `foo.list(ImmutableMap.of('foo', 'foo+bar'))` yields '/search?foo=foo+bar' instead of '/search?foo=foo%2Bbar'.


Combine MethodHandler and RequestFactory into ServiceMethod.

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


Forbid null map values, and null maps.


Propagate callback executor even when not explicitly specified.

 This lets custom CallAdapter implementations use the platform default for their callbacks.


Speling.


Issue template for retrofit.


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.


Use Gson instance as factory for reader to honor config.

 This allows settings like support for leniency to be honored.


baseUrl should end with '/'


Write up Beta 4's current change log.


Do not trap IO from request body conversion.


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.


Added more tests for RxJava Single type support

 Single.toBlocking() is present since RxJava 1.0.16 version.


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


Use Call.Factory in RequestBuilderTest.


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.


Extract iterable and array behavior from RequestAction.


Tweaks from review.


Documentation for endpoint resolving on a base URL.


Added a checkstyle rule for the line indentation

 Change-Id: I94d7404cb05c192021a6f737ffa6cf8c3fe9a3fa
 Signed-off-by: Simon Scholz <simon.scholz@vogella.com>


Update multipart documentation.


Use a correct implementation of path encoding.


Prepare for 2.0.0-beta2.


Remove outdated reference


Provide option for eagerly validating an interface.


Updating dependencies version


Switch to a generic to/from converter, explicit factory.

 This allows for specialization based on for what purpose the converter is being created. For the built-in converter factory, for example, types like `ResponseBody` and `Void` only apply to the response type and types like `RequestBody` only apply to a body/part type.


Consolidate response body specializations as inner classes.


Change log for 2.0.0-beta1.


RxJava 1.0.14 with an important Android fix.

 Just in case someone is relying on the transitive dependency.


Naming, API changes, and documentation around mock services.


Java 7 is required since 2ca19506


Restore mock module for creating delayed and erroring Calls.


Rename Callback.success() to onSuccess(), and failure() to onFailure().


Also refer to the latest OkHttp version.


Move response Converter lookup to happen during method parsing.


Introduce factory for converter concept.

 This is still highly-inefficient in its internal use and there are no tests proving that we now fail earlier in configuring a service method. Both of those will come in follow up commits


Rename main class to Retrofit.


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


Move converter into the main package, remove Gson from core.

 This change means that only RequestBody and ResponseBody are the types which are allowed for their respective objects by default. If you want serialization of any kind, you need to opt-in with either your own converter or one of the provided ones.


Rewrite RxJava call adapter tests to be more understandable.


Includes this repo in our open source bug bounty program.


Fix foo/bar/baz in @Query documentation


OkHttp 2.0 only.


Formatting.


Restore Form URL encoding support.


Remove unused classes from 56f11374c2f5d037e57d274a3c72f9694cd9e05c.


Ensure we don't crash on null header values.


Update to OkHttp 2.2. Fix a tiny potential NPE.


Fix annotation link. EncodedPath is gone.


Provide a setter to set strict mode to false


Use new central artifact redirect link.


Remove deprecated error identifier.

 This whole class is probably going to die or morph, but killing off tech debt before major refactorings makes me feel good.


Switch to io.reactivex version of rxjava


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 Wire dependency.


Migrate most behavior tests to be whitebox(ish).

 Eliminate the blackbox inspection into RestMethodInfo and direct invocation of RequestBuilder by combining the two.


Add transfer encoding to multipart parts.

 Also:

  * Reject multiple annotations on method parameters.
  * Pre-size StringBuilder instances to their likely size.


Bump Guava dependency.


Bump test dependencies.


Add @Override annotations


Expose success type on RetrofitError.

 There's a bit of a test gap going on for all the variants of successful and erroneous handling of sync, async, and rx. This new behavior is fully tested in all three but more general behavior testing for them will be needed in in a follow-up.


Update documentation for handling of @Field and @Part values.


Add docs about null responses.


add paragraph clarifying logging


Remove synchronous from ErrorHandler docs


Add @PartMap annotation.


MockRestAdapter should use ErrorHandler.


Use latest release plugin.


switch to assertj


Correct map parameter type detection for query and field.


Update Jackson converter to latest. Add default constructor.


Prepare version 1.4.0.


Add simple package info to root package.


Retain old parameter type.


Style tweaks to new endpoint code.


RequestBuilder: Support Iterable / Map for @Field


AndroidLog: Added getTag() and logChunk() methods

 ?for easier subclassing.


whitespace.


client: Reintroduced deprecated Response constructor


client: Added url field to Response class


Properly name ignored exception in 'catch' block.


Changing Server to implement IServer interface.


Add default constructor to SimpleXmlConverter


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


Added blurb about GSON documentation


fixed javadoc


Last argument should be handled for observable methods


add support for Observable requests with RxJava

 Service interface methods may now specify Observable as a return type.


Add some static factory methods to MockHttpException.


UserService example in MockRestAdapter should be an interface


Code review


reformat with two-space indent


Correct header length checking logic. Improve exception message.


fixes and refactoring for http multipart post streaming


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.


Add empty Log implementation.


Use Wire release 1.0.1


Pass InputStream to Wire


Add a first-party converter for Wire.


Ensure @EncodedPath is not cast to @Path when processing method.


Fix IntelliJ auto-formatting.


Add path and query tests for pre-encoded values.


Add converters module and protobuf converter.


Newine at end of file. Yes plz.


Log network and unexpected exceptions if logging is enabled.


Add two levels of logging.


fix issue #227: permit use when servers or intermediaries mistakingly miss Content-Type header


Correct javadoc to point to proper annotation.


Update javadoc based on PR comment.


Special case String type for multi-part parts.


Expose addQueryParam via the RequestInterceptor injection-like framework.


Allow uppercase letters in path parameters.


Dependency updates.


Escape closing curly braces for Android support.


Fix styling of Maven download.


Add website deploy script.


First sample is synchronous.


Rename 'pair' to 'field' to match annotation.

 Closes #206.


Re-arrange package structure.


Bump GSON to latest stable.


issue #198: validate header names per rfc 2616


Add OkHttp-specific client when its present on the classpath.


Reset thread name to idle when not in use.

 Closes #188.


issue #198: rename Header -> HeaderPair to harvest the names for new annotations


Roll our own multi-part implementation.

 Drop Apache mime4j dependency.

 Closes #141.


Using Response in readme instead of SimpleResponse


Remove usage of HTTP constants class from Apache dependency.


Relax enforcement of UTF-8 and use the body charset for decoding.

 Consumers wanting well-behaved endponts should override or add to their `toBody` charset enforcement:

 ```java
 String charset = Utils.parseCharset(body.mimeType());
 if (!'UTF-8'.equalsIgnoreCase(charset)) {
   throw new ConversionException('Invalid charset ' + charset + '. Must be UTF-8');
 }
 ```

 Closes #163.


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.


Add UrlConnection Client.

 Use this on Android 2.2 and prior and when on the JVM.

 Also update our sample to use GitHub contributors rather than the Twitter API because the latter is shutting down and subject to lame rate limiting when on common networks.

 Bump some dependencies to their latest versions.


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


Move packages.

 * `retrofit.io` -> `retrofit.http.mime`
 * `retrofit.android` -> `retrofit.http.android`


Revert 'Revert 'Allow MimeType instantiation. Hide some Apache implementation details.''

 This reverts commit c888ea8ed53ae5548645389d5b57e99e931324aa.


Simplify test method fetching.


Allow MimeType instantiation. Hide some Apache implementation details.


Convert to 100-char lines.


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


Add commons-logging ignore to httpmime.


Restore FINE logging of HTTP response body.


Simplify asynchronous executor API.


Hide more implementation details.


Remove optional mark on GSON dependency.


Enable more checkstyle checks.


Remove unused ByteSink classes.


Introduce builder pattern to instantiate RestAdapter.

 Headers and profiler are now optional. Convenience methods for specifying a String URL or an
 HttpClient directly are also provided.


Add NDK to build.


Use ServerError directly in sessionExpired and serverError.

 This is a short step on the road to HTTP body format agnostic support. And it's
 not a pretty step, either.


Add a CONTRIBUTING file.


More FEST-isms.


Re-enable 'android' and 'io' tests. Switch to FEST.


Eliminate barren 'core' module. Updates to other modules.


Pom cleanup.


Bump version back to SNAPSHOT


Adding a human-readable name to the Server interface


Restore version 0.6.0-SNAPSHOT


Bump version to RC2.


Mark GSON as provided since we jarjar it in.


Bump version to RC1.


Introduces MainThread#executeOnMain, and AndroidMainThread.


Use no_aop Guice variant.


Revert version to 0.6 to match previous ant/ivy build.

 Add a description too...


Fix style nits per review


Adds an int statusCode parameter to clientError and serverError.


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


Move variable to where it is used.


Allow Server extensions; improved FilesTest


Fix spelling


Moved echo up.


Repackage gson into retrofit.internal.gson


Add fixed query parameter support


Ensure ByteSinks and Files use FileDescriptor.sync()


Add PUT, DELETE support to RestAdapter


Adding GET support to RestAdapter


TypedFile gets its length from the underlying file now


added toString() to ErrorResponse.java


Cleaned up code.


bumped revision to 0.2-SNAPSHOT


added core, io, and http modules


moved util to android, added ShakeDetector


fix README.md typo


Document sharing an instance with additional configuration (#6449)


Fix single failing graal test


Android Additional Tests


Update README.md


Test docs and unit test


Move osgi tests to Junit 5


Move connection tests to Junit 5 (#6376)

Move connection tests to Junit 5


Move authenticator tests to Junit 5 (#6374)

Move authenticator tests to Junit 5


Migrate Logging tests to Junit5


Enable GitHub Code Security Scanning (#1) (#6304)

 Add codeql-analysis.yml to configure GitHub workflow for code security scanning. Added Setup Java action to override default Java 8.

Enable GitHub Code Security Scanning (#1)
Add codeql-analysis.yml to configure GitHub workflow for code security scanning. Added Setup Java action to override default Java 8.


Update concurrency.md


Android 11


Document interceptor throwing modes (#6235)

Document interceptor throwing modes


Push OkHttp 3.14.x into the sea. It is no longer supported. (#6179)

 OkHttp 4.x is our only branch receiving security fixes, bug fixes, and
 new features.

 OkHttp 3.12.x gets security fixes only.

Push OkHttp 3.14.x into the sea. It is no longer supported.
OkHttp 4.x is our only branch receiving security fixes, bug fixes, and
new features.
OkHttp 3.12.x gets security fixes only.


DER encoder (#6139)

 I haven't yet implemented certificate encoding

DER encoder
I haven't yet implemented certificate encoding


Prepare next development version.


Prepare for release 4.7.0.


Document auth retries function (#6031)

 * Document auth retries function

 * Update Authenticator.kt

Document auth retries function
* Document auth retries function
* Update Authenticator.kt


Cache Events (#6015)

 Provide EventListener methods to understand the impact of caching.

Cache Events
Provide EventListener methods to understand the impact of caching.


Android Cache Test


Centralise logging behind JUL (#6005)

 Use JUL, but wire up to the Android Log.

 Use `adb shell setprop log.tag.okhttp.Http2 DEBUG` to enable logging for known levels.

Centralise logging behind JUL
Use JUL, but wire up to the Android Log.
Use `adb shell setprop log.tag.okhttp.Http2 DEBUG` to enable logging for known levels.


Check in the old public suffix DB


Android docs for selecting devices


Refactor Jdk9PlatformTest by using DelegatingSSLSocket

 Cont. https://github.com/square/okhttp/pull/5972

 We can use DelegatingSSLSocket instead of overriding SSLSocket abstract class.


Migrate from Travis to GitHub Action for publishing


Confirm MockWebServer shutdown is idempotent (#5946)


Convert DiskLruCacheTest to Kotlin (#5933)

 * Rename DiskLruCacheTest.java to DiskLruCacheTest.kt

 * Convert DiskLruCacheTest to Kotlin

Convert DiskLruCacheTest to Kotlin
* Rename DiskLruCacheTest.java to DiskLruCacheTest.kt
* Convert DiskLruCacheTest to Kotlin


Kotlin 1.3.71 and misc dep upgrades (#5925)

Kotlin 1.3.71 and misc dep upgrades


Allowlist Sample for connecting to Dev servers (#5868)


Add a canceled event to EventListener


Limit recovery attempts for REFUSED_STREAM errors

 We limit per-connection retries but not per-call retries, so this was
 creating large numbers of connections each of which called the server
 and accepted yet another REFUSED_STREAM.

 Instead we fail sooner with a StreamResetException.

 This shows that the ExchangeFinder interface is still somewhat inadequate
 to support all of the use cases we have.


Add HTTP/2 and TLSv1.3 columns to our security providers doc


Use Checkstyle's built-in Google style

 The boilerplate to set this up is unfortunate.


Android 10 support for X509TrustManager (#5688)

Android 10 support for X509TrustManager


Test Android with Play provider


Use our test rule instead of the Maven Surefire listener

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


Increase severity of bridge methods to ERROR. (#5160)

 Delete the KotlinSourceCompatibilityTest. It has served its purpose.

Increase severity of bridge methods to ERROR.
Delete the KotlinSourceCompatibilityTest. It has served its purpose.


OkHttp 4 upgrade guide


Degrade connections after a timeout

 This is based roughly on the 'Degraded Connections' proposal here
 https://github.com/square/okhttp/issues/3146#issuecomment-471196032

 I'm using 1000 ms instead of 500 ms. That's about the cost of a (slow)
 TLS handshake, which is what callers would need to do if we degrade
 unnecessarily.


Update Headers factories to be idiomatic Kotlin


Beef up Request's toString

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


Implement date formatting and parsing as extensions (#5134)


Convert hex digit parser to extension function


Remove unnecessary use of grouping parentheses

 Let's remove warnings found by errorprone.

 - attempt
 ```
 okhttp/okhttp/src/test/java/okhttp3/CallTest.java:2056: warning: [UnnecessaryParentheses] Unnecessary use of grouping parentheses
             sink.writeUtf8('attempt ' + (attempt++));
                                         ^
     (see https://errorprone.info/bugpattern/UnnecessaryParentheses)
   Did you mean 'sink.writeUtf8('attempt ' + attempt++);'?
 ```

 - isEaualTo
 ```
 okhttp/src/test/java/okhttp3/OkHttpClientTest.java:287: warning: [UnnecessaryParentheses] Unnecessary use of grouping parentheses
       assertThat(expected.getMessage()).isEqualTo(('protocols must not contain null'));
                                                   ^
     (see https://errorprone.info/bugpattern/UnnecessaryParentheses)
 ```


Use TaskRunner in MockWebServer

 The utility here is negligible. We're sharing threads between HTTP,
 HTTP/2 and web sockets now.


Idiomatic Kotlin for Multipart


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

 * Replace Math.min() with minOf

 * Fix

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


Adopt idiomatic Kotlin in Headers


Cancel calls on unexpected exceptions

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


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


Convert MockWebServer to Kotlin


Fix a regression in combining cache headers

 This was introduced with our migration to Kotlin. Iterating over the indices
 of the header names doesn't work because header names are not distinct.

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


3.12.3 backports some bug fixes


Include prerequisites in the releasing guide.

 https://github.com/cashapp/barber/blob/master/docs/releasing.md


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 RetryAndFollowUpInterceptor to Kotlin

 Update RetryAndFollowUpInterceptor.kt


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


Add proxy event logging


Update the changelog for OkHttp 4.0.1


Passing conscrypt test


Testing with JDK 12 and latest 11.0.3 (#5212)

 JDK 12 and be more specific about when we expect failures, e.g. 11.0.3 has fixes we should take into account.

Testing with JDK 12 and latest 11.0.3
JDK 12 and be more specific about when we expect failures, e.g. 11.0.3 has fixes we should take into account.


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 source compatibility for some Kotlin callsites. (#4887)

 We had a problem where boolean vals needed to be reverted back to
 boolean funs. I'd like to go back to vals later, but supporting existing
 source patterns is more important.

 We also had a problem where single abstract method types (SAM types)
 could be supplied as lambas when calling into Java but not when calling
 into Kotlin.

 I found these by pointing KotlinSourceCompatibilityTest at the OkHttp

 Get there like this:
   git co 7eb897ab2e223632b3316bf46a15d37307a3d3b6^
   git co 7eb897ab2e223632b3316bf46a15d37307a3d3b6 okhttp/build.gradle
   git co 7eb897ab2e223632b3316bf46a15d37307a3d3b6 build.gradle

Fix source compatibility for some Kotlin callsites.
We had a problem where boolean vals needed to be reverted back to
boolean funs. I'd like to go back to vals later, but supporting existing
source patterns is more important.
We also had a problem where single abstract method types (SAM types)
could be supplied as lambas when calling into Java but not when calling
into Kotlin.
I found these by pointing KotlinSourceCompatibilityTest at the OkHttp
Get there like this:
git co 7eb897ab2e223632b3316bf46a15d37307a3d3b6^
git co 7eb897ab2e223632b3316bf46a15d37307a3d3b6 okhttp/build.gradle
git co 7eb897ab2e223632b3316bf46a15d37307a3d3b6 build.gradle


Fix correctness of WebSocketReader reserved flags test


Run cron schedule in circleci


Revise the upgrading guide for OkHttp 4.x.

 Also change the old OkHttp 3.x Javadoc to set the new docs as canonical.
 https://publicobject.com/2017/02/14/canonical-urls-for-javadocs/


Remove obsolete @JvmField


Prepare for release 4.0.0-RC2.


Update javadoc


Convert CertificatePinner to a data class


Make error-prone validate missing override annotations


Save reports


add @overide for subclass override method


Clean up Address.kt


Revert 'Measure time'

 This reverts commit 853a80d3ff56facc18ed3efcec32fcc9eb959dc9.


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


Skip hpack if tests are missing


change var to val, readonly is better


Fix flaky testRfc2109Response()

 The time delta in the cookie max-age is rounded down, so is at most 59 seconds. Possibly a GC or some other hiccup can occasionally make it lower, so allow some room for error.

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


Configure travis caching for gradle.


Release websocket transmitter before failing response #4695


Introduce Exchange.

 This is the payoff that preceding changes have been working towards.
 This splits StreamAllocation into three parts:

  - ExchangeFinder: strategy to allocate connections for exchanges
  - Exchange: a single request/response pair
  - Transmitter: a sequence of exchanges for a Call

 The refactoring isn't totally complete, but this should be the last
 big one.

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


Introduce EventListener.requestFailed, responseFailed events

 These replace requestBodyEnd() / responseBodyEnd() in some failure scenarios.
 They may also be issued in cases where no event was published previously.


Jdk8WithJettyBootPlatform - load through bootstrap


HTTP/1 >> HTTP1


Support follow-ups for duplex requests.

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


Don't call callEnd() twice when application interceptors proceed twice.

 I'm working towards reducing the role StreamAllocation plays.

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


Fix some maven problems that are blocking the 3.13 release


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.


Drop code for Android 2.3 through 4.4.

 No more Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean or KitKat.


Update issue templates


Move TLSv1 and TLSv1.1 to COMPATIBLE_TLS.

 We no longer connect to TLSv1.0 or TLSv1.1 servers out-of-the-box; instead
 it is necessary to enable COMPATIBLE_TLS in the OkHttpClient configuration.

 This is in the path to later removing these TLS versions completely; that
 is scheduled for March 2020 by some browsers.

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


Don't crash on IPv4-mapped IPv6 addresses

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


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


Exclude 'internal' packages in generated Javadocs


Remove overlapping package-info.java


Whole operation timeouts

 Strictly-speaking this change is backwards-incompatible because it adds
 a new method to the Call interface. The method returns the call's timeout.

 The trickiest part of this is signaling the end of the call, which
 occurs after the last byte is consumed of the last follow up request,
 or when the call fails. Fortunately this is made easier by borrowing
 the sites used by EventListener, which already plots out where calls
 end.

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


CipherSuite init speedup


APIs to set date headers


Document HttpLoggingInterceptor.redactHeader()


Properly parse RFC 7235 authentication headers (#4249) (#4252)


API for handling an unexpected SSE response


MockWebserver fix for IPv6 addresses (#4235)

 Wrap IPv6 addresses with [] and return '/' path URIs for proxy CONNECT

MockWebserver fix for IPv6 addresses
Wrap IPv6 addresses with [] and return '/' path URIs for proxy CONNECT


remove experimental doc


Skip UTF-8 decode of keys, defer UTF-8 decode of data


OkHttpClient.cache() is nullable. (#3916)

OkHttpClient.cache() is nullable.


Restricted ciphers (#3908)

 Add a 'best practice' restricted TLS connection spec

Restricted ciphers
Add a 'best practice' restricted TLS connection spec


New API, HandshakeCertificates.addPlatformTrustedCertificates()

 Also rename HeldCertificate.Builder.issuedBy() to signedBy(). 'Issued' is the
 word used by certificates; 'signed' is the word used by cryptographers. I prefer
 'signed'.


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


Fail HTTP/2 connections if the pong is not received. (#3878)

 This removes the Ping abstraction from our http2 package. This was written as
 if it were a public API, but never exposed to any callers but tests. Removing
 it makes it easier to lock down how pings are used.

 This also removes the NullServer class, replacing it with a new SocketPolicy
 on MockWebServer. The new SocketPolicy, STALL_SOCKET_AT_START, allows us to
 do TLS and negotiate an HTTP/2 connection without actually building a proper
 Http2Connection and without responding to pings.

 The behavior in HTTP/2 connections is modeled after our behavior in web sockets.
 We count outgoing pings, incoming pongs, and confirm that the pongs are keeping
 up. If later we make this policy more sophisticated we can track the changes
 in both places.

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

Fail HTTP/2 connections if the pong is not received.
This removes the Ping abstraction from our http2 package. This was written as
if it were a public API, but never exposed to any callers but tests. Removing
it makes it easier to lock down how pings are used.
This also removes the NullServer class, replacing it with a new SocketPolicy
on MockWebServer. The new SocketPolicy, STALL_SOCKET_AT_START, allows us to
do TLS and negotiate an HTTP/2 connection without actually building a proper
Http2Connection and without responding to pings.
The behavior in HTTP/2 connections is modeled after our behavior in web sockets.
We count outgoing pings, incoming pongs, and confirm that the pongs are keeping
up. If later we make this policy more sophisticated we can track the changes
in both places.
Closes: https://github.com/square/okhttp/issues/3261


First step towards HTTP/2 automatic pings. (#3874)

 This changes the executor services in HTTP/2 connection to split up
 listener executors (of which there may be many threads) from writer
 executors (of which there is one per connection).

 This adds a scheduled executor job to send pings on an interval. We
 don't yet fail the connection if pongs are not received.

 For follow-up there's some work to remove exising APIs to send pings
 through the HTTP/2 APIs. These are unused and make it awkard to
 confirm that only the automatic pings are being replied to.

 See https://github.com/square/okhttp/issues/3261

First step towards HTTP/2 automatic pings.
This changes the executor services in HTTP/2 connection to split up
listener executors (of which there may be many threads) from writer
executors (of which there is one per connection).
This adds a scheduled executor job to send pings on an interval. We
don't yet fail the connection if pongs are not received.
For follow-up there's some work to remove exising APIs to send pings
through the HTTP/2 APIs. These are unused and make it awkard to
confirm that only the automatic pings are being replied to.
See https://github.com/square/okhttp/issues/3261


Remove CBC-mode ECDSA cipher suites

 This removes the following cipher suites as supported-by-default:
   TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
   TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

 This tracks a similar change in Chromium 56:
   https://developers.google.com/web/updates/2016/12/chrome-56-deprecations#remove_cbc-mode_ecdsa_ciphers_in_tls

 OkHttp's updated cipher suites, plus comparisons to Android, Java,
 Chromium, Firefox, and Square's server-site configuration is here:
   https://tinyurl.com/okhttp-cipher-suites

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


Transfer to/from FileChannel directly from Buffer. (#3846)


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


document buffer


workaround broken system dns behaviour


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.


update proguard rules on README.md (#3559)

update proguard rules on README.md


IOException instead of Throwable in EventListener API (#3543)


Travis: Remove the duplicate addons directive (#3492)


Prefer ByteString.encodeString.

 This saves cloning the byte array because the byte array can't be modified by the caller.


`response` receives null explicitly from several catch clauses => Fix nullability (override default parameter nullability set at package-info). (#3449)


Add support for connect start/end events. (#3434)


Fix code reference in Javadoc.


README: ProGuard changes for OkHttp 3.8.0


Update changelog for OkHttp 3.8.


Fix Javadoc builds with the jsr305 dependency.

 Because multiple modules share a package we need to share the dependency on
 everything in package-info.java.


Forbid null for a response's message.

 This was only ever null in test code. Everything that parses responses from
 the network gets a non-null value. The message may be empty.


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.


Invalidate the cache even if the response has no body.

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


Permit network interceptors to rewrite the host header.

 This makes it possible to do domain fronting.

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


Add ProGuard config to README


Make the crawler a little better.

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


Make FakeDns more capable.


fix CertificateChainCleanerTest for Java 9


Change HttpURL.redact() to return a String.


Changelog for OkHttp 3.5.0.


Fix an invalid HTML entity in the SlackApi Javadoc.

 And-per-se-and


Correct UTF8 BOM is EFBBBF


Allow HTAB in header values.

 RFC 7230 section 3.2 allows HTAB ('	', 'u0009') inside header
 values as long as there is not more than one in a row:
   https://tools.ietf.org/html/rfc7230#section-3.2

 Before this CL, OkHttp previously disallowed HTAB in header values.
 This CL changes behavior to allow any number of consecutive HTABs
 inside a header value; this is more permissive than the RFC, but
 is consistent with how OkHttp currently treats space characters
 (' ', 'u0020').


Inject a leading . for better matching under JavaNetCookieJar

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


Fix a test to not require a fallback IP address.

 This might be an unexpected upside of the migration to the Call API.

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


Update Javadoc example


More docs for HttpUrl.

 Closes: https://github.com/square/okhttp/issues/2577
 Closes: https://github.com/square/okhttp/issues/2263


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


Fix tests to share a common Dispatcher.

 Also fix the memory limit, which may prevent Travis from failing
 our tests.


Collapse interceptors into a single chain.

 Instead of having a chain of application interceptors and a separate chain
 of network interceptors, this makes a single heterogeneous chain. It makes
 the OkHttp core and network caller into interceptors.


Fixes #2513 - NetworkSecurityPolicy based ConnectionSpec setup.


updates junit version to v4.12


A Pipe.

 This is something we need to implement HttpURLConnection atop the native
 OkHttp API. The application thread wants to be active, writing to its
 OutputStream. But in OkHttp's API, this work wants to happen in the
 RequestBody.writeTo() callback. To make this work we give the HttpUrlConnection
 OutputStream the sink end of the pipe, and the RequestBody the source end
 of the pipe. It's a bit of plumbing, but the benefit is that backpressure,
 timeouts, and failures will propagate as expected.


Use Moshi in OkHttp.

 As discussed here: https://github.com/square/okhttp/pull/2492


Update changelog for OkHttp 3.3.0.


document support for SNI


Accept user-provided trust managers in OkHttpClient.Builder

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


Remove untrue Callback statement from doc


Update readme and changelog for 3.1.2.


New CertificateAuthorityCouncil class to normalize certificate chains.

 The goal of this is to get the root CA certificate into the certificate
 chain, so that it can be considered by the certificate pinner. The work
 to integrate CertificateAuthorityCouncil with CertificatePinner will
 come in a follow-up PR.

 See: https://github.com/square/okhttp/issues/1699


Update README.md -> Mockito moved to Github


Update website to link to OkHttp 3.x Javadoc.


Handle UnsupportedCharsetException in HttpLoggingInterceptor


Fix some get prefixes on Cache and ConnectionPool.


Tweak error copy, add a couple tests


First step in parsing Set-Cookie headers.


adds optional request body for DELETE requests to ammend #610