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[][] preferencesColumns1 =
91 {{"layoutId", new Integer(Types.VARCHAR)}};
92 Object[][] preferencesColumns2 =
93 PortletPreferencesImpl.TABLE_COLUMNS.clone();
94
95 Object[][] preferencesColumns = ArrayUtil.append(
96 preferencesColumns1, preferencesColumns2);
97
98 PrefsOwnerIdUpgradeColumnImpl upgradeOwnerIdColumn =
99 new PrefsOwnerIdUpgradeColumnImpl(
100 AvailableMappersUtil.getCompanyIdMapper(),
101 AvailableMappersUtil.getGroupIdMapper(),
102 AvailableMappersUtil.getUserIdMapper());
103
104 UpgradeColumn upgradeOwnerTypeColumn =
105 new PrefsOwnerTypeUpgradeColumnImpl(upgradeOwnerIdColumn);
106
107 UpgradeColumn upgradeLayoutIdColumn =
108 new TempUpgradeColumnImpl("layoutId");
109
110 UpgradeColumn upgradePlidColumn = new PrefsPlidUpgradeColumnImpl(
111 upgradeOwnerIdColumn, upgradeLayoutIdColumn,
112 AvailableMappersUtil.getLayoutPlidMapper());
113
114 UpgradeColumn upgradePortletIdColumn =
115 new TempUpgradeColumnImpl("portletId");
116
117 UpgradeColumn upgradePreferencesColumn = new PrefsXMLUpgradeColumnImpl(
118 upgradePortletIdColumn, AvailableMappersUtil.getGroupIdMapper(),
119 AvailableMappersUtil.getPollsQuestionIdMapper(),
120 AvailableMappersUtil.getWikiNodeIdMapper());
121
122 UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
123 PortletPreferencesImpl.TABLE_NAME, preferencesColumns,
124 new PKUpgradeColumnImpl("portletPreferencesId", false),
125 upgradeOwnerIdColumn, upgradeOwnerTypeColumn, upgradeLayoutIdColumn,
126 upgradePlidColumn, upgradePortletIdColumn,
127 upgradePreferencesColumn);
128
129 String createSQL = PortletPreferencesImpl.TABLE_SQL_CREATE;
130
131 createSQL =
132 createSQL.substring(0, createSQL.length() - 1) +
133 ",layoutId VARCHAR(75) null)";
134
135 upgradeTable.setCreateSQL(createSQL);
136
137 upgradeTable.updateTable();
138
139
141 runSQL(_UPGRADE_SCHEMA);
142 }
143
144 private static final String[] _UPGRADE_SCHEMA = {
145 "alter table PortletPreferences drop column layoutId"
146 };
147
148 private static Log _log =
149 LogFactoryUtil.getLog(UpgradePortletPreferences.class);
150
151 }