<!--

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

-->

<service-config>
    <config-bundle location="domain/configs/config[$CURRENT_INSTANCE_CONFIG_NAME]" replace-if-exist="false">
        <customization-tokens>
            <customization-token
                title="$jms.service.portNumber.title" name="JMS_PROVIDER_PORT"
                default-value="7676"
                description="$jms.service.portNumber.description">
            <port base-offset="7676"></port>
            </customization-token>
        </customization-tokens>
        <configuration-element config-bean-class-name="com.sun.enterprise.connectors.jms.config.JmsService">
<![CDATA[
    <jms-service default-jms-host="default_JMS_host" type="EMBEDDED">
        <jms-host port="${JMS_PROVIDER_PORT}" host="localhost" name="default_JMS_host"/>
   </jms-service>
]]>
        </configuration-element>
    </config-bundle>

    <config-bundle location="domain/resources" replace-if-exist="false">
        <configuration-element config-bean-class-name="org.glassfish.connectors.config.ConnectorConnectionPool">
<![CDATA[
    <connector-connection-pool name="jms/__defaultConnectionFactory-Connection-Pool" max-pool-size="250" steady-pool-size="1" resource-adapter-name="jmsra" connection-definition-name="jakarta.jms.ConnectionFactory">
    </connector-connection-pool>
]]>
        </configuration-element>
    </config-bundle>

    <config-bundle location="domain/resources" replace-if-exist="false">
        <configuration-element config-bean-class-name="org.glassfish.connectors.config.ConnectorResource">
<![CDATA[
    <connector-resource pool-name="jms/__defaultConnectionFactory-Connection-Pool" jndi-name="jms/__defaultConnectionFactory" object-type="system-all-req"></connector-resource>
]]>
        </configuration-element>
    </config-bundle>

    <config-bundle location="domain/servers/server[$CURRENT_INSTANCE_SERVER_NAME]" replace-if-exist="false">
        <configuration-element config-bean-class-name="com.sun.enterprise.config.serverbeans.ResourceRef">
<![CDATA[
    <resource-ref ref="jms/__defaultConnectionFactory"/>
]]>
        </configuration-element>
    </config-bundle>
</service-config>
