Remove runtime classpath scanning#911
Remove runtime classpath scanning#911SamCarlberg merged 5 commits intoWPIRoboticsProjects:masterfrom
Conversation
Codecov Report
@@ Coverage Diff @@
## master #911 +/- ##
============================================
- Coverage 54.5% 54.26% -0.25%
- Complexity 0 1 +1
============================================
Files 304 307 +3
Lines 8318 8365 +47
Branches 535 540 +5
============================================
+ Hits 4534 4539 +5
- Misses 3587 3631 +44
+ Partials 197 195 -2 |
| edu.wpi.grip.core.operations.composite.PublishVideoOperation | ||
| edu.wpi.grip.core.operations.composite.WatershedOperation | ||
| edu.wpi.grip.core.operations.composite.FindLinesOperation | ||
| edu.wpi.grip.core.operations.composite.DistanceTransformOperation |
There was a problem hiding this comment.
Can we get Gradle to build this automatically with some sort of annotation processor?
There was a problem hiding this comment.
We'd have to write our own annotation processor, and do something for publishables (reports etc) . That'd probably mean creating a new project for the annotations and annotation processor.
|
The other thing to try is just updating Guava. There have been fixes to |
|
Given how difficult it is to reproduce the problem, I don't think that attempting to use a newer version of Guava will be enough to say we've fixed the problem. Especially since |
|
How is this any better than just having a static class with an immutable list of all these operations? Why do dynamic class loading at all when you can just have them declared in the source code where the compiler can tell you if you're using one that doesn't exist? |
Operations, custom XStream types,and publishable classes are stored in registry files in the META-INF directory of the core project JAR.
71511b2 to
261cc89
Compare
|
@JLLeitschuh Any further comments before I merge? |
|
Nope, please resolve merge conflicts. |
Operations, custom XStream types,and publishable classes are stored in registry files in the META-INF directory of the core project JAR. These files are generated by an annotation processor - when creating a new operation, publishable class, or save-file content, simply add the appropriate annotation to the class (
@Description,@PublishableObject, and@XStreamAlias, respectively)Fixes #784
Fixes #834