Return-Path: Delivered-To: apmail-myfaces-dev-archive@www.apache.org Received: (qmail 58948 invoked from network); 5 Aug 2010 16:58:37 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 5 Aug 2010 16:58:37 -0000 Received: (qmail 62407 invoked by uid 500); 5 Aug 2010 16:58:37 -0000 Delivered-To: apmail-myfaces-dev-archive@myfaces.apache.org Received: (qmail 62374 invoked by uid 500); 5 Aug 2010 16:58:36 -0000 Mailing-List: contact dev-help@myfaces.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "MyFaces Development" Delivered-To: mailing list dev@myfaces.apache.org Received: (qmail 62367 invoked by uid 99); 5 Aug 2010 16:58:36 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Aug 2010 16:58:36 +0000 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jankeesvanandel@gmail.com designates 209.85.216.53 as permitted sender) Received: from [209.85.216.53] (HELO mail-qw0-f53.google.com) (209.85.216.53) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Aug 2010 16:58:32 +0000 Received: by qwb7 with SMTP id 7so2040148qwb.12 for ; Thu, 05 Aug 2010 09:58:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=WRdBATm0/oga2Wf20NseSTgy7EY440hCw25SdjEvGM4=; b=Izof5DykNcIaTEBOXrBurb9WYtugzB/iSOw7coYku5K3ePfO40nH06l8nUGFKCd4Rz FjExFxEs4y4s/vqRcmbPZ9C1QDB9v1EnNwMhOmAJ/PLeJG67gvLQaE27VFBHAk7loRBQ WRJ7tZVDh89Rfn6Nf4/g+aJAg3IShcNmozdAk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=bTAkwtSRIpdqQsVdKDlKCQbDLUu2vk5CahM6c3CJ11eWHrfyDotr2bxm2kQhRmMfC9 ItgHMRlVTOXrZHaiLM+VQ0cCpjHu4qDJ7S2iGIVZ6/CoQOXVbKZFjHur4yAMxt1zYP6j fOO6z020G4sO6YdYaEjQIIfVIG8E/WNYy/GXU= MIME-Version: 1.0 Received: by 10.224.2.147 with SMTP id 19mr5085367qaj.58.1281027491640; Thu, 05 Aug 2010 09:58:11 -0700 (PDT) Received: by 10.229.82.6 with HTTP; Thu, 5 Aug 2010 09:58:11 -0700 (PDT) In-Reply-To: <20100805124120.fest0sz05c84wcwk@webmail.corp.redhat.com> References: <20100804144231.2i520wbdw0csowc8@webmail.corp.redhat.com> <20100805075455.205j5l4ao0g40skw@webmail.corp.redhat.com> <20100805124120.fest0sz05c84wcwk@webmail.corp.redhat.com> Date: Thu, 5 Aug 2010 18:58:11 +0200 Message-ID: Subject: Re: MyFaces shipping with JBoss AS6? From: Jan-Kees van Andel To: MyFaces Development Content-Type: multipart/alternative; boundary=0015175ca840963782048d167444 --0015175ca840963782048d167444 Content-Type: text/plain; charset=ISO-8859-1 MyFaces has an AnnotationConfigurator [1] which scans the classpath using a simple bytecode scanning mechanism [2] (comparable with the one in Javassist). It's pretty fast, but it's true that classes might be scanned twice. Regards, Jan-Kees [1] http://svn.apache.org/repos/asf/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/AnnotationConfigurator.java [2] http://svn.apache.org/repos/asf/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/annotation/_ClassByteCodeAnnotationFilter.java 2010/8/5 > Quoting David Jencks : > > I haven't and wont look at the mojarra code but I think you are looking >> for >> >> org.apache.myfaces.config.annotation.LifecycleProvider >> >> > Looks like that takes care of spec section 5.4 (injection, @PreDestroy, > @PostConstruct). > > How do you deal with section 11.5? This is for finding resource > annotations like @ManagedBean or @FacesValidator. I'm assuming that MyFaces > does this on its own, but if so it would mean that a lot of stuff gets > scanned multiple times by various components like Tomcat. > > Stan > > > Geronimo has been trying to get everyone to standardize on this style of >> interface as it lets the implementor support constructor injection >> transparently. >> >> Geronimo's implementations of this use xbean-reflect which provides a >> handy way to stuff in all the properties and get a fully configured object >> back. >> >> thanks >> david jencks >> >> >> On Aug 5, 2010, at 5:12 AM, Matthias Wessendorf wrote: >> >> Somehow I think there was already work/discussion about it, based on a >>> Tomcat interface. >>> It for sure does bring back some fragile memory. Let me think... >>> >>> On Thu, Aug 5, 2010 at 2:09 PM, Matthias Wessendorf >>> wrote: >>> >>>> Well, looking at the RI is for sure not OK. >>>> >>>> I didn't see a problem with the previous provided links (the JBoss >>>> code), however >>>> I have not opened any of the provided links yet. >>>> >>>> -Matthias >>>> >>>> On Thu, Aug 5, 2010 at 1:54 PM, wrote: >>>> >>>>> That's OK. I guess I can do the SPI implementations on my end but it >>>>> might >>>>> not make it into JBoss AS6 GA. Let's concentrate on the MyFaces SPI's >>>>> for >>>>> now. How does MyFaces handle the SPI's like Mojarra has? I'm sure >>>>> it's OK >>>>> to look at Mojarra code since it's GPL2, right? If not, you can look >>>>> at >>>>> JavaDoc. We need something similar to: >>>>> >>>>> com.sun.faces.spi.InjectionProvider >>>>> >>>>> https://mojarra.dev.java.net/source/browse/mojarra/trunk/jsf-ri/src/main/java/com/sun/faces/spi/InjectionProvider.java >>>>> >>>>> com.sun.faces.spi.AnnotationProvider >>>>> >>>>> https://mojarra.dev.java.net/source/browse/mojarra/trunk/jsf-ri/src/main/java/com/sun/faces/spi/AnnotationProvider.java >>>>> >>>>> Stan >>>>> >>>>> Quoting Matthias Wessendorf : >>>>> >>>>> At Apache we can not have code that contains (L)GPL code; or depends >>>>>> on >>>>>> it. >>>>>> >>>>>> We had discussion(s) about this in the past. The below link contains >>>>>> references >>>>>> to other (Apache) documents: >>>>>> >>>>>> http://markmail.org/message/qtc4g6vsracgzbok >>>>>> >>>>>> -Matthias >>>>>> >>>>>> On Thu, Aug 5, 2010 at 9:55 AM, Jan-Kees van Andel >>>>>> wrote: >>>>>> >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> Great news! It would be very nice if JBoss ships with MyFaces 2. This >>>>>>> also >>>>>>> opens up possibilities to do some enhancements to increase developer >>>>>>> productivity in JBoss, like better resource reloading and so on. Or >>>>>>> doing >>>>>>> some things more efficient by plugging into the JBoss infrastructure. >>>>>>> Just >>>>>>> thinking out loud... :) >>>>>>> >>>>>>> One thing about the JBoss SVN link Stan sent. I took a quick peek at >>>>>>> the >>>>>>> license header in a Java file and saw that it's LGPL licensed. AFAIK, >>>>>>> this >>>>>>> is not compatible with ASL, so I suggest to not look at the code >>>>>>> while >>>>>>> implementing the stuff Stan asked for. >>>>>>> >>>>>>> WDYT? >>>>>>> >>>>>>> Regards, >>>>>>> Jan-Kees >>>>>>> >>>>>>> >>>>>>> 2010/8/5 Matthias Wessendorf >>>>>>> >>>>>>>> >>>>>>>> Hello Stan, >>>>>>>> >>>>>>>> welcome back. We do understand that you can not make any promise on >>>>>>>> that >>>>>>>> topic. >>>>>>>> The fact that some folks at JBoss are thinking about shipping >>>>>>>> MyFaces >>>>>>>> (as an alternative option) >>>>>>>> is a good news for this entire community here. Especially it is a >>>>>>>> great motivation for the >>>>>>>> folks that did the main work on ensuring Apache MyFaces 2.x is a >>>>>>>> great >>>>>>>> success. >>>>>>>> >>>>>>>> On the missing pieces: I am sure that there will be some interested >>>>>>>> in >>>>>>>> working on them. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Matthias Wessendorf >>>>>>>> PMC Chair Apache MyFaces >>>>>>>> >>>>>>>> On Wed, Aug 4, 2010 at 8:42 PM, wrote: >>>>>>>> >>>>>>>>> Hi guys, >>>>>>>>> >>>>>>>>> Would you like to see MyFaces Core ship with JBoss AS6? If so, >>>>>>>>> read >>>>>>>>> on. >>>>>>>>> >>>>>>>>> If you've been around MyFaces awhile, you probably remember that >>>>>>>>> JBoass >>>>>>>>> AS >>>>>>>>> used to ship with MyFaces instead of Mojarra. It was regrettable, >>>>>>>>> but >>>>>>>>> at >>>>>>>>> the time Mojarra was far ahead spec-wise and the powers that be >>>>>>>>> decided >>>>>>>>> my >>>>>>>>> time would be better spent integrating Mojarra instead of improving >>>>>>>>> MyFaces. >>>>>>>>> >>>>>>>>> However, with JBoss AS6 M4, this is no longer an "either or" >>>>>>>>> proposition. >>>>>>>>> Both MyFaces and Mojarra can live side-by-side. The application >>>>>>>>> can >>>>>>>>> decide >>>>>>>>> which implementation to use: >>>>>>>>> http://community.jboss.org/wiki/JSFonJBossAS6 >>>>>>>>> >>>>>>>>> What's more, changing the default JSF implementation for AS6 is >>>>>>>>> just a >>>>>>>>> matter of changing the defaultJSFConfig property in an XML file. >>>>>>>>> >>>>>>>>> I've talked internally at JBoss about adding MyFaces to the JBoss >>>>>>>>> AS >>>>>>>>> community distribution. Some were for it, and some were very, very >>>>>>>>> for >>>>>>>>> it. >>>>>>>>> Nobody so far is against it. >>>>>>>>> >>>>>>>>> The good part is that I don't think it's a lot of work. It's >>>>>>>>> probably >>>>>>>>> just >>>>>>>>> three or four classes that implement SPI's that I'm guessing >>>>>>>>> MyFaces >>>>>>>>> already >>>>>>>>> has. >>>>>>>>> >>>>>>>>> So this is where the MyFaces Dev group comes in. MyFaces Core 2.0 >>>>>>>>> will >>>>>>>>> run >>>>>>>>> OK on JBoss AS6 right now. However, there is some integration work >>>>>>>>> that >>>>>>>>> is >>>>>>>>> needed for full JEE5 and JEE6 compliance. We need: >>>>>>>>> * An injection provider SPI similar to Mojarra's >>>>>>>>> com.sun.faces.spi.InjectionProvider. >>>>>>>>> * The JBoss/MyFaces implementation of the SPI. I expect this will >>>>>>>>> be >>>>>>>>> very >>>>>>>>> similar to >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> org.jboss.web.jsf.integration.injection.JBossDelegatingInjectionProvider. >>>>>>>>> * An AnnotationProvider SPI similar to Mojarra's >>>>>>>>> com.sun.faces.spi.AnnotationProvider. >>>>>>>>> * A JBoss/MyFaces implementation of the SPI similar to >>>>>>>>> org.jboss.web.jsf.integration.config.JBossAnnotationProvider. >>>>>>>>> * A ServletContextListener class to call for initialization. I >>>>>>>>> expect >>>>>>>>> this >>>>>>>>> will extend from MyFacesServletContextListener and be very similar >>>>>>>>> to >>>>>>>>> >>>>>>>>> org.jboss.web.jsf.integration.config.JBossMojarra20ConfigureListener. >>>>>>>>> >>>>>>>>> If MyFaces Dev decides to take this on, then the code will probably >>>>>>>>> live >>>>>>>>> at >>>>>>>>> Apache and I'll bring it into JBoss AS using Maven. I don't have >>>>>>>>> time >>>>>>>>> to >>>>>>>>> write and maintain the code myself but I'm happy to help out with >>>>>>>>> guidance >>>>>>>>> and to do some refactoring of my code to make this easier. BTW, >>>>>>>>> the >>>>>>>>> JBoss/Mojarra integration code lives here: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> http://anonsvn.jboss.org/repos/jbossas/projects/jboss-jsf-int/trunk/jboss-faces/ >>>>>>>>> >>>>>>>>> Lastly, let me say that I can't make hard promises right now. I >>>>>>>>> don't >>>>>>>>> know >>>>>>>>> if someone at JBoss/RedHat will come along and nix the idea. >>>>>>>>> However, >>>>>>>>> even >>>>>>>>> if we can't ship MyFaces you will have all the integration points >>>>>>>>> ready >>>>>>>>> and >>>>>>>>> have an easy way to "drop in" MyFaces whenever you want to use it >>>>>>>>> with >>>>>>>>> JBoss >>>>>>>>> AS. >>>>>>>>> >>>>>>>>> WDYT?? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Matthias Wessendorf >>>>>>>> >>>>>>>> blog: http://matthiaswessendorf.wordpress.com/ >>>>>>>> sessions: http://www.slideshare.net/mwessendorf >>>>>>>> twitter: http://twitter.com/mwessendorf >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Matthias Wessendorf >>>>>> >>>>>> blog: http://matthiaswessendorf.wordpress.com/ >>>>>> sessions: http://www.slideshare.net/mwessendorf >>>>>> twitter: http://twitter.com/mwessendorf >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Matthias Wessendorf >>>> >>>> blog: http://matthiaswessendorf.wordpress.com/ >>>> sessions: http://www.slideshare.net/mwessendorf >>>> twitter: http://twitter.com/mwessendorf >>>> >>>> >>> >>> >>> -- >>> Matthias Wessendorf >>> >>> blog: http://matthiaswessendorf.wordpress.com/ >>> sessions: http://www.slideshare.net/mwessendorf >>> twitter: http://twitter.com/mwessendorf >>> >> >> >> > > > > > --0015175ca840963782048d167444 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable MyFaces has an AnnotationConfigurator [1] which scans the classpath using a= simple bytecode scanning mechanism [2] (comparable with the one in Javassi= st). It's pretty fast, but it's true that classes might be scanned = twice.

Regards,
Jan-Kees

[1]=A0<= a href=3D"http://svn.apache.org/repos/asf/myfaces/core/trunk/impl/src/main/= java/org/apache/myfaces/config/annotation/AnnotationConfigurator.java">http= ://svn.apache.org/repos/asf/myfaces/core/trunk/impl/src/main/java/org/apach= e/myfaces/config/annotation/AnnotationConfigurator.java


2010/8/5 <ssilvert@redhat.com>
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex;">
Quoting David Jencks <david_jencks@yahoo.com>:

I haven't and wont look at the mojarra code but I think you are looking= for

org.apache.myfaces.config.annotation.LifecycleProvider


Looks like that takes care of spec section 5.4 (injection, @PreDestroy, @Po= stConstruct).

How do you deal with section 11.5? =A0This is for finding resource annotati= ons like @ManagedBean or @FacesValidator. =A0I'm assuming that MyFaces = does this on its own, but if so it would mean that a lot of stuff gets scan= ned multiple times by various components like Tomcat.

Stan


Geronimo has been trying to get everyone to standardize on this =A0style of= interface as it lets the implementor support constructor =A0injection tran= sparently.

Geronimo's implementations of this use xbean-reflect which provides =A0= a handy way to stuff in all the properties and get a fully =A0configured ob= ject back.

thanks
david jencks


On Aug 5, 2010, at 5:12 AM, Matthias Wessendorf wrote:

Somehow I think there was already work/discussion about it, based on a
Tomcat interface.
It for sure does bring back some fragile memory. Let me think...

On Thu, Aug 5, 2010 at 2:09 PM, Matthias Wessendorf =A0<matzew@apache.org> wrote:
Well, looking at the RI is for sure not OK.

I didn't see a problem with the previous provided links (the JBoss
code), however
I have not opened any of the provided links yet.

-Matthias

On Thu, Aug 5, 2010 at 1:54 PM, =A0<ssilvert@redhat.com> wrote:
That's OK. =A0I guess I can do the SPI implementations on my end =A0but= it might
not make it into JBoss AS6 GA. Let's concentrate on the MyFaces SPI'= ;s for
now. =A0How does MyFaces handle the SPI's like Mojarra has? =A0I'm = =A0sure it's OK
to look at Mojarra code since it's GPL2, right? =A0If not, you can look= at
JavaDoc. =A0We need something similar to:

com.sun.faces.spi.InjectionProvider
h= ttps://mojarra.dev.java.net/source/browse/mojarra/trunk/jsf-ri/src/main/jav= a/com/sun/faces/spi/InjectionProvider.java

com.sun.faces.spi.AnnotationProvider
= https://mojarra.dev.java.net/source/browse/mojarra/trunk/jsf-ri/src/main/ja= va/com/sun/faces/spi/AnnotationProvider.java

Stan

Quoting Matthias Wessendorf <matzew@apache.org>:

At Apache we can not have code that contains (L)GPL code; or depends on
it.

We had discussion(s) about this in the past. The below link contains
=A0references
to other (Apache) documents:

= http://markmail.org/message/qtc4g6vsracgzbok

-Matthias

On Thu, Aug 5, 2010 at 9:55 AM, Jan-Kees van Andel
<jankeesv= anandel@gmail.com> wrote:

Hi,

Great news! It would be very nice if JBoss ships with MyFaces 2. This
also
opens up possibilities to do some enhancements to increase developer
productivity in JBoss, like better resource reloading and so =A0on. Or doin= g
some things more efficient by plugging into the JBoss infrastructure.
Just
thinking out loud... :)

One thing about the JBoss SVN link Stan sent. I took a quick peek at the license header in a Java file and saw that it's LGPL licensed. AFAIK, this
is not compatible with ASL, so I suggest to not look at the code while
implementing the stuff Stan asked for.

WDYT?

Regards,
Jan-Kees


2010/8/5 Matthias Wessendorf <matzew@apache.org>

Hello Stan,

welcome back. We do understand that you can not make any =A0promise on that=
topic.
The fact that some folks at JBoss are thinking about shipping MyFaces
(as an alternative option)
is a good news for this entire community here. Especially it is a
great motivation for the
folks that did the main work on ensuring Apache MyFaces 2.x is a great
success.

On the missing pieces: I am sure that there will be some interested in
working on them.

Thanks,
Matthias Wessendorf
PMC Chair Apache MyFaces

On Wed, Aug 4, 2010 at 8:42 PM, =A0<ssilvert@redhat.com> wrote:
Hi guys,

Would you like to see MyFaces Core ship with JBoss AS6? =A0If so, read
on.

If you've been around MyFaces awhile, you probably remember that
JBoass
AS
used to ship with MyFaces instead of Mojarra. =A0It was regrettable, but at
the time Mojarra was far ahead spec-wise and the powers that be
decided
my
time would be better spent integrating Mojarra instead of improving
MyFaces.

However, with JBoss AS6 M4, this is no longer an "either or"
proposition.
=A0Both MyFaces and Mojarra can live side-by-side. =A0The application can decide
which implementation to use:
http://community.jboss.org/wiki/JSFonJBossAS6

What's more, changing the default JSF implementation for AS6 is just a<= br> matter of changing the defaultJSFConfig property in an XML file.

I've talked internally at JBoss about adding MyFaces to the JBoss AS community distribution. =A0Some were for it, and some were very, very
for
it.
=A0Nobody so far is against it.

The good part is that I don't think it's a lot of work. =A0It's= probably
just
three or four classes that implement SPI's that I'm guessing MyFace= s
already
has.

So this is where the MyFaces Dev group comes in. =A0MyFaces Core 2.0
will
run
OK on JBoss AS6 right now. =A0However, there is some integration work
that
is
needed for full JEE5 and JEE6 compliance. =A0We need:
* An injection provider SPI similar to Mojarra's
com.sun.faces.spi.InjectionProvider.
* The JBoss/MyFaces implementation of the SPI. =A0I expect this will be
very
similar to


org.jboss.web.jsf.integration.injection.JBossDelegatingInjectionProvider. * An AnnotationProvider SPI similar to Mojarra's
com.sun.faces.spi.AnnotationProvider.
* A JBoss/MyFaces implementation of the SPI similar to
org.jboss.web.jsf.integration.config.JBossAnnotationProvider.
* A ServletContextListener class to call for initialization. =A0I expect this
will extend from MyFacesServletContextListener and be very similar to
org.jboss.web.jsf.integration.config.JBossMojarra20ConfigureListener.

If MyFaces Dev decides to take this on, then the code will probably
live
at
Apache and I'll bring it into JBoss AS using Maven. =A0I don't have= time
to
write and maintain the code myself but I'm happy to help out with
guidance
and to do some refactoring of my code to make this easier. =A0BTW, the
JBoss/Mojarra integration code lives here:


=A0 http://anonsvn.jboss.org/repos/jbo= ssas/projects/jboss-jsf-int/trunk/jboss-faces/

Lastly, let me say that I can't make hard promises right now. =A0I don&= #39;t
know
if someone at JBoss/RedHat will come along and nix the idea. =A0However, even
if we can't ship MyFaces you will have all the integration points
ready
and
have an easy way to "drop in" MyFaces whenever you want to use it= with
JBoss
AS.

WDYT??







--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http:= //twitter.com/mwessendorf





--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http:= //twitter.com/mwessendorf










--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http:= //twitter.com/mwessendorf




--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http:= //twitter.com/mwessendorf








--0015175ca840963782048d167444--