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