<!--

    Copyright (c) 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

-->


<property name="module" value="sec-ssl"/>
<property name="appname" value="${module}-converter"/>

<property name="assemble" value="${build.classes.dir}/archive"/>
<property name="appclientjar.files" value="${build.classes.dir}"/>
<property name="appclient.jar" value="${assemble.dir}/${appname}-client.jar"/>

<property name="test.client" value="com.sun.s1peqe.security.ssl.converter.client.ConverterClient"/>

<property name="application.xml" value="descriptor/application.xml"/>
<property name="sun-application.xml" value="descriptor/sun-application.xml"/>
<property name="ejb-jar.xml" value="descriptor/ejb-jar.xml"/>
<property name="sun-ejb-jar.xml" value="descriptor/sun-ejb-jar.xml"/>
<property name="application-client.xml" value="descriptor/application-client.xml"/>
<property name="sun-application-client.xml" value="descriptor/sun-application-client.xml"/>

<property name="app.type" value="application"/>

<!-- ============================================================ -->
<!-- Standalone Client specific properties which run without ACC  -->
<!-- ============================================================ -->
<!--
<property name="jndi.name" value="SSLconverter"/>
<property name="provider.url" value="iiop://localhost:${orb.port}"/>
<property name="ctxfactory" value="com.sun.enterprise.naming.SerialInitContextFactory"/>
<property name="ctxfactory" value="com.sun.jndi.cosnaming.CNCtxFactory"/>
-->

