diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c9273b7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,27 @@ +# Definition of a custom attribute that reverse binary attribute +[attr]textfile text diff merge + +# Declare files as binary by default preventing potential problematic end-of-line conversion +* binary + +# Declare files that will always have native line endings on checkout. +*.checkstyle textfile +*.css textfile +*.gitattributes textfile +*.gitignore textfile +*.gradle textfile +*.java textfile +*.js textfile +*.json textfile +*.MF textfile +*.md textfile +*.properties textfile +*.txt textfile + +# Declare files that will always have LF line endings on checkout. +*.sh textfile eol=lf +gradlew textfile eol=lf + +# Declare files that will always have CRLF line endings on checkout. +*.bat textfile eol=crlf +*.cmd textfile eol=crlf diff --git a/build.gradle b/build.gradle index 4ec0dc3..fb677bc 100644 --- a/build.gradle +++ b/build.gradle @@ -1,158 +1,158 @@ -group = "com.nuecho" -version = "1.0.0" - -subprojects { - apply plugin: 'eclipse' - apply plugin: 'ivy-publish' // ivy publishing is for fallback if maven doesn't work. - apply plugin: 'maven' - apply plugin: 'signing' - - group = rootProject.group - version = rootProject.version - - repositories { mavenCentral() } - - signing { - required { gradle.taskGraph.hasTask("uploadArchives") } // Only sign during release. - sign configurations.archives - } - - uploadArchives { - repositories { - mavenDeployer(name: 'mavenCentral') { - repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { - // Add credentials only if they are present in the project. - // Avoid build failure if not trying to release and user doesn't have proper credentials. - if(project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword')){ - authentication(userName: sonatypeUsername, password: sonatypePassword) - } - } - - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - - // All these are required for maven central release. - // See https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide#SonatypeOSSMavenRepositoryUsageGuide-6.CentralSyncRequirement - pom.project { - name 'rivr' - description 'Rivr is a lightweight open-source dialogue engine enabling flexible VoiceXML web application development for the agile Java developer and enterprise.' - url 'http://rivr.nuecho.com/' - - scm { - url 'scm:git@github.com:nuecho/rivr.git' - connection 'scm:git@github.com:nuecho/rivr.git' - developerConnection 'scm:git@github.com:nuecho/rivr.git' - } - - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.html' - distribution 'repo' - } - } - - developers { - developer { - id 'nuecho' - name 'Nu Echo inc.' - email 'rivr-support@nuecho.com' - } - } - } - } - } - } -} - -// Configure the java projects release. - -def javaProjects = [project(':rivr-core'), project(':rivr-voicexml')] - -configure(javaProjects) { - apply plugin: 'java' - apply plugin: 'checkstyle' - - dependencies { checkstyle 'com.puppycrawl.tools:checkstyle:5.5' } - - checkstyle.configFile = rootProject.file('checkstyle/checkstyle.xml') - sourceCompatibility = '1.6' - - // Fix for Unable to get class information - checkstyleMain { classpath += configurations.compile } - checkstyleTest { classpath += configurations.compile } - - task sourcesJar(type: Jar) { - from sourceSets.main.java - classifier 'sources' - } - - // Required for Maven central - task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir - } - - eclipse { - project { - natures 'net.sf.eclipsecs.core.CheckstyleNature' - buildCommand 'net.sf.eclipsecs.core.CheckstyleBuilder' - } - classpath { - defaultOutputDir = file("${project.projectDir}/build/classes") - // This should probably be submitted as a patch to the eclipse plugin. - containers.clear() - containers.add("org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6") - } - } - - - // Maven central release use the "old" uploadArchives mechanism since maven-publish doesn't support signing yet. - artifacts { - archives javadocJar - archives sourcesJar - } - - artifacts { archives jar } - - uploadArchives{ - repositories { - mavenCentral{ - pom.project{ packaging 'jar' } - } - } - } -} - -task globalJavadoc(type: Javadoc) { - source javaProjects.collect {project -> project.sourceSets.main.allJava } - destinationDir = new File(buildDir, 'javadoc') - classpath = files(javaProjects.collect {project -> project.sourceSets.main.compileClasspath}) - - // To use Java 7 Javadoc: - // gradlew -DjavadocExecutable=/usr/java/jdk7/bin/javadoc globalJavadoc - if(System.getProperty("javadocExecutable") != null) { - executable = System.getProperty("javadocExecutable") - } - - configure(options) { - splitIndex true - linkSource true - windowTitle "Rivr API documentation" - docTitle "Rivr documentation ($project.version)" - bottom 'Copyright © 2013 Nu Echo Inc..' - use = true - noTimestamp = true - group("Rivr Core Packages", "com.nuecho.rivr.core*") - group("Rivr VoiceXML Packages", "com.nuecho.rivr.voicexml*") - footer "To report errors, inconsistencies and omissions in the Rivr API documentation, please open an issue." - links "http://download.oracle.com/javase/6/docs/api/" - links "http://download.oracle.com/javaee/6/api/" - links "http://slf4j.org/api/" - links "https://json-processing-spec.java.net/nonav/releases/1.0/fcs/javadocs/" - setOverview("${projectDir}/doc/javadoc-extra/overview.html") - stylesheetFile = new File( projectDir, 'doc/javadoc-extra/rivr-javadoc.css' ) - docTitle "
API documentation of Rivr $project.version" - } -} - +group = "com.nuecho" +version = "1.0.0" + +subprojects { + apply plugin: 'eclipse' + apply plugin: 'ivy-publish' // ivy publishing is for fallback if maven doesn't work. + apply plugin: 'maven' + apply plugin: 'signing' + + group = rootProject.group + version = rootProject.version + + repositories { mavenCentral() } + + signing { + required { gradle.taskGraph.hasTask("uploadArchives") } // Only sign during release. + sign configurations.archives + } + + uploadArchives { + repositories { + mavenDeployer(name: 'mavenCentral') { + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + // Add credentials only if they are present in the project. + // Avoid build failure if not trying to release and user doesn't have proper credentials. + if(project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword')){ + authentication(userName: sonatypeUsername, password: sonatypePassword) + } + } + + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + // All these are required for maven central release. + // See https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide#SonatypeOSSMavenRepositoryUsageGuide-6.CentralSyncRequirement + pom.project { + name 'rivr' + description 'Rivr is a lightweight open-source dialogue engine enabling flexible VoiceXML web application development for the agile Java developer and enterprise.' + url 'http://rivr.nuecho.com/' + + scm { + url 'scm:git@github.com:nuecho/rivr.git' + connection 'scm:git@github.com:nuecho/rivr.git' + developerConnection 'scm:git@github.com:nuecho/rivr.git' + } + + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.html' + distribution 'repo' + } + } + + developers { + developer { + id 'nuecho' + name 'Nu Echo inc.' + email 'rivr-support@nuecho.com' + } + } + } + } + } + } +} + +// Configure the java projects release. + +def javaProjects = [project(':rivr-core'), project(':rivr-voicexml')] + +configure(javaProjects) { + apply plugin: 'java' + apply plugin: 'checkstyle' + + dependencies { checkstyle 'com.puppycrawl.tools:checkstyle:5.5' } + + checkstyle.configFile = rootProject.file('checkstyle/checkstyle.xml') + sourceCompatibility = '1.6' + + // Fix for Unable to get class information + checkstyleMain { classpath += configurations.compile } + checkstyleTest { classpath += configurations.compile } + + task sourcesJar(type: Jar) { + from sourceSets.main.java + classifier 'sources' + } + + // Required for Maven central + task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir + } + + eclipse { + project { + natures 'net.sf.eclipsecs.core.CheckstyleNature' + buildCommand 'net.sf.eclipsecs.core.CheckstyleBuilder' + } + classpath { + defaultOutputDir = file("${project.projectDir}/build/classes") + // This should probably be submitted as a patch to the eclipse plugin. + containers.clear() + containers.add("org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6") + } + } + + + // Maven central release use the "old" uploadArchives mechanism since maven-publish doesn't support signing yet. + artifacts { + archives javadocJar + archives sourcesJar + } + + artifacts { archives jar } + + uploadArchives{ + repositories { + mavenCentral{ + pom.project{ packaging 'jar' } + } + } + } +} + +task globalJavadoc(type: Javadoc) { + source javaProjects.collect {project -> project.sourceSets.main.allJava } + destinationDir = new File(buildDir, 'javadoc') + classpath = files(javaProjects.collect {project -> project.sourceSets.main.compileClasspath}) + + // To use Java 7 Javadoc: + // gradlew -DjavadocExecutable=/usr/java/jdk7/bin/javadoc globalJavadoc + if(System.getProperty("javadocExecutable") != null) { + executable = System.getProperty("javadocExecutable") + } + + configure(options) { + splitIndex true + linkSource true + windowTitle "Rivr API documentation" + docTitle "Rivr documentation ($project.version)" + bottom 'Copyright © 2013 Nu Echo Inc..' + use = true + noTimestamp = true + group("Rivr Core Packages", "com.nuecho.rivr.core*") + group("Rivr VoiceXML Packages", "com.nuecho.rivr.voicexml*") + footer "To report errors, inconsistencies and omissions in the Rivr API documentation, please open an issue." + links "http://download.oracle.com/javase/6/docs/api/" + links "http://download.oracle.com/javaee/6/api/" + links "http://slf4j.org/api/" + links "https://json-processing-spec.java.net/nonav/releases/1.0/fcs/javadocs/" + setOverview("${projectDir}/doc/javadoc-extra/overview.html") + stylesheetFile = new File( projectDir, 'doc/javadoc-extra/rivr-javadoc.css' ) + docTitle "
API documentation of Rivr $project.version" + } +} + task wrapper(type: Wrapper) { gradleVersion = '1.9' } \ No newline at end of file diff --git a/gradlew.bat b/gradlew.bat index aec9973..8a0b282 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,90 +1,90 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega