001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
013     */
014    
015    package com.liferay.portal.upgrade.v4_3_0;
016    
017    import com.liferay.portal.kernel.upgrade.UpgradeProcess;
018    import com.liferay.portal.kernel.upgrade.util.SwapUpgradeColumnImpl;
019    import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
020    import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
021    import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
022    import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
023    import com.liferay.portal.upgrade.v4_3_0.util.ValueMapperUtil;
024    
025    import java.sql.Types;
026    
027    /**
028     * @author Brian Wing Shun Chan
029     */
030    public class UpgradeMappingTables extends UpgradeProcess {
031    
032            protected void doUpgrade() throws Exception {
033    
034                    // Mappings
035    
036                    UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
037                            "groupId", AvailableMappersUtil.getGroupIdMapper());
038    
039                    UpgradeColumn upgradeOrganizationIdColumn = new SwapUpgradeColumnImpl(
040                            "organizationId", AvailableMappersUtil.getOrganizationIdMapper());
041    
042                    UpgradeColumn upgradeRoleIdColumn = new SwapUpgradeColumnImpl(
043                            "roleId", AvailableMappersUtil.getRoleIdMapper());
044    
045                    UpgradeColumn upgradeUserGroupIdColumn = new SwapUpgradeColumnImpl(
046                            "userGroupId", AvailableMappersUtil.getUserGroupIdMapper());
047    
048                    UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
049                            "userId", new Integer(Types.VARCHAR),
050                            AvailableMappersUtil.getUserIdMapper());
051    
052                    // Groups_Orgs
053    
054                    UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
055                            _TABLE_GROUPS_ORGS, _COLUMNS_GROUPS_ORGS, upgradeGroupIdColumn,
056                            upgradeOrganizationIdColumn);
057    
058                    upgradeTable.setCreateSQL(_CREATE_GROUPS_ORGS);
059    
060                    upgradeTable.updateTable();
061    
062                    // Groups_Permissions
063    
064                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
065                            _TABLE_GROUPS_PERMISSIONS, _COLUMNS_GROUPS_PERMISSIONS,
066                            upgradeGroupIdColumn);
067    
068                    upgradeTable.setCreateSQL(_CREATE_GROUPS_PERMISSIONS);
069    
070                    upgradeTable.updateTable();
071    
072                    // Groups_Roles
073    
074                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
075                            _TABLE_GROUPS_ROLES, _COLUMNS_GROUPS_ROLES,
076                            upgradeGroupIdColumn, upgradeRoleIdColumn);
077    
078                    upgradeTable.setCreateSQL(_CREATE_GROUPS_ROLES);
079    
080                    upgradeTable.updateTable();
081    
082                    // Groups_UserGroups
083    
084                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
085                            _TABLE_GROUPS_USERGROUPS, _COLUMNS_GROUPS_USERGROUPS,
086                            upgradeGroupIdColumn, upgradeUserGroupIdColumn);
087    
088                    upgradeTable.setCreateSQL(_CREATE_GROUPS_USERGROUPS);
089    
090                    upgradeTable.updateTable();
091    
092                    // Roles_Permissions
093    
094                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
095                            _TABLE_ROLES_PERMISSIONS, _COLUMNS_ROLES_PERMISSIONS,
096                            upgradeRoleIdColumn);
097    
098                    upgradeTable.setCreateSQL(_CREATE_ROLES_PERMISSIONS);
099    
100                    upgradeTable.updateTable();
101    
102                    // Users_Groups
103    
104                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
105                            _TABLE_USERS_GROUPS, _COLUMNS_USERS_GROUPS, upgradeUserIdColumn,
106                            upgradeGroupIdColumn);
107    
108                    upgradeTable.setCreateSQL(_CREATE_USERS_GROUPS);
109    
110                    upgradeTable.updateTable();
111    
112                    // Users_Orgs
113    
114                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
115                            _TABLE_USERS_ORGS, _COLUMNS_USERS_ORGS, upgradeUserIdColumn,
116                            upgradeOrganizationIdColumn);
117    
118                    upgradeTable.setCreateSQL(_CREATE_USERS_ORGS);
119    
120                    upgradeTable.updateTable();
121    
122                    // Users_Permissions
123    
124                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
125                            _TABLE_USERS_PERMISSIONS, _COLUMNS_USERS_PERMISSIONS,
126                            upgradeUserIdColumn);
127    
128                    upgradeTable.setCreateSQL(_CREATE_USERS_PERMISSIONS);
129    
130                    upgradeTable.updateTable();
131    
132                    // Users_Roles
133    
134                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
135                            _TABLE_USERS_ROLES, _COLUMNS_USERS_ROLES, upgradeUserIdColumn,
136                            upgradeRoleIdColumn);
137    
138                    upgradeTable.setCreateSQL(_CREATE_USERS_ROLES);
139    
140                    upgradeTable.updateTable();
141    
142                    // Users_UserGroups
143    
144                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
145                            _TABLE_USERS_USERGROUPS, _COLUMNS_USERS_USERGROUPS,
146                            upgradeUserIdColumn, upgradeUserGroupIdColumn);
147    
148                    upgradeTable.setCreateSQL(_CREATE_USERS_USERGROUPS);
149    
150                    upgradeTable.updateTable();
151    
152                    // Persist value mappers in case the portal was customized with
153                    // additional tables that referenced these ids. This allows developers
154                    // to retrieve the keys at a later point and build scripts to upgrade
155                    // the other tables.
156    
157                    ValueMapperUtil.persist(
158                            AvailableMappersUtil.getBlogsEntryIdMapper(), "blogs-entry-id");
159    
160                    ValueMapperUtil.persist(
161                            AvailableMappersUtil.getBookmarksFolderIdMapper(),
162                            "bookmarks-folder-id");
163    
164                    ValueMapperUtil.persist(
165                            AvailableMappersUtil.getBookmarksEntryIdMapper(),
166                            "bookmarks-entry-id");
167    
168                    ValueMapperUtil.persist(
169                            AvailableMappersUtil.getCalEventIdMapper(), "cal-event-id");
170    
171                    ValueMapperUtil.persist(
172                            AvailableMappersUtil.getCompanyIdMapper(), "company-id");
173    
174                    ValueMapperUtil.persist(
175                            AvailableMappersUtil.getContactIdMapper(), "contact-id");
176    
177                    ValueMapperUtil.persist(
178                            AvailableMappersUtil.getDLFileEntryIdMapper(), "dl-file-entry-id");
179    
180                    ValueMapperUtil.persist(
181                            AvailableMappersUtil.getDLFileShortcutIdMapper(),
182                            "dl-file-shortcut-id");
183    
184                    ValueMapperUtil.persist(
185                            AvailableMappersUtil.getDLFolderIdMapper(), "dl-folder-id");
186    
187                    ValueMapperUtil.persist(
188                            AvailableMappersUtil.getGroupIdMapper(), "group-id");
189    
190                    ValueMapperUtil.persist(
191                            AvailableMappersUtil.getIGFolderIdMapper(), "ig-folder-id");
192    
193                    ValueMapperUtil.persist(
194                            AvailableMappersUtil.getIGImageIdMapper(), "ig-image-id");
195    
196                    ValueMapperUtil.persist(
197                            AvailableMappersUtil.getImageIdMapper(), "image-id");
198    
199                    ValueMapperUtil.persist(
200                            AvailableMappersUtil.getJournalArticleIdMapper(),
201                            "journal-article-id");
202    
203                    ValueMapperUtil.persist(
204                            AvailableMappersUtil.getJournalStructureIdMapper(),
205                            "journal-structure-id");
206    
207                    ValueMapperUtil.persist(
208                            AvailableMappersUtil.getJournalTemplateIdMapper(),
209                            "journal-template-id");
210    
211                    ValueMapperUtil.persist(
212                            AvailableMappersUtil.getLayoutPlidMapper(), "layout-plid");
213    
214                    ValueMapperUtil.persist(
215                            AvailableMappersUtil.getMBCategoryIdMapper(), "mb-category-id");
216    
217                    ValueMapperUtil.persist(
218                            AvailableMappersUtil.getMBMessageIdMapper(), "mb-message-id");
219    
220                    ValueMapperUtil.persist(
221                            AvailableMappersUtil.getMBThreadIdMapper(), "mb-thread-id");
222    
223                    ValueMapperUtil.persist(
224                            AvailableMappersUtil.getOrganizationIdMapper(), "organization-id");
225    
226                    ValueMapperUtil.persist(
227                            AvailableMappersUtil.getPollsQuestionIdMapper(),
228                            "polls-question-id");
229    
230                    ValueMapperUtil.persist(
231                            AvailableMappersUtil.getRoleIdMapper(), "role-id");
232    
233                    ValueMapperUtil.persist(
234                            AvailableMappersUtil.getShoppingCategoryIdMapper(),
235                            "shopping-category-id");
236    
237                    ValueMapperUtil.persist(
238                            AvailableMappersUtil.getShoppingItemIdMapper(), "shopping-item-id");
239    
240                    ValueMapperUtil.persist(
241                            AvailableMappersUtil.getUserGroupIdMapper(), "user-group-id");
242    
243                    ValueMapperUtil.persist(
244                            AvailableMappersUtil.getUserIdMapper(), "user-id");
245    
246                    ValueMapperUtil.persist(
247                            AvailableMappersUtil.getWikiNodeIdMapper(), "wiki-node-id");
248    
249                    ValueMapperUtil.persist(
250                            AvailableMappersUtil.getWikiPageIdMapper(), "wiki-page-id");
251            }
252    
253            private static final String _TABLE_GROUPS_ORGS = "Groups_Orgs";
254    
255            private static final String _TABLE_GROUPS_ROLES = "Groups_Roles";
256    
257            private static final String _TABLE_GROUPS_PERMISSIONS =
258                    "Groups_Permissions";
259    
260            private static final String _TABLE_GROUPS_USERGROUPS = "Groups_UserGroups";
261    
262            private static final String _TABLE_ROLES_PERMISSIONS = "Roles_Permissions";
263    
264            private static final String _TABLE_USERS_GROUPS = "Users_Groups";
265    
266            private static final String _TABLE_USERS_ORGS = "Users_Orgs";
267    
268            private static final String _TABLE_USERS_PERMISSIONS = "Users_Permissions";
269    
270            private static final String _TABLE_USERS_ROLES = "Users_Roles";
271    
272            private static final String _TABLE_USERS_USERGROUPS = "Users_UserGroups";
273    
274            private static final Object[][] _COLUMNS_GROUPS_ORGS = {
275                    {"groupId", new Integer(Types.BIGINT)},
276                    {"organizationId", new Integer(Types.BIGINT)}
277            };
278    
279            private static final Object[][] _COLUMNS_GROUPS_PERMISSIONS = {
280                    {"groupId", new Integer(Types.BIGINT)},
281                    {"permissionId", new Integer(Types.BIGINT)}
282            };
283    
284            private static final Object[][] _COLUMNS_GROUPS_ROLES = {
285                    {"groupId", new Integer(Types.BIGINT)},
286                    {"roleId", new Integer(Types.BIGINT)}
287            };
288    
289            private static final Object[][] _COLUMNS_GROUPS_USERGROUPS = {
290                    {"groupId", new Integer(Types.BIGINT)},
291                    {"userGroupId", new Integer(Types.BIGINT)}
292            };
293    
294            private static final Object[][] _COLUMNS_ROLES_PERMISSIONS = {
295                    {"roleId", new Integer(Types.BIGINT)},
296                    {"permissionId", new Integer(Types.BIGINT)}
297            };
298    
299            private static final Object[][] _COLUMNS_USERS_GROUPS = {
300                    {"userId", new Integer(Types.BIGINT)},
301                    {"groupId", new Integer(Types.BIGINT)}
302            };
303    
304            private static final Object[][] _COLUMNS_USERS_ORGS = {
305                    {"userId", new Integer(Types.BIGINT)},
306                    {"organizationId", new Integer(Types.BIGINT)}
307            };
308    
309            private static final Object[][] _COLUMNS_USERS_PERMISSIONS = {
310                    {"userId", new Integer(Types.BIGINT)},
311                    {"permissionId", new Integer(Types.BIGINT)}
312            };
313    
314            private static final Object[][] _COLUMNS_USERS_ROLES = {
315                    {"userId", new Integer(Types.BIGINT)},
316                    {"roleId", new Integer(Types.BIGINT)}
317            };
318    
319            private static final Object[][] _COLUMNS_USERS_USERGROUPS = {
320                    {"userId", new Integer(Types.BIGINT)},
321                    {"userGroupId", new Integer(Types.BIGINT)}
322            };
323    
324            private static final String _CREATE_GROUPS_ORGS =
325                    "create table Groups_Orgs (" +
326                            "groupId LONG not null," +
327                            "organizationId LONG not null," +
328                            "primary key (groupId, organizationId)" +
329                    ")";
330    
331            private static final String _CREATE_GROUPS_PERMISSIONS =
332                    "create table Groups_Permissions (" +
333                            "groupId LONG not null," +
334                            "permissionId LONG not null," +
335                            "primary key (groupId, permissionId)" +
336                    ")";
337    
338            private static final String _CREATE_GROUPS_ROLES =
339                    "create table Groups_Roles (" +
340                            "groupId LONG not null," +
341                            "roleId LONG not null," +
342                            "primary key (groupId, roleId)" +
343                    ")";
344    
345            private static final String _CREATE_GROUPS_USERGROUPS =
346                    "create table Groups_UserGroups (" +
347                            "groupId LONG not null," +
348                            "userGroupId LONG not null," +
349                            "primary key (groupId, userGroupId)" +
350                    ")";
351    
352            private static final String _CREATE_ROLES_PERMISSIONS =
353                    "create table Roles_Permissions (" +
354                            "roleId LONG not null," +
355                            "permissionId LONG not null," +
356                            "primary key (roleId, permissionId)" +
357                    ")";
358    
359            private static final String _CREATE_USERS_GROUPS =
360                    "create table Users_Groups (" +
361                            "userId LONG not null," +
362                            "groupId LONG not null," +
363                            "primary key (userId, groupId)" +
364                    ")";
365    
366            private static final String _CREATE_USERS_ORGS =
367                    "create table Users_Orgs (" +
368                            "userId LONG not null," +
369                            "organizationId LONG not null," +
370                            "primary key (userId, organizationId)" +
371                    ")";
372    
373            private static final String _CREATE_USERS_PERMISSIONS =
374                    "create table Users_Permissions (" +
375                            "userId LONG not null," +
376                            "permissionId LONG not null," +
377                            "primary key (userId, permissionId)" +
378                    ")";
379    
380            private static final String _CREATE_USERS_ROLES =
381                    "create table Users_Roles (" +
382                            "userId LONG not null," +
383                            "roleId LONG not null," +
384                            "primary key (userId, roleId)" +
385                    ")";
386    
387            private static final String _CREATE_USERS_USERGROUPS =
388                    "create table Users_UserGroups (" +
389                            "userId LONG not null," +
390                            "userGroupId LONG not null," +
391                            "primary key (userId, userGroupId)" +
392                    ")";
393    
394    }