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
