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.upgrade.UpgradeException;
28 import com.liferay.portal.upgrade.UpgradeProcess;
29 import com.liferay.portal.upgrade.util.DefaultPKMapper;
30 import com.liferay.portal.upgrade.util.DefaultUpgradeTableImpl;
31 import com.liferay.portal.upgrade.util.LazyPKUpgradeColumnImpl;
32 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
33 import com.liferay.portal.upgrade.util.SwapUpgradeColumnImpl;
34 import com.liferay.portal.upgrade.util.UpgradeColumn;
35 import com.liferay.portal.upgrade.util.UpgradeTable;
36 import com.liferay.portal.upgrade.util.ValueMapper;
37 import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
38 import com.liferay.portal.upgrade.v4_3_0.util.ClassNameIdUpgradeColumnImpl;
39 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKContainer;
40 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKUpgradeColumnImpl;
41 import com.liferay.portal.upgrade.v4_3_0.util.MBCategoryIdUpgradeColumnImpl;
42 import com.liferay.portal.upgrade.v4_3_0.util.MBMessageAttachmentsUpgradeColumnImpl;
43 import com.liferay.portal.util.PortalUtil;
44 import com.liferay.portlet.blogs.model.BlogsEntry;
45 import com.liferay.portlet.messageboards.model.impl.MBCategoryImpl;
46 import com.liferay.portlet.messageboards.model.impl.MBDiscussionImpl;
47 import com.liferay.portlet.messageboards.model.impl.MBMessageFlagImpl;
48 import com.liferay.portlet.messageboards.model.impl.MBMessageImpl;
49 import com.liferay.portlet.messageboards.model.impl.MBStatsUserImpl;
50 import com.liferay.portlet.messageboards.model.impl.MBThreadImpl;
51
52 import java.sql.Types;
53
54 import java.util.HashMap;
55 import java.util.Map;
56
57
63 public class UpgradeMessageBoards extends UpgradeProcess {
64
65 public void upgrade() throws UpgradeException {
66 _log.info("Upgrading");
67
68 try {
69 doUpgrade();
70 }
71 catch (Exception e) {
72 throw new UpgradeException(e);
73 }
74 }
75
76 protected void doUpgrade() throws Exception {
77
78
80 UpgradeColumn upgradeCompanyIdColumn = new SwapUpgradeColumnImpl(
81 "companyId", new Integer(Types.VARCHAR),
82 AvailableMappersUtil.getCompanyIdMapper());
83
84 UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
85 "groupId", AvailableMappersUtil.getGroupIdMapper());
86
87 UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
88 "userId", new Integer(Types.VARCHAR),
89 AvailableMappersUtil.getUserIdMapper());
90
91 PKUpgradeColumnImpl upgradePKColumn =
92 new MBCategoryIdUpgradeColumnImpl();
93
94 UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
95 MBCategoryImpl.TABLE_NAME, MBCategoryImpl.TABLE_COLUMNS,
96 upgradePKColumn, upgradeGroupIdColumn, upgradeUserIdColumn);
97
98 upgradeTable.setCreateSQL(MBCategoryImpl.TABLE_SQL_CREATE);
99
100 upgradeTable.updateTable();
101
102 ValueMapper categoryIdMapper = new DefaultPKMapper(
103 upgradePKColumn.getValueMapper());
104
105 AvailableMappersUtil.setMBCategoryIdMapper(categoryIdMapper);
106
107 UpgradeColumn upgradeParentCategoryIdColumn = new SwapUpgradeColumnImpl(
108 "parentCategoryId", categoryIdMapper);
109
110 upgradeTable = new DefaultUpgradeTableImpl(
111 MBCategoryImpl.TABLE_NAME, MBCategoryImpl.TABLE_COLUMNS,
112 upgradeParentCategoryIdColumn);
113
114 upgradeTable.updateTable();
115
116 UpgradeColumn upgradeCategoryIdColumn = new SwapUpgradeColumnImpl(
117 "categoryId", categoryIdMapper);
118
119
121 upgradePKColumn = new PKUpgradeColumnImpl("messageId", true);
122
123 PKUpgradeColumnImpl upgradeThreadIdPKColumn =
124 new LazyPKUpgradeColumnImpl("threadId");
125
126 UpgradeColumn upgradeAttachmentsColumn =
127 new MBMessageAttachmentsUpgradeColumnImpl(
128 upgradePKColumn, upgradeCompanyIdColumn,
129 upgradeThreadIdPKColumn);
130
131 upgradeTable = new DefaultUpgradeTableImpl(
132 MBMessageImpl.TABLE_NAME, MBMessageImpl.TABLE_COLUMNS,
133 upgradePKColumn, upgradeCompanyIdColumn, upgradeUserIdColumn,
134 upgradeCategoryIdColumn, upgradeThreadIdPKColumn,
135 upgradeAttachmentsColumn);
136
137 upgradeTable.setCreateSQL(MBMessageImpl.TABLE_SQL_CREATE);
138
139 upgradeTable.updateTable();
140
141 ValueMapper messageIdMapper = new DefaultPKMapper(
142 upgradePKColumn.getValueMapper());
143
144 AvailableMappersUtil.setMBMessageIdMapper(messageIdMapper);
145
146 ValueMapper threadIdMapper = upgradeThreadIdPKColumn.getValueMapper();
147
148 AvailableMappersUtil.setMBThreadIdMapper(threadIdMapper);
149
150 UpgradeColumn upgradeParentMessageIdColumn = new SwapUpgradeColumnImpl(
151 "parentMessageId", messageIdMapper);
152
153 upgradeTable = new DefaultUpgradeTableImpl(
154 MBMessageImpl.TABLE_NAME, MBMessageImpl.TABLE_COLUMNS,
155 upgradeParentMessageIdColumn);
156
157 upgradeTable.updateTable();
158
159 UpgradeColumn upgradeMessageIdColumn = new SwapUpgradeColumnImpl(
160 "messageId", messageIdMapper);
161
162 UpgradeColumn upgradeRootMessageIdColumn = new SwapUpgradeColumnImpl(
163 "rootMessageId", messageIdMapper);
164
165
167 upgradePKColumn = new PKUpgradeColumnImpl("messageFlagId", true);
168
169 upgradeTable = new DefaultUpgradeTableImpl(
170 MBMessageFlagImpl.TABLE_NAME, MBMessageFlagImpl.TABLE_COLUMNS,
171 upgradePKColumn, upgradeUserIdColumn, upgradeMessageIdColumn);
172
173 upgradeTable.setCreateSQL(MBMessageFlagImpl.TABLE_SQL_CREATE);
174
175 upgradeTable.updateTable();
176
177
179 upgradeTable = new DefaultUpgradeTableImpl(
180 MBStatsUserImpl.TABLE_NAME, MBStatsUserImpl.TABLE_COLUMNS,
181 new PKUpgradeColumnImpl("statsUserId", false),
182 upgradeGroupIdColumn, upgradeUserIdColumn);
183
184 upgradeTable.setCreateSQL(MBStatsUserImpl.TABLE_SQL_CREATE);
185
186 upgradeTable.updateTable();
187
188
190 UpgradeColumn upgradeThreadIdColumn = new SwapUpgradeColumnImpl(
191 "threadId", threadIdMapper);
192
193 UpgradeColumn upgradeLastPostByUserIdColumn = new SwapUpgradeColumnImpl(
194 "lastPostByUserId", new Integer(Types.VARCHAR),
195 AvailableMappersUtil.getUserIdMapper());
196
197 upgradeTable = new DefaultUpgradeTableImpl(
198 MBThreadImpl.TABLE_NAME, MBThreadImpl.TABLE_COLUMNS,
199 upgradeThreadIdColumn, upgradeCategoryIdColumn,
200 upgradeRootMessageIdColumn, upgradeLastPostByUserIdColumn);
201
202 upgradeTable.setCreateSQL(MBThreadImpl.TABLE_SQL_CREATE);
203
204 upgradeTable.updateTable();
205
206
208 ClassNameIdUpgradeColumnImpl classNameIdColumn =
209 new ClassNameIdUpgradeColumnImpl();
210
211 Map<Long, ClassPKContainer> classPKContainers =
212 new HashMap<Long, ClassPKContainer>();
213
214 classPKContainers.put(
215 new Long(PortalUtil.getClassNameId(BlogsEntry.class.getName())),
216 new ClassPKContainer(
217 AvailableMappersUtil.getBlogsEntryIdMapper(), true));
218
219 UpgradeColumn upgradeClassPKColumn = new ClassPKUpgradeColumnImpl(
220 classNameIdColumn, classPKContainers);
221
222 upgradeTable = new DefaultUpgradeTableImpl(
223 MBDiscussionImpl.TABLE_NAME, MBDiscussionImpl.TABLE_COLUMNS,
224 new PKUpgradeColumnImpl("discussionId", false),
225 classNameIdColumn, upgradeClassPKColumn, upgradeThreadIdColumn);
226
227 upgradeTable.setCreateSQL(MBDiscussionImpl.TABLE_SQL_CREATE);
228
229 upgradeTable.updateTable();
230 }
231
232 private static Log _log = LogFactoryUtil.getLog(UpgradeMessageBoards.class);
233
234 }