1
19
20 package com.liferay.portal.upgrade.v4_3_0;
21
22 import com.liferay.portal.kernel.log.Log;
23 import com.liferay.portal.kernel.log.LogFactoryUtil;
24 import com.liferay.portal.kernel.util.ArrayUtil;
25 import com.liferay.portal.model.impl.PortletPreferencesImpl;
26 import com.liferay.portal.upgrade.UpgradeException;
27 import com.liferay.portal.upgrade.UpgradeProcess;
28 import com.liferay.portal.upgrade.util.DefaultUpgradeTableImpl;
29 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
30 import com.liferay.portal.upgrade.util.TempUpgradeColumnImpl;
31 import com.liferay.portal.upgrade.util.UpgradeColumn;
32 import com.liferay.portal.upgrade.util.UpgradeTable;
33 import com.liferay.portal.upgrade.util.ValueMapper;
34 import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
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
51 public class UpgradePortletPreferences extends UpgradeProcess {
52
53 public void upgrade() throws UpgradeException {
54 _log.info("Upgrading");
55
56 try {
57 doUpgrade();
58 }
59 catch (Exception e) {
60 throw new UpgradeException(e);
61 }
62 }
63
64 protected void doUpgrade() throws Exception {
65
66
68 runSQL(
69 "delete from PortletPreferences where ownerId = '0' and " +
70 "ownerType = " + PortletKeys.PREFS_OWNER_TYPE_COMPANY);
71
72 ValueMapper companyIdMapper = AvailableMappersUtil.getCompanyIdMapper();
73
74 Iterator<Object> itr = companyIdMapper.iterator();
75
76 while (itr.hasNext()) {
77 String webId = (String)itr.next();
78
79 Long companyIdObj = (Long)companyIdMapper.getNewValue(webId);
80
81 runSQL(
82 "delete from PortletPreferences where ownerId = '" +
83 companyIdObj.longValue() + "' and ownerType = " +
84 PortletKeys.PREFS_OWNER_TYPE_COMPANY);
85 }
86
87 Object[][] prefsColumns1 = {{"layoutId", new Integer(Types.VARCHAR)}};
88 Object[][] prefsColumns2 = PortletPreferencesImpl.TABLE_COLUMNS.clone();
89
90 Object[][] prefsColumns =
91 ArrayUtil.append(prefsColumns1, prefsColumns2);
92
93 PrefsOwnerIdUpgradeColumnImpl upgradeOwnerIdColumn =
94 new PrefsOwnerIdUpgradeColumnImpl(
95 AvailableMappersUtil.getCompanyIdMapper(),
96 AvailableMappersUtil.getGroupIdMapper(),
97 AvailableMappersUtil.getUserIdMapper());
98
99 UpgradeColumn upgradeOwnerTypeColumn =
100 new PrefsOwnerTypeUpgradeColumnImpl(upgradeOwnerIdColumn);
101
102 UpgradeColumn upgradeLayoutIdColumn =
103 new TempUpgradeColumnImpl("layoutId");
104
105 UpgradeColumn upgradePlidColumn = new PrefsPlidUpgradeColumnImpl(
106 upgradeOwnerIdColumn, upgradeLayoutIdColumn,
107 AvailableMappersUtil.getLayoutPlidMapper());
108
109 UpgradeColumn upgradePortletIdColumn =
110 new TempUpgradeColumnImpl("portletId");
111
112 UpgradeColumn upgradePreferencesColumn = new PrefsXMLUpgradeColumnImpl(
113 upgradePortletIdColumn, AvailableMappersUtil.getGroupIdMapper(),
114 AvailableMappersUtil.getPollsQuestionIdMapper(),
115 AvailableMappersUtil.getWikiNodeIdMapper());
116
117 UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
118 PortletPreferencesImpl.TABLE_NAME, prefsColumns,
119 new PKUpgradeColumnImpl("portletPreferencesId", false),
120 upgradeOwnerIdColumn, upgradeOwnerTypeColumn, upgradeLayoutIdColumn,
121 upgradePlidColumn, upgradePortletIdColumn,
122 upgradePreferencesColumn);
123
124 String createSQL = PortletPreferencesImpl.TABLE_SQL_CREATE;
125
126 createSQL =
127 createSQL.substring(0, createSQL.length() - 1) +
128 ",layoutId VARCHAR(75) null)";
129
130 upgradeTable.setCreateSQL(createSQL);
131
132 upgradeTable.updateTable();
133
134
136 runSQL(_UPGRADE_SCHEMA);
137 }
138
139 private static final String[] _UPGRADE_SCHEMA = {
140 "alter table PortletPreferences drop column layoutId"
141 };
142
143 private static Log _log =
144 LogFactoryUtil.getLog(UpgradePortletPreferences.class);
145
146 }