RE: some questions about the 0.3 / 0.4 codeline

Steve Conover <[email protected]> Fri, 2 May 2003 08:21:31 -0700 (PDT)
Newsgroups gmane.comp.java.nanning.devel
Message-ID <[email protected]>
Hmmm yah I thought of that, but the problem is this - my
"classidentifier" is something like

interface User extends Identifiable, HasAlias, HasEmailAddress, etc
,etc

where each one of the exteneded interfaces is a mixin.  But when I make
the User interface itself a mixin, the calls to methods that I'd rather
be routed to the finer-grained mixins go to the User interface, which
has no implementation.

Maybe a solution would be to have two levels of proxies - at the "top"
is the User interface mixin only, and then I feed in the other set of
mixins as its target.  Of couse that set of mixins wouldn't implement
interface User, so I'd probably run into problems.

I really like the idea of being able to construct a "virtual" object
piece by piece like this...is there any harm in sticking the
classIdentifier in that mixin list?  After all, if I remember correctly
it's a Set, so it's not like you'd ever have two of those interface
classes if you decided to put a mixin in there as well.

Regards,
Steve

--- Jon Tirsen <[email protected]> wrote:
> Neat.
> 
> That serves mainly as an identifier of what "class" the instance
> belongs
> to. Don't you have a mixin that also has this interface as interface?
> If
> not what target implements the interface passed in as identifier?
> 
> > -----Original Message-----
> > From: [email protected]
> [mailto:nanning-
> > [email protected]] On Behalf Of Steve Conover
> > Sent: Friday, May 02, 2003 2:12 AM
> > To: [email protected]
> > Subject: RE: [Nanning-developer] some questions about the 0.3 / 0.4
> > codeline
> > 
> > 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
> > _______________________________________________
> > 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