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 import com.liferay.util.CollectionFactory;
53
54 import java.sql.Types;
55
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 classPKContainers = CollectionFactory.getHashMap();
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 =
153 (Object[][])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 =
183 (Object[][])LayoutSetImpl.TABLE_COLUMNS.clone();
184
185 Object[][] layoutSetColumns = ArrayUtil.append(
186 layoutSetColumns1, layoutSetColumns2);
187
188 upgradeTable = new DefaultUpgradeTableImpl(
189 LayoutSetImpl.TABLE_NAME, layoutSetColumns,
190 new PKUpgradeColumnImpl("layoutSetId", false),
191 upgradeGroupIdColumn);
192
193 createSQL = LayoutSetImpl.TABLE_SQL_CREATE;
194
195 createSQL =
196 createSQL.substring(0, createSQL.length() - 1) +
197 ",ownerId VARCHAR(75) null)";
198
199 upgradeTable.setCreateSQL(createSQL);
200
201 upgradeTable.updateTable();
202
203
205 upgradeTable = new DefaultUpgradeTableImpl(
206 OrgGroupPermissionImpl.TABLE_NAME,
207 OrgGroupPermissionImpl.TABLE_COLUMNS, upgradeGroupIdColumn);
208
209 upgradeTable.setCreateSQL(OrgGroupPermissionImpl.TABLE_SQL_CREATE);
210
211 upgradeTable.updateTable();
212
213
215 upgradeTable = new DefaultUpgradeTableImpl(
216 OrgGroupRoleImpl.TABLE_NAME, OrgGroupRoleImpl.TABLE_COLUMNS,
217 upgradeGroupIdColumn);
218
219 upgradeTable.setCreateSQL(OrgGroupRoleImpl.TABLE_SQL_CREATE);
220
221 upgradeTable.updateTable();
222
223
225 runSQL(_UPGRADE_SCHEMA);
226 }
227
228 private static final String[] _UPGRADE_SCHEMA = {
229 "alter table Layout drop column ownerId",
230
231 "alter table LayoutSet drop column ownerId"
232 };
233
234 private static Log _log = LogFactory.getLog(UpgradeGroup.class);
235
236 }