001
014
015 package com.liferay.portal.upgrade.v5_2_3;
016
017 import com.liferay.portal.kernel.upgrade.BaseUpgradePortletPreferences;
018 import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
019 import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
020 import com.liferay.portal.kernel.util.StringBundler;
021 import com.liferay.portal.kernel.util.StringPool;
022 import com.liferay.portal.kernel.util.Validator;
023 import com.liferay.portal.upgrade.v5_2_3.util.DLFileEntryTable;
024 import com.liferay.portal.upgrade.v5_2_3.util.DLFileRankTable;
025 import com.liferay.portal.upgrade.v5_2_3.util.DLFileShortcutTable;
026 import com.liferay.portal.upgrade.v5_2_3.util.DLFileVersionTable;
027 import com.liferay.portlet.PortletPreferencesFactoryUtil;
028
029 import javax.portlet.PortletPreferences;
030
031
036 public class UpgradeDocumentLibrary extends BaseUpgradePortletPreferences {
037
038 @Override
039 protected void doUpgrade() throws Exception {
040 try {
041 runSQL("alter_column_type DLFileEntry name VARCHAR(255) null");
042 }
043 catch (Exception e) {
044
045
046
047 UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
048 DLFileEntryTable.TABLE_NAME, DLFileEntryTable.TABLE_COLUMNS);
049
050 upgradeTable.setCreateSQL(DLFileEntryTable.TABLE_SQL_CREATE);
051 upgradeTable.setIndexesSQL(DLFileEntryTable.TABLE_SQL_ADD_INDEXES);
052
053 upgradeTable.updateTable();
054 }
055
056 try {
057 runSQL("alter_column_type DLFileRank name VARCHAR(255) null");
058 }
059 catch (Exception e) {
060
061
062
063 UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
064 DLFileRankTable.TABLE_NAME, DLFileRankTable.TABLE_COLUMNS);
065
066 upgradeTable.setCreateSQL(DLFileRankTable.TABLE_SQL_CREATE);
067 upgradeTable.setIndexesSQL(DLFileRankTable.TABLE_SQL_ADD_INDEXES);
068
069 upgradeTable.updateTable();
070 }
071
072 try {
073 runSQL("alter_column_type DLFileShortcut toName VARCHAR(255) null");
074 }
075 catch (Exception e) {
076
077
078
079 UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
080 DLFileShortcutTable.TABLE_NAME,
081 DLFileShortcutTable.TABLE_COLUMNS);
082
083 upgradeTable.setCreateSQL(DLFileShortcutTable.TABLE_SQL_CREATE);
084 upgradeTable.setIndexesSQL(
085 DLFileShortcutTable.TABLE_SQL_ADD_INDEXES);
086
087 upgradeTable.updateTable();
088 }
089
090 try {
091 runSQL("alter_column_type DLFileVersion name VARCHAR(255) null");
092 }
093 catch (Exception e) {
094
095
096
097 UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
098 DLFileVersionTable.TABLE_NAME,
099 DLFileVersionTable.TABLE_COLUMNS);
100
101 upgradeTable.setCreateSQL(DLFileVersionTable.TABLE_SQL_CREATE);
102 upgradeTable.setIndexesSQL(
103 DLFileVersionTable.TABLE_SQL_ADD_INDEXES);
104
105 upgradeTable.updateTable();
106 }
107
108
109
110 updateGroupId();
111
112
113
114 updatePortletPreferences();
115 }
116
117 @Override
118 protected String getUpdatePortletPreferencesWhereClause() {
119 return "portletId = '20' and preferences like " +
120 "'%<name>fileEntryColumns</name><value></value>%'";
121 }
122
123 protected void updateGroupId() throws Exception {
124 StringBundler sb = new StringBundler(3);
125
126 sb.append("update DLFileEntry set groupId = (select groupId from ");
127 sb.append("DLFolder where DLFolder.folderId = DLFileEntry.folderId)");
128
129 runSQL(sb.toString());
130
131 sb.setIndex(0);
132
133 sb.append("update DLFileRank set groupId = (select groupId from ");
134 sb.append("DLFolder where DLFolder.folderId = DLFileRank.folderId)");
135
136 runSQL(sb.toString());
137
138 sb.setIndex(0);
139
140 sb.append("update DLFileShortcut set groupId = (select groupId from ");
141 sb.append("DLFolder where DLFolder.folderId = ");
142 sb.append("DLFileShortcut.folderId)");
143
144 runSQL(sb.toString());
145
146 sb.setIndex(0);
147
148 sb.append("update DLFileVersion set groupId = (select groupId from ");
149 sb.append("DLFolder where DLFolder.folderId = DLFileVersion.folderId)");
150
151 runSQL(sb.toString());
152 }
153
154 @Override
155 protected String upgradePreferences(
156 long companyId, long ownerId, int ownerType, long plid,
157 String portletId, String xml)
158 throws Exception {
159
160 PortletPreferences portletPreferences =
161 PortletPreferencesFactoryUtil.fromXML(
162 companyId, ownerId, ownerType, plid, portletId, xml);
163
164 String fileEntryColumns = portletPreferences.getValue(
165 "fileEntryColumns", StringPool.BLANK);
166
167 if (Validator.isNull(fileEntryColumns)) {
168 portletPreferences.reset("fileEntryColumns");
169 }
170
171 return PortletPreferencesFactoryUtil.toXML(portletPreferences);
172 }
173
174 }