| It proves to be very difficult to test all this in the project I'm using it in, mainly due to the size of the project. I'll setup a smaller demo-project to see why it is not working as intented.   Best regards, Emond Papegaaij   On Monday 20 January 2014 09:27:22 Igor Fedorenko wrote: > Eclipse does not require sources to be present. >  > -- > Regards, > Igor >  > On 1/20/2014, 9:21, Emond Papegaaij wrote: > > The consuming module only has the transformed classes on the classpath. > > The module with transformed classes does have the original classes on > > the classpath using an optional dependency. However, it does not seem to > > be a conflict between classes on the classpath. I tried generating an > > additional class (one that does not exist in the original classes), and > > this class is also not picked up. It seems Eclipse does not see classes > > in workspace modules when there is no source for those classes. Could > > this be the case? > >  > > Best regards, > >  > > Emond Papegaaij > >  > > On Monday 20 January 2014 09:09:57 Igor Fedorenko wrote: > >  > What does classpath of the consuming project look like? Does it include > >  >  > >  > both original classes and generated ones? > >  >  > >  >  > >  >  > >  > Generally, I recommend against split packages (using OSGi terminology), > >  >  > >  > especially if you have exact the same classnames in different modules. > >  >  > >  >  > >  >  > >  > -- > >  >  > >  > Regards, > >  >  > >  > Igor > >  >  > >  > On 1/20/2014, 8:50, Emond Papegaaij wrote: > >  > > We are generating new class files, based on existing class files. For > >  > >  > >  > > example, if module a contains 'com.mycompany.Foo', we are generaing > >  > >  > >  > > 'com.mycompany.Foo' in module b based on the class in module a. > >  > > It's the > >  > >  > > same classname, but different bytecode. The files do contain the > >  > > right > >  > >  > >  > > contents on the file system (verified with javap). > >  > >  > >  > >  > >  > >  > >  > > With "Eclipse does not see the generated classes", I mean that > >  > > classes > >  > >  > >  > > using these classes have compile errors, type completion does not > >  > > work, > >  > >  > >  > > 'Open type' does not work. I can see the files in the project > >  > > explorer > >  > >  > >  > > (in target/classes), but Eclipse does not seem to know about the > >  > > types. > >  > >  > >  > >  > >  > >  > >  > > The Maven Workspace Build view lists all classes produced by the > >  > > plugin, > >  > >  > > so it seems BuildContext is working fine. > >  > >  > >  > >  > >  > >  > >  > > Best regards, > >  > >  > >  > >  > >  > >  > >  > > Emond Papegaaij > >  > >  > >  > > On Monday 20 January 2014 07:57:34 Igor Fedorenko wrote: > >  > > > Are you generating new class files or changing existing class > >  > > > files? > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > > Can you explain what "Eclipse does not see the generated classes" > >  > > >  > >  > > > means? > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > > Can you check if class file contents is as expected on filesystem? > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > > You may also want to check Maven Workspace Build view, which should > >  > > >  > >  > > > show > >  > > >  > >  > > >  > >  > > >  > >  > > > if your mojo is executed, what input files it gets and what output > >  > > >  > >  > > > files > >  > > >  > >  > > >  > >  > > >  > >  > > > it produces throw BuildContext API. (note that the view is > >  > > "paused" by > >  > >  > > > default, you need to click pause button to enable recording). > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > >  > >  > > > -- > >  > > >  > >  > > >  > >  > > >  > >  > > > Regards, > >  > > >  > >  > > >  > >  > > >  > >  > > > Igor > >  > > >  > >  > > > On 1/20/2014, 7:32, Emond Papegaaij wrote: > >  > > > > I've changed the maven plugin to use BuildContext, but Eclipse is > >  > > > >  > >  > > > > still > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > > having issues. It no longer triggers an endless build (even with > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > > runOnIncremental), but Eclipse does not see the generated > >  > > > > classes. > >  > > > >  > >  > > > > The > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > > transformed class files are visible in target/classes in > >  > > Eclipse, but > >  > >  > > > > the modules depending on them do not see them. Also, 'Open > >  > > type' does > >  > >  > > > > not show them. Did I miss anything? I do use > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > > buildContext.newFileOutputStream to generate the files. > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > > Best regards, > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > > Emond Papegaaij > >  > > > >  > >  > > > > On Saturday 18 January 2014 22:18:19 you wrote: > >  > > > > > 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 > >  > > > > >  > >  > > > > > <igor@xxxxxxxxxxxxxx> > >  > > > >  > >  > > > > 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 > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >> m2e-users@xxxxxxxxxxx > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >> https://dev.eclipse.org/mailman/listinfo/m2e-users > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >>  > >  > > > > > >> _______________________________________________ > >  > > > > > >  > >  > > > > > > m2e-users mailing list > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > > m2e-users@xxxxxxxxxxx > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > >  > >  > > > > > > https://dev.eclipse.org/mailman/listinfo/m2e-users > >  > > > >  > >  > > > > _______________________________________________ > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > > m2e-users mailing list > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > > m2e-users@xxxxxxxxxxx > >  > > > >  > >  > > > >  > >  > > > >  > >  > > > > https://dev.eclipse.org/mailman/listinfo/m2e-users > >  > > >  > >  > > > _______________________________________________ > >  > > >  > >  > > >  > >  > > >  > >  > > > m2e-users mailing list > >  > > >  > >  > > >  > >  > > >  > >  > > > m2e-users@xxxxxxxxxxx > >  > > >  > >  > > >  > >  > > >  > >  > > > https://dev.eclipse.org/mailman/listinfo/m2e-users > >  > >  > >  > > _______________________________________________ > >  > >  > >  > > m2e-users mailing list > >  > >  > >  > > m2e-users@xxxxxxxxxxx > >  > >  > >  > > https://dev.eclipse.org/mailman/listinfo/m2e-users > >  >  > >  > _______________________________________________ > >  >  > >  > m2e-users mailing list > >  >  > >  > m2e-users@xxxxxxxxxxx > >  >  > >  > https://dev.eclipse.org/mailman/listinfo/m2e-users > >  > > _______________________________________________ > > m2e-users mailing list > > m2e-users@xxxxxxxxxxx > > https://dev.eclipse.org/mailman/listinfo/m2e-users >  > _______________________________________________ > m2e-users mailing list > m2e-users@xxxxxxxxxxx > https://dev.eclipse.org/mailman/listinfo/m2e-users   |