001
014
015 package com.liferay.portal.upgrade.v4_3_0;
016
017 import com.liferay.portal.kernel.upgrade.UpgradeProcess;
018 import com.liferay.portal.kernel.upgrade.util.DefaultPKMapper;
019 import com.liferay.portal.kernel.upgrade.util.SwapUpgradeColumnImpl;
020 import com.liferay.portal.kernel.upgrade.util.TempUpgradeColumnImpl;
021 import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
022 import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
023 import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
024 import com.liferay.portal.kernel.upgrade.util.ValueMapper;
025 import com.liferay.portal.kernel.util.ArrayUtil;
026 import com.liferay.portal.model.Organization;
027 import com.liferay.portal.model.User;
028 import com.liferay.portal.model.UserGroup;
029 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
030 import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
031 import com.liferay.portal.upgrade.v4_3_0.util.ClassNameIdUpgradeColumnImpl;
032 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKContainer;
033 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKUpgradeColumnImpl;
034 import com.liferay.portal.upgrade.v4_3_0.util.GroupNameUpgradeColumnImpl;
035 import com.liferay.portal.upgrade.v4_3_0.util.GroupTable;
036 import com.liferay.portal.upgrade.v4_3_0.util.LayoutOwnerIdUpgradeColumnImpl;
037 import com.liferay.portal.upgrade.v4_3_0.util.LayoutPlidUpgradeColumnImpl;
038 import com.liferay.portal.upgrade.v4_3_0.util.LayoutSetTable;
039 import com.liferay.portal.upgrade.v4_3_0.util.LayoutTable;
040 import com.liferay.portal.upgrade.v4_3_0.util.OrgGroupPermissionTable;
041 import com.liferay.portal.upgrade.v4_3_0.util.OrgGroupRoleTable;
042 import com.liferay.portal.util.PortalUtil;
043
044 import java.sql.Types;
045
046 import java.util.HashMap;
047 import java.util.Map;
048
049
053 public class UpgradeGroup extends UpgradeProcess {
054
055 protected void doUpgrade() throws Exception {
056
057
058
059 PKUpgradeColumnImpl upgradePKColumn = new PKUpgradeColumnImpl(
060 "groupId", true);
061
062 ClassNameIdUpgradeColumnImpl classNameIdColumn =
063 new ClassNameIdUpgradeColumnImpl();
064
065 Map<Long, ClassPKContainer> classPKContainers =
066 new HashMap<Long, ClassPKContainer>();
067
068 classPKContainers.put(
069 new Long(PortalUtil.getClassNameId(Organization.class.getName())),
070 new ClassPKContainer(
071 AvailableMappersUtil.getOrganizationIdMapper(), true));
072
073 classPKContainers.put(
074 new Long(PortalUtil.getClassNameId(User.class.getName())),
075 new ClassPKContainer(
076 AvailableMappersUtil.getUserIdMapper(), false));
077
078 classPKContainers.put(
079 new Long(PortalUtil.getClassNameId(UserGroup.class.getName())),
080 new ClassPKContainer(
081 AvailableMappersUtil.getUserGroupIdMapper(), true));
082
083 UpgradeColumn upgradeClassPKColumn = new ClassPKUpgradeColumnImpl(
084 classNameIdColumn, classPKContainers);
085
086 UpgradeColumn upgradeNameColumn = new GroupNameUpgradeColumnImpl(
087 upgradePKColumn, upgradeClassPKColumn);
088
089 UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
090 GroupTable.TABLE_NAME, GroupTable.TABLE_COLUMNS, upgradePKColumn,
091 classNameIdColumn, upgradeClassPKColumn, upgradeNameColumn);
092
093 upgradeTable.setCreateSQL(GroupTable.TABLE_SQL_CREATE);
094
095 upgradeTable.updateTable();
096
097 ValueMapper groupIdMapper = new DefaultPKMapper(
098 upgradePKColumn.getValueMapper());
099
100 AvailableMappersUtil.setGroupIdMapper(groupIdMapper);
101
102 UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
103 "groupId", groupIdMapper);
104
105
106
107 UpgradeColumn upgradeLayoutOwnerIdColumn =
108 new TempUpgradeColumnImpl("ownerId");
109
110 LayoutOwnerIdUpgradeColumnImpl upgradeLayoutOwnerIdGroupIdColumn =
111 new LayoutOwnerIdUpgradeColumnImpl(
112 "groupId", upgradeLayoutOwnerIdColumn, groupIdMapper);
113
114 LayoutOwnerIdUpgradeColumnImpl upgradeLayoutOwnerIdPrivateLayoutColumn =
115 new LayoutOwnerIdUpgradeColumnImpl(
116 "privateLayout", upgradeLayoutOwnerIdColumn, groupIdMapper);
117
118 UpgradeColumn upgradeLayoutIdColumn =
119 new TempUpgradeColumnImpl("layoutId");
120
121 PKUpgradeColumnImpl upgradeLayoutPlidColumn =
122 new LayoutPlidUpgradeColumnImpl(
123 upgradeLayoutOwnerIdColumn, upgradeLayoutOwnerIdGroupIdColumn,
124 upgradeLayoutOwnerIdPrivateLayoutColumn, upgradeLayoutIdColumn);
125
126 Object[][] layoutColumns1 = {{"ownerId", new Integer(Types.VARCHAR)}};
127 Object[][] layoutColumns2 = LayoutTable.TABLE_COLUMNS.clone();
128
129 Object[][] layoutColumns = ArrayUtil.append(
130 layoutColumns1, layoutColumns2);
131
132 upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
133 LayoutTable.TABLE_NAME, layoutColumns, upgradeLayoutOwnerIdColumn,
134 upgradeLayoutOwnerIdGroupIdColumn,
135 upgradeLayoutOwnerIdPrivateLayoutColumn, upgradeLayoutIdColumn,
136 upgradeLayoutPlidColumn);
137
138 String createSQL = LayoutTable.TABLE_SQL_CREATE;
139
140 createSQL =
141 createSQL.substring(0, createSQL.length() - 1) +
142 ",ownerId VARCHAR(75) null)";
143
144 upgradeTable.setCreateSQL(createSQL);
145
146 upgradeTable.updateTable();
147
148 ValueMapper layoutPlidMapper = upgradeLayoutPlidColumn.getValueMapper();
149
150 AvailableMappersUtil.setLayoutPlidMapper(layoutPlidMapper);
151
152
153
154 Object[][] layoutSetColumns1 =
155 {{"ownerId", new Integer(Types.VARCHAR)}};
156 Object[][] layoutSetColumns2 = LayoutSetTable.TABLE_COLUMNS.clone();
157
158 Object[][] layoutSetColumns = ArrayUtil.append(
159 layoutSetColumns1, layoutSetColumns2);
160
161 upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
162 LayoutSetTable.TABLE_NAME, layoutSetColumns,
163 new PKUpgradeColumnImpl("layoutSetId", false),
164 upgradeGroupIdColumn);
165
166 createSQL = LayoutSetTable.TABLE_SQL_CREATE;
167
168 createSQL =
169 createSQL.substring(0, createSQL.length() - 1) +
170 ",ownerId VARCHAR(75) null)";
171
172 upgradeTable.setCreateSQL(createSQL);
173
174 upgradeTable.updateTable();
175
176
177
178 upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
179 OrgGroupPermissionTable.TABLE_NAME,
180 OrgGroupPermissionTable.TABLE_COLUMNS, upgradeGroupIdColumn);
181
182 upgradeTable.setCreateSQL(OrgGroupPermissionTable.TABLE_SQL_CREATE);
183
184 upgradeTable.updateTable();
185
186
187
188 upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
189 OrgGroupRoleTable.TABLE_NAME, OrgGroupRoleTable.TABLE_COLUMNS,
190 upgradeGroupIdColumn);
191
192 upgradeTable.setCreateSQL(OrgGroupRoleTable.TABLE_SQL_CREATE);
193
194 upgradeTable.updateTable();
195
196
197
198 runSQL(_UPGRADE_SCHEMA);
199 }
200
201 private static final String[] _UPGRADE_SCHEMA = {
202 "alter table Layout drop column ownerId",
203
204 "alter table LayoutSet drop column ownerId"
205 };
206
207 }