Project

General

Profile

Improvement #2059

Updated by Henning Blohm over 2 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, binaries in <component>/bin/{lib|classes} 
 ** The component type *com.zfabrik.impl* supports *impl.references* TBC. See [[More efficient handling of API and *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<component>/src, binaries Impl in <component>/{lib|classes} 
 ** The component type *com.zfabrik.api* supports *api.references* and *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, binaries in <component>/bin/{lib|classes} 
 ** The component type *com.zfabrik.test* supports *test.references* and *test.includes*, etc. 
 ** For test components, *test.references* can access the private loader of the target 
 ** A test component has a default test.reference to *<module>/impl* 

 * JavaComponentUtil.getJavaComponent is deprecated and replaced by JavaComponentUtil.getImplComponent and    JavaComponentUtil.getApiComponent 
 ** All usages of JavaComponentUtil.getJavaComponent when looking for component implementations are replaced by JavaComponentUtil.getImplComponent 
 ** JavaComponentUtil.getImplComponent checks for *<module>/impl* and if that cannot be found falls back to *<module>/java* 
 ** 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 

 Rebuilds]]

Back