/*
 * 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.
 */

plugins {
  id 'java-platform'
  id 'org.apache.geode.gradle.geode-dependency-constraints'
  id 'geode-publish-common'
}

DependencyConstraints.apply(project)

publishing {
  publications {
    maven(MavenPublication) {
      from components.javaPlatform

      pom {
        withXml {
          // Published Geode artifacts are constrained to match the version of this BOM.
          // We exclude any child of the :boms subproject
          def thisNode = asNode()
          project.rootProject.subprojects.each { p ->
            if (p.findProperty('constrainVersionInBom')
                && !project(':boms').allprojects.contains(p)) {
              def geodeDependency =
                  thisNode.dependencyManagement.dependencies*.appendNode('dependency')
               geodeDependency*.appendNode('groupId')*.setValue(p.group)
               geodeDependency*.appendNode('artifactId')*.setValue(p.name)
               geodeDependency*.appendNode('version')*.setValue(p.version.toString())
               geodeDependency*.appendNode('scope')*.setValue('compile')
            }
          }
          thisNode
        }
      }
    }
  }
}
