Переглянути джерело

Updated build. Added manifest to jar to make it a runnable jar.

Updated dist targets to have separate src and bin builds.
Compressed the xerces-1.2.3.jar to make distributions and cvs
checkouts smaller.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194137 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-0_18_1
Kelly Campbell 23 роки тому
джерело
коміт
32c745130d

+ 3
- 3
build.bat Переглянути файл

@@ -5,9 +5,9 @@ echo ----------------

if "%JAVA_HOME%" == "" goto error

set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip;lib\ant.jar;lib\w3c.jar;lib\buildtools.jar;lib\xerces-1.2.3.jar;lib\xalan-2.0.0.jar:lib\xalanj1compat.jar:lib\bsf.jar:lib\jimi-1.0.jar
set ANT_HOME=.\lib
set LIBDIR=lib
set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip;%LIBDIR%\ant.jar;%LIBDIR%\w3c.jar;%LIBDIR%\buildtools.jar;%LIBDIR%\xerces-1.2.3.jar;%LIBDIR%\xalan-2.0.0.jar:%LIBDIR%\xalanj1compat.jar:%LIBDIR%\bsf.jar:%LIBDIR%\jimi-1.0.jar
set ANT_HOME=%LIBDIR%

echo Building with classpath %LOCALCLASSPATH%


+ 3
- 3
build.sh Переглянути файл

@@ -12,9 +12,9 @@ if [ "$JAVA_HOME" = "" ] ; then
echo "location of the Java Virtual Machine you want to use."
exit 1
fi
LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:./lib/ant.jar:./lib/w3c.jar:./lib/buildtools.jar:./lib/xerces-1.2.3.jar:./lib/xalan-2.0.0.jar:./lib/xalanj1compat.jar:./lib/bsf.jar:./lib/jimi-1.0.jar
ANT_HOME=./lib
LIBDIR=lib
LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:$LIBDIR/ant.jar:$LIBDIR/w3c.jar:$LIBDIR/buildtools.jar:$LIBDIR/xerces-1.2.3.jar:$LIBDIR/xalan-2.0.0.jar:$LIBDIR/xalanj1compat.jar:$LIBDIR/bsf.jar:$LIBDIR/jimi-1.0.jar
ANT_HOME=$LIBDIR

echo Building with classpath $CLASSPATH:$LOCALCLASSPATH
echo

+ 92
- 43
build.xml Переглянути файл

@@ -114,6 +114,44 @@ Sometimes ant gives out this warnings, but the build is finished without any pro

<project default="package" basedir=".">

<fileset dir="${basedir}" id="dist.bin">
<include name="conf/**"/>
<include name="docs/**"/>
<include name="hyph/**"/>
<include name="CHANGES"/>
<include name="LICENSE"/>
<include name="README"/>
<include name="STATUS"/>
<exclude name="src/**"/>
<exclude name="dist/**"/>
<exclude name="build/**"/>
<exclude name="lib/**"/>
</fileset>

<fileset dir="${basedir}" id="dist.bin.lib">
<include name="lib/xerces-1.2.3.jar"/>
<include name="lib/xalan-2.0.0.jar"/>
<include name="lib/xalanj1compat.jar"/>
<include name="lib/w3c.jar"/>
<include name="lib/jimi*"/>
</fileset>

<fileset dir="${basedir}" id="dist.src">
<exclude name="lib/classes/**"/>
<exclude name="lib/org/**"/>
<exclude name="lib/src/**"/>
<exclude name="build/**"/>
<include name="src/**"/>
<include name="conf/**"/>
<include name="docs/**"/>
<include name="lib/**"/>
<include name="CHANGES"/>
<include name="LICENSE"/>
<include name="README"/>
<include name="STATUS"/>
<include name="build*"/>
</fileset>

<!-- =================================================================== -->
<!-- Initialization target -->
<!-- =================================================================== -->
@@ -121,7 +159,7 @@ Sometimes ant gives out this warnings, but the build is finished without any pro
<tstamp/>
<property name="Name" value="Fop"/>
<property name="name" value="fop"/>
<property name="version" value="0.17.0"/>
<property name="version" value="0.18.0-DEV"/>
<property name="year" value="1999-2001"/>

<echo message="------------------- ${Name} ${version} [${year}] ----------------"/>
@@ -149,7 +187,9 @@ Sometimes ant gives out this warnings, but the build is finished without any pro
<property name="build.docs" value="./build/docs"/>
<property name="build.javadocs" value="./build/javadocs"/>

<property name="dist.dir" value="./dist"/>
<!-- <property name="dist.dir" value="./dist"/> -->
<property name="dist.bin.dir" value="./dist-bin"/>
<property name="dist.src.dir" value="./dist-src"/>

<property name="properties.dir" value="org/apache/fop/fo/properties"/>
<property name="fonts.dir" value="org/apache/fop/render/pdf/fonts"/>
@@ -214,7 +254,11 @@ Sometimes ant gives out this warnings, but the build is finished without any pro

<taskdef name="serHyph" classname="org.apache.fop.tools.anttasks.SerializeHyphPattern"/>
<taskdef name="xslt" classname="org.apache.fop.tools.anttasks.Xslt"/>
<taskdef name="manifest" classname="org.apache.fop.tools.anttasks.Manifest"/>

<property name="main.class" value="org.apache.fop.apps.Fop"/>
<property name="runtime.classpath" value="lib/xerces-1.2.3.jar lib/xalan-2.0.0.jar lib/xalanj1compat.jar lib/w3c.jar lib/jimi-1.0.jar"/>
<filter filtersfile="${build.src}/codegen/filter"/>

</target>
@@ -482,7 +526,12 @@ Sometimes ant gives out this warnings, but the build is finished without any pro
<!-- =================================================================== -->
<target name="package" depends="compile,hyphenation">
<echo message="Creating the jar file ${build.dir}/${name}.jar"/>
<jar jarfile="${build.dir}/${name}.jar"
<manifest file="${build.dir}/Manifest.txt" overwrite="yes"
mainclass="${main.class}"
classpath="${runtime.classpath}"
impltitle="${Name}" implversion="${version}"
implvendor="Apache Software Foundation (http://xml.apache.org/fop/)"/>
<jar jarfile="${build.dir}/${name}.jar" manifest="${build.dir}/Manifest.txt"
basedir="${build.dest}"
includes="org/**,conf/**,hyph/**"/>
</target>
@@ -503,23 +552,6 @@ Sometimes ant gives out this warnings, but the build is finished without any pro
<chmod file="${lib.dir}/bin/antRun" perm="ugo+rx" />
</target>

<!-- =================================================================== -->
<!-- Copying the documentation files -->
<!-- =================================================================== -->
<target name="docs" depends="prepare-docs">
<echo message="Copying doc files "/>
<copy todir="${build.docs}">
<fileset dir="${docs.dir}"/>
</copy>
<copy todir="${build.dir}/${lib.dir}">
<fileset dir="${lib.dir}"/>
</copy>
<copy file="build.xml" tofile="${build.dir}/build.xml" />
<copy file="${basedir}/README" tofile="${build.dir}/README" />
<copy file="${basedir}/STATUS" tofile="${build.dir}/STATUS" />
<copy file="${basedir}/LICENSE" tofile="${build.dir}/LICENSE" />
</target>

<!-- =================================================================== -->
<!-- Creates the API documentation -->
@@ -541,28 +573,42 @@ Sometimes ant gives out this warnings, but the build is finished without any pro
<!-- =================================================================== -->
<!-- Creates the distribution -->
<!-- =================================================================== -->
<target name="dist" depends="package, docs, javadocs">
<echo message="Building the distribution files (zip,tar)"/>
<mkdir dir="${dist.dir}"/>
<mkdir dir="${dist.dir}/conf"/>
<mkdir dir="${dist.dir}/hyph"/>
<copy file="${basedir}/build.sh" tofile="${dist.dir}/build.sh" />
<chmod file="${dist.dir}/build.sh" perm="ugo+rx" />
<copy file="${basedir}/build.bat" tofile="${dist.dir}/build.bat" />
<copy todir="${dist.dir}">
<fileset dir="${build.dir}" excludes="**/classes/**, **/${ignore_this}"/>
<target name="dist" depends="dist-src, dist-bin"/>

<target name="dist-bin" depends="package, javadocs">
<echo message="Building the binary distribution files (zip,tar)"/>
<mkdir dir="${dist.bin.dir}"/>
<copy todir="${dist.bin.dir}">
<fileset refid="dist.bin"/>
<fileset refid="dist.bin.lib"/>
</copy>
<copy todir="${dist.dir}/hyph">
<fileset dir="${hyph.dir}"/>
<copy todir="${dist.bin.dir}" file="build/fop.jar"/>
<zip zipfile="${Name}-${version}-bin.zip" basedir="${dist.bin.dir}" includes="**"/>
<tar tarfile="${Name}-${version}-bin.tar" basedir="${dist.bin.dir}" includes="**"/>
<gzip zipfile="${Name}-${version}-bin.tar.gz" src="${Name}-${version}-bin.tar" />
<delete file="${Name}-${version}-bin.tar"/>

</target>


<target name="dist-src" depends="package, javadocs">
<echo message="Building the source distribution files (zip,tar)"/>
<mkdir dir="${dist.src.dir}"/>
<copy todir="${dist.src.dir}">
<fileset refid="dist.src"/>
</copy>
<copy todir="${dist.dir}/conf">
<fileset dir="${conf.dir}"/>
<copy todir="${dist.src.dir}/javadocs">
<fileset dir="${build.javadocs}"/>
</copy>
<copy todir="${dist.src.dir}" file="build/fop.jar"/>
<chmod file="${dist.src.dir}/build.sh" perm="ugo+rx" />

<zip zipfile="${Name}-${version}-src.zip" basedir="${dist.src.dir}" includes="**"/>
<tar tarfile="${Name}-${version}-src.tar" basedir="${dist.src.dir}" includes="**"/>
<gzip zipfile="${Name}-${version}-src.tar.gz" src="${Name}-${version}-src.tar" />
<delete file="${Name}-${version}-src.tar"/>

<zip zipfile="${Name}-${version}.zip" basedir="${dist.dir}" includes="**"/>
<tar tarfile="${Name}-${version}.tar" basedir="${dist.dir}" includes="**"/>
<gzip zipfile="${Name}-${version}.tar.gz" src="${Name}-${version}.tar" />
<delete file="${Name}-${version}.tar"/>
</target>

<!-- =================================================================== -->
@@ -573,10 +619,13 @@ Sometimes ant gives out this warnings, but the build is finished without any pro
</target>

<target name="distclean" depends="clean">
<delete dir="${dist.dir}"/>
<delete file="${Name}-${version}.tar.gz"/>
<delete file="${Name}-${version}.tar"/>
<delete file="${Name}-${version}.zip"/>
<delete dir="${dist.src.dir}"/>
<delete dir="${dist.bin.dir}"/>
<delete>
<fileset dir="${basedir}" includes="${Name}-${version}*.tar.gz"/>
<fileset dir="${basedir}" includes="${Name}-${version}*.tar"/>
<fileset dir="${basedir}" includes="${Name}-${version}*.zip"/>
</delete>
</target>

</project>

+ 3
- 2
docs/bugtests/runtests.sh Переглянути файл

@@ -13,8 +13,9 @@ if [ "$JAVA_HOME" = "" ] ; then
exit 1
fi

LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:../../lib/ant.jar:../../lib/buildtools.jar:../../build/fop.jar:../../lib/w3c.jar
ANT_HOME=../../lib
LIBDIR=../../lib/
LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:$LIBDIR/ant.jar:$LIBDIR/w3c.jar:$LIBDIR/buildtools.jar:$LIBDIR/xerces-1.2.3.jar:$LIBDIR/xalan-2.0.0.jar:$LIBDIR/xalanj1compat.jar:$LIBDIR/bsf.jar:$LIBDIR/jimi-1.0.jar
ANT_HOME=$LIBDIR

echo Building with classpath $CLASSPATH:$LOCALCLASSPATH
echo

+ 3
- 2
docs/examples/runtests.bat Переглянути файл

@@ -6,8 +6,9 @@ echo ----------------
if "%JAVA_HOME%" == "" goto error


set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip;..\..\lib\ant.jar;..\..\lib\buildtools.jar;..\..\lib\w3c.jar;..\..\build\fop.jar
set ANT_HOME=..\..\lib
set LIBDIR=..\..\lib
set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip;%LIBDIR%\ant.jar;%LIBDIR%\w3c.jar;%LIBDIR%\buildtools.jar;%LIBDIR%\xerces-1.2.3.jar;%LIBDIR%\xalan-2.0.0.jar:%LIBDIR%\xalanj1compat.jar:%LIBDIR%\bsf.jar:%LIBDIR%\jimi-1.0.jar;%LIBDIR%\..\build\fop.jar
set ANT_HOME=%LIBDIR%

echo Starting Tests ...


+ 3
- 3
docs/examples/runtests.sh Переглянути файл

@@ -12,9 +12,9 @@ if [ "$JAVA_HOME" = "" ] ; then
echo "location of the Java Virtual Machine you want to use."
exit 1
fi
LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:../../lib/ant.jar:../../lib/buildtools.jar:../../build/fop.jar:../../lib/w3c.jar
ANT_HOME=../../lib
LIBDIR=../../lib
LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:$LIBDIR/ant.jar:$LIBDIR/w3c.jar:$LIBDIR/buildtools.jar:$LIBDIR/xerces-1.2.3.jar:$LIBDIR/xalan-2.0.0.jar:$LIBDIR/xalanj1compat.jar:$LIBDIR/bsf.jar:$LIBDIR/jimi-1.0.jar:$LIBDIR/../build/fop.jar
ANT_HOME=$LIBDIR

echo Building with classpath $CLASSPATH:$LOCALCLASSPATH
echo

+ 4
- 3
docs/examples/svg/makedoc.bat Переглянути файл

@@ -4,9 +4,10 @@ echo Building Fop documentation (pdf)
echo ----------------

if "%JAVA_HOME%" == "" goto error

set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip;..\..\..\lib\ant.jar;..\..\..\lib\xml.jar;..\..\..\lib\buildtools.jar;..\..\..\build\fop.jar;..\..\..\lib\w3c.jar
set ANT_HOME=..\..\..\lib
set LIBDIR=..\..\..\lib
set LIBDIR=lib
set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip;%LIBDIR%\ant.jar;%LIBDIR%\w3c.jar;%LIBDIR%\buildtools.jar;%LIBDIR%\xerces-1.2.3.jar;%LIBDIR%\xalan-2.0.0.jar:%LIBDIR%\xalanj1compat.jar:%LIBDIR%\bsf.jar:%LIBDIR%\jimi-1.0.jar;%LIBDIR%\..\build\fop.jar
set ANT_HOME=%LIBDIR%


%JAVA_HOME%\bin\java.exe -Dant.home=%ANT_HOME% -classpath %LOCALCLASSPATH%;%CLASSPATH% org.apache.tools.ant.Main %1 %2 %3 %4 %5

+ 3
- 2
docs/examples/svg/makedoc.sh Переглянути файл

@@ -13,8 +13,9 @@ if [ "$JAVA_HOME" = "" ] ; then
exit 1
fi

LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:../../../lib/ant.jar:../../../lib/w3c.jar:../../../lib/buildtools.jar:../../../build/fop.jar
ANT_HOME=../../../lib
LIBDIR=../../../lib/
LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:$LIBDIR/ant.jar:$LIBDIR/w3c.jar:$LIBDIR/buildtools.jar:$LIBDIR/xerces-1.2.3.jar:$LIBDIR/xalan-2.0.0.jar:$LIBDIR/xalanj1compat.jar:$LIBDIR/bsf.jar:$LIBDIR/jimi-1.0.jar:$LIBDIR/../build/fop.jar
ANT_HOME=$LIBDIR

echo Building with classpath $CLASSPATH:$LOCALCLASSPATH
echo

+ 3
- 2
docs/xml-docs/makedoc.bat Переглянути файл

@@ -6,8 +6,9 @@ echo ----------------

if "%JAVA_HOME%" == "" goto error

set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip;..\..\lib\ant.jar;..\..\lib\w3c.jar;..\..\lib\buildtools.jar;..\..\build\fop.jar;..\..\lib\stylebook.jar
set ANT_HOME=.\lib
set LIBDIR=..\..\lib
set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip;%LIBDIR%\ant.jar;%LIBDIR%\w3c.jar;%LIBDIR%\buildtools.jar;%LIBDIR%\xerces-1.2.3.jar;%LIBDIR%\xalan-2.0.0.jar:%LIBDIR%\xalanj1compat.jar:%LIBDIR%\bsf.jar:%LIBDIR%\jimi-1.0.jar;%LIBDIR%\stylebook.jar;%LIBDIR%\..\build\fop.jar
set ANT_HOME=%LIBDIR%


%JAVA_HOME%\bin\java.exe -Dant.home=%ANT_HOME% -classpath %LOCALCLASSPATH%;%CLASSPATH% org.apache.tools.ant.Main %1 %2 %3 %4 %5

+ 3
- 2
docs/xml-docs/makedoc.sh Переглянути файл

@@ -13,8 +13,9 @@ if [ "$JAVA_HOME" = "" ] ; then
exit 1
fi

LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:../../lib/ant.jar:../../lib/w3c.jar:../../lib/buildtools.jar:../../build/fop.jar:../../lib/stylebook.jar
ANT_HOME=../../lib
LIBDIR=../../lib
LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip:$LIBDIR/ant.jar:$LIBDIR/w3c.jar:$LIBDIR/buildtools.jar:$LIBDIR/xerces-1.2.3.jar:$LIBDIR/xalan-2.0.0.jar:$LIBDIR/xalanj1compat.jar:$LIBDIR/bsf.jar:$LIBDIR/jimi-1.0.jar:$LIBDIR/stylebook.jar:$LIBDIR/../build/fop.jar
ANT_HOME=$LIBDIR

echo Building with classpath $CLASSPATH:$LOCALCLASSPATH
echo

BIN
lib/buildtools.jar Переглянути файл


BIN
lib/xerces-1.2.3.jar Переглянути файл


+ 239
- 0
src/org/apache/fop/tools/anttasks/Manifest.java Переглянути файл

@@ -0,0 +1,239 @@
/*
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources."
*/

package org.apache.fop.tools.anttasks;

import org.apache.tools.ant.Task;
import org.apache.tools.ant.BuildException;

import java.io.*;
import java.text.SimpleDateFormat;
import java.net.InetAddress;
import java.util.Date;
import java.util.Properties;



/**
* Creates a manifest file for packing into a jar.
* <P>
* Attributes are as follows:
* <dl>
* <dt>file</dt> <dd>the manifest file to write out to (required)</dd>
* <dt>overwrite</dt> <dd>if set to yes or true, overwrite the given
* manifest file. Default is no</dd>
* <dt>version</dt> <dd>manifest version. Defaults to "1.0"</dd>
* <dt>spectitle</dt> <dd>the specification title</dd>
* <dt>specversion</dt> <dd>the specification version</dd>
* <dt>specvendor</dt> <dd>the specification vendor</dd>
* <dt>impltitle</dt> <dd>the implementation title</dd>
* <dt>implversion</dt> <dd>the implementation version.</dd>
* <dt>implvendor</dt> <dd>the implementation vendor</dd>
* <dt>mainclass</dt> <dd>the class to run when java -jar is invoked</dd>
* <dt>classpath</dt> <dd>the classpath to use when java -jar is invoked</dd>
* <dt>createdby</dt> <dd>the string to set the Created-By field to</dd>
* <dt>buildid</dt> <dd>A build identifier. Defaults to a build identifier
* containing <tt>date + " ("+username+"@"+hostname+" ["+os+" "+version+" "+arch+"]</tt> </dd>
* </dl>
*
* @author Kelly A. Campbell
*/

public class Manifest extends Task
{
public static final String MANIFEST_VERSION = "Manifest-Version: ";
public static final String CREATED_BY = "Created-By: ";
public static final String REQUIRED_VERSION = "Required-Version: ";
public static final String SPECIFICATION_TITLE = "Specification-Title: ";
public static final String SPECIFICATION_VERSION = "Specification-Version: ";
public static final String SPECIFICATION_VENDOR = "Specification-Vendor: ";
public static final String IMPL_TITLE = "Implementation-Title: ";
public static final String IMPL_VERSION = "Implementation-Version: ";
public static final String IMPL_VENDOR = "Implementation-Vendor: ";
public static final String BUILD_ID = "Build-ID: ";
public static final String MAIN_CLASS = "Main-Class: ";
public static final String CLASS_PATH = "Class-Path: ";

private String _manifestVersion = "1.0";
private String _spectitle;
private String _specvers;
private String _specvend;
private String _impltitle;
private String _implvers;
private String _implvend;
private String _mainclass;
private String _classpath;
private String _createdby;
private String _buildid;
private String _manifestFilename;
private Boolean _overwrite = Boolean.FALSE;
public void setFile(String s)
{
_manifestFilename = s;
}
public void setOverwrite(Boolean b)
{
_overwrite = b;
}
public void setSpectitle(String s)
{
_spectitle = s;
}
public void setSpecversion(String s)
{
_specvers = s;
}
public void setSpecvendor(String s)
{
_specvend = s;
}
public void setImpltitle(String s)
{
_impltitle = s;
}
public void setImplversion(String s)
{
_implvers = s;
}
public void setImplvendor(String s)
{
_implvend = s;
}
public void setMainclass(String s)
{
_mainclass = s;
}
public void setClasspath(String s)
{
_classpath = s;
}
public void setCreatedby(String s)
{
_createdby = s;
}
public void setBuildid(String s)
{
_buildid = s;
}
/**
* Main task method which runs this task and creates the manifest file.
* @exception BuildException if one of the required attributes isn't set
*/
public void execute ()
throws BuildException
{
// System.out.println("Executing manifest task");
PrintWriter out;
try {
if (_manifestFilename != null) {
// open the file for writing
File f = new File(_manifestFilename);
if (f.exists()) {
if (_overwrite.booleanValue()) {
f.delete();
}
else {
throw new BuildException("Will not overwrite existing file: "+_manifestFilename+". Use overwrite='yes' if you wish to overwrite the file.");
}
}
System.out.println("creating "+f);
f.createNewFile();
out = new PrintWriter(new FileOutputStream(f));
}
else {
throw new BuildException("Manifest task requires a 'file' attribute");
}
}
catch (IOException ex) {
throw new BuildException(ex);
}
// setup the implementation versionn (buildID)
if (_buildid == null || _buildid.trim().equals("")) {
_buildid = createBuildID();
}
if (_createdby == null || _createdby.trim().equals("")) {
_createdby = getCreator();
}
print(out, MANIFEST_VERSION, _manifestVersion);
print(out, CREATED_BY, _createdby);
print(out, SPECIFICATION_TITLE, _spectitle);
print(out, SPECIFICATION_VERSION, _specvers);
print(out, SPECIFICATION_VENDOR, _specvend);
print(out, IMPL_TITLE, _impltitle);
print(out, IMPL_VERSION, _implvers);
print(out, IMPL_VENDOR, _implvend);
print(out, BUILD_ID, _buildid);
print(out, MAIN_CLASS, _mainclass);
print(out, CLASS_PATH, _classpath);

out.flush();
out.close();
}
protected void print(PrintWriter out, String header, String value)
{
if (value != null && !value.trim().equals("")) {
out.println(header+value);
// System.out.println("manifest: "+header+value);
}
}
private static String createBuildID()
{
Date d = new Date();
SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd-HHmmss-z");
String date = f.format(d);
String hostname, username, os, version, arch;
try {
hostname = InetAddress.getLocalHost().getHostName();
}
catch (Exception ex) {
hostname = "unknown";
}
username = System.getProperty("user.name");
os = System.getProperty("os.name");
version = System.getProperty("os.version");
arch = System.getProperty("os.arch");
String buildid = date + " ("+username+"@"+hostname+" ["+os+" "+version+" "+arch+"])";
return buildid;
}

private static String getCreator()
{
try {
Properties props = new Properties();
InputStream in = org.apache.tools.ant.Main.class.getResourceAsStream("/org/apache/tools/ant/version.txt");
if (in != null) {
props.load(in);
in.close();
return "Ant "+props.getProperty("VERSION");
}
else {
return null;
}
}
catch (IOException ex) {
return null;
}
}
}

Завантаження…
Відмінити
Зберегти