I think you're right. The only real solution is a nice and clean Shared 
project. Otherwise the dependencies will become very tangled.

/JK
  

Sent from my iPad

Op 26 jul. 2010 om 23:10 heeft Leonardo Uribe <[email protected]> het volgende 
geschreven:

> 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