1
22
23 package com.liferay.portal.upgrade.v5_1_5;
24
25 import com.liferay.portal.kernel.dao.jdbc.DataAccess;
26 import com.liferay.portal.kernel.log.Log;
27 import com.liferay.portal.kernel.log.LogFactoryUtil;
28 import com.liferay.portal.kernel.util.LocaleUtil;
29 import com.liferay.portal.kernel.util.UnicodeProperties;
30 import com.liferay.portal.kernel.util.Validator;
31 import com.liferay.portal.upgrade.UpgradeException;
32 import com.liferay.portal.upgrade.UpgradeProcess;
33
34 import java.sql.Connection;
35 import java.sql.PreparedStatement;
36 import java.sql.ResultSet;
37
38
44 public class UpgradeLayout extends UpgradeProcess {
45
46 public void upgrade() throws UpgradeException {
47 _log.info("Upgrading");
48
49 try {
50 doUpgrade();
51 }
52 catch (Exception e) {
53 throw new UpgradeException(e);
54 }
55 }
56
57 protected void doUpgrade() throws Exception {
58 String languageId = LocaleUtil.toLanguageId(LocaleUtil.getDefault());
59
60 Connection con = null;
61 PreparedStatement ps = null;
62 ResultSet rs = null;
63
64 try {
65 con = DataAccess.getConnection();
66
67 ps = con.prepareStatement(
68 "select plid, typeSettings from Layout where typeSettings " +
69 "like '%meta-description=%'");
70
71 rs = ps.executeQuery();
72
73 while (rs.next()) {
74 long plid = rs.getLong("plid");
75 String typeSettings = rs.getString("typeSettings");
76
77 UnicodeProperties typeSettingsProperties =
78 new UnicodeProperties();
79
80 typeSettingsProperties.load(typeSettings);
81
82 String oldMetaDescription = typeSettingsProperties.getProperty(
83 "meta-description");
84 String newMetaDescription = typeSettingsProperties.getProperty(
85 "meta-description_" + languageId);
86
87 if (Validator.isNotNull(oldMetaDescription) &&
88 Validator.isNull(newMetaDescription)) {
89
90 typeSettingsProperties.setProperty(
91 "meta-description_" + languageId, oldMetaDescription);
92 }
93
94 typeSettingsProperties.remove("meta-description");
95
96 String oldMetaKeywords = typeSettingsProperties.getProperty(
97 "meta-keywords");
98 String newMetaKeywords = typeSettingsProperties.getProperty(
99 "meta-keywords_" + languageId);
100
101 if (Validator.isNotNull(oldMetaKeywords) &&
102 Validator.isNull(newMetaKeywords)) {
103
104 typeSettingsProperties.setProperty(
105 "meta-keywords_" + languageId, oldMetaKeywords);
106 }
107
108 typeSettingsProperties.remove("meta-keywords");
109
110 String oldMetaRobots = typeSettingsProperties.getProperty(
111 "meta-robots");
112 String newMetaRobots = typeSettingsProperties.getProperty(
113 "meta-robots_" + languageId);
114
115 if (Validator.isNotNull(oldMetaRobots) &&
116 Validator.isNull(newMetaRobots)) {
117
118 typeSettingsProperties.setProperty(
119 "meta-robots_" + languageId, oldMetaRobots);
120 }
121
122 typeSettingsProperties.remove("meta-robots");
123
124 updateTypeSettings(plid, typeSettingsProperties.toString());
125 }
126 }
127 finally {
128 DataAccess.cleanUp(con, ps, rs);
129 }
130 }
131
132 protected void updateTypeSettings(long plid, String typeSettings)
133 throws Exception {
134
135 Connection con = null;
136 PreparedStatement ps = null;
137 ResultSet rs = null;
138
139 try {
140 con = DataAccess.getConnection();
141
142 ps = con.prepareStatement(
143 "update Layout set typeSettings = ? where plid = ?");
144
145 ps.setString(1, typeSettings);
146 ps.setLong(2, plid);
147
148 ps.executeUpdate();
149 }
150 finally {
151 DataAccess.cleanUp(con, ps, rs);
152 }
153 }
154
155 private static Log _log = LogFactoryUtil.getLog(UpgradeLayout.class);
156
157 }