myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gerhard Petracek <gerhard.petra...@gmail.com>
Subject Re: Use maven-shade-plugin to prevent duplicate code
Date Mon, 26 Jul 2010 20:29:33 GMT
for sure i vote: +1!

(way more than just 10 :) )

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces


2010/7/26 Jakob Korherr <jakob.korherr@gmail.com>

> Hehe, yeah I maybe forgot 10 "many".
>
> I can provide a wiki page for the general idea and the approach used on
> myfaces-test. Then everyone can adopt this idea and see how it works.
>
> "RIP _shared? :)"
> --> 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
>

Mime
View raw message