summaryrefslogtreecommitdiff
path: root/Year_3/TSDWL/WSDL/CountryClient
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2022-01-19 22:51:57 +0100
committerSanto Cariotti <santo@dcariotti.me>2022-01-19 22:51:57 +0100
commitd62cdeb376fb5f0749ce637723a6cb305485aad8 (patch)
tree43a9adb1a32cdb4ee830061c684e636670c2d3d2 /Year_3/TSDWL/WSDL/CountryClient
parentee61d8b905abe0d541838bd0f0793e5086855bb9 (diff)
wsdl: add examples
Diffstat (limited to 'Year_3/TSDWL/WSDL/CountryClient')
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/build.xml71
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/catalog.xml4
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/nbproject/ant-deploy.xml76
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/nbproject/build-impl.xml1442
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/nbproject/genfiles.properties8
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/nbproject/jax-ws.xml38
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/nbproject/jaxws-build.xml46
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/nbproject/project.properties84
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/nbproject/project.xml23
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/src/conf/MANIFEST.MF2
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/src/conf/xml-resources/web-service-references/CountryInfoService/wsdl/www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso.wsdl979
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/src/java/it/dmi/tsdwl/country/CountryServlet.java75
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/src/java/it/dmi/tsdwl/country/SearchCapital.java104
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/web/META-INF/context.xml2
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/web/WEB-INF/jax-ws-catalog.xml4
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/web/index.html16
-rw-r--r--Year_3/TSDWL/WSDL/CountryClient/web/list.jsp24
17 files changed, 2998 insertions, 0 deletions
diff --git a/Year_3/TSDWL/WSDL/CountryClient/build.xml b/Year_3/TSDWL/WSDL/CountryClient/build.xml
new file mode 100644
index 0000000..3ca8615
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/build.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<!-- By default, only the Clean and Build commands use this build script. -->
+<!-- Commands such as Run, Debug, and Test only use this build script if -->
+<!-- the Compile on Save feature is turned off for the project. -->
+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
+<!-- in the project's Project Properties dialog box.-->
+<project name="CountryClient" default="default" basedir=".">
+ <description>Builds, tests, and runs the project CountryClient.</description>
+ <import file="nbproject/build-impl.xml"/>
+ <!--
+
+ There exist several targets which are by default empty and which can be
+ used for execution of your tasks. These targets are usually executed
+ before and after some main targets. They are:
+
+ -pre-init: called before initialization of project properties
+ -post-init: called after initialization of project properties
+ -pre-compile: called before javac compilation
+ -post-compile: called after javac compilation
+ -pre-compile-single: called before javac compilation of single file
+ -post-compile-single: called after javac compilation of single file
+ -pre-compile-test: called before javac compilation of JUnit tests
+ -post-compile-test: called after javac compilation of JUnit tests
+ -pre-compile-test-single: called before javac compilation of single JUnit test
+ -post-compile-test-single: called after javac compilation of single JUunit test
+ -pre-dist: called before archive building
+ -post-dist: called after archive building
+ -post-clean: called after cleaning build products
+ -pre-run-deploy: called before deploying
+ -post-run-deploy: called after deploying
+
+ Example of pluging an obfuscator after the compilation could look like
+
+ <target name="-post-compile">
+ <obfuscate>
+ <fileset dir="${build.classes.dir}"/>
+ </obfuscate>
+ </target>
+
+ For list of available properties check the imported
+ nbproject/build-impl.xml file.
+
+
+ Other way how to customize the build is by overriding existing main targets.
+ The target of interest are:
+
+ init-macrodef-javac: defines macro for javac compilation
+ init-macrodef-junit: defines macro for junit execution
+ init-macrodef-debug: defines macro for class debugging
+ do-dist: archive building
+ run: execution of project
+ javadoc-build: javadoc generation
+
+ Example of overriding the target for project execution could look like
+
+ <target name="run" depends="<PROJNAME>-impl.jar">
+ <exec dir="bin" executable="launcher.exe">
+ <arg file="${dist.jar}"/>
+ </exec>
+ </target>
+
+ Notice that overridden target depends on jar target and not only on
+ compile target as regular run target does. Again, for list of available
+ properties which you can use check the target you are overriding in
+ nbproject/build-impl.xml file.
+
+ -->
+</project>
diff --git a/Year_3/TSDWL/WSDL/CountryClient/catalog.xml b/Year_3/TSDWL/WSDL/CountryClient/catalog.xml
new file mode 100644
index 0000000..13f4ef6
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/catalog.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">
+ <system systemId="http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?wsdl" uri="src/conf/xml-resources/web-service-references/CountryInfoService/wsdl/www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso.wsdl"/>
+</catalog> \ No newline at end of file
diff --git a/Year_3/TSDWL/WSDL/CountryClient/nbproject/ant-deploy.xml b/Year_3/TSDWL/WSDL/CountryClient/nbproject/ant-deploy.xml
new file mode 100644
index 0000000..55566c8
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/nbproject/ant-deploy.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2006, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License. When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<project default="-deploy-ant" basedir=".">
+ <target name="-init" if="deploy.ant.enabled">
+ <property file="${deploy.ant.properties.file}"/>
+ <tempfile property="temp.module.folder" prefix="tomcat" destdir="${java.io.tmpdir}"/>
+ <unwar src="${deploy.ant.archive}" dest="${temp.module.folder}">
+ <patternset includes="META-INF/context.xml"/>
+ </unwar>
+ <xmlproperty file="${temp.module.folder}/META-INF/context.xml"/>
+ <delete dir="${temp.module.folder}"/>
+ </target>
+ <target name="-check-credentials" if="deploy.ant.enabled" depends="-init">
+ <fail message="Tomcat password has to be passed as tomcat.password property.">
+ <condition>
+ <not>
+ <isset property="tomcat.password"/>
+ </not>
+ </condition>
+ </fail>
+ </target>
+ <target name="-deploy-ant" if="deploy.ant.enabled" depends="-init,-check-credentials">
+ <echo message="Deploying ${deploy.ant.archive} to ${Context(path)}"/>
+ <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"
+ classpath="${tomcat.home}/server/lib/catalina-ant.jar"/>
+ <deploy url="${tomcat.url}/manager" username="${tomcat.username}"
+ password="${tomcat.password}" path="${Context(path)}"
+ war="${deploy.ant.archive}"/>
+ <property name="deploy.ant.client.url" value="${tomcat.url}${Context(path)}"/>
+ </target>
+ <target name="-undeploy-ant" if="deploy.ant.enabled" depends="-init,-check-credentials">
+ <echo message="Undeploying ${Context(path)}"/>
+ <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"
+ classpath="${tomcat.home}/server/lib/catalina-ant.jar"/>
+ <undeploy url="${tomcat.url}/manager" username="${tomcat.username}"
+ password="${tomcat.password}" path="${Context(path)}"/>
+ </target>
+</project>
diff --git a/Year_3/TSDWL/WSDL/CountryClient/nbproject/build-impl.xml b/Year_3/TSDWL/WSDL/CountryClient/nbproject/build-impl.xml
new file mode 100644
index 0000000..3fe3c0f
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/nbproject/build-impl.xml
@@ -0,0 +1,1442 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *** GENERATED FROM project.xml - DO NOT EDIT ***
+ *** EDIT ../build.xml INSTEAD ***
+
+ For the purpose of easier reading the script
+ is divided into following sections:
+ - initialization
+ - compilation
+ - dist
+ - execution
+ - debugging
+ - javadoc
+ - test compilation
+ - test execution
+ - test debugging
+ - cleanup
+
+ -->
+<project xmlns:webproject1="http://www.netbeans.org/ns/web-project/1" xmlns:webproject2="http://www.netbeans.org/ns/web-project/2" xmlns:webproject3="http://www.netbeans.org/ns/web-project/3" basedir=".." default="default" name="CountryClient-impl">
+ <import file="jaxws-build.xml"/>
+ <import file="ant-deploy.xml"/>
+ <fail message="Please build using Ant 1.7.1 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.7.1"/>
+ </not>
+ </condition>
+ </fail>
+ <target depends="dist,javadoc" description="Build whole project." name="default"/>
+ <!--
+ INITIALIZATION SECTION
+ -->
+ <target name="-pre-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init" name="-init-private">
+ <property file="nbproject/private/private.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private" name="-init-user">
+ <property file="${user.properties.file}"/>
+ <!-- The two properties below are usually overridden -->
+ <!-- by the active platform. Just a fallback. -->
+ <property name="default.javac.source" value="1.4"/>
+ <property name="default.javac.target" value="1.4"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user" name="-init-project">
+ <property file="nbproject/project.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" if="dist.ear.dir" name="-do-ear-init"/>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+ <condition property="have.tests">
+ <or>
+ <available file="${test.src.dir}"/>
+ </or>
+ </condition>
+ <condition property="have.sources">
+ <or>
+ <available file="${src.dir}"/>
+ </or>
+ </condition>
+ <condition property="netbeans.home+have.tests">
+ <and>
+ <isset property="netbeans.home"/>
+ <isset property="have.tests"/>
+ </and>
+ </condition>
+ <condition property="no.javadoc.preview">
+ <isfalse value="${javadoc.preview}"/>
+ </condition>
+ <property name="javac.compilerargs" value=""/>
+ <condition property="no.deps">
+ <and>
+ <istrue value="${no.dependencies}"/>
+ </and>
+ </condition>
+ <condition property="no.dist.ear.dir">
+ <not>
+ <isset property="dist.ear.dir"/>
+ </not>
+ </condition>
+ <property name="build.web.excludes" value="${build.classes.excludes}"/>
+ <condition property="do.compile.jsps">
+ <istrue value="${compile.jsps}"/>
+ </condition>
+ <condition property="do.debug.server">
+ <or>
+ <not>
+ <isset property="debug.server"/>
+ </not>
+ <istrue value="${debug.server}"/>
+ <and>
+ <not>
+ <istrue value="${debug.server}"/>
+ </not>
+ <not>
+ <istrue value="${debug.client}"/>
+ </not>
+ </and>
+ </or>
+ </condition>
+ <condition property="do.debug.client">
+ <istrue value="${debug.client}"/>
+ </condition>
+ <condition property="do.display.browser">
+ <istrue value="${display.browser}"/>
+ </condition>
+ <condition property="do.display.browser.debug.old">
+ <and>
+ <isset property="do.display.browser"/>
+ <not>
+ <isset property="do.debug.client"/>
+ </not>
+ <not>
+ <isset property="browser.context"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="do.display.browser.debug">
+ <and>
+ <isset property="do.display.browser"/>
+ <not>
+ <isset property="do.debug.client"/>
+ </not>
+ <isset property="browser.context"/>
+ </and>
+ </condition>
+ <available file="${conf.dir}/MANIFEST.MF" property="has.custom.manifest"/>
+ <available file="${persistence.xml.dir}/persistence.xml" property="has.persistence.xml"/>
+ <condition property="do.war.package.with.custom.manifest">
+ <isset property="has.custom.manifest"/>
+ </condition>
+ <condition property="do.war.package.without.custom.manifest">
+ <not>
+ <isset property="has.custom.manifest"/>
+ </not>
+ </condition>
+ <condition property="do.tmp.war.package.with.custom.manifest">
+ <and>
+ <isset property="has.custom.manifest"/>
+ <or>
+ <isfalse value="${directory.deployment.supported}"/>
+ <isset property="dist.ear.dir"/>
+ </or>
+ </and>
+ </condition>
+ <condition property="do.tmp.war.package.without.custom.manifest">
+ <and>
+ <not>
+ <isset property="has.custom.manifest"/>
+ </not>
+ <or>
+ <isfalse value="${directory.deployment.supported}"/>
+ <isset property="dist.ear.dir"/>
+ </or>
+ </and>
+ </condition>
+ <condition property="do.tmp.war.package">
+ <or>
+ <isfalse value="${directory.deployment.supported}"/>
+ <isset property="dist.ear.dir"/>
+ </or>
+ </condition>
+ <property name="build.meta.inf.dir" value="${build.web.dir}/META-INF"/>
+ <condition else="" property="application.args.param" value="${application.args}">
+ <and>
+ <isset property="application.args"/>
+ <not>
+ <equals arg1="${application.args}" arg2="" trim="true"/>
+ </not>
+ </and>
+ </condition>
+ <property name="source.encoding" value="${file.encoding}"/>
+ <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
+ <and>
+ <isset property="javadoc.encoding"/>
+ <not>
+ <equals arg1="${javadoc.encoding}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <property name="javadoc.encoding.used" value="${source.encoding}"/>
+ <property name="includes" value="**"/>
+ <property name="excludes" value=""/>
+ <property name="runmain.jvmargs" value=""/>
+ <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
+ <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
+ <and>
+ <isset property="endorsed.classpath"/>
+ <length length="0" string="${endorsed.classpath}" when="greater"/>
+ </and>
+ </condition>
+ <condition else="false" property="jdkBug6558476">
+ <and>
+ <matches pattern="1\.[56]" string="${java.specification.version}"/>
+ <not>
+ <os family="unix"/>
+ </not>
+ </and>
+ </condition>
+ <property name="javac.fork" value="${jdkBug6558476}"/>
+ <condition property="junit.available">
+ <or>
+ <available classname="org.junit.Test" classpath="${run.test.classpath}"/>
+ <available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
+ </or>
+ </condition>
+ <condition property="testng.available">
+ <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
+ </condition>
+ <condition property="junit+testng.available">
+ <and>
+ <istrue value="${junit.available}"/>
+ <istrue value="${testng.available}"/>
+ </and>
+ </condition>
+ <condition else="testng" property="testng.mode" value="mixed">
+ <istrue value="${junit+testng.available}"/>
+ </condition>
+ <condition else="" property="testng.debug.mode" value="-mixed">
+ <istrue value="${junit+testng.available}"/>
+ </condition>
+ </target>
+ <target depends="init" name="-init-cos" unless="deploy.on.save">
+ <condition property="deploy.on.save" value="true">
+ <or>
+ <istrue value="${j2ee.deploy.on.save}"/>
+ <istrue value="${j2ee.compile.on.save}"/>
+ </or>
+ </condition>
+ </target>
+ <target name="-post-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
+ <fail unless="src.dir">Must set src.dir</fail>
+ <fail unless="test.src.dir">Must set test.src.dir</fail>
+ <fail unless="build.dir">Must set build.dir</fail>
+ <fail unless="build.web.dir">Must set build.web.dir</fail>
+ <fail unless="build.generated.dir">Must set build.generated.dir</fail>
+ <fail unless="dist.dir">Must set dist.dir</fail>
+ <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+ <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+ <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+ <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+ <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+ <fail unless="dist.war">Must set dist.war</fail>
+ <condition property="missing.j2ee.server.home">
+ <and>
+ <matches pattern="j2ee.server.home" string="${j2ee.platform.classpath}"/>
+ <not>
+ <isset property="j2ee.server.home"/>
+ </not>
+ </and>
+ </condition>
+ <fail if="missing.j2ee.server.home">
+The Java EE server classpath is not correctly set up - server home directory is missing.
+Either open the project in the IDE and assign the server or setup the server classpath manually.
+For example like this:
+ ant -Dj2ee.server.home=&lt;app_server_installation_directory&gt;
+ </fail>
+ <fail unless="j2ee.platform.classpath">
+The Java EE server classpath is not correctly set up. Your active server type is ${j2ee.server.type}.
+Either open the project in the IDE and assign the server or setup the server classpath manually.
+For example like this:
+ ant -Duser.properties.file=&lt;path_to_property_file&gt; (where you put the property "j2ee.platform.classpath" in a .properties file)
+or ant -Dj2ee.platform.classpath=&lt;server_classpath&gt; (where no properties file is used)
+ </fail>
+ </target>
+ <target name="-init-macrodef-property">
+ <macrodef name="property" uri="http://www.netbeans.org/ns/web-project/1">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${@{value}}"/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+ <attribute default="${javac.processorpath}" name="processorpath"/>
+ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <mkdir dir="@{apgeneratedsrcdir}"/>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}" target="${javac.target}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <compilerarg value="-processorpath"/>
+ <compilerarg path="@{processorpath}:${empty.dir}"/>
+ <compilerarg line="${ap.processors.internal}"/>
+ <compilerarg value="-s"/>
+ <compilerarg path="@{apgeneratedsrcdir}"/>
+ <compilerarg line="${ap.proc.none.internal}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+ <attribute default="${javac.processorpath}" name="processorpath"/>
+ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}" target="${javac.target}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
+ <macrodef name="depend" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+ <sequential>
+ <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </depend>
+ </sequential>
+ </macrodef>
+ <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <sequential>
+ <fail unless="javac.includes">Must set javac.includes</fail>
+ <pathconvert pathsep="${line.separator}" property="javac.includes.binary">
+ <path>
+ <filelist dir="@{destdir}" files="${javac.includes}"/>
+ </path>
+ <globmapper from="*.java" to="*.class"/>
+ </pathconvert>
+ <tempfile deleteonexit="true" property="javac.includesfile.binary"/>
+ <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
+ <delete>
+ <files includesfile="${javac.includesfile.binary}"/>
+ </delete>
+ <delete file="${javac.includesfile.binary}"/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="${junit.available}" name="-init-macrodef-junit-init">
+ <condition else="false" property="nb.junit.batch" value="true">
+ <and>
+ <istrue value="${junit.available}"/>
+ <not>
+ <isset property="test.method"/>
+ </not>
+ </and>
+ </condition>
+ <condition else="false" property="nb.junit.single" value="true">
+ <and>
+ <istrue value="${junit.available}"/>
+ <isset property="test.method"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-init-test-properties">
+ <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
+ <property name="test.binarytestincludes" value=""/>
+ <property name="test.binaryexcludes" value=""/>
+ </target>
+ <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${java.io.tmpdir}">
+ <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg value="-ea"/>
+ <customize/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property name="run.jvmargs.ide" value=""/>
+ <junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
+ <batchtest todir="${build.test.results.dir}">
+ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+ <filename name="${test.binarytestincludes}"/>
+ </fileset>
+ </batchtest>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg value="-ea"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ <customize/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
+ <target if="${testng.available}" name="-init-macrodef-testng">
+ <macrodef name="testng" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
+ <isset property="test.method"/>
+ </condition>
+ <union id="test.set">
+ <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ </union>
+ <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
+ <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="CountryClient" testname="TestNG tests" workingDir="${basedir}">
+ <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
+ <propertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </propertyset>
+ <customize/>
+ </testng>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-test-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <echo>No tests executed.</echo>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <webproject2:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </webproject2:junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <webproject2:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </webproject2:testng>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
+ <macrodef name="test" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <sequential>
+ <webproject2:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize>
+ <classpath>
+ <path path="${run.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}"/>
+ </classpath>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${runmain.jvmargs}"/>
+ </customize>
+ </webproject2:test-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
+ <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${java.io.tmpdir}">
+ <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg value="-ea"/>
+ <jvmarg line="${debug-args-line}"/>
+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <customize/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
+ <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property name="run.jvmargs.ide" value=""/>
+ <junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
+ <batchtest todir="${build.test.results.dir}">
+ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+ <filename name="${test.binarytestincludes}"/>
+ </fileset>
+ </batchtest>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg value="-ea"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ <jvmarg line="${debug-args-line}"/>
+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <customize/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
+ <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <webproject2:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </webproject2:junit-debug>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="${testng.available}" name="-init-macrodef-testng-debug">
+ <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <element name="customize2" optional="true"/>
+ <sequential>
+ <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
+ <isset property="test.method"/>
+ </condition>
+ <condition else="-suitename CountryClient -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
+ <matches pattern=".*\.xml" string="@{testClass}"/>
+ </condition>
+ <delete dir="${build.test.results.dir}" quiet="true"/>
+ <mkdir dir="${build.test.results.dir}"/>
+ <webproject1:debug args="${testng.cmd.args}" classname="org.testng.TestNG" classpath="${debug.test.classpath}:${j2ee.platform.embeddableejb.classpath}">
+ <customize>
+ <customize2/>
+ <jvmarg value="-ea"/>
+ <arg line="${testng.debug.mode}"/>
+ <arg line="-d ${build.test.results.dir}"/>
+ <arg line="-listener org.testng.reporters.VerboseReporter"/>
+ </customize>
+ </webproject1:debug>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
+ <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <element implicit="true" name="customize2" optional="true"/>
+ <sequential>
+ <webproject2:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
+ <customize2/>
+ </webproject2:testng-debug>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
+ <macrodef name="test-debug" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <sequential>
+ <webproject2:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize>
+ <classpath>
+ <path path="${run.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}"/>
+ </classpath>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${runmain.jvmargs}"/>
+ </customize>
+ </webproject2:test-debug-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
+ <macrodef name="test-debug" uri="http://www.netbeans.org/ns/web-project/2">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <sequential>
+ <webproject2:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
+ <customize2>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ </customize2>
+ </webproject2:testng-debug-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
+ <target name="-init-macrodef-java">
+ <macrodef name="java" uri="http://www.netbeans.org/ns/web-project/1">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" fork="true">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${runmain.jvmargs}"/>
+ <classpath>
+ <path path="@{classpath}:${j2ee.platform.classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-nbjsdebug">
+ <macrodef name="nbjsdebugstart" uri="http://www.netbeans.org/ns/web-project/1">
+ <attribute default="${client.url}" name="webUrl"/>
+ <sequential>
+ <nbjsdebugstart urlPart="${client.urlPart}" webUrl="@{webUrl}"/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
+ <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/web-project/1">
+ <attribute default="${main.class}" name="name"/>
+ <attribute default="${debug.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+ <sequential>
+ <nbjpdastart addressproperty="jpda.address" name="@{name}" transport="${debug-transport}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </nbjpdastart>
+ </sequential>
+ </macrodef>
+ <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/web-project/1">
+ <attribute default="${build.classes.dir}" name="dir"/>
+ <sequential>
+ <nbjpdareload>
+ <fileset dir="@{dir}" includes="${fix.classes}">
+ <include name="${fix.includes}*.class"/>
+ </fileset>
+ </nbjpdareload>
+ </sequential>
+ </macrodef>
+ <macrodef name="nbjpdaappreloaded" uri="http://www.netbeans.org/ns/web-project/1">
+ <sequential>
+ <nbjpdaappreloaded/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-debug-args">
+ <property name="version-output" value="java version &quot;${ant.java.version}"/>
+ <condition property="have-jdk-older-than-1.4">
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.0"/>
+ <contains string="${version-output}" substring="java version &quot;1.1"/>
+ <contains string="${version-output}" substring="java version &quot;1.2"/>
+ <contains string="${version-output}" substring="java version &quot;1.3"/>
+ </or>
+ </condition>
+ <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
+ <istrue value="${have-jdk-older-than-1.4}"/>
+ </condition>
+ <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+ <os family="windows"/>
+ </condition>
+ <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+ <isset property="debug.transport"/>
+ </condition>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-debug">
+ <macrodef name="debug" uri="http://www.netbeans.org/ns/web-project/1">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${debug.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+ <attribute default="${application.args.param}" name="args"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" fork="true">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${debug-args-line}"/>
+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <jvmarg line="${runmain.jvmargs}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <arg line="@{args}"/>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-taskdefs">
+ <fail unless="libs.CopyLibs.classpath">
+The libs.CopyLibs.classpath property is not set up.
+This property must point to
+org-netbeans-modules-java-j2seproject-copylibstask.jar file which is part
+of NetBeans IDE installation and is usually located at
+&lt;netbeans_installation&gt;/java&lt;version&gt;/ant/extra folder.
+Either open the project in the IDE and make sure CopyLibs library
+exists or setup the property manually. For example like this:
+ ant -Dlibs.CopyLibs.classpath=a/path/to/org-netbeans-modules-java-j2seproject-copylibstask.jar
+ </fail>
+ <taskdef classpath="${libs.CopyLibs.classpath}" resource="org/netbeans/modules/java/j2seproject/copylibstask/antlib.xml"/>
+ </target>
+ <target name="-init-ap-cmdline-properties">
+ <property name="annotation.processing.enabled" value="true"/>
+ <property name="annotation.processing.processors.list" value=""/>
+ <property name="annotation.processing.run.all.processors" value="true"/>
+ <property name="javac.processorpath" value="${javac.classpath}"/>
+ <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
+ <condition property="ap.supported.internal" value="true">
+ <not>
+ <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
+ </not>
+ </condition>
+ </target>
+ <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
+ <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
+ <isfalse value="${annotation.processing.run.all.processors}"/>
+ </condition>
+ <condition else="" property="ap.proc.none.internal" value="-proc:none">
+ <isfalse value="${annotation.processing.enabled}"/>
+ </condition>
+ </target>
+ <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
+ <property name="ap.cmd.line.internal" value=""/>
+ </target>
+ <!--
+ pre NB7.2 profiling section; consider it deprecated
+ -->
+ <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
+ <target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="profiler.info.jvmargs.agent" name="-profile-post-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-profile-pre-init, init, -profile-post-init" if="profiler.info.jvmargs.agent" name="-profile-init-check">
+ <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
+ <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
+ </target>
+ <!--
+ end of pre NB7.2 profiling section
+ -->
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-java,-init-macrodef-nbjpda,-init-macrodef-nbjsdebug,-init-macrodef-debug,-init-taskdefs,-init-ap-cmdline" name="init"/>
+ <!--
+ COMPILATION SECTION
+ -->
+ <target depends="init" if="no.dist.ear.dir" name="deps-module-jar" unless="no.deps"/>
+ <target depends="init" if="dist.ear.dir" name="deps-ear-jar" unless="no.deps"/>
+ <target depends="init, deps-module-jar, deps-ear-jar" name="deps-jar" unless="no.deps"/>
+ <target depends="init,deps-jar,wsimport-client-generate" name="-pre-pre-compile">
+ <mkdir dir="${build.classes.dir}"/>
+ </target>
+ <target name="-pre-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target name="-copy-webdir">
+ <copy todir="${build.web.dir}">
+ <fileset dir="${web.docbase.dir}" excludes="${build.web.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ <copy todir="${build.web.dir}/WEB-INF">
+ <fileset dir="${webinf.dir}" excludes="${build.web.excludes}"/>
+ </copy>
+ </target>
+ <target depends="init, deps-jar, -pre-pre-compile, -pre-compile, -copy-manifest, -copy-persistence-xml, -copy-webdir, library-inclusion-in-archive,library-inclusion-in-manifest" if="have.sources" name="-do-compile">
+ <webproject2:javac destdir="${build.classes.dir}" gensrcdir="${build.generated.sources.dir}"/>
+ <copy todir="${build.classes.dir}">
+ <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target if="has.custom.manifest" name="-copy-manifest">
+ <mkdir dir="${build.meta.inf.dir}"/>
+ <copy todir="${build.meta.inf.dir}">
+ <fileset dir="${conf.dir}" includes="MANIFEST.MF"/>
+ </copy>
+ </target>
+ <target if="has.persistence.xml" name="-copy-persistence-xml">
+ <mkdir dir="${build.web.dir}/WEB-INF/classes/META-INF"/>
+ <copy todir="${build.web.dir}/WEB-INF/classes/META-INF">
+ <fileset dir="${persistence.xml.dir}" includes="persistence.xml orm.xml"/>
+ </copy>
+ </target>
+ <target name="-post-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
+ <target name="-pre-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <webproject2:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}"/>
+ <copy todir="${build.classes.dir}">
+ <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
+ <property name="jspc.schemas" value="/resources/schemas/"/>
+ <property name="jspc.dtds" value="/resources/dtds/"/>
+ <target depends="compile" description="Test compile JSP pages to expose compilation errors." if="do.compile.jsps" name="compile-jsps">
+ <mkdir dir="${build.generated.dir}/src"/>
+ <java classname="org.netbeans.modules.web.project.ant.JspC" failonerror="true" fork="true">
+ <arg value="-uriroot"/>
+ <arg file="${basedir}/${build.web.dir}"/>
+ <arg value="-d"/>
+ <arg file="${basedir}/${build.generated.dir}/src"/>
+ <arg value="-die1"/>
+ <arg value="-schemas ${jspc.schemas}"/>
+ <arg value="-dtds ${jspc.dtds}"/>
+ <arg value="-compilerSourceVM ${javac.source}"/>
+ <arg value="-compilerTargetVM ${javac.target}"/>
+ <arg value="-javaEncoding ${source.encoding}"/>
+ <arg value="-sysClasspath ${libs.jsp-compilation-syscp.classpath}"/>
+ <classpath path="${java.home}/../lib/tools.jar:${libs.jsp-compiler.classpath}:${libs.jsp-compilation.classpath}"/>
+ </java>
+ <mkdir dir="${build.generated.dir}/classes"/>
+ <webproject2:javac classpath="${build.classes.dir}:${libs.jsp-compilation.classpath}:${javac.classpath}:${j2ee.platform.classpath}" destdir="${build.generated.dir}/classes" srcdir="${build.generated.dir}/src"/>
+ </target>
+ <target depends="compile" if="jsp.includes" name="-do-compile-single-jsp">
+ <fail unless="javac.jsp.includes">Must select some files in the IDE or set javac.jsp.includes</fail>
+ <mkdir dir="${build.generated.dir}/src"/>
+ <java classname="org.netbeans.modules.web.project.ant.JspCSingle" failonerror="true" fork="true">
+ <arg value="-uriroot"/>
+ <arg file="${basedir}/${build.web.dir}"/>
+ <arg value="-d"/>
+ <arg file="${basedir}/${build.generated.dir}/src"/>
+ <arg value="-die1"/>
+ <arg value="-schemas ${jspc.schemas}"/>
+ <arg value="-dtds ${jspc.dtds}"/>
+ <arg value="-sysClasspath ${libs.jsp-compilation-syscp.classpath}"/>
+ <arg value="-jspc.files"/>
+ <arg path="${jsp.includes}"/>
+ <arg value="-compilerSourceVM ${javac.source}"/>
+ <arg value="-compilerTargetVM ${javac.target}"/>
+ <arg value="-javaEncoding ${source.encoding}"/>
+ <classpath path="${java.home}/../lib/tools.jar:${libs.jsp-compiler.classpath}:${libs.jsp-compilation.classpath}"/>
+ </java>
+ <mkdir dir="${build.generated.dir}/classes"/>
+ <webproject2:javac classpath="${build.classes.dir}:${libs.jsp-compilation.classpath}:${javac.classpath}:${j2ee.platform.classpath}" destdir="${build.generated.dir}/classes" srcdir="${build.generated.dir}/src">
+ <customize>
+ <patternset includes="${javac.jsp.includes}"/>
+ </customize>
+ </webproject2:javac>
+ </target>
+ <target name="compile-single-jsp">
+ <fail unless="jsp.includes">Must select a file in the IDE or set jsp.includes</fail>
+ <antcall target="-do-compile-single-jsp"/>
+ </target>
+ <!--
+ DIST BUILDING SECTION
+ -->
+ <target name="-pre-dist">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,compile-jsps,-pre-dist" if="do.war.package.without.custom.manifest" name="-do-dist-without-manifest">
+ <dirname file="${dist.war}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ <jar compress="${jar.compress}" jarfile="${dist.war}">
+ <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
+ </jar>
+ </target>
+ <target depends="init,compile,compile-jsps,-pre-dist" if="do.war.package.with.custom.manifest" name="-do-dist-with-manifest">
+ <dirname file="${dist.war}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ <jar compress="${jar.compress}" jarfile="${dist.war}" manifest="${build.meta.inf.dir}/MANIFEST.MF">
+ <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
+ </jar>
+ </target>
+ <target depends="init,compile,compile-jsps,-pre-dist" if="do.tmp.war.package.without.custom.manifest" name="-do-tmp-dist-without-manifest">
+ <dirname file="${dist.war}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ <jar compress="${jar.compress}" jarfile="${dist.war}">
+ <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
+ </jar>
+ </target>
+ <target depends="init,compile,compile-jsps,-pre-dist" if="do.tmp.war.package.with.custom.manifest" name="-do-tmp-dist-with-manifest">
+ <dirname file="${dist.war}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ <jar compress="${jar.compress}" jarfile="${dist.war}" manifest="${build.meta.inf.dir}/MANIFEST.MF">
+ <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
+ </jar>
+ </target>
+ <target depends="init,compile,compile-jsps,-pre-dist,-do-dist-with-manifest,-do-dist-without-manifest" name="do-dist"/>
+ <target depends="init" if="dist.ear.dir" name="library-inclusion-in-manifest">
+ <mkdir dir="${build.web.dir}/META-INF"/>
+ <manifest file="${build.web.dir}/META-INF/MANIFEST.MF" mode="update"/>
+ </target>
+ <target depends="init" name="library-inclusion-in-archive" unless="dist.ear.dir"/>
+ <target depends="init" if="dist.ear.dir" name="-clean-webinf-lib">
+ <delete dir="${build.web.dir}/WEB-INF/lib"/>
+ </target>
+ <target depends="init,-clean-webinf-lib,compile,compile-jsps,-pre-dist,library-inclusion-in-manifest" if="do.tmp.war.package" name="do-ear-dist">
+ <dirname file="${dist.ear.war}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ <jar compress="${jar.compress}" jarfile="${dist.ear.war}" manifest="${build.web.dir}/META-INF/MANIFEST.MF">
+ <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/>
+ </jar>
+ </target>
+ <target name="-post-dist">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-dist,do-dist,-post-dist" description="Build distribution (WAR)." name="dist"/>
+ <target depends="init,-clean-webinf-lib,-init-cos,compile,-pre-dist,do-ear-dist,-post-dist" description="Build distribution (WAR) to be packaged into an EAR." name="dist-ear"/>
+ <!--
+ EXECUTION SECTION
+ -->
+ <target depends="run-deploy,run-display-browser" description="Deploy to server and show in browser." name="run"/>
+ <target name="-pre-run-deploy">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target name="-post-run-deploy">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target name="-pre-nbmodule-run-deploy">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- This target can be overriden by NetBeans modules. Don't override it directly, use -pre-run-deploy task instead. -->
+ </target>
+ <target name="-post-nbmodule-run-deploy">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- This target can be overriden by NetBeans modules. Don't override it directly, use -post-run-deploy task instead. -->
+ </target>
+ <target name="-run-deploy-am">
+ <!-- Task to deploy to the Access Manager runtime. -->
+ </target>
+ <target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest,-pre-run-deploy,-pre-nbmodule-run-deploy,-run-deploy-nb,-init-deploy-ant,-deploy-ant,-run-deploy-am,-post-nbmodule-run-deploy,-post-run-deploy,-do-update-breakpoints" name="run-deploy"/>
+ <target if="netbeans.home" name="-run-deploy-nb">
+ <nbdeploy clientUrlPart="${client.urlPart}" debugmode="false" forceRedeploy="${forceRedeploy}"/>
+ </target>
+ <target name="-init-deploy-ant" unless="netbeans.home">
+ <property name="deploy.ant.archive" value="${dist.war}"/>
+ <property name="deploy.ant.docbase.dir" value="${web.docbase.dir}"/>
+ <property name="deploy.ant.resource.dir" value="${resource.dir}"/>
+ <property name="deploy.ant.enabled" value="true"/>
+ </target>
+ <target depends="dist,-run-undeploy-nb,-init-deploy-ant,-undeploy-ant" name="run-undeploy"/>
+ <target if="netbeans.home" name="-run-undeploy-nb">
+ <fail message="Undeploy is not supported from within the IDE"/>
+ </target>
+ <target depends="init,-pre-dist,dist,-post-dist" name="verify">
+ <nbverify file="${dist.war}"/>
+ </target>
+ <target depends="run-deploy,-init-display-browser,-display-browser-nb-old,-display-browser-nb,-display-browser-cl" name="run-display-browser"/>
+ <target if="do.display.browser" name="-init-display-browser">
+ <condition property="do.display.browser.nb.old">
+ <and>
+ <isset property="netbeans.home"/>
+ <not>
+ <isset property="browser.context"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="do.display.browser.nb">
+ <and>
+ <isset property="netbeans.home"/>
+ <isset property="browser.context"/>
+ </and>
+ </condition>
+ <condition property="do.display.browser.cl">
+ <isset property="deploy.ant.enabled"/>
+ </condition>
+ </target>
+ <target if="do.display.browser.nb.old" name="-display-browser-nb-old">
+ <nbbrowse url="${client.url}"/>
+ </target>
+ <target if="do.display.browser.nb" name="-display-browser-nb">
+ <nbbrowse context="${browser.context}" url="${client.url}" urlPath="${client.urlPart}"/>
+ </target>
+ <target if="do.display.browser.cl" name="-get-browser" unless="browser">
+ <condition property="browser" value="rundll32">
+ <os family="windows"/>
+ </condition>
+ <condition else="" property="browser.args" value="url.dll,FileProtocolHandler">
+ <os family="windows"/>
+ </condition>
+ <condition property="browser" value="/usr/bin/open">
+ <os family="mac"/>
+ </condition>
+ <property environment="env"/>
+ <condition property="browser" value="${env.BROWSER}">
+ <isset property="env.BROWSER"/>
+ </condition>
+ <condition property="browser" value="/usr/bin/firefox">
+ <available file="/usr/bin/firefox"/>
+ </condition>
+ <condition property="browser" value="/usr/local/firefox/firefox">
+ <available file="/usr/local/firefox/firefox"/>
+ </condition>
+ <condition property="browser" value="/usr/bin/mozilla">
+ <available file="/usr/bin/mozilla"/>
+ </condition>
+ <condition property="browser" value="/usr/local/mozilla/mozilla">
+ <available file="/usr/local/mozilla/mozilla"/>
+ </condition>
+ <condition property="browser" value="/usr/sfw/lib/firefox/firefox">
+ <available file="/usr/sfw/lib/firefox/firefox"/>
+ </condition>
+ <condition property="browser" value="/opt/csw/bin/firefox">
+ <available file="/opt/csw/bin/firefox"/>
+ </condition>
+ <condition property="browser" value="/usr/sfw/lib/mozilla/mozilla">
+ <available file="/usr/sfw/lib/mozilla/mozilla"/>
+ </condition>
+ <condition property="browser" value="/opt/csw/bin/mozilla">
+ <available file="/opt/csw/bin/mozilla"/>
+ </condition>
+ </target>
+ <target depends="-get-browser" if="do.display.browser.cl" name="-display-browser-cl">
+ <fail unless="browser">
+ Browser not found, cannot launch the deployed application. Try to set the BROWSER environment variable.
+ </fail>
+ <property name="browse.url" value="${deploy.ant.client.url}${client.urlPart}"/>
+ <echo>Launching ${browse.url}</echo>
+ <exec executable="${browser}" spawn="true">
+ <arg line="${browser.args} ${browse.url}"/>
+ </exec>
+ </target>
+ <target depends="init,-init-cos,compile-single" name="run-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <webproject1:java classname="${run.class}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single" name="run-test-with-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <webproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
+ </target>
+ <target depends="init" if="netbeans.home" name="-do-update-breakpoints">
+ <webproject1:nbjpdaappreloaded/>
+ </target>
+ <!--
+ DEBUGGING SECTION
+ -->
+ <target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest" description="Debug project in IDE." if="netbeans.home" name="debug">
+ <nbstartserver debugmode="true"/>
+ <antcall target="connect-debugger"/>
+ <nbdeploy clientUrlPart="${client.urlPart}" debugmode="true" forceRedeploy="true"/>
+ <antcall target="debug-display-browser-old"/>
+ <antcall target="debug-display-browser"/>
+ <antcall target="connect-client-debugger"/>
+ </target>
+ <target if="do.debug.server" name="connect-debugger" unless="is.debugged">
+ <condition property="listeningcp" value="sourcepath">
+ <istrue value="${j2ee.compile.on.save}"/>
+ </condition>
+ <nbjpdaconnect address="${jpda.address}" host="${jpda.host}" listeningcp="${listeningcp}" name="${name}" transport="${jpda.transport}">
+ <classpath>
+ <path path="${debug.classpath}:${j2ee.platform.classpath}"/>
+ </classpath>
+ <sourcepath>
+ <path path="${web.docbase.dir}"/>
+ </sourcepath>
+ </nbjpdaconnect>
+ </target>
+ <target if="do.display.browser.debug.old" name="debug-display-browser-old">
+ <nbbrowse url="${client.url}"/>
+ </target>
+ <target if="do.display.browser.debug" name="debug-display-browser">
+ <nbbrowse context="${browser.context}" url="${client.url}" urlPath="${client.urlPart}"/>
+ </target>
+ <target if="do.debug.client" name="connect-client-debugger">
+ <webproject1:nbjsdebugstart webUrl="${client.url}"/>
+ </target>
+ <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <webproject1:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
+ <target depends="init,compile,compile-jsps,-do-compile-single-jsp,debug" if="netbeans.home" name="debug-single"/>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
+ <webproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
+ </target>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger">
+ <webproject1:nbjpdastart name="${debug.class}"/>
+ </target>
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <webproject1:debug classname="${debug.class}"/>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single-main"/>
+ <target depends="init" name="-pre-debug-fix">
+ <fail unless="fix.includes">Must set fix.includes</fail>
+ <property name="javac.includes" value="${fix.includes}.java"/>
+ </target>
+ <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
+ <webproject1:nbjpdareload/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
+ <!--
+ =================
+ PROFILING SECTION
+ =================
+ -->
+ <!--
+ pre NB7.2 profiling section; consider it deprecated
+ -->
+ <target description="Profile a J2EE project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
+ <condition else="start-profiled-server" property="profiler.startserver.target" value="start-profiled-server-extraargs">
+ <isset property="profiler.info.jvmargs.extra"/>
+ </condition>
+ <antcall target="${profiler.startserver.target}"/>
+ <antcall target="run"/>
+ <antcall target="-profile-start-loadgen"/>
+ </target>
+ <target if="profiler.info.jvmargs.agent" name="start-profiled-server">
+ <nbstartprofiledserver forceRestart="${profiler.j2ee.serverForceRestart}" javaPlatform="${profiler.info.javaPlatform}" startupTimeout="${profiler.j2ee.serverStartupTimeout}">
+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
+ <jvmarg value="${profiler.j2ee.agentID}"/>
+ </nbstartprofiledserver>
+ </target>
+ <target if="profiler.info.jvmargs.agent" name="start-profiled-server-extraargs">
+ <nbstartprofiledserver forceRestart="${profiler.j2ee.serverForceRestart}" javaPlatform="${profiler.info.javaPlatform}" startupTimeout="${profiler.j2ee.serverStartupTimeout}">
+ <jvmarg value="${profiler.info.jvmargs.extra}"/>
+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
+ <jvmarg value="${profiler.j2ee.agentID}"/>
+ </nbstartprofiledserver>
+ </target>
+ <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+ <nbprofiledirect>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ <path path="${j2ee.platform.classpath}"/>
+ </classpath>
+ </nbprofiledirect>
+ <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true">
+ <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
+ <jvmarg line="${profiler.info.jvmargs}"/>
+ <test name="${profile.class}"/>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ <path path="${j2ee.platform.classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ </junit>
+ </target>
+ <target if="netbeans.home" name="-profile-check">
+ <condition property="profiler.configured">
+ <or>
+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
+ </or>
+ </condition>
+ </target>
+ <target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest" name="-do-profile">
+ <startprofiler/>
+ <nbstartserver profilemode="true"/>
+ <nbdeploy clientUrlPart="${client.urlPart}" forceRedeploy="true" profilemode="true"/>
+ <antcall target="debug-display-browser-old"/>
+ <antcall target="debug-display-browser"/>
+ <antcall target="-profile-start-loadgen"/>
+ </target>
+ <target depends="-profile-check,-profile-pre72" description="Profile a J2EE project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
+ <antcall target="-do-profile"/>
+ </target>
+ <target depends="-profile-test-single-pre72" name="profile-test-single"/>
+ <target depends="-profile-check" if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs.agent">
+ <startprofiler/>
+ <antcall target="test-single"/>
+ </target>
+ <target if="profiler.loadgen.path" name="-profile-start-loadgen">
+ <loadgenstart path="${profiler.loadgen.path}"/>
+ </target>
+ <!--
+ JAVADOC SECTION
+ -->
+ <target depends="init" if="have.sources" name="javadoc-build">
+ <mkdir dir="${dist.javadoc.dir}"/>
+ <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+ <classpath>
+ <path path="${javac.classpath}:${j2ee.platform.classpath}"/>
+ </classpath>
+ <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="**/*.java"/>
+ </fileset>
+ </javadoc>
+ <copy todir="${dist.javadoc.dir}">
+ <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="**/doc-files/**"/>
+ </fileset>
+ </copy>
+ </target>
+ <target depends="init,javadoc-build" if="netbeans.home" name="javadoc-browse" unless="no.javadoc.preview">
+ <nbbrowse file="${dist.javadoc.dir}/index.html"/>
+ </target>
+ <target depends="init,javadoc-build,javadoc-browse" description="Build Javadoc." name="javadoc"/>
+ <!--
+
+ TEST COMPILATION SECTION
+ -->
+ <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
+ <mkdir dir="${build.test.classes.dir}"/>
+ <property name="j2ee.platform.embeddableejb.classpath" value=""/>
+ </target>
+ <target name="-pre-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test" if="have.tests" name="-do-compile-test">
+ <webproject2:javac classpath="${javac.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
+ <target name="-pre-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <webproject2:javac classpath="${javac.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" srcdir="${test.src.dir}"/>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
+ <!--
+
+ TEST EXECUTION SECTION
+ -->
+ <target depends="init" if="have.tests" name="-pre-test-run">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
+ <webproject2:test includes="${includes}" testincludes="**/*Test.java"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init" if="have.tests" name="test-report"/>
+ <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
+ <target depends="init" if="have.tests" name="-pre-test-run-single">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+ <webproject2:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
+ <fail unless="test.class">Must select some files in the IDE or set test.class</fail>
+ <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
+ <webproject2:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/>
+ <!--
+
+ TEST DEBUGGING SECTION
+ -->
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+ <webproject2:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+ <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
+ <webproject2:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
+ </target>
+ <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
+ <webproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
+ </target>
+ <target depends="init,compile-test,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
+ <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
+ <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
+ <webproject1:nbjpdareload dir="${build.test.classes.dir}"/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
+ <!--
+
+ CLEANUP SECTION
+ -->
+ <target depends="init" name="deps-clean" unless="no.deps"/>
+ <target depends="init" name="do-clean">
+ <condition property="build.dir.to.clean" value="${build.web.dir}">
+ <isset property="dist.ear.dir"/>
+ </condition>
+ <property name="build.dir.to.clean" value="${build.web.dir}"/>
+ <delete includeEmptyDirs="true" quiet="true">
+ <fileset dir="${build.dir.to.clean}/WEB-INF/lib"/>
+ </delete>
+ <delete dir="${build.dir}"/>
+ <available file="${build.dir.to.clean}/WEB-INF/lib" property="status.clean-failed" type="dir"/>
+ <delete dir="${dist.dir}"/>
+ </target>
+ <target depends="do-clean" if="status.clean-failed" name="check-clean">
+ <echo message="Warning: unable to delete some files in ${build.web.dir}/WEB-INF/lib - they are probably locked by the J2EE server. "/>
+ <echo level="info" message="To delete all files undeploy the module from Server Registry in Runtime tab and then use Clean again."/>
+ </target>
+ <target depends="init" if="netbeans.home" name="undeploy-clean">
+ <nbundeploy failOnError="false" startServer="false"/>
+ </target>
+ <target name="-post-clean">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,undeploy-clean,deps-clean,do-clean,check-clean,-post-clean" description="Clean build products." name="clean"/>
+ <target depends="clean" description="Clean build products." name="clean-ear"/>
+</project>
diff --git a/Year_3/TSDWL/WSDL/CountryClient/nbproject/genfiles.properties b/Year_3/TSDWL/WSDL/CountryClient/nbproject/genfiles.properties
new file mode 100644
index 0000000..e058707
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=b6006458
+build.xml.script.CRC32=8b5d04d4
+build.xml.stylesheet.CRC32=651128d4@1.77.1.1
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=b6006458
+nbproject/build-impl.xml.script.CRC32=24497a23
+nbproject/build-impl.xml.stylesheet.CRC32=99ea4b56@1.77.1.1
diff --git a/Year_3/TSDWL/WSDL/CountryClient/nbproject/jax-ws.xml b/Year_3/TSDWL/WSDL/CountryClient/nbproject/jax-ws.xml
new file mode 100644
index 0000000..031ee65
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/nbproject/jax-ws.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jax-ws xmlns="http://www.netbeans.org/ns/jax-ws/1">
+ <services/>
+ <clients>
+ <client name="CountryInfoService">
+ <wsdl-url>http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?wsdl</wsdl-url>
+ <local-wsdl-file>www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso.wsdl</local-wsdl-file>
+ <package-name>org.oorsprong.websamples.countryinfo</package-name>
+ <catalog-file>catalog.xml</catalog-file>
+ <wsimport-options>
+ <wsimport-option>
+ <wsimport-option-name>extension</wsimport-option-name>
+ <wsimport-option-value>true</wsimport-option-value>
+ </wsimport-option>
+ <wsimport-option>
+ <wsimport-option-name>verbose</wsimport-option-name>
+ <wsimport-option-value>true</wsimport-option-value>
+ </wsimport-option>
+ <wsimport-option>
+ <wsimport-option-name>fork</wsimport-option-name>
+ <wsimport-option-value>false</wsimport-option-value>
+ </wsimport-option>
+ <wsimport-option>
+ <wsimport-option-name>wsdlLocation</wsimport-option-name>
+ <wsimport-option-value>http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?wsdl</wsimport-option-value>
+ </wsimport-option>
+ <wsimport-option>
+ <wsimport-option-name>xnocompile</wsimport-option-name>
+ <wsimport-option-value>true</wsimport-option-value>
+ </wsimport-option>
+ <wsimport-option>
+ <wsimport-option-name>xendorsed</wsimport-option-name>
+ <wsimport-option-value>true</wsimport-option-value>
+ </wsimport-option>
+ </wsimport-options>
+ </client>
+ </clients>
+</jax-ws>
diff --git a/Year_3/TSDWL/WSDL/CountryClient/nbproject/jaxws-build.xml b/Year_3/TSDWL/WSDL/CountryClient/nbproject/jaxws-build.xml
new file mode 100644
index 0000000..97b036a
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/nbproject/jaxws-build.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+ *** GENERATED FROM jax-ws.xml - DO NOT EDIT ! ***
+ *** TO MODIFY wsimport options USE Web Service node -> Edit WS Attributes ***
+ *** TO CHANGE TARGETS GENERATED TO jaxws-build.xml COPY THOSE ***
+ *** TARGETS TO ../build.xml AND MODIFY THAT FILE INSTEAD ***
+
+ --><project xmlns:xalan="http://xml.apache.org/xslt" xmlns:webproject2="http://www.netbeans.org/ns/web-project/2" xmlns:jaxws="http://www.netbeans.org/ns/jax-ws/1">
+ <!--
+ ===================
+ JAX-WS WSGEN SECTION
+ ===================
+ -->
+ <!--
+ ===================
+ JAX-WS WSIMPORT SECTION
+ ===================
+ -->
+ <target name="wsimport-init" depends="init">
+ <fail if="${wsimport.bad.version}" message="WsImport ant task defined in the classpath ${j2ee.platform.wsimport.classpath} has a serious bug. See http://wiki.netbeans.org/MetroIssue for details."/>
+ <mkdir dir="${build.generated.sources.dir}/jax-ws"/>
+ <property name="j2ee.platform.wsimport.classpath" value="${libs.jaxws21.classpath}"/>
+ <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
+ <classpath path="${java.home}/../lib/tools.jar:${j2ee.platform.wsimport.classpath}:${javac.classpath}"/>
+ </taskdef>
+ <condition property="conf-dir" value="${conf.dir}/" else="">
+ <isset property="conf.dir"/>
+ </condition>
+ </target>
+ <target name="wsimport-client-CountryInfoService" depends="wsimport-init">
+ <mkdir dir="${build.generated.dir}/jax-wsCache/CountryInfoService"/>
+ <wsimport sourcedestdir="${build.generated.dir}/jax-wsCache/CountryInfoService" destdir="${build.generated.dir}/jax-wsCache/CountryInfoService" wsdl="${basedir}/${conf-dir}xml-resources/web-service-references/CountryInfoService/wsdl/www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso.wsdl" catalog="catalog.xml" encoding="${source.encoding}" extension="true" verbose="true" fork="false" wsdlLocation="http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?wsdl" xnocompile="true" xendorsed="true">
+ <depends file="${basedir}/${conf-dir}xml-resources/web-service-references/CountryInfoService/wsdl/www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso.wsdl"/>
+ <produces dir="${build.generated.dir}/jax-wsCache/CountryInfoService"/>
+ </wsimport>
+ <copy todir="${build.generated.sources.dir}/jax-ws">
+ <fileset dir="${build.generated.dir}/jax-wsCache/CountryInfoService">
+ <include name="**/*.java"/>
+ </fileset>
+ </copy>
+ </target>
+ <target name="wsimport-client-clean-CountryInfoService" depends="-init-project">
+ <delete dir="${build.generated.sources.dir}/jax-ws/org/oorsprong/websamples/countryinfo"/>
+ <delete dir="${build.generated.dir}/jax-wsCache/CountryInfoService"/>
+ </target>
+ <target name="wsimport-client-generate" depends="wsimport-client-CountryInfoService"/>
+</project>
diff --git a/Year_3/TSDWL/WSDL/CountryClient/nbproject/project.properties b/Year_3/TSDWL/WSDL/CountryClient/nbproject/project.properties
new file mode 100644
index 0000000..0d41dcd
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/nbproject/project.properties
@@ -0,0 +1,84 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=true
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+build.classes.dir=${build.web.dir}/WEB-INF/classes
+build.classes.excludes=**/*.java,**/*.form
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+build.web.dir=${build.dir}/web
+build.web.excludes=${build.classes.excludes}
+client.urlPart=
+compile.jsps=false
+conf.dir=${source.root}/conf
+debug.classpath=${build.classes.dir}:${javac.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+display.browser=true
+# Files to be excluded from distribution war
+dist.archive.excludes=
+dist.dir=dist
+dist.ear.war=${dist.dir}/${war.ear.name}
+dist.javadoc.dir=${dist.dir}/javadoc
+dist.war=${dist.dir}/${war.name}
+endorsed.classpath=\
+ ${libs.javaee-endorsed-api-7.0.classpath}
+excludes=
+includes=**
+j2ee.compile.on.save=true
+j2ee.copy.static.files.on.save=true
+j2ee.deploy.on.save=true
+j2ee.platform=1.7-web
+j2ee.platform.classpath=${j2ee.server.home}/lib/annotations-api.jar:${j2ee.server.home}/lib/catalina-ant.jar:${j2ee.server.home}/lib/catalina-ha.jar:${j2ee.server.home}/lib/catalina-storeconfig.jar:${j2ee.server.home}/lib/catalina-tribes.jar:${j2ee.server.home}/lib/catalina.jar:${j2ee.server.home}/lib/ecj-4.4.2.jar:${j2ee.server.home}/lib/el-api.jar:${j2ee.server.home}/lib/jasper-el.jar:${j2ee.server.home}/lib/jasper.jar:${j2ee.server.home}/lib/jsp-api.jar:${j2ee.server.home}/lib/servlet-api.jar:${j2ee.server.home}/lib/tomcat-api.jar:${j2ee.server.home}/lib/tomcat-coyote.jar:${j2ee.server.home}/lib/tomcat-dbcp.jar:${j2ee.server.home}/lib/tomcat-i18n-es.jar:${j2ee.server.home}/lib/tomcat-i18n-fr.jar:${j2ee.server.home}/lib/tomcat-i18n-ja.jar:${j2ee.server.home}/lib/tomcat-jdbc.jar:${j2ee.server.home}/lib/tomcat-jni.jar:${j2ee.server.home}/lib/tomcat-util-scan.jar:${j2ee.server.home}/lib/tomcat-util.jar:${j2ee.server.home}/lib/tomcat-websocket.jar:${j2ee.server.home}/lib/websocket-api.jar
+j2ee.server.type=Tomcat
+jar.compress=false
+javac.classpath=
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.debug=true
+javac.deprecation=false
+javac.processorpath=\
+ ${javac.classpath}
+javac.source=1.8
+javac.target=1.8
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+javac.test.processorpath=\
+ ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.preview=true
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+lib.dir=${web.docbase.dir}/WEB-INF/lib
+no.dependencies=false
+persistence.xml.dir=${conf.dir}
+platform.active=default_platform
+resource.dir=setup
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+# Space-separated list of JVM arguments used when running a class with a main method or a unit test
+# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value):
+runmain.jvmargs=
+source.encoding=UTF-8
+source.root=src
+src.dir=${source.root}/java
+test.src.dir=test
+war.content.additional=
+war.ear.name=${war.name}
+war.name=CountryClient.war
+web.docbase.dir=web
+webinf.dir=web/WEB-INF
diff --git a/Year_3/TSDWL/WSDL/CountryClient/nbproject/project.xml b/Year_3/TSDWL/WSDL/CountryClient/nbproject/project.xml
new file mode 100644
index 0000000..4bf40d8
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/nbproject/project.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.web.project</type>
+ <configuration>
+ <buildExtensions xmlns="http://www.netbeans.org/ns/ant-build-extender/1">
+ <extension file="jaxws-build.xml" id="jaxws">
+ <dependency dependsOn="wsimport-client-generate" target="-pre-pre-compile"/>
+ </extension>
+ </buildExtensions>
+ <data xmlns="http://www.netbeans.org/ns/web-project/3">
+ <name>CountryClient</name>
+ <minimum-ant-version>1.6.5</minimum-ant-version>
+ <web-module-libraries/>
+ <web-module-additional-libraries/>
+ <source-roots>
+ <root id="src.dir" name="Source Packages"/>
+ </source-roots>
+ <test-roots>
+ <root id="test.src.dir" name="Test Packages"/>
+ </test-roots>
+ </data>
+ </configuration>
+</project>
diff --git a/Year_3/TSDWL/WSDL/CountryClient/src/conf/MANIFEST.MF b/Year_3/TSDWL/WSDL/CountryClient/src/conf/MANIFEST.MF
new file mode 100644
index 0000000..59499bc
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/src/conf/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/Year_3/TSDWL/WSDL/CountryClient/src/conf/xml-resources/web-service-references/CountryInfoService/wsdl/www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso.wsdl b/Year_3/TSDWL/WSDL/CountryClient/src/conf/xml-resources/web-service-references/CountryInfoService/wsdl/www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso.wsdl
new file mode 100644
index 0000000..44c806b
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/src/conf/xml-resources/web-service-references/CountryInfoService/wsdl/www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso.wsdl
@@ -0,0 +1,979 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://www.oorsprong.org/websamples.countryinfo" name="CountryInfoService" targetNamespace="http://www.oorsprong.org/websamples.countryinfo">
+ <types>
+ <xs:schema elementFormDefault="qualified" targetNamespace="http://www.oorsprong.org/websamples.countryinfo">
+ <xs:complexType name="tContinent">
+ <xs:sequence>
+ <xs:element name="sCode" type="xs:string"/>
+ <xs:element name="sName" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="tCurrency">
+ <xs:sequence>
+ <xs:element name="sISOCode" type="xs:string"/>
+ <xs:element name="sName" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="tCountryCodeAndName">
+ <xs:sequence>
+ <xs:element name="sISOCode" type="xs:string"/>
+ <xs:element name="sName" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="tCountryCodeAndNameGroupedByContinent">
+ <xs:sequence>
+ <xs:element name="Continent" type="tns:tContinent"/>
+ <xs:element name="CountryCodeAndNames" type="tns:ArrayOftCountryCodeAndName"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="tCountryInfo">
+ <xs:sequence>
+ <xs:element name="sISOCode" type="xs:string"/>
+ <xs:element name="sName" type="xs:string"/>
+ <xs:element name="sCapitalCity" type="xs:string"/>
+ <xs:element name="sPhoneCode" type="xs:string"/>
+ <xs:element name="sContinentCode" type="xs:string"/>
+ <xs:element name="sCurrencyISOCode" type="xs:string"/>
+ <xs:element name="sCountryFlag" type="xs:string"/>
+ <xs:element name="Languages" type="tns:ArrayOftLanguage"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="tLanguage">
+ <xs:sequence>
+ <xs:element name="sISOCode" type="xs:string"/>
+ <xs:element name="sName" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ArrayOftCountryCodeAndName">
+ <xs:sequence>
+ <xs:element name="tCountryCodeAndName" type="tns:tCountryCodeAndName" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ArrayOftLanguage">
+ <xs:sequence>
+ <xs:element name="tLanguage" type="tns:tLanguage" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ArrayOftContinent">
+ <xs:sequence>
+ <xs:element name="tContinent" type="tns:tContinent" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ArrayOftCurrency">
+ <xs:sequence>
+ <xs:element name="tCurrency" type="tns:tCurrency" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ArrayOftCountryCodeAndNameGroupedByContinent">
+ <xs:sequence>
+ <xs:element name="tCountryCodeAndNameGroupedByContinent" type="tns:tCountryCodeAndNameGroupedByContinent" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ArrayOftCountryInfo">
+ <xs:sequence>
+ <xs:element name="tCountryInfo" type="tns:tCountryInfo" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="ListOfContinentsByName">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfContinentsByNameResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ListOfContinentsByNameResult" type="tns:ArrayOftContinent"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfContinentsByCode">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfContinentsByCodeResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ListOfContinentsByCodeResult" type="tns:ArrayOftContinent"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCurrenciesByName">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCurrenciesByNameResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ListOfCurrenciesByNameResult" type="tns:ArrayOftCurrency"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCurrenciesByCode">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCurrenciesByCodeResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ListOfCurrenciesByCodeResult" type="tns:ArrayOftCurrency"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CurrencyName">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sCurrencyISOCode" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CurrencyNameResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CurrencyNameResult" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCountryNamesByCode">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCountryNamesByCodeResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ListOfCountryNamesByCodeResult" type="tns:ArrayOftCountryCodeAndName"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCountryNamesByName">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCountryNamesByNameResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ListOfCountryNamesByNameResult" type="tns:ArrayOftCountryCodeAndName"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCountryNamesGroupedByContinent">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfCountryNamesGroupedByContinentResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ListOfCountryNamesGroupedByContinentResult" type="tns:ArrayOftCountryCodeAndNameGroupedByContinent"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryName">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sCountryISOCode" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryNameResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CountryNameResult" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryISOCode">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sCountryName" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryISOCodeResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CountryISOCodeResult" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CapitalCity">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sCountryISOCode" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CapitalCityResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CapitalCityResult" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryCurrency">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sCountryISOCode" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryCurrencyResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CountryCurrencyResult" type="tns:tCurrency"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryFlag">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sCountryISOCode" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryFlagResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CountryFlagResult" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryIntPhoneCode">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sCountryISOCode" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountryIntPhoneCodeResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CountryIntPhoneCodeResult" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FullCountryInfo">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sCountryISOCode" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FullCountryInfoResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="FullCountryInfoResult" type="tns:tCountryInfo"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FullCountryInfoAllCountries">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="FullCountryInfoAllCountriesResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="FullCountryInfoAllCountriesResult" type="tns:ArrayOftCountryInfo"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountriesUsingCurrency">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sISOCurrencyCode" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CountriesUsingCurrencyResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CountriesUsingCurrencyResult" type="tns:ArrayOftCountryCodeAndName"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfLanguagesByName">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfLanguagesByNameResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ListOfLanguagesByNameResult" type="tns:ArrayOftLanguage"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfLanguagesByCode">
+ <xs:complexType>
+ <xs:sequence/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ListOfLanguagesByCodeResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ListOfLanguagesByCodeResult" type="tns:ArrayOftLanguage"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="LanguageName">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sISOCode" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="LanguageNameResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="LanguageNameResult" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="LanguageISOCode">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sLanguageName" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="LanguageISOCodeResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="LanguageISOCodeResult" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
+ </types>
+ <message name="ListOfContinentsByNameSoapRequest">
+ <part name="parameters" element="tns:ListOfContinentsByName"/>
+ </message>
+ <message name="ListOfContinentsByNameSoapResponse">
+ <part name="parameters" element="tns:ListOfContinentsByNameResponse"/>
+ </message>
+ <message name="ListOfContinentsByCodeSoapRequest">
+ <part name="parameters" element="tns:ListOfContinentsByCode"/>
+ </message>
+ <message name="ListOfContinentsByCodeSoapResponse">
+ <part name="parameters" element="tns:ListOfContinentsByCodeResponse"/>
+ </message>
+ <message name="ListOfCurrenciesByNameSoapRequest">
+ <part name="parameters" element="tns:ListOfCurrenciesByName"/>
+ </message>
+ <message name="ListOfCurrenciesByNameSoapResponse">
+ <part name="parameters" element="tns:ListOfCurrenciesByNameResponse"/>
+ </message>
+ <message name="ListOfCurrenciesByCodeSoapRequest">
+ <part name="parameters" element="tns:ListOfCurrenciesByCode"/>
+ </message>
+ <message name="ListOfCurrenciesByCodeSoapResponse">
+ <part name="parameters" element="tns:ListOfCurrenciesByCodeResponse"/>
+ </message>
+ <message name="CurrencyNameSoapRequest">
+ <part name="parameters" element="tns:CurrencyName"/>
+ </message>
+ <message name="CurrencyNameSoapResponse">
+ <part name="parameters" element="tns:CurrencyNameResponse"/>
+ </message>
+ <message name="ListOfCountryNamesByCodeSoapRequest">
+ <part name="parameters" element="tns:ListOfCountryNamesByCode"/>
+ </message>
+ <message name="ListOfCountryNamesByCodeSoapResponse">
+ <part name="parameters" element="tns:ListOfCountryNamesByCodeResponse"/>
+ </message>
+ <message name="ListOfCountryNamesByNameSoapRequest">
+ <part name="parameters" element="tns:ListOfCountryNamesByName"/>
+ </message>
+ <message name="ListOfCountryNamesByNameSoapResponse">
+ <part name="parameters" element="tns:ListOfCountryNamesByNameResponse"/>
+ </message>
+ <message name="ListOfCountryNamesGroupedByContinentSoapRequest">
+ <part name="parameters" element="tns:ListOfCountryNamesGroupedByContinent"/>
+ </message>
+ <message name="ListOfCountryNamesGroupedByContinentSoapResponse">
+ <part name="parameters" element="tns:ListOfCountryNamesGroupedByContinentResponse"/>
+ </message>
+ <message name="CountryNameSoapRequest">
+ <part name="parameters" element="tns:CountryName"/>
+ </message>
+ <message name="CountryNameSoapResponse">
+ <part name="parameters" element="tns:CountryNameResponse"/>
+ </message>
+ <message name="CountryISOCodeSoapRequest">
+ <part name="parameters" element="tns:CountryISOCode"/>
+ </message>
+ <message name="CountryISOCodeSoapResponse">
+ <part name="parameters" element="tns:CountryISOCodeResponse"/>
+ </message>
+ <message name="CapitalCitySoapRequest">
+ <part name="parameters" element="tns:CapitalCity"/>
+ </message>
+ <message name="CapitalCitySoapResponse">
+ <part name="parameters" element="tns:CapitalCityResponse"/>
+ </message>
+ <message name="CountryCurrencySoapRequest">
+ <part name="parameters" element="tns:CountryCurrency"/>
+ </message>
+ <message name="CountryCurrencySoapResponse">
+ <part name="parameters" element="tns:CountryCurrencyResponse"/>
+ </message>
+ <message name="CountryFlagSoapRequest">
+ <part name="parameters" element="tns:CountryFlag"/>
+ </message>
+ <message name="CountryFlagSoapResponse">
+ <part name="parameters" element="tns:CountryFlagResponse"/>
+ </message>
+ <message name="CountryIntPhoneCodeSoapRequest">
+ <part name="parameters" element="tns:CountryIntPhoneCode"/>
+ </message>
+ <message name="CountryIntPhoneCodeSoapResponse">
+ <part name="parameters" element="tns:CountryIntPhoneCodeResponse"/>
+ </message>
+ <message name="FullCountryInfoSoapRequest">
+ <part name="parameters" element="tns:FullCountryInfo"/>
+ </message>
+ <message name="FullCountryInfoSoapResponse">
+ <part name="parameters" element="tns:FullCountryInfoResponse"/>
+ </message>
+ <message name="FullCountryInfoAllCountriesSoapRequest">
+ <part name="parameters" element="tns:FullCountryInfoAllCountries"/>
+ </message>
+ <message name="FullCountryInfoAllCountriesSoapResponse">
+ <part name="parameters" element="tns:FullCountryInfoAllCountriesResponse"/>
+ </message>
+ <message name="CountriesUsingCurrencySoapRequest">
+ <part name="parameters" element="tns:CountriesUsingCurrency"/>
+ </message>
+ <message name="CountriesUsingCurrencySoapResponse">
+ <part name="parameters" element="tns:CountriesUsingCurrencyResponse"/>
+ </message>
+ <message name="ListOfLanguagesByNameSoapRequest">
+ <part name="parameters" element="tns:ListOfLanguagesByName"/>
+ </message>
+ <message name="ListOfLanguagesByNameSoapResponse">
+ <part name="parameters" element="tns:ListOfLanguagesByNameResponse"/>
+ </message>
+ <message name="ListOfLanguagesByCodeSoapRequest">
+ <part name="parameters" element="tns:ListOfLanguagesByCode"/>
+ </message>
+ <message name="ListOfLanguagesByCodeSoapResponse">
+ <part name="parameters" element="tns:ListOfLanguagesByCodeResponse"/>
+ </message>
+ <message name="LanguageNameSoapRequest">
+ <part name="parameters" element="tns:LanguageName"/>
+ </message>
+ <message name="LanguageNameSoapResponse">
+ <part name="parameters" element="tns:LanguageNameResponse"/>
+ </message>
+ <message name="LanguageISOCodeSoapRequest">
+ <part name="parameters" element="tns:LanguageISOCode"/>
+ </message>
+ <message name="LanguageISOCodeSoapResponse">
+ <part name="parameters" element="tns:LanguageISOCodeResponse"/>
+ </message>
+ <portType name="CountryInfoServiceSoapType">
+ <operation name="ListOfContinentsByName">
+ <documentation>Returns a list of continents ordered by name.</documentation>
+ <input message="tns:ListOfContinentsByNameSoapRequest"/>
+ <output message="tns:ListOfContinentsByNameSoapResponse"/>
+ </operation>
+ <operation name="ListOfContinentsByCode">
+ <documentation>Returns a list of continents ordered by code.</documentation>
+ <input message="tns:ListOfContinentsByCodeSoapRequest"/>
+ <output message="tns:ListOfContinentsByCodeSoapResponse"/>
+ </operation>
+ <operation name="ListOfCurrenciesByName">
+ <documentation>Returns a list of currencies ordered by name.</documentation>
+ <input message="tns:ListOfCurrenciesByNameSoapRequest"/>
+ <output message="tns:ListOfCurrenciesByNameSoapResponse"/>
+ </operation>
+ <operation name="ListOfCurrenciesByCode">
+ <documentation>Returns a list of currencies ordered by code.</documentation>
+ <input message="tns:ListOfCurrenciesByCodeSoapRequest"/>
+ <output message="tns:ListOfCurrenciesByCodeSoapResponse"/>
+ </operation>
+ <operation name="CurrencyName">
+ <documentation>Returns the name of the currency (if found)</documentation>
+ <input message="tns:CurrencyNameSoapRequest"/>
+ <output message="tns:CurrencyNameSoapResponse"/>
+ </operation>
+ <operation name="ListOfCountryNamesByCode">
+ <documentation>Returns a list of all stored counties ordered by ISO code</documentation>
+ <input message="tns:ListOfCountryNamesByCodeSoapRequest"/>
+ <output message="tns:ListOfCountryNamesByCodeSoapResponse"/>
+ </operation>
+ <operation name="ListOfCountryNamesByName">
+ <documentation>Returns a list of all stored counties ordered by country name</documentation>
+ <input message="tns:ListOfCountryNamesByNameSoapRequest"/>
+ <output message="tns:ListOfCountryNamesByNameSoapResponse"/>
+ </operation>
+ <operation name="ListOfCountryNamesGroupedByContinent">
+ <documentation>Returns a list of all stored counties grouped per continent</documentation>
+ <input message="tns:ListOfCountryNamesGroupedByContinentSoapRequest"/>
+ <output message="tns:ListOfCountryNamesGroupedByContinentSoapResponse"/>
+ </operation>
+ <operation name="CountryName">
+ <documentation>Searches the database for a country by the passed ISO country code</documentation>
+ <input message="tns:CountryNameSoapRequest"/>
+ <output message="tns:CountryNameSoapResponse"/>
+ </operation>
+ <operation name="CountryISOCode">
+ <documentation>This function tries to found a country based on the passed country name.</documentation>
+ <input message="tns:CountryISOCodeSoapRequest"/>
+ <output message="tns:CountryISOCodeSoapResponse"/>
+ </operation>
+ <operation name="CapitalCity">
+ <documentation>Returns the name of the captial city for the passed country code</documentation>
+ <input message="tns:CapitalCitySoapRequest"/>
+ <output message="tns:CapitalCitySoapResponse"/>
+ </operation>
+ <operation name="CountryCurrency">
+ <documentation>Returns the currency ISO code and name for the passed country ISO code</documentation>
+ <input message="tns:CountryCurrencySoapRequest"/>
+ <output message="tns:CountryCurrencySoapResponse"/>
+ </operation>
+ <operation name="CountryFlag">
+ <documentation>Returns a link to a picture of the country flag</documentation>
+ <input message="tns:CountryFlagSoapRequest"/>
+ <output message="tns:CountryFlagSoapResponse"/>
+ </operation>
+ <operation name="CountryIntPhoneCode">
+ <documentation>Returns the internation phone code for the passed ISO country code</documentation>
+ <input message="tns:CountryIntPhoneCodeSoapRequest"/>
+ <output message="tns:CountryIntPhoneCodeSoapResponse"/>
+ </operation>
+ <operation name="FullCountryInfo">
+ <documentation>Returns a struct with all the stored country information. Pass the ISO country code</documentation>
+ <input message="tns:FullCountryInfoSoapRequest"/>
+ <output message="tns:FullCountryInfoSoapResponse"/>
+ </operation>
+ <operation name="FullCountryInfoAllCountries">
+ <documentation>Returns an array with all countries and all the language information stored</documentation>
+ <input message="tns:FullCountryInfoAllCountriesSoapRequest"/>
+ <output message="tns:FullCountryInfoAllCountriesSoapResponse"/>
+ </operation>
+ <operation name="CountriesUsingCurrency">
+ <documentation>Returns a list of all countries that use the same currency code. Pass a ISO currency code</documentation>
+ <input message="tns:CountriesUsingCurrencySoapRequest"/>
+ <output message="tns:CountriesUsingCurrencySoapResponse"/>
+ </operation>
+ <operation name="ListOfLanguagesByName">
+ <documentation>Returns an array of languages ordered by name</documentation>
+ <input message="tns:ListOfLanguagesByNameSoapRequest"/>
+ <output message="tns:ListOfLanguagesByNameSoapResponse"/>
+ </operation>
+ <operation name="ListOfLanguagesByCode">
+ <documentation>Returns an array of languages ordered by code</documentation>
+ <input message="tns:ListOfLanguagesByCodeSoapRequest"/>
+ <output message="tns:ListOfLanguagesByCodeSoapResponse"/>
+ </operation>
+ <operation name="LanguageName">
+ <documentation>Find a language name based on the passed ISO language code</documentation>
+ <input message="tns:LanguageNameSoapRequest"/>
+ <output message="tns:LanguageNameSoapResponse"/>
+ </operation>
+ <operation name="LanguageISOCode">
+ <documentation>Find a language ISO code based on the passed language name</documentation>
+ <input message="tns:LanguageISOCodeSoapRequest"/>
+ <output message="tns:LanguageISOCodeSoapResponse"/>
+ </operation>
+ </portType>
+ <binding name="CountryInfoServiceSoapBinding" type="tns:CountryInfoServiceSoapType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="ListOfContinentsByName">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfContinentsByCode">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCurrenciesByName">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCurrenciesByCode">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CurrencyName">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCountryNamesByCode">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCountryNamesByName">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCountryNamesGroupedByContinent">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryName">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryISOCode">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CapitalCity">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryCurrency">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryFlag">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryIntPhoneCode">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="FullCountryInfo">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="FullCountryInfoAllCountries">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountriesUsingCurrency">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfLanguagesByName">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfLanguagesByCode">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="LanguageName">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="LanguageISOCode">
+ <soap:operation soapAction="" style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <binding name="CountryInfoServiceSoapBinding12" type="tns:CountryInfoServiceSoapType">
+ <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="ListOfContinentsByName">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfContinentsByCode">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCurrenciesByName">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCurrenciesByCode">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CurrencyName">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCountryNamesByCode">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCountryNamesByName">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfCountryNamesGroupedByContinent">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryName">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryISOCode">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CapitalCity">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryCurrency">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryFlag">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountryIntPhoneCode">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="FullCountryInfo">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="FullCountryInfoAllCountries">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="CountriesUsingCurrency">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfLanguagesByName">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="ListOfLanguagesByCode">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="LanguageName">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="LanguageISOCode">
+ <soap12:operation soapAction="" style="document"/>
+ <input>
+ <soap12:body use="literal"/>
+ </input>
+ <output>
+ <soap12:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="CountryInfoService">
+ <documentation>This DataFlex Web Service opens up country information. 2 letter ISO codes are used for Country code. There are functions to retrieve the used Currency, Language, Capital City, Continent and Telephone code.</documentation>
+ <port name="CountryInfoServiceSoap" binding="tns:CountryInfoServiceSoapBinding">
+ <soap:address location="http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso"/>
+ </port>
+ <port name="CountryInfoServiceSoap12" binding="tns:CountryInfoServiceSoapBinding12">
+ <soap12:address location="http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso"/>
+ </port>
+ </service>
+</definitions>
diff --git a/Year_3/TSDWL/WSDL/CountryClient/src/java/it/dmi/tsdwl/country/CountryServlet.java b/Year_3/TSDWL/WSDL/CountryClient/src/java/it/dmi/tsdwl/country/CountryServlet.java
new file mode 100644
index 0000000..f9f4405
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/src/java/it/dmi/tsdwl/country/CountryServlet.java
@@ -0,0 +1,75 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package it.dmi.tsdwl.country;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.oorsprong.websamples.ArrayOftCountryCodeAndName;
+import org.oorsprong.websamples.TCountryCodeAndName;
+/**
+ *
+ * @author dcariotti
+ */
+@WebServlet(name = "CountryServlet", urlPatterns = {"/CountryServlet"})
+public class CountryServlet extends HttpServlet {
+ /**
+ * Handles the HTTP <code>GET</code> method.
+ *
+ * @param request servlet request
+ * @param response servlet response
+ * @throws ServletException if a servlet-specific error occurs
+ * @throws IOException if an I/O error occurs
+ */
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ List<TCountryCodeAndName> countries = this.listOfCountryNamesByName().getTCountryCodeAndName();
+
+ request.setAttribute("countries", countries);
+
+ RequestDispatcher view = request.getRequestDispatcher("list.jsp");
+
+ view.forward(request, response);
+ }
+
+ /**
+ * Handles the HTTP <code>POST</code> method.
+ *
+ * @param request servlet request
+ * @param response servlet response
+ * @throws ServletException if a servlet-specific error occurs
+ * @throws IOException if an I/O error occurs
+ */
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+
+ }
+
+ /**
+ * Returns a short description of the servlet.
+ *
+ * @return a String containing servlet description
+ */
+ @Override
+ public String getServletInfo() {
+ return "Short description";
+ }// </editor-fold>
+
+ private static ArrayOftCountryCodeAndName listOfCountryNamesByName() {
+ org.oorsprong.websamples.CountryInfoService service = new org.oorsprong.websamples.CountryInfoService();
+ org.oorsprong.websamples.CountryInfoServiceSoapType port = service.getCountryInfoServiceSoap();
+ return port.listOfCountryNamesByName();
+ }
+
+
+}
diff --git a/Year_3/TSDWL/WSDL/CountryClient/src/java/it/dmi/tsdwl/country/SearchCapital.java b/Year_3/TSDWL/WSDL/CountryClient/src/java/it/dmi/tsdwl/country/SearchCapital.java
new file mode 100644
index 0000000..1a7eb27
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/src/java/it/dmi/tsdwl/country/SearchCapital.java
@@ -0,0 +1,104 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package it.dmi.tsdwl.country;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ *
+ * @author dcariotti
+ */
+@WebServlet(name = "SearchCapital", urlPatterns = {"/SearchCapital"})
+public class SearchCapital extends HttpServlet {
+
+ /**
+ * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
+ * methods.
+ *
+ * @param request servlet request
+ * @param response servlet response
+ * @throws ServletException if a servlet-specific error occurs
+ * @throws IOException if an I/O error occurs
+ */
+ protected void processRequest(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ response.setContentType("text/html;charset=UTF-8");
+ try (PrintWriter out = response.getWriter()) {
+ /* TODO output your page here. You may use following sample code. */
+ out.println("<!DOCTYPE html>");
+ out.println("<html>");
+ out.println("<head>");
+ out.println("<title>Servlet SearchCapital</title>");
+ out.println("</head>");
+ out.println("<body>");
+ out.println("<h1>Servlet SearchCapital at " + request.getContextPath() + "</h1>");
+ out.println("</body>");
+ out.println("</html>");
+ }
+ }
+
+ /**
+ * Handles the HTTP <code>GET</code> method.
+ *
+ * @param request servlet request
+ * @param response servlet response
+ * @throws ServletException if a servlet-specific error occurs
+ * @throws IOException if an I/O error occurs
+ */
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ String isoCode = request.getParameter("iso");
+ String capital = this.capitalCity(isoCode);
+
+ if (capital.length() == 0) {
+ try (PrintWriter out = response.getWriter()) {
+ out.println("Capital not found");
+ }
+ } else {
+ try (PrintWriter out = response.getWriter()) {
+ out.println("Capital is " + capital);
+ }
+ }
+ }
+
+ /**
+ * Handles the HTTP <code>POST</code> method.
+ *
+ * @param request servlet request
+ * @param response servlet response
+ * @throws ServletException if a servlet-specific error occurs
+ * @throws IOException if an I/O error occurs
+ */
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ processRequest(request, response);
+ }
+
+ /**
+ * Returns a short description of the servlet.
+ *
+ * @return a String containing servlet description
+ */
+ @Override
+ public String getServletInfo() {
+ return "Short description";
+ }// </editor-fold>
+
+ private static String capitalCity(java.lang.String sCountryISOCode) {
+ org.oorsprong.websamples.CountryInfoService service = new org.oorsprong.websamples.CountryInfoService();
+ org.oorsprong.websamples.CountryInfoServiceSoapType port = service.getCountryInfoServiceSoap();
+ return port.capitalCity(sCountryISOCode);
+ }
+
+}
diff --git a/Year_3/TSDWL/WSDL/CountryClient/web/META-INF/context.xml b/Year_3/TSDWL/WSDL/CountryClient/web/META-INF/context.xml
new file mode 100644
index 0000000..bcfc615
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/web/META-INF/context.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Context path="/CountryClient"/>
diff --git a/Year_3/TSDWL/WSDL/CountryClient/web/WEB-INF/jax-ws-catalog.xml b/Year_3/TSDWL/WSDL/CountryClient/web/WEB-INF/jax-ws-catalog.xml
new file mode 100644
index 0000000..a15a205
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/web/WEB-INF/jax-ws-catalog.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">
+ <system systemId="http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?wsdl" uri="wsdl/www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso.wsdl"/>
+</catalog> \ No newline at end of file
diff --git a/Year_3/TSDWL/WSDL/CountryClient/web/index.html b/Year_3/TSDWL/WSDL/CountryClient/web/index.html
new file mode 100644
index 0000000..c627c24
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/web/index.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<!--
+To change this license header, choose License Headers in Project Properties.
+To change this template file, choose Tools | Templates
+and open the template in the editor.
+-->
+<html>
+ <head>
+ <title>TODO supply a title</title>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ </head>
+ <body>
+ <div>TODO write content</div>
+ </body>
+</html>
diff --git a/Year_3/TSDWL/WSDL/CountryClient/web/list.jsp b/Year_3/TSDWL/WSDL/CountryClient/web/list.jsp
new file mode 100644
index 0000000..e3406b4
--- /dev/null
+++ b/Year_3/TSDWL/WSDL/CountryClient/web/list.jsp
@@ -0,0 +1,24 @@
+<%--
+ Document : list
+ Created on : Jan 19, 2022, 9:57:20 PM
+ Author : dcariotti
+--%>
+
+<%@page import="org.oorsprong.websamples.TCountryCodeAndName"%>
+<%@page import="java.util.List"%>
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Countries list</title>
+ </head>
+ <body>
+ <h1>Countries list</h1>
+ <% List<TCountryCodeAndName> languages = (List<TCountryCodeAndName>) request.getAttribute("countries"); %>
+ <% for (TCountryCodeAndName language : languages) { %>
+ <p><%= language.getSName()%> <a href="/CountryClient/SearchCapital?iso=<%= language.getSISOCode() %>">Search capital</a></p>
+ <% } %>
+
+ </body>
+</html>