usePlugin 'scala' usePlugin 'groovy' usePlugin 'war' usePlugin 'eclipse' version = '0.7' jar.enabled = true def appName = 'bigbluebutton' archivesBaseName = appName task resolveDeps(dependsOn: configurations.default.buildArtifacts, type: Copy) { into('lib') from configurations.default from configurations.default.allArtifacts*.file } repositories { add(new org.apache.ivy.plugins.resolver.ChainResolver()) { name = 'remote' returnFirst = true add(new org.apache.ivy.plugins.resolver.URLResolver()) { name = "googlecode" addArtifactPattern "http://red5.googlecode.com/svn/repository/[artifact](-[revision]).[ext]" addArtifactPattern "http://red5.googlecode.com/svn/repository/[organisation]/[artifact](-[revision]).[ext]" } add(new org.apache.ivy.plugins.resolver.URLResolver()) { name = "blindside-repos" addArtifactPattern "http://blindside.googlecode.com/svn/repository/[artifact](-[revision]).[ext]" addArtifactPattern "http://blindside.googlecode.com/svn/repository/[organisation]/[artifact](-[revision]).[ext]" } add(new org.apache.ivy.plugins.resolver.URLResolver()) { name = "maven2-central" m2compatible = true addArtifactPattern "http://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact](-[revision]).[ext]" addArtifactPattern "http://repo1.maven.org/maven2/[organisation]/[artifact]/[revision]/[artifact](-[revision]).[ext]" } add(new org.apache.ivy.plugins.resolver.URLResolver()) { name = "testng_ibiblio_maven2" m2compatible = true addArtifactPattern "http://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact](-[revision])-jdk15.[ext]" addArtifactPattern "http://repo1.maven.org/maven2/[organisation]/[artifact]/[revision]/[artifact](-[revision])-jdk15.[ext]" } add(new org.apache.ivy.plugins.resolver.URLResolver()) { name = "netty-dependency" m2compatible = true addArtifactPattern "http://repository.jboss.org/nexus/content/groups/public-jboss/[organisation]/[module]/[revision]/[artifact](-[revision]).[ext]" addArtifactPattern "http://repo1.maven.org/maven2/[organisation]/[artifact]/[revision]/[artifact](-[revision]).[ext]" } } mavenRepo urls: 'http://scala-tools.org/repo-releases/' flatDir name: 'fileRepo', dirs: System.getenv()['FLAT_REPO'] } dependencies { // JMS compile 'org.apache.activemq:activemq-core:5.1.0@jar' compile 'org/apache/geronimo:geronimo-j2ee-management_1.0_spec:1.0@jar' compile 'org/apache/geronimo:geronimo-jms_1.1_spec:1.0@jar' // Servlet providedCompile 'javax.servlet:servlet-api:2.5@jar' // Mina providedCompile 'org.apache.mina:mina-core:2.0.0-RC1@jar' providedCompile 'org.apache.mina:mina-integration-spring:1.1.7@jar' // Asterisk-Java compile 'org.asteriskjava:asterisk-java:1.0.0.M3@jar' // Spring providedCompile 'spring:spring-web:3.0.0@jar', 'aopalliance:aopalliance:1.0:@jar' providedCompile 'spring:spring-beans:3.0.0@jar', 'spring:spring-aop:3.0.0@jar' providedCompile 'spring:spring-context:3.0.0@jar', 'spring:spring-core:3.0.0@jar' compile 'spring:spring-tx:2.5.6@jar', 'spring:spring-jms:3.0.0@jar' // Spring Integration compile 'org/spring/integration:spring-integration-core:2.0.0.M2@jar' compile 'org/spring/integration:spring-integration-adapter:2.0.0.M2@jar' compile 'org/spring/integration:spring-integration-stream:2.0.0.M2@jar' compile 'org/spring/integration:spring-integration-file:2.0.0.M2@jar' compile 'org/spring/integration:spring-integration-jms:2.0.0.M2@jar' // Red5 providedCompile 'org/red5:red5:0.91@jar' // Logging providedCompile ':logback-core:0.9.18@jar', ':logback-classic:0.9.18@jar', ':slf4j-api:1.5.10@jar' providedCompile ':jcl-over-slf4j:1.5.10@jar', ':log4j-over-slf4j:1.5.10@jar' // Java Concurrency In Practice providedCompile 'net.jcip:jcip-annotations:1.0@jar' // YAML compile 'org/ho:jyaml:1.3@jar' // GROOVY groovy 'org.codehaus.groovy:groovy-all:1.6.4@jar' // Testing testRuntime 'org/testng:testng:5.8@jar', 'org/fitnesse:fitnesse:20090214@jar', 'org.easymock:easymock:2.4@jar' // Libraries needed to run the scala tools scalaTools 'org.scala-lang:scala-compiler:2.7.7' scalaTools 'org.scala-lang:scala-library:2.7.7' // Libraries needed for scala api compile 'org.scala-lang:scala-library:2.7.7' //redis compile 'redis.clients:jedis:1.5.1' compile 'commons-pool:commons-pool:1.5.5' compile 'org/bigbluebutton/common:bbb-common-message:0.8@jar' // Freeswitch ESL Client compile 'org/freeswitch:fs-esl-client:0.8@jar' compile 'org.jboss.netty:netty:3.2.1.Final@jar' } test { useTestNG() } war.doLast { ant.unzip(src: war.archivePath, dest: "$buildDir/$appName") ant.copy(file: "$buildDir/$appName/WEB-INF/logback-bigbluebutton.xml", todir: "$buildDir/$appName/WEB-INF/classes") } task deploy() << { def red5AppsDir = '/usr/share/red5/webapps' def bbbDir = new File("${red5AppsDir}/$appName") println "Deleting $bbbDir" ant.delete(dir: bbbDir) ant.mkdir(dir: bbbDir) ant.copy(todir: bbbDir) { fileset(dir: "$buildDir/$appName") } }