<!--

    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

-->

    <!-- run appclient in AppServ  -->
    <target name="runclient-secure" depends="init-common">

      <echo message="Executing appclient at Basedir:${basedir}" />
      <echo message="Appclient jar: ${assemble.dir}/${appname}AppClient.jar"
          />
      <echo message="Appname: ${appname}" />
      <echo message="Display name for appclient: ${appname}Client" />
      <echo message="appclient -client ${assemble.dir}/${appname}AppClient.jar -name ${appname}Client -textauth -user j2ee -password j2ee -xml ${env.S1AS_HOME}/domains/${admin.domain}/config/glassfish-acc.xml ${appclient.application.args}"/>
      <exec executable="${APPCLIENT}" failonerror="false">
    <env key="VMARGS" value="-Djavax.net.ssl.keyStore=${basedir}/../keystore.jks -Djavax.net.ssl.keyStorePassword=changeit -Djavax.net.ssl.trustStore=${basedir}/../cacerts.jks -Djavax.net.ssl.trustStorePassword=changeit"/>
        <arg line="-client ${assemble.dir}/${appname}AppClient.jar"/>
        <arg line="-name ${appname}Client"/>
        <arg line="-textauth"/>
        <arg line="-user j2ee"/>
        <arg line="-password j2ee"/>
        <arg line="-xml ${env.S1AS_HOME}/domains/${admin.domain}/config/glassfish-acc.xml"/>
        <arg line="${appclient.application.args}"/>
      </exec>
    </target>

    <!-- run appclient in AppServ  -->
    <target name="runclient-invalid-secure" depends="init-common">

      <echo message="Executing appclient at Basedir:${basedir}" />
      <echo message="Appclient jar: ${assemble.dir}/${appname}AppClient.jar"
          />
      <echo message="Appname: ${appname}" />
      <echo message="Display name for appclient: ${appname}Client" />
      <echo message="appclient -client ${assemble.dir}/${appname}AppClient.jar -name ${appname}Client -textauth -user j2ee -password j2ee -xml ${env.S1AS_HOME}/domains/${admin.domain}/config/glassfish-acc.xml ${appclient.application.args}"/>
      <exec executable="${APPCLIENT}" failonerror="false">
    <env key="VMARGS" value="-Djavax.net.ssl.keyStore=${basedir}/../invalid_keystore.jks -Djavax.net.ssl.keyStorePassword=changeit -Djavax.net.ssl.trustStore=${basedir}/../cacerts.jks -Djavax.net.ssl.trustStorePassword=changeit"/>
        <arg line="-client ${assemble.dir}/${appname}AppClient.jar"/>
        <arg line="-name ${appname}Client"/>
        <arg line="-textauth"/>
        <arg line="-user j2ee"/>
        <arg line="-password j2ee"/>
        <arg line="-xml ${env.S1AS_HOME}/domains/${admin.domain}/config/glassfish-acc.xml"/>
        <arg line="${appclient.application.args}"/>
      </exec>
    </target>
