001
014
015 package com.liferay.portal.upgrade.v7_0_0;
016
017 import com.liferay.portal.kernel.dao.orm.WildcardMode;
018 import com.liferay.portal.kernel.upgrade.UpgradeException;
019 import com.liferay.portal.kernel.upgrade.UpgradeProcess;
020 import com.liferay.portal.kernel.util.LoggingTimer;
021 import com.liferay.portal.kernel.util.StringBundler;
022
023
026 public class UpgradeKernelPackage extends UpgradeProcess {
027
028 @Override
029 protected void doUpgrade() throws UpgradeException {
030 try {
031 upgradeTable(
032 "Counter", "name", getClassNames(), WildcardMode.SURROUND);
033 upgradeTable(
034 "ClassName_", "value", getClassNames(), WildcardMode.SURROUND);
035 upgradeTable(
036 "Lock_", "className", getClassNames(), WildcardMode.SURROUND);
037 upgradeTable(
038 "ResourceAction", "name", getClassNames(),
039 WildcardMode.SURROUND);
040 upgradeTable(
041 "ResourceBlock", "name", getClassNames(),
042 WildcardMode.SURROUND);
043 upgradeTable(
044 "ResourcePermission", "name", getClassNames(),
045 WildcardMode.SURROUND);
046 upgradeTable(
047 "UserNotificationEvent", "payload", getClassNames(),
048 WildcardMode.SURROUND);
049
050 upgradeTable(
051 "ListType", "type_", getClassNames(), WildcardMode.TRAILING);
052 upgradeTable(
053 "ResourceAction", "name", getResourceNames(),
054 WildcardMode.LEADING);
055 upgradeTable(
056 "ResourceBlock", "name", getResourceNames(),
057 WildcardMode.LEADING);
058 upgradeTable(
059 "ResourcePermission", "name", getResourceNames(),
060 WildcardMode.LEADING);
061 upgradeTable(
062 "UserNotificationEvent", "payload", getResourceNames(),
063 WildcardMode.LEADING);
064 }
065 catch (Exception e) {
066 throw new UpgradeException(e);
067 }
068 }
069
070 protected String[][] getClassNames() {
071 return _CLASS_NAMES;
072 }
073
074 protected String[][] getResourceNames() {
075 return _RESOURCE_NAMES;
076 }
077
078 protected void upgradeTable(
079 String tableName, String columnName, String[][] names,
080 WildcardMode wildcardMode)
081 throws Exception {
082
083 try (LoggingTimer loggingTimer = new LoggingTimer(tableName)) {
084 StringBundler sb1 = new StringBundler(7);
085
086 sb1.append("update ");
087 sb1.append(tableName);
088 sb1.append(" set ");
089 sb1.append(columnName);
090 sb1.append(" = replace(");
091 sb1.append(columnName);
092 sb1.append(", '");
093
094 String tableSQL = sb1.toString();
095
096 StringBundler sb2 = new StringBundler(9);
097
098 for (String[] name : names) {
099 sb2.append(tableSQL);
100 sb2.append(name[0]);
101 sb2.append("', '");
102 sb2.append(name[1]);
103 sb2.append("') where ");
104 sb2.append(columnName);
105
106 if (wildcardMode.equals(WildcardMode.LEADING) ||
107 wildcardMode.equals(WildcardMode.SURROUND)) {
108
109 sb2.append(" like '%");
110 }
111 else {
112 sb2.append(" like '");
113 }
114
115 sb2.append(name[0]);
116
117 if (wildcardMode.equals(WildcardMode.SURROUND) ||
118 wildcardMode.equals(WildcardMode.TRAILING)) {
119
120 sb2.append("%'");
121 }
122 else {
123 sb2.append("'");
124 }
125
126 runSQL(sb2.toString());
127
128 sb2.setIndex(0);
129 }
130 }
131 }
132
133 private static final String[][] _CLASS_NAMES = new String[][] {
134 {
135 "com.liferay.counter.model.Counter",
136 "com.liferay.counter.kernel.model.Counter"
137 },
138 {
139 "com.liferay.portal.kernel.mail.Account",
140 "com.liferay.mail.kernel.model.Account"
141 },
142 {
143 "com.liferay.portal.model.BackgroundTask",
144 "com.liferay.portal.background.task.model.BackgroundTask"
145 },
146 {
147 "com.liferay.portal.model.Lock",
148 "com.liferay.portal.lock.model.Lock"
149 },
150 {"com.liferay.portal.model.", "com.liferay.portal.kernel.model."},
151 {
152 "com.liferay.portlet.announcements.model.",
153 "com.liferay.announcements.kernel.model."
154 },
155 {
156 "com.liferay.portlet.asset.model.",
157 "com.liferay.asset.kernel.model."
158 },
159 {
160 "com.liferay.portlet.blogs.model.",
161 "com.liferay.blogs.kernel.model."
162 },
163 {
164 "com.liferay.portlet.documentlibrary.model.",
165 "com.liferay.document.library.kernel.model."
166 },
167 {
168 "com.liferay.portlet.documentlibrary.util.",
169 "com.liferay.document.library.kernel.util."
170 },
171 {
172 "com.liferay.portlet.expando.model.",
173 "com.liferay.expando.kernel.model."
174 },
175 {
176 "com.liferay.portlet.messageboards.model.",
177 "com.liferay.message.boards.kernel.model."
178 },
179 {
180 "com.liferay.portlet.mobiledevicerules.model.",
181 "com.liferay.mobile.device.rules.model."
182 },
183 {
184 "com.liferay.portlet.ratings.model.",
185 "com.liferay.ratings.kernel.model."
186 },
187 {
188 "com.liferay.portlet.social.model.",
189 "com.liferay.social.kernel.model."
190 },
191 {
192 "com.liferay.portlet.trash.model.",
193 "com.liferay.trash.kernel.model."
194 },
195 {
196 "com.liferay.socialnetworking.model.",
197 "com.liferay.social.networking.model."
198 }
199 };
200
201 private static final String[][] _RESOURCE_NAMES = new String[][] {
202 {"com.liferay.portlet.asset", "com.liferay.asset"},
203 {"com.liferay.portlet.blogs", "com.liferay.blogs"},
204 {
205 "com.liferay.portlet.documentlibrary",
206 "com.liferay.document.library"
207 },
208 {"com.liferay.portlet.messageboards", "com.liferay.message.boards"}
209 };
210
211 }