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