<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:inherit;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
span.lit
        {mso-style-name:lit;}
span.pun
        {mso-style-name:pun;}
span.str
        {mso-style-name:str;}
span.pln
        {mso-style-name:pln;}
span.kwd
        {mso-style-name:kwd;}
span.od
        {mso-style-name:od;}
span.ev
        {mso-style-name:ev;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Looking for AspectJ and Ant specialist.  Reason: want to weave count of times X3DJSAIL methods and constructors were executed.  Report class, method, constructor, parameters and a count.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Related PointCuts:</p><p class=MsoNormal><o:p> </o:p></p><pre style='background:#EFF0F1;vertical-align:baseline'><span class=lit><span style='font-family:"inherit",serif;color:#7D2727;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'>@Pointcut</span></span><span class=pun><span style='font-family:"inherit",serif;color:#303336;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'>(</span></span><span class=str><span style='font-family:"inherit",serif;color:#7D2727;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'>"execution(public * *(..))"</span></span><span class=pun><span style='font-family:"inherit",serif;color:#303336;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'>)</span></span><span class=pln><span style='font-family:"inherit",serif;color:#303336;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'><o:p></o:p></span></span></pre><pre style='background:#EFF0F1;vertical-align:baseline'><span class=kwd><span style='font-family:"inherit",serif;color:#101094;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'>public</span></span><span class=pln><span style='font-family:"inherit",serif;color:#303336;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'> </span></span><span class=kwd><span style='font-family:"inherit",serif;color:#101094;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'>void</span></span><span class=pln><span style='font-family:"inherit",serif;color:#303336;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'> publicMethod</span></span><span class=pun><span style='font-family:"inherit",serif;color:#303336;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'>()</span></span><span class=pln><span style='font-family:"inherit",serif;color:#303336;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'> </span></span><span class=pun><span style='font-family:"inherit",serif;color:#303336;border:none windowtext 1.0pt;padding:0in;background:#EFF0F1'>{}<o:p></o:p></span></span></pre><pre style='background:#EFF0F1;vertical-align:baseline'><span style='font-family:Consolas;color:#393318'><o:p> </o:p></span></pre><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><a href="https://stackoverflow.com/questions/17338788/aspectj-pointcut-on-constructor-object">https://stackoverflow.com/questions/17338788/aspectj-pointcut-on-constructor-object</a></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Suggest adding counts to a map for each class with the aspect. Do not need to add counts to classes if the data is stored in the Aspect, just need to dump aspect map when program is done (pointcut for running after main?).  Dump out count = 0 constructors and methods execution after main program is executed.  Keep list of Java classes in main for use in previous pointcut. May use Java reflection API.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>As a separate experiment, we will add the counts to a database, SQLite?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Open Source solutions (and non-AspectJ solutions) acceptable.   I don’t want to add a lot of code to X3DJSAIL unless Don Brutzman approves it. Ideally, it should also run as a separate command line tool.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Cost of a pack of beer, or cost of a visit to the massage therapist sent to your paypal account as payment.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Payment made when I successfully run code and get accurate all count = 0 constructors and count = 0 methods for X3D Resources Java test cases (4000 cases I think). May use XML when spot checking success.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Provided test case is HelloWorldProgram.java in x3d/stylesheets/java/examples.  Make sure this runs with ant.  X3D Resources test cases found in <a href="http://www.web3d.org/x3d/content/examples%20on%20sourceforge.net">www.web3d.org/x3d/content/examples on sourceforge.net</a>,   Create 2 cases in ant build.xml, one for HelloWorld and one for X3D Resources Java test cases (converted from X3D with Don’s X3dToJava.xslt). You might find <a href="http://www.web3d.org/x3d/stylesheets/java/src/python/pyjnius">www.web3d.org/x3d/stylesheets/java/src/python/pyjnius</a> inspirational to find java class files.</p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0><tr><td style='padding:0in 0in 0in 0in'><div style='border:solid windowtext 1.0pt;padding:1.0pt 1.0pt 1.0pt 1.0pt' id=vt100><pre style='margin-right:1.5pt;line-height:111%;background:black'><span style='color:#BFBFBF'><o:p> </o:p></span></pre></div></td></tr></table><p class=MsoNormal>Suggestion:   Traverse content/examples folder to find java classes with java, so we can bring each test case into Java in turn.   Bonus points awarded for checking for memory leaks.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Students welcome!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John Carlson</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>