myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jakob Korherr <jakob.korh...@gmail.com>
Subject Re: Use maven-shade-plugin to prevent duplicate code
Date Mon, 26 Jul 2010 20:01:25 GMT
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 <rdebusscher@gmail.com>

> 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 <matzew@apache.org> wrote:
>
>> On Mon, Jul 26, 2010 at 9:30 PM, Jakob Korherr <jakob.korherr@gmail.com>
>> 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 <matzew@apache.org>
>> >>
>> >> On Mon, Jul 26, 2010 at 8:56 PM, Jakob Korherr <
>> jakob.korherr@gmail.com>
>> >> 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

Mime
View raw message