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 >>>> >>> >>> >> >