I tried to begin to write specificationless components, ie. components without a .jwc file, and I like it
(To tell the truth, first I felt uncomfortable with the @Component annotation, but now I see it's great
But I realized the following problem: a specless component cannot be explicitly declared in the .library/.application file. This means that - in the extreme case - I have library files without any <component-type> elements!
This has the following drawbacks:
- looking at the library I cannot see which components belong to it
- when I generate component docs using tapdoc, I have to provide additional information about the contained components. (Because when the components of the library are enumerated, specless components are not listed... this means that this info should be provided to tapdoc and similar tools by hand...)
I would propose adding a new attribute to the <component-type> element:
<component-type type="SomeComponent" class="com.example.SomeComponent" />
This would mean that the given class (which should be a specless component class, annotated with @ComponentClass) is part of the library.
I think it would be a cleaner, more natural and more uniform extension of the "old" functionality than the current "component-class-packages" configuration option (which I think is a wrong solution for such usage).
I would recommend this new "class" attribute as the only way for adding specless components to a library.