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

Reply via email to