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