Extensive schema changes were made between the 2.1 and 2.2 versions related to the Portlet API 2.0 Standard implementation, the Pluto 2.0 integration, and the refactoring of the security and SSO components. Here is a summary of the table modifications that were made:
| Registry and Preferences Table Name | Modification |
|---|---|
| CUSTOM_PORTLET_MODE | columns changed |
| CUSTOM_WINDOW_STATE | columns changed |
| EVENT_ALIAS | new table |
| EVENT_DEFINITION | new table |
| FILTERED_PORTLET | new table |
| FILTER_LIFECYCLE | new table |
| FILTER_MAPPING | new table |
| LANGUAGE | columns changed |
| LOCALE_ENCODING_MAPPING | new table |
| LOCALIZED_DESCRIPTION | columns changed |
| LOCALIZED_DISPLAY_NAME | columns changed |
| NAMED_PARAMETER | new table |
| PARAMETER | columns changed |
| PARAMETER_ALIAS | new table |
| PA_SECURITY_CONSTRAINT | new table |
| PORTLET_APPLICATION | columns changed |
| PORTLET_CONTENT_TYPE | deleted |
| PORTLET_DEFINITION | columns changed |
| PORTLET_ENTITY | deleted |
| PORTLET_FILTER | new table |
| PORTLET_LISTENER | new table |
| PORTLET_PREFERENCE | new table |
| PORTLET_PREFERENCE_VALUE | new table |
| PORTLET_SUPPORTS | new table |
| PREFS_NODE | deleted |
| PREFS_PROPERTY_VALUE | deleted |
| PROCESSING_EVENT | new table |
| PUBLIC_PARAMETER | new table |
| PUBLISHING_EVENT | new table |
| RUNTIME_OPTION | new table |
| RUNTIME_VALUE | new table |
| SECURED_PORTLET | new table |
| SECURITY_ROLE | columns and constraints changed |
| USER_ATTRIBUTE | columns changed |
| WEB_APPLICATION | deleted |
| Security and SSO Table Name | Modification |
|---|---|
| SECURITY_ATTRIBUTE | new table |
| SECURITY_CREDENTIAL | columns changed |
| SECURITY_DOMAIN | new table |
| SECURITY_GROUP_ROLE | deleted |
| SECURITY_PERMISSION | columns and constraints changed |
| SECURITY_PRINCIPAL | columns and constraints changed |
| SECURITY_PRINCIPAL_ASSOC | new table |
| SECURITY_USER_GROUP | deleted |
| SECURITY_USER_ROLE | deleted |
| SSO_COOKIE | deleted |
| SSO_COOKIE_TO_REMOTE | deleted |
| SSO_PRINCIPAL_TO_REMOTE | deleted |
| SSO_SITE | columns and constraints changed |
| SSO_SITE_TO_PRINCIPALS | deleted |
| SSO_SITE_TO_REMOTE | deleted |
| Statisitics Table Name | Modification |
|---|---|
| ADMIN_ACTIVITY | column sizes changed |
| USER_ACTIVITY | column sizes changed |
Given the extensive modifications made between these releases, migration is best performed using an ETL approach. To support this outside of the Jetspeed portal build and runtime environments, export, initialization, and import functionality have been integrated into the Jetspeed installer. The installer can be downloaded as a binary and, together with a JDBC driver, can be used to migrate from 2.1.3/2.1.4 to 2.2.1.
Documentation for ETL migration using the Jetspeed installer can be found here: ETL Migration Guide. Note that migration of Derby databases using the installer is not currently supported.
The following tables describe database schema changes from version 2.1.3 to version 2.1.4.
The following tables describe database schema changes from version 2.1.3 to version 2.1.2.
| Table | Index | type | column(s) |
|---|---|---|---|
| PREFS_NODE | IX_PREFS_NODE_1 | non unique | PARENT_NODE_ID |
| PREFS_NODE | IX_PREFS_NODE_2 | non unique | FULL_PATH |
| PREFS_PROPERTY_VALUE | IX_FKPPV_1 | non unique | NODE_ID |
| Table | Name | Column(s) | Referencing table | Referencing column(s) | 2.1.2 | 2.1.3 |
|---|---|---|---|---|---|---|
| PREFS_NODE | FK_PREFS_NODE_1 | PARENT_NODE_ID | PREFS_NODE | NODE_ID | (not casade delete) | CASCADE DELETE |
| PREFS_PROPERTY_VALUE | (not named) | NODE_ID | PREFS_NODE | NODE_ID | (not casade delete) | CASCADE DELETE |
Here is an example of the SQL migration scripts for the MySQL database:
CREATE INDEX IX_PREFS_NODE_1 ON PREFS_NODE (PARENT_NODE_ID);
CREATE INDEX IX_PREFS_NODE_2 ON PREFS_NODE (FULL_PATH);
CREATE INDEX IX_FKPPV_1 ON PREFS_PROPERTY_VALUE (NODE_ID);
ALTER TABLE PREFS_NODE ADD CONSTRAINT FK_PREFS_NODE_1 FOREIGN KEY (PARENT_NODE_ID) REFERENCES PREFS_NODE (NODE_ID) ON DELETE CASCADE;
ALTER TABLE PREFS_PROPERTY_VALUE ADD CONSTRAINT FK_PREFS_PROPERTY_VALUE_1 FOREIGN KEY (NODE_ID) REFERENCES PREFS_NODE (NODE_ID) ON DELETE CASCADE;
Here is an example of the SQL migration scripts for the MySQL database:
CREATE INDEX IX_PREFS_NODE_1 ON PREFS_NODE (PARENT_NODE_ID);
CREATE INDEX IX_PREFS_NODE_2 ON PREFS_NODE (FULL_PATH);
CREATE INDEX IX_FKPPV_1 ON PREFS_PROPERTY_VALUE (NODE_ID);
ALTER TABLE PREFS_NODE ADD CONSTRAINT FK_PREFS_NODE_1 FOREIGN KEY (PARENT_NODE_ID) REFERENCES PREFS_NODE (NODE_ID) ON DELETE CASCADE;
ALTER TABLE PREFS_PROPERTY_VALUE ADD CONSTRAINT FK_PREFS_PROPERTY_VALUE_1 FOREIGN KEY (NODE_ID) REFERENCES PREFS_NODE (NODE_ID) ON DELETE CASCADE;
The following tables describe database schema changes from version 2.1 to version 2.1.2.
The following items describe important functional changes in Jetspeed 2.1
Version 2.1 is the first Jetspeed version to support Portlet API Caching. In 2.0 the expiration-cache was set to -1 (infinity time) for all layouts in the file WEB-INF\apps\jetspeed-layouts\WEB-INF\portlet.xml. When upgrading to version 2.1 or greater from 2.0, you will need to update your database to disable portlet caching on the Jetspeed layouts. Updating the layouts can be achieved by either redeploying the jetspeed-layouts portlet application, or by updating your database as shown below (assuming the APPLICATION_ID value is 2) for the jetspeed-layouts application.
UPDATE PORTLET_DEFINITION P SET EXPIRATION_CACHE = 0 WHERE P.APPLICATION_ID = 2
Portlet Preferences are now by default user specific on all pages. In Jetspeed 2.0, for shared pages, the Portlet Preferences were shared as well.
To retain most of the old Jetspeed 2.0 behavior, allowing an administrator to still set/modify initial Preferences for other users,
modify the following setting in the registry.xml spring assembly configuration for the portletEntityAccessImpl component:
<!-- All preferences were shared. With JS2-449, preferences are now stored 'per user'. The username is stored in the preferences FULL_PATH To turn on mergeSharedPreferences configure this property to true This will NOT turn off per user prefs, but instead merge with them, where user prefs override. boolean --> <constructor-arg type="boolean"> <value>false</value> </constructor-arg>
The following tables describe database schema changes from version 2.0 to version 2.1.
| Table | Column | 2.0 | 2.1 |
|---|---|---|---|
| PORTLET_STATISTICS | ELAPSED_TIME | INTEGER | BIGINT |
| PAGE_STATISTICS | ELAPSED_TIME | INTEGER | BIGINT |
| USER_STATISTICS | ELAPSED_TIME | INTEGER | BIGINT |
| FOLDER | SKIN | NEW: VARCHAR(80) | |
| FOLDER | DEFAULT_LAYOUT_DECORATOR | NEW: VARCHAR(80) | |
| FOLDER | DEFAULT_PORTLET_DECORATOR | NEW: VARCHAR(80) | |
| FRAGMENT | STATE | VARCHAR(40) | VARCHAR(10) |
| FRAGMENT | PMODE | NEW: VARCHAR(10) | |
| FRAGMENT | LAYOUT_X | NEW: REAL | |
| FRAGMENT | LAYOUT_Y | NEW: REAL | |
| FRAGMENT | LAYOUT_Z | NEW: REAL | |
| FRAGMENT | LAYOUT_WIDTH | NEW: REAL | |
| FRAGMENT | LAYOUT_HEIGHT | NEW: REAL | |
| LINK | SKIN | NEW: VARCHAR(80) | |
| PORTLET_DEFINITION | SECURITY_REF | NEW: VARCHAR(40) | |
| PORTLET_DEFINITION | SECURITY_REF | NEW: VARCHAR(40) | |
| PORTLET_APPLICATION | SECURITY_REF | NEW: VARCHAR(40) | |
| SSO_COOKIE | COOKIE | VARCHAR(250) | VARCHAR(1024) |
| Table | Index | 2.0 | 2.1 |
|---|---|---|---|
| FOLDER_MENU | UN_FOLDER_MENU_1 | unique | (non unique) index |
| PAGE_MENU | UN_PAGE_MENU_1 | unique | (non unique) index |
| FRAGMENT | UN_FRAGMENT_1 | unique | (non unique) index |
| Table | Column | 2.0 | 2.1 |
|---|---|---|---|
| FOLDER | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_1" |
| FOLDER_METADATA | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_METADATA_1" |
| FOLDER_CONSTRAINT | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_CONSTRAINT_1" |
| FOLDER_CONSTRAINTS_REF | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_CONSTRAINT_REF_1" |
| FOLDER_ORDER | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_ORDER_1" |
| FOLDER_MENU | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_MENU_1" |
| FOLDER_MENU | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_MENU_2" |
| FOLDER_MENU_METADATA | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_MENU_METADATA_1" |
| PAGE | (FK constraint) | (not named) | named FK constraint "FK_PAGE_1" |
| PAGE_METADATA | (FK constraint) | (not named) | named FK constraint "FK_PAGE_METADATA_1" |
| PAGE_CONSTRAINT | (FK constraint) | (not named) | named FK constraint "FK_PAGE_CONSTRAINT_1" |
| PAGE_CONSTRAINT_REF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_CONSTRAINTS_REF_1" |
| PAGE_MENU | (FK constraint) | (not named) | named FK constraint "FK_PAGE_MENU_1" |
| PAGE_MENU | (FK constraint) | (not named) | named FK constraint "PM_M_FK_PAGE_ID_PAGE" |
| PAGE_MENU_METADATA | (FK constraint) | (not named) | named FK constraint "FK_PAGE_MENU_METADATA_1" |
| FRAGMENT | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_1" |
| FRAGMENT | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_2" |
| FRAGMENT_CONSTRAINT | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_CONSTRAINT_1" |
| FRAGMENT_CONSTRAINT_REF | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_CONSTRAINT_REF_1" |
| FRAGMENT_PREF | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_PREF_1" |
| FRAGMENT_PREF_VALUE | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_PREF_VALUE_1" |
| LINK | (FK constraint) | (not named) | named FK constraint "FK_LINK_1" |
| LINK_METADATA | (FK constraint) | (not named) | named FK constraint "FK_LINK_METADATA_1" |
| LINK_CONSTRAINT | (FK constraint) | (not named) | named FK constraint "FK_LINK_CONSTRAINT_1" |
| LINK_CONSTRAINT_REF | (FK constraint) | (not named) | named FK constraint "FK_LINK_CONSTRAINT_REF_1" |
| PAGE_SECURITY | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SECURITY_1" |
| PAGE_SEC_CONSTRAINTS_DEF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SEC_CONSTRAINTS_DEF_1" |
| PAGE_SEC_CONSTRAINT_DEF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SEC_CONSTRAINT_DEF_1" |
| PAGE_SEC_CONSTRAINTS_REF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SEC_CONSTRAINTS_REF_1" |
| PAGE_SEC_CONSTRAINT_REF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SEC_CONSTRAINT_REF_1" |
| RULE_CRITERION | (FK constraint) | (not named) | named FK constraint "FK_RULE_CRITERION_1" |
| PREFS_NODE | (FK constraint) | (not named) | named FK constraint "FK_PREFS_NODE_1" |
| PA_METADATA_FIELDS | (FK constraint) | (not named) | named FK constraint "FK_PA_METADATA_FIELDS_1" |
| PD_METADATA_FIELDS | (FK constraint) | (not named) | named FK constraint "FK_PD_METADATA_FIELDS_1" |
| USER_ATTRIBUTE_REF | (FK constraint) | (not named) | named FK constraint "FK_USER_ATTRIBUTE_REF_1" |
| USER_ATTRIBUTE | (FK constraint) | (not named) | named FK constraint "FK_USER_ATTRIBUTE_1" |
| PRINCIPAL_PERMISSION | (FK constraint) | (not named) | named FK constraint "FK_PRINCIPAL_PERMISSION_1" |
| PRINCIPAL_PERMISSION | (FK constraint) | (not named) | named FK constraint "FK_PRINCIPAL_PERMISSION_2" |
| SECURITY_CREDENTIAL | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_CREDENTIAL_1" |
| SSO_SITE_TO_PRINCIPALS | (FK constraint) | (not named) | named FK constraint "SSO_SITE_TO_PRINC_FK1" |
| SSO_SITE_TO_PRINCIPALS | (FK constraint) | (not named) | named FK constraint "SSO_SITE_TO_PRINC_FK2" |
| SSO_PRINCIPAL_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_PRINCIPAL_TO_REMOTE_1" |
| SSO_PRINCIPAL_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_PRINCIPAL_TO_REMOTE_2" |
| SSO_SITE_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_SITE_TO_REMOTE_1" |
| SSO_SITE_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_SITE_TO_REMOTE_2" |
| SSO_COOKIE_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_COOKIE_TO_REMOTE_1" |
| SSO_COOKIE_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_COOKIE_TO_REMOTE_2" |
| SECURITY_USER_ROLE | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_USER_ROLE_1" |
| SECURITY_USER_ROLE | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_USER_ROLE_2" |
| SECURITY_USER_GROUP | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_USER_GROUP_1" |
| SECURITY_USER_GROUP | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_USER_GROUP_2" |
| SECURITY_GROUP_ROLE | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_GROUP_ROLE_1" |
| SECURITY_GROUP_ROLE | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_GROUP_ROLE_2" |