1
22
23 package com.liferay.portal.upgrade.v4_3_0;
24
25 import com.liferay.portal.kernel.util.ArrayUtil;
26 import com.liferay.portal.upgrade.UpgradeProcess;
27 import com.liferay.portal.upgrade.util.DefaultUpgradeTableImpl;
28 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
29 import com.liferay.portal.upgrade.util.TempUpgradeColumnImpl;
30 import com.liferay.portal.upgrade.util.UpgradeColumn;
31 import com.liferay.portal.upgrade.util.UpgradeTable;
32 import com.liferay.portal.upgrade.util.ValueMapper;
33 import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
34 import com.liferay.portal.upgrade.v4_3_0.util.PortletPreferencesTable;
35 import com.liferay.portal.upgrade.v4_3_0.util.PrefsOwnerIdUpgradeColumnImpl;
36 import com.liferay.portal.upgrade.v4_3_0.util.PrefsOwnerTypeUpgradeColumnImpl;
37 import com.liferay.portal.upgrade.v4_3_0.util.PrefsPlidUpgradeColumnImpl;
38 import com.liferay.portal.upgrade.v4_3_0.util.PrefsXMLUpgradeColumnImpl;
39 import com.liferay.portal.util.PortletKeys;
40
41 import java.sql.Types;
42
43 import java.util.Iterator;
44
45
50 public class UpgradePortletPreferences extends UpgradeProcess {
51
52 protected void doUpgrade() throws Exception {
53
54
56 runSQL(
57 "delete from PortletPreferences where ownerId = '0' and " +
58 "ownerType = " + PortletKeys.PREFS_OWNER_TYPE_COMPANY);
59
60 ValueMapper companyIdMapper = AvailableMappersUtil.getCompanyIdMapper();
61
62 Iterator<Object> itr = companyIdMapper.iterator();
63
64 while (itr.hasNext()) {
65 String webId = (String)itr.next();
66
67 Long companyIdObj = (Long)companyIdMapper.getNewValue(webId);
68
69 runSQL(
70 "delete from PortletPreferences where ownerId = '" +
71 companyIdObj.longValue() + "' and ownerType = " +
72 PortletKeys.PREFS_OWNER_TYPE_COMPANY);
73 }
74
75 Object[][] preferencesColumns1 =
76 {{"layoutId", new Integer(Types.VARCHAR)}};
77 Object[][] preferencesColumns2 =
78 PortletPreferencesTable.TABLE_COLUMNS.clone();
79
80 Object[][] preferencesColumns = ArrayUtil.append(
81 preferencesColumns1, preferencesColumns2);
82
83 PrefsOwnerIdUpgradeColumnImpl upgradeOwnerIdColumn =
84 new PrefsOwnerIdUpgradeColumnImpl(
85 AvailableMappersUtil.getCompanyIdMapper(),
86 AvailableMappersUtil.getGroupIdMapper(),
87 AvailableMappersUtil.getUserIdMapper());
88
89 UpgradeColumn upgradeOwnerTypeColumn =
90 new PrefsOwnerTypeUpgradeColumnImpl(upgradeOwnerIdColumn);
91
92 UpgradeColumn upgradeLayoutIdColumn =
93 new TempUpgradeColumnImpl("layoutId");
94
95 UpgradeColumn upgradePlidColumn = new PrefsPlidUpgradeColumnImpl(
96 upgradeOwnerIdColumn, upgradeLayoutIdColumn,
97 AvailableMappersUtil.getLayoutPlidMapper());
98
99 UpgradeColumn upgradePortletIdColumn =
100 new TempUpgradeColumnImpl("portletId");
101
102 UpgradeColumn upgradePreferencesColumn = new PrefsXMLUpgradeColumnImpl(
103 upgradePortletIdColumn, AvailableMappersUtil.getGroupIdMapper(),
104 AvailableMappersUtil.getPollsQuestionIdMapper(),
105 AvailableMappersUtil.getWikiNodeIdMapper());
106
107 UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
108 PortletPreferencesTable.TABLE_NAME, preferencesColumns,
109 new PKUpgradeColumnImpl("portletPreferencesId", false),
110 upgradeOwnerIdColumn, upgradeOwnerTypeColumn, upgradeLayoutIdColumn,
111 upgradePlidColumn, upgradePortletIdColumn,
112 upgradePreferencesColumn);
113
114 String createSQL = PortletPreferencesTable.TABLE_SQL_CREATE;
115
116 createSQL =
117 createSQL.substring(0, createSQL.length() - 1) +
118 ",layoutId VARCHAR(75) null)";
119
120 upgradeTable.setCreateSQL(createSQL);
121
122 upgradeTable.updateTable();
123
124
126 runSQL(_UPGRADE_SCHEMA);
127 }
128
129 private static final String[] _UPGRADE_SCHEMA = {
130 "alter table PortletPreferences drop column layoutId"
131 };
132
133 }