initscript {
  /*
  repositories {
    add(new org.apache.ivy.plugins.resolver.URLResolver()) {
      name = 'plugins-repo'
      m2compatible = true
      url = 'http://repo.jfrog.org/artifactory/plugins-releases'
      addArtifactPattern('http://repo.jfrog.org/artifactory/plugins-releases/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]')
      addIvyPattern('http://repo.jfrog.org/artifactory/plugins-releases/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).pom')
    }
  }
  dependencies {
    classpath 'XXX'
  }
  */
}

logger.debug("Applying Artifactory Gradle Settings")

addListener(new ArtifactoryGradleSettings())
class ArtifactoryGradleSettings extends BuildAdapter implements BuildListener {

  def void projectsLoaded(Gradle gradle) {
    Project root = gradle.getRootProject()
    root.allprojects {

      buildscript {
        repositories {
          add(new org.apache.ivy.plugins.resolver.URLResolver()) {
            name = 'plugins-repo'
            m2compatible = true
            url = 'http://repo.jfrog.org/artifactory/plugins-releases'
            addArtifactPattern('http://repo.jfrog.org/artifactory/plugins-releases/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]')
            addIvyPattern('http://repo.jfrog.org/artifactory/plugins-releases/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).pom')
          }
          org.apache.ivy.util.url.CredentialsStore.INSTANCE.addCredentials("Artifactory Realm", "repo.jfrog.org", "anonymous", "${security.getEncryptedPassword()}");
        }
      }

      repositories {
        add(new org.apache.ivy.plugins.resolver.URLResolver()) {
          name = 'libs-repo'
          m2compatible = true
          url = 'http://repo.jfrog.org/artifactory/libs-snapshots'
          addArtifactPattern('http://repo.jfrog.org/artifactory/libs-snapshots/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]')
          addIvyPattern('http://repo.jfrog.org/artifactory/libs-snapshots/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).pom')
        }
        org.apache.ivy.util.url.CredentialsStore.INSTANCE.addCredentials("Artifactory Realm", "repo.jfrog.org", "anonymous", "${security.getEncryptedPassword()}");
      }
    }
  }
}