/** * 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.content.targeting.tools; import com.liferay.portal.kernel.dao.db.DB; import com.liferay.portal.kernel.dao.db.DBFactoryUtil; import com.liferay.portal.kernel.io.unsync.UnsyncBufferedReader; import com.liferay.portal.kernel.util.FileUtil; import com.liferay.portal.kernel.util.SortedProperties; import com.liferay.portal.kernel.util.StringBundler; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.tools.samplesqlbuilder.DataFactory; import com.liferay.portal.tools.samplesqlbuilder.SampleSQLBuilder; import com.liferay.portal.util.InitUtil; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; import java.util.Properties; /** * @author Eudaldo Alonso */ public class CTSampleSQLBuilder { public static void main(String[] args) { InitUtil.initWithSpring(); Reader reader = null; try { Properties properties = new SortedProperties(); reader = new FileReader(args[0]); properties.load(reader); DataFactory dataFactory = new CTDataFactory(properties); new CTSampleSQLBuilder(properties, dataFactory); } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } } } public CTSampleSQLBuilder(Properties properties, DataFactory dataFactory) throws Exception { new SampleSQLBuilder(properties, dataFactory); String portalOutputDir = properties.getProperty( "sample.sql.output.dir"); File output = new File(portalOutputDir, "plugin"); FileUtil.deltree(output); output.mkdirs(); properties.put("sample.sql.output.dir", output.getPath()); properties.put("sample.sql.output.csv.file.names", "ct,layout"); properties.put( "sample.sql.script", "com/liferay/content/targeting/tools/dependencies/ct.ftl"); new SampleSQLBuilder(properties, dataFactory); String dbType = properties.getProperty("sample.sql.db.type"); String sqlDir = properties.getProperty("sql.dir"); buildPluginSqls(dbType, sqlDir, output); } protected void buildPluginSqls(String dbType, String sqlDir, File outputDir) throws Exception { DB db = DBFactoryUtil.getDB(dbType); File dir = new File(sqlDir); for (File sqlFile : dir.listFiles()) { String sqlFileName = sqlFile.getName(); if (!sqlFileName.endsWith(_SQL_FILE_SUFFIX)) { continue; } StringBundler sb = new StringBundler(4); int index = sqlFileName.indexOf(_SQL_FILE_SUFFIX); sb.append(sqlFileName.substring(0, index)); sb.append(StringPool.MINUS); sb.append(dbType); sb.append(_SQL_FILE_SUFFIX); File newSqlFile = new File(outputDir, sb.toString()); String line = null; Writer writer = null; UnsyncBufferedReader unsyncBufferedReader = null; try { writer = new FileWriter(newSqlFile); Reader reader = new FileReader(sqlFile); unsyncBufferedReader = new UnsyncBufferedReader(reader); while ((line = unsyncBufferedReader.readLine()) != null) { line = line.trim(); if (line.length() == 0) { continue; } line = db.buildSQL(line); writer.write(line); } } finally { if (unsyncBufferedReader != null) { unsyncBufferedReader.close(); } if (writer != null) { writer.close(); } } } } private static final String _SQL_FILE_SUFFIX = ".sql"; }