Improvement #2059
Updated by Henning Blohm over 4 years ago
{{include(More_efficient_handling_of_API_and_Impl_in_Rebuilds)}} h2. Acceptance Criterias * There is a new component type *com.zfabrik.impl* ** The impl component is a reduced Java Component that only supports a private loader. ** All sources are found in *<component>/src*<notextile></notextile>, <component>/src, binaries in *<component>/bin/{lib|classes}* <component>/bin/{lib|classes} ** The component type *com.zfabrik.impl* supports *impl.references* and *impl.includes*<notextile></notextile>, *impl.includes*, etc. * There is a new component type *com.zfabrik.api* ** The impl component is a reduced Java Component that only supports a public loader. ** All sources are found in<notextile></notextile>*<component>/src*<notextile></notextile>, in<component>/src, binaries in *<component>/{lib|classes}* <component>/{lib|classes} ** The component type *com.zfabrik.api* supports *api.references* and *api.includes*<notextile></notextile>, *api.includes*, etc. ** The component type *com.zfabrik.java* by default has a public reference to <module>/api * There is a new component type *com.zfabrik.test* ** The test component is a reduced Java Component that only supports a private loader. ** All sources are found in *<component>/src*<notextile></notextile>, <component>/src, binaries in *<component>/bin/{lib|classes}* <component>/bin/{lib|classes} ** The component type *com.zfabrik.test* supports *test.references* and *test.includes*<notextile></notextile>, *test.includes*, etc. ** For test components, *testing.references* *test.references* can access the private loader of the target ** A test component has a default *testing.reference* test.reference to *<module>/impl* * *JavaComponentUtil.getJavaComponent* JavaComponentUtil.getJavaComponent is deprecated and replaced by *JavaComponentUtil.getImplComponent* JavaComponentUtil.getImplComponent and *JavaComponentUtil.getApiComponent* JavaComponentUtil.getApiComponent ** All usages of *JavaComponentUtil.getJavaComponent* JavaComponentUtil.getJavaComponent when looking for component implementations are replaced by *JavaComponentUtil.getImplComponent* JavaComponentUtil.getImplComponent ** *JavaComponentUtil.getImplComponent* JavaComponentUtil.getImplComponent checks for *<module>/impl* and if that cannot be found falls back to *<module>/java* ** *JavaComponentUtil.getApiComponent* JavaComponentUtil.getApiComponent checks for *<module>/java* and if that cannot be found defaults to *<module>/api* * Eclipsoid resolves for *<module>/java* and *<module>/api* * Eclipsoid supports two module templates: ** One with /java (legacy, pre 2.9) ** One with /api and /impl