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.Organization;
27 import com.liferay.portal.model.User;
28 import com.liferay.portal.model.UserGroup;
29 import com.liferay.portal.model.impl.GroupImpl;
30 import com.liferay.portal.model.impl.LayoutImpl;
31 import com.liferay.portal.model.impl.LayoutSetImpl;
32 import com.liferay.portal.model.impl.OrgGroupPermissionImpl;
33 import com.liferay.portal.model.impl.OrgGroupRoleImpl;
34 import com.liferay.portal.upgrade.UpgradeException;
35 import com.liferay.portal.upgrade.UpgradeProcess;
36 import com.liferay.portal.upgrade.util.DefaultPKMapper;
37 import com.liferay.portal.upgrade.util.DefaultUpgradeTableImpl;
38 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
39 import com.liferay.portal.upgrade.util.SwapUpgradeColumnImpl;
40 import com.liferay.portal.upgrade.util.TempUpgradeColumnImpl;
41 import com.liferay.portal.upgrade.util.UpgradeColumn;
42 import com.liferay.portal.upgrade.util.UpgradeTable;
43 import com.liferay.portal.upgrade.util.ValueMapper;
44 import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
45 import com.liferay.portal.upgrade.v4_3_0.util.ClassNameIdUpgradeColumnImpl;
46 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKContainer;
47 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKUpgradeColumnImpl;
48 import com.liferay.portal.upgrade.v4_3_0.util.GroupNameUpgradeColumnImpl;
49 import com.liferay.portal.upgrade.v4_3_0.util.LayoutOwnerIdUpgradeColumnImpl;
50 import com.liferay.portal.upgrade.v4_3_0.util.LayoutPlidUpgradeColumnImpl;
51 import com.liferay.portal.util.PortalUtil;
52
53 import java.sql.Types;
54
55 import java.util.HashMap;
56 import java.util.Map;
57
58 import org.apache.commons.logging.Log;
59 import org.apache.commons.logging.LogFactory;
60
61
68 public class UpgradeGroup extends UpgradeProcess {
69
70 public void upgrade() throws UpgradeException {
71 _log.info("Upgrading");
72
73 try {
74 doUpgrade();
75 }
76 catch (Exception e) {
77 throw new UpgradeException(e);
78 }
79 }
80
81 protected void doUpgrade() throws Exception {
82
83
85 PKUpgradeColumnImpl upgradePKColumn = new PKUpgradeColumnImpl(
86 "groupId", true);
87
88 ClassNameIdUpgradeColumnImpl classNameIdColumn =
89 new ClassNameIdUpgradeColumnImpl();
90
91 Map<Long, ClassPKContainer> classPKContainers =
92 new HashMap<Long, ClassPKContainer>();
93
94 classPKContainers.put(
95 new Long(PortalUtil.getClassNameId(Organization.class.getName())),
96 new ClassPKContainer(
97 AvailableMappersUtil.getOrganizationIdMapper(), true));
98
99 classPKContainers.put(
100 new Long(PortalUtil.getClassNameId(User.class.getName())),
101 new ClassPKContainer(
102 AvailableMappersUtil.getUserIdMapper(), false));
103
104 classPKContainers.put(
105 new Long(PortalUtil.getClassNameId(UserGroup.class.getName())),
106 new ClassPKContainer(
107 AvailableMappersUtil.getUserGroupIdMapper(), true));
108
109 UpgradeColumn upgradeClassPKColumn = new ClassPKUpgradeColumnImpl(
110 classNameIdColumn, classPKContainers);
111
112 UpgradeColumn upgradeNameColumn = new GroupNameUpgradeColumnImpl(
113 upgradePKColumn, upgradeClassPKColumn);
114
115 UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
116 GroupImpl.TABLE_NAME, GroupImpl.TABLE_COLUMNS, upgradePKColumn,
117 classNameIdColumn, upgradeClassPKColumn, upgradeNameColumn);
118
119 upgradeTable.setCreateSQL(GroupImpl.TABLE_SQL_CREATE);
120
121 upgradeTable.updateTable();
122
123 ValueMapper groupIdMapper = new DefaultPKMapper(
124 upgradePKColumn.getValueMapper());
125
126 AvailableMappersUtil.setGroupIdMapper(groupIdMapper);
127
128 UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
129 "groupId", groupIdMapper);
130
131
133 UpgradeColumn upgradeLayoutOwnerIdColumn =
134 new TempUpgradeColumnImpl("ownerId");
135
136 LayoutOwnerIdUpgradeColumnImpl upgradeLayoutOwnerIdGroupIdColumn =
137 new LayoutOwnerIdUpgradeColumnImpl(
138 "groupId", upgradeLayoutOwnerIdColumn, groupIdMapper);
139
140 LayoutOwnerIdUpgradeColumnImpl upgradeLayoutOwnerIdPrivateLayoutColumn =
141 new LayoutOwnerIdUpgradeColumnImpl(
142 "privateLayout", upgradeLayoutOwnerIdColumn, groupIdMapper);
143
144 UpgradeColumn upgradeLayoutIdColumn =
145 new TempUpgradeColumnImpl("layoutId");
146
147 PKUpgradeColumnImpl upgradeLayoutPlidColumn =
148 new LayoutPlidUpgradeColumnImpl(
149 upgradeLayoutOwnerIdColumn, upgradeLayoutOwnerIdGroupIdColumn,
150 upgradeLayoutOwnerIdPrivateLayoutColumn, upgradeLayoutIdColumn);
151
152 Object[][] layoutColumns1 = {{"ownerId", new Integer(Types.VARCHAR)}};
153 Object[][] layoutColumns2 = LayoutImpl.TABLE_COLUMNS.clone();
154
155 Object[][] layoutColumns = ArrayUtil.append(
156 layoutColumns1, layoutColumns2);
157
158 upgradeTable = new DefaultUpgradeTableImpl(
159 LayoutImpl.TABLE_NAME, layoutColumns, upgradeLayoutOwnerIdColumn,
160 upgradeLayoutOwnerIdGroupIdColumn,
161 upgradeLayoutOwnerIdPrivateLayoutColumn, upgradeLayoutIdColumn,
162 upgradeLayoutPlidColumn);
163
164 String createSQL = LayoutImpl.TABLE_SQL_CREATE;
165
166 createSQL =
167 createSQL.substring(0, createSQL.length() - 1) +
168 ",ownerId VARCHAR(75) null)";
169
170 upgradeTable.setCreateSQL(createSQL);
171
172 upgradeTable.updateTable();
173
174 ValueMapper layoutPlidMapper = upgradeLayoutPlidColumn.getValueMapper();
175
176 AvailableMappersUtil.setLayoutPlidMapper(layoutPlidMapper);
177
178
180 Object[][] layoutSetColumns1 =
181 {{"ownerId", new Integer(Types.VARCHAR)}};
182 Object[][] layoutSetColumns2 = LayoutSetImpl.TABLE_COLUMNS.clone();
183
184 Object[][] layoutSetColumns = ArrayUtil.append(
185 layoutSetColumns1, layoutSetColumns2);
186
187 upgradeTable = new DefaultUpgradeTableImpl(
188 LayoutSetImpl.TABLE_NAME, layoutSetColumns,
189 new PKUpgradeColumnImpl("layoutSetId", false),
190 upgradeGroupIdColumn);
191
192 createSQL = LayoutSetImpl.TABLE_SQL_CREATE;
193
194 createSQL =
195 createSQL.substring(0, createSQL.length() - 1) +
196 ",ownerId VARCHAR(75) null)";
197
198 upgradeTable.setCreateSQL(createSQL);
199
200 upgradeTable.updateTable();
201
202
204 upgradeTable = new DefaultUpgradeTableImpl(
205 OrgGroupPermissionImpl.TABLE_NAME,
206 OrgGroupPermissionImpl.TABLE_COLUMNS, upgradeGroupIdColumn);
207
208 upgradeTable.setCreateSQL(OrgGroupPermissionImpl.TABLE_SQL_CREATE);
209
210 upgradeTable.updateTable();
211
212
214 upgradeTable = new DefaultUpgradeTableImpl(
215 OrgGroupRoleImpl.TABLE_NAME, OrgGroupRoleImpl.TABLE_COLUMNS,
216 upgradeGroupIdColumn);
217
218 upgradeTable.setCreateSQL(OrgGroupRoleImpl.TABLE_SQL_CREATE);
219
220 upgradeTable.updateTable();
221
222
224 runSQL(_UPGRADE_SCHEMA);
225 }
226
227 private static final String[] _UPGRADE_SCHEMA = {
228 "alter table Layout drop column ownerId",
229
230 "alter table LayoutSet drop column ownerId"
231 };
232
233 private static Log _log = LogFactory.getLog(UpgradeGroup.class);
234
235 }