>
>         Hi all,
>         my situation is the following :
>         - I have several different projects
>         - each one is built with maven
>         - as such, it declares dependencies on other projects
>         - every project can contain classes, advice and inter type
>         declarations
>         (both public and private methods and fields)
>         - these projects will be then loaded together using LTW in an
>         application, OR they will be completely weaved each one on
>         each other by
>         an external process to produce a "final version".
>
>         Up to this, no problem at all. Building it with maven will
>         simply work,
>         produce all the artifacts and so on, provided that all relevant
>         dependencies are present in -aspectpath and nothing is present in
>         -inpath (otherwise, multiple copies of the same classes, weaved -
>         partially weaved - non weaved at all, will be included in the
>         resulting
>         jars.
>
>         Then, loading it with LTW will "finish" the weaving process,
>         making
>         aspects defined in some projects also weave classes from
>         projects they
>         depend to.
>
>         I know this explanation is getting complicated, it is not so hard,
>         please have the patience to keep reading another minute.
>
>         The problem arise when ONLY ONE of the projects is modified
>         and then
>         deployed. For example, if a project redefined an advice to
>         match other
>         methods than before, the old jars of other projects will still
>         contain
>         calls to the old advice, and often fail at runtime. Also, we are
>         currently receiving an incredible number of
>         Xlint:adviceDidNotMatch
>         cause our inpath is empty, to avoid class duplication.
>
>         These are major problems, cause we need to rebuild everything
>         every time
>         a single project releases a new version, or even just to test
>         when other
>         projects are involved in the test, and have no clue wether or
>         not we
>         mispelled something in a pointcut, cause
>         Xlint:adviceDidNotMatch will
>         always be warned,
>
>         I tried the -XterminateAfterCompilation switch. It does what it is
>         designed for, and produced classes does not contain calls to
>         advice, BUT
>         it also misses all static intertype declarations, so projects
>         depending
>         on the presence of a method declared using intertype
>         declaration or on a
>         certain object implementing a certain interface will fail.
>
>         Also, it throws a number of exception inside the aj compiler, null
>         pointer mostly, probably while trying to resolve some ITD.
>
>         I think such a feature is needed. Basically, it is something
>         like :
>         - Take this aspectpath
>         - Take these .java and .aj
>         - Take this -inpath
>         - Compile the .java and .aj, taking into consideration the ITD
>         present
>         in aspects
>         - DO NOT weave those ITD inside the resulting class files, use
>         them only
>         to check possible compilation errors.
>         - DO NOT weave advice in resulting class files
>         - DO NOT weave advice on classes in -inpath
>         - Use the -inpath only to properly generate warnings and errors.
>
>         This seems to be somehow similar to :
>         - Compile, as always
>         - Simulate weaving, both on local classes and on inpath, but
>         output only
>         warnings and errors, and don't weave classes
>
>         Which is somehow similar to what -XterminateAfterCompilation
>         is supposed
>         to do, except the simulate weaving part.
>
>         Is this a reasonable feature to add to AspectJ? More than a
>         new feature,
>         I think it should be the way -XterminateAfterCompilation works
>         anyway.
>         This is absolutely needed to have AspectJ and Maven cooperate
>         well in a
>         project that goes even just a step after the "tracing aspect"
>         kind of
>         organization.
>
>         Is this something I can try to do on my own? I've been reading
>         AspectJ
>         code lately, but before working on such a (for me big)
>         change/fix/feature would like to know if there is any interest
>         on it
>         and/or any known problems that would prevent it to work correctly.
>
>         Simone
>
>         --
>         Simone Gianni            CEO Semeru s.r.l.           Apache
>         Committer
>         MALE human being programming a computer
>         
http://www.simonegianni.it/
>
>         _______________________________________________
>         aspectj-dev mailing list