/*******************************************************************************
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
*******************************************************************************/
package com.liferay.ide.project.ui.upgrade.animated;
import com.liferay.ide.core.util.CoreUtil;
import com.liferay.ide.project.core.ProjectCore;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;
import org.eclipse.core.runtime.IPath;
/**
* @author Andy Wu
*/
public class UpgradeSettingsUtil
{
private static File codeUpgradeFile;
private static Properties codeUpgradeProperties;
public static String getProperty( String key )
{
return codeUpgradeProperties.getProperty( key );
}
public static String getProperty( String key, String defaultValue )
{
return codeUpgradeProperties.getProperty( key, defaultValue );
}
public static void init( LiferayUpgradeDataModel dataModel )
{
final IPath stateLocation = ProjectCore.getDefault().getStateLocation();
File stateDir = stateLocation.toFile();
codeUpgradeFile = new File( stateDir, "liferay-code-upgrade.properties" );
if( !codeUpgradeFile.exists() )
{
try
{
codeUpgradeFile.createNewFile();
}
catch( IOException e1 )
{
}
}
if( codeUpgradeProperties == null )
{
codeUpgradeProperties = new Properties();
try(InputStream in = new FileInputStream( codeUpgradeFile ))
{
codeUpgradeProperties.load( in );
}
catch( Exception e )
{
}
}
retrieveProperties( dataModel );
}
public static void resetStoreProperties()
{
if( codeUpgradeProperties != null )
{
codeUpgradeProperties.clear();
storeProperty( null, null );
}
}
public static void retrieveProperties( LiferayUpgradeDataModel dataModel )
{
String liferay70ServerName = UpgradeSettingsUtil.getProperty( "Liferay70ServerName" );
String liferay62ServerLocation = UpgradeSettingsUtil.getProperty( "Liferay62ServerLocation" );
if( !CoreUtil.isNullOrEmpty( liferay62ServerLocation ) )
{
dataModel.setLiferay62ServerLocation( liferay62ServerLocation );
}
if( !CoreUtil.isNullOrEmpty( liferay70ServerName ) )
{
dataModel.setLiferay70ServerName( liferay70ServerName );
}
dataModel.setHasPortlet( Boolean.parseBoolean( getProperty( "HasPortlet", "false" ) ) );
dataModel.setHasServiceBuilder( Boolean.parseBoolean( getProperty( "HasServiceBuilder", "false" ) ) );
dataModel.setHasHook( Boolean.parseBoolean( getProperty( "HasHook", "false" ) ) );
dataModel.setHasLayout( Boolean.parseBoolean( getProperty( "HasLayout", "false" ) ) );
dataModel.setHasTheme( Boolean.parseBoolean( getProperty( "HasTheme", "false" ) ) );
dataModel.setHasExt( Boolean.parseBoolean( getProperty( "HasExt", "false" ) ) );
dataModel.setHasWeb( Boolean.parseBoolean( getProperty( "HasWeb", "false" ) ) );
dataModel.setConvertLiferayWorkspace( Boolean.parseBoolean( getProperty( "ConvertLiferayWorkspace", "false" ) ) );
dataModel.setImportFinished( Boolean.parseBoolean( getProperty( "ImportFinished", "false" ) ) );
}
public static void storeProperty( Object key, Object value )
{
if( key != null )
{
codeUpgradeProperties.setProperty( String.valueOf( key ), String.valueOf( value ) );
}
try(OutputStream out = new FileOutputStream( codeUpgradeFile ))
{
codeUpgradeProperties.store( out, "" );
}
catch( Exception e )
{
}
}
}