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