aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml149
1 files changed, 149 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml b/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml
new file mode 100644
index 00000000..c05311aa
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project xmlns:au="antlib:org.apache.ant.antunit">
+ <property name="jar.dir" location="jar_spi_dir"/>
+ <property name="jar.src.dir" location="jar_spi_dir/src"/>
+ <property name="jar.src.file" location="jar_spi_dir/src/a_file"/>
+
+ <available property="jdk1.4+" classname="java.lang.CharSequence"/>
+ <condition property="some.regexp.support">
+ <or>
+ <isset property="jdk1.4+"/>
+ <isset property="apache.regexp.present"/>
+ <isset property="apache.oro.present"/>
+ </or>
+ </condition>
+
+ <target name="init">
+ <mkdir dir="${jar.src.dir}"/>
+ <delete quiet="yes" file="${jar.src.file}"/>
+ <touch file="${jar.src.file}"/>
+ <delete quiet="yes" file="${jar.dir}/file.jar"/>
+ <delete quiet="yes" dir="${jar.dir}/output"/>
+ </target>
+
+ <target name="test-simple" depends="init" if="some.regexp.support">
+
+ <jar jarfile="${jar.dir}/file.jar">
+ <fileset dir="${jar.src.dir}"/>
+ <service type="a.b.c" provider="a.b.c.d"/>
+ </jar>
+
+ <unjar src="${jar.dir}/file.jar"
+ dest="${jar.dir}/output"/>
+
+ <loadfile property="simple"
+ srcfile="${jar.dir}/output/META-INF/services/a.b.c"
+ encoding="UTF-8"/>
+
+ <au:assertTrue>
+ <matches string="${simple}" pattern="^a\.b\.c\.d$"/>
+ </au:assertTrue>
+
+ </target>
+
+ <target name="test-providers" depends="init" if="some.regexp.support">
+
+ <jar jarfile="${jar.dir}/file.jar">
+ <fileset dir="${jar.src.dir}"/>
+ <service type="a.b.c">
+ <provider classname="a.X"/>
+ <provider classname="a.D"/>
+ </service>
+ </jar>
+
+ <unjar src="${jar.dir}/file.jar"
+ dest="${jar.dir}/output"/>
+
+ <loadfile property="providers"
+ srcfile="${jar.dir}/output/META-INF/services/a.b.c"
+ encoding="UTF-8"/>
+ <au:assertTrue>
+ <matches string="${providers}" pattern="^a\.X\na\.D$"/>
+ </au:assertTrue>
+
+ </target>
+
+ <target name="test-multi" depends="init" if="some.regexp.support">
+
+ <jar jarfile="${jar.dir}/file.jar">
+ <fileset dir="${jar.src.dir}"/>
+ <service type="a.b.c">
+ <provider classname="a.X"/>
+ <provider classname="a.D"/>
+ </service>
+ <service type="javax.a.service">
+ <provider classname="a.O.T"/>
+ <provider classname="a.B"/>
+ </service>
+ </jar>
+
+ <unjar src="${jar.dir}/file.jar"
+ dest="${jar.dir}/output"/>
+
+ <loadfile property="multi-a"
+ srcfile="${jar.dir}/output/META-INF/services/a.b.c"
+ encoding="UTF-8"/>
+
+ <au:assertTrue>
+ <matches string="${multi-a}" pattern="^a\.X\na\.D$"/>
+ </au:assertTrue>
+
+ <loadfile property="multi-b"
+ srcfile="${jar.dir}/output/META-INF/services/javax.a.service"
+ encoding="UTF-8"/>
+
+ <au:assertTrue>
+ <matches string="${multi-b}" pattern="^a\.O\.T\na\.B$"/>
+ </au:assertTrue>
+
+ </target>
+
+ <target name="test-reject-no-type" depends="init">
+ <au:expectfailure>
+ <jar jarfile="${jar.dir}/file.jar">
+ <fileset dir="${jar.src.dir}"/>
+ <service provider="a.X"/>
+ </jar>
+ </au:expectfailure>
+ </target>
+
+ <target name="test-reject-no-provider" depends="init">
+ <au:expectfailure>
+ <jar jarfile="${jar.dir}/file.jar">
+ <fileset dir="${jar.src.dir}"/>
+ <service type="a.X"/>
+ </jar>
+ </au:expectfailure>
+ </target>
+
+ <target name="test-reject-no-classname" depends="init">
+ <au:expectfailure>
+ <jar jarfile="${jar.dir}/file.jar">
+ <fileset dir="${jar.src.dir}"/>
+ <service type="a.X">
+ <provider/>
+ </service>
+ </jar>
+ </au:expectfailure>
+ </target>
+
+ <target name="tearDown">
+ <delete quiet="yes" dir="${jar.dir}"/>
+ </target>
+</project>