[resteasy-dev] RESTEasy and possible "community" contribution

Marek Kopecky mkopecky at redhat.com
Thu May 5 09:58:22 EDT 2016



On 05/05/2016 03:46 PM, Weinan Li wrote:
> --
> Weinan Li / JBoss
>
>
>
>> On May 5, 2016, at 9:21 PM, Rostislav Svoboda <rsvoboda at redhat.com> wrote:
>>
>>>
>>> On 05/04/2016 11:36 AM, Weinan Li wrote:
>>>> --
>>>> Weinan Li / JBoss
>>>>
>>>>> On May 4, 2016, at 8:02 PM, Rostislav Svoboda <rsvoboda at redhat.com> wrote:
>>>>>
>>>>> Moving the discussion to the mailing list ++ adding few notes about the
>>>>> project structure and TS.
>>>>>
>>>>> Structure:
>>>>> - why is there one module jaxrs in the root of repo -
>>>>> https://github.com/resteasy/Resteasy ?
>>>> It's added by Bill but I forget the reason. I don't like it either :-) We
>>>> can remove it now as JAX-RS is moved outside RESTEasy repo.
>>>>
>>>>> - there are too many modules (in root jaxrs module) from my perspective
>>>>>    -- multi module project structure can affect build time
>>>>>    -- find . | grep pom.xml | wc -l reports 226 pom.xml files
>>>> The 'example' module contains all the Bill's book examples. We need to ask
>>>> him for permission to move these away.
>>> They go into the distribution zip file.
>>>
>> ok, proper isolation in project as suggested by Alession is probably the best option.
>> And there will be no regression in stuff delivered in zip.
>>
>>>>>    -- find . | grep pom.xml | grep -v arquillian | grep -v exam | grep -v
>>>>>    test | wc -l reports 58 pom.xml files
>>>>> - not clear where is the real code and what is just add-odd like examples,
>>>>> book stuff
>>>>> - naming of modules in not in sync, some are starting resteasy-*, some do
>>>>> not have such prefix
>>>>>
>>>>> Commits:
>>>>> - commit messages do not follow same/similar format - see
>>>>> https://github.com/resteasy/Resteasy/commits/master
>>>>>    -- I would expect jira id at the beginning of the commit message, it's
>>>>>    there sometime but in different format - e.g. RESTEASY-1328 vs.
>>>>>    [RESTEASY-1331]
>>> Even better is the whole URL, so you can click and go there.
>> Not so sure, [RESTEASY-xxx] is the best option from my side, jira can handle integration / parsing of commit messages
>>
>>>>> - massive commit message like
>>>>> https://github.com/resteasy/Resteasy/commit/fdd1f9f31edb894fa6f8684f2608224c39519e6c
>>>>> - commit related to RESTEASY-1323 are really "fun"
>>>>>    -- https://github.com/resteasy/Resteasy/pull/756/files
>>>>>    -- one fix in code (4 lines removed) + two tests done in 7 commits :(
>>>>>    -- these commits should have been squashed
>>>> +1
>>>>
>>>>> Versions:
>>>>> - will leave this to Tomaz :)
>>>>>
>>>>> TS:
>>>>> - unit tests are mixed with integration tests
>>>>>    -- integration tests should be in separate module
>>>>>    -- tests should be running in different maven phases
>>>>> - there are only few tests against WF
>>>>> - such tests are not executed against latest WF, but mainly against WF 8
>>> At some point I started adding new arquillian tests to RESTEASY-TEST-WF8
>>> to reduce the number of times wildfly starts up. I have a
>>> RESTEASY-TEST-WF10, but it depends on JDK 1.8, so it's not activated yet.
>> Shouldn't be JDK 8 the default ?
>> Public JDK 7 is not receiving updates for 1 year - see http://www.oracle.com/technetwork/java/eol-135779.html or http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
>> Last release was April 2015
Is it really necessary to support RESTEasy with JDK7?
For WF10: Java 7 support has been discontinued allowing for deeper 
integration with the Java 8 runtime.
>>
>>>>> - I would like to see ARQ + WF10+ and get rid of tjws
>>>> Get ridding of TJWS is not practical because it will make the test time
>>>> unacceptable. But replacing them with undertow container would be great
>>>> :-)
>>> A lot of tests just don't depend on the environment. I create arquillian
>> But there are tests which pass on tjws, but failed with WF10 / EAP7, you can check the jira link I shared in previous email or see below

  * I run upstream TS on perf-machine. I build resteasy. Then I run tests:
      o Tests tooks 10 minutes.
  * I run qe-internal-resteasy-ts on the same perf-machine.
    Qe-internal-resteasy-ts contains all tests from upstream. These
    tests are run against EAP.
      o Tests tooks 13 minutes.

So in my point of view, test time with ARQ + WF10 is definitelly acceptable.

Marek
>>
>>> tests only when the environment seems to matter. I agree it would be
>>> nice to use undertow, but who's going to take the time to do that?
>> There is product TS which can be reused / pulled back.
>>
>>>>> EAP 7 situation for TS:
>>>>> - we migrated upstream ts to use ARQ and run against EAP 7 and not tjws
>>>>> - we discovered half of reported issues thanks to this migrated TS, these
>>>>> issues wouldn't be noticed bu community TS executed against tjws
>>>> Totally removing TJWS is also not possible, because many users are using
>>>> this 'internal' feature in their production env. We can't estimate how the
>>>> impact will be.
>> Well, I'm surprised about tjws use in production environment
>>
>> quick check shows this:
>> resteasy-jaxrs-3.0.16.Final-redhat-1.jar | grep tjws
>>         0  02-22-2016 03:06   org/jboss/resteasy/plugins/server/tjws/
>>      2015  02-22-2016 03:06   org/jboss/resteasy/plugins/server/tjws/TJWSServletDispatcher.class
>>      2110  02-22-2016 03:06   org/jboss/resteasy/plugins/server/tjws/TJWSServletServer$FileMappingServe.class
>>      5244  02-22-2016 03:06   org/jboss/resteasy/plugins/server/tjws/TJWSServletServer.class
>>      1467  02-22-2016 03:06   org/jboss/resteasy/plugins/server/tjws/AuthenticatedHttpServletRequest.class
>>      3172  02-22-2016 03:06   org/jboss/resteasy/plugins/server/tjws/TJWSRequestPreProcessor.class
>>      3136  02-22-2016 03:06   org/jboss/resteasy/plugins/server/tjws/TJWSEmbeddedJaxrsServer.class
>>      2854  02-22-2016 03:06   org/jboss/resteasy/plugins/server/tjws/PatchedHttpServletRequest.class
>> resteasy-spring-3.0.16.Final-redhat-1.jar | grep tjws
>>         0  02-22-2016 03:09   org/jboss/resteasy/springmvc/tjws/
>>      2034  02-22-2016 03:09   org/jboss/resteasy/springmvc/tjws/TJWSEmbeddedSpringMVCServer.class
>>      1794  02-22-2016 03:09   org/jboss/resteasy/springmvc/tjws/TJWSSpringMVCDispatcher.class
>>      2809  02-22-2016 03:09   org/jboss/resteasy/springmvc/tjws/TJWSEmbeddedSpringMVCServerBean.class
>>
> And also the 'tjws' module itself.
>
>> Do you know more about customer use-cases ?
> I recently fixed a tjws ssl use case requested by customer: https://github.com/resteasy/Resteasy/pull/761/files
>
>
>
>>> Yeah, I learned that only recently. I'm amazed. But it's true: "If it's
>>> there, they'll use it."
>> Agree, it's bad that we realized that so late :(
>>
>>>> We can try to remove TJWS for testing purposes in RESTEasy project itself.
>>>> But the RESTEasy TJWS module should be maintained as a feature.
>>>>
>>>>>    -- 19 from 38 jiras -
>>>>>    https://issues.jboss.org/issues/?jql=project%20%3D%20JBEAP%20AND%20issuetype%20%3D%20Bug%20AND%20resolution%20in%20%28Unresolved%2C%20Done%2C%20%22Out%20of%20Date%22%29%20AND%20component%20%3D%20REST
>>>>> - we will keep this TS for 7.0.z
>>>>> - we would like to consume & prod-patch upstream (ARQ + WF based) TS for
>>>>> the future releases
>>>>>
>>>>> Upstream and QE specific TS should somehow converge into a single one.
>>>> +1
>>>>
>>>>> My feeling is that (upstream) TS should be a bit isolated from the rest to
>>>>> make it easier for QE to test against products - like EAP.
>>>>> Something similar what is in JBWS and maybe even beyond - no dependency on
>>>>> parent to have deps clearly defined.
>>>>> For JBWS we consume upstream ts, patch it little bit + use prod based
>>>>> dependencies.
>>>>>
>>>>> Cheers.
>>>>> Rostislav
>>>>>
>>>>> ----- Original Message -----
>>>>>> Hey Alessio,
>>>>>>
>>>>>> yes setting up mailing list or even better forums on developer.jboss.org
>>>>>> would be great.
>>>>>>
>>>>>> for the changes I had in mind from top of my head
>>>>>> - restructure project to move it one folder up so we, get rid of "jaxrs"
>>>>>> folder, but that can be done later
>>>>>> - unify versions of jetty used for tests
>>>>>> - make project build on various platforms and be able to release new
>>>>>> version maven-release-plugin
>>>>>> - get rid of tjws
>>>>>> - get rid of book
>>>>>> https://github.com/resteasy/Resteasy/tree/master/jaxrs/examples/oreilly-jaxrs-2.0-workbook
>>>>>> - probably best to move it to different repo
>>>>>> - think about examples, maybe move them to different repo or clean them
>>>>>> up
>>>>>> so build would work properly.
>>>>>>
>>>>>> and lots of other ideas, but that would just be cleaning up the codebase
>>>>>> so
>>>>>> it would be easier to work from there.
>>>>>>
>>>>>> But yes, lets talk about it next week, as I also have some stuff to
>>>>>> finish
>>>>>> this week.
>>>>>>
>>>>>> --
>>>>>> tomaz
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Apr 28, 2016 at 9:38 PM, Alessio Soldano <asoldano at redhat.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Rostislav, hi Tomaz,
>>>>>>> thanks for the references. We'll have to go and parse the changes (and
>>>>>>> also see what still applies and what would be out-of-date ;-) ).
>>>>>>> Generally speaking, why not, let's listen to what "stage 0" tasks you
>>>>>>> have
>>>>>>> in mind. I'm very busy till the end of the week, but I hope to have time
>>>>>>> to
>>>>>>> spend on this next week. I'm still fixing few things with the team,
>>>>>>> including having jboss mailing lists for the project.. if it makes sense
>>>>>>> to
>>>>>>> you, I would propose to have some discussion on the proposed tasks on a
>>>>>>> dev
>>>>>>> mailing list, ok?
>>>>>>> Cheers
>>>>>>> Alessio
>>>>>>>
>>>>>>>
>>>>>>> Il 28/04/2016 18:10, Rostislav Svoboda ha scritto:
>>>>>>>
>>>>>>>> Hi Alessio.
>>>>>>>>
>>>>>>>> Several months ago I spoke with Tomaz about RESTEasy and Tomaz's effort
>>>>>>>> with project cleanup + version sync. For example
>>>>>>>> https://github.com/resteasy/Resteasy/commit/1f95cefc716d88533551c282977aa9b0ba2a8f10
>>>>>>>> was merged, probably some more ideas are waiting for sunlight in
>>>>>>>> branches
>>>>>>>> like https://github.com/ctomc/Resteasy/tree/build-cleanup
>>>>>>>>
>>>>>>>> I pinged Tomaz today because of that and we spoke a bit about RESTEasy,
>>>>>>>> Tomaz has some ideas for few "stage 0" tasks that should be done before
>>>>>>>> anything else is going on. He [CCed to confirm that ;)] is also wiling
>>>>>>>> to
>>>>>>>> take few days to work on it if we agree on them being merged.
>>>>>>>>
>>>>>>>> So here we go, discussion can begin. Hope RESTEasy project structure
>>>>>>>> will
>>>>>>>> be in good condition soon!
>>>>>>>>
>>>>>>>> Cheers.
>>>>>>>> Rostislav
>>>>>>>>
>>>>>>>>
>>>>>>> --
>>>>>>> Alessio Soldano
>>>>>>> Web Service Lead, JBoss
>>>>>>>
>>>>>>>
>>>>> _______________________________________________
>>>>> resteasy-dev mailing list
>>>>> resteasy-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/resteasy-dev
>>>> _______________________________________________
>>>> resteasy-dev mailing list
>>>> resteasy-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/resteasy-dev
>>> --
>>> My company's smarter than your company (unless you work for Red Hat)
>>>
>>> _______________________________________________
>>> resteasy-dev mailing list
>>> resteasy-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/resteasy-dev
>>>
>> _______________________________________________
>> resteasy-dev mailing list
>> resteasy-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/resteasy-dev
>
> _______________________________________________
> resteasy-dev mailing list
> resteasy-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/resteasy-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/resteasy-dev/attachments/20160505/7c0c4595/attachment-0001.html 


More information about the resteasy-dev mailing list