Problems 1:
Because the Java code relies on the generated classes, and to generate classes, juliac needs to access the compiled code, when a fraclet component is defined in a project and is also used directly in it (which is the case for all our projects), it is not possible to directly call the generated classes.
Hence, it was needed to reimplement the method to create components (that are in FractalHelper) to either:
- take the name of a composite as a parameter to instantiate its class through reflection.
- take the class of a primitive fraclet component to instantiate its class through reflection.
This is always better than what we had before, but it is too bad we can't just refer to the generated classes for now.
This would implies separating the definition of the components from their instantiation, which implies a lot of change to the architecture of petals (at least from the module point of view).
Everything is almost completely working.
The code compiles
We also rely on fractal-jmx that contains one primitive component defined using the fractal java interfaces (and not the fraclet annotations).
This was a problem at first but we found a solution: http://mail.ow2.org/wws/arc/fractal/2015-03/msg00001.html
- Fraclet annotated classes
- use latest version of fraclet annotations (3.3)
- their description is compiled to .fractal and java (but not replacing the class itself)
- are instantiable from Java directly
- Composite .fractal definition
- are compiled to .java and refer to the .fractal compiled files from the fraclet java classes
- are instantiable from Java directly
We also rely on fractal-jmx that contains one primitive component defined using the fractal java interfaces (and not the fraclet annotations). This was a problem at first but we found a solution: http://mail.ow2.org/wws/arc/fractal/2015-03/msg00001.html