Wow, that's pretty brain-dead ... I was just thinking earlier that using
explicit casts are a design smell (occasionally unavoidable). I think
there's only a couple of places in all of Tapestry where an explicit
downcast occurs (and then, it's often a down-cast to another interface) ...
and I don't even like those. Needing down casts indicates that you're data
model is broken.

End of rant.

I think getting Tapestry @Inject semantics with the JSR @Inject annotation
will be a perfectly good start.

On Wed, Dec 22, 2010 at 8:17 AM, Igor Drobiazko <[email protected]>wrote:

> Unfortunately there are some fundamental differences between JSR330 and
> Tapestry IoC which make it impossible to provide a 100% portability. For
> example JSR330 dictates that a downcast from an interface to the concrete
> impl is posible:
>
> MyService service = ...
> MyServiceImpl impl = (MyServiceIml) service;
>
> This won't work with the current implementation of proxies. Tapestry's
> proxies are generated classes which implement the service interface and
> delegate to the original implementation. Maybe this issu maybe adressed
> when
> migrating fro Javassist to ASM.
>
> I believe that using standard annotations for Tapestry services is a big
> improvement in terms of adoption, even though there will be some
> limitations
> with the portability.
>
> On Wed, Dec 22, 2010 at 3:11 AM, Josh Canfield <[email protected]
> >wrote:
>
> > > I believe we don't need a 100% support for the JSR 330
> >
> > What about portability? Isn't that the point of implementing your
> > services using the JSR330 annotations? If we aren't portable between
> > other implementations then why do it? If you say "supports JSR330" and
> > I bring over a service I wrote using guice's JSR330 implementation I
> > would expect that it would work.
> >
> > Josh
> >
> > On Tue, Dec 21, 2010 at 4:21 PM, Igor Drobiazko
> > <[email protected]> wrote:
> > > The semantics of both annotation sets are quite similar. So far I've
> seen
> > > following differences:
> > > 1) javax.inject.Inject may be used to mark static fields as injection
> > points
> > > 2) No injection without @Inject annotation
> > > 3) Injection into void methods (also non setters)
> > > 4) Marker annotations must be annotated with
> > >
> >
> http://atinject.googlecode.com/svn/trunk/javadoc/javax/inject/Qualifier.html
> > >
> > > I believe we don't need a 100% support for the JSR 330, as we don't
> need
> > to
> > > pass the TCK. We can just concentrate on providing alternative
> > annotations
> > > for marking injection points. For example the value of injection into
> > static
> > > fields is questionable.
> > >
> > > On Tue, Dec 21, 2010 at 8:30 PM, Howard Lewis Ship <[email protected]>
> > wrote:
> > >
> > >> On Tue, Dec 21, 2010 at 10:33 AM, Igor Drobiazko
> > >> <[email protected]>wrote:
> > >>
> > >> > Yes, we need to make some few changes to tapestry-ioc.
> > >> >
> > >> > I'm not sure I understand what you mean by "we can make changes to
> > >> direclty
> > >> > support JSR-303". Does it mean you prefer to make tapestry-ioc
> depend
> > on
> > >> > jsr-330 jar?
> > >> >
> > >>
> > >> Yes.
> > >>
> > >> Basically, we have code in tapestry-ioc that says: "find all fields
> that
> > >> have @org.apache.tapestry5.annotations.Inject" and that needs to
> change
> > to
> > >> "find all fields that have @tapestry.Inject or @javax.Inject" ... and
> > many
> > >> variations of that in a bunch of places.
> > >>
> > >> There are also some semantic differences; sometimes @Inject means
> inject
> > a
> > >> service when otherwise a resource dependency would be injected.  In
> > other
> > >> places, @Inject means "use this constructor", and in many more places,
> > no
> > >> annotation is needed and Tapestry assumes an injection is desired.
>  Not
> > >> sure
> > >> how well that matches the semantics of the javax @Inject.
> > >>
> > >>
> > >> >
> > >> > On Tue, Dec 21, 2010 at 7:25 PM, Howard Lewis Ship <
> [email protected]>
> > >> > wrote:
> > >> >
> > >> > > I'm not sure that we can support them without some fundamental
> > changes
> > >> > > inside tapestry-ioc.  So we either have to make changes to support
> > an
> > >> > > external library that supports JSR-303 ... or we can make changes
> to
> > >> > > direclty support JSR-303.  I favor the latter.
> > >> > >
> > >> > > I'm hoping that, over several releases. we can go beyond having
> ids
> > for
> > >> > > services (and instead, rely on marker annotations for
> > disambiguation),
> > >> > and
> > >> > > deprecate @InjectService along the way.
> > >> > >
> > >> > > On Tue, Dec 21, 2010 at 6:41 AM, Igor Drobiazko <
> > >> > [email protected]
> > >> > > >wrote:
> > >> > >
> > >> > > > Ok, keeping own annotations makes sense. Do we want to support
> > >> JSR-303
> > >> > > > annotations out of the box by adding a new jar depenency to
> > >> > tapestry-ioc
> > >> > > or
> > >> > > > would a new library make more sense?
> > >> > > >
> > >> > > > I tend to the outof the box soluton.
> > >> > > >
> > >> > > > On Tue, Dec 21, 2010 at 12:37 PM, Thiago H. de Paula Figueiredo
> <
> > >> > > > [email protected]> wrote:
> > >> > > >
> > >> > > > > On Tue, 21 Dec 2010 08:58:40 -0200, Christian Riedel <
> > >> > > > > [email protected]> wrote:
> > >> > > > >
> > >> > > > >  Hi Igor,
> > >> > > > >>
> > >> > > > >
> > >> > > > > Hi, guys!
> > >> > > > >
> > >> > > > >
> > >> > > > >  I'm not sure about the deprecation but generally it's a good
> > idea,
> > >> I
> > >> > > > >> think. Look at Hibernate and JPA for example. They have kept
> > their
> > >> > > > >> annotations and support the standard ones as well. I like the
> > idea
> > >> > of
> > >> > > > having
> > >> > > > >> the choice...
> > >> > > > >>
> > >> > > > >
> > >> > > > > I was going to post the same opinion. :) I think it wouldn't
> be
> > >> hard
> > >> > to
> > >> > > > > support both the Tapestry-IoC annotations and the JSR 303
> ones.
> > >> We'd
> > >> > > just
> > >> > > > > need to document which one Tapestry would check first and not
> > >> > allowing
> > >> > > > mixed
> > >> > > > > use in the same class.
> > >> > > > >
> > >> > > > > By the way, thanks Igor for stepping up for implementing this.
> I
> > >> hope
> > >> > I
> > >> > > > > have time to team up with you in this project.
> > >> > > > >
> > >> > > > > --
> > >> > > > > Thiago H. de Paula Figueiredo
> > >> > > > > Independent Java, Apache Tapestry 5 and Hibernate consultant,
> > >> > > developer,
> > >> > > > > and instructor
> > >> > > > > Owner, Ars Machina Tecnologia da Informação Ltda.
> > >> > > > > http://www.arsmachina.com.br
> > >> > > > >
> > >> > > > >
> > >> > > > >
> > >> ---------------------------------------------------------------------
> > >> > > > > To unsubscribe, e-mail: [email protected]
> > >> > > > > For additional commands, e-mail: [email protected]
> > >> > > > >
> > >> > > > >
> > >> > > >
> > >> > > >
> > >> > > > --
> > >> > > > Best regards,
> > >> > > >
> > >> > > > Igor Drobiazko
> > >> > > > http://tapestry5.de
> > >> > > >
> > >> > >
> > >> > >
> > >> > >
> > >> > > --
> > >> > > Howard M. Lewis Ship
> > >> > >
> > >> > > Creator of Apache Tapestry
> > >> > >
> > >> > > The source for Tapestry training, mentoring and support. Contact
> me
> > to
> > >> > > learn
> > >> > > how I can get you up and productive in Tapestry fast!
> > >> > >
> > >> > > (971) 678-5210
> > >> > > http://howardlewisship.com
> > >> > >
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > Best regards,
> > >> >
> > >> > Igor Drobiazko
> > >> > http://tapestry5.de
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >> Howard M. Lewis Ship
> > >>
> > >> Creator of Apache Tapestry
> > >>
> > >> The source for Tapestry training, mentoring and support. Contact me to
> > >> learn
> > >> how I can get you up and productive in Tapestry fast!
> > >>
> > >> (971) 678-5210
> > >> http://howardlewisship.com
> > >>
> > >
> > >
> > >
> > > --
> > > Best regards,
> > >
> > > Igor Drobiazko
> > > http://tapestry5.de
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >
>
>
> --
> Best regards,
>
> Igor Drobiazko
> http://tapestry5.de
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to learn
how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

Reply via email to