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