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 >
