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

import groovy.io.FileType

apply plugin: 'java'

ext {
    profile = "base"
}

repositories {
    mavenCentral()
}

dependencies {
    //compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.google.code.gson:gson:2.8.5'
    compile 'org.json:json:20190722'
}

jar {
    manifest {
        attributes('Main-Class': 'org.apache.openwhisk.runtime.java.action.Proxy')
    }
}

task copyDependencies(type: Copy) {
  println "Task: copyDependencies"
  def target = "profiles/$profile/libs"

  from configurations.compile
  into target

  doLast {
    dumpDir(".")
    dumpDir(target)
  }
}

def dumpDir(dir) {
  println "dumpDir('"+ dir + "'):"
  new File(dir).listFiles().sort{ it.name }.reverse().each { def f ->
    println ">> " + f.name
    }
}

task oneJar(type: Jar) {
    outputs.upToDateWhen { false }
    manifest.from jar.manifest
    classifier = 'all'
    from {
        configurations.runtime.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    } {
        exclude "META-INF/*.SF"
        exclude "META-INF/*.DSA"
        exclude "META-INF/*.RSA"
    }
    with jar
}
