On Nov 13, 2007, at 7:54 PM, Henrique Mostaert wrote:

Dear Ramnivas Laddad,

Thanks for the help. I'm working with java programs instrumentation and verification using AspectJ. In fact, we apply the Design by Contract technique. I'm studying AspectJ and use these concepts (DBC) at same time. Our compiler, generates for each assertion ( e.g., precondition, normal or exceptional postcondition, and invariants) the advice responsible for instrumenting the assertion. Moreover, Our contracts instrumentation must be on aspect per class, I mean one aspect association per-object association. Because that, We need to reference them in a single pointcut (not anonymous) to use the perthis().

You should look at Contract4J. It uses a handful of general aspects and weaves code for condition checking, based on user annotations. You might be able to leverage that approach, based on your method of identifying the contract conditions.

About the AspectJ advice, specially after advice, As we use normal or exceptional postcondition (When a method terminates by throwing an exception) testing, we actually use both after returning and after throwing advice. Because the simple after advice always execute no matters ... Thus, We thought to use it instead using the two kinds of after advice. The main problem is that we cannot handling the exception, because we need to know the type of the exception thrown (If it is a assertion violation exception or a simple exception thrown by a method).

I don't know why you need to know the exception thrown.

For your assertion violation exception, why aren't you using a subclass of RuntimeException, so no "throws" clause is required?? You should treat a contract failure as catastrophic in the same way that ClassCastException is very bad. By using a RuntimeException derivative, you avoid the problem of the throws clause.



If you don´t mind, I can change more information about my research and Would be my pleasure If you can help me (discussing more issues about how can I improve my work).

Thanks for the help!!!

best regards!

On Nov 13, 2007 2:00 PM, < [EMAIL PROTECTED]> wrote:
Send aspectj-users mailing list submissions to
       [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        https://dev.eclipse.org/mailman/listinfo/aspectj-users
or, via email, send a message with subject or body 'help' to
       [EMAIL PROTECTED]

You can reach the person managing the list at
       [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of aspectj-users digest..."


Today's Topics:

  1. Re: "About AspectJ creation and After advice" (Ramnivas Laddad)
  2. Re: Why i get java.lang.NoSuchFieldError ? (Andy Clement)


----------------------------------------------------------------------

Message: 1
Date: Tue, 13 Nov 2007 10:19:36 -0500
From: "Ramnivas Laddad" < [EMAIL PROTECTED]>
Subject: Re: [aspectj-users] "About AspectJ creation and After advice"
To: [email protected]
Message-ID:
       < [EMAIL PROTECTED]>
Content-Type: text/plain; charset="iso-8859-1"

For question 1: Why not use named pointcuts? Then, if you want, you can create one more named pointcut combining the 20 pointcuts and used it in
perthis().

For question 2: There isn't a way to handle exception in plain after advice.
Why do you want to do this?

-Ramnivas

On Nov 12, 2007 9:45 PM, Henrique Mostaert <[EMAIL PROTECTED]> wrote:

> Dear AspectJ users,
>
>    I have simple two questions about AspectJ.
>
>
>    -  About AspectJ creation (association), we have the "per-object
> association", which associates a separate aspect instance with the execution
>    object
>    (this) for the join point matching the pointcut specified inside
> perthis(). However, suppose we have an Aspect with twenty (20) *anonymous
>    **pointcut*.
>
> Question 1: Is there any way to perform the perthis() for this
> Aspect without explicit all the 20 *anonymous **pointcut* inside the
> perthis()?
>
> - About After advice, we have two more kinds of after advice besides > the simpler one. One of them is the After throwing -- that is responsible to > add behavior when the intercepted method throws an exception. We also can > verify the kind of the exception thrown: *after() throwing (Throwable
>    throwable), by using thowable inside the advice's body.*
>
> Question 2: I know the uses of after advice (after, after > returning and after throwing). However, I really want If there exists any
> way to handler an exception (or verify the kind
> of exception thrown) using a simple after
> advice (no using after throwing).
>
>
>   Best regards!
>
> --
> Henrique Mostaert
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://dev.eclipse.org/mailman/listinfo/aspectj-users/ attachments/20071113/102d8415/attachment.html

------------------------------

Message: 2
Date: Tue, 13 Nov 2007 16:25:18 +0000
From: "Andy Clement" < [EMAIL PROTECTED]>
Subject: Re: [aspectj-users] Why i get java.lang.NoSuchFieldError ?
To: [email protected]
Message-ID:
       <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1

You must ensure the aspect type representing the XML concrete aspect
itself is woven.  See these two bugs in bugzilla:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=166647

https://bugs.eclipse.org/bugs/show_bug.cgi?id=186322

What is the name you are giving your generated aspect?  Is it being
put into the package 'org.objectweb.jonas.webapp.jonasadmin..*' which
would enable it to be included by the <weaver> include statement?

Andy.

On 13/11/2007, Jean-Louis PASTUREL
< [EMAIL PROTECTED]> wrote:
>
>
>
>
> I complete my post :
>
> This pointcut :
>
> expression="within(org.objectweb.jonas.webapp.jonasadmin..* )
> AND  call(public *
> org.objectweb.jonas.webapp.jonasadmin..*(..)) AND
> !cflowbelow(call(public *
> org.objectweb.jonas.webapp.jonasadmin..*(..)) ) "?
>
>
>
>
>
>  doesn't work with the element <weaver> filled like this :
>
> <weaver>
>
>             <include
> within="org.objectweb.jonas.webapp.jonasadmin..*"/>
>
>             </weaver>
>
>
>
>
> When I comment the include tag, it runs ! but there are error send to
> console :
>
>
>
> [EMAIL PROTECTED] ] error can't determine superclass of missing type
> org.objec
>
> tweb.jonas_ws.deployment.lib.MappingFileManager
>
> when weaving type
> org.objectweb.jonas_ws.deployment.api.ServiceRefDesc
>
> when weaving classes
>
> when weaving
>
>  [Xlint:cantFindType]
>
> [EMAIL PROTECTED] error can't determine superclass of missing type
> org.objec
>
> tweb.jonas_ws.deployment.lib.MappingFileManager
>
> when weaving type
> org.objectweb.jonas_ws.deployment.api.ServiceRefDesc
>
> when weaving classes
>
> when weaving
>
>
>
> Is there a precedence between the within clause of aspctj/ concrete-aspect
> tag and the within clause of weaver/include tag ?
>
> Cordialement / Best regards
>
> Jean-Louis PASTUREL
>
>
>
>  ________________________________
>
>
> De : [EMAIL PROTECTED]
> [mailto: [EMAIL PROTECTED] De la part de
> Jean-Louis PASTUREL
>  Envoyé : mardi 13 novembre 2007 09:04
>  À : [email protected]
>  Objet : [aspectj-users] Why i get java.lang.NoSuchFieldError ?
>
>
>
>
> HI
>
> I get this Exception
>  java.lang.NoSuchFieldError:ajc$cfowCounter$0
>
> With a pointcut defined in aop.xml like this :
>
> expression="within(org.objectweb.jonas.webapp.jonasadmin..*)
> AND  call(public *
> org.objectweb.jonas.webapp.jonasadmin..*(..)) AND
> !cflowbelow(call(public *
> org.objectweb.jonas.webapp.jonasadmin..* (..)) ) "?
>
>
>
> When i remove the !cflowbelow(..) condition there is no error.
>
> With AspectJ lastbuild :
> aspectj-DEVELOPMENT-20071112180727.jar. Running on Windows
> XP, JRockit 1.5.0_11
>
>
>
>
>
> Cordialement / Best regards
>
> Jean-Louis PASTUREL
>
>
>
> *********************************
> This message and any attachments (the "message") are confidential and
> intended solely for the addressees.
>  Any unauthorised use or dissemination is prohibited.
>  Messages are susceptible to alteration.
> France Telecom Group shall not be liable for the message if altered,
> changed or falsified.
> If you are not the intended addressee of this message, please cancel it
> immediately and inform the sender.
>  ********************************
>
> *********************************
> This message and any attachments (the "message") are confidential and
> intended solely for the addressees.
>  Any unauthorised use or dissemination is prohibited.
>  Messages are susceptible to alteration.
> France Telecom Group shall not be liable for the message if altered,
> changed or falsified.
> If you are not the intended addressee of this message, please cancel it
> immediately and inform the sender.
>  ********************************
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>


------------------------------

_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users


End of aspectj-users Digest, Vol 33, Issue 15
*********************************************



--
Henrique Mostaert, Departamento de Sistemas Computacionais, UPE
http://www.dsc.upe.br/~hemr
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Dean Wampler, Ph.D.
dean at objectmentor.com
http://www.objectmentor.com
See also:
http://www.aspectprogramming.com  AOP advocacy site
http://aquarium.rubyforge.org     AOP for Ruby
http://www.contract4j.org         Design by Contract for Java5

I want my tombstone to say:
  Unknown Application Error in Dean Wampler.exe.
  Application Terminated.
      [Okay]        [Cancel]



_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to