1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portal.upgrade.v4_3_0;
21  
22  import com.liferay.portal.kernel.log.Log;
23  import com.liferay.portal.kernel.log.LogFactoryUtil;
24  import com.liferay.portal.upgrade.UpgradeException;
25  import com.liferay.portal.upgrade.UpgradeProcess;
26  import com.liferay.portal.upgrade.util.DefaultPKMapper;
27  import com.liferay.portal.upgrade.util.DefaultUpgradeTableImpl;
28  import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
29  import com.liferay.portal.upgrade.util.SwapUpgradeColumnImpl;
30  import com.liferay.portal.upgrade.util.TempUpgradeColumnImpl;
31  import com.liferay.portal.upgrade.util.UpgradeColumn;
32  import com.liferay.portal.upgrade.util.UpgradeTable;
33  import com.liferay.portal.upgrade.util.ValueMapper;
34  import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
35  import com.liferay.portal.upgrade.v4_3_0.util.JournalArticleContentUpgradeColumnImpl;
36  import com.liferay.portal.upgrade.v4_3_0.util.JournalArticlePKUpgradeColumnImpl;
37  import com.liferay.portal.upgrade.v4_3_0.util.JournalArticleResourcePrimKeyUpgradeColumnImpl;
38  import com.liferay.portal.upgrade.v4_3_0.util.JournalStructurePKUpgradeColumnImpl;
39  import com.liferay.portal.upgrade.v4_3_0.util.JournalStructureXSDUpgradeColumnImpl;
40  import com.liferay.portal.upgrade.v4_3_0.util.JournalTemplatePKUpgradeColumnImpl;
41  import com.liferay.portal.upgrade.v4_3_0.util.JournalTemplateSmallImageIdUpgradeColumnImpl;
42  import com.liferay.portal.upgrade.v4_3_0.util.JournalTemplateXSLUpgradeColumnImpl;
43  import com.liferay.portal.util.PropsKeys;
44  import com.liferay.portal.util.PropsUtil;
45  import com.liferay.portlet.journal.model.impl.JournalArticleImpl;
46  import com.liferay.portlet.journal.model.impl.JournalStructureImpl;
47  import com.liferay.portlet.journal.model.impl.JournalTemplateImpl;
48  
49  import java.sql.Types;
50  
51  /**
52   * <a href="UpgradeJournal.java.html"><b><i>View Source</i></b></a>
53   *
54   * @author Brian Wing Shun Chan
55   *
56   */
57  public class UpgradeJournal extends UpgradeProcess {
58  
59      public void upgrade() throws UpgradeException {
60          _log.info("Upgrading");
61  
62          try {
63              doUpgrade();
64          }
65          catch (Exception e) {
66              throw new UpgradeException(e);
67          }
68      }
69  
70      protected void doUpgrade() throws Exception {
71  
72          // JournalArticle
73  
74          UpgradeColumn upgradeCompanyIdColumn = new SwapUpgradeColumnImpl(
75              "companyId", new Integer(Types.VARCHAR),
76              AvailableMappersUtil.getCompanyIdMapper());
77  
78          UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
79              "groupId", AvailableMappersUtil.getGroupIdMapper());
80  
81          UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
82              "userId", new Integer(Types.VARCHAR),
83              AvailableMappersUtil.getUserIdMapper());
84  
85          UpgradeColumn upgradeApprovedByUserIdColumn = new SwapUpgradeColumnImpl(
86              "approvedByUserId", new Integer(Types.VARCHAR),
87              AvailableMappersUtil.getUserIdMapper());
88  
89          JournalArticlePKUpgradeColumnImpl upgradeArticlePKColumn =
90              new JournalArticlePKUpgradeColumnImpl(
91                  upgradeCompanyIdColumn, upgradeGroupIdColumn);
92  
93          UpgradeColumn upgradeArticleResourcePrimKeyColumn =
94              new JournalArticleResourcePrimKeyUpgradeColumnImpl(
95                  upgradeArticlePKColumn);
96  
97          UpgradeColumn upgradeArticleIdColumn =
98              new TempUpgradeColumnImpl("articleId");
99  
100         UpgradeColumn upgradeVersionColumn =
101             new TempUpgradeColumnImpl("version", new Integer(Types.DOUBLE));
102 
103         UpgradeColumn upgradeStructureIdColumn =
104             new TempUpgradeColumnImpl("structureId");
105 
106         UpgradeColumn upgradeContentColumn =
107             new JournalArticleContentUpgradeColumnImpl(
108                 upgradeCompanyIdColumn, upgradeGroupIdColumn,
109                 upgradeArticleIdColumn, upgradeVersionColumn,
110                 upgradeStructureIdColumn,
111                 AvailableMappersUtil.getImageIdMapper());
112 
113         UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
114             JournalArticleImpl.TABLE_NAME, JournalArticleImpl.TABLE_COLUMNS,
115             upgradeCompanyIdColumn, upgradeGroupIdColumn, upgradeUserIdColumn,
116             upgradeApprovedByUserIdColumn, upgradeArticlePKColumn,
117             upgradeArticleResourcePrimKeyColumn, upgradeArticleIdColumn,
118             upgradeVersionColumn, upgradeStructureIdColumn,
119             upgradeContentColumn);
120 
121         upgradeTable.setCreateSQL(JournalArticleImpl.TABLE_SQL_CREATE);
122 
123         upgradeTable.updateTable();
124 
125         ValueMapper articleIdMapper = new DefaultPKMapper(
126             upgradeArticlePKColumn.getValueMapper());
127 
128         AvailableMappersUtil.setJournalArticleIdMapper(articleIdMapper);
129 
130         // JournalStructure
131 
132         PKUpgradeColumnImpl upgradeStructurePKColumn =
133             new JournalStructurePKUpgradeColumnImpl(
134                 upgradeCompanyIdColumn, upgradeGroupIdColumn);
135 
136         UpgradeColumn upgradeXSDColumn =
137             new JournalStructureXSDUpgradeColumnImpl();
138 
139         upgradeTable = new DefaultUpgradeTableImpl(
140             JournalStructureImpl.TABLE_NAME, JournalStructureImpl.TABLE_COLUMNS,
141             upgradeCompanyIdColumn, upgradeGroupIdColumn,
142             upgradeStructurePKColumn, upgradeUserIdColumn, upgradeXSDColumn);
143 
144         upgradeTable.setCreateSQL(JournalStructureImpl.TABLE_SQL_CREATE);
145 
146         upgradeTable.updateTable();
147 
148         ValueMapper structureIdMapper = new DefaultPKMapper(
149             upgradeStructurePKColumn.getValueMapper());
150 
151         AvailableMappersUtil.setJournalStructureIdMapper(structureIdMapper);
152 
153         // JournalTemplate
154 
155         PKUpgradeColumnImpl upgradeTemplatePKColumn =
156             new JournalTemplatePKUpgradeColumnImpl(
157                 upgradeCompanyIdColumn, upgradeGroupIdColumn);
158 
159         UpgradeColumn upgradeTemplateIdColumn =
160             new TempUpgradeColumnImpl("templateId");
161 
162         UpgradeColumn upgradeXSLColumn =
163             new JournalTemplateXSLUpgradeColumnImpl(upgradeTemplateIdColumn);
164 
165         UpgradeColumn upgradeSmallImageIdColumn =
166             new JournalTemplateSmallImageIdUpgradeColumnImpl(
167                 upgradeCompanyIdColumn, upgradeGroupIdColumn,
168                 upgradeTemplatePKColumn,
169                 AvailableMappersUtil.getImageIdMapper());
170 
171         upgradeTable = new DefaultUpgradeTableImpl(
172             JournalTemplateImpl.TABLE_NAME, JournalTemplateImpl.TABLE_COLUMNS,
173             upgradeCompanyIdColumn, upgradeGroupIdColumn,
174             upgradeTemplatePKColumn, upgradeUserIdColumn,
175             upgradeTemplateIdColumn, upgradeXSLColumn,
176             upgradeSmallImageIdColumn);
177 
178         upgradeTable.setCreateSQL(JournalTemplateImpl.TABLE_SQL_CREATE);
179 
180         upgradeTable.updateTable();
181 
182         ValueMapper templateIdMapper = new DefaultPKMapper(
183             upgradeTemplatePKColumn.getValueMapper());
184 
185         AvailableMappersUtil.setJournalTemplateIdMapper(templateIdMapper);
186 
187         // JournalContentSearch
188 
189         PropsUtil.set(PropsKeys.JOURNAL_SYNC_CONTENT_SEARCH_ON_STARTUP, "true");
190     }
191 
192     private static Log _log = LogFactoryUtil.getLog(UpgradeJournal.class);
193 
194 }