Skip to content

Commit 7e2ddc0

Browse files
author
Gintas Grigelionis
committed
modernization :)
- added Java generics; - simplified dependencies in Ant builds (tree instead of net); - added Ivy dependency management; - added separate packaging for Ant task (without commons-cli); - updated to commons-cli 1.2 and JUnit4; - changed attributes and CLI parameters to be consistent internally and with Ant guidelines; - added regex support and property setting to Ant task; - output builder reverts to stdout instead of crashing; - output attribute no longer mandatory for Ant task; - simplified HTML formatting (why does everybody love <table/>?); - added missing javadoc;
1 parent a113cc4 commit 7e2ddc0

27 files changed

+1165
-772
lines changed

.classpath

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
<classpathentry kind="src" path="src/main"/>
44
<classpathentry kind="src" path="src/test"/>
55
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
6-
<classpathentry kind="lib" path="lib/commons-cli-1.0.jar"/>
7-
<classpathentry kind="lib" path="lib/junit.jar"/>
8-
<classpathentry kind="lib" path="lib/ant.jar"/>
6+
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=zipdiff&amp;ivyXmlPath=ivy.xml&amp;confs=*"/>
97
<classpathentry kind="output" path="bin"/>
108
</classpath>

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ velocity.log
44
build
55
bin
66
junit-reports
7+
lib

.project

+18-17
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
1-
<?xml version="1.0" encoding="UTF-8"?>
2-
<projectDescription>
3-
<name>zipdiff</name>
4-
<comment></comment>
5-
<projects>
6-
</projects>
7-
<buildSpec>
8-
<buildCommand>
9-
<name>org.eclipse.jdt.core.javabuilder</name>
10-
<arguments>
11-
</arguments>
12-
</buildCommand>
13-
</buildSpec>
14-
<natures>
15-
<nature>org.eclipse.jdt.core.javanature</nature>
16-
</natures>
17-
</projectDescription>
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>zipdiff</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
</buildSpec>
14+
<natures>
15+
<nature>org.eclipse.jdt.core.javanature</nature>
16+
<nature>org.apache.ivyde.eclipse.ivynature</nature>
17+
</natures>
18+
</projectDescription>

build.xml

+122-94
Original file line numberDiff line numberDiff line change
@@ -5,145 +5,173 @@
55
<!-- For details, see http://ant.apache.org/ -->
66
<!-- ###################################################### -->
77

8-
<project name="zipdiffProject" default="help" basedir=".">
9-
<property file="${user.home}/build.properties" />
8+
<project name="zipdiff" default="help" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
9+
<property file="${user.home}/build.properties"/>
1010
<property name="src.dir" value="${basedir}/src"/>
1111
<property name="java.src.dir" value="${src.dir}/main"/>
1212
<property name="test.src.dir" value="${src.dir}/test"/>
1313
<property name="lib.dir" value="${basedir}/lib"/>
14-
<property name="metadata.dir" value="${src.dir}/metadata" />
14+
<property name="metadata.dir" value="${src.dir}/metadata"/>
1515
<property name="build.dir" value="${basedir}/build"/>
1616
<property name="javadoc.build.dir" value="${build.dir}/doc/api"/>
1717
<property name="classes.dir" value="${build.dir}/classes"/>
18-
<property name="distrib.name" value="zipdiff-0.4"/>
19-
<property name="distrib.jar.filename" value="zipdiff.jar"/>
20-
<property name="junit.jar" value="${basedir}/lib/junit.jar"/>
2118
<property name="junit.reports.dir" value="${basedir}/junit-reports"/>
2219

20+
<property name="name" value="zipdiff"/>
21+
<property name="major" value="0"/>
22+
<property name="minor" value="5"/>
23+
<property name="distrib.name" value="${name}-${major}.${minor}"/>
24+
<property name="distrib.jar.filename" value="zipdiff.jar"/>
25+
<property name="distrib.ant.jar.filename" value="zipdiff-ant.jar"/>
26+
27+
<!-- Ivy -->
28+
<property name="central.repo" value="http://repo1.maven.org/maven2"/>
29+
<property name="ivy.version" value="2.3.0"/>
30+
<property name="ivy.dir" value="${user.home}/.ivy2/cache/org.apache.ivy/jars"/>
31+
<property name="ivy.jar.name" value="ivy-${ivy.version}.jar"/>
32+
33+
<mkdir dir="${ivy.dir}"/>
34+
<get usetimestamp="true" src="https://repository.apache.org/content/repositories/releases/org/apache/ivy/ivy/${ivy.version}/${ivy.jar.name}"
35+
skipexisting="true"
36+
dest="${ivy.dir}/${ivy.jar.name}"/>
37+
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.dir}/${ivy.jar.name}"/>
38+
39+
<target name="init">
40+
<ivy:settings file="${basedir}/ivy.settings.xml"/>
41+
</target>
42+
43+
<target name="resolve" depends="prepare">
44+
<ivy:retrieve pattern="${lib.dir}/[conf]/[artifact].[ext]"
45+
conf="core"
46+
sync="true"/>
47+
</target>
48+
2349
<path id="project.class.path">
24-
<pathelement location="lib/commons-cli-1.0.jar" />
50+
<fileset dir="${lib.dir}/core" includes="*.jar"/>
2551
</path>
26-
27-
<!-- ###################################################### -->
28-
<!-- target definitions -->
29-
<!-- ###################################################### -->
52+
53+
<!-- ###################################################### -->
54+
<!-- target definitions -->
55+
<!-- ###################################################### -->
3056

3157
<target name="help">
32-
<echo message="ant -projecthelp will display all targets" />
58+
<echo message="ant -projecthelp will display all targets"/>
3359
</target>
34-
35-
<target name="all" depends="init, build, docs, distrib"/>
3660

37-
<target name="init">
38-
<mkdir dir="${build.dir}" />
39-
<mkdir dir="${javadoc.build.dir}" />
40-
<mkdir dir="${classes.dir}" />
41-
<mkdir dir="${junit.reports.dir}" />
61+
<target name="all" depends="distrib"/>
62+
63+
<target name="prepare" depends="init">
64+
<mkdir dir="${build.dir}"/>
65+
<mkdir dir="${javadoc.build.dir}"/>
66+
<mkdir dir="${classes.dir}"/>
67+
<mkdir dir="${junit.reports.dir}"/>
4268
</target>
4369

4470
<target name="clean">
45-
<delete dir="${classes.dir}" />
46-
<delete dir="${build.dir}" />
71+
<delete dir="${classes.dir}"/>
72+
<delete dir="${build.dir}"/>
4773
</target>
4874

49-
<target name="javadocs" depends="init" >
75+
<target name="javadocs" depends="resolve">
5076
<javadoc packagenames="zipdiff.*"
51-
sourcepath="${java.src.dir}"
52-
defaultexcludes="yes"
53-
destdir="${javadoc.build.dir}"
54-
author="true"
55-
version="true"
56-
use="true"
57-
windowtitle="zipdiff" />
77+
sourcepath="${java.src.dir}"
78+
defaultexcludes="yes"
79+
destdir="${javadoc.build.dir}"
80+
author="true"
81+
version="true"
82+
use="true"
83+
classpathref="project.class.path"
84+
windowtitle="zipdiff"/>
5885
</target>
59-
60-
<target name="docs" depends="init, javadocs"/>
6186

62-
<target name="project.jarfile" depends="init, build">
87+
<target name="docs" depends="javadocs"/>
88+
89+
<target name="project.jarfile" depends="build">
6390
<jar destfile="${build.dir}/${distrib.jar.filename}"
64-
manifest="${metadata.dir}/JAR-manifest.txt"
65-
compress="true">
91+
manifest="${metadata.dir}/JAR-manifest.txt"
92+
compress="true">
6693
<fileset dir="${classes.dir}"
67-
includes="zipdiff/**/*.class" />
94+
includes="zipdiff/**/*.class"/>
6895
</jar>
6996
</target>
7097

71-
<target name="build" depends="init">
72-
<javac deprecation="on"
73-
destdir="${classes.dir}"
74-
includeAntRuntime="yes"
75-
classpathref="project.class.path"
76-
debug="on">
77-
<src path="${java.src.dir}" />
98+
<target name="ant.jarfile" depends="build">
99+
<jar destfile="${build.dir}/${distrib.ant.jar.filename}"
100+
manifest="${metadata.dir}/Ant-JAR-manifest.txt"
101+
compress="true">
102+
<fileset dir="${classes.dir}">
103+
<include name="zipdiff/**/*.class"/>
104+
<exclude name="zipdiff/**/Main.class"/>
105+
</fileset>
106+
</jar>
107+
</target>
108+
109+
<target name="build" depends="resolve">
110+
<javac deprecation="on"
111+
destdir="${classes.dir}"
112+
includeAntRuntime="yes"
113+
classpathref="project.class.path"
114+
source="1.5"
115+
target="1.5"
116+
debug="on">
117+
<src path="${java.src.dir}"/>
78118
</javac>
79119
</target>
80-
81-
<target name="buildTest" depends="init, build">
82-
<javac deprecation="on"
83-
destdir="${classes.dir}"
84-
includeAntRuntime="yes"
85-
classpathref="project.class.path"
86-
debug="on">
87-
<src path="${test.src.dir}" />
120+
121+
<target name="buildTest" depends="build">
122+
<javac deprecation="on"
123+
destdir="${classes.dir}"
124+
includeAntRuntime="yes"
125+
classpathref="project.class.path"
126+
debug="on">
127+
<src path="${test.src.dir}"/>
88128
</javac>
89129
</target>
90-
91-
<target name="distrib-archive" depends="init, project.jarfile, copylibraries, docs">
92-
<delete file="${build.dir}/${distrib.name}.zip" />
130+
131+
<target name="distrib" depends="ant.jarfile, project.jarfile, copylibraries, docs">
132+
<delete file="${build.dir}/${distrib.name}.zip"/>
93133
<zip destfile="${build.dir}/${distrib.name}.zip">
94-
<zipfileset dir="${build.dir}" prefix="${distrib.name}/build">
95-
<include name="*.jar" />
96-
<exclude name="ant*.jar" />
97-
<exclude name="junit*.jar" />
98-
</zipfileset>
99134
<zipfileset dir="${src.dir}" prefix="${distrib.name}/src">
100-
<include name="**/*.java" />
101-
<include name="**/*.html" />
102-
<include name="**/*.txt" />
103-
<include name="**/*.xml" />
104-
<include name="**/*.properties" />
135+
<include name="**/*.java"/>
136+
<include name="**/*.html"/>
137+
<include name="**/*.txt"/>
138+
<include name="**/*.xml"/>
139+
<include name="**/*.properties"/>
105140
</zipfileset>
106141
<zipfileset dir="${basedir}" prefix="${distrib.name}">
107-
<include name="build.xml" />
108-
</zipfileset>
109-
<zipfileset dir="${basedir}" prefix="${distrib.name}">
110-
<include name="readme.txt" />
111-
<include name="*LICENSE*" />
112-
<include name="NOTICE.txt" />
113-
</zipfileset>
114-
<zipfileset dir="${lib.dir}" prefix="${distrib.name}">
115-
<include name="*LICENSE*" />
142+
<include name="build.xml"/>
143+
<include name="ivy*.xml"/>
144+
<include name="readme.txt"/>
145+
<include name="*LICENSE*"/>
146+
<include name="NOTICE.txt"/>
116147
</zipfileset>
117148
</zip>
118149
</target>
119150

120-
<target name="copylibraries" depends="init">
151+
<target name="copylibraries" depends="resolve">
121152
<copy todir="${build.dir}">
122-
<fileset dir="${lib.dir}">
123-
<include name="*.jar" />
153+
<fileset dir="${lib.dir}/core">
154+
<include name="*.jar"/>
124155
</fileset>
125156
</copy>
126157
</target>
127-
128-
<target name="tests" depends="init, buildTest">
158+
159+
<target name="tests" depends="buildTest">
129160
<junit printsummary="yes" haltonfailure="yes">
130-
<classpath>
131-
<pathelement location="${classes.dir}" />
132-
<pathelement path="${java.class.path}" />
133-
</classpath>
134-
135-
<formatter type="plain" />
136-
137-
<batchtest fork="yes" todir="${junit.reports.dir}">
138-
<fileset dir="${test.src.dir}">
139-
<include name="**/*Test*.java" />
140-
<exclude name="**/AllTests.java" />
141-
</fileset>
142-
</batchtest>
161+
<classpath>
162+
<pathelement refid="project.class.path"/>
163+
<pathelement location="${classes.dir}"/>
164+
<pathelement path="${java.class.path}"/>
165+
</classpath>
166+
167+
<formatter type="plain"/>
168+
169+
<batchtest fork="yes" todir="${junit.reports.dir}">
170+
<fileset dir="${test.src.dir}">
171+
<include name="**/*Test*.java"/>
172+
<exclude name="**/AllTests.java"/>
173+
</fileset>
174+
</batchtest>
143175
</junit>
144176
</target>
145-
146-
<target name="distrib" depends="init, distrib-archive">
147-
</target>
148-
149177
</project>

ivy.settings.xml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<ivysettings>
2+
<settings defaultResolver="default"/>
3+
<caches defaultCacheDir="${user.home}/.ivy2/cache"
4+
artifactPattern="[organisation]/[module]/[type]s/[artifact]-[revision](-[classifier]).[ext]"
5+
checkUpToDate="true"/>
6+
<resolvers>
7+
<filesystem name="local">
8+
<ivy pattern="${ivy.cache.dir}/[module]/ivy-[revision].xml"/>
9+
<artifact pattern="${ivy.cache.dir}/[module]/[artifact]-[revision](-[classifier]).[ext]"/>
10+
</filesystem>
11+
<ibiblio name="central" m2compatible="true" usepoms="false" root="${central.repo}"
12+
pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
13+
<chain name="default" returnFirst="true">
14+
<resolver ref="local"/>
15+
<resolver ref="central"/>
16+
</chain>
17+
</resolvers>
18+
</ivysettings>

ivy.xml

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<ivy-module version="2.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
4+
5+
<info organisation="zipdiff"
6+
module="zipdiff"
7+
revision="${version}">
8+
<description homepage="http://www.jboss.org/zipdiff">
9+
Zipdiff - an archive diff tool
10+
</description>
11+
</info>
12+
13+
<configurations defaultconfmapping="core->default;zipdiff->default;zipdiff-ant->default">
14+
<conf name="core" transitive="false"/>
15+
16+
<conf name="zipdiff" transitive="false"/>
17+
<conf name="zipdiff-ant" transitive="false"/>
18+
</configurations>
19+
20+
<publications>
21+
<artifact name="zipdiff" type="jar"/>
22+
<artifact name="zipdiff-ant" type="jar"/>
23+
</publications>
24+
25+
<dependencies>
26+
<dependency org="junit" name="junit" rev="4.11" conf="core"/>
27+
<dependency org="commons-cli" name="commons-cli" rev="1.2" conf="core,zipdiff"/>
28+
<dependency org="ant" name="ant" rev="1.6.5" conf="core,zipdiff-ant"/>
29+
</dependencies>
30+
31+
</ivy-module>

lib/ant.jar

-936 KB
Binary file not shown.

0 commit comments

Comments
 (0)