001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
013     */
014    
015    package com.liferay.portal.upgrade.v4_3_0;
016    
017    import com.liferay.portal.kernel.upgrade.UpgradeProcess;
018    import com.liferay.portal.kernel.upgrade.util.DefaultPKMapper;
019    import com.liferay.portal.kernel.upgrade.util.SwapUpgradeColumnImpl;
020    import com.liferay.portal.kernel.upgrade.util.TempUpgradeColumnImpl;
021    import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
022    import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
023    import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
024    import com.liferay.portal.kernel.upgrade.util.ValueMapper;
025    import com.liferay.portal.kernel.util.PropsKeys;
026    import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
027    import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
028    import com.liferay.portal.upgrade.v4_3_0.util.JournalArticleContentUpgradeColumnImpl;
029    import com.liferay.portal.upgrade.v4_3_0.util.JournalArticlePKUpgradeColumnImpl;
030    import com.liferay.portal.upgrade.v4_3_0.util.JournalArticleResourcePrimKeyUpgradeColumnImpl;
031    import com.liferay.portal.upgrade.v4_3_0.util.JournalArticleTable;
032    import com.liferay.portal.upgrade.v4_3_0.util.JournalStructurePKUpgradeColumnImpl;
033    import com.liferay.portal.upgrade.v4_3_0.util.JournalStructureTable;
034    import com.liferay.portal.upgrade.v4_3_0.util.JournalStructureXSDUpgradeColumnImpl;
035    import com.liferay.portal.upgrade.v4_3_0.util.JournalTemplatePKUpgradeColumnImpl;
036    import com.liferay.portal.upgrade.v4_3_0.util.JournalTemplateSmallImageIdUpgradeColumnImpl;
037    import com.liferay.portal.upgrade.v4_3_0.util.JournalTemplateTable;
038    import com.liferay.portal.upgrade.v4_3_0.util.JournalTemplateXSLUpgradeColumnImpl;
039    import com.liferay.portal.util.PropsUtil;
040    
041    import java.sql.Types;
042    
043    /**
044     * @author Brian Wing Shun Chan
045     */
046    public class UpgradeJournal extends UpgradeProcess {
047    
048            protected void doUpgrade() throws Exception {
049    
050                    // JournalArticle
051    
052                    UpgradeColumn upgradeCompanyIdColumn = new SwapUpgradeColumnImpl(
053                            "companyId", new Integer(Types.VARCHAR),
054                            AvailableMappersUtil.getCompanyIdMapper());
055    
056                    UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
057                            "groupId", AvailableMappersUtil.getGroupIdMapper());
058    
059                    UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
060                            "userId", new Integer(Types.VARCHAR),
061                            AvailableMappersUtil.getUserIdMapper());
062    
063                    UpgradeColumn upgradeApprovedByUserIdColumn = new SwapUpgradeColumnImpl(
064                            "approvedByUserId", new Integer(Types.VARCHAR),
065                            AvailableMappersUtil.getUserIdMapper());
066    
067                    JournalArticlePKUpgradeColumnImpl upgradeArticlePKColumn =
068                            new JournalArticlePKUpgradeColumnImpl(
069                                    upgradeCompanyIdColumn, upgradeGroupIdColumn);
070    
071                    UpgradeColumn upgradeArticleResourcePrimKeyColumn =
072                            new JournalArticleResourcePrimKeyUpgradeColumnImpl(
073                                    upgradeArticlePKColumn);
074    
075                    UpgradeColumn upgradeArticleIdColumn =
076                            new TempUpgradeColumnImpl("articleId");
077    
078                    UpgradeColumn upgradeVersionColumn =
079                            new TempUpgradeColumnImpl("version", new Integer(Types.DOUBLE));
080    
081                    UpgradeColumn upgradeStructureIdColumn =
082                            new TempUpgradeColumnImpl("structureId");
083    
084                    UpgradeColumn upgradeContentColumn =
085                            new JournalArticleContentUpgradeColumnImpl(
086                                    upgradeCompanyIdColumn, upgradeGroupIdColumn,
087                                    upgradeArticleIdColumn, upgradeVersionColumn,
088                                    upgradeStructureIdColumn,
089                                    AvailableMappersUtil.getImageIdMapper());
090    
091                    UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
092                            JournalArticleTable.TABLE_NAME, JournalArticleTable.TABLE_COLUMNS,
093                            upgradeCompanyIdColumn, upgradeGroupIdColumn, upgradeUserIdColumn,
094                            upgradeApprovedByUserIdColumn, upgradeArticlePKColumn,
095                            upgradeArticleResourcePrimKeyColumn, upgradeArticleIdColumn,
096                            upgradeVersionColumn, upgradeStructureIdColumn,
097                            upgradeContentColumn);
098    
099                    upgradeTable.setCreateSQL(JournalArticleTable.TABLE_SQL_CREATE);
100    
101                    upgradeTable.updateTable();
102    
103                    ValueMapper articleIdMapper = new DefaultPKMapper(
104                            upgradeArticlePKColumn.getValueMapper());
105    
106                    AvailableMappersUtil.setJournalArticleIdMapper(articleIdMapper);
107    
108                    // JournalStructure
109    
110                    PKUpgradeColumnImpl upgradeStructurePKColumn =
111                            new JournalStructurePKUpgradeColumnImpl(
112                                    upgradeCompanyIdColumn, upgradeGroupIdColumn);
113    
114                    UpgradeColumn upgradeXSDColumn =
115                            new JournalStructureXSDUpgradeColumnImpl();
116    
117                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
118                            JournalStructureTable.TABLE_NAME,
119                            JournalStructureTable.TABLE_COLUMNS, upgradeCompanyIdColumn,
120                            upgradeGroupIdColumn, upgradeStructurePKColumn, upgradeUserIdColumn,
121                            upgradeXSDColumn);
122    
123                    upgradeTable.setCreateSQL(JournalStructureTable.TABLE_SQL_CREATE);
124    
125                    upgradeTable.updateTable();
126    
127                    ValueMapper structureIdMapper = new DefaultPKMapper(
128                            upgradeStructurePKColumn.getValueMapper());
129    
130                    AvailableMappersUtil.setJournalStructureIdMapper(structureIdMapper);
131    
132                    // JournalTemplate
133    
134                    PKUpgradeColumnImpl upgradeTemplatePKColumn =
135                            new JournalTemplatePKUpgradeColumnImpl(
136                                    upgradeCompanyIdColumn, upgradeGroupIdColumn);
137    
138                    UpgradeColumn upgradeTemplateIdColumn =
139                            new TempUpgradeColumnImpl("templateId");
140    
141                    UpgradeColumn upgradeXSLColumn =
142                            new JournalTemplateXSLUpgradeColumnImpl(upgradeTemplateIdColumn);
143    
144                    UpgradeColumn upgradeSmallImageIdColumn =
145                            new JournalTemplateSmallImageIdUpgradeColumnImpl(
146                                    upgradeCompanyIdColumn, upgradeGroupIdColumn,
147                                    upgradeTemplatePKColumn,
148                                    AvailableMappersUtil.getImageIdMapper());
149    
150                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
151                            JournalTemplateTable.TABLE_NAME, JournalTemplateTable.TABLE_COLUMNS,
152                            upgradeCompanyIdColumn, upgradeGroupIdColumn,
153                            upgradeTemplatePKColumn, upgradeUserIdColumn,
154                            upgradeTemplateIdColumn, upgradeXSLColumn,
155                            upgradeSmallImageIdColumn);
156    
157                    upgradeTable.setCreateSQL(JournalTemplateTable.TABLE_SQL_CREATE);
158    
159                    upgradeTable.updateTable();
160    
161                    ValueMapper templateIdMapper = new DefaultPKMapper(
162                            upgradeTemplatePKColumn.getValueMapper());
163    
164                    AvailableMappersUtil.setJournalTemplateIdMapper(templateIdMapper);
165    
166                    // JournalContentSearch
167    
168                    PropsUtil.set(PropsKeys.JOURNAL_SYNC_CONTENT_SEARCH_ON_STARTUP, "true");
169            }
170    
171    }