Re: Completeness and Correctness of AspectJ Weaving
Pascal Costanza <[email protected]> Thu, 22 Jan 2009 14:28:48 +0100
| Newsgroups | gmane.comp.programming.aspect.general |
|---|---|
| Message-ID | <[email protected]> |
--===============6368816714147080576== Content-Type: multipart/alternative; boundary=Apple-Mail-3-920658119 --Apple-Mail-3-920658119 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit On 21 Jan 2009, at 20:21, DIMA MOHAMMED ALHADIDI wrote: > Hi, > > Is AspectJ has a complete and correct weaving taking into > consideration aspect interference and interaction? > > What I mean by completeness that every aspect advice must be applied > at all the join points matched by the associated pointcut whereas > what I mean by correctness that every aspect advice must be applied > only at the join points that match the associated pointcut. There is no such thing as an assurance that all aspects are triggered at a specific join point. If several pieces of advice apply at a join point, the first may, for example, throw an exception, which means that the other ones are not called. Or, the first may be a piece of around advice that doesn't proceed (or worse, proceeds only conditionally). Etc. Pascal -- Pascal Costanza, mailto:[email protected], http://p-cos.net Vrije Universiteit Brussel Programming Technology Lab Artificial Intelligence Lab Pleinlaan 2, B-1050 Brussel, Belgium --Apple-Mail-3-920658119 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable <html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = -webkit-line-break: after-white-space; "><br><div><div>On 21 Jan 2009, = at 20:21, DIMA MOHAMMED ALHADIDI wrote:</div><br = class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><span = class=3D"Apple-style-span" style=3D"border-collapse: separate; color: = rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: 2; text-align: auto; text-indent: = 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: = 0px; -webkit-border-horizontal-spacing: 0px; = -webkit-border-vertical-spacing: 0px; = -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = auto; -webkit-text-stroke-width: 0; "><div ocsi=3D"x"><div><div = dir=3D"ltr"><font face=3D"Tahoma" color=3D"#000000" = size=3D"2">Hi,</font></div><div dir=3D"ltr"><font face=3D"tahoma" = size=3D"2"></font> </div><div dir=3D"ltr"><font face=3D"tahoma" = size=3D"2">Is AspectJ<a></a><span = class=3D"Apple-converted-space"> </span>has a complete and correct = weaving taking into consideration aspect interference and = interaction?</font></div><div dir=3D"ltr"><font face=3D"tahoma" = size=3D"2"></font> </div><div dir=3D"ltr"><font face=3D"CMBX9"><font = face=3D"CMBX9"></font></font><div style=3D"margin-top: 0px; = margin-bottom: 0px; "><font face=3D"CMBX9"><font face=3D"CMBX9"><font = face=3D"Tahoma" size=3D"2">What I mean by = completeness that</font></font></font><font face=3D"Tahoma" = size=3D"2"><span class=3D"Apple-converted-space"> </span>every = aspect advice must be applied<span = class=3D"Apple-converted-space"> </span></font><font size=3D"2"><font= face=3D"Tahoma">at all<span = class=3D"Apple-converted-space"> </span></font><font = face=3D"Tahoma">the join points matched by the = associated pointcut<a></a><span = class=3D"Apple-converted-space"> </span>whereas what I mean = by </font></font><font face=3D"CMR9"><font face=3D"CMR9"><font = face=3D"Tahoma" size=3D"2">correctness that<span = class=3D"Apple-converted-space"> </span></font><font = face=3D"Tahoma"><font face=3D"CMR9"><font face=3D"CMR9"><font = size=3D"2">every aspect advice must be applied<span = class=3D"Apple-converted-space"> </span></font></font></font><font = face=3D"CMTI9"><font face=3D"CMTI9"><font size=3D"2">only at<span = class=3D"Apple-converted-space"> </span></font></font></font><font = face=3D"CMR9"><font face=3D"CMR9"><font size=3D"2">the join points that = match the associated = pointcut<a></a>.</font></font></font></font></font></font></div></div></di= v></div></span></blockquote><br></div><div>There is no such thing as an = assurance that all aspects are triggered at a specific join point. If = several pieces of advice apply at a join point, the first may, for = example, throw an exception, which means that the other ones are not = called. Or, the first may be a piece of around advice that doesn't = proceed (or worse, proceeds only conditionally). = Etc.</div><div><br></div><div><br></div><div>Pascal</div><div><br></div><d= iv apple-content-edited=3D"true"> <span class=3D"Apple-style-span" = style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = white-space: normal; widows: 2; word-spacing: 0px; = -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = auto; -webkit-text-stroke-width: 0; "><div style=3D"word-wrap: = break-word; -webkit-nbsp-mode: space; -webkit-line-break: = after-white-space; "><span class=3D"Apple-style-span" = style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; = widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; = -webkit-border-vertical-spacing: 0px; = -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = auto; -webkit-text-stroke-width: 0px; "><div style=3D"word-wrap: = break-word; -webkit-nbsp-mode: space; -webkit-line-break: = after-white-space; "><span class=3D"Apple-style-span" = style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; = widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; = -webkit-border-vertical-spacing: 0px; = -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = auto; -webkit-text-stroke-width: 0px; "><div style=3D"word-wrap: = break-word; -webkit-nbsp-mode: space; -webkit-line-break: = after-white-space; "><span class=3D"Apple-style-span" = style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; = widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; = -webkit-border-vertical-spacing: 0px; = -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = auto; -webkit-text-stroke-width: 0px; "><div style=3D"word-wrap: = break-word; -webkit-nbsp-mode: space; -webkit-line-break: = after-white-space; "><span class=3D"Apple-style-span" = style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; = widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; = -webkit-border-vertical-spacing: 0px; = -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = auto; -webkit-text-stroke-width: 0px; "><div style=3D"word-wrap: = break-word; -webkit-nbsp-mode: space; -webkit-line-break: = after-white-space; "><span class=3D"Apple-style-span" = style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; -webkit-text-decorations-in-effect: none; = text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div = style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = -webkit-line-break: after-white-space; "><div>-- </div><div>Pascal = Costanza, mailto:[email protected], <a = href=3D"http://p-cos.net">http://p-cos.net</a></div><div>Vrije = Universiteit Brussel</div><div>Programming Technology = Lab</div><div>Artificial Intelligence Lab</div><div>Pleinlaan 2, B-1050 = Brussel, = Belgium</div><div><br></div></div></span></div></span></div></span></div><= /span></div></span></div></span><br class=3D"Apple-interchange-newline"> = </div><br></body></html>= --Apple-Mail-3-920658119-- --===============6368816714147080576== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ discuss mailing list - [email protected] To unsubscribe and change options, go to: http://aosd.net/mailman/listinfo/discuss_aosd.net Check out the AOSD.net Wiki: http://aosd.net/wiki --===============6368816714147080576==--