Hi, Leo, I really get your point that we can't change this stuff. Changing SPI stuff (even just renaming packages) will break application server integation code, we all got it now..
That's why I suggested (a few mails ago, but unfortunately too vague) keeping the package names *.spi, *.spi.impl and *.config.element as is, but still moving *.spi and *.config.element to a new module called myfaces-spi. This alone will let us be able to remove shaded-impl, no code change is actually required, just moving some classes from myfaces-impl into myfaces-spi. In the end (--> the myfaces-impl jar), it will all be back in myfaces-impl again, because of shade. I will provide a new patch by tomorrow and then start a vote for it. There really is no technical reason for not committing such a solution at this point. Regards, Jakob 2011/7/11 Leonardo Uribe <lu4...@gmail.com>: > Hi > > I'll be clear and direct. What makes statements true or false are the > reasons behind it. Until this moment, you are not question the reasons > behind the reasoning proposed. > > To be short, my argumentation is we can't change for now: > > 1. Everything inside org.apache.myfaces.spi > 2. LifecycleProvided > 3. Everything inside org.apache.myfaces.config.element > > because JSF 2.1 is a maintenance release (not a mayor release) which > already has it first version (but even without a version). Do that > will create bugs on server integration code. The problem is there is > no way to detect such changes or create a proper patch from the server > side point of view without use some ugly reflection code and that > really s...cks!. > > Let it to JSF 2.2 (which is another JSR) sounds better because in that > time I think we can get rid of implee6 too in one move!. In that > version, just change the poms, and move all code to impl and that's > it. > > In conclusion, here we have a technical restriction that doesn't allow > us to move further, so we can't really make a vote because there is no > decision to make, we just can't change the code!. The idea of an API > in impl module is precisely make the "promise" that we will be nice > and do not change that stuff until the next major version. > > Unfortunately there is nothing we can do in 2.1.x branch. > > regards, > > Leonardo Uribe > > 2011/7/11 Jakob Korherr <jakob.korh...@gmail.com>: >> Hi, >> >> No, sorry Leo, they are not enough. Frankly, I don't understand why >> you are blocking this solution. It is easy, it does not break anything >> (if we do not change the package names), it is a lot more clean and we >> can get rid of the shaded-impl module. If we don't do this now, we >> will maybe have to use this ugly module for a long time.. >> >> And yes: in my opinion it is an epic fail. If you think otherwise, >> that's ok, but just because you say so and I don't does not make your >> statement true. >> >> I think we have to start a vote for this one just like we did with the >> resource-handler stuff. >> >> Regards, >> Jakob >> >> 2011/7/11 Leonardo Uribe <lu4...@gmail.com>: >>> Hi >>> >>> 2011/7/11 Jakob Korherr <jakob.korh...@gmail.com>: >>>> Hi, >>>> >>>>> 1. All classes in org.apache.myfaces.spi. >>>> >>>> I did not change anything here, just internal imports (from *.spi.impl >>>> to *.spi.util)! >>> >>> It is questionable to create .spi.util. After all, it is not supposed >>> that package be consumed by container integration code, so it should >>> be on spi.impl. >>> >>>> >>>>> 2. All classes that has to be with LifecycleProvider (@PostConstruct >>>>> annotation). Such classes should be on spi package, but note spi work >>>>> started after 2.0 release, so this should wait to a major version. >>>> >>>> Geronimo (for which we did the SPI stuff) includes MyFaces 2.0.x. Here >>>> we are talking about 2.1.x. Furthermore, one call to organize imports >>>> does the trick, so I do not see a problem here. >>> >>> Look the page of JSR-314 spec http://www.jcp.org/en/jsr/summary?id=314 >>> >>> You will notice 2.1.x is not a new JSR like the future JSR-344 (JSF >>> 2.2), and instead is tagged as "Maintenance Release 2". So, to be >>> consistent, it should be possible to change between 2.0 and 2.1 on the >>> same server. That's the most important reason to be so conservative or >>> strict with 2.1. >>> >>>> >>>>> 3. All classes on org.apache.myfaces.config.element. These classes are >>>>> an interface to manipulate faces-config.xml files with java code, and >>>>> spi interfaces provide the hooks to get them, so in theory we can add >>>>> methods there, but relocate this package to >>>>> org.apache.myfaces.spi.data is not necessary. I think the package name >>>>> is correct. >>>> >>>> OK, fine. I thought the relocation to org.apache.myfaces.spi.* would >>>> fit better, since it is the myfaces-spi module and, again, since we're >>>> talking about 2.1.x, not 2.0.x here. But if you want to keep the >>>> package-name, I have no problem with that. >>>> org.apache.myfaces.config.element is fine too, however, you may not >>>> expect it to be in the myfaces-spi module. >>>> >>>>> [...] Considering this, I think the costs >>>>> involved on the changes proposed are too big compared with the >>>>> benefits, which are very limited and almost inexistent from user point >>>>> of view. >>>> >>>> From a user point of view: maybe yes. But from a developer point of >>>> view myfaces-shaded-impl is an epic fail. I know it was an easy an >>>> fast solution at the time we got 2.1.0 out, but for the long term this >>>> has to be changed. Please think about it, you use 2.0.5 (or any other >>>> _previous_ version) in myfaces-impl-ee6 as if it was 2.1.x-SNAPSHOT. >>>> Thus you use internals of previous versions which might not even be >>>> there anymore in the current 2.1.x-SNAPSHOT. And the worst part of it: >>>> you don't even see it at build time, b/c it's a separate module and >>>> myfaces-impl-ee6 is shaded into myfaces-impl (and shade does not warn >>>> about this kind of stuff, of course). >>>> >>> >>> I know the hack done to compile 2.1 is not very clean, but it works. >>> The idea is replace 2.0.5 ref with 2.1.0 in future versions. Note >>> myfaces-shaded-impl is a module that is just for allow compile >>> myfaces-impl-ee6, and nobody else. It is not "an epic fail", because >>> it does not cause any changes on the code that cause problems. >>> >>>> Considering this, it was ok to create shaded-impl in order to get the >>>> 2.1.0 release out, but for future releases (maybe also towards 2.2.0), >>>> this must be done in another way. >>> >>> In fact, the idea is do something in 2.2.x, but that will take some >>> time, so maybe we can keep in mind those changes until get there. >>> >>>> I have to say that I won't support a >>>> 2.1.2 release including the shaded-impl module. >>> >>> I hope my arguments could be enough to convince you about the opposite. >>> >>> regards , >>> >>> Leonardo Uribe >>> >>>> >>>> Regards, >>>> Jakob >>>> >>>> 2011/7/10 Leonardo Uribe <lu4...@gmail.com>: >>>>> Hi Gerhard >>>>> >>>>> Ok, in theory the parts that we should not change, or otherwise that >>>>> will trigger a change on JEE containers are: >>>>> >>>>> 1. All classes in org.apache.myfaces.spi. >>>>> 2. All classes that has to be with LifecycleProvider (@PostConstruct >>>>> annotation). Such classes should be on spi package, but note spi work >>>>> started after 2.0 release, so this should wait to a major version. >>>>> 3. All classes on org.apache.myfaces.config.element. These classes are >>>>> an interface to manipulate faces-config.xml files with java code, and >>>>> spi interfaces provide the hooks to get them, so in theory we can add >>>>> methods there, but relocate this package to >>>>> org.apache.myfaces.spi.data is not necessary. I think the package name >>>>> is correct. >>>>> >>>>> regards, >>>>> >>>>> Leonardo Uribe >>>>> >>>>> 2011/7/9 Gerhard Petracek <gerhard.petra...@gmail.com>: >>>>>> hi leo, >>>>>> thx for checking it. >>>>>> it would be great, if you can post a list of parts (not classes) which >>>>>> would >>>>>> break. so we can discuss this topic in a more concrete manner. >>>>>> regards, >>>>>> gerhard >>>>>> http://www.irian.at >>>>>> >>>>>> Your JSF powerhouse - >>>>>> JSF Consulting, Development and >>>>>> Courses in English and German >>>>>> >>>>>> Professional Support for Apache MyFaces >>>>>> >>>>>> >>>>>> 2011/7/10 Leonardo Uribe <lu4...@gmail.com> >>>>>>> >>>>>>> Hi >>>>>>> >>>>>>> Good to know that. Unfortunately, do a change on the spi related >>>>>>> classes will break existing integration code with containers like >>>>>>> Geronimo, JBoss and others too. Considering this, I think the costs >>>>>>> involved on the changes proposed are too big compared with the >>>>>>> benefits, which are very limited and almost inexistent from user point >>>>>>> of view. >>>>>>> >>>>>>> regards, >>>>>>> >>>>>>> Leonardo Uribe >>>>>>> >>>>>>> 2011/7/8 Werner Punz <werner.p...@gmail.com>: >>>>>>> > I have no problem if you break Ext-Script, after all I program >>>>>>> > against >>>>>>> > the >>>>>>> > impl, so whatever change you do I have to patch it in my codebase >>>>>>> > anyway. >>>>>>> > Don´t feel stopped by it. >>>>>>> > >>>>>>> > Werner >>>>>>> > >>>>>>> > >>>>>>> > Am 08.07.11 18:27, schrieb Gerhard Petracek: >>>>>>> >> >>>>>>> >> hi, >>>>>>> >> >>>>>>> >> thx for reviewing the changes. >>>>>>> >> for sure we can discuss when we are going to do such changes. >>>>>>> >> however, >>>>>>> >> if ext-script is the only reason against it, we can do it right now >>>>>>> >> imo. >>>>>>> >> there is no problem with shipping a small update of ext-script and >>>>>>> >> the >>>>>>> >> user base is currently small enough to communicate this change >>>>>>> >> easily. >>>>>>> >> >>>>>>> >> regards, >>>>>>> >> gerhard >>>>>>> >> >>>>>>> >> http://www.irian.at >>>>>>> >> >>>>>>> >> Your JSF powerhouse - >>>>>>> >> JSF Consulting, Development and >>>>>>> >> Courses in English and German >>>>>>> >> >>>>>>> >> Professional Support for Apache MyFaces >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> 2011/7/8 Leonardo Uribe <lu4...@gmail.com <mailto:lu4...@gmail.com>> >>>>>>> >> >>>>>>> >> Hi >>>>>>> >> >>>>>>> >> In principle I agree with this change, but after a quick patch >>>>>>> >> review >>>>>>> >> I saw some package relocation for some classes (from >>>>>>> >> org.apache.myfaces.config.element to org.apache.myfaces.spi.data). >>>>>>> >> Those changes will break extensions scripting code. Such changes >>>>>>> >> should be done between major versions (2.2.0). Please do not >>>>>>> >> change >>>>>>> >> the package names. >>>>>>> >> >>>>>>> >> regards, >>>>>>> >> >>>>>>> >> Leonardo Uribe >>>>>>> >> >>>>>>> >> 2011/7/8 Gerhard Petracek <gerhard.petra...@gmail.com >>>>>>> >> <mailto:gerhard.petra...@gmail.com>>: >>>>>>> >> > +1 >>>>>>> >> > regards, >>>>>>> >> > gerhard >>>>>>> >> > >>>>>>> >> > http://www.irian.at >>>>>>> >> > >>>>>>> >> > Your JSF powerhouse - >>>>>>> >> > JSF Consulting, Development and >>>>>>> >> > Courses in English and German >>>>>>> >> > >>>>>>> >> > Professional Support for Apache MyFaces >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > 2011/7/8 Jakob Korherr <jakob.korh...@gmail.com >>>>>>> >> <mailto:jakob.korh...@gmail.com>> >>>>>>> >> >> >>>>>>> >> >> Hi guys, >>>>>>> >> >> >>>>>>> >> >> We currently use the shaded-impl module in core 2.1.x to >>>>>>> >> solve a >>>>>>> >> >> cyclic dependency problem. However, this introduces redundancy >>>>>>> >> and >>>>>>> >> >> complexity and may lead to some strange issues. This can be >>>>>>> >> solved by >>>>>>> >> >> the introduction of a myfaces-spi module (which is then packed >>>>>>> >> >> together with myfaces-impl, just like myfaces-impl-ee6 is). >>>>>>> >> >> >>>>>>> >> >> Please see MYFACES-3211 [1] for a detailed description of the >>>>>>> >> solution >>>>>>> >> >> and a patch for it. >>>>>>> >> >> >>>>>>> >> >> If there are no objections, I will commit this patch soon! >>>>>>> >> >> >>>>>>> >> >> Regards, >>>>>>> >> >> Jakob >>>>>>> >> >> >>>>>>> >> >> [1] https://issues.apache.org/jira/browse/MYFACES-3211 >>>>>>> >> >> >>>>>>> >> >> -- >>>>>>> >> >> 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