great! thx jakob & mark! +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/11 Jakob Korherr <[email protected]> > Hi, > > > right - there are no entries in the manifest. they will be generated for > the separated osgi bundle/s during the build (based on the build config). > > Jep! That was the idea in the first place (look at the branch and > you'll see no bundle plugin in myfaces-api or myfaces-impl, but in > myfaces-bundle). > > @Leo: From my point of view, the branch is complete. In addition, Mark > committed my patch for MJAVADOC-320, thus the javadoc generation does > already work too (if you use the latest 2.8.1-SNAPSHOT of the > javadoc-plugin). > > Here is a short summary of the proposed changes: > > - remove felix bundle plugin executions from myfaces-api and > myfaces-impl (we have myfaces-bundle for OSGi). > - use maven-shade-plugin with package relocation (shared to > shared_impl) in myfaces-impl instead of > a) ant-task to rename source from shared to shared_impl > (myfaces-shared-impl project) > b) dependency plugin to unpack shared-impl-sources.jar in > myfaces-impl and build-helper-plugin to add these sources as a new > source folder > - use maven-javadoc-plugin with includeSourceDependencies=true for > shared (and impl-ee6) in order to include the javadocs of shared in > the myfaces-impl javadocs > > These changes have the following implications: > > - all imports of myfaces-shared code in myfaces-impl will go to > org.apache.myfaces.shared.* instead of > org.apache.myfaces.shared_impl.*, because relocation is done on > class-file-basis instead of source-file-basis. > - myfaces-shared-core will be a direct dependency of myfaces-impl at > development time, thus enabling hot-deployments,... when changing > stuff in shared at development time. > - myfaces-shared-impl project will be obsolete (b/c - as already > mentioned - myfaces-impl uses shared-core instead of shared-impl). > > > If there are no objections, I will merge in the changes from the branch > soon! > > Regards, > Jakob > > 2011/7/8 Leonardo Uribe <[email protected]>: > > Hi Gerhard > > > > Ok, now that part has sense. > > > > There are still some things to check before apply the change. Please > > let me know when all code is on the branch and I'll do a final in-deep > > check. > > > > regards, > > > > Leonardo Uribe > > > > 2011/7/8 Gerhard Petracek <[email protected]>: > >> hi leo, > >> right - there are no entries in the manifest. they will be generated for > the > >> separated osgi bundle/s during the build (based on the build config). > >> 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 <[email protected]> > >>> > >>> Hi > >>> > >>> Ok, I agree it is not a problem, but if that so, shouldn't we remove > >>> OSGi entries on the manifests in myfaces-api and impl jars? just to > >>> prevent possible confusions about that. > >>> > >>> regards, > >>> > >>> Leonardo Uribe > >>> > >>> 2011/7/8 Gerhard Petracek <[email protected]>: > >>> > +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 Mark Struberg <[email protected]> > >>> >> > >>> >> Leo, SpringDM does much more work usually to tweak something for > their > >>> >> needs! > >>> >> They can just use the myfaces-bundle.jar as each and every other > OSGi > >>> >> user > >>> >> does too. > >>> >> > >>> >> What I meant was more: we shall _not_ do something ugly just to make > >>> >> OSGi > >>> >> happy ^^ > >>> >> > >>> >> So using the maven-shade-plugin is perfectly fine and will be a big > >>> >> benefit for cleaning up the shared project! > >>> >> > >>> >> LieGrue, > >>> >> strub > >>> >> > >>> >> --- On Fri, 7/8/11, Leonardo Uribe <[email protected]> wrote: > >>> >> > >>> >> > From: Leonardo Uribe <[email protected]> > >>> >> > Subject: Re: Use maven-shade-plugin to prevent duplicate code - > >>> >> > revisited > >>> >> > To: "MyFaces Development" <[email protected]> > >>> >> > Date: Friday, July 8, 2011, 3:20 PM > >>> >> > Hi > >>> >> > > >>> >> > I don't think the OSGi mention is off-topic. In theory it > >>> >> > is possible > >>> >> > to setup myfaces-api and myfaces-impl jars in a OSGi > >>> >> > container using > >>> >> > SpringDM. The changes proposed just prevents that possible > >>> >> > setup to > >>> >> > work, but that one was the first known successful > >>> >> > environment to use. > >>> >> > Note in this case the are no problems with FactoryFinder, > >>> >> > because > >>> >> > Spring DM provide a thread context classloader (TCCL) that > >>> >> > fix that. > >>> >> > > >>> >> > The changes proposed impose the restriction that anyone who > >>> >> > wants to > >>> >> > use OSGi should use myfaces-bundle jar instead. But from > >>> >> > other point > >>> >> > of view it is clear that in such environment users could > >>> >> > want to use > >>> >> > mojarra api and myfaces impl, even if that is not really > >>> >> > possible. > >>> >> > > >>> >> > Note the previous arguments are questionable of course, > >>> >> > because in > >>> >> > practice people will use myfaces-bundle jar, keeping things > >>> >> > simple > >>> >> > because you have to deal only with one bundle. So it does > >>> >> > not suppose > >>> >> > a problem, just a "side effect" to keep in mind. > >>> >> > > >>> >> > I think it is required to specify in more details which are > >>> >> > the "side > >>> >> > effects" of the changes proposed. Note on a previous mail i > >>> >> > said "... > >>> >> > I haven't look the code provided in deep ...", but I guess > >>> >> > the patch > >>> >> > proposed will prevent @JSFWebConfigParam annotations to be > >>> >> > scanned for > >>> >> > myfaces builder plugin and consequently break this > >>> >> > generated site > >>> >> > page: > >>> >> > > >>> >> > http://myfaces.apache.org/core20/myfaces-impl/webconfig.html > >>> >> > http://myfaces.apache.org/core21/myfaces-impl/webconfig.html > >>> >> > > >>> >> > I don't see very clear the "benefits" of the change. I > >>> >> > suppose it > >>> >> > enhance debugging in some way, but is that true? can I do a > >>> >> > change on > >>> >> > shared, and do not have to recompile to see the change? If > >>> >> > I set a > >>> >> > break point on shared-core, the debugger will stop there? I > >>> >> > would like > >>> >> > to see a strong (and maybe heavier and tedious but > >>> >> > necessary) > >>> >> > argumentation before do the change. > >>> >> > > >>> >> > regards, > >>> >> > > >>> >> > Leonardo Uribe > >>> >> > > >>> >> > 2011/7/8 Gerhard Petracek <[email protected]>: > >>> >> > > hi mark, > >>> >> > > that's a bit off-topic ;) we already (have to) provide > >>> >> > osgi bundles. we just > >>> >> > > continue to do the same with the shade-plugin. > >>> >> > > 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 Mark Struberg <[email protected]> > >>> >> > >> > >>> >> > >> Hi folks! > >>> >> > >> > >>> >> > >> There are 2 problems with JSF under OSGi > >>> >> > >> > >>> >> > >> a) OSGi is in reality a _big_ mess and not really > >>> >> > worth the troubles ;) > >>> >> > >> It _should_ make it possible to elegantly switch > >>> >> > implementations, but in > >>> >> > >> practice you need to import/export all packages > >>> >> > explicitly, even those which > >>> >> > >> are only used indirectly. > >>> >> > >> > >>> >> > >> b) the design of the JSF-api could be more clear > >>> >> > with separation (hey, > >>> >> > >> it's 10 years old!). It is not possible to use a > >>> >> > MyFaces-impl with a > >>> >> > >> mojarra-api and vice versa, because methods like > >>> >> > >> FacesContext#getCurrentInstance() (and similar) > >>> >> > access impl classes from the > >>> >> > >> API package. This makes it pretty hard to work > >>> >> > OSGi. > >>> >> > >> > >>> >> > >> LieGrue, > >>> >> > >> strub > >>> >> > >> > >>> >> > >> --- On Fri, 7/8/11, Jakob Korherr <[email protected]> > >>> >> > wrote: > >>> >> > >> > >>> >> > >> > From: Jakob Korherr <[email protected]> > >>> >> > >> > Subject: Re: Use maven-shade-plugin to > >>> >> > prevent duplicate code - > >>> >> > >> > revisited > >>> >> > >> > To: "MyFaces Development" <[email protected]> > >>> >> > >> > Date: Friday, July 8, 2011, 1:09 PM > >>> >> > >> > Hi Leo, > >>> >> > >> > > >>> >> > >> > Yes, I remember that you did some work > >>> >> > related to this > >>> >> > >> > stuff. Some > >>> >> > >> > comments about your problems: > >>> >> > >> > > >>> >> > >> > 1) If you use myfaces-impl, the packages > >>> >> > really are > >>> >> > >> > *.shared_impl.* > >>> >> > >> > (shade does the relocation on the classes). > >>> >> > But a part of > >>> >> > >> > this > >>> >> > >> > statement is still true - we need to check > >>> >> > config files > >>> >> > >> > with > >>> >> > >> > references to shared and shared_impl. > >>> >> > >> > > >>> >> > >> > 2) That's not true. We solved this problem in > >>> >> > CODI, as > >>> >> > >> > described. > >>> >> > >> > Please take a look at the code ;) > >>> >> > >> > > >>> >> > >> > 3) We don't need to execute felix bundle > >>> >> > plugin directly > >>> >> > >> > in > >>> >> > >> > myfaces-impl, b/c it won't work in an OSGi > >>> >> > environment > >>> >> > >> > anyway (see > >>> >> > >> > e.g. FactoryFinder problems). We have > >>> >> > myfaces-bundle for > >>> >> > >> > this matter! > >>> >> > >> > > >>> >> > >> > Regards, > >>> >> > >> > Jakob > >>> >> > >> > > >>> >> > >> > 2011/7/7 Leonardo Uribe <[email protected]>: > >>> >> > >> > > Hi > >>> >> > >> > > > >>> >> > >> > > I haven't look the code provided in > >>> >> > deep, but long > >>> >> > >> > time ago I tried > >>> >> > >> > > it. In that time I saw the following > >>> >> > problems: > >>> >> > >> > > > >>> >> > >> > > 1. There are some classes on shared that > >>> >> > are used > >>> >> > >> > outside it. For > >>> >> > >> > > example, see > >>> >> > >> > > >>> >> > org.apache.myfaces.shared.webapp.webxml.DelegatedFacesServlet. > >>> >> > >> > > We need to detect all similar cases and > >>> >> > move those > >>> >> > >> > classes to > >>> >> > >> > > myfaces-impl, but renaming shared with > >>> >> > shared-impl, or > >>> >> > >> > just create > >>> >> > >> > > classes that extends from the ones in > >>> >> > shared, to > >>> >> > >> > preserve backward > >>> >> > >> > > behavior. In theory, the affected > >>> >> > packages are: > >>> >> > >> > > > >>> >> > >> > > > >>> >> > org.apache.myfaces.shared_impl.webapp.webxml > >>> >> > >> > > > >>> >> > org.apache.myfaces.shared_impl.taglib > >>> >> > >> > > > >>> >> > org.apache.myfaces.shared_impl.taglib.core > >>> >> > >> > > > >>> >> > >> > > 2. Generated artifacts (-sources.jar, > >>> >> > -javadoc.jar) > >>> >> > >> > has problems. It > >>> >> > >> > > is clear javadoc and source jars will > >>> >> > not have > >>> >> > >> > shared-impl. > >>> >> > >> > > 3. shade plugin and felix maven bundle > >>> >> > plugin does not > >>> >> > >> > play well. By > >>> >> > >> > > default bundle plugin is executed before > >>> >> > shade plugin, > >>> >> > >> > but what you > >>> >> > >> > > want is the opposite, so the information > >>> >> > on > >>> >> > >> > MANIFEST.MF could be > >>> >> > >> > > generated taking into account all > >>> >> > classes. Note if we > >>> >> > >> > solve 1, this > >>> >> > >> > > should not be a problem, because classes > >>> >> > inside shared > >>> >> > >> > are myfaces > >>> >> > >> > > internals (remember why spi interfaces > >>> >> > are on impl > >>> >> > >> > package and not in > >>> >> > >> > > shared). > >>> >> > >> > > > >>> >> > >> > > I'll keep an eye on the resulting work. > >>> >> > >> > > > >>> >> > >> > > regards, > >>> >> > >> > > > >>> >> > >> > > Leonardo Uribe > >>> >> > >> > > > >>> >> > >> > > 2011/7/7 Gerhard Petracek <[email protected]>: > >>> >> > >> > >> hi jakob, > >>> >> > >> > >> great - thx! > >>> >> > >> > >> 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/7 Jakob Korherr <[email protected]> > >>> >> > >> > >>> > >>> >> > >> > >>> Hi guys, > >>> >> > >> > >>> > >>> >> > >> > >>> I committed a working draft to > >>> >> > the branch at > >>> >> > >> > [1]. However, there are > >>> >> > >> > >>> some issues with the > >>> >> > javadoc-plugin (see [2]) > >>> >> > >> > that must be fixed first > >>> >> > >> > >>> in order to get the expected > >>> >> > javadoc. The > >>> >> > >> > other stuff (shading of > >>> >> > >> > >>> shared and impl-ee6) already > >>> >> > works as > >>> >> > >> > expected! > >>> >> > >> > >>> > >>> >> > >> > >>> Feel free to try it out > >>> >> > yourself. Comments and > >>> >> > >> > suggestions are welcome! > >>> >> > >> > >>> > >>> >> > >> > >>> Regards, > >>> >> > >> > >>> Jakob > >>> >> > >> > >>> > >>> >> > >> > >>> [1] > >>> >> > >> > >>> > >>> >> > >> > >>> > >>> >> > >> > >>> > >>> >> > >> > >>> > https://svn.apache.org/repos/asf/myfaces/core/branches/2.0.8_shade_prototype/ > >>> >> > >> > >>> [2] https://jira.codehaus.org/browse/MJAVADOC-320 > >>> >> > >> > >>> > >>> >> > >> > >>> 2011/7/7 Werner Punz <[email protected]>: > >>> >> > >> > >>> > Excellent news ++1, the > >>> >> > shared as we have > >>> >> > >> > it is a bad design decision I > >>> >> > >> > >>> > hope > >>> >> > >> > >>> > shade will get rid of our > >>> >> > debugging > >>> >> > >> > issues we have with our current > >>> >> > >> > >>> > shared. > >>> >> > >> > >>> > > >>> >> > >> > >>> > > >>> >> > >> > >>> > Werner > >>> >> > >> > >>> > > >>> >> > >> > >>> > > >>> >> > >> > >>> > Am 07.07.11 11:04, schrieb > >>> >> > Jakob > >>> >> > >> > Korherr: > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> Hi Gerhard, > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> Thx for (re-)opening > >>> >> > this thread. I > >>> >> > >> > already created a jira issue [1] > >>> >> > >> > >>> >> and a core-branch [2] > >>> >> > for > >>> >> > >> > prototyping. > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> Currently I am > >>> >> > struggling a little > >>> >> > >> > bit with the javadoc-plugin, but > >>> >> > >> > >>> >> this stuff should be > >>> >> > fixed soon > >>> >> > >> > (maybe even today). > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> I'll let you guys know > >>> >> > when I am done > >>> >> > >> > with the configuration, so that > >>> >> > >> > >>> >> you can try it out > >>> >> > yourselves! > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> Regards, > >>> >> > >> > >>> >> Jakob > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> [1] > https://issues.apache.org/jira/browse/MYFACES-3205 > >>> >> > >> > >>> >> [2] > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> > https://svn.apache.org/repos/asf/myfaces/core/branches/2.0.8_shade_prototype/ > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> 2011/7/7 Gerhard > >>> >> > Petracek<[email protected]>: > >>> >> > >> > >>> >>> > >>> >> > >> > >>> >>> hi @ all, > >>> >> > >> > >>> >>> the goal (as we > >>> >> > discussed before) > >>> >> > >> > is to get rid of the shared-impl > >>> >> > >> > >>> >>> module > >>> >> > >> > >>> >>> and move to the > >>> >> > shade-plugin for > >>> >> > >> > maven. > >>> >> > >> > >>> >>> issues with javadoc > >>> >> > and osgi > >>> >> > >> > bundles prevented us from doing this > >>> >> > >> > >>> >>> step. > >>> >> > >> > >>> >>> however, with codi > >>> >> > v1 we have a > >>> >> > >> > project(-configuration) which fixes > >>> >> > >> > >>> >>> all > >>> >> > >> > >>> >>> the > >>> >> > >> > >>> >>> issues we had with > >>> >> > the > >>> >> > >> > shade-plugin. > >>> >> > >> > >>> >>> -> imo we can > >>> >> > (and should) > >>> >> > >> > use it also for myfaces-core. > >>> >> > >> > >>> >>> regards, > >>> >> > >> > >>> >>> gerhard > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> > >>> >> > >> > >>> >> > >>> >> > >> > >>> > > >>> >> > >> > >>> > > >>> >> > >> > >>> > > >>> >> > >> > >>> > >>> >> > >> > >>> > >>> >> > >> > >>> > >>> >> > >> > >>> -- > >>> >> > >> > >>> 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 >
