1
14
15 package com.liferay.portal.upgrade.v4_3_0;
16
17 import com.liferay.portal.kernel.upgrade.UpgradeProcess;
18 import com.liferay.portal.kernel.upgrade.util.DefaultPKMapper;
19 import com.liferay.portal.kernel.upgrade.util.SwapUpgradeColumnImpl;
20 import com.liferay.portal.kernel.upgrade.util.TempUpgradeColumnImpl;
21 import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
22 import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
23 import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
24 import com.liferay.portal.kernel.upgrade.util.ValueMapper;
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.upgrade.util.PKUpgradeColumnImpl;
30 import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
31 import com.liferay.portal.upgrade.v4_3_0.util.ClassNameIdUpgradeColumnImpl;
32 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKContainer;
33 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKUpgradeColumnImpl;
34 import com.liferay.portal.upgrade.v4_3_0.util.GroupNameUpgradeColumnImpl;
35 import com.liferay.portal.upgrade.v4_3_0.util.GroupTable;
36 import com.liferay.portal.upgrade.v4_3_0.util.LayoutOwnerIdUpgradeColumnImpl;
37 import com.liferay.portal.upgrade.v4_3_0.util.LayoutPlidUpgradeColumnImpl;
38 import com.liferay.portal.upgrade.v4_3_0.util.LayoutSetTable;
39 import com.liferay.portal.upgrade.v4_3_0.util.LayoutTable;
40 import com.liferay.portal.upgrade.v4_3_0.util.OrgGroupPermissionTable;
41 import com.liferay.portal.upgrade.v4_3_0.util.OrgGroupRoleTable;
42 import com.liferay.portal.util.PortalUtil;
43
44 import java.sql.Types;
45
46 import java.util.HashMap;
47 import java.util.Map;
48
49
55 public class UpgradeGroup extends UpgradeProcess {
56
57 protected void doUpgrade() throws Exception {
58
59
61 PKUpgradeColumnImpl upgradePKColumn = new PKUpgradeColumnImpl(
62 "groupId", true);
63
64 ClassNameIdUpgradeColumnImpl classNameIdColumn =
65 new ClassNameIdUpgradeColumnImpl();
66
67 Map<Long, ClassPKContainer> classPKContainers =
68 new HashMap<Long, ClassPKContainer>();
69
70 classPKContainers.put(
71 new Long(PortalUtil.getClassNameId(Organization.class.getName())),
72 new ClassPKContainer(
73 AvailableMappersUtil.getOrganizationIdMapper(), true));
74
75 classPKContainers.put(
76 new Long(PortalUtil.getClassNameId(User.class.getName())),
77 new ClassPKContainer(
78 AvailableMappersUtil.getUserIdMapper(), false));
79
80 classPKContainers.put(
81 new Long(PortalUtil.getClassNameId(UserGroup.class.getName())),
82 new ClassPKContainer(
83 AvailableMappersUtil.getUserGroupIdMapper(), true));
84
85 UpgradeColumn upgradeClassPKColumn = new ClassPKUpgradeColumnImpl(
86 classNameIdColumn, classPKContainers);
87
88 UpgradeColumn upgradeNameColumn = new GroupNameUpgradeColumnImpl(
89 upgradePKColumn, upgradeClassPKColumn);
90
91 UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
92 GroupTable.TABLE_NAME, GroupTable.TABLE_COLUMNS, upgradePKColumn,
93 classNameIdColumn, upgradeClassPKColumn, upgradeNameColumn);
94
95 upgradeTable.setCreateSQL(GroupTable.TABLE_SQL_CREATE);
96
97 upgradeTable.updateTable();
98
99 ValueMapper groupIdMapper = new DefaultPKMapper(
100 upgradePKColumn.getValueMapper());
101
102 AvailableMappersUtil.setGroupIdMapper(groupIdMapper);
103
104 UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
105 "groupId", groupIdMapper);
106
107
109 UpgradeColumn upgradeLayoutOwnerIdColumn =
110 new TempUpgradeColumnImpl("ownerId");
111
112 LayoutOwnerIdUpgradeColumnImpl upgradeLayoutOwnerIdGroupIdColumn =
113 new LayoutOwnerIdUpgradeColumnImpl(
114 "groupId", upgradeLayoutOwnerIdColumn, groupIdMapper);
115
116 LayoutOwnerIdUpgradeColumnImpl upgradeLayoutOwnerIdPrivateLayoutColumn =
117 new LayoutOwnerIdUpgradeColumnImpl(
118 "privateLayout", upgradeLayoutOwnerIdColumn, groupIdMapper);
119
120 UpgradeColumn upgradeLayoutIdColumn =
121 new TempUpgradeColumnImpl("layoutId");
122
123 PKUpgradeColumnImpl upgradeLayoutPlidColumn =
124 new LayoutPlidUpgradeColumnImpl(
125 upgradeLayoutOwnerIdColumn, upgradeLayoutOwnerIdGroupIdColumn,
126 upgradeLayoutOwnerIdPrivateLayoutColumn, upgradeLayoutIdColumn);
127
128 Object[][] layoutColumns1 = {{"ownerId", new Integer(Types.VARCHAR)}};
129 Object[][] layoutColumns2 = LayoutTable.TABLE_COLUMNS.clone();
130
131 Object[][] layoutColumns = ArrayUtil.append(
132 layoutColumns1, layoutColumns2);
133
134 upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
135 LayoutTable.TABLE_NAME, layoutColumns, upgradeLayoutOwnerIdColumn,
136 upgradeLayoutOwnerIdGroupIdColumn,
137 upgradeLayoutOwnerIdPrivateLayoutColumn, upgradeLayoutIdColumn,
138 upgradeLayoutPlidColumn);
139
140 String createSQL = LayoutTable.TABLE_SQL_CREATE;
141
142 createSQL =
143 createSQL.substring(0, createSQL.length() - 1) +
144 ",ownerId VARCHAR(75) null)";
145
146 upgradeTable.setCreateSQL(createSQL);
147
148 upgradeTable.updateTable();
149
150 ValueMapper layoutPlidMapper = upgradeLayoutPlidColumn.getValueMapper();
151
152 AvailableMappersUtil.setLayoutPlidMapper(layoutPlidMapper);
153
154
156 Object[][] layoutSetColumns1 =
157 {{"ownerId", new Integer(Types.VARCHAR)}};
158 Object[][] layoutSetColumns2 = LayoutSetTable.TABLE_COLUMNS.clone();
159
160 Object[][] layoutSetColumns = ArrayUtil.append(
161 layoutSetColumns1, layoutSetColumns2);
162
163 upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
164 LayoutSetTable.TABLE_NAME, layoutSetColumns,
165 new PKUpgradeColumnImpl("layoutSetId", false),
166 upgradeGroupIdColumn);
167
168 createSQL = LayoutSetTable.TABLE_SQL_CREATE;
169
170 createSQL =
171 createSQL.substring(0, createSQL.length() - 1) +
172 ",ownerId VARCHAR(75) null)";
173
174 upgradeTable.setCreateSQL(createSQL);
175
176 upgradeTable.updateTable();
177
178
180 upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
181 OrgGroupPermissionTable.TABLE_NAME,
182 OrgGroupPermissionTable.TABLE_COLUMNS, upgradeGroupIdColumn);
183
184 upgradeTable.setCreateSQL(OrgGroupPermissionTable.TABLE_SQL_CREATE);
185
186 upgradeTable.updateTable();
187
188
190 upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
191 OrgGroupRoleTable.TABLE_NAME, OrgGroupRoleTable.TABLE_COLUMNS,
192 upgradeGroupIdColumn);
193
194 upgradeTable.setCreateSQL(OrgGroupRoleTable.TABLE_SQL_CREATE);
195
196 upgradeTable.updateTable();
197
198
200 runSQL(_UPGRADE_SCHEMA);
201 }
202
203 private static final String[] _UPGRADE_SCHEMA = {
204 "alter table Layout drop column ownerId",
205
206 "alter table LayoutSet drop column ownerId"
207 };
208
209 }