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 >
