-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clean up dependency mess #101
Comments
So I've been contemplating this and trying to figure out a solution, but that's indeed quite a mess. It seems to me that the easiest is simply to not reuse the model class, but add a different one. It's simply used for JSON mapping, so it feels a bit overkill to reuse an artifact for this. |
Okay, fair enough. The symlink is not a big issue either, but I could replace it with a simple copy of the model when the model stabilizes. |
This commit reworks how the model class is "shared" between the annotation processor and the jazzer plugin. Instead of using a symlink, the code is now generated by a common build plugin. In practice, the 2 modules use the same record, but in a different package. It's also cleaner in the sense that there's no dependency between the plugin and the annotation processor, which would have led to too many classes on classpath. Fixes #101
I have created a PR which I think makes things a bit nicer. |
This commit reworks how the model class is "shared" between the annotation processor and the jazzer plugin. Instead of using a symlink, the code is now generated by a common build plugin. In practice, the 2 modules use the same record, but in a different package. It's also cleaner in the sense that there's no dependency between the plugin and the annotation processor, which would have led to too many classes on classpath. Fixes #101
This commit reworks how the model class is "shared" between the annotation processor and the jazzer plugin. Instead of using a symlink, the code is now generated by a common build plugin. In practice, the 2 modules use the same record, but in a different package. It's also cleaner in the sense that there's no dependency between the plugin and the annotation processor, which would have led to too many classes on classpath. Fixes #101
Issue description
The dependency layout of this project is a bit messy at the moment.
fuzzing-tests
andfuzzing-annotation-processor
are normal modules.jazzer-plugin
is a subproject that is used as a plugin infuzzing-tests
. However,jazzer-plugin
reads metadata generated byfuzzing-annotation-processor
, so it needs a dependency on the model class, which right now is realized through a symlink.This is a very bad solution and I'd prefer an actual dependency on
fuzzing-annotation-processor
. That doesn't work with the fact thatjazzer-plugin
is a subproject, though. Maybe it's better to makejazzer-plugin
a normal module, andfuzzing-tests
a subproject somehow?I'm also open to moving
fuzzing-tests
to an entirely separate github project, if necessary. But I'd prefer to keep it here.The text was updated successfully, but these errors were encountered: