<!--

    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>      
