diff --git a/.gitignore b/.gitignore index d835ec9a..d51a2722 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,19 @@ -target -bin +*.iml +*.ipr +*.iws +*.swp +*/src/main/java/META-INF +.ant-targets-build.xml .classpath +.idea +.gradle .project .settings .springBeans -.ant-targets-build.xml -src/ant/.ant-targets-upload-dist.xml -*.swp -*/src/main/java/META-INF +bin +build +.DS_Store erl_crash.dump nohup.out -.idea -*.iml +src/ant/.ant-targets-upload-dist.xml +target diff --git a/README.md b/README.md index 4f646dc8..0c8acaa6 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,87 @@ -This project provides support for using Spring and Java with AMQP, and in particular RabbitMQ. +Spring AMQP +=========== -# Getting Started +This project provides support for using Spring and Java with [AMQP](http://www.amqp.org/), and in particular [RabbitMQ](http://www.rabbitmq.com/). -Clone from GIT and then use Maven (2.2.*): +# Checking out and Building - $ git clone ... - $ mvn install -P bootstrap +To check out the project from [GitHub](https://github.com/SpringSource/spring-amqp) and build from source using [Gradle](http://gradle.org/), do the following: -Use the `bootstrap` profile only the first time - it enables some -repositories that can't be exposed in the poms by default. + git clone git://github.com/SpringSource/spring-amqp.git + cd spring-amqp + ./gradlew build -SpringSource ToolSuite users (or Eclipse users with the latest -m2eclipse plugin) can import the projects as existing Eclipse -projects. There are plenty of interesting integration tests (names -ending with `IntegrationTests`) to show the features of the -framework. Sample applications can be found in the [Spring AMQP -Samples](http://github.com/SpringSource/spring-amqp-samples) project. +If you encounter out of memory errors during the build, increase available heap and permgen for Gradle: -Spring AMQP is released under the terms of the Apache Software License Version 2.0 (see license.txt). + GRADLE_OPTS='-XX:MaxPermSize=1024m -Xmx1024m' +To build and install jars into your local Maven cache: + + ./gradlew install + +To build api Javadoc (results will be in `build/api`): + + ./gradlew api + +To build reference documentation (results will be in `build/reference`): + + ./gradlew reference + +To build complete distribution including `-dist`, `-docs`, and `-schema` zip files (results will be in `build/distributions`) + + ./gradlew dist + +To analyze and gather metrics using [Sonar](http://www.sonarsource.org/): + + ./gradlew clean build sonar + +(Please make sure that you have Sonar running, e.g. on localhost port 9000) + + +# Using Eclipse + +To generate Eclipse metadata (.classpath and .project files), do the following: + + ./gradlew eclipse + +Once complete, you may then import the projects into Eclipse as usual: + +*File -> Import -> Existing projects into workspace* + +Browse to the *'spring-amqp'* root directory. All projects should import free of errors. + +# Using SpringSource Tool Suite™ (STS) + +Using the STS Gradle Support, you can directly import Gradle projects, without having to generate Eclipse metadata first (since STS 2.7.M1). Please make sure you have the Gradle STS Extension installed - Please see the [installation instructions](http://static.springsource.org/sts/docs/latest/reference/html/gradle/installation.html) for details. + +1. Select *File -> Import -> Gradle Project* +2. Browse to the Spring AMQP Root Folder +3. Click on **Build Model** +4. Select the projects you want to import +5. Press **Finish** + +# Using IntelliJ IDEA + +To generate IDEA metadata (.iml and .ipr files), do the following: + + ./gradlew idea ## Distribution Contents -The binary JARs are available in the 'dist' directory, and the source JARs are in the 'src' directory. The reference manual and javadoc are located in the 'docs' directory. +If you downloaded the full Spring AMQP distribution or if you created the distribution using `./gradlew dist`, you will see the following directory structure: + + ├── README.md + ├── apache-license.txt + ├── docs + │ ├── api + │ └── reference + ├── epl-license.txt + ├── libs + ├── notice.txt + └── schema + └── rabbit + +The binary JARs and the source code are available in the **libs**. The reference manual and javadocs are located in the **docs** directory. ## Changelog @@ -30,11 +89,11 @@ Lists of issues addressed per release can be found in [JIRA](https://jira.spring ## Additional Resources -* Spring AMQP Homepage: [http://www.springsource.org/spring-amqp] -* Spring AMQP Source: [http://github.com/SpringSource/spring-amqp] -* Spring AMQP Samples: [http://github.com/SpringSource/spring-amqp-samples] -* Spring AMQP Forum: [http://forum.springsource.org/forumdisplay.php?f=74] - +* [Spring AMQP Homepage](http://www.springsource.org/spring-amqp) +* [Spring AMQP Source](http://github.com/SpringSource/spring-amqp) +* [Spring AMQP Samples](http://github.com/SpringSource/spring-amqp-samples) +* [Spring AMQP Forum](http://forum.springsource.org/forumdisplay.php?f=74) +* [StackOverflow](http://stackoverflow.com/questions/tagged/spring-amqp) # Contributing to Spring AMQP @@ -45,7 +104,7 @@ Here are some ways for you to get involved in the community: * Github is for social coding: if you want to write code, we encourage contributions through pull requests from [forks of this repository](http://help.github.com/forking/). If you want to contribute code this way, please reference a JIRA ticket as well covering the specific issue you are addressing. * Watch for upcoming articles on Spring by [subscribing](http://www.springsource.org/node/feed) to springframework.org -Before we accept a non-trivial patch or pull request we will need you to sign the [contributor's agreement](https://support.springsource.com/spring_committer_signup). Signing the contributor's agreement does not grant anyone commit rights to the main repository, but it does mean that we can accept your contributions, and you will get an author credit if we do. Active contributors might be asked to join the core team, and given the ability to merge pull requests. +Before we accept a non-trivial patch or pull request we will need you to sign the [contributor's agreement](https://support.springsource.com/spring_committer_signup). Signing the contributor's agreement does not grant anyone commit rights to the main repository, but it does mean that we can accept your contributions, and you will get an author credit if we do. Active contributors might be asked to join the core team, and given the ability to merge pull requests. ## Code Conventions and Housekeeping None of these is essential for a pull request, but they will all help. They can also be added after the original pull request but before a merge. @@ -57,3 +116,7 @@ None of these is essential for a pull request, but they will all help. They can * Add some Javadocs and, if you change the namespace, some XSD doc elements. * A few unit tests would help a lot as well - someone has to do it. * If no-one else is using your branch, please rebase it against the current master (or other target branch in the main project). + +# License + +Spring AMQP is released under the terms of the Apache Software License Version 2.0 (see license.txt). diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..39b328f2 --- /dev/null +++ b/build.gradle @@ -0,0 +1,353 @@ +description = 'Spring AMQP' + +apply plugin: 'base' +apply plugin: 'project-report' +apply plugin: 'idea' + +buildscript { + repositories { + maven { url 'https://repo.springsource.org/plugins-release' } + } + dependencies { + classpath 'org.springframework.build.gradle:docbook-reference-plugin:0.1.5' + } +} + +allprojects { + group = 'org.springframework.amqp' + + repositories { + maven { url 'http://repo.springsource.org/libs-release' } + } +} + +subprojects { subproject -> + + apply plugin: 'java' + apply from: "${rootProject.projectDir}/publish-maven.gradle" + apply plugin: 'eclipse' + apply plugin: 'idea' + apply plugin: 'project-report' + + // ensure JDK 5 compatibility (GRADLE-18; INT-1578) + sourceCompatibility=1.5 + targetCompatibility=1.5 + + ext { + cglibVersion = '2.2' + commonsIoVersion = '1.4' + erlangOtpVersion = '1.5.3' + jacksonVersion = '1.4.3' + junitVersion = '4.8.2' + log4jVersion = '1.2.15' + mockitoVersion = '1.8.4' + rabbitmqVersion = '2.8.1' + + springVersion = '3.0.7.RELEASE' + } + + eclipse { + project { + natures += 'org.springframework.ide.eclipse.core.springnature' + } + } + + sourceSets { + test { + resources { + srcDirs = ['src/test/resources', 'src/test/java'] + } + } + } + + // See http://www.gradle.org/docs/current/userguide/dependency_management.html#sub:configurations + // and http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ConfigurationContainer.html + configurations { + jacoco //Configuration Group used by Sonar to provide Code Coverage using JaCoCo + } + + // dependencies that are common across all java projects + dependencies { + testCompile "cglib:cglib-nodep:$cglibVersion" + testCompile "junit:junit-dep:$junitVersion" + testCompile ("log4j:log4j:$log4jVersion") { + exclude group: 'javax.jms', module: 'jms' + exclude group: 'com.sun.jdmk', module: 'jmxtools' + exclude group: 'com.sun.jmx', module: 'jmxri' + } + + testCompile "org.mockito:mockito-all:$mockitoVersion" + testCompile "org.springframework:spring-test:$springVersion" + + jacoco group: "org.jacoco", name: "org.jacoco.agent", version: "0.5.6.201201232323", classifier: "runtime" + } + + // enable all compiler warnings; individual projects may customize further + ext.xLintArg = '-Xlint:all' + [compileJava, compileTestJava]*.options*.compilerArgs = [xLintArg] + + test { + // suppress all console output during testing unless running `gradle -i` + logging.captureStandardOutput(LogLevel.INFO) + jvmArgs "-javaagent:${configurations.jacoco.asPath}=destfile=${buildDir}/jacoco.exec,includes=org.springframework.*" + } + + task sourcesJar(type: Jar) { + classifier = 'sources' + from sourceSets.main.allJava + } + + task javadocJar(type: Jar) { + classifier = 'javadoc' + from javadoc + } + + artifacts { + archives sourcesJar + archives javadocJar + } + +} + +project('spring-amqp-core') { + description = 'Spring AMQP Core' + dependencies { + + compile "org.springframework:spring-core:$springVersion" + compile ("org.springframework:spring-oxm:$springVersion", optional) + compile ("org.springframework:spring-context:$springVersion", optional) + compile ("org.codehaus.jackson:jackson-core-asl:$jacksonVersion", optional) + compile ("org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion", optional) + + } + +} + +project('spring-erlang') { + description = 'Spring Erlang Support' + dependencies { + + compile "org.springframework:spring-beans:$springVersion" + compile "commons-io:commons-io:$commonsIoVersion" + + compile ("javax.annotation:jsr250-api:1.0", optional) + compile "org.erlang.otp:jinterface:$erlangOtpVersion" + + } + +} + +project('spring-rabbit') { + description = 'Spring RabbitMQ Support' + dependencies { + + compile project(":spring-amqp-core") + testCompile project(":spring-erlang") + + compile "com.rabbitmq:amqp-client:$rabbitmqVersion" + + compile ("org.springframework:spring-aop:$springVersion", optional) + compile "org.springframework:spring-tx:$springVersion" + + compile ("org.springframework.retry:spring-retry:1.0.1.RELEASE", optional) + + testCompile "commons-cli:commons-cli:1.2" + + compile ("log4j:log4j:$log4jVersion") { dep -> + optional dep + exclude group: 'javax.jms', module: 'jms' + exclude group: 'com.sun.jdmk', module: 'jmxtools' + exclude group: 'com.sun.jmx', module: 'jmxri' + } + + } + +} + +apply plugin: 'docbook-reference' + +reference { + sourceDir = file('src/reference/docbook') +} + +apply plugin: 'sonar' + +sonar { + + if (rootProject.hasProperty('sonarHostUrl')) { + server.url = rootProject.sonarHostUrl + } + + database { + if (rootProject.hasProperty('sonarJdbcUrl')) { + url = rootProject.sonarJdbcUrl + } + if (rootProject.hasProperty('sonarJdbcDriver')) { + driverClassName = rootProject.sonarJdbcDriver + } + if (rootProject.hasProperty('sonarJdbcUsername')) { + username = rootProject.sonarJdbcUsername + } + if (rootProject.hasProperty('sonarJdbcPassword')) { + password = rootProject.sonarJdbcPassword + } + } + + project { + dynamicAnalysis = "reuseReports" + withProjectProperties { props -> + props["sonar.core.codeCoveragePlugin"] = "jacoco" + props["sonar.jacoco.reportPath"] = "${buildDir.name}/jacoco.exec" + } + } + + logger.info("Sonar parameters used: server.url='${server.url}'; database.url='${database.url}'; database.driverClassName='${database.driverClassName}'; database.username='${database.username}'") +} + +task api(type: Javadoc) { + group = 'Documentation' + description = 'Generates aggregated Javadoc API documentation.' + title = "${rootProject.description} ${version} API" + options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED + options.author = true + options.header = rootProject.description + options.overview = 'src/api/overview.html' + source subprojects.collect { project -> + project.sourceSets.main.allJava + } + destinationDir = new File(buildDir, "api") + classpath = files(subprojects.collect { project -> + project.sourceSets.main.compileClasspath + }) +} + +task schemaZip(type: Zip) { + group = 'Distribution' + classifier = 'schema' + description = "Builds -${classifier} archive containing all " + + "XSDs for deployment at static.springframework.org/schema." + + subprojects.each { subproject -> + def Properties schemas = new Properties(); + def shortName = subproject.name.replaceFirst("${rootProject.name}-", '') + + if (subproject.name.endsWith("-rabbit")) { + shortName = 'rabbit' + } + + subproject.sourceSets.main.resources.find { + it.path.endsWith('META-INF/spring.schemas') + }?.withInputStream { schemas.load(it) } + + for (def key : schemas.keySet()) { + File xsdFile = subproject.sourceSets.main.resources.find { + it.path.endsWith(schemas.get(key)) + } + assert xsdFile != null + into ("${shortName}") { + from xsdFile.path + } + } + } +} + +task docsZip(type: Zip) { + group = 'Distribution' + classifier = 'docs' + description = "Builds -${classifier} archive containing api and reference " + + "for deployment at static.springframework.org/spring-integration/docs." + + from('src/dist') { + include 'changelog.txt' + } + + from (api) { + into 'api' + } + + from (reference) { + into 'reference' + } +} + +task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) { + group = 'Distribution' + classifier = 'dist' + description = "Builds -${classifier} archive, containing all jars and docs, " + + "suitable for community download page." + + ext.baseDir = "${project.name}-${project.version}"; + + from('src/dist') { + include 'README.md' + include 'apache-license.txt' + include 'epl-license.txt' + include 'notice.txt' + into "${baseDir}" + } + + from(zipTree(docsZip.archivePath)) { + into "${baseDir}/docs" + } + + from(zipTree(schemaZip.archivePath)) { + into "${baseDir}/schema" + } + + subprojects.each { subproject -> + into ("${baseDir}/libs") { + from subproject.jar + from subproject.sourcesJar + from subproject.javadocJar + } + } +} + +// Create an optional "with dependencies" distribution. +// Not published by default; only for use when building from source. +task depsZip(type: Zip, dependsOn: distZip) { zipTask -> + group = 'Distribution' + classifier = 'dist-with-deps' + description = "Builds -${classifier} archive, containing everything " + + "in the -${distZip.classifier} archive plus all dependencies." + + from zipTree(distZip.archivePath) + + gradle.taskGraph.whenReady { taskGraph -> + if (taskGraph.hasTask(":${zipTask.name}")) { + def projectNames = rootProject.subprojects*.name + def artifacts = new HashSet() + subprojects.each { subproject -> + subproject.configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { artifact -> + def dependency = artifact.moduleVersion.id + if (!projectNames.contains(dependency.name)) { + artifacts << artifact.file + } + } + } + + zipTask.from(artifacts) { + into "${distZip.baseDir}/deps" + } + } + } +} + +task build(dependsOn: assemble) { +} + +artifacts { + archives distZip + archives docsZip + archives schemaZip +} + +task dist(dependsOn: assemble) { + group = 'Distribution' + description = 'Builds -dist, -docs and -schema distribution archives.' +} + +task wrapper(type: Wrapper) { + description = 'Generates gradlew[.bat] scripts' + gradleVersion = '1.0' +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..8bfacc09 --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +version=1.1.2.BUILD-SNAPSHOT diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..81dcde62 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..e05f6837 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Jun 12 15:51:56 EDT 2012 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=http\://services.gradle.org/distributions/gradle-1.0-bin.zip diff --git a/gradlew b/gradlew new file mode 100755 index 00000000..cf126509 --- /dev/null +++ b/gradlew @@ -0,0 +1,164 @@ +#!/bin/bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" +APP_HOME="`pwd -P`" +cd "$SAVED" + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..aec99730 --- /dev/null +++ b/gradlew.bat @@ -0,0 +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 diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 646ba33f..00000000 --- a/pom.xml +++ /dev/null @@ -1,352 +0,0 @@ - - - 4.0.0 - org.springframework.amqp - spring-amqp-dist - Spring AMQP Distribution - - 1.1.2.BUILD-SNAPSHOT - pom - - spring-amqp-parent - spring-amqp-core - spring-rabbit - spring-erlang - - - UTF-8 - - spring-amqp - Spring AMQP - AMQP - ${project.version} - ${dist.id}-${dist.version} - ${dist.finalName}.zip - target/${dist.fileName} - dist.springframework.org - - - - - staging - - /${java.io.tmpdir}/spring-amqp/dist - - - - spring-site-staging - file:///${java.io.tmpdir}/spring-amqp/docs/${project.version} - - - spring-milestone-staging - file:///${java.io.tmpdir}/spring-amqp/milestone - - - spring-snapshot-staging - file:///${java.io.tmpdir}/spring-amqp/snapshot - - - - - central - - - sonatype-nexus-snapshots - Sonatype Nexus Snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - - - sonatype-nexus-staging - Nexus Release Repository - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - - - - - org.apache.maven.plugins - maven-gpg-plugin - - - sign-artifacts - verify - - sign - - - - - - org.apache.maven.plugins - maven-deploy-plugin - - true - - - - - - - milestone - - - spring-milestone - Spring Milestone Repository - s3://maven.springframework.org/milestone - - - - - upload - - - - com.agilejava.docbkx - docbkx-maven-plugin - - - - generate-html - generate-pdf - - package - - - - - maven-javadoc-plugin - - - aggregate - - aggregate - - package - - - - - maven-assembly-plugin - 2.2-beta-5 - false - - - distribution - - single - - package - - - ${project.basedir}/src/assembly/distribution.xml - - false - - - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.4 - - - upload-dist - deploy - - run - - - - - - - - - - - - - org.springframework.build - org.springframework.build.aws.ant - 3.0.5.RELEASE - - - net.java.dev.jets3t - jets3t - 0.7.2 - - - - - - - - - http://github.com/SpringSource/spring-amqp - scm:git:git://github.com/SpringSource/spring-amqp.git - scm:git:ssh://git@github.com/SpringSource/spring-amqp.git - - - - http://www.springsource.com/download/community - - spring-site - scp://static.springframework.org/var/www/domains/springframework.org/static/htdocs/spring-amqp/docs/${project.version} - - - spring-release - Spring Release Repository - s3://maven.springframework.org/release - - - spring-snapshot - Spring Snapshot Repository - s3://maven.springframework.org/snapshot - - - - - - - org.springframework.build.aws - org.springframework.build.aws.maven - 3.0.0.RELEASE - - - - - - org.apache.maven.plugins - maven-release-plugin - 2.2.1 - - - com.agilejava.docbkx - docbkx-maven-plugin - 2.0.6 - - - org.docbook - docbook-xml - 4.4 - runtime - - - - index.xml - true - ${project.basedir}/src/docbkx/resources/xsl/fopdf.xsl - - css/html.css - - false - ${project.basedir}/src/docbkx/resources/xsl/html.xsl - - - - version - ${pom.version} - - - - - - - - - - - - - - - - - - - - - - - maven-javadoc-plugin - 2.5 - - true - true -
Spring AMQP
- 1.5 - true - ${project.basedir}/src/main/javadoc - ${project.basedir}/src/main/javadoc/overview.html - ${project.basedir}/src/main/javadoc/spring-javadoc.css - - true - - - Spring AMQP - org.springframework.amqp:org.springframework.amqp.* - - - Spring Rabbit - org.springframework.amqp.rabbit.* - - - Spring Erlang - org.springframework.erlang:org.springframework.erlang.*:org.springframework.util.exec - - - org.springframework.amqp.samples - - http://static.springframework.org/spring/docs/3.0.5.RELEASE/javadoc-api - http://java.sun.com/javase/6/docs/api - -
-
-
-
- - - com.agilejava.docbkx - docbkx-maven-plugin - - - - generate-html - generate-pdf - - site - - - - - - ${dist.finalName} -
- - - - repository.source.maven.release - SpringSource Maven Release Repository - http://repository.springsource.com/maven/bundles/release - - - - - - repository.source.maven.release - SpringSource Maven Release Repository - http://repository.springsource.com/maven/bundles/release - - -
diff --git a/publish-maven.gradle b/publish-maven.gradle new file mode 100644 index 00000000..906b8e55 --- /dev/null +++ b/publish-maven.gradle @@ -0,0 +1,81 @@ +apply plugin: 'maven' + +ext.optionalDeps = [] +ext.providedDeps = [] + +ext.optional = { optionalDeps << it } +ext.provided = { providedDeps << it } + +install { + repositories.mavenInstaller { + customizePom(pom, project) + } +} + +def customizePom(pom, gradleProject) { + pom.whenConfigured { generatedPom -> + // respect 'optional' and 'provided' dependencies + gradleProject.optionalDeps.each { dep -> + generatedPom.dependencies.find { it.artifactId == dep.name }?.optional = true + } + gradleProject.providedDeps.each { dep -> + generatedPom.dependencies.find { it.artifactId == dep.name }?.scope = 'provided' + } + + // eliminate test-scoped dependencies (no need in maven central poms) + generatedPom.dependencies.removeAll { dep -> + dep.scope == 'test' + } + + // add all items necessary for maven central publication + generatedPom.project { + name = gradleProject.description + description = gradleProject.description + url = 'https://github.com/SpringSource/spring-amqp' + organization { + name = 'SpringSource' + url = 'http://springsource.org' + } + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution 'repo' + } + } + scm { + url = 'https://github.com/SpringSource/spring-amqp' + connection = 'scm:git:git://github.com/SpringSource/spring-amqp' + developerConnection = 'scm:git:ssh://git@github.com/SpringSource/spring-amqp.git' + } + + developers { + developer { + id = 'dsyer' + name = 'Dave Syer' + email = 'dsyer@vmware.com' + } + developer { + id = 'markfisher' + name = 'Mark Fisher' + email = 'markfisher@vmware.com' + } + developer { + id = 'mpollack' + name = 'Mark Pollack' + email = 'mpollack@vmware.com' + } + developer { + id = 'jbrisbin' + name = 'Jon Brisbin' + email = 'jbrisbin@vmware.com' + } + developer { + id = 'tomas.lukosius' + name = 'Tomas Lukosius' + email = 'tomas.lukosius@opencredo.com' + } + } + } + } +} \ No newline at end of file diff --git a/release-process.md b/release-process.md deleted file mode 100644 index d6b47752..00000000 --- a/release-process.md +++ /dev/null @@ -1,93 +0,0 @@ -# Build and Release of Spring AMQP - -Should be relatively straightforward - -> **Requirements:** -> -> * Java 6; -> * Maven 2.2.1 -> * (Optional) Ant 1.7.1; -> * If you are on Linux don't use Maven or Ant installed by root (file -> permission issues with `mvn deploy` - download it and install -> it as yourself). - -## Tagging - -Before a release, a tag needs to be created and a final sanity check done. To do this, a tag is created using Maven and version numbers updated. - -To save some time typing version labels, use this (replace version numbers as necessary): - - $ mvn release:prepare -Dtag=X.X.X -DreleaseVersion=X.X.X -DdevelopmentVersion=X.X.X.BUILD-SNAPSHOT -DautoVersionSubmodules=true - -You will be asked to confirm the release version and the new development version. Typically moving from `X.X.X.BUILD-SNAPSHOT` to a named release means the release tag is `X.X.X.RELEASE` and the development version is `X.X.X+1.BUILD-SNAPSHOT`. - -## Building and publishing JAR artifacts - -In principle the publishing can be done by Maven release plugin: - - $ mvn release:perform - -this will deploy to S3 by default. - -In practice we often need to tweak stuff and correct errors in the -deployment, and for RELEASE versions we also need to publish to Maven -Central. - -To do an M\*, RC\* or RELEASE version you need to be in the tagged copy, so switch to the tag and create a branch - - $ git branch -D release/latest - $ git checkout - $ git checkout -b release/latest - -### Maven Deploy - -Maven can be used to publish the Maven Central artifacts to S3 -(e.g. in CI or a quick snapshot release to fix a bug for a user): - - $ mvn -P upload clean deploy - -There is a `milestone` profile for publishing a milestone and a -`central` profile for publishing to Maven Central (via Sonatype). - -## Building and Publishing ZIP Artifacts - -The ZIP artifacts are built by Maven and published via an ant script. -They were already deployed if you followed the steps above (deploy -using the `upload` profile). Verify this (after site has time to -refresh) by looking for the files in [the community download -page][CommunityDownloads]. - -To deploy to a local staging for test purposes use this recipe: - - $ mvn -P staging,upload deploy - -## Building the Website - - $ export MAVEN_OPTS=-Xmx512m - $ mvn site - $ mvn site:deploy - -The last step sends the result to the .org site. Use `mvn site:deploy --P staging` to test the result before you deploy for real -(it puts it in target/staging). - - -## Maven Central Deployment - -For a full release (not milestones) we also send artifacts to Maven -Central via a pickup directory on Sonatypes OSS repository. So do -this: - - $ mvn -P central -DskipTests deploy - -You need an account with Sonatype and some GPG setup (see -[Sonatype][] for details). The account details need to be added to -your `settings.xml`. - -If you make a mistake with the jars, you can re-deploy to the Sonatype -staging area by doing the deploy command again, but once it is -released they are in Maven Central and they never come out again. - -[Sonatype]: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide -[Downloads]: http://static.springframework.org/downloads/nightly/release-download.php?project=BATCH -[CommunityDownloads]: http://www.springsource.com/download/community diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..7913609d --- /dev/null +++ b/settings.gradle @@ -0,0 +1,6 @@ +rootProject.name = 'spring-amqp' + +include 'spring-amqp-core' +include 'spring-erlang' +include 'spring-rabbit' + diff --git a/spring-amqp-core/template.mf b/spring-amqp-core/template.mf deleted file mode 100644 index f7bc5170..00000000 --- a/spring-amqp-core/template.mf +++ /dev/null @@ -1,11 +0,0 @@ -Bundle-SymbolicName: org.springframework.amqp -Bundle-Name: Spring AMQP Core -Bundle-Vendor: SpringSource -Bundle-ManifestVersion: 2 -Import-Template: - org.springframework.*;version="[3.0.5, 4.0.0)", - org.springframework.amqp.*;version="[1.0.0, 1.1.0)", - org.apache.commons.logging;version="[1.1.1, 2.0.0)", - org.codehaus.jackson.*;version="[1.4.3, 2.0.0)";resolution:=optional, - org.w3c.dom.*;version="0", - javax.xml.*;version="0" diff --git a/spring-amqp-parent/pom.xml b/spring-amqp-parent/pom.xml deleted file mode 100644 index 24a40093..00000000 --- a/spring-amqp-parent/pom.xml +++ /dev/null @@ -1,570 +0,0 @@ - - - 4.0.0 - org.springframework.amqp - spring-amqp-parent - Spring AMQP Parent - - http://www.springsource.org/spring-amqp - 1.1.2.BUILD-SNAPSHOT - pom - - UTF-8 - - 2.2 - 1.4 - 4.8.2 - 1.2.15 - 1.8.4 - 1.4.3 - 1.5.3 - 2.8.1 - 3.0.7.RELEASE - - - - Apache 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - dsyer - Dave Syer - dsyer@vmware.com - - - markfisher - Mark Fisher - markfisher@vmware.com - - - mpollack - Mark Pollack - mpollack@vmware.com - - - jbrisbin - Jon Brisbin - jbrisbin@vmware.com - - - tomas.lukosius - Tomas Lukosius - tomas.lukosius@opencredo.com - - - - http://github.com/SpringSource/spring-amqp - scm:git:git://github.com/SpringSource/spring-amqp.git - scm:git:git://github.com/SpringSource/spring-amqp.git - - - - strict - - false - - - - fast - - true - true - - - - integration - - true - - - - - maven-surefire-plugin - - false - - **/*Tests.java - - - **/Abstract*.java - - junit:junit - - - - - - - broker-integration - - true - - - - - maven-surefire-plugin - - - - BROKER_INTEGRATION_TEST - ${integration.test} - - - false - - **/*Tests.java - - - **/Abstract*.java - - junit:junit - - - - - - - staging - - - spring-site-staging - file:///${java.io.tmpdir}/spring-amqp/docs - - - spring-milestone-staging - file:///${java.io.tmpdir}/spring-amqp/milestone - - - spring-snapshot-staging - file:///${java.io.tmpdir}/spring-amqp/snapshot - - - - - central - - - sonatype-nexus-snapshots - Sonatype Nexus Snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - - - sonatype-nexus-staging - Nexus Release Repository - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - - - - - org.apache.maven.plugins - maven-gpg-plugin - - - sign-artifacts - verify - - sign - - - - - - - - - milestone - - - spring-milestone - Spring Milestone Repository - s3://maven.springframework.org/milestone - - - - - bootstrap - - - - repository.plugin.springsource.release - SpringSource Maven Repository - http://repository.springsource.com/maven/bundles/release - - - - - repository.springframework.maven.release - Spring Framework Maven Release Repository - http://maven.springframework.org/release - - - repository.springframework.maven.milestone - Spring Framework Maven Milestone Repository - http://maven.springframework.org/milestone - - - repository.springframework.maven.snapshot - Spring Framework Maven Snapshot Repository - http://maven.springframework.org/snapshot - - - - - - - http://www.springsource.com/download/community - - - spring-site - scp://static.springframework.org/var/www/domains/springframework.org/static/htdocs/spring-amqp/docs/${project.version} - - - - spring-release - Spring Release Repository - s3://maven.springframework.org/release - - - spring-snapshot - Spring Snapshot Repository - s3://maven.springframework.org/snapshot - - - - - - - - com.rabbitmq - amqp-client - ${com.rabbitmq.version} - - - commons-cli - commons-cli - - - - - org.springframework.amqp - spring-amqp - ${project.version} - - - org.springframework.amqp - spring-rabbit - ${project.version} - - - org.springframework.amqp - spring-erlang - ${project.version} - - - - - org.springframework - spring-aop - ${org.springframework.version} - - - org.springframework - spring-beans - ${org.springframework.version} - - - org.springframework - spring-core - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - org.springframework - spring-oxm - ${org.springframework.version} - - - org.springframework - spring-tx - ${org.springframework.version} - - - org.springframework - spring-test - ${org.springframework.version} - test - - - - - commons-io - commons-io - ${commons-io.version} - - - - - log4j - log4j - ${log4j.version} - - - javax.mail - mail - - - javax.jms - jms - - - com.sun.jdmk - jmxtools - - - com.sun.jmx - jmxri - - - runtime - - - - javax.annotation - jsr250-api - 1.0 - true - - - - cglib - cglib-nodep - ${cglib.version} - true - - - - org.mockito - mockito-all - ${org.mockito.version} - test - - - - junit - junit - ${junit.version} - test - - - - - org.codehaus.jackson - jackson-core-asl - ${org.codehaus.jackson.version} - - - org.codehaus.jackson - jackson-mapper-asl - ${org.codehaus.jackson.version} - - - - org.erlang.otp - jinterface - ${org.erlang.otp.version} - - - - - - - - log4j - log4j - ${log4j.version} - test - - - - - - - org.springframework.build.aws - org.springframework.build.aws.maven - 3.0.0.RELEASE - - - - - ${project.basedir}/src/main/java - - **/* - - - **/*.java - - - - ${project.basedir}/src/main/resources - - **/* - - - - - - ${project.basedir}/src/test/java - - **/* - - - **/*.java - - - - ${project.basedir}/src/test/resources - - **/* - - - **/*.java - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.5 - 1.5 - -Xlint:all - true - false - - - - org.apache.maven.plugins - maven-surefire-plugin - - false - - **/*Tests.java - - - **/Abstract*.java - **/*IntegrationTests.java - - junit:junit - - - - maven-source-plugin - - - attach-sources - - jar - - - - - - maven-javadoc-plugin - - - aggregate - - jar - - package - - - - - maven-jar-plugin - - - target/classes/META-INF/MANIFEST.MF - - - - - - - - - com.springsource.bundlor - com.springsource.bundlor.maven - 1.0.0.RELEASE - - - bundlor - - bundlor - - - - - true - - - - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - com.springsource.bundlor - com.springsource.bundlor.maven - [1.0,) - - bundlor - - - - - - - - - - - - - - - - - - org.apache.maven.plugins - maven-project-info-reports-plugin - 2.1 - - false - - - - - diff --git a/spring-erlang/template.mf b/spring-erlang/template.mf deleted file mode 100644 index 350c93bd..00000000 --- a/spring-erlang/template.mf +++ /dev/null @@ -1,8 +0,0 @@ -Bundle-SymbolicName: org.springframework.erlang -Bundle-Name: Spring Erlang Support -Bundle-Vendor: SpringSource -Bundle-ManifestVersion: 2 -Import-Template: - org.springframework.*;version="[3.0.5, 4.0.0)", - org.apache.commons.logging;version="[1.1.1, 2.0.0)", - com.ericsson.otp.erlang;version="0" diff --git a/spring-rabbit/template.mf b/spring-rabbit/template.mf deleted file mode 100644 index 4904911d..00000000 --- a/spring-rabbit/template.mf +++ /dev/null @@ -1,19 +0,0 @@ -Bundle-SymbolicName: org.springframework.amqp.rabbit -Bundle-Name: Spring RabbitMQ Support -Bundle-Vendor: SpringSource -Bundle-ManifestVersion: 2 -Import-Package: - org.springframework.jmx.support;version="[3.0.5,4.0.0)" -Import-Template: - org.springframework.*;version="[3.0.5, 4.0.0)", - org.springframework.amqp.*;version="[1.0.0, 1.1.0)", - org.springframework.retry.*;version="[1.0.0, 1.1.0)";resolution:=optional, - org.springframework.erlang.*;version="[1.0.0, 1.1.0)";resolution:=optional, - org.apache.commons.logging;version="[1.1.1, 2.0.0)", - com.rabbitmq.*;version="[2.5.0, 3.0.0)", - org.aopalliance.*;version="0";resolution:=optional, - com.ericsson.otp.erlang;version="0";resolution:=optional, - org.apache.log4j.*;version="[1.2.14,1.3.0)";resolution:=optional, - org.junit.*;version="0", - org.w3c.dom.*;version="0", - javax.xml.*;version="0" diff --git a/src/api/overview.html b/src/api/overview.html new file mode 100644 index 00000000..b8103569 --- /dev/null +++ b/src/api/overview.html @@ -0,0 +1,25 @@ + + + This document is the API specification for Spring AMQP +
+
+

+ For further API reference and developer documentation, see the Spring AMQP reference documentation. That + documentation contains more detailed, developer-targeted + descriptions, with conceptual overviews, definitions of terms, + workarounds, and working code examples. +

+ +

+ If you are interested in commercial training, consultancy, and + support for Spring AMQP, please visit + http://www.springsource.com +

+
+ + diff --git a/src/assembly/distribution.xml b/src/assembly/distribution.xml deleted file mode 100644 index 65e5a2b8..00000000 --- a/src/assembly/distribution.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - distribution - - zip - - true - - - - src/assembly - - apache-license.txt - epl-license.txt - notice.txt - - - dos - - - - . - - README.md - - - dos - - - - target/site/reference - docs/reference - - - - target/site/apidocs - docs/javadoc - - - - - - - org.springframework.amqp:spring-amqp - org.springframework.amqp:spring-erlang - org.springframework.amqp:spring-rabbit - - - dist - false - false - - - - - - org.springframework.amqp:spring-amqp - org.springframework.amqp:spring-erlang - org.springframework.amqp:spring-rabbit - - - sources - src - false - false - - - - diff --git a/src/dist/README.md b/src/dist/README.md new file mode 100644 index 00000000..0c8acaa6 --- /dev/null +++ b/src/dist/README.md @@ -0,0 +1,122 @@ +Spring AMQP +=========== + +This project provides support for using Spring and Java with [AMQP](http://www.amqp.org/), and in particular [RabbitMQ](http://www.rabbitmq.com/). + +# Checking out and Building + +To check out the project from [GitHub](https://github.com/SpringSource/spring-amqp) and build from source using [Gradle](http://gradle.org/), do the following: + + git clone git://github.com/SpringSource/spring-amqp.git + cd spring-amqp + ./gradlew build + +If you encounter out of memory errors during the build, increase available heap and permgen for Gradle: + + GRADLE_OPTS='-XX:MaxPermSize=1024m -Xmx1024m' + +To build and install jars into your local Maven cache: + + ./gradlew install + +To build api Javadoc (results will be in `build/api`): + + ./gradlew api + +To build reference documentation (results will be in `build/reference`): + + ./gradlew reference + +To build complete distribution including `-dist`, `-docs`, and `-schema` zip files (results will be in `build/distributions`) + + ./gradlew dist + +To analyze and gather metrics using [Sonar](http://www.sonarsource.org/): + + ./gradlew clean build sonar + +(Please make sure that you have Sonar running, e.g. on localhost port 9000) + + +# Using Eclipse + +To generate Eclipse metadata (.classpath and .project files), do the following: + + ./gradlew eclipse + +Once complete, you may then import the projects into Eclipse as usual: + +*File -> Import -> Existing projects into workspace* + +Browse to the *'spring-amqp'* root directory. All projects should import free of errors. + +# Using SpringSource Tool Suite™ (STS) + +Using the STS Gradle Support, you can directly import Gradle projects, without having to generate Eclipse metadata first (since STS 2.7.M1). Please make sure you have the Gradle STS Extension installed - Please see the [installation instructions](http://static.springsource.org/sts/docs/latest/reference/html/gradle/installation.html) for details. + +1. Select *File -> Import -> Gradle Project* +2. Browse to the Spring AMQP Root Folder +3. Click on **Build Model** +4. Select the projects you want to import +5. Press **Finish** + +# Using IntelliJ IDEA + +To generate IDEA metadata (.iml and .ipr files), do the following: + + ./gradlew idea + +## Distribution Contents + +If you downloaded the full Spring AMQP distribution or if you created the distribution using `./gradlew dist`, you will see the following directory structure: + + ├── README.md + ├── apache-license.txt + ├── docs + │ ├── api + │ └── reference + ├── epl-license.txt + ├── libs + ├── notice.txt + └── schema + └── rabbit + +The binary JARs and the source code are available in the **libs**. The reference manual and javadocs are located in the **docs** directory. + +## Changelog + +Lists of issues addressed per release can be found in [JIRA](https://jira.springsource.org/browse/AMQP#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel). + +## Additional Resources + +* [Spring AMQP Homepage](http://www.springsource.org/spring-amqp) +* [Spring AMQP Source](http://github.com/SpringSource/spring-amqp) +* [Spring AMQP Samples](http://github.com/SpringSource/spring-amqp-samples) +* [Spring AMQP Forum](http://forum.springsource.org/forumdisplay.php?f=74) +* [StackOverflow](http://stackoverflow.com/questions/tagged/spring-amqp) + +# Contributing to Spring AMQP + +Here are some ways for you to get involved in the community: + +* Get involved with the Spring community on the Spring Community Forums. Please help out on the [forum](http://forum.springsource.org/forumdisplay.php?f=74) by responding to questions and joining the debate. +* Create [JIRA](https://jira.springsource.org/browse/AMQP) tickets for bugs and new features and comment and vote on the ones that you are interested in. +* Github is for social coding: if you want to write code, we encourage contributions through pull requests from [forks of this repository](http://help.github.com/forking/). If you want to contribute code this way, please reference a JIRA ticket as well covering the specific issue you are addressing. +* Watch for upcoming articles on Spring by [subscribing](http://www.springsource.org/node/feed) to springframework.org + +Before we accept a non-trivial patch or pull request we will need you to sign the [contributor's agreement](https://support.springsource.com/spring_committer_signup). Signing the contributor's agreement does not grant anyone commit rights to the main repository, but it does mean that we can accept your contributions, and you will get an author credit if we do. Active contributors might be asked to join the core team, and given the ability to merge pull requests. + +## Code Conventions and Housekeeping +None of these is essential for a pull request, but they will all help. They can also be added after the original pull request but before a merge. + +* Use the Spring Framework code format conventions (import `eclipse-code-formatter.xml` from the root of the project if you are using Eclipse). +* Make sure all new .java files to have a simple Javadoc class comment with at least an @author tag identifying you, and preferably at least a paragraph on what the class is for. +* Add the ASF license header comment to all new .java files (copy from existing files in the project) +* Add yourself as an @author to the .java files that you modify substantially (more than cosmetic changes). +* Add some Javadocs and, if you change the namespace, some XSD doc elements. +* A few unit tests would help a lot as well - someone has to do it. +* If no-one else is using your branch, please rebase it against the current master (or other target branch in the main project). + +# License + +Spring AMQP is released under the terms of the Apache Software License Version 2.0 (see license.txt). diff --git a/src/assembly/apache-license.txt b/src/dist/apache-license.txt similarity index 100% rename from src/assembly/apache-license.txt rename to src/dist/apache-license.txt diff --git a/src/assembly/epl-license.txt b/src/dist/epl-license.txt similarity index 100% rename from src/assembly/epl-license.txt rename to src/dist/epl-license.txt diff --git a/src/assembly/notice.txt b/src/dist/notice.txt similarity index 100% rename from src/assembly/notice.txt rename to src/dist/notice.txt diff --git a/src/docbkx/preface.xml b/src/docbkx/preface.xml deleted file mode 100644 index c94977df..00000000 --- a/src/docbkx/preface.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Preface - - The Spring AMQP project applies core Spring concepts to the development of AMQP-based messaging solutions. We provide a "template" as a high-level abstraction for sending and receiving messages. We also provide support for Message-driven POJOs. These libraries facilitate management of AMQP resources while promoting the use of dependency injection and declarative configuration. In all of these cases, you will see similarities to the JMS support in the Spring Framework. The project consists of both Java and .NET versions. This manual is dedicated to the Java version. For links to the .NET version's manual or any other project-related information visit the Spring AMQP project homepage. - diff --git a/src/docbkx/resources/css/highlight.css b/src/docbkx/resources/css/highlight.css deleted file mode 100644 index ffefef72..00000000 --- a/src/docbkx/resources/css/highlight.css +++ /dev/null @@ -1,35 +0,0 @@ -/* - code highlight CSS resemblign the Eclipse IDE default color schema - @author Costin Leau -*/ - -.hl-keyword { - color: #7F0055; - font-weight: bold; -} - -.hl-comment { - color: #3F5F5F; - font-style: italic; -} - -.hl-multiline-comment { - color: #3F5FBF; - font-style: italic; -} - -.hl-tag { - color: #3F7F7F; -} - -.hl-attribute { - color: #7F007F; -} - -.hl-value { - color: #2A00FF; -} - -.hl-string { - color: #2A00FF; -} \ No newline at end of file diff --git a/src/docbkx/resources/css/html.css b/src/docbkx/resources/css/html.css deleted file mode 100644 index 10936f33..00000000 --- a/src/docbkx/resources/css/html.css +++ /dev/null @@ -1,421 +0,0 @@ -body { - text-align: justify; - margin-right: 2em; - margin-left: 2em; -} - -a, - a[accesskey^ - -= -"h" -] -, -a[accesskey^ - -= -"n" -] -, -a[accesskey^ - -= -"u" -] -, -a[accesskey^ - -= -"p" -] -{ -font-family: Verdana, Arial, helvetica, sans-serif - -; -font-size: - -12 -px - -; -color: #003399 - -; -} - -a:active { - color: #003399; -} - -a:visited { - color: #888888; -} - -p { - font-family: Verdana, Arial, sans-serif; -} - -dt { - font-family: Verdana, Arial, sans-serif; - font-size: 12px; -} - -p, dl, dt, dd, blockquote { - color: #000000; - margin-bottom: 3px; - margin-top: 3px; - padding-top: 0px; -} - -ol, ul, p { - margin-top: 6px; - margin-bottom: 6px; -} - -p, blockquote { - font-size: 90%; -} - -p.releaseinfo { - font-size: 100%; - font-weight: bold; - font-family: Verdana, Arial, helvetica, sans-serif; - padding-top: 10px; -} - -p.pubdate { - font-size: 120%; - font-weight: bold; - font-family: Verdana, Arial, helvetica, sans-serif; -} - -td { - font-size: 80%; -} - -td, th, span { - color: #000000; -} - -td[width^ - -= -"40%" -] -{ -font-family: Verdana, Arial, helvetica, sans-serif - -; -font-size: - -12 -px - -; -color: #003399 - -; -} - -table[summary^ - -= -"Navigation header" -] -tbody tr th[colspan^ - -= -"3" -] -{ -font-family: Verdana, Arial, helvetica, sans-serif - -; -} - -blockquote { - margin-right: 0px; -} - -h1, h2, h3, h4, h6, H6 { - color: #000000; - font-weight: 500; - margin-top: 0px; - padding-top: 14px; - font-family: Verdana, Arial, helvetica, sans-serif; - margin-bottom: 0px; -} - -h2.title { - font-weight: 800; - margin-bottom: 8px; -} - -h2.subtitle { - font-weight: 800; - margin-bottom: 20px; -} - -.firstname, .surname { - font-size: 12px; - font-family: Verdana, Arial, helvetica, sans-serif; -} - -table { - border-collapse: collapse; - border-spacing: 0; - border: 1px black; - empty-cells: hide; - margin: 10px 0px 30px 50px; - width: 90%; -} - -div.table { - margin: 30px 0px 30px 0px; - border: 1px dashed gray; - padding: 10px; -} - -div .table-contents table { - border: 1px solid black; -} - -div.table > p.title { - padding-left: 10px; -} - -table[summary^ - -= -"Navigation footer" -] -{ -border-collapse: collapse - -; -border-spacing: - -0 -; -border: - -1 -px black - -; -empty-cells: hide - -; -margin: - -0 -px - -; -width: - -100 -% -; -} - -table[summary^ - -= -"Note" -] -, -table[summary^ - -= -"Warning" -] -, -table[summary^ - -= -"Tip" -] -{ -border-collapse: collapse - -; -border-spacing: - -0 -; -border: - -1 -px black - -; -empty-cells: hide - -; -margin: - -10 -px - -0 -px - -10 -px - -- -20 -px - -; -width: - -100 -% -; -} - -td { - padding: 4pt; - font-family: Verdana, Arial, helvetica, sans-serif; -} - -div.warning TD { - text-align: justify; -} - -h1 { - font-size: 150%; -} - -h2 { - font-size: 110%; -} - -h3 { - font-size: 100%; - font-weight: bold; -} - -h4 { - font-size: 90%; - font-weight: bold; -} - -h5 { - font-size: 90%; - font-style: italic; -} - -h6 { - font-size: 100%; - font-style: italic; -} - -tt { - font-size: 110%; - font-family: "Courier New", Courier, monospace; - color: #000000; -} - -.navheader, .navfooter { - border: none; -} - -div.navfooter table { - border: dashed gray; - border-width: 1px 1px 1px 1px; - background-color: #cde48d; -} - -pre { - font-size: 110%; - padding: 5px; - border-style: solid; - border-width: 1px; - border-color: #CCCCCC; - background-color: #f3f5e9; -} - -ul, ol, li { - list-style: disc; -} - -hr { - width: 100%; - height: 1px; - background-color: #CCCCCC; - border-width: 0px; - padding: 0px; -} - -.variablelist { - padding-top: 10px; - padding-bottom: 10px; - margin: 0; -} - -.term { - font-weight: bold; -} - -.mediaobject { - padding-top: 30px; - padding-bottom: 30px; -} - -.legalnotice { - font-family: Verdana, Arial, helvetica, sans-serif; - font-size: 12px; - font-style: italic; -} - -.sidebar { - float: right; - margin: 10px 0px 10px 30px; - padding: 10px 20px 20px 20px; - width: 33%; - border: 1px solid black; - background-color: #F4F4F4; - font-size: 14px; -} - -.property { - font-family: "Courier New", Courier, monospace; -} - -a code { - font-family: Verdana, Arial, monospace; - font-size: 12px; -} - -td code { - font-size: 110%; -} - -div.note * td, - div.tip * td, - div.warning * td, - div.calloutlist * td { - text-align: justify; - font-size: 100%; -} - -.programlisting .interfacename, - .programlisting .literal, - .programlisting .classname { - font-size: 95%; -} - -.title .interfacename, - .title .literal, - .title .classname { - font-size: 130%; -} - -/* everything in a is displayed in a coloured, comment-like font */ -.programlisting * .lineannotation, - .programlisting * .lineannotation * { - color: green; -} diff --git a/src/docbkx/resources/css/stylesheet.css b/src/docbkx/resources/css/stylesheet.css deleted file mode 100644 index 77569070..00000000 --- a/src/docbkx/resources/css/stylesheet.css +++ /dev/null @@ -1,99 +0,0 @@ -@IMPORT url("highlight.css"); - -html { - padding: 0pt; - margin: 0pt; -} - -body { - margin-left: 10%; - margin-right: 10%; - font-family: Arial, Sans-serif; -} - -div { - margin: 0pt; -} - -p { - text-align: justify; -} - -hr { - border: 1px solid gray; - background: gray; -} - -h1,h2,h3,h4 { - color: #234623; - font-family: Arial, Sans-serif; -} - -pre { - line-height: 1.0; - color: black; -} - -pre.programlisting { - font-size: 10pt; - padding: 7pt 3pt; - border: 1pt solid black; - background: #eeeeee; - clear: both; -} - -div.table { - margin: 1em; - padding: 0.5em; - text-align: center; -} - -div.table table { - display: table; - width: 100%; -} - -div.table td { - padding-left: 7px; - padding-right: 7px; -} - -.sidebar { - float: right; - margin: 10px 0 10px 30px; - padding: 10px 20px 20px 20px; - width: 33%; - border: 1px solid black; - background-color: #F4F4F4; - font-size: 14px; -} - -.mediaobject { - padding-top: 30px; - padding-bottom: 30px; -} - -.legalnotice { - font-family: Verdana, Arial, helvetica, sans-serif; - font-size: 12px; - font-style: italic; -} - -p.releaseinfo { - font-size: 100%; - font-weight: bold; - font-family: Verdana, Arial, helvetica, sans-serif; - padding-top: 10px; -} - -p.pubdate { - font-size: 120%; - font-weight: bold; - font-family: Verdana, Arial, helvetica, sans-serif; -} - -span.productname { - font-size: 200%; - font-weight: bold; - font-family: Verdana, Arial, helvetica, sans-serif; -} diff --git a/src/docbkx/resources/images/callouts/1.png b/src/docbkx/resources/images/callouts/1.png deleted file mode 100644 index 7d473430..00000000 Binary files a/src/docbkx/resources/images/callouts/1.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/10.png b/src/docbkx/resources/images/callouts/10.png deleted file mode 100644 index 997bbc82..00000000 Binary files a/src/docbkx/resources/images/callouts/10.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/11.png b/src/docbkx/resources/images/callouts/11.png deleted file mode 100644 index ce47dac3..00000000 Binary files a/src/docbkx/resources/images/callouts/11.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/12.png b/src/docbkx/resources/images/callouts/12.png deleted file mode 100644 index 31daf4e2..00000000 Binary files a/src/docbkx/resources/images/callouts/12.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/13.png b/src/docbkx/resources/images/callouts/13.png deleted file mode 100644 index 14021a89..00000000 Binary files a/src/docbkx/resources/images/callouts/13.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/14.png b/src/docbkx/resources/images/callouts/14.png deleted file mode 100644 index 64014b75..00000000 Binary files a/src/docbkx/resources/images/callouts/14.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/15.png b/src/docbkx/resources/images/callouts/15.png deleted file mode 100644 index 0d65765f..00000000 Binary files a/src/docbkx/resources/images/callouts/15.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/2.png b/src/docbkx/resources/images/callouts/2.png deleted file mode 100644 index 5d09341b..00000000 Binary files a/src/docbkx/resources/images/callouts/2.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/3.png b/src/docbkx/resources/images/callouts/3.png deleted file mode 100644 index ef7b7004..00000000 Binary files a/src/docbkx/resources/images/callouts/3.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/4.png b/src/docbkx/resources/images/callouts/4.png deleted file mode 100644 index adb8364e..00000000 Binary files a/src/docbkx/resources/images/callouts/4.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/5.png b/src/docbkx/resources/images/callouts/5.png deleted file mode 100644 index 4d7eb460..00000000 Binary files a/src/docbkx/resources/images/callouts/5.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/6.png b/src/docbkx/resources/images/callouts/6.png deleted file mode 100644 index 0ba694af..00000000 Binary files a/src/docbkx/resources/images/callouts/6.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/7.png b/src/docbkx/resources/images/callouts/7.png deleted file mode 100644 index 472e96f8..00000000 Binary files a/src/docbkx/resources/images/callouts/7.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/8.png b/src/docbkx/resources/images/callouts/8.png deleted file mode 100644 index 5e60973c..00000000 Binary files a/src/docbkx/resources/images/callouts/8.png and /dev/null differ diff --git a/src/docbkx/resources/images/callouts/9.png b/src/docbkx/resources/images/callouts/9.png deleted file mode 100644 index a0676d26..00000000 Binary files a/src/docbkx/resources/images/callouts/9.png and /dev/null differ diff --git a/src/docbkx/resources/images/xdev-spring_logo.jpg b/src/docbkx/resources/images/xdev-spring_logo.jpg deleted file mode 100644 index 622962ee..00000000 Binary files a/src/docbkx/resources/images/xdev-spring_logo.jpg and /dev/null differ diff --git a/src/docbkx/resources/xsl/fopdf.xsl b/src/docbkx/resources/xsl/fopdf.xsl deleted file mode 100644 index c89371b0..00000000 --- a/src/docbkx/resources/xsl/fopdf.xsl +++ /dev/null @@ -1,417 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -5em - -5em - - - - - - - - - - - Spring AMQP ( - - ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 0 - 1 - - 1 - - - - - - book toc - - - - 2 - - - - - - - - - - 0 - 0 - 0 - - - 5mm - 10mm - 10mm - - 15mm - 10mm - 0mm - - 18mm - 18mm - - - 0pc - - - - - justify - false - - - 11 - 8 - - - 1.4 - - - - - - - 0.8em - - - - - - 17.4cm - - - - 4pt - 4pt - 4pt - 4pt - - - - 0.1pt - 0.1pt - - - - - 1 - - - - - - - - left - bold - - - pt - - - - - - - - - - - - - - - 0.8em - 0.8em - 0.8em - - - pt - - 0.1em - 0.1em - 0.1em - - - 0.6em - 0.6em - 0.6em - - - pt - - 0.1em - 0.1em - 0.1em - - - 0.4em - 0.4em - 0.4em - - - pt - - 0.1em - 0.1em - 0.1em - - - - - bold - - - pt - - false - 0.4em - 0.6em - 0.8em - - - - - - - - - pt - - - - - 1em - 1em - 1em - #444444 - solid - 0.1pt - 0.5em - 0.5em - 0.5em - 0.5em - 0.5em - 0.5em - - - - 1 - - #F0F0F0 - - - - - - 0 - 1 - - - 90 - - - - - '1' - - - - - - - figure after - example before - equation before - table before - procedure before - - - - 1 - - - - 0.8em - 0.8em - 0.8em - 0.1em - 0.1em - 0.1em - - - - - - - - - - - - - - - - - diff --git a/src/docbkx/resources/xsl/html.xsl b/src/docbkx/resources/xsl/html.xsl deleted file mode 100644 index aa7930ba..00000000 --- a/src/docbkx/resources/xsl/html.xsl +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - html.css - - - 1 - 0 - 1 - 0 - - - - - - book toc - - - - 3 - - - - - 1 - - - - - - - 0 - - - 90 - - - - - 0 - - - - - figure after - example before - equation before - table before - procedure before - - - - , - - - - - - - - -
-

Authors

-

- -

-
- -
diff --git a/src/docbkx/resources/xsl/html/html_chunk.xsl b/src/docbkx/resources/xsl/html/html_chunk.xsl deleted file mode 100644 index 81e6ab23..00000000 --- a/src/docbkx/resources/xsl/html/html_chunk.xsl +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - '5' - - - - 1 - 0 - 1 - - - - images/ - .gif - - 120 - images/callouts/ - .gif - - - css/stylesheet.css - text/css - book toc,title - - text-align: left - - - - - - - - - - - 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Begin Google Analytics code - - - End Google Analytics code - - - - - Begin LoopFuse code - - - End LoopFuse code - - - \ No newline at end of file diff --git a/src/docbkx/resources/xsl/html/titlepage.xml b/src/docbkx/resources/xsl/html/titlepage.xml deleted file mode 100644 index 09539c06..00000000 --- a/src/docbkx/resources/xsl/html/titlepage.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - <subtitle/> - <!-- <corpauthor/> - <authorgroup/> - <author/> - <mediaobject/> --> - <othercredit/> - <releaseinfo/> - <copyright/> - <legalnotice/> - <pubdate/> - <revision/> - <revhistory/> - <abstract/> - </t:titlepage-content> - - <t:titlepage-content t:side="verso"> - </t:titlepage-content> - - <t:titlepage-separator> - <hr/> - </t:titlepage-separator> - - <t:titlepage-before t:side="recto"> - </t:titlepage-before> - - <t:titlepage-before t:side="verso"> - </t:titlepage-before> -</t:titlepage> - -</t:templates> diff --git a/src/docbkx/resources/xsl/html_chunk.xsl b/src/docbkx/resources/xsl/html_chunk.xsl deleted file mode 100644 index 290cf6a9..00000000 --- a/src/docbkx/resources/xsl/html_chunk.xsl +++ /dev/null @@ -1,208 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - This is the XSL HTML configuration file for the Spring Reference Documentation. ---> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:fo="http://www.w3.org/1999/XSL/Format" - version="1.0"> - - <xsl:import href="urn:docbkx:stylesheet"/> - <!--################################################### - HTML Settings - ################################################### --> - <xsl:param name="chunk.section.depth">'5'</xsl:param> - <xsl:param name="use.id.as.filename">'1'</xsl:param> - <!-- These extensions are required for table printing and other stuff --> - <xsl:param name="use.extensions">1</xsl:param> - <xsl:param name="tablecolumns.extension">0</xsl:param> - <xsl:param name="callout.extensions">1</xsl:param> - <xsl:param name="graphicsize.extension">0</xsl:param> - <!--################################################### - Table Of Contents - ################################################### --> - <!-- Generate the TOCs for named components only --> - <xsl:param name="generate.toc"> - book toc - </xsl:param> - <!-- Show only Sections up to level 3 in the TOCs --> - <xsl:param name="toc.section.depth">3</xsl:param> - <!--################################################### - Labels - ################################################### --> - <!-- Label Chapters and Sections (numbering) --> - <xsl:param name="chapter.autolabel">1</xsl:param> - <xsl:param name="section.autolabel" select="1"/> - <xsl:param name="section.label.includes.component.label" select="1"/> - <!--################################################### - Callouts - ################################################### --> - <!-- Place callout marks at this column in annotated areas --> - <xsl:param name="callout.graphics">1</xsl:param> - <xsl:param name="callout.defaultcolumn">90</xsl:param> - <!--################################################### - Misc - ################################################### --> - <!-- Placement of titles --> - <xsl:param name="formal.title.placement"> - figure after - example before - equation before - table before - procedure before - </xsl:param> - <xsl:template match="author" mode="titlepage.mode"> - <xsl:if test="name(preceding-sibling::*[1]) = 'author'"> - <xsl:text>, </xsl:text> - </xsl:if> - <span class="{name(.)}"> - <xsl:call-template name="person.name"/> - <xsl:apply-templates mode="titlepage.mode" select="./contrib"/> - <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/> - </span> - </xsl:template> - <xsl:template match="authorgroup" mode="titlepage.mode"> - <div class="{name(.)}"> - <h2>Authors</h2> - <p/> - <xsl:apply-templates mode="titlepage.mode"/> - </div> - </xsl:template> - <!--################################################### - Headers and Footers - ################################################### --> - <!-- let's have a Spring and SpringSource banner across the top of each page --> - <xsl:template name="user.header.navigation"> - <div style="background-color:white;border:none;height:73px;border:1px solid black;"> - <a style="border:none;" href="http://www.springsource.org/spring-amqp" - title="The Spring Framework - Spring AMQP"> - <img style="border:none;" src="images/xdev-spring_logo.jpg"/> - </a> - <a style="border:none;" href="http://www.springsource.com/" title="SpringSource"> - <img style="border:none;position:absolute;padding-top:5px;right:42px;" src="images/s2_box_logo.png"/> - </a> - </div> - </xsl:template> - <!-- no other header navigation (prev, next, etc.) --> - <xsl:template name="header.navigation"/> - <xsl:param name="navig.showtitles">1</xsl:param> - <!-- let's have a 'Sponsored by SpringSource' strapline (or somesuch) across the bottom of each page --> - <xsl:template name="footer.navigation"> - <xsl:param name="prev" select="/foo"/> - <xsl:param name="next" select="/foo"/> - <xsl:param name="nav.context"/> - <xsl:variable name="home" select="/*[1]"/> - <xsl:variable name="up" select="parent::*"/> - <xsl:variable name="row1" select="count($prev) > 0 - or count($up) > 0 - or count($next) > 0"/> - <xsl:variable name="row2" select="($prev and $navig.showtitles != 0) - or (generate-id($home) != generate-id(.) - or $nav.context = 'toc') - or ($chunk.tocs.and.lots != 0 - and $nav.context != 'toc') - or ($next and $navig.showtitles != 0)"/> - <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'"> - <div class="navfooter"> - <xsl:if test="$footer.rule != 0"> - <hr/> - </xsl:if> - <xsl:if test="$row1 or $row2"> - <table width="100%" summary="Navigation footer"> - <xsl:if test="$row1"> - <tr> - <td width="40%" align="left"> - <xsl:if test="count($prev)>0"> - <a accesskey="p"> - <xsl:attribute name="href"> - <xsl:call-template name="href.target"> - <xsl:with-param name="object" select="$prev"/> - </xsl:call-template> - </xsl:attribute> - <xsl:call-template name="navig.content"> - <xsl:with-param name="direction" select="'prev'"/> - </xsl:call-template> - </a> - </xsl:if> - <xsl:text> </xsl:text> - </td> - - <td width="20%" align="center"> - <xsl:choose> - <xsl:when test="$home != . or $nav.context = 'toc'"> - <a accesskey="h"> - <xsl:attribute name="href"> - <xsl:call-template name="href.target"> - <xsl:with-param name="object" select="$home"/> - </xsl:call-template> - </xsl:attribute> - <xsl:call-template name="navig.content"> - <xsl:with-param name="direction" select="'home'"/> - </xsl:call-template> - </a> - <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'"> - <xsl:text> | </xsl:text> - </xsl:if> - </xsl:when> - <xsl:otherwise> </xsl:otherwise> - </xsl:choose> - <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'"> - <a accesskey="t"> - <xsl:attribute name="href"> - <xsl:apply-templates select="/*[1]" mode="recursive-chunk-filename"> - <xsl:with-param name="recursive" select="true()"/> - </xsl:apply-templates> - <xsl:text>-toc</xsl:text> - <xsl:value-of select="$html.ext"/> - </xsl:attribute> - <xsl:call-template name="gentext"> - <xsl:with-param name="key" select="'nav-toc'"/> - </xsl:call-template> - </a> - </xsl:if> - </td> - <td width="40%" align="right"> - <xsl:text> </xsl:text> - <xsl:if test="count($next)>0"> - <a accesskey="n"> - <xsl:attribute name="href"> - <xsl:call-template name="href.target"> - <xsl:with-param name="object" select="$next"/> - </xsl:call-template> - </xsl:attribute> - <xsl:call-template name="navig.content"> - <xsl:with-param name="direction" select="'next'"/> - </xsl:call-template> - </a> - </xsl:if> - </td> - </tr> - </xsl:if> - <xsl:if test="$row2"> - <tr> - <td width="40%" align="left" valign="top"> - <xsl:if test="$navig.showtitles != 0"> - <xsl:apply-templates select="$prev" mode="object.title.markup"/> - </xsl:if> - <xsl:text> </xsl:text> - </td> - <td width="20%" align="center"> - <span style="color:white;font-size:90%;"> - <a href="http://www.springsource.com/" - title="SpringSource">Sponsored by SpringSource - </a> - </span> - </td> - <td width="40%" align="right" valign="top"> - <xsl:text> </xsl:text> - <xsl:if test="$navig.showtitles != 0"> - <xsl:apply-templates select="$next" mode="object.title.markup"/> - </xsl:if> - </td> - </tr> - </xsl:if> - </table> - </xsl:if> - </div> - </xsl:if> - </xsl:template> -</xsl:stylesheet> diff --git a/src/docbkx/resources/xsl/pdf/fopdf.xsl b/src/docbkx/resources/xsl/pdf/fopdf.xsl deleted file mode 100644 index 2905ee3c..00000000 --- a/src/docbkx/resources/xsl/pdf/fopdf.xsl +++ /dev/null @@ -1,518 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - 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. ---> - -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:fo="http://www.w3.org/1999/XSL/Format" - xmlns:xslthl="http://xslthl.sf.net" - exclude-result-prefixes="xslthl" - version='1.0'> - -<!-- Use nice graphics for admonitions --> - <xsl:param name="admon.graphics">'1'</xsl:param> - <xsl:param name="admon.graphics.path">@file.prefix@@dbf.xsl@/images/</xsl:param> - <xsl:param name="draft.watermark.image" select="'@file.prefix@@dbf.xsl@/images/draft.png'"/> - <xsl:param name="paper.type" select="'@paper.type@'"/> - - <xsl:param name="page.margin.top" select="'1cm'"/> - <xsl:param name="region.before.extent" select="'1cm'"/> - <xsl:param name="body.margin.top" select="'1.5cm'"/> - - <xsl:param name="body.margin.bottom" select="'1.5cm'"/> - <xsl:param name="region.after.extent" select="'1cm'"/> - <xsl:param name="page.margin.bottom" select="'1cm'"/> - <xsl:param name="title.margin.left" select="'0cm'"/> - -<!--################################################### - Header - ################################################### --> - -<!-- More space in the center header for long text --> - <xsl:attribute-set name="header.content.properties"> - <xsl:attribute name="font-family"> - <xsl:value-of select="$body.font.family"/> - </xsl:attribute> - <xsl:attribute name="margin-left">-5em</xsl:attribute> - <xsl:attribute name="margin-right">-5em</xsl:attribute> - </xsl:attribute-set> - -<!--################################################### - Table of Contents - ################################################### --> - - <xsl:param name="generate.toc"> - book toc,title - </xsl:param> - -<!--################################################### - Custom Header - ################################################### --> - - <xsl:template name="header.content"> - <xsl:param name="pageclass" select="''"/> - <xsl:param name="sequence" select="''"/> - <xsl:param name="position" select="''"/> - <xsl:param name="gentext-key" select="''"/> - - <xsl:variable name="Version"> - <xsl:choose> - <xsl:when test="//productname"> - <xsl:value-of select="//productname"/><xsl:text> </xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:text>please define productname in your docbook file!</xsl:text> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:choose> - <xsl:when test="$sequence='blank'"> - <xsl:choose> - <xsl:when test="$position='center'"> - <xsl:value-of select="$Version"/> - </xsl:when> - - <xsl:otherwise> - <!-- nop --> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - - <xsl:when test="$pageclass='titlepage'"> - <!-- nop: other titlepage sequences have no header --> - </xsl:when> - - <xsl:when test="$position='center'"> - <xsl:value-of select="$Version"/> - </xsl:when> - - <xsl:otherwise> - <!-- nop --> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - -<!--################################################### - Custom Footer - ################################################### --> - - <xsl:template name="footer.content"> - <xsl:param name="pageclass" select="''"/> - <xsl:param name="sequence" select="''"/> - <xsl:param name="position" select="''"/> - <xsl:param name="gentext-key" select="''"/> - - <xsl:variable name="Version"> - <xsl:choose> - <xsl:when test="//releaseinfo"> - <xsl:value-of select="//releaseinfo"/> - </xsl:when> - <xsl:otherwise> - <!-- nop --> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="Title"> - <xsl:value-of select="//title"/> - </xsl:variable> - - <xsl:choose> - <xsl:when test="$sequence='blank'"> - <xsl:choose> - <xsl:when test="$double.sided != 0 and $position = 'left'"> - <xsl:value-of select="$Version"/> - </xsl:when> - - <xsl:when test="$double.sided = 0 and $position = 'center'"> - <!-- nop --> - </xsl:when> - - <xsl:otherwise> - <fo:page-number/> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - - <xsl:when test="$pageclass='titlepage'"> - <!-- nop: other titlepage sequences have no footer --> - </xsl:when> - - <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='left'"> - <fo:page-number/> - </xsl:when> - - <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='right'"> - <fo:page-number/> - </xsl:when> - - <xsl:when test="$double.sided = 0 and $position='right'"> - <fo:page-number/> - </xsl:when> - - <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='left'"> - <xsl:value-of select="$Version"/> - </xsl:when> - - <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='right'"> - <xsl:value-of select="$Version"/> - </xsl:when> - - <xsl:when test="$double.sided = 0 and $position='left'"> - <xsl:value-of select="$Version"/> - </xsl:when> - - <xsl:when test="$position='center'"> - <xsl:value-of select="$Title"/> - </xsl:when> - - <xsl:otherwise> - <!-- nop --> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <xsl:template match="processing-instruction('hard-pagebreak')"> - <fo:block break-before='page'/> - </xsl:template> - -<!--################################################### - Extensions - ################################################### --> - -<!-- These extensions are required for table printing and other stuff --> - <xsl:param name="use.extensions">1</xsl:param> - <xsl:param name="tablecolumns.extension">0</xsl:param> - <xsl:param name="callout.extensions">1</xsl:param> - <xsl:param name="fop.extensions">1</xsl:param> - -<!--################################################### - Paper & Page Size - ################################################### --> - -<!-- Paper type, no headers on blank pages, no double sided printing --> - <xsl:param name="double.sided">0</xsl:param> - <xsl:param name="headers.on.blank.pages">0</xsl:param> - <xsl:param name="footers.on.blank.pages">0</xsl:param> - -<!--################################################### - Fonts & Styles - ################################################### --> - - <xsl:param name="hyphenate">false</xsl:param> - -<!-- Default Font size --> - <xsl:param name="body.font.master">11</xsl:param> - <xsl:param name="body.font.small">8</xsl:param> - -<!-- Line height in body text --> - <xsl:param name="line-height">1.4</xsl:param> - -<!-- Chapter title size --> - <xsl:attribute-set name="chapter.titlepage.recto.style"> - <xsl:attribute name="text-align">left</xsl:attribute> - <xsl:attribute name="font-weight">bold</xsl:attribute> - <xsl:attribute name="font-size"> - <xsl:value-of select="$body.font.master * 1.8"/> - <xsl:text>pt</xsl:text> - </xsl:attribute> - </xsl:attribute-set> - -<!-- Why is the font-size for chapters hardcoded in the XSL FO templates? - Let's remove it, so this sucker can use our attribute-set only... --> - <xsl:template match="title" mode="chapter.titlepage.recto.auto.mode"> - <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" - xsl:use-attribute-sets="chapter.titlepage.recto.style"> - <xsl:call-template name="component.title"> - <xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/> - </xsl:call-template> - </fo:block> - </xsl:template> - -<!-- Sections 1, 2 and 3 titles have a small bump factor and padding --> - <xsl:attribute-set name="section.title.level1.properties"> - <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute> - <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute> - <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute> - <xsl:attribute name="font-size"> - <xsl:value-of select="$body.font.master * 1.5"/> - <xsl:text>pt</xsl:text> - </xsl:attribute> - <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> - </xsl:attribute-set> - <xsl:attribute-set name="section.title.level2.properties"> - <xsl:attribute name="space-before.optimum">0.6em</xsl:attribute> - <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute> - <xsl:attribute name="space-before.maximum">0.6em</xsl:attribute> - <xsl:attribute name="font-size"> - <xsl:value-of select="$body.font.master * 1.25"/> - <xsl:text>pt</xsl:text> - </xsl:attribute> - <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> - </xsl:attribute-set> - <xsl:attribute-set name="section.title.level3.properties"> - <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute> - <xsl:attribute name="space-before.minimum">0.4em</xsl:attribute> - <xsl:attribute name="space-before.maximum">0.4em</xsl:attribute> - <xsl:attribute name="font-size"> - <xsl:value-of select="$body.font.master * 1.0"/> - <xsl:text>pt</xsl:text> - </xsl:attribute> - <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> - </xsl:attribute-set> - <xsl:attribute-set name="section.title.level4.properties"> - <xsl:attribute name="space-before.optimum">0.3em</xsl:attribute> - <xsl:attribute name="space-before.minimum">0.3em</xsl:attribute> - <xsl:attribute name="space-before.maximum">0.3em</xsl:attribute> - <xsl:attribute name="font-size"> - <xsl:value-of select="$body.font.master * 0.9"/> - <xsl:text>pt</xsl:text> - </xsl:attribute> - <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> - </xsl:attribute-set> - -<!-- Use code syntax highlighting --> - <xsl:param name="highlight.source" select="1"/> - <xsl:param name="highlight.default.language" select="xml" /> - - <xsl:template match='xslthl:keyword'> - <fo:inline font-weight="bold" color="#7F0055"><xsl:apply-templates/></fo:inline> - </xsl:template> - - <xsl:template match='xslthl:comment'> - <fo:inline font-style="italic" color="#3F5F5F"><xsl:apply-templates/></fo:inline> - </xsl:template> - - <xsl:template match='xslthl:oneline-comment'> - <fo:inline font-style="italic" color="#3F5F5F"><xsl:apply-templates/></fo:inline> - </xsl:template> - - <xsl:template match='xslthl:multiline-comment'> - <fo:inline font-style="italic" color="#3F5FBF"><xsl:apply-templates/></fo:inline> - </xsl:template> - - <xsl:template match='xslthl:tag'> - <fo:inline color="#3F7F7F"><xsl:apply-templates/></fo:inline> - </xsl:template> - - <xsl:template match='xslthl:attribute'> - <fo:inline color="#7F007F"><xsl:apply-templates/></fo:inline> - </xsl:template> - - <xsl:template match='xslthl:value'> - <fo:inline color="#2A00FF"><xsl:apply-templates/></fo:inline> - </xsl:template> - - <xsl:template match='xslthl:string'> - <fo:inline color="#2A00FF"><xsl:apply-templates/></fo:inline> - </xsl:template> - -<!--################################################### - Tables - ################################################### --> - - <!-- Some padding inside tables --> - <xsl:attribute-set name="table.cell.padding"> - <xsl:attribute name="padding-left">4pt</xsl:attribute> - <xsl:attribute name="padding-right">4pt</xsl:attribute> - <xsl:attribute name="padding-top">4pt</xsl:attribute> - <xsl:attribute name="padding-bottom">4pt</xsl:attribute> - </xsl:attribute-set> - -<!-- Only hairlines as frame and cell borders in tables --> - <xsl:param name="table.frame.border.thickness">0.1pt</xsl:param> - <xsl:param name="table.cell.border.thickness">0.1pt</xsl:param> - -<!--################################################### - Labels - ################################################### --> - -<!-- Label Chapters and Sections (numbering) --> - <xsl:param name="chapter.autolabel" select="1"/> - <xsl:param name="section.autolabel" select="1"/> - <xsl:param name="section.autolabel.max.depth" select="1"/> - - <xsl:param name="section.label.includes.component.label" select="1"/> - <xsl:param name="table.footnote.number.format" select="'1'"/> - -<!--################################################### - Programlistings - ################################################### --> - -<!-- Verbatim text formatting (programlistings) --> - <xsl:attribute-set name="monospace.verbatim.properties"> - <xsl:attribute name="font-size"> - <xsl:value-of select="$body.font.small * 1.0"/> - <xsl:text>pt</xsl:text> - </xsl:attribute> - </xsl:attribute-set> - - <xsl:attribute-set name="verbatim.properties"> - <xsl:attribute name="space-before.minimum">1em</xsl:attribute> - <xsl:attribute name="space-before.optimum">1em</xsl:attribute> - <xsl:attribute name="space-before.maximum">1em</xsl:attribute> - <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> - - <xsl:attribute name="border-color">#444444</xsl:attribute> - <xsl:attribute name="border-style">solid</xsl:attribute> - <xsl:attribute name="border-width">0.1pt</xsl:attribute> - <xsl:attribute name="padding-top">0.5em</xsl:attribute> - <xsl:attribute name="padding-left">0.5em</xsl:attribute> - <xsl:attribute name="padding-right">0.5em</xsl:attribute> - <xsl:attribute name="padding-bottom">0.5em</xsl:attribute> - <xsl:attribute name="margin-left">0.5em</xsl:attribute> - <xsl:attribute name="margin-right">0.5em</xsl:attribute> - </xsl:attribute-set> - - <!-- Shade (background) programlistings --> - <xsl:param name="shade.verbatim">1</xsl:param> - <xsl:attribute-set name="shade.verbatim.style"> - <xsl:attribute name="background-color">#F0F0F0</xsl:attribute> - </xsl:attribute-set> - - <xsl:attribute-set name="list.block.spacing"> - <xsl:attribute name="space-before.optimum">0.1em</xsl:attribute> - <xsl:attribute name="space-before.minimum">0.1em</xsl:attribute> - <xsl:attribute name="space-before.maximum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> - </xsl:attribute-set> - - <xsl:attribute-set name="example.properties"> - <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute> - <xsl:attribute name="space-before.optimum">0.5em</xsl:attribute> - <xsl:attribute name="space-before.maximum">0.5em</xsl:attribute> - <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> - <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> - <xsl:attribute name="keep-together.within-column">always</xsl:attribute> - </xsl:attribute-set> - -<!--################################################### - Title information for Figures, Examples etc. - ################################################### --> - - <xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing"> - <xsl:attribute name="font-weight">normal</xsl:attribute> - <xsl:attribute name="font-style">italic</xsl:attribute> - <xsl:attribute name="font-size"> - <xsl:value-of select="$body.font.master"/> - <xsl:text>pt</xsl:text> - </xsl:attribute> - <xsl:attribute name="hyphenate">false</xsl:attribute> - <xsl:attribute name="space-before.minimum">0.1em</xsl:attribute> - <xsl:attribute name="space-before.optimum">0.1em</xsl:attribute> - <xsl:attribute name="space-before.maximum">0.1em</xsl:attribute> - </xsl:attribute-set> - -<!--################################################### - Callouts - ################################################### --> - -<!-- don't use images for callouts --> - <xsl:param name="callout.graphics">0</xsl:param> - <xsl:param name="callout.unicode">1</xsl:param> - -<!-- Place callout marks at this column in annotated areas --> - <xsl:param name="callout.defaultcolumn">90</xsl:param> - -<!--################################################### - Misc - ################################################### --> - -<!-- Placement of titles --> - <xsl:param name="formal.title.placement"> - figure after - example after - equation before - table before - procedure before - </xsl:param> - -<!-- Format Variable Lists as Blocks (prevents horizontal overflow) --> - <xsl:param name="variablelist.as.blocks">1</xsl:param> - - <xsl:param name="body.start.indent">0pt</xsl:param> - -<!-- Show only Sections up to level 3 in the TOCs --> - <xsl:param name="toc.section.depth">3</xsl:param> - -<!-- Remove "Chapter" from the Chapter titles... --> - <xsl:param name="local.l10n.xml" select="document('')"/> - <l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"> - <l:l10n language="en"> - <l:context name="title-numbered"> - <l:template name="chapter" text="%n. %t"/> - <l:template name="section" text="%n %t"/> - </l:context> - <l:context name="title"> - <l:template name="example" text="Example %n %t"/> - </l:context> - </l:l10n> - </l:i18n> - -<!--################################################### - colored and hyphenated links - ################################################### --> - - <xsl:template match="ulink"> - <fo:basic-link external-destination="{@url}" - xsl:use-attribute-sets="xref.properties" - text-decoration="underline" - color="blue"> - <xsl:choose> - <xsl:when test="count(child::node())=0"> - <xsl:value-of select="@url"/> - </xsl:when> - <xsl:otherwise> - <xsl:apply-templates/> - </xsl:otherwise> - </xsl:choose> - </fo:basic-link> - </xsl:template> - - <xsl:template match="link"> - <fo:basic-link internal-destination="{@linkend}" - xsl:use-attribute-sets="xref.properties" - text-decoration="underline" - color="blue"> - <xsl:choose> - <xsl:when test="count(child::node())=0"> - <xsl:value-of select="@linkend"/> - </xsl:when> - <xsl:otherwise> - <xsl:apply-templates/> - </xsl:otherwise> - </xsl:choose> - </fo:basic-link> - </xsl:template> - -</xsl:stylesheet> \ No newline at end of file diff --git a/src/docbkx/resources/xsl/pdf/titlepage.xml b/src/docbkx/resources/xsl/pdf/titlepage.xml deleted file mode 100644 index dc18e1e0..00000000 --- a/src/docbkx/resources/xsl/pdf/titlepage.xml +++ /dev/null @@ -1,101 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - 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. ---> - -<!DOCTYPE t:templates [ -<!ENTITY hsize0 "10pt"> -<!ENTITY hsize1 "12pt"> -<!ENTITY hsize2 "14.4pt"> -<!ENTITY hsize3 "17.28pt"> -<!ENTITY hsize4 "20.736pt"> -<!ENTITY hsize5 "24.8832pt"> -<!ENTITY hsize0space "7.5pt"> <!-- 0.75 * hsize0 --> -<!ENTITY hsize1space "9pt"> <!-- 0.75 * hsize1 --> -<!ENTITY hsize2space "10.8pt"> <!-- 0.75 * hsize2 --> -<!ENTITY hsize3space "12.96pt"> <!-- 0.75 * hsize3 --> -<!ENTITY hsize4space "15.552pt"> <!-- 0.75 * hsize4 --> -<!ENTITY hsize5space "18.6624pt"> <!-- 0.75 * hsize5 --> -]> -<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0" - xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param" - xmlns:fo="http://www.w3.org/1999/XSL/Format" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - - <t:titlepage t:element="book" t:wrapper="fo:block"> - <t:titlepage-content t:side="recto"> - <title - t:named-template="division.title" - param:node="ancestor-or-self::book[1]" - text-align="center" - font-size="&hsize5;" - space-before="&hsize5space;" - font-weight="bold" - font-family="{$title.fontset}"/> - <subtitle - text-align="center" - font-size="&hsize4;" - space-before="&hsize4space;" - font-family="{$title.fontset}"/> - - <!-- <corpauthor space-before="0.5em" - font-size="&hsize2;"/> - <authorgroup space-before="0.5em" - font-size="&hsize2;"/> - <author space-before="0.5em" - font-size="&hsize2;"/> --> - - <mediaobject space-before="2em" space-after="2em"/> - <releaseinfo space-before="5em" font-size="&hsize2;"/> - <copyright space-before="1.5em" - font-weight="normal" - font-size="8"/> - <legalnotice space-before="5em" - font-weight="normal" - font-style="italic" - font-size="8"/> - <othercredit space-before="2em" - font-weight="normal" - font-size="8"/> - <pubdate space-before="0.5em"/> - <revision space-before="0.5em"/> - <revhistory space-before="0.5em"/> - <abstract space-before="0.5em" - text-align="start" - margin-left="0.5in" - margin-right="0.5in" - font-family="{$body.fontset}"/> - </t:titlepage-content> - - <t:titlepage-content t:side="verso"> - </t:titlepage-content> - - <t:titlepage-separator> - </t:titlepage-separator> - - <t:titlepage-before t:side="recto"> - </t:titlepage-before> - - <t:titlepage-before t:side="verso"> - </t:titlepage-before> -</t:titlepage> - -<!-- ==================================================================== --> - -</t:templates> diff --git a/src/docbkx/amqp.xml b/src/reference/docbook/amqp.xml similarity index 99% rename from src/docbkx/amqp.xml rename to src/reference/docbook/amqp.xml index 1c893a45..8817fcaf 100644 --- a/src/docbkx/amqp.xml +++ b/src/reference/docbook/amqp.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" -"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> -<chapter id="amqp"> +<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="amqp" + xmlns:xlink="http://www.w3.org/1999/xlink"> <title>Using Spring AMQP In this chapter, we will explore the interfaces and classes that are the diff --git a/src/docbkx/bibliography.xml b/src/reference/docbook/bibliography.xml similarity index 77% rename from src/docbkx/bibliography.xml rename to src/reference/docbook/bibliography.xml index c8baa1fd..dbad6dc7 100644 --- a/src/docbkx/bibliography.xml +++ b/src/reference/docbook/bibliography.xml @@ -1,7 +1,6 @@ - - + Bibliography diff --git a/src/docbkx/erlang.xml b/src/reference/docbook/erlang.xml similarity index 96% rename from src/docbkx/erlang.xml rename to src/reference/docbook/erlang.xml index 82979fa2..d7c97e18 100644 --- a/src/docbkx/erlang.xml +++ b/src/reference/docbook/erlang.xml @@ -1,7 +1,6 @@ - - + Erlang integration
diff --git a/src/docbkx/further-reading.xml b/src/reference/docbook/further-reading.xml similarity index 89% rename from src/docbkx/further-reading.xml rename to src/reference/docbook/further-reading.xml index f5dfba97..2415bdfd 100644 --- a/src/docbkx/further-reading.xml +++ b/src/reference/docbook/further-reading.xml @@ -1,7 +1,6 @@ - - + Further Reading diff --git a/src/docbkx/resources/images/logo.png b/src/reference/docbook/images/logo.png similarity index 100% rename from src/docbkx/resources/images/logo.png rename to src/reference/docbook/images/logo.png diff --git a/src/docbkx/index.xml b/src/reference/docbook/index.xml similarity index 74% rename from src/docbkx/index.xml rename to src/reference/docbook/index.xml index aeed365e..253c8f16 100644 --- a/src/docbkx/index.xml +++ b/src/reference/docbook/index.xml @@ -1,10 +1,24 @@ - - - + + Spring AMQP - Reference Documentation - &version; + Spring AMQP ${version} + Spring AMQP + ${version} + + + + + + + + + + + @@ -27,11 +41,15 @@ Gary Russell + + Gunnar + Hillert + - Copyright © 2010-2012 - + © SpringSource Inc., 2012 + Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether @@ -64,7 +82,7 @@ This part of the reference documentation details the various components that comprise Spring AMQP. The main chapter covers the core classes to develop an AMQP application. This part also - includes a chapter on integration with + includes a chapter on integration with Erlang and a chapter about the sample applications. diff --git a/src/reference/docbook/preface.xml b/src/reference/docbook/preface.xml new file mode 100644 index 00000000..9d47471b --- /dev/null +++ b/src/reference/docbook/preface.xml @@ -0,0 +1,18 @@ + + + Preface + + The Spring AMQP project applies core Spring concepts to the development + of AMQP-based messaging solutions. We provide a "template" as a high-level + abstraction for sending and receiving messages. We also provide support + for Message-driven POJOs. These libraries facilitate management of AMQP + resources while promoting the use of dependency injection and declarative + configuration. In all of these cases, you will see similarities to the + JMS support in the Spring Framework. The project consists of both Java + and .NET versions. This manual is dedicated to the Java version. For + links to the .NET version's manual or any other project-related + information visit the Spring AMQP project + homepage. + + diff --git a/src/docbkx/quick-tour.xml b/src/reference/docbook/quick-tour.xml similarity index 97% rename from src/docbkx/quick-tour.xml rename to src/reference/docbook/quick-tour.xml index fd4593b5..eb018e29 100644 --- a/src/docbkx/quick-tour.xml +++ b/src/reference/docbook/quick-tour.xml @@ -1,7 +1,6 @@ - - + Quick Tour for the impatient
diff --git a/src/docbkx/sample-apps.xml b/src/reference/docbook/sample-apps.xml similarity index 99% rename from src/docbkx/sample-apps.xml rename to src/reference/docbook/sample-apps.xml index 3d12790a..96c23898 100644 --- a/src/docbkx/sample-apps.xml +++ b/src/reference/docbook/sample-apps.xml @@ -1,7 +1,6 @@ - - + Sample Applications
diff --git a/src/docbkx/si-amqp.xml b/src/reference/docbook/si-amqp.xml similarity index 95% rename from src/docbkx/si-amqp.xml rename to src/reference/docbook/si-amqp.xml index beb9c04a..b715d58e 100644 --- a/src/docbkx/si-amqp.xml +++ b/src/reference/docbook/si-amqp.xml @@ -1,7 +1,6 @@ - - + Spring Integration AMQP Support