Hi Leo, you are getting this all wrong. Please take a look at the shade-branch, which I created, and then we can continue this discussion.
Thanks. Regards, Jakob 2010/11/8 Leonardo Uribe <lu4...@gmail.com>: > Hi > > 2010/11/8 Gerhard <gerhard.petra...@gmail.com> >> >> hi, >> i didn't talk about copying the code to the impl. module. it would be a >> normal module (similar to the shared module) which gets shadded into the >> impl. module. >> actually both approaches are very similar. so you have the same advantages >> (compared to the shared module) and it's easier to handle during the >> development process. > > Ok, but if that so, the advantage of the current configuration is we can > release > shared code without release myfaces core. If we put shared code as a > submodule > of myfaces core and we need to release tomahawk or orchestra or other > project > that uses shared code we'll need to release core first. > > regards, > > Leonardo Uribe > >> >> regards, >> gerhard >> >> http://www.irian.at >> >> Your JSF powerhouse - >> JSF Consulting, Development and >> Courses in English and German >> >> Professional Support for Apache MyFaces >> >> >> >> 2010/11/8 Leonardo Uribe <lu4...@gmail.com> >>> >>> Hi >>> >>> 2010/11/8 Gerhard <gerhard.petra...@gmail.com> >>>> >>>> again - i agree with jakob! >>>> such an >additional< all-in-one dist won't change the situation for osgi >>>> users. (for now) they just have to stick with the current jar files. >>>> @shared: >>>> the classes of the shared module would be in the impl. module, if we >>>> don’t (have to) share them with other myfaces sub-projects. >>> >>> The advantage of have shared in a separate module is we ensure all shared >>> code only depends >>> of jsf api. If we put that code inside myfaces impl, we have the risk of >>> mix code and then >>> well see ClassNotFoundException or things like that when libraries like >>> tomahawk or >>> in the future portlet bridge are used with mojarra. >>> >>> regards, >>> >>> Leonardo Uribe >>> >>>> >>>> >>>> >>>> regards, >>>> gerhard >>>> >>>> http://www.irian.at >>>> >>>> Your JSF powerhouse - >>>> JSF Consulting, Development and >>>> Courses in English and German >>>> >>>> Professional Support for Apache MyFaces >>>> >>>> >>>> >>>> 2010/11/8 Jakob Korherr <jakob.korh...@gmail.com> >>>>> >>>>> Hi, >>>>> >>>>> IMHO shared code ist just as private as myfaces-impl code. Not more, >>>>> not less. >>>>> >>>>> Adding the all-in-one-jar is not a change, but an improvement. It is >>>>> just an additional (non-OSGi-ready) distribution form of MyFaces code >>>>> and thus does not affect the problems we're having with myfaces-shared >>>>> and OSGi. >>>>> >>>>> Regards, >>>>> Jakob >>>>> >>>>> 2010/11/8 Leonardo Uribe <lu4...@gmail.com>: >>>>> > Hi >>>>> > >>>>> > 2010/11/8 Jakob Korherr <jakob.korh...@gmail.com> >>>>> >> >>>>> >> Hi, >>>>> >> >>>>> >> Last week I created a branch (see [1]) to test the shade module >>>>> >> integration of shared and also implee6 for MyFaces core. >>>>> >> Coincidentally, Leonardo committed a similar solution to MyFaces >>>>> >> core >>>>> >> trunk, however only for the implee6 integration. >>>>> >> >>>>> >> The branch at [1] uses the shade plugin to include shared and >>>>> >> implee6. >>>>> >> For shared it uses a dependency to myfaces-shared-core (NOT >>>>> >> shared-impl), which will then be shaded to org.apache.myfaces.* >>>>> >> (without the shared-package) - however this is only a prototype. To >>>>> >> make this work I had to rename all imports in myfaces-impl from >>>>> >> "shared_impl" to "shared". Everything works pretty well expect for >>>>> >> the >>>>> >> OSGi-issues mentioned by Leonardo. >>>>> >> >>>>> >> Using this branch you are able to work on MyFaces shared classes in >>>>> >> the context of MyFaces core and not having to do a whole maven build >>>>> >> when testing it, because your IDE uses shared directly as a >>>>> >> dependency. Thus it really is an improvement to what we have now and >>>>> >> we should try to fix the OSGi issues in some way to really make this >>>>> >> work. I already did some work in this direction and I think that a >>>>> >> ResourceTransformer implementation for shade that creates the >>>>> >> Manifest >>>>> >> file for OSGi is the way to go, but we certainly have to discuss >>>>> >> this >>>>> >> (maybe also with the bundle-plugin team). WDYT Leo? >>>>> >> >>>>> > >>>>> > Well, before try to do something like that (a ResourceTransformer >>>>> > implementation) >>>>> > it is good to ask if it is really necessary to do that. On a previous >>>>> > mail I >>>>> > said that >>>>> > "shared" code should be private, so there should not be used for >>>>> > users >>>>> > outside >>>>> > myfaces impl. There are exceptions (DelegateServlet), so we have to >>>>> > identify >>>>> > first >>>>> > which code could not be relocated. The effect on maven bundle plugin >>>>> > is >>>>> > shared packages are excluded from Export-Package header, but as long >>>>> > as >>>>> > users >>>>> > don't have code importing shared_impl package it is ok to ignore this >>>>> > side >>>>> > effect. >>>>> > >>>>> >> >>>>> >> However, please take a look at the branch at [1] and try to use it >>>>> >> in >>>>> >> your IDE - I think it's really great! (... and furthermore I think >>>>> >> it's much easier to understand for every myfaces-developer). >>>>> >> >>>>> >> >>>>> >> I also totally agree with Gerhard that we should provide this >>>>> >> all-in-one jar, even if it may cause problems in OSGi, because our >>>>> >> OSGi users will most certainly know that. It's really easy to do >>>>> >> this >>>>> >> using the shade plugin and it provides a very convenient way for >>>>> >> developers to use MyFaces (especially when they're not using maven). >>>>> >> As Gerhard mentioned, Mojarra will do the same and furthermore other >>>>> >> projects like e.g. Weld also provide this all-in-one solution (--> >>>>> >> weld-servlet). >>>>> >> >>>>> > >>>>> > I disagree. Our first priority should be myfaces usage in different >>>>> > environments, >>>>> > and then enhance IDE support. Only if the two previous objections can >>>>> > be >>>>> > solved, >>>>> > the change can be made. >>>>> > >>>>> > regards, >>>>> > >>>>> > Leonardo Uribe >>>>> > >>>>> >> >>>>> >> Regards, >>>>> >> Jakob >>>>> >> >>>>> >> [1] >>>>> >> >>>>> >> http://svn.apache.org/repos/asf/myfaces/core/branches/2_0_3_snapshot_shade_test/ >>>>> >> >>>>> >> 2010/11/8 Leonardo Uribe <lu4...@gmail.com>: >>>>> >> > Hi >>>>> >> > >>>>> >> > 2010/11/8 Gerhard <gerhard.petra...@gmail.com> >>>>> >> >> >>>>> >> >> hi, >>>>> >> >> @ide-support: >>>>> >> >> since you get an additional all-in-one sources jar file, it >>>>> >> >> should >>>>> >> >> work. >>>>> >> >> i've created external codi examples which use the all-in-one jar >>>>> >> >> of >>>>> >> >> codi >>>>> >> >> and the ide support works perfectly. >>>>> >> > >>>>> >> > Yes, that's true (I checked that code) but in shared you need to >>>>> >> > change >>>>> >> > the >>>>> >> > package name to org.apache.myfaces.shared_impl. >>>>> >> > >>>>> >> > Really that package renaming is questionable. Why? It exists since >>>>> >> > 1.1.x >>>>> >> > but >>>>> >> > I don't know why this is necessary. In theory, the code inside >>>>> >> > shared >>>>> >> > should >>>>> >> > be "private", but the truth is we have one class that could be >>>>> >> > consumed >>>>> >> > by >>>>> >> > users: >>>>> >> > >>>>> >> > org.apache.myfaces.shared_impl.webapp.webxml.DelegatedFacesServlet. >>>>> >> > That is the main reason why I moved the code proposed on >>>>> >> > https://issues.apache.org/jira/browse/MYFACES-2944 to myfaces-impl >>>>> >> > package. >>>>> >> > >>>>> >> >> >>>>> >> >> @osgi: >>>>> >> >> if there are restrictions, we should improve the shade plugin. >>>>> >> >> (for now: osgi users just can't use this optional all-in-one jar >>>>> >> >> file - >>>>> >> >> if >>>>> >> >> we document it, it shouldn't be a problem.) >>>>> >> > >>>>> >> > There is a discussion of this issue here: >>>>> >> > >>>>> >> > https://issues.apache.org/jira/browse/FELIX-1184 >>>>> >> > >>>>> >> > It was reported here too: >>>>> >> > >>>>> >> > http://jira.codehaus.org/browse/MSHADE-51 >>>>> >> > >>>>> >> > The issue in maven is here: >>>>> >> > >>>>> >> > http://jira.codehaus.org/browse/MNG-2258 >>>>> >> > >>>>> >> > Unfortunately, the only hack I can see to make this work correctly >>>>> >> > is >>>>> >> > create >>>>> >> > a plugin with a maven lifecycle extension, and do that is very >>>>> >> > nasty, >>>>> >> > because we need to create a plugin just to do that. >>>>> >> > >>>>> >> >> >>>>> >> >> @use-case: >>>>> >> >> we should really get rid of the shared module. >>>>> >> > >>>>> >> > I agree. First we need a more explicit plan to do it. Suggestions >>>>> >> > are >>>>> >> > welcome. >>>>> >> > >>>>> >> > regards, >>>>> >> > >>>>> >> > Leonardo Uribe >>>>> >> > >>>>> >> >> >>>>> >> >> regards, >>>>> >> >> gerhard >>>>> >> >> http://www.irian.at >>>>> >> >> >>>>> >> >> Your JSF powerhouse - >>>>> >> >> JSF Consulting, Development and >>>>> >> >> Courses in English and German >>>>> >> >> >>>>> >> >> Professional Support for Apache MyFaces >>>>> >> >> >>>>> >> >> >>>>> >> >> >>>>> >> >> 2010/11/8 Leonardo Uribe <lu4...@gmail.com> >>>>> >> >>> >>>>> >> >>> Hi >>>>> >> >>> >>>>> >> >>> Unfortunately, maven-shade-plugin has some unwanted side >>>>> >> >>> effects. >>>>> >> >>> >>>>> >> >>> - The source jar file is not updated too, so if we "shade" >>>>> >> >>> shared, the >>>>> >> >>> sources are not updated. In theory, the source jar is used by >>>>> >> >>> IDEs >>>>> >> >>> like >>>>> >> >>> Eclipse or Netbeans to show the source file of a .class. >>>>> >> >>> - It does not play well with osgi bundle plugin (the one that >>>>> >> >>> create >>>>> >> >>> manifest.mf). The problem is the manifest is generated before >>>>> >> >>> "shade", >>>>> >> >>> and >>>>> >> >>> we need the later. Really that one is a problem related to maven >>>>> >> >>> itself. >>>>> >> >>> >>>>> >> >>> The only valid use case I found where maven-shade-plugin fits >>>>> >> >>> well is >>>>> >> >>> with implee6 module, but anyway it was required to do some hacks >>>>> >> >>> to >>>>> >> >>> make >>>>> >> >>> bundle plugin works well. >>>>> >> >>> >>>>> >> >>> regards, >>>>> >> >>> >>>>> >> >>> Leonardo Uribe >>>>> >> >> >>>>> >> > >>>>> >> > >>>>> >> >>>>> >> >>>>> >> >>>>> >> -- >>>>> >> 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