| <?xml version="1.0" encoding="ISO-8859-1"?> |
| <!DOCTYPE project [ |
| <!-- |
| |
| Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. |
| |
| This program and the accompanying materials are made available under the |
| terms of the Eclipse Public License v. 2.0, which is available at |
| http://www.eclipse.org/legal/epl-2.0. |
| |
| This Source Code may also be made available under the following Secondary |
| Licenses when the conditions for such availability set forth in the |
| Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| version 2 with the GNU Classpath Exception, which is available at |
| https://www.gnu.org/software/classpath/license.html. |
| |
| SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| |
| --> |
| |
| <!ENTITY commonBuild SYSTEM "./../../config/common.xml"> |
| ]> |
| |
| <project name="miscellaneousTestForJSR88" default="usage" basedir="."> |
| |
| &commonBuild; |
| |
| <property name="appClientName" value="appclienttest"/> |
| <property name="appClientJarFile" value="${build}/${appClientName}.jar"/> |
| <property name="appClientModuleName" value="testAppClient"/> |
| |
| <property name="webServicesWorkaroundCheckWarFile" value="exampleFromJ2EETutorial/cb/provided-wars/jaxrpc-coffee-distributor.war"/> |
| |
| <path id="jsr88.exec.classpath"> |
| <path refid="gfv3.classpath"/> |
| <pathelement location="${env.APS_HOME}/devtests/deployment/util/build"/> |
| <pathelement location="${inst}/jdk/lib/tools.jar"/> |
| </path> |
| |
| <target name="prepare" depends="init"> |
| <mkdir dir="${build}"/> |
| </target> |
| |
| <target name="compile" depends="prepare"> |
| <javac srcdir="." |
| destdir="${build}" |
| includes="*.java" |
| debug="on" |
| failonerror="true"> |
| <classpath> |
| <path refid="gfv3.classpath"/> |
| <path refid="test.compile.classpath"/> |
| <pathelement location="../../util/build"/> <!-- need this to find the JSR88Deployer --> |
| </classpath> |
| </javac> |
| </target> |
| |
| <!-- |
| Run all the tests. |
| --> |
| <target name="run" depends="compile,assemble"> |
| <antcall target="runTestProgressObjectImpl"/> |
| <antcall target="runGetModulesTest"/> |
| <antcall target="runOpenJarWorkaroundTest"/> |
| </target> |
| |
| <!-- |
| The test for the ProgressObjectImpl class is a very simple Java class with |
| a few methods. No archives or deployments or undeployments are needed. |
| The test run should throw no exceptions if the code functions correctly. |
| --> |
| <target name="runTestProgressObjectImpl"> |
| <antcall target="declare-test"> |
| <param name="description" value="jsr88/misc - Test ProgressObjectImpl class (for correct management of listener list to avoid concurrent update errors)"/> |
| </antcall> |
| |
| <javaWithResult classname="TestProgressObjectImpl" |
| fork="true" |
| failonerror="false" |
| output="${build}/TestProgressObjectImpl.log" |
| dir="${build}" |
| resultProperty="result" |
| > |
| <classpath> |
| <path refid="jsr88.exec.classpath"/> |
| <pathelement path="${build}"/> |
| </classpath> |
| </javaWithResult> |
| |
| <antcall target="processResult"> |
| <param name="result" value="${result}"/> |
| <param name="log" value="${build}/TestProgressObjectImpl.log"/> |
| </antcall> |
| </target> |
| |
| |
| |
| <target name="assemble" depends="compile"> |
| <antcall target="buildAppClientJar"/> |
| </target> |
| |
| <target name="buildAppClientJar"> |
| <!-- |
| Create the application-client.xml file. |
| --> |
| <jar |
| destfile="${appClientJarFile}"> |
| <fileset dir="${basedir}" includes="**/application-client.xml **/sun-application-client.xml"/> |
| </jar> |
| </target> |
| |
| <!-- |
| To test the ability to get information about the modules through JSR88, first deploy an app client |
| (which exposed a bug), then use JSR88 to retrieve information about app client components, then undeploy |
| the app client. |
| --> |
| <target name="runGetModulesTest" depends="assemble"> |
| <antcall target="declare-test"> |
| <param name="description" value="jsr88/misc - Test ApplicationsConfigMBean class (for correct handling of app client object-type and enabled)"/> |
| </antcall> |
| |
| <!-- |
| Deploy an app client so we can test the bug fix. |
| --> |
| <antcall target="common.deploy.asadmin"> |
| <param name="arg.list" value="--name ${appClientModuleName} ${appClientJarFile}"/> |
| </antcall> |
| |
| <javaWithResult |
| fork="true" |
| failonerror="false" |
| jvm="${JAVA}" |
| classname="SimpleJSR88Client" |
| resultproperty="result" |
| > |
| <sysproperty key="jsr88client.user" value="${admin.user}"/> |
| <sysproperty key="jsr88client.password" value="${admin.password}"/> |
| <sysproperty key="jsr88client.host" value="${admin.host}"/> |
| <sysproperty key="jsr88client.port" value="${admin.port}"/> |
| <sysproperty key="com.sun.aas.installRoot" value="${inst}"/> |
| |
| <classpath> |
| <pathelement location="${inst}/lib/j2ee.jar"/> |
| <pathelement location="${build}"/> |
| <path refid="jsr88.exec.classpath"/> |
| </classpath> |
| |
| <!-- |
| The first command line argument to SimpleJSR88Client is the function to be performed. |
| --> |
| <arg line="getAvailableAppClientModules"/> |
| |
| </javaWithResult> |
| |
| <!-- |
| Undeploy the app client that we just deployed. |
| --> |
| <antcall target="common.undeploy.asadmin"> |
| <param name="arg.list" value="${appClientModuleName}"/> |
| </antcall> |
| |
| <antcall target="processResult"> |
| <param name="result" value="${result}"/> |
| <param name="log" value="${build}/GetModulesTest.log"/> |
| </antcall> |
| </target> |
| |
| <!-- |
| This test checks on a workaround that avoids a bug in J2SE that opens a jar file but never closes it. |
| This happens during web services compilation during deployment (in some cases) and the open jar file |
| prevents the app server from completely undeploying the app. A later attempt to deploy the app |
| again fails because of the open jar file. The administrator must shut down and restart the app |
| server to clear the open jar and permit the later deployment to succeed. |
| |
| Deployment has worked around this problem, and this test makes sure the workaround continues to work. |
| --> |
| <target name="runOpenJarWorkaroundTest" depends="init"> |
| <antcall target="declare-test"> |
| <param name="description" value="jsr88/misc - Test workaround of J2SE bug that leaves a jar file open during deployment"/> |
| </antcall> |
| |
| <!-- |
| Run the test program that deploys, undeploys, and deploys again. |
| --> |
| <javaWithResult |
| fork="true" |
| failonerror="false" |
| output="${build}/TestOpenJarFileWorkaround.log" |
| jvm="${JAVA}" |
| classname="TestOpenJarFileWorkaround" |
| resultproperty="result" |
| > |
| <sysproperty key="jsr88client.user" value="${admin.user}"/> |
| <sysproperty key="jsr88client.password" value="${admin.password}"/> |
| <sysproperty key="jsr88client.host" value="${admin.host}"/> |
| <sysproperty key="jsr88client.port" value="${admin.port}"/> |
| <sysproperty key="com.sun.aas.installRoot" value="${inst}"/> |
| |
| <classpath> |
| <pathelement location="${inst}/lib/j2ee.jar"/> |
| <pathelement location="${build}"/> |
| <pathelement location="../../util/build"/> <!-- need this to find the JSR88Deployer --> |
| <path refid="jsr88.exec.classpath"/> |
| </classpath> |
| |
| <!-- |
| The command line arguments are host, port, user, password, and the war to deploy. |
| --> |
| <arg line="${admin.host} ${admin.port} ${admin.user} ${admin.password} ${webServicesWorkaroundCheckWarFile}"/> |
| |
| </javaWithResult> |
| |
| <antcall target="processResult"> |
| <param name="result" value="${result}"/> |
| <param name="log" value="${build}/TestOpenJarFileWorkaround.log"/> |
| </antcall> |
| |
| </target> |
| |
| <target name="private-all"> |
| <antcall target="run"/> |
| </target> |
| |
| <target name="clobber" depends="clean"> |
| <delete dir="${build}"/> |
| </target> |
| |
| <target name="usage"> |
| <antcall target="all"/> |
| </target> |
| |
| </project> |