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

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