Blame | Last modification | View Log | RSS feed
package com.erggroup.mass.ant;import java.io.*;import org.apache.tools.ant.*;import org.apache.tools.ant.taskdefs.Echo;import org.apache.tools.ant.taskdefs.Property;public class PackageRef extends Task{public PackageRef(){includes = "**/*";runtime = false;verbose = true;}public String getElementType(){return "packageref";}public void execute()throws BuildException{if(packageName == null || version == null)throw new BuildException("Both 'package' and 'version' must be specified for <packageref>");if(name == null)name = "pkg." + packageName;if(verbose)doEcho("Declaring package reference '" + name + "' to '" + packageName + "' version " + version + "");Property property = new Property();property.setProject(getProject());property.setTaskName(getTaskName());property.setName("env");property.setEnvironment("env");property.setValue("");property.perform();String s = getProject().replaceProperties("${env.JATS_HOME}");if("${env.JATS_HOME}".equals(s)){throw new BuildException("<" + getTaskName() + "> JATS_HOME environment variable not set");} else{File file = new File(s, packageName);File file1 = new File(file, version);validatePackageDescriptionFile(file1);Property property1 = new Property();property1.setProject(getProject());property1.setTaskName(getTaskName());property1.setName(name);property1.setLocation(file1);property1.execute();return;}}private void doEcho(String s){Echo echo = new Echo();echo.setTaskName(getElementType());echo.setProject(getProject());echo.setMessage(s);echo.execute();}private void validatePackageDescriptionFile(File file){File file1 = new File(file, "descpkg");if(!file1.exists() || !file1.isFile())throw new BuildException("The 'descpkg' file for package '" + name + "' version '" + version + "' does not exist");try{FileReader filereader = new FileReader(file1);BufferedReader bufferedreader = new BufferedReader(filereader);try{String s = bufferedreader.readLine();String s1 = s.trim();if(s == null)throw new BuildException("The 'descpkg' file for package '" + packageName + "' version '" + version + "' does contain the correct version info.");}catch(IOException ioexception){throw new BuildException("The 'descpkg' file for package '" + name + "' version '" + version + "' could not be read.");}}catch(FileNotFoundException filenotfoundexception){throw new BuildException("The 'descpkg' file for package '" + name + "' version '" + version + "' does not exist");}}public void setName(String s){name = s;}public void setPackage(String s){packageName = s;}public void setVersion(String s){version = s;}public void setRuntime(String s){runtime = "true".equalsIgnoreCase(s);}public String getName(){return name;}public String getPackage(){return packageName;}public String getVersion(){return version;}public boolean isRuntime(){return runtime;}public void setVerbose(String s){verbose = !"false".equalsIgnoreCase(s);}public boolean isVerbose(){return verbose;}public static final String DPKG_HOME_PROPERTY = "${env.JATS_HOME}";private String name;private String packageName;private String version;private String includes;private String excludes;private boolean runtime;private boolean verbose;}