Hey,
I work on an extension of the Apache Wayang API with the goal of using a
Kafka Source in the JavaPlanBuilder.
Hence I created a function to create a DataQuantaBuilder which can get
records from a Kafka topic using simple Kafka text messages as a record.
My observation is:
The Apache Wayang assembly does not contain the freshly compiled
JavaPlanBuilder class file, but rather an older version of it.
As a result I can't use my fresh function.
Diving into the topic brings the following insights:
We can see the correctly compiled Java class (verified with a decompiler)
in the project named
./wayang-api/wayang-api-scala-java/wayang-api-scala-java_2.12/target/classes
...
When I compile the wayang-api-scala-java module, I get the right classes.
But using the maven commands for building the assembly gives us outdated
classes.
Here is a mismatch.
Now I did the following:
On top level:
./mvnw clean
./mvnw compile
- manually delete the target folder in wayang-assembly
./mvnw compile package -pl :wayang-assembly -Pdistribution -U
^------ here I skip the clean ....
And also now, even with the correct class file in the wayang-api-scala-java
module, the assembly is built from the wrong JAR file.
I will try with our release candidate 1.0.0.
My assumption is, that since maven can't load a JAR vor that version, it
also can't use an outdated JAR in the assembly module.
It would be a workaround still, but then we would have located the problem
inside the assembly module - based on my current understanding.
That's all for now,
I keep you informed after the next series of tests.
Cheers,
Mirko
--
Dr. rer. nat. Mirko Kämpf
Müchelner Str. 23
06259 Frankleben