project(':util:org.eclipse.virgo.util.common') {
    dependencies {
        testCompile group: 'org.easymock', name: 'easymock', version: easymockVersion
    }
}

project(':util:org.eclipse.virgo.util.io') {
    dependencies {
        compile group: "org.eclipse.virgo.mirrored", name: "org.slf4j.api", version: slf4jVersion, configuration: "compile", ext: "jar"

        compile project(':util:org.eclipse.virgo.util.common')
        compile project(':util:org.eclipse.virgo.util.math')
    }
}

project(':util:org.eclipse.virgo.util.jmx') {
    dependencies {
        compile group: "org.eclipse.virgo.mirrored", name: "org.slf4j.api", version: slf4jVersion, configuration: "compile", ext: "jar"
    }
}

project(':util:org.eclipse.virgo.util.osgi') {
    dependencies {
        testCompile group: 'org.easymock', name: 'easymock', version: easymockVersion

        compile group: "org.eclipse.virgo.mirrored", name: "org.eclipse.osgi", version: equinoxVersion, configuration: "compile", ext: "jar"

        compile project(':util:org.eclipse.virgo.util.common')
        compile project(':util:org.eclipse.virgo.util.parser.manifest')
    }
}

project(':util:org.eclipse.virgo.util.osgi.manifest') {
    dependencies {

        compile group: "org.eclipse.virgo.mirrored", name: "org.eclipse.osgi", version: equinoxVersion, configuration: "compile", ext: "jar"

        compile project(':util:org.eclipse.virgo.util.common')
        compile project(':util:org.eclipse.virgo.util.io')
        compile project(':util:org.eclipse.virgo.util.parser.manifest')
    }
}
