# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial

is.autoload=true

module.jar.verifylinkageignores=org((\.apache\.commons\.logging\.impl)|(\.springframework)).*


# Spring 5.2.9
release.external/spring-aop-5.3.31.jar=modules/ext/spring-5/spring-aop-5.3.31.jar
release.external/spring-aspects-5.3.31.jar=modules/ext/spring-5/spring-aspects-5.3.31.jar
release.external/spring-beans-5.3.31.jar=modules/ext/spring-5/spring-beans-5.3.31.jar
release.external/spring-context-5.3.31.jar=modules/ext/spring-5/spring-context-5.3.31.jar
release.external/spring-context-indexer-5.3.31.jar=modules/ext/spring-5/spring-context-indexer-5.3.31.jar
release.external/spring-context-support-5.3.31.jar=modules/ext/spring-5/spring-context-support-5.3.31.jar
release.external/spring-core-5.3.31.jar=modules/ext/spring-5/spring-core-5.3.31.jar
release.external/spring-expression-5.3.31.jar=modules/ext/spring-5/spring-expression-5.3.31.jar
release.external/spring-instrument-5.3.31.jar=modules/ext/spring-5/spring-instrument-5.3.31.jar
release.external/spring-jcl-5.3.31.jar=modules/ext/spring-5/spring-jcl-5.3.31.jar
release.external/spring-jdbc-5.3.31.jar=modules/ext/spring-5/spring-jdbc-5.3.31.jar
release.external/spring-jms-5.3.31.jar=modules/ext/spring-5/spring-jms-5.3.31.jar
release.external/spring-messaging-5.3.31.jar=modules/ext/spring-5/spring-messaging-5.3.31.jar
release.external/spring-orm-5.3.31.jar=modules/ext/spring-5/spring-orm-5.3.31.jar
release.external/spring-oxm-5.3.31.jar=modules/ext/spring-5/spring-oxm-5.3.31.jar
release.external/spring-test-5.3.31.jar=modules/ext/spring-5/spring-test-5.3.31.jar
release.external/spring-tx-5.3.31.jar=modules/ext/spring-5/spring-tx-5.3.31.jar
release.external/spring-web-5.3.31.jar=modules/ext/spring-5/spring-web-5.3.31.jar
release.external/spring-webflux-5.3.31.jar=modules/ext/spring-5/spring-webflux-5.3.31.jar
release.external/spring-webmvc-5.3.31.jar=modules/ext/spring-5/spring-webmvc-5.3.31.jar
release.external/spring-websocket-5.3.31.jar=modules/ext/spring-5/spring-websocket-5.3.31.jar

jnlp.indirect.jars=\
    modules/ext/spring-5/spring-aop-5.3.31.jar,\
    modules/ext/spring-5/spring-aspects-5.3.31.jar,\
    modules/ext/spring-5/spring-beans-5.3.31.jar,\
    modules/ext/spring-5/spring-context-5.3.31.jar,\
    modules/ext/spring-5/spring-context-indexer-5.3.31.jar,\
    modules/ext/spring-5/spring-context-support-5.3.31.jar,\
    modules/ext/spring-5/spring-core-5.3.31.jar,\
    modules/ext/spring-5/spring-expression-5.3.31.jar,\
    modules/ext/spring-5/spring-instrument-5.3.31.jar,\
    modules/ext/spring-5/spring-jcl-5.3.31.jar,\
    modules/ext/spring-5/spring-jdbc-5.3.31.jar,\
    modules/ext/spring-5/spring-jms-5.3.31.jar,\
    modules/ext/spring-5/spring-messaging-5.3.31.jar,\
    modules/ext/spring-5/spring-orm-5.3.31.jar,\
    modules/ext/spring-5/spring-oxm-5.3.31.jar,\
    modules/ext/spring-5/spring-test-5.3.31.jar,\
    modules/ext/spring-5/spring-tx-5.3.31.jar,\
    modules/ext/spring-5/spring-web-5.3.31.jar,\
    modules/ext/spring-5/spring-webflux-5.3.31.jar,\
    modules/ext/spring-5/spring-webmvc-5.3.31.jar,\
    modules/ext/spring-5/spring-websocket-5.3.31.jar
