Moved to multi-project gradle build; added (non-working) hello world for bulletin-board server using Jetty and Jersey
							parent
							
								
									d75060e914
								
							
						
					
					
						commit
						eb1230d719
					
				
							
								
								
									
										199
									
								
								build.gradle
								
								
								
								
							
							
						
						
									
										199
									
								
								build.gradle
								
								
								
								
							| 
						 | 
					@ -1,206 +1,11 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
plugins {
 | 
					 | 
				
			||||||
  id "us.kirchmeier.capsule" version "1.0.1"
 | 
					 | 
				
			||||||
  id 'com.google.protobuf' version '0.7.0'
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apply plugin: 'java'
 | 
					 | 
				
			||||||
apply plugin: 'com.google.protobuf'
 | 
					 | 
				
			||||||
apply plugin: 'eclipse'
 | 
					 | 
				
			||||||
apply plugin: 'idea'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apply plugin: 'application'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apply plugin: 'maven-publish'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
mainClassName='Demo'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Is this a snapshot version?
 | 
					 | 
				
			||||||
ext { isSnapshot = false } 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ext {
 | 
					 | 
				
			||||||
        groupId = 'org.factcenter'
 | 
					 | 
				
			||||||
        nexusRepository = "https://cs.idc.ac.il/nexus/content/groups/${isSnapshot ? 'unstable' : 'public'}/"
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        // Credentials for IDC nexus repositories (needed only for using unstable repositories and publishing)
 | 
					 | 
				
			||||||
        // Should be set in ${HOME}/.gradle/gradle.properties
 | 
					 | 
				
			||||||
        nexusUser =  project.hasProperty('nexusUser') ? project.property('nexusUser') : ""
 | 
					 | 
				
			||||||
        nexusPassword = project.hasProperty('nexusPassword') ? project.property('nexusPassword') : ""
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
description = "Meerkat Voting"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Your project version
 | 
					 | 
				
			||||||
version = "0.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
version += "${isSnapshot ? '-SNAPSHOT' : ''}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dependencies {
 | 
					 | 
				
			||||||
    // Logging
 | 
					 | 
				
			||||||
    compile 'org.slf4j:slf4j-api:1.7.7'
 | 
					 | 
				
			||||||
    runtime 'ch.qos.logback:logback-classic:1.1.2'
 | 
					 | 
				
			||||||
    runtime 'ch.qos.logback:logback-core:1.1.2'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Google protobufs
 | 
					 | 
				
			||||||
    compile 'com.google.protobuf:protobuf-java:3.+'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    testCompile 'junit:junit:4.+'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    runtime 'org.codehaus.groovy:groovy:2.4.+'
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*==== You probably don't have to edit below this line =======*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
protobuf {
 | 
					 | 
				
			||||||
    // Configure the protoc executable
 | 
					 | 
				
			||||||
    protoc {
 | 
					 | 
				
			||||||
    // Download from repositories
 | 
					 | 
				
			||||||
        artifact = 'com.google.protobuf:protoc:3.+'
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
idea {
 | 
					 | 
				
			||||||
    module {
 | 
					 | 
				
			||||||
        // add protobuf generated sources to generated source dir.
 | 
					 | 
				
			||||||
        sourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
					 | 
				
			||||||
        generatedSourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Don't exclude build directory 
 | 
					 | 
				
			||||||
	excludeDirs -= file(buildDir)
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					subprojects { proj ->
 | 
				
			||||||
 | 
					    proj.afterEvaluate {
 | 
				
			||||||
        // Used to generate initial maven-dir layout
 | 
					        // Used to generate initial maven-dir layout
 | 
				
			||||||
        task "create-dirs" { description = "Create default maven directory structure" } << {
 | 
					        task "create-dirs" { description = "Create default maven directory structure" } << {
 | 
				
			||||||
            sourceSets*.java.srcDirs*.each { it.mkdirs() }
 | 
					            sourceSets*.java.srcDirs*.each { it.mkdirs() }
 | 
				
			||||||
            sourceSets*.resources.srcDirs*.each { it.mkdirs() }
 | 
					            sourceSets*.resources.srcDirs*.each { it.mkdirs() }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*===================================
 | 
					 | 
				
			||||||
 *        "Fat" Build targets
 | 
					 | 
				
			||||||
 *===================================*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
task fatjar(type: Jar) {
 | 
					 | 
				
			||||||
    description = "Generate a single jar containing everything. Use -Pfatmain=... to override main class"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    destinationDir = buildDir
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def fatMain = hasProperty('fatmain') ? fatmain : mainClassName
 | 
					 | 
				
			||||||
    def testJar = hasProperty('test')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    appendix = "${fatMain}-fat"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (testJar) {
 | 
					 | 
				
			||||||
        from sourceSets.test.output
 | 
					 | 
				
			||||||
        from configurations.testRuntime.collect { it.isDirectory() ? it : zipTree(it) }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    from sourceSets.main.output // that's it
 | 
					 | 
				
			||||||
    from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    exclude 'META-INF/MANIFEST.MF'
 | 
					 | 
				
			||||||
    exclude 'META-INF/*.SF'
 | 
					 | 
				
			||||||
    exclude 'META-INF/*.DSA'
 | 
					 | 
				
			||||||
    exclude 'META-INF/*.RSA'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    manifest { attributes 'Main-Class': fatMain }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
task mavenCapsule(type: MavenCapsule){
 | 
					 | 
				
			||||||
    description = "Generate a capsule jar that automatically downloads and caches dependencies when run."
 | 
					 | 
				
			||||||
    applicationClass mainClassName
 | 
					 | 
				
			||||||
    destinationDir = buildDir
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
task fatCapsule(type: FatCapsule){
 | 
					 | 
				
			||||||
    description = "Generate a single capsule jar containing everything. Use -Pfatmain=... to override main class"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    destinationDir = buildDir
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def fatMain = hasProperty('fatmain') ? fatmain : mainClassName
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    applicationClass fatMain
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def testJar = hasProperty('test')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (hasProperty('fatmain')) {
 | 
					 | 
				
			||||||
        appendix = "fat-${fatMain}"
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        appendix = "fat"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (testJar) {
 | 
					 | 
				
			||||||
        from sourceSets.test.output
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
/*===================================
 | 
					 | 
				
			||||||
 *        Repositories
 | 
					 | 
				
			||||||
 *===================================*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
repositories {
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        // Prefer the local nexus repository (it may have 3rd party artifacts not found in mavenCentral)
 | 
					 | 
				
			||||||
        maven { 
 | 
					 | 
				
			||||||
            url nexusRepository
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            if (isSnapshot) {
 | 
					 | 
				
			||||||
                credentials { username 
 | 
					 | 
				
			||||||
                    password 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    username nexusUser
 | 
					 | 
				
			||||||
                    password nexusPassword 
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Use 'maven central' for other dependencies.
 | 
					 | 
				
			||||||
        mavenCentral()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
task "info" << {
 | 
					 | 
				
			||||||
        println "Project: ${project.name}"
 | 
					 | 
				
			||||||
println "Description: ${project.description}"
 | 
					 | 
				
			||||||
        println "--------------------------"
 | 
					 | 
				
			||||||
        println "GroupId: $groupId"
 | 
					 | 
				
			||||||
        println "Version: $version (${isSnapshot ? 'snapshot' : 'release'})"
 | 
					 | 
				
			||||||
        println ""
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
info.description 'Print some information about project parameters'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*===================================
 | 
					 | 
				
			||||||
 *        Publishing
 | 
					 | 
				
			||||||
 *===================================*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
publishing {
 | 
					 | 
				
			||||||
    publications {
 | 
					 | 
				
			||||||
        mavenJava(MavenPublication) {
 | 
					 | 
				
			||||||
            groupId project.groupId
 | 
					 | 
				
			||||||
            pom.withXml {
 | 
					 | 
				
			||||||
                asNode().appendNode('description', project.description)
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            from project.components.java
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    repositories {
 | 
					 | 
				
			||||||
        maven {
 | 
					 | 
				
			||||||
            url "https://cs.idc.ac.il/nexus/content/repositories/${project.isSnapshot ? 'snapshots' : 'releases'}"
 | 
					 | 
				
			||||||
            credentials { username 
 | 
					 | 
				
			||||||
                password 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                username nexusUser
 | 
					 | 
				
			||||||
                password nexusPassword 
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,177 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plugins {
 | 
				
			||||||
 | 
					  id "us.kirchmeier.capsule" version "1.0.1"
 | 
				
			||||||
 | 
					  id 'com.google.protobuf' version '0.7.0'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'java'
 | 
				
			||||||
 | 
					apply plugin: 'eclipse'
 | 
				
			||||||
 | 
					apply plugin: 'idea'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Uncomment both lines below to define an application (must set mainClassName
 | 
				
			||||||
 | 
					//apply plugin: 'application'
 | 
				
			||||||
 | 
					//mainClassName='your.main.ApplicationClass'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'maven-publish'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Is this a snapshot version?
 | 
				
			||||||
 | 
					ext { isSnapshot = false } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ext {
 | 
				
			||||||
 | 
					        groupId = 'org.factcenter.meerkat'
 | 
				
			||||||
 | 
					        nexusRepository = "https://cs.idc.ac.il/nexus/content/groups/${isSnapshot ? 'unstable' : 'public'}/"
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Credentials for IDC nexus repositories (needed only for using unstable repositories and publishing)
 | 
				
			||||||
 | 
					        // Should be set in ${HOME}/.gradle/gradle.properties
 | 
				
			||||||
 | 
					        nexusUser =  project.hasProperty('nexusUser') ? project.property('nexusUser') : ""
 | 
				
			||||||
 | 
					        nexusPassword = project.hasProperty('nexusPassword') ? project.property('nexusPassword') : ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description = "TODO: Add a description"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Your project version
 | 
				
			||||||
 | 
					version = "0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					version += "${isSnapshot ? '-SNAPSHOT' : ''}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dependencies {
 | 
				
			||||||
 | 
					    // Meerkat common
 | 
				
			||||||
 | 
					    compile project(':meerkat-common')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Logging
 | 
				
			||||||
 | 
					    compile 'org.slf4j:slf4j-api:1.7.7'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-classic:1.1.2'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-core:1.1.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Google protobufs
 | 
				
			||||||
 | 
					    compile 'com.google.protobuf:protobuf-java:3.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    testCompile 'junit:junit:4.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runtime 'org.codehaus.groovy:groovy:2.4.+'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*==== You probably don't have to edit below this line =======*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protobuf {
 | 
				
			||||||
 | 
					    // Configure the protoc executable
 | 
				
			||||||
 | 
					    protoc {
 | 
				
			||||||
 | 
					    // Download from repositories
 | 
				
			||||||
 | 
					        artifact = 'com.google.protobuf:protoc:3.+'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					idea {
 | 
				
			||||||
 | 
					    module {
 | 
				
			||||||
 | 
					        // add protobuf generated sources to generated source dir.
 | 
				
			||||||
 | 
					        sourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					        generatedSourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Don't exclude build directory 
 | 
				
			||||||
 | 
						excludeDirs -= file(buildDir)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        "Fat" Build targets
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task mavenCapsule(type: MavenCapsule){
 | 
				
			||||||
 | 
					    description = "Generate a capsule jar that automatically downloads and caches dependencies when run."
 | 
				
			||||||
 | 
					    applicationClass mainClassName
 | 
				
			||||||
 | 
					    destinationDir = buildDir
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task fatCapsule(type: FatCapsule){
 | 
				
			||||||
 | 
					    description = "Generate a single capsule jar containing everything. Use -Pfatmain=... to override main class"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    destinationDir = buildDir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def fatMain = hasProperty('fatmain') ? fatmain : mainClassName
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    applicationClass fatMain
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def testJar = hasProperty('test')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (hasProperty('fatmain')) {
 | 
				
			||||||
 | 
					        appendix = "fat-${fatMain}"
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        appendix = "fat"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (testJar) {
 | 
				
			||||||
 | 
					        from sourceSets.test.output
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Repositories
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					repositories {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Prefer the local nexus repository (it may have 3rd party artifacts not found in mavenCentral)
 | 
				
			||||||
 | 
					        maven { 
 | 
				
			||||||
 | 
					            url nexusRepository
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if (isSnapshot) {
 | 
				
			||||||
 | 
					                credentials { username 
 | 
				
			||||||
 | 
					                    password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    username nexusUser
 | 
				
			||||||
 | 
					                    password nexusPassword 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Use local maven repository
 | 
				
			||||||
 | 
					        mavenLocal()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Use 'maven central' for other dependencies.
 | 
				
			||||||
 | 
					        mavenCentral()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task "info" << {
 | 
				
			||||||
 | 
					        println "Project: ${project.name}"
 | 
				
			||||||
 | 
					println "Description: ${project.description}"
 | 
				
			||||||
 | 
					        println "--------------------------"
 | 
				
			||||||
 | 
					        println "GroupId: $groupId"
 | 
				
			||||||
 | 
					        println "Version: $version (${isSnapshot ? 'snapshot' : 'release'})"
 | 
				
			||||||
 | 
					        println ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					info.description 'Print some information about project parameters'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Publishing
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					publishing {
 | 
				
			||||||
 | 
					    publications {
 | 
				
			||||||
 | 
					        mavenJava(MavenPublication) {
 | 
				
			||||||
 | 
					            groupId project.groupId
 | 
				
			||||||
 | 
					            pom.withXml {
 | 
				
			||||||
 | 
					                asNode().appendNode('description', project.description)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            from project.components.java
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    repositories {
 | 
				
			||||||
 | 
					        maven {
 | 
				
			||||||
 | 
					            url "https://cs.idc.ac.il/nexus/content/repositories/${project.isSnapshot ? 'snapshots' : 'releases'}"
 | 
				
			||||||
 | 
					            credentials { username 
 | 
				
			||||||
 | 
					                password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                username nexusUser
 | 
				
			||||||
 | 
					                password nexusPassword 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,211 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plugins {
 | 
				
			||||||
 | 
					  id "us.kirchmeier.capsule" version "1.0.1"
 | 
				
			||||||
 | 
					  id 'com.google.protobuf' version '0.7.0'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'java'
 | 
				
			||||||
 | 
					apply plugin: 'eclipse'
 | 
				
			||||||
 | 
					apply plugin: 'idea'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'jetty'
 | 
				
			||||||
 | 
					//mainClassName = 'Demo'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'maven-publish'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Is this a snapshot version?
 | 
				
			||||||
 | 
					ext { isSnapshot = false } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ext {
 | 
				
			||||||
 | 
					        groupId = 'org.factcenter.meerkat'
 | 
				
			||||||
 | 
					        nexusRepository = "https://cs.idc.ac.il/nexus/content/groups/${isSnapshot ? 'unstable' : 'public'}/"
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Credentials for IDC nexus repositories (needed only for using unstable repositories and publishing)
 | 
				
			||||||
 | 
					        // Should be set in ${HOME}/.gradle/gradle.properties
 | 
				
			||||||
 | 
					        nexusUser =  project.hasProperty('nexusUser') ? project.property('nexusUser') : ""
 | 
				
			||||||
 | 
					        nexusPassword = project.hasProperty('nexusPassword') ? project.property('nexusPassword') : ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description = "TODO: Add a description"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Your project version
 | 
				
			||||||
 | 
					version = "0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					version += "${isSnapshot ? '-SNAPSHOT' : ''}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dependencies {
 | 
				
			||||||
 | 
					    // Meerkat common
 | 
				
			||||||
 | 
					    compile project(':meerkat-common')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Jersey for RESTful API
 | 
				
			||||||
 | 
					    compile 'org.glassfish.jersey.containers:jersey-container-servlet:2.22.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Logging
 | 
				
			||||||
 | 
					    compile 'org.slf4j:slf4j-api:1.7.7'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-classic:1.1.2'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-core:1.1.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Google protobufs
 | 
				
			||||||
 | 
					    compile 'com.google.protobuf:protobuf-java:3.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    testCompile 'junit:junit:4.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runtime 'org.codehaus.groovy:groovy:2.4.+'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test {
 | 
				
			||||||
 | 
					    exclude '**/*IntegrationTest*'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task integrationTest(type: Test) {
 | 
				
			||||||
 | 
					    include '**/*IntegrationTest*'
 | 
				
			||||||
 | 
					    jettyRun {
 | 
				
			||||||
 | 
					        httpPort = 8081   // Port for test
 | 
				
			||||||
 | 
					        daemon = true
 | 
				
			||||||
 | 
					        stopPort = 8091   // Port for stop signal
 | 
				
			||||||
 | 
					        stopKey = 'stopKey'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    jettyStop {
 | 
				
			||||||
 | 
					        stopPort = 8091   // Port for stop signal
 | 
				
			||||||
 | 
					        stopKey = 'stopKey'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    doFirst {
 | 
				
			||||||
 | 
					        jettyRun.execute()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    doLast {
 | 
				
			||||||
 | 
					        jettyStop.execute()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*==== You probably don't have to edit below this line =======*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protobuf {
 | 
				
			||||||
 | 
					    // Configure the protoc executable
 | 
				
			||||||
 | 
					    protoc {
 | 
				
			||||||
 | 
					    // Download from repositories
 | 
				
			||||||
 | 
					        artifact = 'com.google.protobuf:protoc:3.+'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					idea {
 | 
				
			||||||
 | 
					    module {
 | 
				
			||||||
 | 
					        // add protobuf generated sources to generated source dir.
 | 
				
			||||||
 | 
					        sourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					        generatedSourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Don't exclude build directory 
 | 
				
			||||||
 | 
						excludeDirs -= file(buildDir)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        "Fat" Build targets
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (project.hasProperty('mainClassName') && (mainClassName != null)) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    task mavenCapsule(type: MavenCapsule) {
 | 
				
			||||||
 | 
					        description = "Generate a capsule jar that automatically downloads and caches dependencies when run."
 | 
				
			||||||
 | 
					        applicationClass mainClassName
 | 
				
			||||||
 | 
					        destinationDir = buildDir
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    task fatCapsule(type: FatCapsule) {
 | 
				
			||||||
 | 
					        description = "Generate a single capsule jar containing everything. Use -Pfatmain=... to override main class"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        destinationDir = buildDir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        def fatMain = hasProperty('fatmain') ? fatmain : mainClassName
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        applicationClass fatMain
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        def testJar = hasProperty('test')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (hasProperty('fatmain')) {
 | 
				
			||||||
 | 
					            appendix = "fat-${fatMain}"
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            appendix = "fat"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (testJar) {
 | 
				
			||||||
 | 
					            from sourceSets.test.output
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Repositories
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					repositories {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Prefer the local nexus repository (it may have 3rd party artifacts not found in mavenCentral)
 | 
				
			||||||
 | 
					        maven { 
 | 
				
			||||||
 | 
					            url nexusRepository
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if (isSnapshot) {
 | 
				
			||||||
 | 
					                credentials { username 
 | 
				
			||||||
 | 
					                    password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    username nexusUser
 | 
				
			||||||
 | 
					                    password nexusPassword 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Use local maven repository
 | 
				
			||||||
 | 
					        mavenLocal()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Use 'maven central' for other dependencies.
 | 
				
			||||||
 | 
					        mavenCentral()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task "info" << {
 | 
				
			||||||
 | 
					        println "Project: ${project.name}"
 | 
				
			||||||
 | 
					println "Description: ${project.description}"
 | 
				
			||||||
 | 
					        println "--------------------------"
 | 
				
			||||||
 | 
					        println "GroupId: $groupId"
 | 
				
			||||||
 | 
					        println "Version: $version (${isSnapshot ? 'snapshot' : 'release'})"
 | 
				
			||||||
 | 
					        println ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					info.description 'Print some information about project parameters'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Publishing
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					publishing {
 | 
				
			||||||
 | 
					    publications {
 | 
				
			||||||
 | 
					        mavenJava(MavenPublication) {
 | 
				
			||||||
 | 
					            groupId project.groupId
 | 
				
			||||||
 | 
					            pom.withXml {
 | 
				
			||||||
 | 
					                asNode().appendNode('description', project.description)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            from project.components.java
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    repositories {
 | 
				
			||||||
 | 
					        maven {
 | 
				
			||||||
 | 
					            url "https://cs.idc.ac.il/nexus/content/repositories/${project.isSnapshot ? 'snapshots' : 'releases'}"
 | 
				
			||||||
 | 
					            credentials { username 
 | 
				
			||||||
 | 
					                password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                username nexusUser
 | 
				
			||||||
 | 
					                password nexusPassword 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					../gradlew
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					package service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class HelloWorldService {
 | 
				
			||||||
 | 
					    public String sayHello() {
 | 
				
			||||||
 | 
					        return "Hello, World!";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					package webapp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.ws.rs.GET;
 | 
				
			||||||
 | 
					import javax.ws.rs.Path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import service.HelloWorldService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Path("/hello")
 | 
				
			||||||
 | 
					public class HelloWebApp {
 | 
				
			||||||
 | 
						private static HelloWorldService helloWorldService = new HelloWorldService();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@GET()
 | 
				
			||||||
 | 
						public String hello() {
 | 
				
			||||||
 | 
							return helloWorldService.sayHello();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					<web-app>
 | 
				
			||||||
 | 
					    <servlet>
 | 
				
			||||||
 | 
					        <servlet-name>Jersey Hello World Application</servlet-name>
 | 
				
			||||||
 | 
					        <servlet-class>
 | 
				
			||||||
 | 
					                org.glassfish.jersey.servlet.ServletContainer
 | 
				
			||||||
 | 
					        </servlet-class>
 | 
				
			||||||
 | 
					        <init-param>
 | 
				
			||||||
 | 
					            <param-name>jersey.config.server.provider.packages</param-name>
 | 
				
			||||||
 | 
					            <param-value>webapp</param-value>
 | 
				
			||||||
 | 
					        </init-param>
 | 
				
			||||||
 | 
					        <load-on-startup>1</load-on-startup>
 | 
				
			||||||
 | 
					    </servlet>
 | 
				
			||||||
 | 
					    <servlet-mapping>
 | 
				
			||||||
 | 
					        <servlet-name>Jersey Hello World Application</servlet-name>
 | 
				
			||||||
 | 
					        <url-pattern>/*</url-pattern>
 | 
				
			||||||
 | 
					    </servlet-mapping>
 | 
				
			||||||
 | 
					</web-app>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					import javax.ws.rs.client.Client;
 | 
				
			||||||
 | 
					import javax.ws.rs.client.ClientBuilder;
 | 
				
			||||||
 | 
					import javax.ws.rs.client.WebTarget;
 | 
				
			||||||
 | 
					import static org.hamcrest.CoreMatchers.is;
 | 
				
			||||||
 | 
					import static org.hamcrest.MatcherAssert.assertThat;
 | 
				
			||||||
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class HelloIntegrationTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static String HELLO_URL = "http://localhost:8080/hello";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testHello() throws Exception {
 | 
				
			||||||
 | 
					        Client client = ClientBuilder.newClient();
 | 
				
			||||||
 | 
					        WebTarget webTarget = client.target(HELLO_URL);
 | 
				
			||||||
 | 
					        String response = webTarget.request().get(String.class);
 | 
				
			||||||
 | 
					        System.out.println(response);
 | 
				
			||||||
 | 
					        assertThat(response, is("Hello, World!"));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,199 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plugins {
 | 
				
			||||||
 | 
					  id "us.kirchmeier.capsule" version "1.0.1"
 | 
				
			||||||
 | 
					  id 'com.google.protobuf' version '0.7.0'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'java'
 | 
				
			||||||
 | 
					apply plugin: 'com.google.protobuf'
 | 
				
			||||||
 | 
					apply plugin: 'eclipse'
 | 
				
			||||||
 | 
					apply plugin: 'idea'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'application'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'maven-publish'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mainClassName='Demo'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Is this a snapshot version?
 | 
				
			||||||
 | 
					ext { isSnapshot = false } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ext {
 | 
				
			||||||
 | 
					        groupId = 'org.factcenter.meerkat'
 | 
				
			||||||
 | 
					        nexusRepository = "https://cs.idc.ac.il/nexus/content/groups/${isSnapshot ? 'unstable' : 'public'}/"
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Credentials for IDC nexus repositories (needed only for using unstable repositories and publishing)
 | 
				
			||||||
 | 
					        // Should be set in ${HOME}/.gradle/gradle.properties
 | 
				
			||||||
 | 
					        nexusUser =  project.hasProperty('nexusUser') ? project.property('nexusUser') : ""
 | 
				
			||||||
 | 
					        nexusPassword = project.hasProperty('nexusPassword') ? project.property('nexusPassword') : ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description = "Meerkat Voting Common Library"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Your project version
 | 
				
			||||||
 | 
					version = "0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					version += "${isSnapshot ? '-SNAPSHOT' : ''}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dependencies {
 | 
				
			||||||
 | 
					    // Logging
 | 
				
			||||||
 | 
					    compile 'org.slf4j:slf4j-api:1.7.7'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-classic:1.1.2'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-core:1.1.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Google protobufs
 | 
				
			||||||
 | 
					    compile 'com.google.protobuf:protobuf-java:3.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    testCompile 'junit:junit:4.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runtime 'org.codehaus.groovy:groovy:2.4.+'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*==== You probably don't have to edit below this line =======*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protobuf {
 | 
				
			||||||
 | 
					    // Configure the protoc executable
 | 
				
			||||||
 | 
					    protoc {
 | 
				
			||||||
 | 
					    // Download from repositories
 | 
				
			||||||
 | 
					        artifact = 'com.google.protobuf:protoc:3.+'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					idea {
 | 
				
			||||||
 | 
					    module {
 | 
				
			||||||
 | 
					        // add protobuf generated sources to generated source dir.
 | 
				
			||||||
 | 
					        sourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					        generatedSourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Don't exclude build directory 
 | 
				
			||||||
 | 
						excludeDirs -= file(buildDir)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        "Fat" Build targets
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task fatjar(type: Jar) {
 | 
				
			||||||
 | 
					    description = "Generate a single jar containing everything. Use -Pfatmain=... to override main class"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    destinationDir = buildDir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def fatMain = hasProperty('fatmain') ? fatmain : mainClassName
 | 
				
			||||||
 | 
					    def testJar = hasProperty('test')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    appendix = "${fatMain}-fat"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (testJar) {
 | 
				
			||||||
 | 
					        from sourceSets.test.output
 | 
				
			||||||
 | 
					        from configurations.testRuntime.collect { it.isDirectory() ? it : zipTree(it) }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    from sourceSets.main.output // that's it
 | 
				
			||||||
 | 
					    from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    exclude 'META-INF/MANIFEST.MF'
 | 
				
			||||||
 | 
					    exclude 'META-INF/*.SF'
 | 
				
			||||||
 | 
					    exclude 'META-INF/*.DSA'
 | 
				
			||||||
 | 
					    exclude 'META-INF/*.RSA'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    manifest { attributes 'Main-Class': fatMain }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task mavenCapsule(type: MavenCapsule){
 | 
				
			||||||
 | 
					    description = "Generate a capsule jar that automatically downloads and caches dependencies when run."
 | 
				
			||||||
 | 
					    applicationClass mainClassName
 | 
				
			||||||
 | 
					    destinationDir = buildDir
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task fatCapsule(type: FatCapsule){
 | 
				
			||||||
 | 
					    description = "Generate a single capsule jar containing everything. Use -Pfatmain=... to override main class"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    destinationDir = buildDir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def fatMain = hasProperty('fatmain') ? fatmain : mainClassName
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    applicationClass fatMain
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def testJar = hasProperty('test')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (hasProperty('fatmain')) {
 | 
				
			||||||
 | 
					        appendix = "fat-${fatMain}"
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        appendix = "fat"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (testJar) {
 | 
				
			||||||
 | 
					        from sourceSets.test.output
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Repositories
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					repositories {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Prefer the local nexus repository (it may have 3rd party artifacts not found in mavenCentral)
 | 
				
			||||||
 | 
					        maven { 
 | 
				
			||||||
 | 
					            url nexusRepository
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if (isSnapshot) {
 | 
				
			||||||
 | 
					                credentials { username 
 | 
				
			||||||
 | 
					                    password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    username nexusUser
 | 
				
			||||||
 | 
					                    password nexusPassword 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Use 'maven central' for other dependencies.
 | 
				
			||||||
 | 
					        mavenCentral()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task "info" << {
 | 
				
			||||||
 | 
					        println "Project: ${project.name}"
 | 
				
			||||||
 | 
					println "Description: ${project.description}"
 | 
				
			||||||
 | 
					        println "--------------------------"
 | 
				
			||||||
 | 
					        println "GroupId: $groupId"
 | 
				
			||||||
 | 
					        println "Version: $version (${isSnapshot ? 'snapshot' : 'release'})"
 | 
				
			||||||
 | 
					        println ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					info.description 'Print some information about project parameters'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Publishing
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					publishing {
 | 
				
			||||||
 | 
					    publications {
 | 
				
			||||||
 | 
					        mavenJava(MavenPublication) {
 | 
				
			||||||
 | 
					            groupId project.groupId
 | 
				
			||||||
 | 
					            pom.withXml {
 | 
				
			||||||
 | 
					                asNode().appendNode('description', project.description)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            from project.components.java
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    repositories {
 | 
				
			||||||
 | 
					        maven {
 | 
				
			||||||
 | 
					            url "https://cs.idc.ac.il/nexus/content/repositories/${project.isSnapshot ? 'snapshots' : 'releases'}"
 | 
				
			||||||
 | 
					            credentials { username 
 | 
				
			||||||
 | 
					                password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                username nexusUser
 | 
				
			||||||
 | 
					                password nexusPassword 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					../gradlew
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,178 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plugins {
 | 
				
			||||||
 | 
					  id "us.kirchmeier.capsule" version "1.0.1"
 | 
				
			||||||
 | 
					  id 'com.google.protobuf' version '0.7.0'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'java'
 | 
				
			||||||
 | 
					apply plugin: 'eclipse'
 | 
				
			||||||
 | 
					apply plugin: 'idea'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'application'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'maven-publish'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Is this a snapshot version?
 | 
				
			||||||
 | 
					ext { isSnapshot = false } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ext {
 | 
				
			||||||
 | 
					        groupId = 'org.factcenter.meerkat'
 | 
				
			||||||
 | 
					        nexusRepository = "https://cs.idc.ac.il/nexus/content/groups/${isSnapshot ? 'unstable' : 'public'}/"
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Credentials for IDC nexus repositories (needed only for using unstable repositories and publishing)
 | 
				
			||||||
 | 
					        // Should be set in ${HOME}/.gradle/gradle.properties
 | 
				
			||||||
 | 
					        nexusUser =  project.hasProperty('nexusUser') ? project.property('nexusUser') : ""
 | 
				
			||||||
 | 
					        nexusPassword = project.hasProperty('nexusPassword') ? project.property('nexusPassword') : ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description = "TODO: Add a description"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Your project version
 | 
				
			||||||
 | 
					version = "0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					version += "${isSnapshot ? '-SNAPSHOT' : ''}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dependencies {
 | 
				
			||||||
 | 
					    // Meerkat common
 | 
				
			||||||
 | 
					    compile project(':meerkat-common')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Logging
 | 
				
			||||||
 | 
					    compile 'org.slf4j:slf4j-api:1.7.7'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-classic:1.1.2'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-core:1.1.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Google protobufs
 | 
				
			||||||
 | 
					    compile 'com.google.protobuf:protobuf-java:3.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    testCompile 'junit:junit:4.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runtime 'org.codehaus.groovy:groovy:2.4.+'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*==== You probably don't have to edit below this line =======*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protobuf {
 | 
				
			||||||
 | 
					    // Configure the protoc executable
 | 
				
			||||||
 | 
					    protoc {
 | 
				
			||||||
 | 
					    // Download from repositories
 | 
				
			||||||
 | 
					        artifact = 'com.google.protobuf:protoc:3.+'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					idea {
 | 
				
			||||||
 | 
					    module {
 | 
				
			||||||
 | 
					        // add protobuf generated sources to generated source dir.
 | 
				
			||||||
 | 
					        sourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					        generatedSourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Don't exclude build directory 
 | 
				
			||||||
 | 
						excludeDirs -= file(buildDir)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        "Fat" Build targets
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (project.hasProperty('mainClassName') && (mainClassName != null)) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    task mavenCapsule(type: MavenCapsule) {
 | 
				
			||||||
 | 
					        description = "Generate a capsule jar that automatically downloads and caches dependencies when run."
 | 
				
			||||||
 | 
					        applicationClass mainClassName
 | 
				
			||||||
 | 
					        destinationDir = buildDir
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    task fatCapsule(type: FatCapsule) {
 | 
				
			||||||
 | 
					        description = "Generate a single capsule jar containing everything. Use -Pfatmain=... to override main class"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        destinationDir = buildDir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        def fatMain = hasProperty('fatmain') ? fatmain : mainClassName
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        applicationClass fatMain
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        def testJar = hasProperty('test')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (hasProperty('fatmain')) {
 | 
				
			||||||
 | 
					            appendix = "fat-${fatMain}"
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            appendix = "fat"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (testJar) {
 | 
				
			||||||
 | 
					            from sourceSets.test.output
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Repositories
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					repositories {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Prefer the local nexus repository (it may have 3rd party artifacts not found in mavenCentral)
 | 
				
			||||||
 | 
					        maven { 
 | 
				
			||||||
 | 
					            url nexusRepository
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if (isSnapshot) {
 | 
				
			||||||
 | 
					                credentials { username 
 | 
				
			||||||
 | 
					                    password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    username nexusUser
 | 
				
			||||||
 | 
					                    password nexusPassword 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Use local maven repository
 | 
				
			||||||
 | 
					        mavenLocal()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Use 'maven central' for other dependencies.
 | 
				
			||||||
 | 
					        mavenCentral()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task "info" << {
 | 
				
			||||||
 | 
					        println "Project: ${project.name}"
 | 
				
			||||||
 | 
					println "Description: ${project.description}"
 | 
				
			||||||
 | 
					        println "--------------------------"
 | 
				
			||||||
 | 
					        println "GroupId: $groupId"
 | 
				
			||||||
 | 
					        println "Version: $version (${isSnapshot ? 'snapshot' : 'release'})"
 | 
				
			||||||
 | 
					        println ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					info.description 'Print some information about project parameters'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Publishing
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					publishing {
 | 
				
			||||||
 | 
					    publications {
 | 
				
			||||||
 | 
					        mavenJava(MavenPublication) {
 | 
				
			||||||
 | 
					            groupId project.groupId
 | 
				
			||||||
 | 
					            pom.withXml {
 | 
				
			||||||
 | 
					                asNode().appendNode('description', project.description)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            from project.components.java
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    repositories {
 | 
				
			||||||
 | 
					        maven {
 | 
				
			||||||
 | 
					            url "https://cs.idc.ac.il/nexus/content/repositories/${project.isSnapshot ? 'snapshots' : 'releases'}"
 | 
				
			||||||
 | 
					            credentials { username 
 | 
				
			||||||
 | 
					                password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                username nexusUser
 | 
				
			||||||
 | 
					                password nexusPassword 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					../gradlew
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					include 'meerkat-common'
 | 
				
			||||||
 | 
					include 'voting-booth'
 | 
				
			||||||
 | 
					include 'bulletin-board-server'
 | 
				
			||||||
 | 
					include 'polling-station'
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,177 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					plugins {
 | 
				
			||||||
 | 
					  id "us.kirchmeier.capsule" version "1.0.1"
 | 
				
			||||||
 | 
					  id 'com.google.protobuf' version '0.7.0'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'java'
 | 
				
			||||||
 | 
					apply plugin: 'eclipse'
 | 
				
			||||||
 | 
					apply plugin: 'idea'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'application'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'maven-publish'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Is this a snapshot version?
 | 
				
			||||||
 | 
					ext { isSnapshot = false } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ext {
 | 
				
			||||||
 | 
					        groupId = 'org.factcenter.meerkat'
 | 
				
			||||||
 | 
					        nexusRepository = "https://cs.idc.ac.il/nexus/content/groups/${isSnapshot ? 'unstable' : 'public'}/"
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Credentials for IDC nexus repositories (needed only for using unstable repositories and publishing)
 | 
				
			||||||
 | 
					        // Should be set in ${HOME}/.gradle/gradle.properties
 | 
				
			||||||
 | 
					        nexusUser =  project.hasProperty('nexusUser') ? project.property('nexusUser') : ""
 | 
				
			||||||
 | 
					        nexusPassword = project.hasProperty('nexusPassword') ? project.property('nexusPassword') : ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description = "TODO: Add a description"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Your project version
 | 
				
			||||||
 | 
					version = "0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					version += "${isSnapshot ? '-SNAPSHOT' : ''}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dependencies {
 | 
				
			||||||
 | 
					    // Meerkat common
 | 
				
			||||||
 | 
					    compile project(':meerkat-common')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Logging
 | 
				
			||||||
 | 
					    compile 'org.slf4j:slf4j-api:1.7.7'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-classic:1.1.2'
 | 
				
			||||||
 | 
					    runtime 'ch.qos.logback:logback-core:1.1.2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Google protobufs
 | 
				
			||||||
 | 
					    compile 'com.google.protobuf:protobuf-java:3.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    testCompile 'junit:junit:4.+'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runtime 'org.codehaus.groovy:groovy:2.4.+'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*==== You probably don't have to edit below this line =======*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protobuf {
 | 
				
			||||||
 | 
					    // Configure the protoc executable
 | 
				
			||||||
 | 
					    protoc {
 | 
				
			||||||
 | 
					    // Download from repositories
 | 
				
			||||||
 | 
					        artifact = 'com.google.protobuf:protoc:3.+'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					idea {
 | 
				
			||||||
 | 
					    module {
 | 
				
			||||||
 | 
					        // add protobuf generated sources to generated source dir.
 | 
				
			||||||
 | 
					        sourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					        generatedSourceDirs += file(protobuf.generatedFilesBaseDir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Don't exclude build directory 
 | 
				
			||||||
 | 
						excludeDirs -= file(buildDir)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        "Fat" Build targets
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (project.hasProperty('mainClassName') && (mainClassName != null)) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    task mavenCapsule(type: MavenCapsule) {
 | 
				
			||||||
 | 
					        description = "Generate a capsule jar that automatically downloads and caches dependencies when run."
 | 
				
			||||||
 | 
					        applicationClass mainClassName
 | 
				
			||||||
 | 
					        destinationDir = buildDir
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    task fatCapsule(type: FatCapsule) {
 | 
				
			||||||
 | 
					        description = "Generate a single capsule jar containing everything. Use -Pfatmain=... to override main class"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        destinationDir = buildDir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        def fatMain = hasProperty('fatmain') ? fatmain : mainClassName
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        applicationClass fatMain
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        def testJar = hasProperty('test')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (hasProperty('fatmain')) {
 | 
				
			||||||
 | 
					            appendix = "fat-${fatMain}"
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            appendix = "fat"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (testJar) {
 | 
				
			||||||
 | 
					            from sourceSets.test.output
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Repositories
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					repositories {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Prefer the local nexus repository (it may have 3rd party artifacts not found in mavenCentral)
 | 
				
			||||||
 | 
					        maven { 
 | 
				
			||||||
 | 
					            url nexusRepository
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if (isSnapshot) {
 | 
				
			||||||
 | 
					                credentials { username 
 | 
				
			||||||
 | 
					                    password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    username nexusUser
 | 
				
			||||||
 | 
					                    password nexusPassword 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Use local maven repository
 | 
				
			||||||
 | 
					        mavenLocal()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Use 'maven central' for other dependencies.
 | 
				
			||||||
 | 
					        mavenCentral()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task "info" << {
 | 
				
			||||||
 | 
					        println "Project: ${project.name}"
 | 
				
			||||||
 | 
					println "Description: ${project.description}"
 | 
				
			||||||
 | 
					        println "--------------------------"
 | 
				
			||||||
 | 
					        println "GroupId: $groupId"
 | 
				
			||||||
 | 
					        println "Version: $version (${isSnapshot ? 'snapshot' : 'release'})"
 | 
				
			||||||
 | 
					        println ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					info.description 'Print some information about project parameters'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*===================================
 | 
				
			||||||
 | 
					 *        Publishing
 | 
				
			||||||
 | 
					 *===================================*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					publishing {
 | 
				
			||||||
 | 
					    publications {
 | 
				
			||||||
 | 
					        mavenJava(MavenPublication) {
 | 
				
			||||||
 | 
					            groupId project.groupId
 | 
				
			||||||
 | 
					            pom.withXml {
 | 
				
			||||||
 | 
					                asNode().appendNode('description', project.description)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            from project.components.java
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    repositories {
 | 
				
			||||||
 | 
					        maven {
 | 
				
			||||||
 | 
					            url "https://cs.idc.ac.il/nexus/content/repositories/${project.isSnapshot ? 'snapshots' : 'releases'}"
 | 
				
			||||||
 | 
					            credentials { username 
 | 
				
			||||||
 | 
					                password 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                username nexusUser
 | 
				
			||||||
 | 
					                password nexusPassword 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					../gradlew
 | 
				
			||||||
		Loading…
	
		Reference in New Issue