You are right, both the transformer and the transformed classes are in the
same project, but that can be changed. The buildcontext approach seems the
easiest for now. If I understand it correctly, I only have to improve the
plugin to support incremental builds and use execute mapping in m2e. Even
if it does not work, I've at least improved the plugin :). I'll give it a
try next week. Thanks for the help.

Best regards,
Emond Papegaaij


On Sat, Jan 18, 2014 at 5:34 PM, Igor Fedorenko <[email protected]> wrote:

> If I read this correctly, you want to have both the transformer and the
> classes to be transformed in your workspace. This means that Eclipse
> workspace will have to first compile transformer classes and them
> immediately execute them. Even if this can be done, which I am not sure,
> I strongly advice against this because problems with transformer can
> crash your eclipse instance, for example. Tracking dependency between
> transformer and classes to be transformed is another problem. You
> probably want to move transformer to a separate project, deploy to a
> maven repository and consume it in a binary form.
>
> As for manipulating .class files inside Eclipse workspace, this is kinda
> tricky. I believe the correct way to do this is to implement
> org.eclipse.jdt.core.compiler.CompilationParticipant but this most
> likely means duplicating logic from javassist-maven-plugin. Wiki [1]
> gives some pointers how to "map" javassist-maven-plugin to m2e
> extension, but I don't have example that show use of
> CompilationParticipant.
>
> "Less" correct way, which may or may not work, is to invoke
> javassist-maven-plugin during Eclipse workspace build. I would recommend
> changing javassist-maven-plugin to use BuildContext API as explain in
> wiki [2]
>
>
> [1] http://wiki.eclipse.org/M2E_Extension_Development
> [2] http://wiki.eclipse.org/M2E_compatible_maven_plugins
>
> --
> Regards,
> Igor
>
>
> On 1/18/2014, 10:46, Emond Papegaaij wrote:
>
>> Hi all,
>>
>> Having some issues with a maven plugin that transforms class files in
>> M2E (endless builds), I decided to try to write an extension (my first)
>> that handles the integration, but I need some help. The
>> javassist-maven-plugin takes classes from the project class path, passes
>> them through a transformer and writes new class files. A typical project
>> setup looks like this:
>>
>> parent with modules:
>>   - module a with classes to be transformed
>>   - module b with transformer and javassist-maven-plugin, destination of
>> transformed classes, has optional dependency on module a to stop
>> transitive dependencies
>>   - module c depends on transformed classes in module b
>>
>> What I would like the M2E extension to do, is on changed classes in
>> module a, transform these classes, write them in module b and refresh
>> those classes, triggering a build in module c. This being my first
>> extension, I read the introduction on writing extensions and managed to
>> setup a project in Eclipse, but that's were it ends. All examples I
>> could find are about generating source from source, not classes from
>> classes. Is there an existing extension I could use as an example? If
>> not, what would be a good approach for this plugin? Which M2E classes do
>> I need to look at?
>>
>> Best regards,
>> Emond Papegaaij
>>
>>
>> _______________________________________________
>> m2e-users mailing list
>> [email protected]
>> https://dev.eclipse.org/mailman/listinfo/m2e-users
>>
>>  _______________________________________________
> m2e-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/m2e-users
>
_______________________________________________
m2e-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/m2e-users

Reply via email to