You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
|
Feb
(5) |
Mar
(8) |
Apr
|
May
(3) |
Jun
|
Jul
(2) |
Aug
(7) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
(14) |
Nov
|
Dec
|
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(6) |
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
|
From: Nicoara A. <ani...@in...> - 2007-10-30 12:14:50
|
Hi Lionel, =20 I already answered to this email in my previous message. I will get back = to you with more information as soon as I can. Thank you for = understanding. =20 Best regards, Angela =20 --- Angela Nicoara ETH Zurich Institute for Pervasive Computing IFW B47.1, ETH Zentrum,=20 8092 Zurich, Switzerland =20 ________________________________ From: jpr...@li... on behalf of Lionel = Sicilia Sent: Fri 10/26/2007 12:28 AM To: jpr...@li... Subject: [Jprose-users] PROSE and Eclipse Hi friends. I am new in this forum. This is my first message here. I am doing an investigation work about AOP frameworks and I have two = questions referred to PROSE. First, I am running under Windows XP without trouble using the cmd = console and Sun JDK 1.4, my "breakpoint" appears when i try to run this = application in Eclipse 3.2. It seems that the command line that it wants = to use is not a valid one. I configured the "pseudo-jre" and I add to = the path the cygwin/bin, but it doesn=B4t work. The second problem that = I have is that I have found in the PROSE specs the posibility to modify = the methods (what is around in AspectJ) but I can not find the way to do = this, even in that docs or specs.=20 Thanks for your answer, greetings from Argentina... =20 Lionel Sicilia. |
|
From: Lionel S. <lio...@gm...> - 2007-10-25 22:28:01
|
Hi friends. I am new in this forum. This is my first message here. I am doing an investigation work about AOP frameworks and I have two questions referred to PROSE. First, I am running under Windows XP without trouble using the cmd console and Sun JDK 1.4, my "breakpoint" appears when i try to run this application in Eclipse 3.2. It seems that the command line that it wants to use is not = a valid one. I configured the "pseudo-jre" and I add to the path the cygwin/bin, but it doesn=B4t work. The second problem that I have is that I have found in the PROSE specs the posibility to modify the methods (what is around in AspectJ) but I can not find the way to do this, even in that docs or specs. Thanks for your answer, greetings from Argentina... Lionel Sicilia. |
|
From: Nicoara A. <ani...@in...> - 2007-10-04 10:19:20
|
Hi DK,
I have attached to this email two examples that show how to use the =
"ConstructorCut" in PROSE. "ConstructorCut" intercepts all object =
instantiations ("new" operations). "ExampleConstructor.java" is the main =
application that will be crosscutted by the =
"ExampleConstructorAspect1.java" and "ExampleConstructorAspect2.java" =
aspects attached to this email.
"ConstructorCut" is supported only by the "Stub and Advice weavers" =
implementation based on the Sun JVM. This implementation supports code =
replacement at runtime.
The "Stub and Advice weavers" implementations for Sun JVM and Jikes RVM =
evolved a lot in the last period of time. It has now advanced features =
for runtime adaptation. The last version containing the most advanced =
features described also in my last paper is not yet released. As I =
already mentioned, I plan to make a new release in the future.
Best regards,
---
Angela Nicoara
ETH Zurich
Institute for Pervasive Computing
IFW B47.1, ETH Zentrum,
8092 Zurich, Switzerland
http://people.inf.ethz.ch/anicoara/
-----Original Message-----
From: jpr...@li... on behalf of Dongkwan =
Kim
Sent: Wed 10/3/2007 10:52 PM
To: jpr...@li...
Subject: [Jprose-users] ConstructorCut class
=20
Hi all,
I'm a newbie for PROSE 1.3.
Can anyone explain me how to use "ConstructorCut" class? How can we =
crosscut
constructors of classes in PROSE 1.3? It would be good if you give any
example.
Thanks,
DK
|
|
From: Dongkwan K. <vtd...@gm...> - 2007-10-03 20:52:34
|
Hi all, I'm a newbie for PROSE 1.3. Can anyone explain me how to use "ConstructorCut" class? How can we crosscut constructors of classes in PROSE 1.3? It would be good if you give any example. Thanks, DK |
|
From: Nicoara A. <ani...@in...> - 2007-07-27 10:45:16
|
Hi Javier, =20 Thank you for your interest in the PROSE project. I am glad you find it = interesting. =20 Regarding your question:=20 =20 "MethodRedefineCut" is a powerful construct in PROSE that allows to = replace method bodies. Method redefinition is used for adaptations that = involve changes to the current behavior. An example can be replacement = of communication protocols. =20 There is a new PROSE paper that I have recently made it available. The = paper title is: "Controlled, systematic, and efficient code replacement = for running Java programs", Angela Nicoara, Gustavo Alonso, Thomas = Gross, Timothy Roscoe and is available on the project website: = http://prose.ethz.ch/Wiki.jsp?page=3DPublications = <https://mail.ethz.ch/exchweb/bin/redir.asp?URL=3Dhttp://prose.ethz.ch/Wi= ki.jsp?page=3DPublications> . =20 The paper describes in detail the new version of the PROSE system. The = system performs reversible and systematic changes to running Java = applications without requiring them to be shutdown. Modifications take = the form of replacement method bodies, and can use both type-based and = regular expression patterns to select code for replacement. =20 The answers to your questions and also code samples can be found in the = above paper. =20 I intend to make a new release of the PROSE system described in the = above paper and also more documentation available in due course on the = project website. =20 Best regards, --- Angela Nicoara ETH Zurich Institute for Pervasive Computing IFW B47.1, ETH Zentrum,=20 8092 Zurich, Switzerland http://people.inf.ethz.ch/anicoara/ = <https://mail.ethz.ch/exchweb/bin/redir.asp?URL=3Dhttp://people.inf.ethz.= ch/anicoara/> = <https://mail.ethz.ch/exchweb/bin/redir.asp?URL=3Dhttps://mail.ethz.ch/ex= chweb/bin/redir.asp?URL=3Dhttp://www.inf.ethz.ch/personal/anicoara/>=20 ________________________________ From: jpr...@li... on behalf of Javier = C=E1mara Moreno Sent: Mon 7/23/2007 9:47 AM To: jpr...@li... Subject: [Jprose-users] Replacement of communication protocol Hi everybody, I'm new to PROSE, but I find it quite interesting. Specifically, I am interested in the replacement of communication protocols. I guess that I must use a MethodRedefineCut in order to substitute method invocations between different classes. So far, I've been able to find code samples such as the ones provided with PROSE, or the ones described in the related papers (very similar): public class ExampleRedefineAspect extends DefaultAspect { public Crosscut c =3D new MethodRedefineCut() { public void METHOD_ARGS(Foo obj, String arg, REST x) { // Code substituting the original method invocation... } protected PointCutter pointCutter() { return ( (Within.method("bar.*")) .AND (Within.type("Foo.*")) ); } }; } The thing is that I've read that this kind of aspect has some limitations. In particular I quote: "When writing an advice method for a method redefinition, the resulting bytecode is transplanted into the methods that will be redefined. References to the current aspect instance are not allowed since the aspect object is not available in the captured methods. This means that the this keyword cannot be used in the advice method. Even implicit this references are not allowed (no instance field reference and no instance method invocation on the current object). Especially, getThis- JoinPoint() is not possible in such an advice method." My question is: Is there a way to access the original method invocation that we are substituting (e.g., method signature, parameter values, etc.)? I know how to do that in AspectJ, but here I'm a little bit lost. If anybody has some insights on the problem, or some code samples to share, I'd appreciate it very much :) Thanks very much in advance -------------------------------------------- Javier C=E1mara Moreno Dpto. Lenguajes y Ciencias de la Computaci=F3n Universidad de M=E1laga Laboratorio 3.3.3 ETSI Inform=E1tica Campus Teatinos 29071 M=E1laga (SPAIN) Tel: +34 952 13 28 46 Fax: +34 952 13 13 97 --------------------------------------------- -------------------------------------------------------------------------= This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Jprose-users mailing list Jpr...@li... https://lists.sourceforge.net/lists/listinfo/jprose-users |
|
From: Nicoara A. <ani...@in...> - 2007-07-27 10:19:53
|
Hi Javier, =20 Thank you for your interest in the PROSE project. I am glad you find it = interesting. =20 Regarding your question:=20 =20 "MethodRedefineCut" is a powerful construct in PROSE that allows to = replace method bodies. Method redefinition is used for adaptations that = involve changes to the current behavior. An example can be replacement = of communication protocols. =20 There is a new PROSE paper that I have recently made it available. The = paper title is: "Controlled, systematic, and efficient code replacement = for running Java programs", Angela Nicoara, Gustavo Alonso, Thomas = Gross, Timothy Roscoe and is available on the project website: = http://prose.ethz.ch/Wiki.jsp?page=3DPublications = <https://mail.ethz.ch/exchweb/bin/redir.asp?URL=3Dhttp://prose.ethz.ch/Wi= ki.jsp?page=3DPublications> . =20 The paper describes in detail the new version of the PROSE system. The = system performs reversible and systematic changes to running Java = applications without requiring them to be shutdown. Modifications take = the form of replacement method bodies, and can use both type-based and = regular expression patterns to select code for replacement. =20 The answers to your questions and also code samples can be found in the = above paper. =20 I intend to make a new release of the PROSE system described in the = above paper and also more documentation available in due course on the = project website. =20 Best regards, --- Angela Nicoara ETH Zurich Institute for Pervasive Computing IFW B47.1, ETH Zentrum,=20 8092 Zurich, Switzerland http://people.inf.ethz.ch/anicoara/ = <https://mail.ethz.ch/exchweb/bin/redir.asp?URL=3Dhttp://people.inf.ethz.= ch/anicoara/> = <https://mail.ethz.ch/exchweb/bin/redir.asp?URL=3Dhttps://mail.ethz.ch/ex= chweb/bin/redir.asp?URL=3Dhttp://www.inf.ethz.ch/personal/anicoara/>=20 ________________________________ From: jpr...@li... on behalf of Javier = C=E1mara Moreno Sent: Mon 7/23/2007 9:47 AM To: jpr...@li... Subject: [Jprose-users] Replacement of communication protocol Hi everybody, I'm new to PROSE, but I find it quite interesting. Specifically, I am interested in the replacement of communication protocols. I guess that I must use a MethodRedefineCut in order to substitute method invocations between different classes. So far, I've been able to find code samples such as the ones provided with PROSE, or the ones described in the related papers (very similar): public class ExampleRedefineAspect extends DefaultAspect { public Crosscut c =3D new MethodRedefineCut() { public void METHOD_ARGS(Foo obj, String arg, REST x) { // Code substituting the original method invocation... } protected PointCutter pointCutter() { return ( (Within.method("bar.*")) .AND (Within.type("Foo.*")) ); } }; } The thing is that I've read that this kind of aspect has some limitations. In particular I quote: "When writing an advice method for a method redefinition, the resulting bytecode is transplanted into the methods that will be redefined. References to the current aspect instance are not allowed since the aspect object is not available in the captured methods. This means that the this keyword cannot be used in the advice method. Even implicit this references are not allowed (no instance field reference and no instance method invocation on the current object). Especially, getThis- JoinPoint() is not possible in such an advice method." My question is: Is there a way to access the original method invocation that we are substituting (e.g., method signature, parameter values, etc.)? I know how to do that in AspectJ, but here I'm a little bit lost. If anybody has some insights on the problem, or some code samples to share, I'd appreciate it very much :) Thanks very much in advance -------------------------------------------- Javier C=E1mara Moreno Dpto. Lenguajes y Ciencias de la Computaci=F3n Universidad de M=E1laga Laboratorio 3.3.3 ETSI Inform=E1tica Campus Teatinos 29071 M=E1laga (SPAIN) Tel: +34 952 13 28 46 Fax: +34 952 13 13 97 --------------------------------------------- -------------------------------------------------------------------------= This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Jprose-users mailing list Jpr...@li... https://lists.sourceforge.net/lists/listinfo/jprose-users |
|
From: Nicoara A. <ani...@in...> - 2007-07-27 09:42:04
|
________________________________ From: Nicoara Angela Sent: Thu 7/26/2007 11:35 PM To: jpr...@li... Cc: jc...@lc... Subject: RE: [Jprose-users] Replacement of communication protocol Hi Javier, =20 Thank you for your interest in the PROSE project. I am glad you find it = interesting. =20 Regarding your question:=20 =20 "MethodRedefineCut" is a powerful construct in PROSE that allows to = replace method bodies. Method redefinition is used for adaptations that = involve changes to the current behavior. An example can be replacement = of communication protocols. =20 There is a new PROSE paper that I have recently made it available. The = paper title is: "Controlled, systematic, and efficient code replacement = for running Java programs", Angela Nicoara, Gustavo Alonso, Thomas = Gross, Timothy Roscoe and is available on the project website: = http://prose.ethz.ch/Wiki.jsp?page=3DPublications = <http://prose.ethz.ch/Wiki.jsp?page=3DPublications> . =20 The paper describes in detail the new version of the PROSE system. The = system performs reversible and systematic changes to running Java = applications without requiring them to be shutdown. Modifications take = the form of replacement method bodies, and can use both type-based and = regular expression patterns to select code for replacement. =20 The answers to your questions and also code samples can be found in the = above paper. =20 I intend to make a new release of the PROSE system described in the = above paper and also more documentation available in due course on the = project website. =20 Best regards, --- Angela Nicoara ETH Zurich Institute for Pervasive Computing IFW B47.1, ETH Zentrum,=20 8092 Zurich, Switzerland http://people.inf.ethz.ch/anicoara/ = <https://mail.ethz.ch/exchweb/bin/redir.asp?URL=3Dhttp://www.inf.ethz.ch/= personal/anicoara/>=20 ________________________________ From: jpr...@li... on behalf of Javier = C=E1mara Moreno Sent: Mon 7/23/2007 9:47 AM To: jpr...@li... Subject: [Jprose-users] Replacement of communication protocol Hi everybody, I'm new to PROSE, but I find it quite interesting. Specifically, I am interested in the replacement of communication protocols. I guess that I must use a MethodRedefineCut in order to substitute method invocations between different classes. So far, I've been able to find code samples such as the ones provided with PROSE, or the ones described in the related papers (very similar): public class ExampleRedefineAspect extends DefaultAspect { public Crosscut c =3D new MethodRedefineCut() { public void METHOD_ARGS(Foo obj, String arg, REST x) { // Code substituting the original method invocation... } protected PointCutter pointCutter() { return ( (Within.method("bar.*")) .AND (Within.type("Foo.*")) ); } }; } The thing is that I've read that this kind of aspect has some limitations. In particular I quote: "When writing an advice method for a method redefinition, the resulting bytecode is transplanted into the methods that will be redefined. References to the current aspect instance are not allowed since the aspect object is not available in the captured methods. This means that the this keyword cannot be used in the advice method. Even implicit this references are not allowed (no instance field reference and no instance method invocation on the current object). Especially, getThis- JoinPoint() is not possible in such an advice method." My question is: Is there a way to access the original method invocation that we are substituting (e.g., method signature, parameter values, etc.)? I know how to do that in AspectJ, but here I'm a little bit lost. If anybody has some insights on the problem, or some code samples to share, I'd appreciate it very much :) Thanks very much in advance -------------------------------------------- Javier C=E1mara Moreno Dpto. Lenguajes y Ciencias de la Computaci=F3n Universidad de M=E1laga Laboratorio 3.3.3 ETSI Inform=E1tica Campus Teatinos 29071 M=E1laga (SPAIN) Tel: +34 952 13 28 46 Fax: +34 952 13 13 97 --------------------------------------------- -------------------------------------------------------------------------= This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Jprose-users mailing list Jpr...@li... https://lists.sourceforge.net/lists/listinfo/jprose-users |
|
From: Nicoara A. <ani...@in...> - 2007-07-26 21:37:34
|
Hi Javier, =20 Thank you for your interest in the PROSE project. I am glad you find it = interesting. =20 Regarding your question:=20 =20 "MethodRedefineCut" is a powerful construct in PROSE that allows to = replace method bodies. Method redefinition is used for adaptations that = involve changes to the current behavior. An example can be replacement = of communication protocols. =20 There is a new PROSE paper that I have recently made it available. The = paper title is: "Controlled, systematic, and efficient code replacement = for running Java programs", Angela Nicoara, Gustavo Alonso, Thomas = Gross, Timothy Roscoe and is available on the project website: = http://prose.ethz.ch/Wiki.jsp?page=3DPublications = <http://prose.ethz.ch/Wiki.jsp?page=3DPublications> . =20 The paper describes in detail the new version of the PROSE system. The = system performs reversible and systematic changes to running Java = applications without requiring them to be shutdown. Modifications take = the form of replacement method bodies, and can use both type-based and = regular expression patterns to select code for replacement. =20 The answers to your questions and also code samples can be found in the = above paper. =20 I intend to make a new release of the PROSE system described in the = above paper and also more documentation available in due course on the = project website. =20 Best regards, --- Angela Nicoara ETH Zurich Institute for Pervasive Computing IFW B47.1, ETH Zentrum,=20 8092 Zurich, Switzerland http://people.inf.ethz.ch/anicoara/ = <https://mail.ethz.ch/exchweb/bin/redir.asp?URL=3Dhttp://www.inf.ethz.ch/= personal/anicoara/>=20 ________________________________ From: jpr...@li... on behalf of Javier = C=E1mara Moreno Sent: Mon 7/23/2007 9:47 AM To: jpr...@li... Subject: [Jprose-users] Replacement of communication protocol Hi everybody, I'm new to PROSE, but I find it quite interesting. Specifically, I am interested in the replacement of communication protocols. I guess that I must use a MethodRedefineCut in order to substitute method invocations between different classes. So far, I've been able to find code samples such as the ones provided with PROSE, or the ones described in the related papers (very similar): public class ExampleRedefineAspect extends DefaultAspect { public Crosscut c =3D new MethodRedefineCut() { public void METHOD_ARGS(Foo obj, String arg, REST x) { // Code substituting the original method invocation... } protected PointCutter pointCutter() { return ( (Within.method("bar.*")) .AND (Within.type("Foo.*")) ); } }; } The thing is that I've read that this kind of aspect has some limitations. In particular I quote: "When writing an advice method for a method redefinition, the resulting bytecode is transplanted into the methods that will be redefined. References to the current aspect instance are not allowed since the aspect object is not available in the captured methods. This means that the this keyword cannot be used in the advice method. Even implicit this references are not allowed (no instance field reference and no instance method invocation on the current object). Especially, getThis- JoinPoint() is not possible in such an advice method." My question is: Is there a way to access the original method invocation that we are substituting (e.g., method signature, parameter values, etc.)? I know how to do that in AspectJ, but here I'm a little bit lost. If anybody has some insights on the problem, or some code samples to share, I'd appreciate it very much :) Thanks very much in advance -------------------------------------------- Javier C=E1mara Moreno Dpto. Lenguajes y Ciencias de la Computaci=F3n Universidad de M=E1laga Laboratorio 3.3.3 ETSI Inform=E1tica Campus Teatinos 29071 M=E1laga (SPAIN) Tel: +34 952 13 28 46 Fax: +34 952 13 13 97 --------------------------------------------- -------------------------------------------------------------------------= This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Jprose-users mailing list Jpr...@li... https://lists.sourceforge.net/lists/listinfo/jprose-users |
|
From: Nicoara A. <ani...@in...> - 2007-07-26 21:23:44
|
Hi Javier, =20 Thank you for your interest in the PROSE project. I am glad you find it = interesting. =20 Regarding your question:=20 =20 "MethodRedefineCut" is a powerful construct in PROSE that allows to = replace method bodies. Method redefinition is used for adaptations that = involve changes to the current behavior. An example can be replacement = of communication protocols. =20 There is a new PROSE paper that I have recently made it available. The = paper title is: "Controlled, systematic, and efficient code replacement = for running Java programs", Angela Nicoara, Gustavo Alonso, Thomas = Gross, Timothy Roscoe and is available on the project website: = http://prose.ethz.ch/Wiki.jsp?page=3DPublications = <http://prose.ethz.ch/Wiki.jsp?page=3DPublications> . =20 The paper describes in detail the new version of the PROSE system. The = system performs reversible and systematic changes to running Java = applications without requiring them to be shutdown. Modifications take = the form of replacement method bodies, and can use both type-based and = regular expression patterns to select code for replacement. =20 The answers to your questions and also code samples can be found in the = above paper. =20 I intend to make a new release of the PROSE system described in the = above paper and also more documentation available in due course on the = project website. =20 Best regards, --- Angela Nicoara ETH Zurich Institute for Pervasive Computing IFW B47.1, ETH Zentrum,=20 8092 Zurich, Switzerland http://people.inf.ethz.ch/anicoara/ = <https://mail.ethz.ch/exchweb/bin/redir.asp?URL=3Dhttp://www.inf.ethz.ch/= personal/anicoara/>=20 ________________________________ From: jpr...@li... on behalf of Javier = C=E1mara Moreno Sent: Mon 7/23/2007 9:47 AM To: jpr...@li... Subject: [Jprose-users] Replacement of communication protocol Hi everybody, I'm new to PROSE, but I find it quite interesting. Specifically, I am interested in the replacement of communication protocols. I guess that I must use a MethodRedefineCut in order to substitute method invocations between different classes. So far, I've been able to find code samples such as the ones provided with PROSE, or the ones described in the related papers (very similar): public class ExampleRedefineAspect extends DefaultAspect { public Crosscut c =3D new MethodRedefineCut() { public void METHOD_ARGS(Foo obj, String arg, REST x) { // Code substituting the original method invocation... } protected PointCutter pointCutter() { return ( (Within.method("bar.*")) .AND (Within.type("Foo.*")) ); } }; } The thing is that I've read that this kind of aspect has some limitations. In particular I quote: "When writing an advice method for a method redefinition, the resulting bytecode is transplanted into the methods that will be redefined. References to the current aspect instance are not allowed since the aspect object is not available in the captured methods. This means that the this keyword cannot be used in the advice method. Even implicit this references are not allowed (no instance field reference and no instance method invocation on the current object). Especially, getThis- JoinPoint() is not possible in such an advice method." My question is: Is there a way to access the original method invocation that we are substituting (e.g., method signature, parameter values, etc.)? I know how to do that in AspectJ, but here I'm a little bit lost. If anybody has some insights on the problem, or some code samples to share, I'd appreciate it very much :) Thanks very much in advance -------------------------------------------- Javier C=E1mara Moreno Dpto. Lenguajes y Ciencias de la Computaci=F3n Universidad de M=E1laga Laboratorio 3.3.3 ETSI Inform=E1tica Campus Teatinos 29071 M=E1laga (SPAIN) Tel: +34 952 13 28 46 Fax: +34 952 13 13 97 --------------------------------------------- -------------------------------------------------------------------------= This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Jprose-users mailing list Jpr...@li... https://lists.sourceforge.net/lists/listinfo/jprose-users |
|
From: <jc...@lc...> - 2007-07-23 07:44:07
|
Hi everybody,
I'm new to PROSE, but I find it quite interesting. Specifically, I am
interested in the replacement of communication protocols. I guess that I
must use a MethodRedefineCut in order to substitute method invocations
between different classes. So far, I've been able to find code samples
such as the ones provided with PROSE, or the ones described in the
related papers (very similar):
public class ExampleRedefineAspect extends DefaultAspect {
public Crosscut c = new MethodRedefineCut() {
public void METHOD_ARGS(Foo obj, String arg, REST x) {
// Code substituting the original method invocation...
}
protected PointCutter pointCutter() {
return ( (Within.method("bar.*")) .AND
(Within.type("Foo.*")) );
}
};
}
The thing is that I've read that this kind of aspect has some
limitations. In particular I quote:
"When writing an advice method for a method
redefinition, the resulting bytecode is transplanted into the methods
that will be redefined.
References to the current aspect instance are not allowed since the
aspect object is
not available in the captured methods. This means that the this keyword
cannot be used
in the advice method. Even implicit this references are not allowed (no
instance field
reference and no instance method invocation on the current object).
Especially, getThis-
JoinPoint() is not possible in such an advice method."
My question is: Is there a way to access the original method invocation
that we are substituting (e.g., method signature, parameter values,
etc.)? I know how to do that in AspectJ, but here I'm a little bit lost.
If anybody has some insights on the problem, or some code samples to
share, I'd appreciate it very much :)
Thanks very much in advance
--------------------------------------------
Javier Cámara Moreno
Dpto. Lenguajes y Ciencias de la Computación
Universidad de Málaga
Laboratorio 3.3.3 ETSI Informática
Campus Teatinos 29071 Málaga (SPAIN)
Tel: +34 952 13 28 46
Fax: +34 952 13 13 97
---------------------------------------------
|
|
From: Michael H. <ha...@in...> - 2005-10-13 15:20:39
|
Hi, Michael Haupt wrote: > to be a little more specific about this... me bad. To be specific, I should also post the measurement application I employ. :-P It's attached. Best, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Michael H. <ha...@in...> - 2005-10-13 15:15:49
|
Hi again,
Michael Haupt wrote:
> What puzzles me is that the advice indeed are executed, but only twice.
> Very funny. :-(
to be a little more specific about this... below are my two cuts for
field accesses. The AccessTester class has these eight fields, they are
of the type Object.
On PROSE/SunJVM, *this works*.
On PROSE/Jikes (stub/advice weaver), it *fails*: the advice for
SimpleBeforeGet is *never* invoked, and the advice for SimpleBeforeSet
is invoked exactly twice.
I assume the cuts are correct, since they work on PROSE/Sun. What *is*
wrong?
I'd be very grateful if someone could comment on this. I'm always happy
to admit mistakes, maybe I have missed something subtle. :-)
Best,
Michael
-----
public class SimpleBeforeGet extends GetCut {
protected PointCutter pointCutter() {
return Fields.named("ga").
OR(Fields.named("gb")).
OR(Fields.named("gc")).
OR(Fields.named("gd"));
}
int c = 0;
public void GET_ARGS(AccessTester target, Object o) {
c++;
}
}
-----
-----
public class SimpleBeforeSet extends SetCut {
protected PointCutter pointCutter() {
return Fields.named("sa").
OR(Fields.named("sb")).
OR(Fields.named("sc")).
OR(Fields.named("sd"));
}
int c = 0;
public void SET_ARGS(AccessTester target, Object o) {
c++;
}
}
-----
--
Dipl.-Ing. Michael Haupt ha...@in...
Software Technology Group Phone: ++49 (0) 6151-16-5306
Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410
Hochschulstr. 10, 64289 Darmstadt, Germany
http://www.st.informatik.tu-darmstadt.de/
|
|
From: Michael H. <ha...@in...> - 2005-10-13 09:51:33
|
Hi again, Nicoara Angela wrote: > The "getResult()" feature is supported in the Prose "stub and advice > weavers" implementations for SUN JVM (based on Hotswap mechanism > using JVMDI or JVMTI). so it's not available in the Jikes stub and advice weaver? (This is the version I use in Jikes, and it also throws an exception.) If it is implemented for the Sun Java 5 VM, how can I *deliberately* make the Sun JVM run in this configuration? (The performance results I get suggest that it uses debugger events.) Best, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Michael H. <ha...@in...> - 2005-10-13 09:44:01
|
Hi Angela, Nicoara Angela wrote: > You didn't mention which Prose version for Jikes you are using. stub and advice weaver. No errors occurred during patching and building Jikes. > Regarding your experiments, we don't have any strange behavior like > you have. We did extensive experiments and the system behavior it's > correct. We don't have any problems with put/get operations. Make > sure that your system configuration is correct. I think it is; other advice run perfectly well. What puzzles me is that the advice indeed are executed, but only twice. Very funny. :-( > The weaving mechanism for field accesses for Jikes RVM stub and > advice weavers is explained in the "Dynamic AOP with PROSE - Angela > Nicoara, Gustavo Alonso" paper that can be found on our publications > list. I'll have another good look at that, thanks, Best, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Nicoara A. <ani...@in...> - 2005-10-13 09:30:31
|
Hi Michael,
=20
The "getResult()" feature is supported in the Prose "stub and advice =
weavers" implementations for SUN JVM (based on Hotswap mechanism using =
JVMDI or JVMTI). This information can be found also on the Prose =
website.
=20
The Prose implementations based on the event notification mechanism =
(JVMDI and JVMTI implementations) don't support yet this feature.
=20
Regards,
Angela Nicoara
=20
________________________________
From: jpr...@li... on behalf of Michael =
Haupt
Sent: Thu 10/13/2005 10:30 AM
To: jpr...@li...
Subject: [Jprose-users] method exit: getResult() not implemented?
Hi,
here's my MethodCut (or, the relevant parts):
-----
protected PointCutter pointCutter() {
return Executions.after().AND(Within.method("ret_instance_method"));
}
int c =3D 0;
Object dummy;
public void METHOD_ARGS(MethodTester target) {
c++;
dummy =3D ((MethodExitJoinPoint) thisJoinPoint()).getResult();
}
-----
The trouble is, I get an exception saying "MethodExit getResult not
implemented". Did I use a wrong JoinPoint interface in the cast, or is
that feature really missing?
Best,
Michael
--
Dipl.-Ing. Michael Haupt ha...@in...
Software Technology Group Phone: ++49 (0) 6151-16-5306
Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410
Hochschulstr. 10, 64289 Darmstadt, Germany
http://www.st.informatik.tu-darmstadt.de/
|
|
From: Nicoara A. <ani...@in...> - 2005-10-13 09:29:50
|
Hi Michael, =20 Regarding your questions: =20 We provide two possibilities to run Prose on Jikes:=20 - Jikes RVM stub and advice weavers (Hotswap) - Jikes RVM hook weaver =20 You didn't mention which Prose version for Jikes you are using. To = better clarify, to run Prose on Jikes RVM you need to apply the correct = patch to the specific Jikes RVM and then build and run the system. More = details about how to run Prose can be found in the Prose documentation = and Prose website. =20 Regarding your experiments, we don't have any strange behavior like you = have. We did extensive experiments and the system behavior it's correct. = We don't have any problems with put/get operations. Make sure that your = system configuration is correct. =20 The weaving mechanism for field accesses for Jikes RVM stub and advice = weavers is explained in the "Dynamic AOP with PROSE - Angela Nicoara, = Gustavo Alonso" paper that can be found on our publications list. =20 Regards, Angela Nicoara =20 =20 ________________________________ From: jpr...@li... on behalf of Michael = Haupt Sent: Wed 10/12/2005 11:39 PM To: jpr...@li... Subject: [Jprose-users] strange behaviour of Jikes-PROSE Hi, during the execution of some field get/put benchmarks, I have come across some very strange behaviour of PROSE in its Jikes version. The benchmark is a micro-benchmark, measuring the amount of field get/put operations that PROSE can perform when advice are attached to the get/put operations. This means that these operations are carried out *very* often. The benchmark first measures for put, and then for get. The advice attached to the put operations is only ever executed exactly *twice*, and the advice attached to the get operations is *never* = executed. Do you have any explanations for this? How *exactly* does weaving for field accesses work? Aren't they also located in the bytecode? I can only come up with this: the VM optimises away the benchmark instructions because it sees that the values don't go anywhere. (The Jikes opt compiler is pretty neat at such things.) But the mechanism PROSE uses to address field accesses seems to be incompatible with this. How is it done? I'd really appreciate input on this... Best, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Nicoara A. <ani...@in...> - 2005-10-13 09:27:46
|
Hi Michael, =20 We are working on the "proceed" feature and may be included in a next = release. In the paper that I have mentioned we support method = redefinitions, but without the "proceed" feature. The implementation = mechanism it's explained in detail in the paper mentioned before. =20 Regards, Angela Nicoara ________________________________ From: jpr...@li... on behalf of Michael = Haupt Sent: Mon 10/10/2005 8:49 PM To: jpr...@li... Subject: RE: [Jprose-users] status of PROSE Hi Angela, thank you for your answers. Nicoara Angela said: > 1) PROSE 1.3.0 supports around advice for methods. Is proceed() supported by now? I recall that the implementation = described in the paper you mentioned does only support method redefinitions, but without the ability to invoking the original method. Best regards, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ ------------------------------------------------------- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, = discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl _______________________________________________ Jprose-users mailing list Jpr...@li... https://lists.sourceforge.net/lists/listinfo/jprose-users |
|
From: Michael H. <ha...@in...> - 2005-10-13 08:30:36
|
Hi,
here's my MethodCut (or, the relevant parts):
-----
protected PointCutter pointCutter() {
return Executions.after().AND(Within.method("ret_instance_method"));
}
int c = 0;
Object dummy;
public void METHOD_ARGS(MethodTester target) {
c++;
dummy = ((MethodExitJoinPoint) thisJoinPoint()).getResult();
}
-----
The trouble is, I get an exception saying "MethodExit getResult not
implemented". Did I use a wrong JoinPoint interface in the cast, or is
that feature really missing?
Best,
Michael
--
Dipl.-Ing. Michael Haupt ha...@in...
Software Technology Group Phone: ++49 (0) 6151-16-5306
Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410
Hochschulstr. 10, 64289 Darmstadt, Germany
http://www.st.informatik.tu-darmstadt.de/
|
|
From: Michael H. <ha...@in...> - 2005-10-12 21:40:11
|
Hi, during the execution of some field get/put benchmarks, I have come across some very strange behaviour of PROSE in its Jikes version. The benchmark is a micro-benchmark, measuring the amount of field get/put operations that PROSE can perform when advice are attached to the get/put operations. This means that these operations are carried out *very* often. The benchmark first measures for put, and then for get. The advice attached to the put operations is only ever executed exactly *twice*, and the advice attached to the get operations is *never* executed. Do you have any explanations for this? How *exactly* does weaving for field accesses work? Aren't they also located in the bytecode? I can only come up with this: the VM optimises away the benchmark instructions because it sees that the values don't go anywhere. (The Jikes opt compiler is pretty neat at such things.) But the mechanism PROSE uses to address field accesses seems to be incompatible with this. How is it done? I'd really appreciate input on this... Best, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Michael H. <ha...@st...> - 2005-10-10 18:49:50
|
Hi Angela, thank you for your answers. Nicoara Angela said: > 1) PROSE 1.3.0 supports around advice for methods. Is proceed() supported by now? I recall that the implementation described in the paper you mentioned does only support method redefinitions, but without the ability to invoking the original method. Best regards, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Nicoara A. <ani...@in...> - 2005-10-10 18:30:02
|
Hi Michael, =20 > to be more precise about this: does it exploit Java 5 HotSwap features (JVMTI), or does the VM have to run in debugging mode to use HotSwap? =20 PROSE Hotswap implementations are available for SUN JDK 1.4 and 1.5.=20 To better clarify, we support four possibilities to run PROSE on SUN VM: - two of them based on event notification mechanism (JVMDI and JVMTI = implementations), and - two based on Hotswap mechanism (using JVMDI or JVMTI) Best regards, Angela Nicoara ________________________________ From: jpr...@li... on behalf of Michael = Haupt Sent: Fri 10/7/2005 2:29 PM To: jpr...@li... Subject: Re: [Jprose-users] status of PROSE Hi again, Michael Haupt wrote: > Does the version of PROSE running on the Sun VM still exploit debugger > breakpoints, or does it run using HotSwap? to be more precise about this: does it exploit Java 5 HotSwap features (JVMTI), or does the VM have to run in debugging mode to use HotSwap? Best, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Nicoara A. <ani...@in...> - 2005-10-10 18:29:21
|
Hi Michael, =20 Regarding your questions: =20 1) PROSE 1.3.0 supports around advice for methods. More details about = the implementation can be found in the following paper: "Dynamic AOP = with PROSE - Angela Nicoara, Gustavo Alonso", which is available in our = publications list. The implementation may be extended in the next = release. =20 2) PROSE for SUN VM can either use the event notification mechanism = (debugger breakpoints) or the Hotswap mechanism, depending on the = startup scripts used. =20 Best regards, Angela Nicoara =20 ________________________________ From: jpr...@li... on behalf of Michael = Haupt Sent: Fri 10/7/2005 1:50 PM To: jpr...@li... Subject: [Jprose-users] status of PROSE Hi, I've got some quick questions on PROSE 1.3.0. Does it support around advice? If so, how? Does the version of PROSE running on the Sun VM still exploit debugger breakpoints, or does it run using HotSwap? Thanks, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Michael H. <ha...@in...> - 2005-10-07 12:29:50
|
Hi again, Michael Haupt wrote: > Does the version of PROSE running on the Sun VM still exploit debugger > breakpoints, or does it run using HotSwap? to be more precise about this: does it exploit Java 5 HotSwap features (JVMTI), or does the VM have to run in debugging mode to use HotSwap? Best, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Michael H. <ha...@in...> - 2005-10-07 11:51:04
|
Hi, I've got some quick questions on PROSE 1.3.0. Does it support around advice? If so, how? Does the version of PROSE running on the Sun VM still exploit debugger breakpoints, or does it run using HotSwap? Thanks, Michael -- Dipl.-Ing. Michael Haupt ha...@in... Software Technology Group Phone: ++49 (0) 6151-16-5306 Darmstadt University of Technology Fax: ++49 (0) 6151-16-5410 Hochschulstr. 10, 64289 Darmstadt, Germany http://www.st.informatik.tu-darmstadt.de/ |
|
From: Nicoara A. <ani...@in...> - 2005-07-26 14:49:12
|
Hi Phil, Thanks for your interest in PROSE. =20 The "around" advice in PROSE is implemented through direct advice = weaving. Method redefinition is done by replacing the original method = bytecode with the new bytecode at runtime. The current implementation of the "around" advice in PROSE doesn't = support yet the "proceed" feature as in AspectJ because we didn't need = this feature until now. This is the first version of the "around" advice = implementation and it may be extended in the future. =20 Best regards, Angela Nicoara =20 ________________________________ From: jpr...@li... on behalf of Phil = Greenwood Sent: Mon 7/25/2005 1:04 PM To: jpr...@li... Subject: [Jprose-users] Around/RedefineMethod Advice Hi, I have a question regarding the implementation of "around" advice in = PROSE. I was wondering the reasons why around advice is implemented the way it = is (i.e. only allows the redefinition of methods) and doesn't allow the = AspectJ style of around advice (i.e. with a proceed method)? Is this due to some technical constraints or was this a conscious design decision? Thanks Phil -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.338 / Virus Database: 267.9.4/57 - Release Date: 22/07/2005 ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. = http://ads.osdn.com/?ad_id=3D7477&alloc_id=3D16492&op=3Dclick _______________________________________________ Jprose-users mailing list Jpr...@li... https://lists.sourceforge.net/lists/listinfo/jprose-users |