[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Re: aspectj-users Digest, Vol 33, Issue 18

Henrique,

Contract4J provides incomplete support for inherited contracts. It doesn't support the proper contravariant/covariant behavior. However, it does impose the same contract conditions on derived classes, but only if you annotate any overridden methods that have contracts. This annotation requirement is necessary because Java method annotations aren't inherited. I could hack around this limitation, but so far the only experiments I have tried impose too much runtime overhead and C4J is already too slow!

Supporting proper inheritance behavior is the biggest thing left to do before I release a "1.0" release. I hope to work on this in December and January.

dean

On Nov 16, 2007, at 11:29 AM, Henrique Mostaert wrote:

Dear Dean Wampler,

  Does Contract4J take into account inherited specifcations (specification inheritance model)?
  (e.g., precondition inheritance, postcondition inheritance, invariant inheritance)

  Henrique.

On Nov 14, 2007 12:25 AM, <aspectj-users-request@xxxxxxxxxxx> wrote:
Send aspectj-users mailing list submissions to
       aspectj-users@xxxxxxxxxxx

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
       aspectj-users-request@xxxxxxxxxxx

You can reach the person managing the list at
       aspectj-users-owner@xxxxxxxxxxx

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


Today's Topics:

  1. Re: aspectj-users Digest, Vol 33, Issue 17 (Henrique Mostaert)


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

Message: 1
Date: Tue, 13 Nov 2007 23:25:34 -0300
From: "Henrique Mostaert" <henrique.mr@xxxxxxxxx>
Subject: [aspectj-users] Re: aspectj-users Digest, Vol 33, Issue 17
To: aspectj-users@xxxxxxxxxxx
Message-ID:
       <673df86b0711131825s3ac97c04gedb5bafe8b1654a5@xxxxxxxxxxxxxx >
Content-Type: text/plain; charset="iso-8859-1"

Dear Dean Wampler,

I saw your work (Contract4J)!

*For sure your excellent work will be (appear) my related work in my
following papers and my dissertation.

Thanks!


On Nov 13, 2007 11:03 PM, <aspectj-users-request@xxxxxxxxxxx> wrote:

> Send aspectj-users mailing list submissions to
>         aspectj-users@xxxxxxxxxxx
>
> 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
>        aspectj-users-request@xxxxxxxxxxx
>
> You can reach the person managing the list at
>        aspectj-users-owner@xxxxxxxxxxx
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of aspectj-users digest..."
>
>
> Today's Topics:
>
>   1. Re: Re: aspectj-users Digest, Vol 33, Issue 15 (Dean Wampler)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 13 Nov 2007 20:03:18 -0600
> From: Dean Wampler <dean@xxxxxxxxxxxxxxxxxxxxx>
> Subject: Re: [aspectj-users] Re: aspectj-users Digest, Vol 33, Issue
>        15
> To: aspectj-users@xxxxxxxxxxx
> Message-ID:
>        <6D7B6861-11FE-4875-9E02-0EB77FA85AAF@xxxxxxxxxxxxxxxxxxxxx >
> Content-Type: text/plain; charset="iso-8859-1"
>
>
> 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, < aspectj-users-request@xxxxxxxxxxx> wrote:
> > Send aspectj-users mailing list submissions to
> >        aspectj-users@xxxxxxxxxxx
> >
> > 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
> >        aspectj-users-request@xxxxxxxxxxx
> >
> > You can reach the person managing the list at
> >         aspectj-users-owner@xxxxxxxxxxx
> >
> > 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" < ramnivas@xxxxxxxxxxxxxxx>
> > Subject: Re: [aspectj-users] "About AspectJ creation and After advice"
> > To: aspectj-users@xxxxxxxxxxx
> > Message-ID:
> >        < ef9c6b3b0711130719y1dffa68an37f99fdc48c09f0d@xxxxxxxxxxxxxx>
> > 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 <henrique.mr@xxxxxxxxx>
> > 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
> > > aspectj-users@xxxxxxxxxxx
> > > 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" < andrew.clement@xxxxxxxxx>
> > Subject: Re: [aspectj-users] Why i get java.lang.NoSuchFieldError ?
> > To: aspectj-users@xxxxxxxxxxx
> > Message-ID:
> >        <689d61aa0711130825v2ac4527etf07a177acd0b5d0@xxxxxxxxxxxxxx >
> > 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
> > < jeanlouis.pasturel@xxxxxxxxxxxxxxxxxx> 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 :
> > >
> > >
> > >
> > > [JClassLoader@5164f0 ] 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]
> > >
> > > [JClassLoader@5164f0] 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 : aspectj-users-bounces@xxxxxxxxxxx
> > > [mailto: aspectj-users-bounces@xxxxxxxxxxx] De la part de
> > > Jean-Louis PASTUREL
> > >  Envoyé : mardi 13 novembre 2007 09:04
> > >  À : aspectj-users@xxxxxxxxxxx
> > >  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
> > > aspectj-users@xxxxxxxxxxx
> > > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > >
> > >
> >
> >
> > ------------------------------
> >
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > 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 <http://www.dsc.upe.br/%7Ehemr>
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > 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]
>
>
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:
> https://dev.eclipse.org/mailman/listinfo/aspectj-users/attachments/20071113/dbebdbe2/attachment.html
>
> ------------------------------
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
> End of aspectj-users Digest, Vol 33, Issue 17
> *********************************************
>



--
Henrique Mostaert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://dev.eclipse.org/mailman/listinfo/aspectj-users/attachments/20071113/038eaf41/attachment.html

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

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


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



--
Henrique Mostaert, Departamento de Sistemas Computacionais, UPE
http://www.dsc.upe.br/~hemr
_______________________________________________
aspectj-users mailing list

Dean Wampler, Ph.D.
dean at objectmentor.com
See also:
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]