unknown101-0be068b8101src/main/java/org/takes/facets/slf4j/TkLogged.java74-7930
I expect implementations of Response and Take interfaces will be able convert itself to a loggable string but they don't have this feature. See details here https://github.com/yegor256/takes/issues/101 We will use toConsole() in this way this.target.log("...", this.origin.toConsole(), resp.toConsole, ...)
DEVDmitry Zaystevdmitry.zaytsev@gmail.comunknown101-e83253e2101src/main/java/org/takes/facets/slf4j/TkLogged.java72-7730
I expect implementations of Response and Take interfaces will be able convert itself to a loggable string but they don't have this feature. See details here https://github.com/yegor256/take/issues/101 We will use toConsole() in this way this.target.log("...", this.origin.toConsole(), resp.toConsole, ...)
DEVYegor Bugayenkoyegor@tpc2.comunknown28-4e51711228src/main/java/org/takes/facets/slf4j/TsLogged.java38-4230
This class not implemented yet, but has to be. Please implement it like TkLogged and don't forget about unit tests. In addition, need to be implement classes BkLogged, FtLogged, PsLogged which will make loggable interfaces Back, Front, Pass. They should all be implemented also like TkLogged.
DEVDmitry Zaytsevdmzaytsev@users.noreply.github.comunknown12-159d303e12src/test/java/org/takes/facets/auth/social/PsLinkedinTest.java42-4830
This class not implemented yet, but has to be. Please implement it. Mocked OAuth server is one of the possible solutions. In this case, we could use some library like WireMock (see http://www.wiremock.org), which allows make stub for web service. We'll need to make some changes in PsLinkedin, that allow to change API url, and use local stubbed http server during unit test.
DEVDmitry Zaystevdmitry.zaytsev@gmail.comunknown11-790c044511src/test/java/org/takes/facets/auth/social/PsTwitterTest.java42-4730
Test to be implemented for PsTwitter using a oauth mock library (eg:wiremock). Need to modify PsTwitter to accept url from configurations, so that url can be changed for test and real env accordingly. Response to be stubbed for both token and verify_credentials calls and assertions to be performed for the values returned.
DEVPrasath Premkumarpopprem@gmail.comunknown220-30ba5607220src/test/java/org/takes/http/BkParallelTest.java32-3430
This unit test not implemented but has to be. E.g. you could pass your own a ExecutorService implementation to the ctor and verify execute() calls. But feel free to try another way.
DEVDmitry Zaytsevdmzaytsev@users.noreply.github.comunknown229-401562da229src/main/java/org/takes/facets/auth/social/PsGithub.java54-5630
There is currently no unit test in PsGithubTest that checks that the request parameters are passed to the request body, instead of the URI. Let's add this test.
IMPcyberonealopen@yandex.ruunknown160-f5eebf68160src/main/java/org/takes/rs/RsWithHeaders.java55-6030
To implement the concatenation and transformation with conjunction of Concat class and Transform class to get rid of the use of List.add() in the anonymous Response class head() method. That is, we are going to do something like this: return new Concat(res.head(), new Transform(headers, new Trim()))
DEVsuper132super132j@yahoo.comunknown160-fc7f658c160src/main/java/org/takes/rs/RsWithStatus.java97-10130
To implement concatenation and selection with the conjunction Concat and Select class to get rid of List.add() between line 118 to line 127. That is, replacing the block using something like this: return new Concat(head,new Select(origin.head(),new FilterFirstCond()))
DEVsuper132super132j@yahoo.comunknown252-d7f3c72e252src/main/java/org/takes/rq/RqMultipart.java404-42430
New ctor should be created and expect instances of Request as dispositions. Dispositions should be multipart request body holder. New ctor should call {@code RqMultipart.Base}. {@code Fake.fakebody} method should be refactored and Fake(final Request req, final String... dispositions) ctor should call new constructor using dispositions like {@code this( req, new RqWithHeader( req, // @checkstyle LineLength (1 line) new RqLive(req.head().iterator().next() + "\r\n" + "Content-Disposition", "form-data; name=\"address\"") ), new RqWithHeader( req, // @checkstyle LineLength (1 line) new RqLive(req.head().iterator().next() + "\r\n" + "Content-Disposition", "form-data; name=\"file\"") ) ); }
DEVerim erturkerimerturk@gmail.comunknown258-12a59dfa258src/main/java/org/takes/tk/TkCORS.java82-8730
RqHeaders.Smart should have a `single(string, string)` method. That method should be similar to the method found in `RqHref.Smart`). The first parameter is the key that you are looking for and the second one is the default value if it was not found. Don't forget to remove the checkstyle comment.
IMPEndrigo Antoninieantonini@eidoscode.comunknown260-de67913e260src/main/java/org/takes/facets/hamcrest/HmRqHeader.java45-5230
Implement additional constructors. According to #260 there should be also available such constructors: public HmRsHeader(final Matcher
? extends Map.Entry
> mtchr); public HmRsHeader(final String header, final Matcher
? extends Iterable
> mtchr); public HmRsHeader(final String header, final Matcher
? extends String
mtchr); public HmRsHeader(final String header, final String value);
IMPEugene Kondrasheveugene.kondrashev@gmail.comunknown260-1c71c6a2260src/main/java/org/takes/facets/hamcrest/HmRsHeader.java46-5330
Implement additional constructors. According to #260 there should be also available such constructors public HmRsHeader(final Matcher
? extends Map.Entry
> mtchr); public HmRsHeader(final String header, final Matcher
? extends Iterable
> mtchr); public HmRsHeader(final String header, final Matcher
? extends String
mtchr); public HmRsHeader(final String header, final String value);
IMPEugene Kondrasheveugene.kondrashev@gmail.comunknown306-0f8af5fd306src/test/java/org/takes/http/BkReuseTest.java46-4930
Implement missing BkReuse.accept method to support HTTP persistent connections and to pass below three tests. BkReuse.accept should handles more than one HTTP requests in one connection and return correct HTTP status when Content-Length is not specified.
IMPPiotr Pradzynskiprondzyn@gmail.comunknown306-07904f4e306src/test/java/org/takes/http/BkReuseTest.java50-5330
Replace mockito statements with fake sockets objects as described in http://www.yegor256.com/2014/09/23/built-in-fake-objects.html. Fake objects should improve tests readability and maintainability in the future.
IMPPiotr Pradzynskiprondzyn@gmail.com458377-e6ce369a377src/test/java/org/takes/tk/TkProxyTest.java40-4230
We need more tests for TkProxy. The tests should verify the different HTTP methods (GET, POST, etc), as well as the different combinations of request/response headers.
DEVbdraganbozanovicdr@gmail.comunknown458-ca123cf9458src/test/java/org/takes/tk/TkProxyTest.java52-5430
We need more tests for TkProxy. The tests should verify different combinations of request/response headers. This is the continuation of the issue #377.
DEVSebin GeorgeSebin.George@datacash.comunknown445-5323c196445src/main/java/org/takes/rq/RqHref.java83-8630
RqMethod already validates Request-Line and extracts HTTP Method from it. We should extract all important information from Request-Line (HTTP method, URI and HTTP version) in one place to enforce DRY principle.
DEVIkar Sokolovhappy.neko@gmail.comunknown490-c74fee69490src/main/java/org/takes/rq/RqHeaders.java93-9830
We need to implement a VerboseList and its tests like VerboseIterable. It should provide means to throw an exception with a given error message when it otherwise throws an IndexOutOfBoundsException. With this we must wrap the returned list otherwise the diagnostic messages are lost: https://github.com/yegor256/takes/pull/503/files#diff-a01b0291ad72ac6fd8e264f47f844b3bL101
IMPEléna Ihde-Simonelena.ihde-simon@posteo.de519306-b987400a306src/test/java/org/takes/http/BkBasicTest.java57-6030
At the moment we don't support HTTP persistent connections. Would be great to implement this feature. BkBasic.accept should handle more than one HTTP request in one connection.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown519-af7d4687519src/main/java/org/takes/rq/RqLive.java47-4930
Refactor the parse method into a new class. This method is too long and too much if-else statements. Covert this into an IfElseClass.
IMPSebin GeorgeSebin.George@datacash.comunknown516-c8aa6c8f516src/test/java/org/takes/http/BkBasicTest.java67-6830
It will be nice to refactor tests with Socket usage and replace them to real statements. See usage of BkBasicTest.createMockSocket.
IMPlexxlexx@i-free.com725516-ffc97ad1516src/test/java/org/takes/http/BkBasicTest.java69-7115
Move header names from BkBasic to public constants. Reusable header names will help in many situations. For example - in new integration tests.
IMPlexxlexx@i-free.comunknown438-dcc4d707438src/test/java/org/takes/rq/RqChunkTest.java40-4345
Implement reading chunked message body in {@link RqChunk} class to pass the tests. The request body should be treated as a serie of chunks and be capped to the chunks sizes sum.
IMPHDoussdouss.hamdi@gmail.com558530-0ac0fcef530pom.xml313-31730
Below excludes were created during migration from qulice 0.13 to qulice 0.15.4. New qulice finds new additional issues in the code that need to be fixed. Checktyle issues were fixed in scope of #530, remaining PMD and XML issues to be fixed in scope of this puzzle.
IMPAndrey Eliseevandrey.eliseev@db.comunknown558-ffd45315558pom.xml308-31030
Upgrade Qulice to 0.16. Fix all checkstyle violations (mostly `AtclauseOrderCheck`). Fix or add puzzle for PMD, findbugs and other types of violations.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-4ea33ea6558src/main/java/org/takes/facets/auth/PsAll.java56-6030
PsAll ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-7b985928558src/main/java/org/takes/facets/auth/PsBasic.java226-23030
Default ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-7db66253558src/main/java/org/takes/facets/auth/codecs/CcAES.java91-9530
CcAES ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-b4a12ea6558src/main/java/org/takes/facets/fork/FkHitRefresh.java117-12130
FkHitRefresh ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-12fc4eff558src/main/java/org/takes/facets/fork/MediaType.java62-6630
MediaType ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-7c5810e9558src/main/java/org/takes/http/BkTimeable.java67-7130
BkThreads ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-e98f4792558src/main/java/org/takes/http/Options.java71-7530
Options ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-d5ffb2ba558src/main/java/org/takes/misc/Href.java76-8030
Href ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-79259f7e558src/main/java/org/takes/rq/RqForm.java290-29430
Fake ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown558-afc1c081558src/main/java/org/takes/rq/RqMultipart.java131-13530
Base ctor. According to new qulice version, constructor must contain only variables initialization and other constructor calls. Refactor code according to that rule and remove `ConstructorOnlyInitializesOrCallOtherConstructors` warning suppression.
IMPMaksimenko Vladimirxupypr@xupypr.com574517-9858229b517pom.xml360-36230
Continue fixing FindBugs violations started in #517. #517 turned on the FindBugs, temporarily excluding some classes. Remove all excludes of FindBugs below and fix the issues.
IMPsxgSebin.George@datacash.com624574-2964594e574pom.xml373-37530
Continue fixing FindBugs violations started in #574. #574 turned on the FindBugs, temporarily excluding some classes. Remove all excludes of FindBugs below and fix the issues.
IMPsxgSebin.George@datacash.com660624-78dfe52a624pom.xml338-34030
Continue fixing FindBugs violations started in #624. #624 turned on the FindBugs, temporarily excluding some classes. Remove all excludes of FindBugs below and fix the issues.
IMPDalí Freiredalifreire@gmail.com678660-949a08e1660src/main/java/org/takes/HttpException.java34-3630
Remove the SuppressWarnings PMD.BeanMembersShouldSerialize once the next release of Qulice will be available as it has been removed by https://github.com/teamed/qulice/issues/675
IMPNicolas Filottonicolas.filotto@gmail.com684678-b4f3ecf4678pom.xml344-34630
After upgrade to qulice 0.16.4 we have to fix AbbreviationAsWordInNameCheck checkstyle warings in next classes. Fix issues and remove all excludes of PMD here.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown684-70270140684src/main/java/org/takes/tk/TkCors.java53-5615
Remove PMD.AvoidDuplicateLiterals exclude here and in {@link RsPrettyJson}, {@link RsPrettyXml}. Note that this puzzle depends on https://github.com/teamed/qulice/issues/760. Note that this puzzle has partially overlap with https://github.com/yegor256/takes/issues/686
IMPMaksimenko Vladimirxupypr@xupypr.com686678-832c7c24678pom.xml380-38230
After upgrade to qulice 0.16.4 we have to fix AvoidDuplicateLiterals PMD warings in next classes. Fix issues and remove all excludes of PMD here.
IMPMaksimenko Vladimirxupypr@xupypr.comunknown686-832c7c24686pom.xml344-34630
After upgrade to qulice 0.16.4 we have to fix AvoidDuplicateLiterals PMD warings in next classes. Fix issues and remove all excludes of PMD here.
IMPDalí Freiredalifreire@gmail.comunknown686-55806871686src/main/java/org/takes/facets/flash/RsFlash.java103-10515
After upgrade to qulice 0.16.4 we have to fix SingularField PMD warings in this class. Fix this warning and rid of the PMD suppression here.
IMPDalí Freiredalifreire@gmail.comunknown686-bac26563686src/test/java/org/takes/facets/auth/social/PsLinkedinTest.java57-5930
After upgrade to qulice 0.16.4 we have to fix ExcessiveMethodLength PMD warings in this classe. Fix this warning and rid of the PMD suppression here.
IMPDalí Freiredalifreire@gmail.comunknown254-d68bc52e254src/main/java/org/takes/rq/CapInputStream.java37-4030
CapInputStream should delegate all standard InputStream calls to it's origin. It's very important in context of closing stream - right code should close the stream but default InputStream implementation just throws IOException
IMPAndrey Eliseevandrey.eliseev@db.comunknown254-40a8e0fe254src/main/java/org/takes/rq/RqMultipart.java241-24430
in order to delete temporary files InputStream instance on Request.body should be closed. In context of multipart requests that means that body of all parts should be closed once they are not needed anymore.
IMPAndrey Eliseevandrey.eliseev@db.comunknown620-91883c6a620src/test/java/org/takes/rq/RqMultipartTest.java91-9830
This test is using RqGreedy in order to survive. If you remove RqGreedy, the test will crash. I can't find out why exactly it's happening. But the main problem is that somehow inside RqMultipart.Fake we're reading body() of dispositions twice or more times. That's why RqGreedy is required now. I order to always return the same content. Let's find what exactly is the problem and remove RqGreedy from this test and three other test methods below.
IMPYegor Bugayenkoyegor@tpc2.comunknown651-43df2f64651src/main/java/org/takes/rq/multipart/RqMtBase.java80-8330
This class is highly coupled, it should be refactored in order to be able to reduce the overall coupling of this class which will allow to remove the violations ClassDataAbstractionCouplingCheck and PMD.ExcessiveImports.
IMPNicolas Filottonicolas.filotto@gmail.comunknown664-ddd2c9b3664src/main/java/org/takes/rs/RsXSLT.java143-14530
continue removing usage StandardCharsets.UTF_8 from takes code (remove usage not only from this class but also from other parts of project). Please look at #664 for more details.
IMPMaksimenko Vladimirxupypr@xupypr.com687667-ace435e8667src/main/java/org/takes/rq/RqForm.java69-7130
Refacor this class to reduce the data abstraction coupling in order to get rid of the checkstyle suppression of ClassDataAbstractionCouplingCheck
IMPDalí Freiredalifreire@gmail.comunknown687-65dc14c7687src/main/java/org/takes/rq/form/RqFormBase.java56-5830
Refactor this class to reduce the data abstraction coupling in order to get rid of the checkstyle suppression of ClassDataAbstractionCouplingCheck.
IMPRui Castrorui.castro@gmail.comunknown687-875c0e1d687src/main/java/org/takes/rq/form/package-info.java38-4015
Improve documentation for package org.takes.rq.form explaining what a form is, providing code examples of usage of existing classes and other info that may be relevant.
IMPRui Castrorui.castro@gmail.com73071230IMP712-e6a34ddb44-46
Prepare implementation for empty response body test and unignore returnsAnEmptyResponseBody test to fix such error which was reported in #712.
src/test/java/org/takes/tk/TkSlf4jTest.javaPiotr Pradzynskiprondzyn@gmail.com80073030IMP730-80b5782155-58
Fix FtRemote for empty response body test case and unignore returnsAnEmptyResponseBody. After that the {@link org.takes.tk.TkSlf4jRemoteTest} should be fixed and relevant test case should be unignored.
src/test/java/org/takes/http/FtRemoteTest.javaIzbassar Tolegent.izbassar@gmail.com86980030DEV800-fe5f523c55-59
We can't assert if FtRemote returns an empty body because some bug in jcabi-http (reported in https://github.com/jcabi/jcabi-http/issues/177). After this bug is fixed, the {@link org.takes.tk.TkSlf4jRemoteTest} should be fixed and relevant test case should be unignored.
src/test/java/org/takes/http/FtRemoteTest.javaVictor Noëlvictor.noel@crazydwarves.org73171230IMP712-65dc14c747-49
Refactor this class to reduce the data abstraction coupling in order to get rid of the checkstyle suppression of ClassDataAbstractionCouplingCheck.
src/test/java/org/takes/tk/TkSlf4jTest.javaPiotr Pradzynskiprondzyn@gmail.com78021830IMP218-f14916a536-41
Implement Condition.Range that should select elements within given range of indexes. It should be constructable with specified ranges and with starting position. Having that we can implement Condition.Skip that will simply negate Condition.Range so that elements are skipped that are inside the given range or from given starting position.
src/main/java/org/takes/misc/Condition.javarultorme@rultor.com80678030IMP780-9da1895737-39
Bring Cactoos dependency to the project. Replace Select and Condition usages by Cactoos analogues. The Condition.Skip should be also available in Cactoos.
src/main/java/org/takes/misc/Condition.javaIzbassar Tolegent.izbassar@gmail.com78137315IMP373-b5720fa637-39
Document usage of Front interface in README.md. Provide information about implementations and how and when they can be used in client's code.
src/main/java/org/takes/http/Front.javaTolegen Izbassartolegen.izbassar@ubs.com78237315IMP373-5aec50f138-40
Document usage of Back interface in README.md. Provide information about implementations and how and when they can be used in client's code.
src/main/java/org/takes/http/Back.javaTolegen Izbassartolegen.izbassar@ubs.com79448530IMP485-ca1df14543-58
Right now we can only check that InputStream have the same content as other InputStream. This is very limited usage. Task is to introduce `HmTextBody` that will make available to us to use useful string matchers from hamcrest. The usage will be like that: ``` MatcherAssert.assertThat( response, new HmRsTextBody<>(Matchers.startsWith("<html>")) ); ``` The default constructor should use `Matcher.containsString` as default matcher, which is used for matching string to body. Current implementation of `AbstractHmBody` should be converted to `HmBytesBody` that will check equality of bytes. We can think of improving that class lately.
src/main/java/org/takes/facets/hamcrest/AbstractHmBody.javarultorme@rultor.com81979430DEV794-b511993445-49
Implement describeMismatchSafely and cover mismatch descriptions with relevant test cases. Update describeTo implementation to be more informative and add relevant test cases for that. Both should show, what was expected, what was actually in the body and text description for clear understanding.
src/main/java/org/takes/facets/hamcrest/AbstractHmTextBody.javarultorme@rultor.com82079430DEV794-9c47f19f43-45
Current implementation of `AbstractHmBody` should be converted to `HmBytesBody` that will check equality of bytes. We can think of improving that class lately.
src/main/java/org/takes/facets/hamcrest/AbstractHmBody.javarultorme@rultor.com85979430DEV794-c85dda7b48-50
Current implementation of `HmBody` should be converted to `HmBytesBody` that will check equality of bytes. We can think of improving that class lately.
src/main/java/org/takes/facets/hamcrest/HmBody.javaPaulo Lobopauloeduardolobo@gmail.com79548530IMP485-6f86452960-63
Right now the describeTo doesn't properly show the reason behind mismatch. It should show expected bytes and actual bytes for better clarification for end user. Also describeMismatchSafely should be implemented.
src/main/java/org/takes/facets/hamcrest/AbstractHmBody.javarultorme@rultor.com83279530DEV795-077f398065-67
Right now the describeTo method do not covered with tests. Cover this method with unit test to increase coverage of the class.
src/main/java/org/takes/facets/hamcrest/AbstractHmBody.javaTolegen Izbassart.izbassar@gmail.com79679315IMP793-49ae419185-87
Replace this class usages with RqHref(req).href() or simply Href when the issue with parsing anchors is fixed and delete this implementation for good
src/main/java/org/takes/tk/TkRedirect.javaValeriy Zhirnovneonailol@gmail.com80274430IMP744-7f6a14c2246-248
`null` constant usage in the function `directoryUpdated` is violating the key principles, defined in README.md file and must be eliminated.
src/main/java/org/takes/facets/fork/FkHitRefresh.javaKapralov Sergeyskapralov@mail.ru93580230DEV802-a1804963237-240
Continue removing nulls from the codebase, which still exist in the code. The way it is violates the key principles, defined in the README.md file and should be deleted.
src/main/java/org/takes/facets/fork/FkHitRefresh.javamarceloamadeumarceloandradeamadeu@gmail.com81277830DEV778-192143c075-78
Fix flushHeadEvenWhenExceptionHappens test and remove Ignore annotation. Implementation could not rely on simple try-finally block as OutputStreamWriter do not call to the flush() of OutputStream. It has additional checks.
src/test/java/org/takes/rs/RsPrintTest.javarultorme@rultor.com86568230DEV682-74f1da6144-47
Continue to integrate with Servlet API, see https://github.com/yegor256/takes/pull/836 discussion for details. Also add unit tests for servlet related classes: SrvTake, RqFrom and ResponseOf.
src/main/java/org/takes/servlet/SrvTake.javaKirillg4s8.public@gmail.com95386530DEV865-bfce408b42-44
Continue to integrate with Servlet API, see https://github.com/yegor256/takes/pull/865 discussion for details. Also add unit tests for servlet related class SrvTake.
src/main/java/org/takes/servlet/SrvTake.javaFabricio Cabralfabriciofx@gmail.com95595330DEV953-05f5c26f42-45
Integration with Servlets Session API, see https://github.com/yegor256/takes/pull/865 discussion for details. Add support and tests to Servlet Session. This implementation will able store data in the server side, as a session does.
src/main/java/org/takes/servlet/SrvTake.javaFabricio Cabralfabriciofx@gmail.com86668230DEV682-06e5396c44-46
Servlet request and response adapters are not unit-tested. There should be tests for reading headers and body from servlet request and test for validating servlet response after applying takes request.
src/main/java/org/takes/servlet/ResponseOf.javag4s8g4s8.public@gmail.com93886630DEV866-ccba703239-41
Servlet request adapter is not unit-tested. There should be tests for reading headers and body from servlet request. See https://github.com/yegor256/takes/pull/865 discussion for details.
src/main/java/org/takes/servlet/RqFrom.java@rultorme@rultor.com88083730DEV837-241b1372373-377
Upgrade qulice to latest 0.17.x and if possible to latest 0.18.x and fix all the issues it detects for the build to pass. In 0.17.6, some changes impact a lot of file, while in 0.18 there should be less new issues. Don't forget about the IT test ran by maven-invoker-plugin.
pom.xmlVictor Noëlvictor.noel@crazydwarves.org89488030DEV880-4ac1935a100-105
Once Cactoos is updated to qulice >=0.18.5 remove all references to Files.newXXX static methods and replace them with OO objects such as InputOf or OutputOf depending on the need. See https://github.com/yegor256/takes/pull/886#issuecomment-446030223 for details.
pom.xmlVictor Noëlvictor.noel@crazydwarves.org88183730DEV837-e35739d6378-383
Finish the upgrade to qulice 0.17.5 by reviewing all diamond usage: it was required until now to explicit the type in generics but it is not needed anymore. For example in BkTimetable line 65, new ConcurrentHashMap<Thread, Long>(1) should be new ConcurrentHashMap<>(1). There are around 70 cases like that.
pom.xmlVictor Noëlvictor.noel@crazydwarves.org88283730DEV837-89c97f66390-393
Un-exclude findbugs from qulice checks and fix the bugs it detects for the build to pass. Most of those are related to reliance on default encoding and synchronization problems.
pom.xmlVictor Noëlvictor.noel@crazydwarves.org88780430DEV804-84fdf63641-45
Make Body extends Cactoos's Input and replace input method with stream method. Once this is done, rewrite the tests (such as BodyTest) so that they do not use guava but Cactoos objects and cactoos-matchers InputHasContent. When there is no more need for the method input, remove it.
src/main/java/org/takes/rs/Body.javaVictor Noëlvictor.noel@crazydwarves.org88880430DEV804-1f63803d45-53
Continue removing Guava's code from tests, starting with all the calls to Joiner by replacing them with Cactoos JoinedText and the use of cactoos-matchers TextIs or TextHasContent coupled with this class RsPrint as a Text as it was started in #804. When there is no more use for the method print, remove it and extract printHead and printBody in two different classes BodyPrint and HeadPrint both implementing Text and start again replacing guava in tests in the same manner. Create new todos until guava is removed and Takes is much more Cactoos oriented as started with #804.
src/main/java/org/takes/rs/RsPrint.javaVictor Noëlvictor.noel@crazydwarves.org96888830DEV888-1f63803d45-53
Continue removing Guava's code from tests, starting with all the calls to Joiner by replacing them with Cactoos JoinedText and the use of cactoos-matchers TextIs or TextHasContent coupled with this class RsPrint as a Text as it was started in #804. When there is no more use for the method print, remove it and extract printHead and printBody in two different classes BodyPrint and HeadPrint both implementing Text and start again replacing guava in tests in the same manner. Create new todos until guava is removed and Takes is much more Cactoos oriented as started with #804.
src/main/java/org/takes/rs/RsPrint.java@rultorme@rultor.com98496830DEV968-1f63803d45-53
Continue removing Guava's code from tests, starting with all the calls to Joiner by replacing them with Cactoos JoinedText and the use of cactoos-matchers TextIs or TextHasContent coupled with this class RsPrint as a Text as it was started in #804. When there is no more use for the method print, remove it and extract printHead and printBody in two different classes BodyPrint and HeadPrint both implementing Text and start again replacing guava in tests in the same manner. Create new todos until guava is removed and Takes is much more Cactoos oriented as started with #804.
src/main/java/org/takes/rs/RsPrint.java@rultorme@rultor.com105498430DEV984-c7848b9148-52
Extract printHead and printBody in two different classes BodyPrint and HeadPrint both implementing Text and start again replacing guava in tests in the same manner. Create new todos until guava is removed and Takes is much more Cactoos oriented as started with #804.
src/main/java/org/takes/rs/RsPrint.javaandreossandreoss@sdf.org1073105430DEV1054-1250817642-44
Continue replacing guava in tests. Create new todos until guava is removed and Takes is much more Cactoos oriented as started with #804.
src/main/java/org/takes/rs/RsPrint.javaFabrício Cabralfabriciofx@gmail.com1074105430DEV1054-0458805c101-104
Remove the #print(OutputStream) methods. After the creation of {@link HeadPrint} and {@link BodyPrint} classes, these methods lost sense and need be removed from these classes and all tests that uses #print() method.
src/main/java/org/takes/rs/RsPrint.javaFabrício Cabralfabriciofx@gmail.com1075105430DEV1054-a8efe28242-44
Develop tests for {@link HeadPrint} and {@link BodyPrint}. Although these classes are tested by {@link RsPrint} they need their own unit tests.
src/main/java/org/takes/rs/HeadPrint.javaFabrício Cabralfabriciofx@gmail.com105598430DEV984-b670021041-43
This class should implement Text in accordance with RsPrint. Make it implement text, then clean up code from `new TextOf(new RqPrint(...).print())` idiom and remove method `print`.
src/main/java/org/takes/rq/RqPrint.javaandreossandreoss@sdf.org88980430DEV804-8078cfde31-35
Make this implements Cactoos Bytes and Text and make the places in Takes that use it be able to directly take either a Bytes or a Text depending on the situation. For example RsWithBody should take Bytes and Text in its constructors. Also reimplement this class with BytesOf.
src/main/java/org/takes/misc/Utf8String.javaVictor Noëlvictor.noel@crazydwarves.org89587730DEV877-052482c842-46
replace all org.junit.Test occurrences in the project by JUnit 5 equivalent org.junit.jupiter.api.Test and replaces all expected Exceptions by Assertions.assertThrows. Check org.takes.facets.auth.codecs.CcAesTest or org.takes.facets.auth.codecs.CcSaltedTest as examples.
src/test/java/org/takes/facets/auth/codecs/CcStrictTest.javaoridanoridan@gmail.com91786330DEV863-4448a93c48-49
Continue removing nulls from the code base, there are still some places that use it and can be replaced with better code constructs.
src/main/java/org/takes/facets/fork/FkHitRefresh.java@rultorme@rultor.com94889330DEV893-3412ae8c96-99
Continue removing static class Matchers. Use the classes IdentityTest.java, PsAllTest.java, PsBasicDefaultTest.java, PsChainTest.java, HmBodyTest.java, HmRqTextBodyTest.java, HmRsStatusTest.java, and HmRsTextBodyTest.java as an example.
src/test/java/org/takes/facets/hamcrest/HmBodyTest.java@rultorme@rultor.com95057730DEV577-dcc6f7a1368-372
The test below fails with the message "header "Content-Disposition" is mandatory". The error disappears when `new RqFake(new ListOf<>(""), "")` is changed to `new RqFake(new ListOf<>(""), "someValue")`. Fix the underlying problem and remove the `@Ignore` annotation.
src/test/java/org/takes/rq/multipart/RqMtFakeTest.java@rultorme@rultor.com109595030DEV950-0b2d9fd8128-133
Remove code from this ctor, leaving only initialization. Currently this constructor access body of the request and triggers its evaluation. This breaks composition of multiple request, as it can be seen in {@link RqMtFake}. When this task is done, remove explicit lazy evaluation for RqMtFake.
src/main/java/org/takes/rq/multipart/RqMtBase.java@andreossandreoss@sdf.org99891830DEV918-4b25f3bd31-34
Remove this class in favour of {@link org.cactoos.text.Lowered} which does the same. Find all usages of this class in the project and replace by suggested {@link org.cactoos.text.Lowered} class.
src/main/java/org/takes/misc/EnglishLowerCase.java@fanifieievfevzi.anifyeyev@gmail.com100899830DEV998-598741c454-57
The method 'getHeaders' is broken. Please fix that. The {@link org.takes.servlet.HttpServletResponseFakeTest} can use any value when using 'getHeaders(param)' method and the tests will pass successfully. So the tests are invalid as well.
src/main/java/org/takes/servlet/HttpServletResponseFake.java@fanifieievfevzi.anifyeyev@gmail.com100999830DEV998-afb3a7a542-44
Replace the usage of {@link java.lang.String}.format in the project and leverage {@link org.cactoos.text.FormattedText} decorator as it is an elegant object oriented way.
src/main/java/org/takes/package-info.java@fanifieievfevzi.anifyeyev@gmail.com101099830DEV998-bf531c2b45-47
Replace the usage of {@link java.lang.String}.trim in the project and leverage {@link org.cactoos.text.Trimmed} decorator as it is an elegant object oriented way.
src/main/java/org/takes/package-info.java@fanifieievfevzi.anifyeyev@gmail.com101199830DEV998-930f99e948-51
Replace the usage of {@link java.lang.String}.startsWith in the project and leverage the future functionality described in the issue https://github.com/yegor256/cactoos/issues/1265 as it is an elegant object oriented way.
src/main/java/org/takes/package-info.java@fanifieievfevzi.anifyeyev@gmail.com101299830DEV998-4e00753533-38
Please remove this class and use {@link org.cactoos.io.BytesOf} decorator instead of this class. Use {@link org.cactoos.text.TextOf} decorator where required with combination of {@link org.cactoos.io.BytesOf}. The {@link org.cactoos.io.BytesOf} contains several different constructors for most of the inputs and supports UTF-8.
src/main/java/org/takes/misc/Utf8String.java@fanifieievfevzi.anifyeyev@gmail.com101399830DEV998-391a446133-36
Please remove this class and use {@link org.cactoos.io.ReaderOf} decorator instead of this class. The {@link org.cactoos.io.ReaderOf} contains several different constructors for most of the inputs and supports UTF-8.
src/main/java/org/takes/misc/Utf8InputStreamContent.java@fanifieievfevzi.anifyeyev@gmail.com101499830DEV998-179b06ba34-37
Please remove this class and also {@link org.takes.misc.TransformAction} and leverage one of the followings {@link org.cactoos.iterable.Mapped}, {@link org.cactoos.iterator.Mapped}, {@link org.cactoos.list.Mapped} decorators.
src/main/java/org/takes/misc/Transform.java@fanifieievfevzi.anifyeyev@gmail.com101599830DEV998-c07e6e6035-38
Please remove this class and use {@link org.cactoos.text.FormattedText} decorator instead of this class. The {@link org.cactoos.text.FormattedText} does the same job and supports decorating functionality of other {@link org.cactoos.Text} objects.
src/main/java/org/takes/misc/Sprintf.javaFevzi Anifieievfevzi.anifyeyev@gmail.com101699830DEV998-44c9d90734-37
Please remove this class and use {@link org.cactoos.io.BytesOf} decorator instead of this class. The {@link org.cactoos.io.BytesOf} contains several different constructors for most of the inputs and supports UTF-8
src/main/java/org/takes/misc/Utf8PrintStream.javaFevzi Anifieievfevzi.anifyeyev@gmail.com101799830DEV998-37169ad033-36
Please remove this class and use {@link org.cactoos.io.WriterTo} decorator instead of this class. The {@link org.cactoos.io.WriterTo} contains several different constructors for most of the inputs and supports UTF-8.
src/main/java/org/takes/misc/Utf8OutputStreamContent.javaFevzi Anifieievfevzi.anifyeyev@gmail.com101899830DEV998-8713353e39-44
Please use {@link org.cactoos.text.Split} instead of {@link String.split} as an elegant way. To completely leverage the {@link org.cactoos.text.Split} here, it is required for the completion of issue https://github.com/yegor256/cactoos/issues/1251 and upgrading to that version of Cactoos.
src/main/java/org/takes/facets/fork/MediaType.javaFevzi Anifieievfevzi.anifyeyev@gmail.com101999830DEV998-0852371251-55
Use {@link org.cactoos.scalar.Ternary} scalar here for conditionally evaluated result. Please refere to https://github.com/yegor256/cactoos/blob/master/src/main/java/org/cactoos/ scalar/Ternary.java class for javadoc on how to use this scalar in an elegant way.
src/main/java/org/takes/facets/fork/FkHost.javaFevzi Anifieievfevzi.anifyeyev@gmail.com99991830DEV918-a277e74836-38
Please use {@link org.cactoos.scalar.Sticky} decorator class so that multiple calls to body() would produce the same cached result rather than throwing an exception.
src/main/java/org/takes/rq/RqOnce.java@fanifieievfevzi.anifyeyev@gmail.com108099930DEV999-c596aa6840-42
Please use {@link org.cactoos.text.Sticky} decorator class instead of inner anonymous class below, which prevents input from being read twice by caching results of first call internally.
src/main/java/org/takes/rq/RqOnce.javaandreossandreoss@sdf.org1117108030DEV1080-c1d53f7a41-43
Please make two decorators (HeadOnce and BodyOnce) that prevent multiple reads of their contents. Introduce some units tests for these new classes.
src/main/java/org/takes/rq/RqOnce.java@LightPro-Incbaudolivier.oura@gmail.com100091830DEV918-47bb780949-52
{@link TkFallback} class is very complicated, hard to read. Please consider removing static methods and replace them by dedicated elegant classes according to https://www.yegor256.com/2017/02/07/private-method-is-new-class.html
src/main/java/org/takes/facets/fallback/TkFallback.java@fanifieievfevzi.anifyeyev@gmail.com1062105030DEV1050-5153da1651-54
Text lacks a decorator for caching its value. The anonymous implementation here probably belongs to cactoos. Extract it as a separate class. After that add a new puzzle to do the same for the rest of Text implementing classes (such as RsPrint).
src/main/java/org/takes/rq/RqPrint.javaandreossandreoss@sdf.org1068105830DEV1058-ab240961366-374
This test address the bug reported by issue #1058. The problem is {@link Href#createUri} method is recursive and isn't working properly (the index doesn't match with the correct position). But even fixing it, this leave a other question: should or not Takes send a 400 Bad Request response? By the HTTP protocol, the answer is yes. So, you should: 1) fix the recursive call in {@link Href#createUri} 2) change {@link BkBasic#print} to return a 400 Bad Request response and finally 3) unignore this test (that should pass).
src/test/java/org/takes/http/BkBasicTest.javaFabrício Cabralfabriciofx@gmail.com1088106730DEV1067-ac9afd75489-492
This limits are set according to current metrics. Improve test coverage and increase a limit, than update this task. Remove this task when 0.99 is reached for each metric.
pom.xmlandreossandreoss@sdf.org1112108830DEV1088-ac9afd75472-475
This limits are set according to current metrics. Improve test coverage and increase a limit, than update this task. Remove this task when 0.99 is reached for each metric.
pom.xml@LightPro-Incbaudolivier.oura@gmail.com110899730DEV997-5bcbe37849-51
We introduced a test to show issue that have been described in ticket #997. Now, we have to fix it and enable this test.
src/test/java/org/takes/rq/multipart/CopyBytesUntilBoundaryTest.javaOlivier B. OURAbaudolivier.oura@gmail.com1113111060DEV1110-00e4d7db317-319
There are 18 tests that fail now, mostly due to versions upgrade (or an old Mockito version). We must fix them ASAP and then remove the next line
pom.xml@yegor256yegor256@gmail.com111495830DEV958-e512fbf3392-395
duplicate-finder-maven-plugin found module-info as duplicate and different class in [javax.json:javax.json-api:1.1,javax.xml.bind:jaxb-api:2.3.0]. After resolving duplicatefinder in Qulice, remove this plugin and configure qulice plugin to enable these exclusions (see at https://www.qulice.com/qulice-maven-plugin/example-exclude.html).
pom.xml@baudoliver7baudoliver7@gmail.com