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