Hi

2010/7/26 Jakob Korherr <[email protected]>

> "This code is just some wrappers and it is not expected this will change in
> the future. So the question is why bother us in this case? In this case use
> maven-shade-plugin is not worth."
>
> Actually and quite frankly it really is worth it. It is very easy and if
> you understand it, it is even easier than just copy & past, because you
> don't have to change packages manually. Furthermore, if you look at those
> classes, they have been refactored a couple of times from the very beginning
> (myfaces 1.1).
>
> In addition, there will surely be myfaces-test versions for JSF 2.1 (and
> 2.2, 3.0,...) and then you will always have to copy those classes and hope
> nothing will change. If you use the shade-plugin, you can throw your worries
> away!
>
>
Myfaces-test uses myfaces-builder-plugin unpack goal to share code between
versions, so the wrappers will be only on myfaces-test12.

I'm worried about a possible circular dependency between myfaces core and
myfaces test. The wrappers are on myfaces-core, but myfaces-test requires
core wrappers to be build, but we require myfaces-test on core to run some
tests, so which one should be compiled first? which one should be released
first?. When you execute maven release plugin, it is necessary to change
versions to the release ones, so do that will cause a lot of problems on
release.

regards,

Leonardo


> Regards,
> Jakob
>
> 2010/7/26 Mark Struberg <[email protected]>
>
> I think you are both right. I can understand that copying code is really
>> ugly,
>> but otoh Leos argument is also pretty strong.
>>
>> There is a solution for this. Cut off the shared parts and move it into an
>> own
>> module.
>>
>> This sounds easy but isn't always doable. But it might be worth a try.
>>
>> LieGrue,
>> strub
>>
>>
>> >
>> >From: Jakob Korherr <[email protected]>
>> >To: MyFaces Development <[email protected]>
>> >Sent: Mon, July 26, 2010 10:32:31 PM
>> >Subject: Re: Use maven-shade-plugin to prevent duplicate code
>> >
>> >Why would you like to have any duplicate code? This should not be
>> anyone's
>> >target in my opinion...
>> >
>> >
>> >
>> >2010/7/26 Leonardo Uribe <[email protected]>
>> >
>> >Hi
>> >>
>> >>Yes, it is true, that myfaces-test is used for testing myfaces core, but
>> in
>> >>theory, myfaces-test should be used to test jsf stuff without rely on a
>> specific
>> >>
>> >>jsf implementation.
>> >>
>> >>In this case I think (and it is my personal opinion) it is better to
>> have some
>>
>> >>duplicate code and keep things simple. Use maven-shade-plugin to deal
>> with
>> >>shared code is another different history.
>> >>
>> >>regards,
>> >>
>> >>Leonardo Uribe
>> >>
>> >>
>> >>2010/7/26 Jakob Korherr <[email protected]>
>> >>
>> >>
>> >>Actually this already is the case: MyFaces-test is used for testing
>> MyFaces
>> >>core.
>> >>>
>> >>>
>> >>>Regards,
>> >>>Jakob
>> >>>
>> >>>
>> >>>2010/7/26 Rudy De Busscher <[email protected]>
>> >>>
>> >>>Hi Jakob,
>> >>>>
>> >>>>So it was never the idea that MyFaces Test (and maybe the GSOC testing
>> effort)
>> >>
>> >>>>will be used to supply the test infrastructure for MyFaces Core?
>> >>>>
>> >>>>In that case : MyFaces Core can supply code.
>> >>>>
>> >>>>Regards
>> >>>>Rudy.
>> >>>>
>> >>>>
>> >>>>
>> >>>>On 26 July 2010 22:01, Jakob Korherr <[email protected]> wrote:
>> >>>>
>> >>>>Hi Rudy,
>> >>>>>
>> >>>>>Yes we totally have to be careful with circular dependencies, but it
>> should not
>> >>>>
>> >>>>>be that big problem.
>> >>>>>
>> >>>>>Actually I think that the opposite is true. MyFaces core is the JSF
>> >>>>>implementation and MyFaces test provides the Mock classes for JSF,
>> and for
>> >>>>>implementing these Mock classes it can reuse some functionality
>> already present
>> >>>>
>> >>>>>in MyFaces core (e.g. the real classes which should be mocked). IMO
>> this is the
>> >>>>
>> >>>>>way it should be.
>> >>>>>
>> >>>>>Regards,
>> >>>>>Jakob
>> >>>>>
>> >>>>>
>> >>>>>2010/7/26 Rudy De Busscher <[email protected]>
>> >>>>>
>> >>>>>
>> >>>>>Hi all,
>> >>>>>>
>> >>>>>>I agree, duplicated code has to be avoided and when the
>> maven-shade-plugin can
>> >>>>
>> >>>>>>help, the better.
>> >>>>>>
>> >>>>>>but I think we have to define which project supplies code for which
>> other
>> >>>>>>project (so that we don't get a spaghetti (using the tomatoes ;) or
>> get circular
>> >>>>>>
>> >>>>>>dependencies.).  I know that MyFaces core exists much longer then
>> MyFaces Test
>> >>>>
>> >>>>>>but I find it more
>> >>>>>>
>> >>>>>>
>> >>>>>>logic that the MyFaces Test supplies code for the MyFaces Core
>> project.
>> >>>>>>
>> >>>>>>my 2c.
>> >>>>>>
>> >>>>>>Regards
>> >>>>>>Rudy
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>On 26 July 2010 21:40, Matthias Wessendorf <[email protected]>
>> wrote:
>> >>>>>>
>> >>>>>>On Mon, Jul 26, 2010 at 9:30 PM, Jakob Korherr <
>> [email protected]>
>> >>>>wrote:
>> >>>>>>>> Hehe, yeah I maybe forgot 10 "many".
>> >>>>>>>>
>> >>>>>>>> I can provide a wiki page for the general idea and the approach
>> used on
>> >>>>>>>> myfaces-test.
>> >>>>>>>
>> >>>>>>>+1
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>> Then everyone can adopt this idea and see how it works.
>> >>>>>>>
>> >>>>>>>great. I have that on my agenda as well, for Trinidad but a
>> >>>>>>>new release is more important, today...
>> >>>>>>>
>> >>>>>>>>
>> >>>>>>>> "RIP _shared? :)"
>> >>>>>>>> --> yes!
>> >>>>>>>
>> >>>>>>>I thought so. Yes! :)
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>>
>> >>>>>>>> Regards,
>> >>>>>>>> Jakob
>> >>>>>>>>
>> >>>>>>>> 2010/7/26 Matthias Wessendorf <[email protected]>
>> >>>>>>>>>
>> >>>>>>>>> On Mon, Jul 26, 2010 at 8:56 PM, Jakob Korherr
>> ><[email protected]>
>> >>>>>>>>> wrote:
>> >>>>>>>>> > Hi guys,
>> >>>>>>>>> >
>> >>>>>>>>> > Working on the tests for FlashImpl, I ran into a problem with
>> the
>> >>>>>>>>> > AbstractAttributeMap (MYFACES-2840). After fixing it, I needed
>> to
>> >copy
>> >>>>>>>>> > my
>> >>>>>>>>> > changes over to myfaces-test to be able to use the new version
>> in
>> the
>> >>>>>>>>> > test
>> >>>>>>>>> > case (MYFACESTEST-21). And this copying really sucks...
>> >>>>>>>>>
>> >>>>>>>>> +1
>> >>>>>>>>>
>> >>>>>>>>> >
>> >>>>>>>>> > If you think about it there are many, many, many different
>> places in
>>
>> >>>the
>> >>>>>>>>>
>> >>>>>>>>> you forgot a many :-)
>> >>>>>>>>>
>> >>>>>>>>> > whole MyFaces project where we have duplicate code, for
>> example
>> >>>>>>>>> > package-private, unspecified classes on myfaces-api which also
>> exist
>>
>> >>in
>> >>>>>>>>> > myfaces-impl, classes of myfaces-impl which are used for the
>> mock
>> >>>>>>>>> > implementations of myfaces-test, or the biggest one: the
>> shared
>> >>>project.
>> >>>>>>>>> >
>> >>>>>>>>> > An introduction to the maven-shade-plugin: This plugin lets
>> you use
>> a
>> >>>>>>>>> > dependency to another project and then at build time it copies
>> all
>> >>>>>>>>> > needed
>> >>>>>>>>> > classes to the created jar file, removes the dependency from
>> the
>> >>>pom.xml
>> >>>>>>>>> > and
>> >>>>>>>>> > changes the imports in the class files. Thus you work with the
>> real
>> >>>>>>>>> > classes
>> >>>>>>>>> > at development time and then at build time the used classes
>> are
>> >copied
>> >>>>>>>>> > into
>> >>>>>>>>> > the artifact and the development dependency is gone.
>> Furthermore you
>>
>> >>>can
>> >>>>>>>>> > make all kinds of alterations to those classes (e.g. change
>> package).
>> >>>>>>>>> >
>> >>>>>>>>> > We successfully use the maven-shade-plugin in MyFaces CODI to
>> reuse
>> >>>>>>>>> > functionaltiy between the JSF 1.2 and 2.0 modules. In
>> addition, I
>> >have
>> >>>>>>>>> > locally already used it to fix MYFACESTEST-21: I use it to get
>> the
>> >>>>>>>>> > AbstractAttributeMap and all its related classes from
>> myfaces-impl
>> to
>> >>>>>>>>> > myfaces-test. And it really works like a calm.
>> >>>>>>>>> >
>> >>>>>>>>> > However I have to be honest, one thing currently has a bug:
>> filters
>> >>are
>> >>>>>>>>> > only
>> >>>>>>>>> > applied to the binary and not also to the sources jar (see
>> >>>>>>>>> > http://jira.codehaus.org/browse/MSHADE-83), but I already
>> provided a
>> >>>>>>>>> > patch
>> >>>>>>>>> > and a test case for it, so I guess it will be fixed very soon.
>> >>>>>>>>> >
>> >>>>>>>>> > So if there are no objects, I would like to introduce the
>> >>>>>>>>> > maven-shade-plugin
>> >>>>>>>>> > on myfaces-test at first, to show you guys how awesome it is.
>> >>>>>>>>> > Afterwards,
>> >>>>>>>>> > and of course if you all like it, I would really like to use
>> it on
>> >>>>>>>>> > several
>> >>>>>>>>> > places in MyFaces. This would for example be the chance to get
>> rid
>> of
>> >>>>>>>>> > the
>> >>>>>>>>> > shared project once and for all.
>> >>>>>>>>> >
>> >>>>>>>>> > Opinions, suggestions and tomatoes are welcome!
>> >>>>>>>>>
>> >>>>>>>>> +1 on this approach. I'd like to see the *adoption* (kinda)
>> >>>>>>>>> documented, so that other (sub) projects can *learn* from your
>> efforts!
>> >>>>>>>>>
>> >>>>>>>>> RIP _shared? :)
>> >>>>>>>>>
>> >>>>>>>>> -Matthias
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> >
>> >>>>>>>>> > Regards,
>> >>>>>>>>> > Jakob
>> >>>>>>>>> >
>> >>>>>>>>> > --
>> >>>>>>>>> > Jakob Korherr
>> >>>>>>>>> >
>> >>>>>>>>> > blog: http://www.jakobk.com
>> >>>>>>>>> > twitter: http://twitter.com/jakobkorherr
>> >>>>>>>>> > work: http://www.irian.at
>> >>>>>>>>> >
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> --
>> >>>>>>>>> Matthias Wessendorf
>> >>>>>>>>>
>> >>>>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>> >>>>>>>>> sessions: http://www.slideshare.net/mwessendorf
>> >>>>>>>>> twitter: http://twitter.com/mwessendorf
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> --
>> >>>>>>>> Jakob Korherr
>> >>>>>>>>
>> >>>>>>>> blog: http://www.jakobk.com
>> >>>>>>>> twitter: http://twitter.com/jakobkorherr
>> >>>>>>>> work: http://www.irian.at
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>--
>> >>>>>>>
>> >>>>>>>Matthias Wessendorf
>> >>>>>>>
>> >>>>>>>blog: http://matthiaswessendorf.wordpress.com/
>> >>>>>>>sessions: http://www.slideshare.net/mwessendorf
>> >>>>>>>twitter: http://twitter.com/mwessendorf
>> >>>>>>>
>> >>>>>>
>> >>>>>
>> >>>>>
>> >>>>>--
>> >>>>>
>> >>>>>Jakob Korherr
>> >>>>>
>> >>>>>blog: http://www.jakobk.com
>> >>>>>twitter: http://twitter.com/jakobkorherr
>> >>>>>work: http://www.irian.at
>> >>>>>
>> >>>>
>> >>>
>> >>>
>> >>>--
>> >>>
>> >>>Jakob Korherr
>> >>>
>> >>>blog: http://www.jakobk.com
>> >>>twitter: http://twitter.com/jakobkorherr
>> >>>work: http://www.irian.at
>> >>>
>> >>
>> >
>> >
>> >--
>> >Jakob Korherr
>> >
>> >blog: http://www.jakobk.com
>> >twitter: http://twitter.com/jakobkorherr
>> >work: http://www.irian.at
>> >
>>
>>
>>
>>
>
>
> --
> Jakob Korherr
>
> blog: http://www.jakobk.com
> twitter: http://twitter.com/jakobkorherr
> work: http://www.irian.at
>

Reply via email to