1
22
23 package com.liferay.portal.upgrade.v5_2_2;
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.upgrade.UpgradeException;
29 import com.liferay.portal.upgrade.UpgradeProcess;
30
31 import java.sql.Connection;
32 import java.sql.PreparedStatement;
33 import java.sql.ResultSet;
34
35
41 public class UpgradeWebForm extends UpgradeProcess {
42
43 public void upgrade() throws UpgradeException {
44 _log.info("Upgrading");
45
46 try {
47 doUpgrade();
48 }
49 catch (Exception e) {
50 throw new UpgradeException(e);
51 }
52 }
53
54 protected void doUpgrade() throws Exception {
55 Connection con = null;
56 PreparedStatement ps = null;
57 ResultSet rs = null;
58
59 long oldClassNameId = 0;
60 long newClassNameId = 0;
61
62 try {
63 con = DataAccess.getConnection();
64
65 ps = con.prepareStatement(
66 "select * from ClassName_ where value = ?");
67
68 ps.setString(1, _OLD_WEBFORM_CLASSNAME);
69
70 rs = ps.executeQuery();
71
72 if (!rs.next()) {
73 ps.close();
74
75 return;
76 }
77
78 oldClassNameId = rs.getLong("classNameId");
79
80 ps = con.prepareStatement(
81 "select * from ClassName_ where value = ?");
82
83 ps.setString(1, _NEW_WEBFORM_CLASSNAME);
84
85 rs = ps.executeQuery();
86
87 if (!rs.next()){
88 ps = con.prepareStatement(
89 "update ClassName_ set value = ? where value = ?");
90
91 ps.setString(1, _NEW_WEBFORM_CLASSNAME);
92
93 ps.setString(2, _OLD_WEBFORM_CLASSNAME);
94
95 ps.executeUpdate();
96
97 ps.close();
98
99 return;
100 }
101
102 newClassNameId = rs.getLong("classNameId");
103
104 ps = con.prepareStatement(
105 "update ExpandoTable set classNameId = ? where " +
106 "classNameId = ?");
107
108 ps.setLong(1, newClassNameId);
109
110 ps.setLong(2, oldClassNameId);
111
112 ps.executeUpdate();
113
114 ps = con.prepareStatement(
115 "update ExpandoValue set classNameId = ? where " +
116 "classNameId = ?");
117
118 ps.setLong(1, newClassNameId);
119
120 ps.setLong(2, oldClassNameId);
121
122 ps.executeUpdate();
123
124 ps = con.prepareStatement(
125 "delete from ClassName_ where value = ?");
126
127 ps.setString(1, _OLD_WEBFORM_CLASSNAME);
128
129 ps.executeUpdate();
130
131 ps.close();
132
133 }
134 finally {
135 DataAccess.cleanUp(con, ps, rs);
136 }
137 }
138
139 private static final String _OLD_WEBFORM_CLASSNAME =
140 "com.liferay.portlet.webform.util.WebFormUtil";
141
142 private static final String _NEW_WEBFORM_CLASSNAME =
143 "com.liferay.webform.util.WebFormUtil";
144
145 private static Log _log = LogFactoryUtil.getLog(UpgradeWebForm.class);
146
147 }