Why not override the compiler plugin in the module to use JDK 6?

I think the whole point about the module is ease of development and this
will suffer when putting it in a separate jar.

About the manual classpath scanning or other runtime stuff. This should not
break because of JDK 6 stuff, since the bytecode should be backwards
compatible.

My 2 cents...

/JK


2010/3/11 Leonardo Uribe <lu4...@gmail.com>

> Hi
>
> I'm working with jdk 1.5 and when I tried to compile current20 branch I
> have an error. This means to create myfaces jars it should be compiled with
> jdk 1.6, because implee6 has dependencies with jars with java 1.6 specific
> code:
>
> [INFO]
> ------------------------------------------------------------------------
> [ERROR] BUILD FAILURE
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Compilation failure
>
> D:\workspace\myfaces\current20\core\implee6\src\main\java\org\apache\myfaces\ee6
> \MyFacesContainerInitializer.java:[47,-1] cannot access
> javax.servlet.ServletCon
> tainerInitializer
> bad class file: C:\Documents and
> Settings\lu4242\.m2\repository\javax\javaee-web
>
> -api\6.0\javaee-web-api-6.0.jar(javax/servlet/ServletContainerInitializer.class)
>
> class file has wrong version 50.0, should be 49.0
>
> In theory, we can't do this, because if we do, myfaces-impl has one class
> jdk 1.6 specific, and jsf 2.0 is jdk 1.5 compatible. Now, in the practice
> this class is not loaded by any part of myfaces, but maybe some program that
> tries to scan the classpath and load this class into the classpath will see
> the problem.
>
> My personal opinion is implee6 should have its own separate jar with some
> OSGi specific stuff, so if someone wants to use it it should put three jars
> on the classpath: myfaces-api, myfaces-impl, myfaces-implee6. We have a lot
> of precedences for that kind of stuff (orchestra core and core15 for
> example, tomahawk sandbox and sandbox15).
>
> I also think this code should be moved to myfaces commons, because keep it
> as a module in core project means we have to use jdk 1.6 to compile all
> artifacts and we have a plugin that checks for jdk 1.5 compatibility that
> will fail (see checkJDK profile on myfaces impl pom).
>
> Suggestions are welcome.
>
> regards,
>
> Leonardo Uribe
>
>
> 2010/3/8 Jakob Korherr <jakob.korh...@gmail.com>
>
>> Hi,
>>
>> So I committed everything. Please feel free to test it - I am curious
>> about your opinions :)
>>
>> Regards,
>> Jakob
>>
>> 2010/3/8 Jakob Korherr <jakob.korh...@gmail.com>
>>
>> Hi,
>>>
>>> Since there don't seem to be any big concerns about this, I will now
>>> commit the new submodule "implee6".
>>>
>>> Regards,
>>> Jakob
>>>
>>> 2010/3/8 Gerhard Petracek <gerhard.petra...@gmail.com>
>>>
>>> +1
>>>>
>>>> regards,
>>>> gerhard
>>>>
>>>> http://www.irian.at
>>>>
>>>> Your JSF powerhouse -
>>>> JSF Consulting, Development and
>>>> Courses in English and German
>>>>
>>>> Professional Support for Apache MyFaces
>>>>
>>>>
>>>> 2010/3/8 Werner Punz <werner.p...@gmail.com>
>>>>
>>>> +1 for that idea, the less configuration the better.
>>>>>
>>>>> Werner
>>>>>
>>>>>
>>>>> Am 07.03.10 15:44, schrieb Jakob Korherr:
>>>>>
>>>>>> I think we don't even need such a parameter, because the idea is that
>>>>>> the listener just does nothing if there are already entries for the
>>>>>> FacesServlet in web.xml!
>>>>>>
>>>>>> Regards,
>>>>>> Jakob
>>>>>>
>>>>>> 2010/3/7 Jan-Kees van Andel <jankeesvanan...@gmail.com
>>>>>> <mailto:jankeesvanan...@gmail.com>>
>>>>>>
>>>>>>
>>>>>>    Agreed, I was only thinking of one parameter: A parameter to turn
>>>>>>    the entire StartupListener off.
>>>>>>
>>>>>>    I look at it as a binary thing. Either the developer chooses to go
>>>>>>    with the flow with no custimization, OR he chooses to customize
>>>>>>    everything.
>>>>>>
>>>>>>    I.e. org.apache.myfaces.DISABLE_FACES_SERVLET_AUTODEPLOY = true
>>>>>>    (default false)
>>>>>>
>>>>>>    I think this will cover all use cases, where some may require a bit
>>>>>>    more configuration, but still work...
>>>>>>
>>>>>>    /JK
>>>>>>
>>>>>>
>>>>>>    2010/3/7 Jakob Korherr <jakob.korh...@gmail.com
>>>>>>    <mailto:jakob.korh...@gmail.com>>
>>>>>>
>>>>>>
>>>>>>        Yep!
>>>>>>
>>>>>>        We can discuss this stuff when the submodule is in place. Such
>>>>>>        things are very easy to change/configure in the
>>>>>> StartupListener.
>>>>>>
>>>>>>        However, I think we should come up with a very standard default
>>>>>>        configuration. If the user wants something different, he will
>>>>>>        have to configure the mapping himself in the web.xml just as it
>>>>>>        is now. I am not a fan of too many configuration parameters
>>>>>>        which interfere with other configuration methods.
>>>>>>
>>>>>>        Regards,
>>>>>>        Jakob
>>>>>>
>>>>>>        2010/3/7 Jan-Kees van Andel <jankeesvanan...@gmail.com
>>>>>>        <mailto:jankeesvanan...@gmail.com>>
>>>>>>
>>>>>>
>>>>>>            In other words: Convention over configuration ;-)
>>>>>>
>>>>>>            I just think it's important to pick sensible defaults and
>>>>>> to
>>>>>>            be able to turn it off, for example using a context-param.
>>>>>>
>>>>>>            For example, I think the mapping *.xhtml should also be
>>>>>>            default, but a developer must be able to turn *.xhtml off,
>>>>>>            since it's a widely used extension also outside of JSF...
>>>>>>
>>>>>>            Regards,
>>>>>>            Jan-Kees
>>>>>>
>>>>>>
>>>>>>            2010/3/7 Jakob Korherr <jakob.korh...@gmail.com
>>>>>>            <mailto:jakob.korh...@gmail.com>>
>>>>>>
>>>>>>
>>>>>>                Hi Bernd,
>>>>>>
>>>>>>                For some users it may be so ;) :D
>>>>>>
>>>>>>                Look Bernd, it's not that big thing. It's just a class
>>>>>>                and a text file. So it is by no means a problem to ship
>>>>>>                this with MyFaces Core 2. Also Mojarra does something
>>>>>>                similar too!
>>>>>>
>>>>>>                To your question: Nope! I just add the FacesServlet and
>>>>>>                the standard mappings /faces/*, *.jsf and maybe also
>>>>>>                *.faces, if there are no entries for the FacesServlet
>>>>>> in
>>>>>>                the web.xml. If a user wants something special, he do
>>>>>>                will have to configure it in his web.xml. In this
>>>>>>                scenario my StartupListener will just do nothing.
>>>>>>
>>>>>>
>>>>>>                Regards,
>>>>>>                Jakob
>>>>>>
>>>>>>                2010/3/6 Bernd Bohmann <bernd.bohm...@googlemail.com
>>>>>>                <mailto:bernd.bohm...@googlemail.com>>
>>>>>>
>>>>>>
>>>>>>                    Hello Jakob,
>>>>>>
>>>>>>                    do you really think adding an other dependency is a
>>>>>>                    real problem?
>>>>>>                    How do you configure prefix or suffix mapping? For
>>>>>>                    each possible
>>>>>>                    configuration option an own impl version?
>>>>>>
>>>>>>                    Regards
>>>>>>
>>>>>>                    Bernd
>>>>>>
>>>>>>
>>>>>>                    On Sat, Mar 6, 2010 at 4:48 PM, Jakob Korherr
>>>>>>                    <jakob.korh...@gmail.com
>>>>>>                    <mailto:jakob.korh...@gmail.com>> wrote:
>>>>>>                     > Hi Bernd,
>>>>>>                     >
>>>>>>                     > If this module wouldn't be a part of myfaces
>>>>>>                    core, the users still would
>>>>>>                     > have to configure something to run their
>>>>>>                    MyFaces-2 apps in a EE6 container
>>>>>>                     > (e.g. they'd have to include myfaces commons),
>>>>>>                    which is not the target. The
>>>>>>                     > target is to get rid of any unnecessary
>>>>>>                    configuration to make the
>>>>>>                     > development process easier!
>>>>>>                     >
>>>>>>                     > Regards,
>>>>>>                     > Jakob
>>>>>>                     >
>>>>>>                     > 2010/3/6 Bernd Bohmann
>>>>>>                    <bernd.bohm...@googlemail.com
>>>>>>                    <mailto:bernd.bohm...@googlemail.com>>
>>>>>>
>>>>>>                     >>
>>>>>>                     >> Hello Jakob,
>>>>>>                     >>
>>>>>>                     >> I'm not really sure that this feature should be
>>>>>>                    part of myfaces-core.
>>>>>>                     >> Maybe myfaces-commons would be a better place.
>>>>>>                    But we can change this
>>>>>>                     >> later.
>>>>>>                     >>
>>>>>>                     >> +1 on commiting the module.
>>>>>>                     >>
>>>>>>                     >> Regards
>>>>>>                     >>
>>>>>>                     >> Bernd
>>>>>>                     >>
>>>>>>                     >> On Sat, Mar 6, 2010 at 4:32 PM, Jakob Korherr
>>>>>>                    <jakob.korh...@gmail.com
>>>>>>                    <mailto:jakob.korh...@gmail.com>>
>>>>>>
>>>>>>                     >> wrote:
>>>>>>                     >> > Hi Jan-Kees,
>>>>>>                     >> >
>>>>>>                     >> > Great :)
>>>>>>                     >> >
>>>>>>                     >> > I am currently testing on Tomcat, Jetty,
>>>>>>                    GlassFish v3 and JBoss 6!
>>>>>>                     >> >
>>>>>>                     >> > Regards,
>>>>>>                     >> > Jakob
>>>>>>                     >> >
>>>>>>                     >> > 2010/3/6 Jan-Kees van Andel
>>>>>>                    <jankeesvanan...@gmail.com
>>>>>>                    <mailto:jankeesvanan...@gmail.com>>
>>>>>>
>>>>>>                     >> >>
>>>>>>                     >> >> Hey,
>>>>>>                     >> >>
>>>>>>                     >> >> If it works on Jetty and Tomcat, I'd say +1
>>>>>>                    on committing the module.
>>>>>>                     >> >>
>>>>>>                     >> >> I can't think of big issues with committing
>>>>>>                    it as a separate module.
>>>>>>                     >> >> And
>>>>>>                     >> >> we can always revert if we have to.
>>>>>>                     >> >>
>>>>>>                     >> >> Cool, can't wait to check it out! On what
>>>>>>                    appserver are you testing
>>>>>>                     >> >> this
>>>>>>                     >> >> stuff Jakob?
>>>>>>                     >> >>
>>>>>>                     >> >> Regards,
>>>>>>                     >> >> Jan-Kees
>>>>>>                     >> >>
>>>>>>                     >> >>
>>>>>>                     >> >> 2010/3/6 Jakob Korherr
>>>>>>                    <jakob.korh...@gmail.com
>>>>>>                    <mailto:jakob.korh...@gmail.com>>
>>>>>>
>>>>>>                     >> >>>
>>>>>>                     >> >>> Hi guys,
>>>>>>                     >> >>>
>>>>>>                     >> >>> I managed to introduce the core submodule
>>>>>>                    "implee6" on my local
>>>>>>                     >> >>> machine.
>>>>>>                     >> >>> This new submodule includes Java EE 6
>>>>>>                    dependencies and thus you can
>>>>>>                     >> >>> use
>>>>>>                     >> >>> Servlet API 3.0 and other new things in it.
>>>>>>                     >> >>>
>>>>>>                     >> >>> When building MyFaces, this new submodule
>>>>>> is
>>>>>>                    built before the normal
>>>>>>                     >> >>> impl
>>>>>>                     >> >>> submodule. Then the .class and the .java
>>>>>>                    files are "injected" into the
>>>>>>                     >> >>> impl-build. This is very similar to how
>>>>>>                    shared_impl is included in the
>>>>>>                     >> >>> myfaces-impl build at the moment, but
>>>>>>                    without recompilation.
>>>>>>                     >> >>>
>>>>>>                     >> >>> In this way we are able to use the new
>>>>>>                    services approach of Java EE 6
>>>>>>                     >> >>> to
>>>>>>                     >> >>> get rid of the Faces Servlet entries in
>>>>>>                    web.xml, because in any Java
>>>>>>                     >> >>> EE 6
>>>>>>                     >> >>> container we can configure this dynamically
>>>>>>                    at startup (see
>>>>>>                     >> >>> MYFACES-2579 for
>>>>>>                     >> >>> details). This also works fantastically on
>>>>>>                    my local machine - it's
>>>>>>                     >> >>> really
>>>>>>                     >> >>> cool!
>>>>>>                     >> >>>
>>>>>>                     >> >>> Also with this method we are still Java EE
>>>>>> 5
>>>>>>                    complaint, because the EE
>>>>>>                     >> >>> 6
>>>>>>                     >> >>> classes just won't get loaded in a non EE 6
>>>>>>                    environment, because there
>>>>>>                     >> >>> are
>>>>>>                     >> >>> no dependencies from impl or shared to
>>>>>> them.
>>>>>>                    They are only called (and
>>>>>>                     >> >>> loaded) by a Java EE 6 container via the
>>>>>>                    services definition.
>>>>>>                     >> >>>
>>>>>>                     >> >>> Furthermore I noticed that the Mojarra guys
>>>>>>                    also include a similar
>>>>>>                     >> >>> solution to this in their newest build!
>>>>>>                     >> >>>
>>>>>>                     >> >>> Now, before I commit something of this, I
>>>>>>                    wanted to ask if there are
>>>>>>                     >> >>> any
>>>>>>                     >> >>> objections with this proposal. If so,
>>>>>> please
>>>>>>                    tell me your concerns!
>>>>>>                     >> >>>
>>>>>>                     >> >>> Regards,
>>>>>>                     >> >>> Jakob
>>>>>>                     >> >>
>>>>>>                     >> >
>>>>>>                     >> >
>>>>>>                     >
>>>>>>                     >
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to