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