/** *****************************************************************************
* Copyright (c) 2009 Thales Corporate Services SAS *
* Author : Gregory Boissinot *
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy *
* of this software and associated documentation files (the "Software"), to deal*
* in the Software without restriction, including without limitation the rights *
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell *
* copies of the Software, and to permit persons to whom the Software is *
* furnished to do so, subject to the following conditions: *
* *
* The above copyright notice and this permission notice shall be included in *
* all copies or substantial portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,*
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN *
* THE SOFTWARE. *
****************************************************************************** */
package com.thalesgroup.gradle.pde.tasks;
import groovy.util.AntBuilder;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import com.thalesgroup.gradle.pde.BuildType;
import com.thalesgroup.gradle.pde.FeaturePdeConvention;
import com.thalesgroup.gradle.pde.PdeConvention;
public class AntPdeResources {
public void execute(PdeConvention conv, AntBuilder ant) throws IOException {
String buildDirectory = conv.getBuildDirectory();
File fBuilderDir = new File(conv.getBuilderDir());
fBuilderDir.mkdirs();
if (conv.getType() == BuildType.feature) {
String[] features = ((FeaturePdeConvention) conv).getFeatures();
new GenerateAllElementsAction().generate(conv.getBuilderDir(), features);
}
// build.properties
InputStream buildPropertiesIs;
if (conv.getBuildPropertiesFile() != null) {
// use the user's file
buildPropertiesIs = new FileInputStream(conv.getBuildPropertiesFile());
} else {
// use the default embedded file
buildPropertiesIs = this.getClass().getResourceAsStream("/build.properties");
}
AntUtil.copyFile(buildPropertiesIs, fBuilderDir, "build.properties");
buildPropertiesIs.close();
// Init target platform
if (conv.getUsePreviousLinks()) {
try {
new CleanTargetPlatformAction(ant, conv.getBaseLocation(), buildDirectory, conv
.getData()).clean();
} catch (Exception e) {
System.out.println("WARNING! Target Platform could not be initialized. "
+ e.toString());
}
}
// customTargets.xml
InputStream customTargetsIs = this.getClass().getResourceAsStream(
"/customTargets.xml");
AntUtil.copyFile(customTargetsIs, fBuilderDir, "customTargets.xml");
customTargetsIs.close();
}
}