RE: some questions about the 0.3 / 0.4 codeline

Steve Conover <[email protected]> Thu, 1 May 2003 17:11:36 -0700 (PDT)
Newsgroups gmane.comp.java.nanning.devel
Message-ID <[email protected]>
I've been doing some converting today to MixinAspects (I really like
the new config system, very clean).  My AspectFactory returns an
AspectInstance from the newInstance(class) method.

I do an AspectInstance.getProxy() and try to cast it to the interface
class I fed into the AspectInstance constructor, but I get a
classcastexception.  I notice in the code to construct a proxy the only
interfaces fed into the Proxy.newProxyInstance are from the mixins.

Why isn't the interface class I passed into the AspectInstance
constrctor also included?

Regards,
Steve

--- Jon Tirsen <[email protected]> wrote:
> Yeah, you should probably try to move away from the
> c.t.n.definition-classes. The AspectInstance/MixinInstance has a
> similar
> API although you'll find it to be more flexible. The main difference
> is
> that you'll need to create a new AspectInstance for every instance
> you
> create and then invoke getProxy() to get the proxy for this instance
> only. But I guess you've got a factory somewhere where this is done
> in a
> central place (if not, I suggest you do that :-). 
> 
> The new c.t.n.config-stuff is not really ready and a lot of things
> will
> probably happen there. The main purpose is to have Aspect/J-semantics
> in
> Nanning where cross-cutting concerns are truly modular, ie. mixins
> and
> interceptors are tied together into a single aspect. There's a
> description about it here:
>
http://sourceforge.net/mailarchive/forum.php?thread_id=1621907&forum_id=
> 12937
> 
> I'm using it myself and it's very powerful, but it's not very
> well-documented and kind of weird sometimes. If you want to use it I
> can
> answer questions you may have.
> 
> (c.t.n.definition-classes is in fact implemented on top of the
> AspectInstance stuff.)
> 
> > -----Original Message-----
> > From: [email protected]
> [mailto:nanning-
> > [email protected]] On Behalf Of Steve Conover
> > Sent: Wednesday, April 30, 2003 10:55 PM
> > To: nanning-developer
> > Subject: [Nanning-developer] some questions about the 0.3 / 0.4
> codeline
> > 
> > Jon,
> > 
> > I'm just integrating the 0.4 codeline into my project, and had a
> few
> > questions.
> > 
> > My aspects are still working due to this code in
> > AspectDefinition.checkObject:
> > 
> > if (target == null) {
> >             return;
> >         }
> > 
> > However I still would like to provide a target that doesn't
> implement
> > the interfaceClass, as we discussed earlier.  That's not really
> > possible via the AspectDefinition.
> > 
> > I remember you said something about extending MixinInstance (which
> I
> > notice is final).  However I guess I haven't been keeping up with
> > changes very well - what are the purposes of these new config
> classes
> > (Pointcut, Advise, MixinAspect, etc)?
> > 
> > I'm defining these AspectDefinitions, and then building up an
> > AspectClass and instanciating that to create my objects.  Should I
> be
> > moving this stuff to MixinXXX?
> > 
> > Regards,
> > Steve
> > 
> > 
> > 
> > 
> > -------------------------------------------------------
> > This sf.net email is sponsored by:ThinkGeek
> > Welcome to geek heaven.
> > http://thinkgeek.com/sf
> > _______________________________________________
> > Nanning-developer mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/nanning-developer
> 
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Nanning-developer mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/nanning-developer


=====
*****************
Steve Conover Jr.

Verify chainmail here: http://www.snopes.com
*****************


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf