[
https://issues.apache.org/jira/browse/LABS-385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12734092#action_12734092
]
Simone Gianni commented on LABS-385:
------------------------------------
This issue is connected with LABS-281, cause once AJDT + m2eclipse do a good
job at incrementally compiling and weaving classes inside eclipse, those
classes could be used by a realoding classloader inside the running jetty.
> [build] Investigate the eclipse project setup optimal for Magma project
> -----------------------------------------------------------------------
>
> Key: LABS-385
> URL: https://issues.apache.org/jira/browse/LABS-385
> Project: Labs
> Issue Type: Improvement
> Components: Magma
> Reporter: Simone Gianni
> Fix For: Next
>
>
> Currently a magma project is seen by eclipse as :
> - A Maven project
> - An AspectJ project
> Maven builds the classpath for the project, placing all the dependency jars
> in it.
> AspectJ however have three distinct "classpaths". One is called "aspectpath"
> and is where to find aspects to apply to the current project and to jar in
> the "inpath". The "inpath" contains jar to which aspects of the current
> project and the "aspectpath" apply. the other is the common classpath.
> There "three way" distinction is aimed at offering better performances when
> AspectJ compiles, but is somehow difficult for a user to get used to it. So,
> in Magma, everything containing an aop.xml or aop-ajc.xml file is placed on
> the aspectpath, and everything else on the inpath.
> This happens during maven builds and magma:run LTW, but does not happen
> inside eclipse. Infact there are two kind of problems :
> - Eclipse see the entire "Maven dependencies" classpath entry as more or less
> monolithic, at least it is not possible to configure which single jars go on
> the aspectpath from the user interface, maybe it's possible to do it
> programmatically.
> - Placing everything on the aspectpath, partially solves the problem, because
> it makes AspectJ markers appear in your project, but does not resolve ITDs
> correctly (which are vital for Magma) cause does not apply them to the target
> classes.
> - Placing everything also on the inpath requires way too much RAM (at least
> last time i tested it), eclipse starts hogging the CPU for a few minutes
> until GC refuses to keep that load and the compilation fails.
> We should examine a way to setup a magma project correctly, eventually
> extending the eclipse:eclipse maven plugin, or writing a "magma project
> nature" for eclipse, able to apply in eclipse the same situation found in the
> maven build, so that eclipse AJDT plugin can offer the user proper interface
> while writing Magma classes.
> It would be enormously helpful if AspectJ (AJDT specifically) provided a way
> to set a "check only" path, that does not actually perform complete
> compilation, but is used only to check :
> - If a pointcut applies
> - If there is an ITD
> - If that ITD applies correctly
> - If there is a precedence problem
> While these informations require more or less a complete build to be
> produced, still not writing the entire weaved inpath to files would save
> quite a bit of system resources, taking for granted that is not eclipse in
> charge of producing the final build, but some external tool (LTW eventually)
> that will then handle the situation correctly.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]