- Type Inconsistency in MaintenanceDocumentBase causing exceptions
- MaintenanceDocumentAttributeValueReader is not handling nested object properties
- API call to retrieve child document types removed
- Unable to replace document header class
- Moving away from EBOs causing problems
- Access Security Module
- Method Cache
- DelegateMemberCompleteInfo / RoleMemberCompleteInfo / RoleResponsibilityActionInfo
- RESOLVED - Access to PersistenceBroker in preUpdate/postInsert/etc.. methods
- New Configuration Method
- RESOLVED - New Startup Method
- REFACTOR IN KFS - WebConstantsInitListener and JSTLConstants
- COMPLETE - COMPONENT and NAMESPACE Annotations
- Manually Attaching Notes to Documents
- Processing Document Search Results
- Parameter Lookups
- Linking to lookups
- KIM Role Service Missing sortRoleMembers
Type Inconsistency in
MaintenanceDocumentBase causing exceptions
MaintenanceDocumentAttributeValueReader is not handling nested object properties
In the code below, the property was projectManagerUniversal.principalName - but it is attempting to pull "principalName" from the ProjectCode object.
API call to retrieve child document types removed
Some KFS functions need to be able to look at the document type hierarchy. I can not find a (public) API call to retrieve this information. The DocumentType DTO object does not contain this information. Nor does there seem to be a way to retrieve all documents types under a given parent through the public APIs.
In the KFS case, the call is expecting to retrieve the entire list of child documents. (I.e., multiple levels of children) I would prefer that this call be provided by the Rice APIs, but I could make the recursive calls within KFS, it will just be a bit slower as it will take multiple service calls.
Unable to replace document header class
KFS has the need to override DocumentHeader with a subclass. This ability was there in the Rice 1.0.x line. There is a documentHeaderClass stored on the DocumentHeaderDao. However, the line below appears in the DocumentBase class which sets the header on the document.
Since this pulls from the internal GRL for the KRAD module, I don't see a way to override the documentHeaderService. I have the bean defined in my KFS context, but the call above is not using it. HELP!
It turns out the below is required to ensure that all code sees the KFS versions of the services first.
Moving away from EBOs causing problems
As part of the conversion, we are attempting to reduce the usage of EBOs and move to use of the Rice services for items like Campus, PostalCode, State, and Country. Unfortunately, this has side-effects related to the DD. The relationships section of the business object entry requires the target class to inherit from BusinessObject. Since KFS is now using the "dto" versions of these objects, this results in startup validation errors. KFS will have to remove the relationships to these rice objects or revert to the use of EBO classes. Is there a reason that the relationship definitions still use BusinessObject?
My current workaround (I don't know how far it will work before it breaks down.) is to override the RelationshipDefinition with one which changes the apparent class (E.g., converts from Campus to CampusEBO) in the definition. I don't like it, but it has allowed us to proceed.
Access Security Module
The access security module was created with the assumption that permission and role names would match. Since permission names need to be unique under Rice 2.0, this entire module needs to be revisited.
What is replacing the method cache? We have some code (mainly in unit tests) which needs to flush the caches. They reference the removed class:
We also have
@CacheNoCopy annotations throughout the code. These are critical to system performance. Will they still be used? Or do we need to do something else for caching now?
(Actually, I notice now that the
@Cached annotation we use is gone. Does it have a replacement?)
DelegateMemberCompleteInfo / RoleMemberCompleteInfo / RoleResponsibilityActionInfo
These classes are used by the Org review maintenance document in KFS, but I can not find an equivalent which contains all the needed information.
RESOLVED - Access to PersistenceBroker in
With the new methods used for the ORM hooks that are not OJB-specific, the persistence broker is not passed in. Some of the uses of these methods do access the database. What is the method we should use to obtain the current persistence broker in these methods?
New Configuration Method
KFSApplicationConfigurationServiceImpl will need to be re-implemented since these services have been refactored.
RESOLVED - New Startup Method
RiceConfigurer class is gone. How do we bootstrap the application now?
REFACTOR IN KFS - WebConstantsInitListener and JSTLConstants
The latter of the above does not exist in Rice 2.0. KFS was using the ability to use instances of the constant classes extensively in the web tier. KFS is likely to have significant regressions where it was depending on any of the constants which were in the RiceConstants or KNSConstants classes.
COMPLETE - COMPONENT and NAMESPACE Annotations
Where are they? KFS and some implementors depended on that function of the ParameterServiceBase to be able to override the component information for parameters while being able to use the customized class names.
Manually Attaching Notes to Documents
document.getDocumentHeader() is no longer a BO. So the NoteService attachment does not work.
Processing Document Search Results
- DocumentSearchResultRowDTO does not seem to have a parallel like some of the other document search DTOs.
- What has replaced DocumentSearchContext?
KFS in a couple places looks for all parameters which match a pattern. There does not seem to be an API for this on the new ParameterService. How will we retrieve these in Rice 2.0?
Linking to lookups
We have some places in the code which are building their own parameters for lookup links. There has got to be a better way to do this. And, the "BO" used for the document search is no longer present. I wonder if the code below ever worked when the Rice server was separated...
KIM Role Service Missing
KFS depends on being able to sort the role members so that organization hierarchy is respected when routing. Is there an alternate for this function?