Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ajdt-dev] AJDT Aspect comment modification take 3 minutes to rebuild with multiple projects

Still having problems here Sebastien?  I haven't seen a bugzilla raised?

Andy

2009/9/4 Andy Clement <andrew.clement@xxxxxxxxx>:
> I have 100s of tests for incremental compilation behaviour - they all
> pass.  So, yes, it is something exceptional/unusual about your
> situation.
> I just created a testcase for your aspect and it worked fine.  I
> prefixed it with a bit of javadoc, whitespace change, saved and only
> saw the aspect compiled and woven, no other files touched.  Are you
> able to produce a small project that also exhibits the problem you
> see?
>
> Andy
>
> 2009/9/4 Sebastien Tardif <stardif@xxxxxxxxxxxx>:
>> The source is below:
>>
>> public aspect RMISerializationPerf {
>>        pointcut rmiSerializationCall() :
>>                call( Object+ javax.rmi.CORBA.Util.copyObject(Object+, org.omg.CORBA.ORB+)) ||
>>                call( Object* javax.rmi.CORBA.Util.copyObjects(Object*, org.omg.CORBA.ORB+));
>>
>>        Object around() : rmiSerializationCall()
>>        {
>>                SubAuditor subAuditor = new SubAuditor(Auditable.RMI_SERIALIZATION_ACTION_AUDIT);
>>                Object result = proceed();
>>                subAuditor.end();
>>                return result;
>>        }
>>
>> }
>>
>> So space in Aspect have been tested before and you believe it's an exceptional circumstance?
>>
>> Still, space in comment is not going to have effect on any kind of aspect.
>>
>> -----Original Message-----
>> From: ajdt-dev-bounces@xxxxxxxxxxx [mailto:ajdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Andy Clement
>> Sent: Thursday, September 03, 2009 2:52 PM
>> To: ajdt-dev@xxxxxxxxxxx
>> Subject: Re: [ajdt-dev] AJDT Aspect comment modification take 3 minutes to rebuild with multiple projects
>>
>> Should probably be raised then.
>>
>> This line in your trace:
>>
>> 9:23:57 ClassFileChangeChecking: aspect found that has structurally
>> changed or that this project depends upon :
>> C:\cc_views_6.0_dev3\ctsource\java\framework\bin\com\saic\ct\aj\monitor\
>> RMISerializationPerf.class
>>
>> indicates that something in your aspect is being considered a
>> structural change - it may not be the change you made, it may be a
>> problem with the representation of another construct you are using.  I
>> imagine you can't give me the aspect source, but I would at least need
>> to know all the types of construct you are using:
>>
>> advice, declare parents, pointcuts, other types of declare, etc? is it
>> extending another aspect? what constructs does that super aspect use?
>>
>> Andy
>>
>> 2009/9/3 Sebastien Tardif <stardif@xxxxxxxxxxxx>:
>>> I don't think so. Last time I opened a bug was about space in a Java method not an aspect.
>>>
>>> -----Original Message-----
>>> From: ajdt-dev-bounces@xxxxxxxxxxx [mailto:ajdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Andy Clement
>>> Sent: Thursday, September 03, 2009 12:55 PM
>>> To: ajdt-dev@xxxxxxxxxxx
>>> Subject: Re: [ajdt-dev] AJDT Aspect comment modification take 3 minutes to rebuild with multiple projects
>>>
>>> Has this been raised as a bug yet?
>>>
>>> Andy
>>>
>>> 2009/8/26 Sebastien Tardif <stardif@xxxxxxxxxxxx>:
>>>> I have 46 projects in the workspace. 2 projects define aspects. A total
>>>> of 4 projects have AspectJ enabled on them.
>>>>
>>>> I do not use inpath. I use aspect path when I want a project be weaved
>>>> by the aspect defined by another project.
>>>>
>>>> I do not use groovy, and it was not explicitly installed.
>>>>
>>>> To be able to use AJDT in the development of our software this issue and
>>>> most importantly https://bugs.eclipse.org/bugs/show_bug.cgi?id=287555
>>>> would have to be fixed or the productivity lost is too significant.
>>>>
>>>> A full trace about putting a space in the JavaDoc will be sent shortly
>>>> to your private email.
>>>>
>>>> Below is some extract of the full trace:
>>>>
>>>> 9:23:56
>>>> ========================================================================
>>>> ===================
>>>> 9:23:56 Build kind = AUTOBUILD
>>>> 9:23:56 Project=framework, kind of build requested=Incremental AspectJ
>>>> compilation
>>>> 9:23:56 Timer event: 0ms: Flush included source file cache
>>>> 9:23:56 Timer event: 15ms: Check delta
>>>> 9:23:56 File:
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\monitor\
>>>> RMISerializationPerf.aj has changed.
>>>> 9:23:56 build: Examined delta - 1 changed, 0 added, and 0 deleted source
>>>> files in required project framework
>>>> 9:23:56 Timer event: 0ms: Looking for and marking configuration changes
>>>> in framework
>>>> 9:23:56         Configuration changes found: true
>>>> 9:23:56 Timer event: 0ms: Look for source/resource changes
>>>> 9:23:56 Compiler configuration for project ctaspects doesn't know
>>>> previous state, so assuming EVERYTHING has changed.
>>>> 9:23:56 Setting list of classpath elements with modified contents:
>>>> 9:23:56       []
>>>> 9:23:56 Classpath = ...
>>>> 9:23:56 Timer event: 78ms: Pre compile
>>>> 9:23:56 Sending the following configuration changes to the compiler: []
>>>> 9:23:56 3 source file changes since last build
>>>> 9:23:56 Compiler configuration for project framework has been read by
>>>> compiler.  Resetting.
>>>> 9:23:56      Configuration was []
>>>> 9:23:56 Resetting list of modified source files.  Was
>>>> [C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\monitor
>>>> \RMISerializationPerf.aj,
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\monitor\
>>>> RMISerializationPerf.aj,
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\monitor\
>>>> RMISerializationPerf.aj]
>>>> 9:23:56 Preparing for build: planning to be an incremental build
>>>> 9:23:56 Starting incremental compilation loop 1 of possibly 5
>>>> 9:23:56 AJC: compiling source files
>>>> 9:23:57 Timer event: 500ms: Time to first compiled message
>>>> 9:23:57 AJC: compiled:
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\monitor\
>>>> RMISerializationPerf.aj
>>>> 9:23:57 Timer event: 500ms: Time to first woven message
>>>> 9:23:57 AJC: woven aspect com.saic.ct.aj.monitor.RMISerializationPerf
>>>> (from
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\monitor\
>>>> RMISerializationPerf.aj)
>>>> 9:23:57 addSourcelineTask message=The import org.omg.CORBA.ORB is never
>>>> used
>>>> file=C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\mon
>>>> itor\RMISerializationPerf.aj line=11
>>>> 9:23:57 addSourcelineTask message=advice defined in
>>>> com.saic.ct.aj.monitor.RMISerializationPerf has not been applied
>>>> [Xlint:adviceDidNotMatch]
>>>> file=C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\mon
>>>> itor\RMISerializationPerf.aj line=30
>>>> 9:23:57 addSourcelineTask message=advice defined in
>>>> com.saic.ct.aj.monitor.AspectJRuntimeMonitor has not been applied
>>>> [Xlint:adviceDidNotMatch]
>>>> file=C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\mon
>>>> itor\AspectJRuntimeMonitor.aj line=23
>>>> 9:23:57 Examining whether any other files now need compilation based on
>>>> just compiling:
>>>> '{C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\monito
>>>> r\RMISerializationPerf.aj}'
>>>> 9:23:57 AspectJ reports build successful, build was: INCREMENTAL
>>>> 9:23:57 AJDE Callback: finish. Was full build: false
>>>> 9:23:57 Timer event: 578ms: Total time spent in AJDE
>>>> 9:23:57 Timer event: 0ms: Refresh after build
>>>> 9:23:57 Types affected during build = 1
>>>> 9:23:57 Not adding marker for problem because it's against a resource
>>>> which is not in the list of affected resources provided by the compiler.
>>>> Resource=L/framework/src/com/saic/ct/aj/monitor/AspectJRuntimeMonitor.aj
>>>> Problem message=advice defined in
>>>> com.saic.ct.aj.monitor.AspectJRuntimeMonitor has not been applied
>>>> [Xlint:adviceDidNotMatch] line=23
>>>> 9:23:57 Crosscutting model sanity checked with no problems
>>>> 9:23:57 Timer event: 0ms: Model sanity check for: framework
>>>> 9:23:57 Timer event: 688ms: Total time spent in AJBuilder.build()
>>>> 9:23:57 Timer event: 0ms: Update visualizer, xref, advice listeners for
>>>> (separate thread): framework
>>>> 9:23:57
>>>> ========================================================================
>>>> ===================
>>>> 9:23:57 Build kind = AUTOBUILD
>>>> 9:23:57 Project=svcapp, kind of build requested=Incremental AspectJ
>>>> compilation
>>>> 9:23:57 Timer event: 0ms: Flush included source file cache
>>>> 9:23:57 Timer event: 0ms: Check delta
>>>> 9:23:57 Timer event: 0ms: Looking for and marking configuration changes
>>>> in svcapp
>>>> 9:23:57         Configuration changes found: false
>>>> 9:23:57 build: Examined delta - no source file or classpath changes for
>>>> project svcapp
>>>> 9:23:57 Timer event: 0ms: Looking for and marking configuration changes
>>>> in blazeruleservices
>>>> 9:23:57         Configuration changes found: false
>>>> 9:23:57 Timer event: 0ms: Looking for and marking configuration changes
>>>> in marshaller
>>>> 9:23:57         Configuration changes found: false
>>>> 9:23:57 File:
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\src\com\saic\ct\aj\monitor\
>>>> RMISerializationPerf.aj has changed.
>>>> 9:23:57 build: Examined delta - 1 changed, 0 added, and 0 deleted source
>>>> files in required project framework
>>>> 9:23:57 Timer event: 0ms: Looking for and marking configuration changes
>>>> in framework
>>>> 9:23:57         Configuration changes found: true
>>>> 9:23:57 Timer event: 0ms: Look for source/resource changes
>>>> 9:23:57 Setting list of classpath elements with modified contents:
>>>> 9:23:57       [C:/cc_views_6.0_dev3/ctsource/java/framework/bin]
>>>> 9:23:57 Classpath = ...
>>>> 9:23:57 Timer event: 78ms: Pre compile
>>>> 9:23:57 Sending the following configuration changes to the compiler: []
>>>> 9:23:57 0 source file changes since last build
>>>> 9:23:57 Compiler configuration for project svcapp has been read by
>>>> compiler.  Resetting.
>>>> 9:23:57      Configuration was []
>>>> 9:23:57 Resetting list of modified source files.  Was []
>>>> 9:23:57 ClassFileChangeChecking: found state instance managing output
>>>> location : C:\cc_views_6.0_dev3\ctsource\java\framework\bin
>>>> 9:23:57 Seems this has changed
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\bin\com\saic\ct\aj\monitor\
>>>> RMISerializationPerf.classmodtime=1251293036750 lsbt=1251291961031
>>>> incoming check value=1251292008841
>>>> 9:23:57 AjState(svcapp): type
>>>> com/saic/ct/aj/monitor/AspectJRuntimeMonitor is not depended upon by
>>>> this state
>>>> 9:23:57 ClassFileChangeChecking: found aspect on classpath but this
>>>> project doesn't reference it, continuing to try for incremental build :
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\bin\com\saic\ct\aj\monitor\
>>>> AspectJRuntimeMonitor.class
>>>> 9:23:57 AjState(svcapp): type
>>>> com/saic/ct/aj/monitor/JMSSerializationPerf is not depended upon by this
>>>> state
>>>> 9:23:57 ClassFileChangeChecking: found aspect on classpath but this
>>>> project doesn't reference it, continuing to try for incremental build :
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\bin\com\saic\ct\aj\monitor\
>>>> JMSSerializationPerf.class
>>>> 9:23:57 ClassFileChangeChecking: aspect found that has structurally
>>>> changed or that this project depends upon :
>>>> C:\cc_views_6.0_dev3\ctsource\java\framework\bin\com\saic\ct\aj\monitor\
>>>> RMISerializationPerf.class
>>>> 9:24:5 Preparing for build: not going to be incremental because path
>>>> change detected (one of classpath/aspectpath/inpath/injars)
>>>> 9:24:5 Falling back to batch compilation
>>>> 9:24:5 Preparing for build: not going to be incremental because no
>>>> successful previous full build
>>>>
>>>> -----Original Message-----
>>>> From: ajdt-dev-bounces@xxxxxxxxxxx [mailto:ajdt-dev-bounces@xxxxxxxxxxx]
>>>> On Behalf Of Andrew Eisenberg
>>>> Sent: Wednesday, August 26, 2009 12:31 AM
>>>> To: ajdt-dev@xxxxxxxxxxx
>>>> Subject: Re: [ajdt-dev] AJDT Aspect comment modification take 3 minutes
>>>> to rebuild with multiple projects
>>>>
>>>> Hi Sebastian,
>>>>
>>>> It does seem strange that a white space change will cause a full build
>>>> and reweave of your project.  I'd like to know a little more about
>>>> your set up:
>>>>
>>>> 1. How big are your projects?  How many are involved?
>>>>
>>>> 2. are you using inpath?  We have not spent much time optimizing for
>>>> in path usage.  If this turns out to be an issue for you, then there
>>>> are ways you can by pass this.
>>>>
>>>> 3. do you have the groovy plugin installed?  We are currently working
>>>> out some issues between the two plugins.  I don't think it will, but
>>>> there *might* be an issue with incremental builds if both plugins are
>>>> installed.
>>>>
>>>> 4. Can you open the AJDT Event trace view, in the filter select all,
>>>> and then send an attachment of the results to the list (or send to me
>>>> personally, if there is proprietary information involved)?
>>>>
>>>> A whitespace change of any file should trigger a build, but the build
>>>> should finish in an unnoticeable amount of time.
>>>>
>>>> On Tue, Aug 25, 2009 at 1:44 PM, Sebastien Tardif<stardif@xxxxxxxxxxxx>
>>>> wrote:
>>>>> It seems optimization that have been made with multiple projects
>>>> didn't
>>>>> try to improve modification to Aspect because when I put a space in
>>>> the
>>>>> JavaDoc it takes at least 3 minutes for the automatic build to finish.
>>>>>
>>>>> Maybe we should compare binary result of the compilation of the aspect
>>>>> then not trigger anything to the other projects if nothing was really
>>>>> modified, like this that will also handle space modification in the
>>>>> code.
>>>>> _______________________________________________
>>>>> ajdt-dev mailing list
>>>>> ajdt-dev@xxxxxxxxxxx
>>>>> https://dev.eclipse.org/mailman/listinfo/ajdt-dev
>>>>>
>>>> _______________________________________________
>>>> ajdt-dev mailing list
>>>> ajdt-dev@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/ajdt-dev
>>>> _______________________________________________
>>>> ajdt-dev mailing list
>>>> ajdt-dev@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/ajdt-dev
>>>>
>>> _______________________________________________
>>> ajdt-dev mailing list
>>> ajdt-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/ajdt-dev
>>> _______________________________________________
>>> ajdt-dev mailing list
>>> ajdt-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/ajdt-dev
>>>
>> _______________________________________________
>> ajdt-dev mailing list
>> ajdt-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/ajdt-dev
>> _______________________________________________
>> ajdt-dev mailing list
>> ajdt-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/ajdt-dev
>>
>


Back to the top