Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] [newbie] General help needed here.....

Hi Vincenz,

yeh, I have been surprised by the Type, Type+ results as well. And the
question about the need of these two declarations made me play a little
super.call example.

... extending your test classes with:

  public class Derived2 extends Derived {
    public void foo() {
      System.err.println("Foo2");
      super.foo();
    }
  }

  before(): execution(* FooIF.*(..)) {
    System.err.println("before2");
  }

so this test

  (new Derived2()).foo();

produces

  Before
  before2
  Foo2
  Before
  before2
  Foo

Imagine an advise of counting something based on the number of
FooIF.foo() calls, all specialized calls are counted twice. So I guess,
in some solutions Type and Type+ should be distinguished and we are not
talking about "misunderstandings" here anymore. For now an easy addition
to the pointcut works for me:

  execution(* FooIF.*(..)) && within(Derived)

advises only the Derived.foo method.

Bruno

> -----Original Message-----
> From: aspectj-users-admin@xxxxxxxxxxx 
> [mailto:aspectj-users-admin@xxxxxxxxxxx] On Behalf Of Vincenz Braun
> Sent: Monday, July 19, 2004 13:52
> To: aspectj-users@xxxxxxxxxxx
> Subject: AW: [aspectj-users] [newbie] General help needed here.....
> 
> 
> Hello,
> 
> I am also a little bit confused about this statement:
> 
> > By the way, this(Type) && execution(...) has *no* dynamic test
> 
> Take these test classes:
> 
> public interface FooIF {
> 	public void foo();
> }
> 
> pubic class Simple {
> 	public void anotherFoo() {
> 		System.err.println("Another Foo");
> 	}
> }
> 
> public class Derived extends Simple implements FooIF {
> 	public void foo() {
> 		System.err.println("Foo");
> 	}
> }
> 
> public aspect ExecutionAspect {
> 
> 	pointcut test(): execution(* *(..)) && this(FooIF);
> 
> 	before (): test() {
> 		System.err.println("Before");
> 	}
> }
> 
> This advises Simple.anotherFoo with runtime test (according 
> to Outline view 
> in eclipse). So there is a runtime test with this(Type) && 
> execution(...). So what do you mean with this statement? When 
> Simple also implements FooIF there are no longer advices that 
> need runtime tests. So the compiler makes 
> some optimizations (as described in the paper you provided).
> 
> In my opinion the documentation lacks some good examples 
> regarding this 
> topic. Take these two misunderstandings.
> 
> - It is allowed to use a + in this(Type+) which makes no 
> difference. But
>   one could think this(Type) could mean exactly this type and 
> this(Type+)
>   instanceof this Type.
> - Take execution(* Type.*(..)) For me it was a surprise that derived 
>   classes from type that override methods from Type get advices too.
> 
> A little test which picks up the usual misunderstandings at 
> the end of the programming guide would be great.
> 
> Vincenz
> 
> -----Ursprüngliche Nachricht-----
> Von: aspectj-users-admin@xxxxxxxxxxx 
> [mailto:aspectj-users-admin@xxxxxxxxxxx] Im Auftrag von Ron Bodkin
> Gesendet: Montag, 19. Juli 2004 08:36
> An: aspectj-users@xxxxxxxxxxx
> Betreff: RE: [aspectj-users] [newbie] General help needed here.....
> 
> Hi Otavio,
> 
> That's right, if you need to bind to the currently executing 
> object it does have a performance impact. But if you are 
> using execution(* method(..)) &&
> this(Type) only to filter the objects matching, it does not 
> have a performance impact when compared to using execution(* 
> Type.method(..))
> 
> Ron
> 
> > ------------Original Message------------
> > From: Otávio Augusto Lazzarini Lemos <oall@xxxxxxxxxxx>
> > To: aspectj-users@xxxxxxxxxxx
> > Date: Sat, Jul-17-2004 9:51 AM
> > Subject: RE: [aspectj-users] [newbie] General help needed here.....
> > 
> >   About the last example you gave, you are not actually 
> using the join
> > point´s
> > currently executing object (this(ExecBytecode)) in your 
> advice. Try to 
> > use it
> > in the before advice and you will have some differences at 
> the bytecode 
> > level.
> > I guess that at least the object will be pushed on to the 
> stack to be 
> > used by
> > the before advice. I don´t know the performance 
> implications of that, 
> > but the
> > bytecode will not be the same.
> > 
> > Otávio
> > 
> >  .---------------------- --  --- ----  -----
> > |Otávio Augusto Lazzarini Lemos
> > |M. Sc. candidate
> > |Labes - Software Engineering Laboratory
> > |USP - University of São Paulo
> > |São Carlos, SP - Brasil
> > |oall@xxxxxxxxxxx - otaviolemos@xxxxxxxxxx
> >  -------------------------------------------- --- -  -
> > 
> > Citando Ron Bodkin <rbodkin@xxxxxxxxxxxxxx>:
> > 
> > > Yes Wes, it is true that using the declaring type in the 
> signature 
> > > is
> > useful
> > > and can be appropriate for those who have some experience with
> > AspectJ.
> > > However, for new users it's helpful to get in the mindset of using
> > this to
> > > specify types instead of doing it in the method 
> signature, instead 
> > > of
> > trying
> > > to remember that using declaring types with call is 
> problematic and
> > using
> > > them with execution is ok (remember that Jerry started off using 
> > > call
> > with a
> > > static type in the signature!) And it is also a good rule because
> > it's
> > > binding the currently executing object in your pointcut 
> is commonly
> > done.
> > > 
> > > By the way, this(Type) && execution(...) has *no* dynamic 
> test (+),
> > and with
> > > the AspectJ 1.2 compiler optimizations should be compiled about
> > equally
> > > quickly (e.g., slide 96 from Andy Clement's data at
> > > 
> > 
> http://newaspects.com/presentations/Enterprise%20AOP%20AOSD%202004.ppt
> which
> > > shows some related improvements, although not the performance of
> > this(..) &&
> > > execution(..)).
> > > 
> > > It is true that it's not statically resolvable for declare
> > warning/error
> > > (although I'd like to see the compiler restriction eased to allow 
> > > use pointcuts for any special cases where no dynamic test would be
> > required to
> > > resolve a pointcut; maybe some day). And it also isn't useful for
> > statics
> > > (clearly). But these are specialized scenarios, not the general 
> > > rule.
> > > 
> > > Re: configuring AspectJ with Struts, the aTrack project 
> is a working
> > example
> > > that uses Struts with AspectJ.
> > > 
> > > Ron
> > > 
> > > (+) See section 4.1.2 in "Advice Weaving in AspectJ" 
> > > http://www.hugunin.net/papers/aosd-2004-cameraReady.pdf. Also I
> > compiled two
> > > versions of an aspect with AspectJ 1.2 and found 
> identical bytecode:
> > > 
> > > public aspect ExecBytecode {
> > >     void foo() {}
> > >     before() : this(ExecBytecode) && execution(* foo()) {} }
> > > 
> > > Then from "javap -c ExecBytecode"
> > > 
> > > foo();
> > >   Code:
> > >    0:	invokestatic	#49; //Method aspectOf:()LExecBytecode;
> > >    3:	invokevirtual	#51; //Method 
> > ajc$before$ExecBytecode$1$eb4dac00:()V
> > >    6:	return
> > > 
> > > public void ajc$before$ExecBytecode$1$eb4dac00();
> > >   Code:
> > >    0:	return
> > > 
> > > public aspect ExecBytecode {
> > >     void foo() {}
> > >     before() : execution(* ExecBytecode.foo()) {}
> > > }
> > > 
> > > Produces:
> > > void foo();
> > >   Code:
> > >    0:	invokestatic	#49; //Method aspectOf:()LExecBytecode;
> > >    3:	invokevirtual	#51; //Method 
> > ajc$before$ExecBytecode$1$b5db75e4:()V
> > >    6:	return
> > > 
> > > public void ajc$before$ExecBytecode$1$b5db75e4();
> > >   Code:
> > >    0:	return
> > > 
> > > Ron Bodkin
> > > Chief Technology Officer
> > > New Aspects of Software
> > > o: (415) 824-4690
> > > m: (415) 509-2895
> > > 
> > > > ------------Original Message------------
> > > > From: "Wes Isberg" <wes@xxxxxxxxxxxxxx>
> > > > To: aspectj-users@xxxxxxxxxxx
> > > > Date: Fri, Jul-16-2004 11:06 PM
> > > > Subject: RE: [aspectj-users] [newbie] General help needed 
> > > > here.....
> > > > 
> > > > Hi Ron (, Jerry) -
> > > > 
> > > > re:
> > > > > As a general rule, you probably don't want to use the form of
> > > > signature
> > > > > you have in that pointcut (which matches based on static types
> > > > instead
> > > > > of runtime instances).
> > > > 
> > > > I've never heard this rule and I believe it is not correct; The 
> > > > original form
> > > > 
> > > >     execution(ReturnType DeclaringType.methodName(..))
> > > > 
> > > > is better than
> > > > 
> > > >     execution(ReturnType methodName(..)) && this(DeclaringType)
> > > > 
> > > > *because* it can be resolved staticly and requires no 
> dynamic test 
> > > > (faster compile, faster implementation, and better IDE support).
> > > > 
> > > > You might be confusing this situation with the 
> suggestion for the 
> > > > call pointcut not to use the declaring type in the call.
> > > > This suggestion is because the signature of a call join point
> > > > refers to the type of the reference (at the call site), not the 
> > > > type of the referent class (at run time).  So when people
> > > > write
> > > > 
> > > >    call(ReturnType DeclaringType.methodName(..))
> > > > 
> > > > they usually mean
> > > > 
> > > >    call(ReturnType methodName(..)) && target(DeclaringType)
> > > > 
> > > > (hence the suggestion).
> > > > 
> > > > Wes
> > > > 
> > > > P.S. - If someone does figure out how to configure AspectJ with 
> > > > Struts, etc, it would be great to contribute back a 
> description to 
> > > > the mailing list or a bug, for inclusion in the sample code 
> > > > repository...
> > > > 
> > > > 
> > > > > ------------Original Message------------
> > > > > From: "Ron Bodkin" <rbodkin@xxxxxxxxxxxxxx>
> > > > > To: aspectj-users@xxxxxxxxxxx
> > > > > Date: Fri, Jul-16-2004 4:09 PM
> > > > > Subject: RE: [aspectj-users] [newbie] General help needed
> > here.....
> > > > >
> > > > > Jerry,
> > > > > 
> > > > > A couple of things to try:
> > > > > 1) Make sure that you are opening the affected file with the
> > AspectJ
> > > > > editor and not the Java editor. You should go into window |
> > > > preferences |
> > > > > file associations and make sure that AspectJ is set the the
> > default
> > > > for
> > > > > .java files
> > > > > 2) Try adding this line, to see if the pointcut is matching:
> > > > > 
> > > > > declare warning: actionCall() : "in action execution";
> > > > > 
> > > > > As a general rule, you probably don't want to use the form of
> > > > signature
> > > > > you have in that pointcut (which matches based on static types
> > > > instead
> > > > > of runtime instances). It should work for executions, but a
> > better
> > > > > version is:
> > > > > 
> > > > > pointcut actionExecute() : execution(public ActionForward
> > > > > execute(ActionMapping, ActionForm, 
> > > > > HttpServletRequest, HttpServletResponse))) && 
> this(Logon_Action);
> > > > > 
> > > > > Ron
> > > > > 
> > > > > p.s. there's an already defined, debugged version of 
> a pointcut
> > for
> > > > > struts action execution in the aTrack project: see
> > > > > ajee.component.StrutsPointcuts. aTrack is at 
> > > > https://atrack.dev.java.net/
> > > > > 
> > > > >     public pointcut actionExecute(Action action, ActionMapping
> > > > mapping,
> > > > > ActionForm form, 
> > > > >         HttpServletRequest request, HttpServletResponse 
> > > > > response)
> > :
> > > > >         execution(ActionForward Action.execute(ActionMapping,
> > > > > ActionForm, 
> > > > >             HttpServletRequest, HttpServletResponse)) && 
> > this(action)
> > > > 
> > > > > && 
> > > > >         args(mapping, form, request, response);
> > > > > 
> > > > > 
> > > > > Ron Bodkin
> > > > > Chief Technology Officer
> > > > > New Aspects of Software
> > > > > o: (415) 824-4690
> > > > > m: (415) 509-2895
> > > > > 
> > > > > > ------------Original Message------------
> > > > > > From: "Jerry Jalenak" <Jerry.Jalenak@xxxxxxxxxx>
> > > > > > To: "'aspectj-users@xxxxxxxxxxx'" 
> <aspectj-users@xxxxxxxxxxx>
> > > > > > Date: Fri, Jul-16-2004 1:07 PM
> > > > > > Subject: RE: [aspectj-users] [newbie] General help needed
> > here.....
> > > > > > 
> > > > > > Another possibility that just occurred to me....
> > > > > > 
> > > > > > Since Logon_Action extends Action, do I need to 
> 'expose' the 
> > > > > > org.apache.struts.action.Action class to the aspect?
> > > > > > 
> > > > > > Jerry Jalenak
> > > > > > Development Manager, Web Publishing
> > > > > > LabOne, Inc.
> > > > > > 10101 Renner Blvd.
> > > > > > Lenexa, KS  66219
> > > > > > (913) 577-1496
> > > > > > 
> > > > > > jerry.jalenak@xxxxxxxxxx
> > > > > > 
> > > > > > 
> > > > > > > -----Original Message-----
> > > > > > > From: Ramnivas Laddad [mailto:ramnivas@xxxxxxxxxxxxxxx]
> > > > > > > Sent: Friday, July 16, 2004 2:29 PM
> > > > > > > To: aspectj-users@xxxxxxxxxxx
> > > > > > > Subject: Re: [aspectj-users] [newbie] General help needed
> > > > here.....
> > > > > > > 
> > > > > > > 
> > > > > > > Hi Jerry,
> > > > > > > 
> > > > > > > Otávio's suggestion of using execution() PCD is the right
> > one.
> > > > > > > 
> > > > > > > It is okay to use any number of aspects crosscutting a 
> > > > > > > class.
> > 
> > > > > > > Just a guess: Do you have every referred type in the 
> > > > > > > pointcut
> > 
> > > > > > > definition (in your case ActionMapping, ActionForm,
> > > > > > > HttpServletRequest, HttpServletResponse) appropriately 
> > imported.
> > > > > > > 
> > > > > > > -Ramnivas
> > > > > > > 
> > > > > > > ===
> > > > > > > 
> > > > > > > Ramnivas Laddad,
> > > > > > > Author, AspectJ in Action
> > > > > > > http://ramnivas.com
> > > > > > > 
> > > > > > > Jerry Jalenak wrote:
> > > > > > > 
> > > > > > > >Otavio,
> > > > > > > >
> > > > > > > >Thanks for the reply.  Change the PCD from call to 
> > > > > > > >execution
> > 
> > > > > > > didn't seem to
> > > > > > > >change anything.  However, I starting to think I have
> > > > > > > something else wrong.
> > > > > > > >In the AspectJ Visualizer perspective, I am only seeing
> > > > > > > where one aspect has
> > > > > > > >been applied (I have two).  Is it not possible 
> to have more
> > > > > > > than one aspect
> > > > > > > >class?
> > > > > > > >
> > > > > > > >Thanks....
> > > > > > > >
> > > > > > > >Jerry Jalenak
> > > > > > > >Development Manager, Web Publishing
> > > > > > > >LabOne, Inc.
> > > > > > > >10101 Renner Blvd.
> > > > > > > >Lenexa, KS  66219
> > > > > > > >(913) 577-1496
> > > > > > > >
> > > > > > > >jerry.jalenak@xxxxxxxxxx
> > > > > > > >
> > > > > > > >
> > > > > > > >  
> > > > > > > >
> > > > > > > >>-----Original Message-----
> > > > > > > >>From: Otávio Augusto Lazzarini Lemos
> > [mailto:oall@xxxxxxxxxxx]
> > > > > > > >>Sent: Friday, July 16, 2004 1:31 PM
> > > > > > > >>To: aspectj-users@xxxxxxxxxxx
> > > > > > > >>Subject: Re: [aspectj-users] [newbie] General 
> help needed
> > > > > here.....
> > > > > > > >>
> > > > > > > >>
> > > > > > > >>You should use an execution PCD. In your 
> example the calls
> > to
> > > > > > > >>Logon_action.execute(ActionMapping, ActionForm,
> > > > > HttpServletRequest,
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>HttpServletResponse) are the intercepted join 
> points, and
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>not the actual
> > > > > > > >>execution of the method (try to look at the places where
> > you
> > > > > > > >>call the method).
> > > > > > > >>Tell me if it works with the execution instead 
> of the call
> > PCD.
> > > > > > > >>
> > > > > > > >>Otávio
> > > > > > > >>
> > > > > > > >>Citando Jerry Jalenak <Jerry.Jalenak@xxxxxxxxxx>:
> > > > > > > >>
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>First, thanks to Rod, Adrian, and Ramnivas for 
> their help
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>the other day.  I
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>think I'm starting to get the hang of this....
> > > > > > > >>>
> > > > > > > >>>That being said, I'm stuck as to why the following 
> > > > > > > >>>doesn't
> > 
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>work.  I've just
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>upgraded to the AJDT 1.1.11 plug-in, if it matters.
> > > > > > > >>>
> > > > > > > >>>Here's the aspect :
> > > > > > > >>>
> > > > > > > >>>	public aspect MemberSolutions_BaseActionAspect
> > > > > > > >>>	{
> > > > > > > >>>	    // ~ Pointcut definitions
> > > > > > > >>>	    
> > > > > > > >>>	    pointcut actionCall() : 
> > > > > > > >>>	        (call(public ActionForward 
> > > > > > > >>>Logon_Action.execute(ActionMapping, ActionForm,
> > > > > > HttpServletRequest,
> > > > > > > >>>HttpServletResponse)));
> > > > > > > >>>	    
> > > > > > > >>>	    // ~ Advice definitions
> > > > > > > >>>    
> > > > > > > >>>	    before() : actionCall()
> > > > > > > >>>	    {
> > > > > > > >>>	        System.out.println("here i am");
> > > > > > > >>>	    }
> > > > > > > >>>	}
> > > > > > > >>>
> > > > > > > >>>and the class I'm trying to weave it into :
> > > > > > > >>>
> > > > > > > >>>	public class Logon_Action extends Action
> > > > > > > >>>	{
> > > > > > > >>>	    public ActionForward execute(ActionMapping
> > > > _actionMapping,
> > > > > > > >>>	            ActionForm _actionForm, 
> HttpServletRequest
> > > > > _request,
> > > > > > > >>>	            HttpServletResponse _response)
> > > > > > > >>>	    {
> > > > > > > >>>	        Logon_ActionForm form = 
> (Logon_ActionForm)
> > > > _actionForm;
> > > > > > > >>>	        return null;
> > > > > > > >>>	    }
> > > > > > > >>>	}
> > > > > > > >>>
> > > > > > > >>>Everything compiles OK (no errors, anyway), but when I
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>check the class I
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>don't see any indication that the aspect is being 
> > > > > > > >>>applied.
> >  
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>I expect to see
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>an indicator on the first statement of the class....
> > > > > > > >>>
> > > > > > > >>>I'm probably being dense on this, and it's something
> > really
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>stupid, but I
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>can't seem to figure it out.  Any help?
> > > > > > > >>>
> > > > > > > >>>Thanks guys!
> > > > > > > >>>
> > > > > > > >>>Jerry Jalenak
> > > > > > > >>>Development Manager, Web Publishing
> > > > > > > >>>LabOne, Inc.
> > > > > > > >>>10101 Renner Blvd.
> > > > > > > >>>Lenexa, KS  66219
> > > > > > > >>>(913) 577-1496
> > > > > > > >>>
> > > > > > > >>>jerry.jalenak@xxxxxxxxxx
> > > > > > > >>>
> > > > > > > >>>
> > > > > > > >>>This transmission (and any information attached to it) 
> > > > > > > >>>may
> > 
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>be confidential
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>and
> > > > > > > >>>is intended solely for the use of the individual or 
> > > > > > > >>>entity
> > 
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>to which it is
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>addressed. If you are not the intended recipient or the
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>person responsible
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>for
> > > > > > > >>>delivering the transmission to the intended 
> recipient, be
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>advised that you
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>have received this transmission in error and that any 
> > > > > > > >>>use,
> > 
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>dissemination,
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>forwarding, printing, or copying of this information is
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>strictly prohibited.
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>If you have received this transmission in error, please
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>immediately notify
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>LabOne at the following email address:
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>securityincidentreporting@xxxxxxxxxx
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >>>_______________________________________________
> > > > > > > >>>aspectj-users mailing list aspectj-users@xxxxxxxxxxx
> > > > > > > >>>http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > > > >>>
> > > > > > > >>>      
> > > > > > > >>>
> > > > > > > >>_______________________________________________
> > > > > > > >>aspectj-users mailing list aspectj-users@xxxxxxxxxxx
> > > > > > > >>http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > > > >>
> > > > > > > >>    
> > > > > > > >>
> > > > > > > >
> > > > > > > >This transmission (and any information attached 
> to it) may
> > > > > > > be confidential and is intended solely for the use of the
> > > > > > > individual or entity to which it is addressed. If 
> you are not 
> > 
> > > > > > > the intended recipient or the person responsible for
> > > > > > > delivering the transmission to the intended recipient, be 
> > > > > > > advised that you have received this transmission 
> in error and 
> > 
> > > > > > > that any use, dissemination, forwarding, printing, or 
> > > > > > > copying
> > 
> > > > > > > of this information is strictly prohibited. If you have
> > > > > > > received this transmission in error, please immediately 
> > > > > > > notify LabOne at the following email address: 
> > > > > > > securityincidentreporting@xxxxxxxxxx
> > > > > > > >
> > > > > > > >_______________________________________________
> > > > > > > >aspectj-users mailing list aspectj-users@xxxxxxxxxxx
> > > > > > > >http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > > > >
> > > > > > > >  
> > > > > > > >
> > > > > > > 
> > > > > > > _______________________________________________
> > > > > > > aspectj-users mailing list aspectj-users@xxxxxxxxxxx
> > > > > > > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > > > 
> > > > > > 
> > > > > > This transmission (and any information attached to 
> it) may be
> > > > > > confidential and is intended solely for the use of the 
> > individual
> > > > or
> > > > > entity to
> > > > > > which it is addressed. If you are not the intended 
> recipient 
> > > > > > or
> > the
> > > > 
> > > > > > person responsible for delivering the transmission to the
> > intended
> > > > > > recipient, be advised that you have received this 
> transmission
> > in
> > > > > error and
> > > > > > that any use, dissemination, forwarding, printing, 
> or copying
> > of
> > > > this
> > > > > 
> > > > > > information is strictly prohibited. If you have 
> received this
> > > > > transmission
> > > > > > in error, please immediately notify LabOne at the following
> > email
> > > > > > address: securityincidentreporting@xxxxxxxxxx
> > > > > > 
> > > > > > _______________________________________________
> > > > > > aspectj-users mailing list
> > > > > > aspectj-users@xxxxxxxxxxx 
> > > > > > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > > 
> > > > > > 
> > > > > 
> > > > > _______________________________________________
> > > > > aspectj-users mailing list
> > > > > aspectj-users@xxxxxxxxxxx 
> > > > > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > 
> > > > 
> > > > 
> > > > _______________________________________________
> > > > aspectj-users mailing list
> > > > aspectj-users@xxxxxxxxxxx 
> > > > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > 
> > > > 
> > > 
> > > _______________________________________________
> > > aspectj-users mailing list
> > > aspectj-users@xxxxxxxxxxx 
> > > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > 
> > 
> > 
> > --
> > -----------------------------------------------------------.__
> >   Otávio Augusto Lazzarini Lemos                              |
> >   oall@xxxxxxxxxxx - otaviolemos@xxxxxxxxxx                   |
> > ------------------------------------------------------------- |
> >   Insituto de Ciências Matemáticas e de Computação - ICMC/USP |
> > --------------------------------------------- -------- ---- == 
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > 
> > 
> 
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx 
> http://dev.eclipse.org/mailman/listinfo/aspect> j-users
> 
> 
> 
> _______________________________________________
> 
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx 
> http://dev.eclipse.org/mailman/listinfo/aspect> j-users
> 



Back to the top