Project

General

Profile

Improvement #2059

Updated by Henning Blohm about 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 

Back