Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 114 Next »

What's this?

Icon

This page tracks major impacting changes post 2.0 release. Things such as database or package name changes for example. This page will serve as a holding pen for information on those changes.

 

Table of Contents:

2.0 to 2.1.0-m2

MaintenanceDocumentDictionaryService/TransactionalDocumentDictionaryService in org.kuali.rice.kns.service changes

KULRICE-6730 - Remove getBusinessRulesClass from MaintenanceDocumentDictionaryServiceImpl and TransactionalDocumentDictionaryServiceImpl

The following method has been removed from org.kuali.rice.kns.service.MaintenanceDocumentDictionaryService and org.kuali.rice.kns.service.impl.MaintenanceDocumentDictionaryServiceImpl 

public Class<? extends BusinessRule> getBusinessRulesClass(MaintenanceDocument document);

The following method has been removed from org.kuali.rice.kns.service.TransactionalDocumentDictionaryService and org.kuali.rice.kns.service.impl.TransactionalDocumentDictionaryServiceImpl 

public Class<? extends BusinessRule> getBusinessRulesClass(TransactionDocument document);

KULRICE-6842 - Database: Disallow requests for null principals

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-02-27.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-02-27.sql (for MySQL).

KULRICE-5382 - document type label is not required on the document type document, but it's the only thing displayed many places and the kns blows up if it's not specified

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-03-05.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-03-05.sql (for MySQL).

KULRICE-6916 - KRIM_ENTITY_CACHE_T.PRSN_NM is too small

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-03-13.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-03-13.sql (for MySQL).

2.1.0-m2 to 2.1.0-m3

KULRICE-6784 - Add index and constraint on KREW_RULE_ATTR_T.NM

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-04-04.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-04-04.sql (for MySQL).

KULRICE-5931 - Recall from Routing Enhancement for KNS / KEW

To apply this change, run the following SQL scripts for Oracle:

  • scripts/upgrades/2.0.0 to 2.1/db-updates/2012-03-20.sql
  • scripts/upgrades/2.0.0 to 2.1/db-updates/2012-03-28.sql
  • scripts/upgrades/2.0.0 to 2.1/db-updates/2012-04-11.sql
  • scripts/upgrades/2.0.0 to 2.1/db-updates/2012-04-12.sql

or the following SQL scripts for MySQL:

  • scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-03-20.sql
  • scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-03-28.sql
  • scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-04-11.sql
  • scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-04-12.sql
KULRICE-6964 - Update Rice default From email address

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-04-16b.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-04-16b.sql (for MySQL).

KULRICE-6946 - Responsibility data of the "Responsibility Details" section does not persist (KULRICE-7128 - DATABASE: Link 'qualifierResolverProvidedIdentifier' attribute to Responsibility type)

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-04-16.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-04-16.sql (for MySQL).

KULRICE-6611 - Correct KRMS type attributes for Validation Action & Rule in database

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-04-25.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-04-25.sql (for MySQL).

2.1.0-m3 to 2.1.0

KULRICE-6282 - AdHoc Route to Completion - MSU Contribution

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-05-11.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-05-11.sql (for MySQL).

KULRICE-7232 - KRNS_NTE_T is selected by a field with no indexes - full table scan every time

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-05-17.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-05-17.sql (for MySQL).

KULRICE-7344 - Database updates for krim_perm_attr_data_t org.kuali.rice.kew.batch.web.IngesterAction ATTR_VAL

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-05-21.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-05-21.sql (for MySQL).

KULRICE-7377 - KREW_RTE_NODE_T still defines DOC_TYP_ID as NUMBER(19)

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-05-24.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-05-24.sql (for MySQL).

KULRICE-7375 - Rice master data source has KREW_DOC_TYP_PROC_T.INIT_RTE_NODE_ID still defined as a NUMBER

To apply this change, run the SQL in scripts/upgrades/2.0.0 to 2.1/db-updates/2012-05-25.sql (for Oracle) or scripts/upgrades/2.0.0 to 2.1/db-updates/mysql-2012-05-25.sql (for MySQL).

2.1.1 to 2.1.2

KULRICE-8300 - problems with implementation of super user tab / KULRICE-7799 - Create a separate permission for accessing the new super user tab

To apply this change, run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates/2012-09-26.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-09-26.sql (for MySQL).

KULRICE-7792 - DB Update: Qualifier resolvers on KIM documents were not updated for Rice 2.0 classes / KULRICE-7793 - DB Update: DataDictionaryQualifierResolver class package was not updated in Rice 2.0 upgrade scripts

To apply this change, run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates/2012-10-12.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-10-12.sql (for MySQL).

KULRICE-7440 - KRMS_CNTXT_TERM_SPEC_PREREQ_S is still in master datasource / KULRICE-7412 - KREW_HLP_T and KREW_HLP_S is still in master datasource / KULRICE-7346 - ACTVN_TYP on KREW_RTE_NODE_T should be a varchar2(1) / KULRICE-7376 - APPL_ID length is inconsistent; Should always be 255 / KULRICE-7745 - County (not Country) maintenance document allowing bad state data - add FK constraint

To apply this change, run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates/2012-10-17.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-10-17.sql (for MySQL).

KULRICE-7786 - Document Specific Doc Search Application Document Status should be available (and groupable) on the basic version of search

To apply this change, run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates/2012-10-19.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-10-19.sql (for MySQL).

KULRICE-7378 - MySQL Upgrade script for Rice 2.0 is dropping not null constraints

To apply this change, run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates/2012-10-24.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-10-24.sql (for MySQL).

For client databases (MySQL only in this specific case), run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates-client/mysql-2012-10-24.sql

KULRICE-7509 - Rice KIM documents stay editable after submission

To apply this change, run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates/2012-10-25.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-10-25.sql (for MySQL).

KULRICE-8370 - Apply KULRICE-8300 database scripts to the 2.1.2 master database

KULRICE-8300 - problems with implementation of super user tab

To apply this change, run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates/2012-09-26.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-09-26.sql (for MySQL).

KULRICE-8402 - Apply database scripts to the 2.1 and 2.2 master databases

The changes relate to the following issues:
KULRICE-7793 - DB Update: DataDictionaryQualifierResolver class package was not updated in Rice 2.0 upgrade scripts
KULRICE-7792 - DB Update: Qualifier resolvers on KIM documents were not updated for Rice 2.0 classes

To apply this change, run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates/2012-10-12.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-10-12.sql (for MySQL).

KULRICE-8411 - Apply database scripts to the 2.1 and 2.2 master databases

The changes relate to the following issues:
KULRICE-7440 - KRMS_CNTXT_TERM_SPEC_PREREQ_S is still in master datasource
KULRICE-7412 - KREW_HLP_T and KREW_HLP_S is still in master datasource
KULRICE-7346 - ACTVN_TYP on KREW_RTE_NODE_T should be a varchar2(1)
KULRICE-7376 - APPL_ID length is inconsistent; Should always be 255
KULRICE-7745 - County (not Country) maintenance document allowing bad state data - add FK constraint

To apply this change, run the SQL in scripts/upgrades/2.1.0 to 2.1.2/db-updates/2012-10-17.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-10-17.sql (for MySQL).

2.1.2 to 2.1.3

KULRICE-8447 - Apply Backdoor Restriction database scripts to the 2.1 and 2.2 master databases

The changes relate to the following issue:
KULRICE-8302 - Backdoor Restriction via Permission

To apply these changes, run the SQL in scripts/upgrades/2.1.2 to 2.1.3/db-updates/2012-10-23.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-10-23.sql (for MySQL).

KULRICE-8552 - Apply populate group database scripts to the 2.1 and 2.2 master databases

The changes relate to the following issues:
KULRICE-8415 - Large roles cannot be opened or edited in KIM
KULRICE-4559 - Add Type as a qualifying value for Assign Group permissions

To apply these changes, run the SQL in scripts/upgrades/2.1.2 to 2.1.3/db-updates/2012-11-15.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-11-15.sql (for MySQL).

KULRICE-8592 - Apply Completion Action Requested database scripts to the 2.1 master database

The changes relate to the following issues:
KULRICE-7755 - document not editable when ad hoc routed for completion
KULRICE-7842 - Ad Hoc Route for Completion recipient does not have the Approve action available in the Action Requested drop down field

To apply these changes, run the SQL in scripts/upgrades/2.1.2 to 2.1.3/db-updates/2012-11-28.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-11-28.sql (for MySQL).

KULRICE-8667 - Add SESN_ID column to KRNS_PESSIMISTIC_LOCK_T table

The changes relate to the following issue:
KULRICE-8573 - KualiHttpSessionListener.sessionDestroyed(..) assumes only one document locked by user

To apply these changes, run the SQL in scripts/upgrades/2.1.2 to 2.1.3/db-updates/2012-12-12.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2012-12-12.sql (for MySQL).

KULRICE-7687 - Docs that go to final status without routing should not display the recall button

This update removes the assignment of the Recall Document permission for all doctypes from the Initiator role. This effectively removes the default that was introduced in Rice 2.1.0 that documents be Recallable. The mapping will remain in the sample app data to serve as an example for how Recall Document should be configured.

To apply this change, run the SQL in scripts/upgrades/2.1.2 to 2.1.3/db-updates/2013-01-09.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2013-01-09.sql (for MySQL).

KULRICE-8904 - Add Document Type Authorizer column to KREW_DOC_TYP_T table

The change relates to the following issue:
KULRICE-8610 - Make it so that the role qualifiers built in the DocumentTypePermissionService can be configurable by client apps.

The script adds an optional AUTHORIZER column to KREW_DOC_TYP_T.

To apply this change, run the SQL in scripts/upgrades/2.1.2 to 2.1.3/db-updates/2013-01-14.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2013-01-14.sql (for MySQL).

KULRICE-8985 - Add Index to prevent deadlocks during deletion of KSB entries

The script adds an additional index to KRSB_SVC_DEF_T that prevents Oracle from locking multiple rows when doing cascading deletes from this table.

To apply this change, run the SQL in scripts/upgrades/2.1.2 to 2.1.3/db-updates/2013-02-19.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2013-02-19.sql (for MySQL).

KULRICE-8333 - Portal iframe resize fix

Affects stand alone rice installs that use the supplied portal.

This fix introduces the context.names.<webappcontext> configuration parameters that specify the context name of the web application servers.
Each content source that is served from an application server that uses a context name will need a context.names.<webappcontext> parameter. Replace the <webappcontext> with a unique suffix of your choosing.  Specify the context name of the web application server as the value of this parameter.

By default context.names.app is set to app.context.name.  This allows bundled mode usage without additional configuration.  With standalone mode, the server that hosts the portal also doesn’t need any additional configurations thanks to context.names.app.

Example: KFS is used with a standalone rice server.

KFS URL: http://www.example.com:8080/kfs-test/portal.do
Rice URL: http://www.example.com:8080/rice-test/portal.do

The following additional configuration is needed in the kfs-config.xml:

A <param name="context.names.kfs">kfs-test</param> is not needed since “kfs-test” is specified as the app.context.name.

Example: KFS is used with a standalone rice server.

KFS URL: http://www.example.com:8080/kfs-test/portal.do
Rice URL: http://www.example.com:8080/portal.do

No additional configuration is needed. 
Specifying <param name="context.names.rice"></param> would be acceptable as well.

Example: KFS is used with bundled rice server.
No additional configuration is needed.

Configure Rice without KRAD (KNS Only)

In some cases it may be desirable to only use the KNS without KRAD. For example if you're timelines push a conversion to KRAD out into the future, you may see some benefits with startup performance and with memory usage.
You can override the kradApplicationModuleConfiguration bean to not include any of the files in the UIF folder. That is, you only need to include these files:

Likewise, this can be done for the ‘baselinePackages’ property on the dataDictionaryService bean.

2.0 to 2.2.0-m1

The following changes impact KRAD UIF configuration (XML). Mostly these should be covered by the Bean/CSS conversion script documented below.


KULRICE-7219 -  Pass title property through to tag attribute on all components

Previously the component title property was be used for various purposes. For example on Containers the title was used as a shorthand for setting header.headerText. The title property should be getting passed to the template and used to populate the title attribute on the corresponding tag (for example on a group this would be the div). Therefore the change was made to pass this through and add to the tags. The container property 'headerText' was added as a shorthand for setting the header.headerText property. The bean conversion script converts title to headerText. However it must be used with care since this should only be converted on containers (view and group), and not other components (like image or link).

KULRICE-7215 - Cleanup of Component Property Names

Many component property names were changed to better reflect their purpose. The bean conversion script will take care of renaming the properties in XML configuration. For a full listing of changed property names, see the project file 'beanReplacements.txt'.

KULRICE-7213 - Add Upper, Right, and Lower groups to Header

To provide more flexibility for adding header content, three groups were added to the Header component. These groups correspond to their render position relative to the h tag (header text). The first is named upperGroup and will render above the header text. The second is named rightGroup and will render to the right of the header text. The third is named lowerGroup and is rendered below the header text. One or more of these groups can have content for a single header.

The previous Header group named headerGroup has been replaced by the lowerGroup. The bean conversion script will convert any configuration on headerGroup to lowerGroup. If the content was intended to align to the right of the header text, this will need to be manually changed to rightGroup.

KULRICE-6837 - Framework Improvements - Introduction of Content Element

Previously all HTML content was rendered through a Field component. The field wrapped the content with a span and could also render a label. For some content types this did not make sense (for example iframe, label, and header). In addition, for others it might be useful to have a label, but general not needed (link, action, image). Therefore a component type named ContentElement was introduced. A content element corresponds directly with the HTML content tag without additional wrapping. For the first set of fields described above (iframe, label, header), a content element was created and the field was removed. For the second set content elements were created, but the field component remains. 

Mostly the impact of this was taken care of by the base bean definitions. In some cases the actual bean id changed which is handled by the bean conversion script. In cases where the field support remains but there is now a content element, application XML should be reviewed for places where it makes sense to change to the content element.

KULRICE-6839 - CSS Rework

An effort begin towards the end of the 2.0 cycle to rework the KRAD CSS code. This began with implementing a naming convention and standard for applying style classes to components. This work was completed in 2.2 M1 with the rework of the style sheets. This included rewriting styles to correspond with the new classes and removing any old code. Changed style names within the UIF XML can be converted using the CssRename.groovy script. Custom style sheets will need to be updated manually.

KULRICE-6672 - Framework Improvements - Validation Message Architecture

Validation message handling has changed significantly in 2.2 M1. The new architecture addresses many issues, primary among these being accessibility. The ErrorsField component has been dropped and replaced with the ValidationMessages component (with subclasses PageValidationMessages, GroupValidationMessages, and FieldValidationMessages). Many properties of ErrorsField are no longer available. These changes include:

  • All original properties other than displayMessages, displayFieldLabelWithMessages (now section/page level only), and additionalKeysToMatch have been eliminated as they no longer serve a purpose in the new framework.  Remove these properties from beans if in use.
  • 2 new properties were introduced:
    • collapseAdditionalFieldLinkMessages (section/page level only) - for collapsing fieldLink messages in a summary for messages beyond the first for section level summaries.  KRAD and UX recommended default is true.
    • useTooltip (field level only) - for using tooltip to display validation messages.  KRAD and UX recommended default is true.
  • The way messages are displayed on the page and user interaction with these messages were changed heavily.  These changes include:
    • Validation messages are summarized at the page level with links to sections which contain the messages
    • Validation message text for fields are links to those fields which will cause those fields to be focused
    • Validation message text is shown in tooltips for fields when focused or hovered over
    • When server errors are attempted to be fixed by the user, the field is marked as modified (if no client error persists)
    • When displayMessages flag switched to false, the framework will attempt to show the message content in the "next" available message area
    • When a user tries to submit a page that still has client-side errors the new summaries will appear
    • When a page has server side messages these new sumaries will appear
    • Various highlighting and color styling changes associated with the framework
  • See the Validation Framework demo view in the sample app to get a full demonstration of all new features introduced

Some property names have changed which is handled by the bean conversion script.

Bean and CSS Conversion Scripts

Icon

With the 2.2-m1 release are two scripts that will automatically convert changed bean names, property names, and CSS classes. These scripts are located in the Rice project within folder:

scripts/bean-rename

These are groovy scripts. To run a groovy script:

  1. Download groovy at: http://groovy.codehaus.org/Download?nc
  2. Follow the install instructions at: http://groovy.codehaus.org/Installing+Groovy
  3. Change into the directory which contains the script, then run with 'groovy scriptname.groovy'

The first conversion script is named BeanRename.groovy and renames bean ids and property names. This will find all XML files in the directory from which the script is run, and all sub-directories. Therefore you should first copy BeanRename.groovy and the file beanReplacements.txt to the directory which contains your UIF XML files, then run from that directory. 

Please note if you have XML files that contain KNS definitions (such as the LookupDefinition or MaintainbleDefinition), this conversion script should not be run on those files.

The second script is named CssRename.groovy and renames CSS classes. This will find all CSS files in the directory from which the script is run, and all sub-directories. Therefore you should first copy CssRename.groovy and the file cssReplacements.txt to the directory which contains your CSS file, then run from that directory.


KULRICE-6674 - UI Framework - Online Help architecture

The help URL on the document and lookup level has been removed from the KEW document type. This means the "Help Definition URL" and the "Document Search Help URL" on the "Document Type" are depreciated and don't serve any function anymore. Instead the help URL are defined on the UIF-View level either within the data dictionary or the system parameters.

KULRICE-7218 - Combine Inquiry and DirectInquiry

In 2.0, the Inquiry and DirectInquiry were separate widgets with separate properties on InputField. Therefore, when both were required both had to be configured with similar properties. This caused duplicate configuration. In 2.2, the DirectInquiry widget has been removed and the Inquiry widget supports rendering the direct inquiry when the field is not read-only. The direct inquiry behavior can be disabled with the Inquiry property enableDirectInquiry.

Any configuration referencing fieldDirectInquiry will need to be converted to the property named inquiry. Note if the standard inquiry and direct inquiry were both configured for a field, the direct inquiry can simply be dropped. If you were disabling the direct inquiry by fieldDirectInquiry.render="false", this can be changed to inquiry.enableDirectInquiry. The bean conversion script makes this change.

KULRICE-7217 - Growls Processing

The process for adding growl messages server side has been modified. In 2.0, a growl was shown for each message in the GlobalVariables.getMessageMap() that was of type Info. The MessageMap has been enhanced to support a new growl type. For adding growls you now should call one of the following methods:

No changes were made for adding growls client side (still call the method showGrowl(message, title, theme))

KULRICE-7032 - Allow controller to return one way regardless of component refresh or full build

In Rice 2.0, a controller method needed to be built based on whether it would be called as part of a component refresh, or a full request. This was confusing as it required knowledge of the different refresh return method and prevented the method from being used for both types of calls. In 2.2, the controller methods no longer need to make this distinction. They can simply return the standard getUifModelAndView call for both component refresh and full requests.

Any controller methods that were returning updateComponent(uiTestForm, result, request, response) should be replace the return call with getUIFModelAndView(form).

KULRICE-7030 - Default action field prototype on Table layout manager to horizontal

The default layout for the action field group rendered by a table layout manager was changed from vertical box to horizontal box. This means for table with multiple line actions, the actions will now render in a horizontal row instead of vertical. If it is desired to have the actions align vertically, the actionFieldPrototype can be overridden.

KULRICE-7010 - Upgrade of jQuery to 1.7.2

The jQuery library in KRAD was upgraded from 1.6.3 to 1.7.2. Mostly this should not have an impact on applications. There were a couple of removed methods that might impact custom script. These and other notes can be found in the jQuery release notes:

KULRICE-6864 - Cleanup of UIF Footer Beans

In Rice 2.0 the Uif-FormView bean contained a footer defined that included the save, close, and cancel actions. The Uif-FormView bean has been changed to not include any footer actions by default. For these common actions, a bean named 'Uif-FormFooter' was created that can be used for a view or page when needed.

2.2.0-m1 to 2.2.0-m2

KULRICE-6838 - Ajax framework improvements.

Renamed clientSideJs in Action.java to actionScript. Any client side javascript that the user needs to be executed will now have to be set using the "actionScript" property instead of "clientSideJs".

handleIncidentReport() in krad.message was changed so that it no longer replaces the view with the incident report. It checks if the content is incident report view and then returns true else it returns false. The view is now replaced by the updateViewHandler() in krad.ajax.

ajaxSubmitForm(methodToCall, successCallback, additionalData, elementToBlock, errorCallback) has been changed to ajaxSubmitForm(methodToCall, successCallback, additionalData, elementToBlock ,  preSubmitCall). This in turn calls the ajaxSubmitFormFullOpts(methodToCall, successCallback, additionalData, elementToBlock, errorCallback, validate,preSubmitCall, returnType).

The following new methods have been added to krad.ajax.js

1. actionInvokeHandler(component)  -  Instead of calling the jQuery('#kualiForm').submit(), it has been replaced by the actionInvokeHandler(component). Component is the element on which the action has been invoked. This method checks based on the data-attributes whether it is an ajax submit or a non ajax one and then calls one of the submit       methods.

2. ajaxSubmitForm()  - This in turn calls the ajaxSubmitFormFullOpts() with the validate flag set to false.
    
3. validateAndAjaxSubmitForm()  - This in turn calls the ajaxSubmitFormFullOpts() with the validate flag set to true.
   

4. ajaxSubmitFormFullOpts() - Submits the form through an ajax submit, the response is the new page html runs all hidden scripts passed back (this is to get around a bug with premature script evaluation). It is similar to the old ajaxSubmitForm() but has some additional parameter which allow for providing hooks  for  successCallback,errorCallback and preSubmitCalls. It also takes a validate flag as well as a returnType. A returnType is used to request data from the server but the server may override it. If the validate flag is set it validates the form and  proceeds if the form is valid. If a presubmit call is specified then it executes that and proceeds if it returns true. If the returnType is not given then it defaults to "update-page" and sets it on the data which will be submitted to the server. It then calls the invokeAjaxReturnHandler() to determine which handler function to call. The successCallback and errorCallback are handled as they were before in ajaxSubmitForm(). The elementToBlock and the lightBox processing remain the same.

5. submitForm() -  This is used for non-ajax calls. This in turn calls the submitFormFullOpts() with the validate flag set to false.
    
6. validateAndSubmitForm() - This is used for non-ajax calls. This in turn calls the submitFormFullOpts() with the validate flag set to true.
    
7. submitFormFullOpts() - Does a non ajax submit. The data-attributes that are passed in as additional data are written as hidden params to the form before it is submitted.
    
8. invokeAjaxReturnHandler() - This method iterates over divs in the content that is passed in to determine which handler functions to call. The handler functions are initialized in krad.initialize.js
    
9. updatePageHandler() - Called if the returnType is "update-page". Finds the page content in the returned content and updates the page, then processes breadcrumbs and hidden scripts. While processing, the page contents are hidden (works similar to the the updatePageCallback()).
    
10. updateViewHandler() - Replaces the view with the given content and runs the hidden scripts. Called when the returnType is "update-view".
    
11. redirectHandler() - Called when the returnType is "redirect". Replaces the contents of the window with those of the redirected URL.

12. updateComponentHandler() - Called when the returnType is "update-component". Retrieves the component with the matching id from the server and replaces a matching  _refreshWrapper marker span with the same id with the result.  In addition, if the result contains a label and a displayWith marker span has a matching id, that span will be replaced with the label content  and removed from the component.  This allows for label and component content seperation on fields (Works the same as updateRefreshableComponentCallback)

Changes and removal of some methods in DictionaryValidationService (KRAD version) and ViewValidationService as a result of State based validation

Please see these classes for the changes made here.  Some method signatures were changed for this support and some methods were removed for clarity.

KULRICE-7485 - Refactoring of Session Form Handling

Previously to clear (or reset) form properties between requests the postBind form method could be implemented. This method has been removed in M2. Now to indicate a property should not be persisted in session (thus reset for each request) the annotation @SessionTransient should be added before the property declaration.

KULRICE-7527 - Removal of some default nested beans

To help with performance, some nested beans that were being initialized in the XML were pulled out. In the code, if determined the component is needed, a call is made to then initialize the bean.

This means for these removed beans, if you were using the nested notation to set a property (for example, 'nested.property'), this will now throw an exception. You must first initialize the nested bean, then set the property. Note in cases where the default initialization was removed, a top level bean was created making it easy to initialize if needed.

The following nested beans were removed:

  • Uif-InputField - constraintMessage, instructionalMessage, and suggest property
  • Uif-Image - captionHeader and cutlineMessage property
  • Uif-Header* - upperGroup, rightGroup, and lowerGroup properties 
  • All containers (Uif-Group, sections, subsections) - instructionalMessage property
Example Conversion
KULRICE-7351 - JSP Templates converted to FreeMarker

For performance reasons the KRAD JSP templates were converted to use the FreeMarker templating language. Any custom components (or template overrides) that were created will need to be converted to FreeMarker.

See this page for a comparison of JSP and FreeMarker: https://wiki.kuali.org/display/KULRICE/Freemarker+and+JSP+comparison

Templates are associated with a component (bean) using two properties now. The first is the template property which gives the location of the template source. The second is the templateName property which is the name of the template to invoke (in FreeMarker this is the macro name). If you override one of the default templates, make sure to also give the template a unique templateName.

KULRICE-7246 - Default escapeHtmlInPropertyValue to True

For security reasons the escapeHtmlInPropertyValue property on DataField was defaulted to true. Therefore if you have a property which has HTML that should be rendered, you will need to set this property to false on the data field.

Information on other non-impacting but important updates for 2.2 M2

KULRICE-7350 - Preloading of View Objects

Loading the view object from bean definitions can take up to 4 or 5 seconds in some cases (although this is improving with the removal of default nested beans). To boast performance, an enhancement was put in to 'pre-load' the view objects. This means when the application starts up, it will fetch one or more view objects for a particular view and hold until a request is made. The number of views to preload is configured by the view property preloadPoolSize. This is set to 1 by default for all views except lookups and inquiries.

Setting Preload Pool Size

The views are loaded in a separate thread so the startup time is not impacted. Whenever a request for a view is made, a view from the pool is returned and a new view object is pulled in a separate thread to replace it. If no view objects exist in the pool at the time of a request, a call is made to build the view object. For high load views you can experiment with increasing the pool size so that a view is always available (Note a log statement is made when a view is not available from the pool, thus this can be used to help tune the parameter).

Note though storing the preloaded view objects consumes memory. In Rice (with Sampleapp) the storage was 91mb (and Rice does not have many views compared to what other applications like the KFS would). 

KULRICE-6557 - Limiting Form Storage Size

In previous versions of Rice a user can keep requested view objects whose forms get added to the user session (note this is only for views that have session persistence enabled). Although there are clear points implemented, they do not catch many exit actions. Therefore more and more memory continues to be consumed, even though the user might be long done with the form. 

To prevent this problem a configuration parameter was introduced that limits the number of forms per user session. The parameter name is maxNumberOfSessionForms and is set to 5 by default. This parameter can be tuned as needed however it is not recommended to go lower than 5 (think of nested lookups that might take place from a view).

Setting Max Form Storage Size

Whenever the number of session forms is greater than the configured maximum allowed, a form will be removed from the session. For determining which form to remove in these situations, the forms are arranged according to when they were accessed. In other words, the form whose last requested action time is oldest will be removed (most recently accessed forms will be kept). 

2.2.0-m3 to 2.2.0-m4

Database Updates
KULRICE-7439 - Assignment of "Add Message to Route Log" permission to the KR-SYS technical administrator is missing from bootstrap dataset

Note: The "Add Message to Route Log" permission assignment to the KR-SYS "Technical Administrator" role was present in the main 1.0.3.3 dataset but missing in the bootstrap dataset for 2.0.0. The sql script removes the permission from the role to make upgraded databases consistent with new ones.

To apply this change, run the SQL in scripts/upgrades/2.1 to 2.2/db-updates/2012-07-20.sql (for Oracle) or scripts/upgrades/2.1 to 2.2/db-updates/mysql-2012-07-20.sql (for MySQL).

KULRICE-8322 - DB updates for external messages

A new message table and locale system parameter was added to support external messages.

To apply this change, run the SQL in scripts/upgrades/2.1 to 2.2/db-updates/2012-08-29.sql and 2012.09-13.sql (for oracle) or scripts/upgrades/2.1 to 2.2/db-updates/mysql-2012-08-29.sql and mysql-2012-09-13.sql (for MySQL).

KULRICE-8349 - KIM role and guest user to support guest access

To support guest access a new KIM user with id 'guest' was created along with a guest role.

To apply this change, run the SQL in scripts/upgrades/2.1 to 2.2/db-updates/2012-09-29.sql  (for oracle) or scripts/upgrades/2.1 to 2.2/db-updates/mysql-2012-09-29.sql (for MySQL).

End Database Updates
KULRICE-7783 - Finish Cleanup of Ajax Actions

AjaxAction and its bean Uif-AjaxActionButton was removed. All bean references should change to use 'Uif-PrimaryActionButton' (ajax is the default now). The bean update script can be run to apply this change.

Property validatedLineActions on CollectionGroup was removed. Now actions that are defined in lineActions can have the property 'performClientSideValidation' flag set to true to indicate the line should be validated.

KULRICE-7355 - Ambiguous method call in MessageMap.addGrowlMessage()

Removed MessageMap#public void addGrowlMessage(String growlTitle, String messageKey) 
Removed MessageMap#public void addGrowlMessage(String growlTitle, String growlTheme, String messageKey)
Removed MessageMap#public void addGrowlMessage(String growlTitle, String growlTheme, String messageKey, String... messageParameters)

Use MessageMap#addGrowl(GrowlMessage growl)

KULRICE-6676 - Central Message Repository

Property labelKey of BaseConstraint (and therefore all constraints) was renamed to messageKey. The bean update script can be run to apply this change.

Property baselinePackages of DataDictionaryService was renamed to additionalDictionaryFiles. In addition changed from a List<String> to Map<String, List<String>> where the map key is the namespace the dictionary beans should be associated with.

2.2.0-m4 to 2.2.0-rc1

Database Updates
KULRICE-8539 - Apply SQL for new KRMS tables to the 2.2 master db

New tables and sequences were added to the KRMS schema to support Type-Type Relations, Natural Language Translation, Reference Object Bindings features (Rice 2.x - KRMS for KS Analysis).

To apply this change, run the SQL in scripts/upgrades/2.1 to 2.2/db-updates/2012-11-14.sql (for Oracle) or scripts/upgrades/2.1 to 2.2/db-updates/mysql-2012-11-14.sql (for MySQL).

Transactional Document Support

Renamed MaintenanceForm to MaintenanceDocumentForm
Renamed MaintenanceView to MaintenanceDocumentView

2.2.0 to 2.2.1

KULRICE-9000 - guest principal and entity were stripped from the server bootstrap dataset

The script adds the guest entity and principal to a dataset if they are not already present.

To apply this change, run the SQL in scripts/upgrades/2.1.2 to 2.1.3/db-updates/2013-02-14.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2013-02-14.sql (for MySQL).

KULRICE-8985 - Add Index to prevent deadlocks during deletion of KSB entries

The script adds an additional index to KRSB_SVC_DEF_T that prevents Oracle from locking multiple rows when doing cascading deletes from this table.

To apply this change, run the SQL in scripts/upgrades/2.1.2 to 2.1.3/db-updates/2013-02-19.sql (for Oracle) or scripts/upgrades/2.1.0 to 2.1.2/db-updates/mysql-2013-02-19.sql (for MySQL).

KULRICE-8333 - Portal iframe resize fix

Affects stand alone Rice installs that use the supplied portal.

This fix introduces the context.names.<webappcontext> configuration parameters that specify the context name of the web application servers.
Each content source that is served from an application server that uses a context name will need a context.names.<webappcontext> parameter. Replace the <webappcontext> with a unique suffix of your choosing. Specify the context name of the web application server as the value of this parameter.

By default context.names.app is set to app.context.name. This allows bundled mode usage without additional configuration. With standalone mode, the server that hosts the portal also doesn’t need any additional configurations thanks to context.names.app.

Example: KFS is used with a standalone Rice server.

KFS URL:http://www.example.com:8080/kfs-test/portal.do
Rice URL:http://www.example.com:8080/rice-test/portal.do

The following additional configuration is needed in the kfs-config.xml:

A <param name="context.names.kfs">kfs-test</param> is not needed since “kfs-test” is specified as the app.context.name.

Example: KFS is used with a standalone Rice server.

KFS URL:http://www.example.com:8080/kfs-test/portal.do
Rice URL:http://www.example.com:8080/portal.do

No additional configuration is needed.
Specifying <param name="context.names.rice"></param> would be acceptable as well.

Example: KFS is used with bundled Rice server.
No additional configuration is needed.

2.2.1 to 2.2.2

KULRICE-9152 - PK for krad_msg_t is too long for MySQL 5.1

The script reduces the size of the KRAD_MSG_T.LOC column from a VARCHAR(255) to a VARCHAR(80) (Note: for Oracle, the column is of type VARCHAR2) in order to bring down the total size of the compound primary key to a length supported by MySQL 5.1.

Depending on if you are applying this to a client or server schema, and based on your database platform, the scripts to run will differ:

  • Server dataset:
    • MySQL:
      • scripts/upgrades/2.2.1 to 2.2.2/db-updates/mysql-2013-03-18.sql
    • Oracle:
      • scripts/upgrades/2.2.1 to 2.2.2/db-updates/2013-03-18.sql
      • The above script will leave an extra table behind named OLD_KRAD_MSG_T. Once you are satisfied that the data in the new KRAD_MSG_T table is intact, you can drop OLD_KRAD_MSG_T by running scripts/upgrades/2.2.1 to 2.2.2/db-updates/cleanup-2013-03-18.sql
  • Client dataset:
    • MySQL:
      • scripts/upgrades/2.2.1 to 2.2.2/db-updates-client/mysql-2013-03-18.sql
    • Oracle:
      • scripts/upgrades/2.2.1 to 2.2.2/db-updates-client/2013-03-18.sql
      • The above script will leave an extra table behind named OLD_KRAD_MSG_T. Once you are satisfied that the data in the new KRAD_MSG_T table is intact, you can drop OLD_KRAD_MSG_T by running scripts/upgrades/2.2.1 to 2.2.2/db-updates-client/cleanup-2013-03-18.sql

2.2.X to 2.3-M1

  • Suggest widget had changes to its properties for clarity and enhancement: 
    • sourcePropertyName is now valuePropertyName
    • sourceQueryMethodResults is now returnFullQueryObject
    • labelPropertyName was added
    • additionalPropertiesToReturn was added
  • The div structure around headers was changed to accommodate unifiedHeader and stickyHeader functionality.  This also fixes a layout bug with right/upper/bottomGroup of headers.
  • headerText on pages will no longer appear in the same location because unifiedHeader option of View is used by default (UX recommendation).  To restore this look turn this flag off.
  • Views now use the header class ViewHeader in its bean definition (expands features for header specific to view headers)
  • A group that appears above the Breadcrumbs of a View was added to the layout (called topGroup).
  • When using stickyHeader/stickyFooter functionality some styles will not be used (and may break this functionality) if they have been customized: specifically margins and position/display related styles for these areas due to the nature of this feature.
  • Breadcrumbs have been completely overhauled:
    • various properties of the Breadcrumbs widget have been removed. 
    • BreadcrumbOptions have been added to allow full control over how breadcrumbs appear
    • If no customizations to the past breadcrumbs were made, this transition should be seamless
    • breadcrumb.ftl was added to represent a single breadcrumb
    • homewardPath should now be controlled through either parentLocation options or preViewBreadcrumb options
    • breadcrumbs are now tied directly to a Page (as opposed to a View).  Relevant options will always be pulled from the page's breadcrumbOptions (non-render specific properties can be inherited from the View setting).
    • Breadcrumbs in inquiry and lookup lightboxes (as a path) have been temporarily disabled until M2
  • Various changes to how the validation framework appears and behaves have been made at UX request, see https://jira.kuali.org/browse/KULRICE-8917 for a full list of changes made
  • When adding css classes to a component the additionalCssClasses convenience property should be used instead of merging the cssClasses list
  • Class moves due to KRAD split work:
    • GlobalResourceLoaderServiceFactoryBean moved from impl/src/main/java/org/kuali/rice/krad/config to core/framework/src/main/java/org/kuali/rice/core/framework/resourceloader
    • InfrastructureException removed
    • org.kuali.rice.krad.exception in impl moved to krad-app-framework
    • Moved fields in AttributeReferenceElements to AttributeReferenceDummy, then removed AttributeReferenceElements
    • Renamed AttributeReferenceDummy to AttributeReference (and AttributeReferenceDummy.xml to AttributeReference.xml). Beans still can be reference with 'AttributeReferenceDummy')
    • Removed AttributeReferenceDummyTest
    • Moved LookupResults from (impl) org.kuali.rice.krad.bo to org.kuali.rice.kns.lookup
    • Moved SelectedObjectIds and MultipleValueLookupMetadata from (krad-app-framework) org.kuali.rice.krad.bo to (impl) org.kuali.rice.kns.lookup
    • Moved ConfigurationServiceImpl from (impl) org.kuali.rice.krad.service.impl to org.kuali.rice.kns.service.impl
    • Create new impl ConfigurationServiceImpl in (core-impl) org.kuali.rice.core.impl.services that just picks up config files
    • Removed DuplicateKeyException and PropertiesException, changed to RiceRuntimeException
    • Moved getKualiConfigurationService from KRADServiceLocator to CoreApiServiceLocator
    • Moved ModuleServiceNotFoundException from (impl) org.kuali.rice.krad.service to (krad-web) org.kuali.rice.krad.exception
    • Moved IfExistsFactoryBean and NamedOrderedListBean from (impl) org.kuali.rice.krad.util.spring to (core-framework) org.kuali.rice.core.framework.util.spring
    • Moved AttributeReference from (impl) org.kuali.rice.krad.bo to (krad-web) org.kuali.rice.krad.datadictionary
    • Moved (impl) org.kuali.rice.krad.workflow.atribute to (impl) org.kuali.rice.kns.workflow.attribute
    • Moved (impl) WorkflowAttributePropertyREsolutionService(Impl) from org.kuali.rice.krad.workflow.service to org.kuali.rice.kns.workflow.service
      Moved (impl) WorkflowUtils from org.kuali.rice.krad.workflow to org.kuali.rice.kns.workflow

2.3-M1 to 2.3-M2

Impacting Changes

  • The way in which html data attributes (dataAttributes property on component) are handled in KRAD was changed.  We now place what we considered "complex" data attributes directly into the element's html tag rather than using script to enhance performance.  This requires that these data objects follow the JSON spec exactly for the data to be picked up correctly in the script.  Data objects must also escape certain characters (quote, single quote, etc) when they are added as a result.
  • KRAD Actions now use a single handler at the js level to enhance performance.  Their script is written to an attribute called data-onclick which is consumed by the framework when needed.  Inquiry lightbox links use the same pattern.  This should not have any direct impact for most cases, but script added at the Java level must be appropriately escaped now for these elements (these elements handle this themselves).
  • The close button no longer exists for most pages due to user usability and understanding concerns. 
    • As a result, the close method on the UifControllerBase no longer exists on all views (except lightbox views) and is renamed to "back".  Back is a new method that tries to determine the best course of action for going back one view when called and is called from cancel.  Cancel was eliminated from inquiry views entirely and inquiry now only have a "< Back" button for clarity.
    • If in a HistoryFlow (path based breadcrumbs), a returnToStart parameter with "true" can be passed to go back to the "start" of that flow
  • BreadcrumbOptions was split into BreadcrumbOptions (for View) and PageBreadcrumbOptions (for Page), the difference being that the render options are only at the page level (they were only ever consumed at the page level before, this is a change for clarity).

Notes on Other Non-Impacting Changes

KULRICE-8427 - Session Support

In order to take advantage of the new session support functionality, you must add the following filter to your web.xml file. In addition, the filter must be first in the list of filters (before the login filter).

Session Timeout Filter

2.3-M2 to 2.3-M3

KULRICE-8926Convert default login screen to KRAD
  • As part of the conversion to a KRAD login screen three filters were moved from org.kuali.rice.kew.web to org.kuali.rice.krad.web.filter
    • BootstrapFilter.java
    • DummyLoginFilter.java
    • UserLoginFilter.java
  • !! Configuration files which may reference these filter with filter.filtername.class= property definitions, will need to be updated to the new package names.

  • A new servlet login-servlet.xml was created and added to the WEB-INF of 
    • krad-web
    • krad-sampleapp
    • rice-web

KULRICE-8431 - perform expression evaluation once per view lifecycle

  • Renamed to ExpressionEvaluator and DefaultExpressionEvaluator
  • Moved to org.kuali.rice.krad.uif.view
  • Changed method signatures to not take view
  • Added method initializeEvaluationContext(Object contextObject)
  • Added public getExpressionEvaluator() to ViewHelperServiceImpl for getting initialized instance during lifecycle

 

KULRICE-5391 - Add messages to lookup results

  • Added new messages for primary key and results found to ApplicationResources.properties
  • Added LookupResultCollectionSection now includes LookupResultMessages in 
KULRICE-5287 - Lookup - Need export on results table

  • Replaces use of flash export functionality built in datatables.tableTools with server side method calls
  • Added new retrieveTableData method to UifControllerBase
  • Added two new parameters, showSearchOption and showExportOption, to the RichTable
  • Defaults showExportOption to true
Changed addLineLabel from Label to Message on CollectionGroup

2.3-M3 to 2.3-RC1

KULRICE-8433 - Removed quickfinder and inquiry initialization from data and input field beans

In order to improve performance by thinning out the view graph, the quickfinder and inquiry widget initialization was removed from Uif-DataField and Uif-InputField.

This means if you were using nested properties to configure these widgets that will now throw a NPE. 

Ex. quickfinder.render="false", quickfinder.dataObjectClassName="edu.iu.TravelAccount"

Instead, you must fully initialize and configure the widget.

Quickfinder Conversion
Inquiry Conversion

Automatic quickfinders and inquiries will still be associated when relationships are found, and the widget is not manually configured. To disable automatic functionality use the flags: enableAutoQuickfinder, enableAutoInquiry, enableAutoDirectInquiry 

Turning off Automatic Quickfinder

The initialization of the quickfinder widget on collection groups has also been removed. This means if you were setting p:collectionLookup.render="false" to remove it you no longer need to do so.

Collection Lookup Conversion

 

KULRICE-9612 - Copying of components reimplemented to use copy method on component

For performance reasons the use of CloneUtils for copying components was replaced with copy methods on each component. If you have created any custom components you should override the copyProperties method and copy the properties specific to the subclass.

Copy Properties Implementation

Make sure to call super, and to invoke copy() on all nested components.

 

KULRICE-8910 - Bootstrap added as default library, Fluid removed

The fluid CSS files and infusion JavaScript library have been removed from the default theme. If you wish to continue using these you will need to download and add to your custom theme. 

In addition, the Reorderer component was removed from KRAD since it was implemented using the Fluid infusion library.


KULRICE-9238 - Changes to view theme and new theme builder

Along with bringing in Bootstrap, the view theme was reworked to support Less and to fix previous pain points. This mostly only impacts those who are creating custom themes.

Switching to use non minified files

By default the themes will use the minified versions of the theme CSS and JS files. If you wish to use the full source files for development purposes, set the Rice config properties 'krad.dev.mode' to true in your local config file.

Building Custom Themes

Documentation will be coming shortly in the KRAD guide for developing custom themes. In the meantime, look at the JavaDocs for ViewTheme, and ThemeBuilder in the new KRAD theme builder module.

 

 

  • No labels