1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    *
5    *
6    *
7    * The contents of this file are subject to the terms of the Liferay Enterprise
8    * Subscription License ("License"). You may not use this file except in
9    * compliance with the License. You can obtain a copy of the License by
10   * contacting Liferay, Inc. See the License for the specific language governing
11   * permissions and limitations under the License, including but not limited to
12   * distribution rights of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.portal.upgrade.v4_3_0;
24  
25  import com.liferay.portal.upgrade.UpgradeProcess;
26  import com.liferay.portal.upgrade.util.DefaultUpgradeTableImpl;
27  import com.liferay.portal.upgrade.util.SwapUpgradeColumnImpl;
28  import com.liferay.portal.upgrade.util.UpgradeColumn;
29  import com.liferay.portal.upgrade.util.UpgradeTable;
30  import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
31  import com.liferay.portal.upgrade.v4_3_0.util.ValueMapperUtil;
32  
33  import java.sql.Types;
34  
35  /**
36   * <a href="UpgradeMappingTables.java.html"><b><i>View Source</i></b></a>
37   *
38   * @author Brian Wing Shun Chan
39   */
40  public class UpgradeMappingTables extends UpgradeProcess {
41  
42      protected void doUpgrade() throws Exception {
43  
44          // Mappings
45  
46          UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
47              "groupId", AvailableMappersUtil.getGroupIdMapper());
48  
49          UpgradeColumn upgradeOrganizationIdColumn = new SwapUpgradeColumnImpl(
50              "organizationId", AvailableMappersUtil.getOrganizationIdMapper());
51  
52          UpgradeColumn upgradeRoleIdColumn = new SwapUpgradeColumnImpl(
53              "roleId", AvailableMappersUtil.getRoleIdMapper());
54  
55          UpgradeColumn upgradeUserGroupIdColumn = new SwapUpgradeColumnImpl(
56              "userGroupId", AvailableMappersUtil.getUserGroupIdMapper());
57  
58          UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
59              "userId", new Integer(Types.VARCHAR),
60              AvailableMappersUtil.getUserIdMapper());
61  
62          // Groups_Orgs
63  
64          UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
65              _TABLE_GROUPS_ORGS, _COLUMNS_GROUPS_ORGS, upgradeGroupIdColumn,
66              upgradeOrganizationIdColumn);
67  
68          upgradeTable.setCreateSQL(_CREATE_GROUPS_ORGS);
69  
70          upgradeTable.updateTable();
71  
72          // Groups_Permissions
73  
74          upgradeTable = new DefaultUpgradeTableImpl(
75              _TABLE_GROUPS_PERMISSIONS, _COLUMNS_GROUPS_PERMISSIONS,
76              upgradeGroupIdColumn);
77  
78          upgradeTable.setCreateSQL(_CREATE_GROUPS_PERMISSIONS);
79  
80          upgradeTable.updateTable();
81  
82          // Groups_Roles
83  
84          upgradeTable = new DefaultUpgradeTableImpl(
85              _TABLE_GROUPS_ROLES, _COLUMNS_GROUPS_ROLES,
86              upgradeGroupIdColumn, upgradeRoleIdColumn);
87  
88          upgradeTable.setCreateSQL(_CREATE_GROUPS_ROLES);
89  
90          upgradeTable.updateTable();
91  
92          // Groups_UserGroups
93  
94          upgradeTable = new DefaultUpgradeTableImpl(
95              _TABLE_GROUPS_USERGROUPS, _COLUMNS_GROUPS_USERGROUPS,
96              upgradeGroupIdColumn, upgradeUserGroupIdColumn);
97  
98          upgradeTable.setCreateSQL(_CREATE_GROUPS_USERGROUPS);
99  
100         upgradeTable.updateTable();
101 
102         // Roles_Permissions
103 
104         upgradeTable = new DefaultUpgradeTableImpl(
105             _TABLE_ROLES_PERMISSIONS, _COLUMNS_ROLES_PERMISSIONS,
106             upgradeRoleIdColumn);
107 
108         upgradeTable.setCreateSQL(_CREATE_ROLES_PERMISSIONS);
109 
110         upgradeTable.updateTable();
111 
112         // Users_Groups
113 
114         upgradeTable = new DefaultUpgradeTableImpl(
115             _TABLE_USERS_GROUPS, _COLUMNS_USERS_GROUPS, upgradeUserIdColumn,
116             upgradeGroupIdColumn);
117 
118         upgradeTable.setCreateSQL(_CREATE_USERS_GROUPS);
119 
120         upgradeTable.updateTable();
121 
122         // Users_Orgs
123 
124         upgradeTable = new DefaultUpgradeTableImpl(
125             _TABLE_USERS_ORGS, _COLUMNS_USERS_ORGS, upgradeUserIdColumn,
126             upgradeOrganizationIdColumn);
127 
128         upgradeTable.setCreateSQL(_CREATE_USERS_ORGS);
129 
130         upgradeTable.updateTable();
131 
132         // Users_Permissions
133 
134         upgradeTable = new DefaultUpgradeTableImpl(
135             _TABLE_USERS_PERMISSIONS, _COLUMNS_USERS_PERMISSIONS,
136             upgradeUserIdColumn);
137 
138         upgradeTable.setCreateSQL(_CREATE_USERS_PERMISSIONS);
139 
140         upgradeTable.updateTable();
141 
142         // Users_Roles
143 
144         upgradeTable = new DefaultUpgradeTableImpl(
145             _TABLE_USERS_ROLES, _COLUMNS_USERS_ROLES, upgradeUserIdColumn,
146             upgradeRoleIdColumn);
147 
148         upgradeTable.setCreateSQL(_CREATE_USERS_ROLES);
149 
150         upgradeTable.updateTable();
151 
152         // Users_UserGroups
153 
154         upgradeTable = new DefaultUpgradeTableImpl(
155             _TABLE_USERS_USERGROUPS, _COLUMNS_USERS_USERGROUPS,
156             upgradeUserIdColumn, upgradeUserGroupIdColumn);
157 
158         upgradeTable.setCreateSQL(_CREATE_USERS_USERGROUPS);
159 
160         upgradeTable.updateTable();
161 
162         // Persist value mappers in case the portal was customized with
163         // additional tables that referenced these ids. This allows developers
164         // to retrieve the keys at a later point and build scripts to upgrade
165         // the other tables.
166 
167         ValueMapperUtil.persist(
168             AvailableMappersUtil.getBlogsEntryIdMapper(), "blogs-entry-id");
169 
170         ValueMapperUtil.persist(
171             AvailableMappersUtil.getBookmarksFolderIdMapper(),
172             "bookmarks-folder-id");
173 
174         ValueMapperUtil.persist(
175             AvailableMappersUtil.getBookmarksEntryIdMapper(),
176             "bookmarks-entry-id");
177 
178         ValueMapperUtil.persist(
179             AvailableMappersUtil.getCalEventIdMapper(), "cal-event-id");
180 
181         ValueMapperUtil.persist(
182             AvailableMappersUtil.getCompanyIdMapper(), "company-id");
183 
184         ValueMapperUtil.persist(
185             AvailableMappersUtil.getContactIdMapper(), "contact-id");
186 
187         ValueMapperUtil.persist(
188             AvailableMappersUtil.getDLFileEntryIdMapper(), "dl-file-entry-id");
189 
190         ValueMapperUtil.persist(
191             AvailableMappersUtil.getDLFileShortcutIdMapper(),
192             "dl-file-shortcut-id");
193 
194         ValueMapperUtil.persist(
195             AvailableMappersUtil.getDLFolderIdMapper(), "dl-folder-id");
196 
197         ValueMapperUtil.persist(
198             AvailableMappersUtil.getGroupIdMapper(), "group-id");
199 
200         ValueMapperUtil.persist(
201             AvailableMappersUtil.getIGFolderIdMapper(), "ig-folder-id");
202 
203         ValueMapperUtil.persist(
204             AvailableMappersUtil.getIGImageIdMapper(), "ig-image-id");
205 
206         ValueMapperUtil.persist(
207             AvailableMappersUtil.getImageIdMapper(), "image-id");
208 
209         ValueMapperUtil.persist(
210             AvailableMappersUtil.getJournalArticleIdMapper(),
211             "journal-article-id");
212 
213         ValueMapperUtil.persist(
214             AvailableMappersUtil.getJournalStructureIdMapper(),
215             "journal-structure-id");
216 
217         ValueMapperUtil.persist(
218             AvailableMappersUtil.getJournalTemplateIdMapper(),
219             "journal-template-id");
220 
221         ValueMapperUtil.persist(
222             AvailableMappersUtil.getLayoutPlidMapper(), "layout-plid");
223 
224         ValueMapperUtil.persist(
225             AvailableMappersUtil.getMBCategoryIdMapper(), "mb-category-id");
226 
227         ValueMapperUtil.persist(
228             AvailableMappersUtil.getMBMessageIdMapper(), "mb-message-id");
229 
230         ValueMapperUtil.persist(
231             AvailableMappersUtil.getMBThreadIdMapper(), "mb-thread-id");
232 
233         ValueMapperUtil.persist(
234             AvailableMappersUtil.getOrganizationIdMapper(), "organization-id");
235 
236         ValueMapperUtil.persist(
237             AvailableMappersUtil.getPollsQuestionIdMapper(),
238             "polls-question-id");
239 
240         ValueMapperUtil.persist(
241             AvailableMappersUtil.getRoleIdMapper(), "role-id");
242 
243         ValueMapperUtil.persist(
244             AvailableMappersUtil.getShoppingCategoryIdMapper(),
245             "shopping-category-id");
246 
247         ValueMapperUtil.persist(
248             AvailableMappersUtil.getShoppingItemIdMapper(), "shopping-item-id");
249 
250         ValueMapperUtil.persist(
251             AvailableMappersUtil.getUserGroupIdMapper(), "user-group-id");
252 
253         ValueMapperUtil.persist(
254             AvailableMappersUtil.getUserIdMapper(), "user-id");
255 
256         ValueMapperUtil.persist(
257             AvailableMappersUtil.getWikiNodeIdMapper(), "wiki-node-id");
258 
259         ValueMapperUtil.persist(
260             AvailableMappersUtil.getWikiPageIdMapper(), "wiki-page-id");
261     }
262 
263     private static final String _TABLE_GROUPS_ORGS = "Groups_Orgs";
264 
265     private static final String _TABLE_GROUPS_ROLES = "Groups_Roles";
266 
267     private static final String _TABLE_GROUPS_PERMISSIONS =
268         "Groups_Permissions";
269 
270     private static final String _TABLE_GROUPS_USERGROUPS = "Groups_UserGroups";
271 
272     private static final String _TABLE_ROLES_PERMISSIONS = "Roles_Permissions";
273 
274     private static final String _TABLE_USERS_GROUPS = "Users_Groups";
275 
276     private static final String _TABLE_USERS_ORGS = "Users_Orgs";
277 
278     private static final String _TABLE_USERS_PERMISSIONS = "Users_Permissions";
279 
280     private static final String _TABLE_USERS_ROLES = "Users_Roles";
281 
282     private static final String _TABLE_USERS_USERGROUPS = "Users_UserGroups";
283 
284     private static final Object[][] _COLUMNS_GROUPS_ORGS = {
285         {"groupId", new Integer(Types.BIGINT)},
286         {"organizationId", new Integer(Types.BIGINT)}
287     };
288 
289     private static final Object[][] _COLUMNS_GROUPS_PERMISSIONS = {
290         {"groupId", new Integer(Types.BIGINT)},
291         {"permissionId", new Integer(Types.BIGINT)}
292     };
293 
294     private static final Object[][] _COLUMNS_GROUPS_ROLES = {
295         {"groupId", new Integer(Types.BIGINT)},
296         {"roleId", new Integer(Types.BIGINT)}
297     };
298 
299     private static final Object[][] _COLUMNS_GROUPS_USERGROUPS = {
300         {"groupId", new Integer(Types.BIGINT)},
301         {"userGroupId", new Integer(Types.BIGINT)}
302     };
303 
304     private static final Object[][] _COLUMNS_ROLES_PERMISSIONS = {
305         {"roleId", new Integer(Types.BIGINT)},
306         {"permissionId", new Integer(Types.BIGINT)}
307     };
308 
309     private static final Object[][] _COLUMNS_USERS_GROUPS = {
310         {"userId", new Integer(Types.BIGINT)},
311         {"groupId", new Integer(Types.BIGINT)}
312     };
313 
314     private static final Object[][] _COLUMNS_USERS_ORGS = {
315         {"userId", new Integer(Types.BIGINT)},
316         {"organizationId", new Integer(Types.BIGINT)}
317     };
318 
319     private static final Object[][] _COLUMNS_USERS_PERMISSIONS = {
320         {"userId", new Integer(Types.BIGINT)},
321         {"permissionId", new Integer(Types.BIGINT)}
322     };
323 
324     private static final Object[][] _COLUMNS_USERS_ROLES = {
325         {"userId", new Integer(Types.BIGINT)},
326         {"roleId", new Integer(Types.BIGINT)}
327     };
328 
329     private static final Object[][] _COLUMNS_USERS_USERGROUPS = {
330         {"userId", new Integer(Types.BIGINT)},
331         {"userGroupId", new Integer(Types.BIGINT)}
332     };
333 
334     private static final String _CREATE_GROUPS_ORGS =
335         "create table Groups_Orgs (" +
336             "groupId LONG not null," +
337             "organizationId LONG not null," +
338             "primary key (groupId, organizationId)" +
339         ")";
340 
341     private static final String _CREATE_GROUPS_PERMISSIONS =
342         "create table Groups_Permissions (" +
343             "groupId LONG not null," +
344             "permissionId LONG not null," +
345             "primary key (groupId, permissionId)" +
346         ")";
347 
348     private static final String _CREATE_GROUPS_ROLES =
349         "create table Groups_Roles (" +
350             "groupId LONG not null," +
351             "roleId LONG not null," +
352             "primary key (groupId, roleId)" +
353         ")";
354 
355     private static final String _CREATE_GROUPS_USERGROUPS =
356         "create table Groups_UserGroups (" +
357             "groupId LONG not null," +
358             "userGroupId LONG not null," +
359             "primary key (groupId, userGroupId)" +
360         ")";
361 
362     private static final String _CREATE_ROLES_PERMISSIONS =
363         "create table Roles_Permissions (" +
364             "roleId LONG not null," +
365             "permissionId LONG not null," +
366             "primary key (roleId, permissionId)" +
367         ")";
368 
369     private static final String _CREATE_USERS_GROUPS =
370         "create table Users_Groups (" +
371             "userId LONG not null," +
372             "groupId LONG not null," +
373             "primary key (userId, groupId)" +
374         ")";
375 
376     private static final String _CREATE_USERS_ORGS =
377         "create table Users_Orgs (" +
378             "userId LONG not null," +
379             "organizationId LONG not null," +
380             "primary key (userId, organizationId)" +
381         ")";
382 
383     private static final String _CREATE_USERS_PERMISSIONS =
384         "create table Users_Permissions (" +
385             "userId LONG not null," +
386             "permissionId LONG not null," +
387             "primary key (userId, permissionId)" +
388         ")";
389 
390     private static final String _CREATE_USERS_ROLES =
391         "create table Users_Roles (" +
392             "userId LONG not null," +
393             "roleId LONG not null," +
394             "primary key (userId, roleId)" +
395         ")";
396 
397     private static final String _CREATE_USERS_USERGROUPS =
398         "create table Users_UserGroups (" +
399             "userId LONG not null," +
400             "userGroupId LONG not null," +
401             "primary key (userId, userGroupId)" +
402         ")";
403 
404 }