From c981b6a5e2b18a90170739300681ee950f8de443 Mon Sep 17 00:00:00 2001 From: Thomas Risberg Date: Wed, 6 Oct 2010 15:02:01 -0400 Subject: [PATCH] Switched to use new project layout; updated build; moved things around --- .gitignore | 5 +- .project | 8 +- .settings/org.maven.ide.eclipse.prefs | 2 +- pom.xml | 323 ++++++++--- .../.classpath | 3 + spring-datastore-couchdb/.project | 23 + .../.settings}/org.eclipse.jdt.core.prefs | 2 +- .../.settings/org.maven.ide.eclipse.prefs | 9 + spring-datastore-couchdb/pom.xml | 103 ++++ .../CannotGetCouchDbConnectionException.java | 0 .../document/couchdb/CouchDbFactoryBean.java | 0 .../document/couchdb/CouchDbUtils.java | 0 .../document/couchdb/CouchDocumentSource.java | 0 .../document/couchdb/CouchTemplate.java | 0 spring-datastore-couchdb/template.mf | 21 + spring-datastore-document-core/.classpath | 10 + spring-datastore-document-core/.project | 23 + .../.settings/org.eclipse.jdt.core.prefs | 6 + .../.settings/org.maven.ide.eclipse.prefs | 9 + spring-datastore-document-core/pom.xml | 90 +++ .../AbstractDocumentStoreTemplate.java | 0 .../datastore/document/DocumentMapper.java | 0 .../datastore/document/DocumentSource.java | 0 .../DocumentStoreConnectionCallback.java | 0 .../InvalidDocumentStoreApiUageException.java | 0 .../UncategorizedDocumentStoreException.java | 0 spring-datastore-document-core/template.mf | 19 + spring-datastore-document-parent/.project | 17 + .../.settings/org.maven.ide.eclipse.prefs | 9 + spring-datastore-document-parent/pom.xml | 384 +++++++++++++ spring-datastore-mongodb/.classpath | 10 + spring-datastore-mongodb/.project | 23 + .../.settings/org.eclipse.jdt.core.prefs | 6 + .../.settings/org.maven.ide.eclipse.prefs | 9 + spring-datastore-mongodb/pom.xml | 103 ++++ .../CannotGetMongoDbConnectionException.java | 0 .../MongoBeanPropertyDocumentMapper.java | 0 .../MongoBeanPropertyDocumentSource.java | 0 .../document/mongodb/MongoDbFactoryBean.java | 0 .../document/mongodb/MongoDbUtils.java | 0 .../document/mongodb/MongoDocumentSource.java | 0 .../document/mongodb/MongoTemplate.java | 0 .../document/mongodb/query/BasicQuery.java | 0 .../document/mongodb/query/Criteria.java | 0 .../document/mongodb/query/CriteriaSpec.java | 0 .../mongodb/query/FieldSpecification.java | 0 .../document/mongodb/query/OrCriteria.java | 0 .../document/mongodb/query/Query.java | 0 .../document/mongodb/query/QueryBuilder.java | 0 .../mongodb/query/SliceSpecification.java | 0 .../mongodb/query/SortSpecification.java | 0 .../template.mf | 2 +- src/ant/upload-dist.xml | 48 ++ src/assembly/distribution.xml | 72 +++ src/docbkx/index.xml | 43 ++ src/docbkx/preface.xml | 11 + src/docbkx/resources/css/highlight.css | 35 ++ src/docbkx/resources/css/html.css | 421 ++++++++++++++ src/docbkx/resources/css/stylesheet.css | 99 ++++ src/docbkx/resources/images/callouts/1.png | Bin 0 -> 329 bytes src/docbkx/resources/images/callouts/10.png | Bin 0 -> 361 bytes src/docbkx/resources/images/callouts/11.png | Bin 0 -> 565 bytes src/docbkx/resources/images/callouts/12.png | Bin 0 -> 617 bytes src/docbkx/resources/images/callouts/13.png | Bin 0 -> 623 bytes src/docbkx/resources/images/callouts/14.png | Bin 0 -> 411 bytes src/docbkx/resources/images/callouts/15.png | Bin 0 -> 640 bytes src/docbkx/resources/images/callouts/2.png | Bin 0 -> 353 bytes src/docbkx/resources/images/callouts/3.png | Bin 0 -> 350 bytes src/docbkx/resources/images/callouts/4.png | Bin 0 -> 345 bytes src/docbkx/resources/images/callouts/5.png | Bin 0 -> 348 bytes src/docbkx/resources/images/callouts/6.png | Bin 0 -> 355 bytes src/docbkx/resources/images/callouts/7.png | Bin 0 -> 344 bytes src/docbkx/resources/images/callouts/8.png | Bin 0 -> 357 bytes src/docbkx/resources/images/callouts/9.png | Bin 0 -> 357 bytes src/docbkx/resources/images/logo.png | Bin 0 -> 9627 bytes .../resources/images/xdev-spring_logo.jpg | Bin 0 -> 37376 bytes src/docbkx/resources/xsl/fopdf.xsl | 418 ++++++++++++++ src/docbkx/resources/xsl/html.xsl | 91 +++ src/docbkx/resources/xsl/html/html_chunk.xsl | 136 +++++ src/docbkx/resources/xsl/html/titlepage.xml | 61 +++ src/docbkx/resources/xsl/html_chunk.xsl | 208 +++++++ src/docbkx/resources/xsl/pdf/fopdf.xsl | 518 ++++++++++++++++++ src/docbkx/resources/xsl/pdf/titlepage.xml | 101 ++++ src/main/javadoc/doc-files/th-background.png | Bin 0 -> 2841 bytes src/main/javadoc/spring-javadoc.css | 178 ++++++ src/main/resources/apache-license.txt | 201 +++++++ src/main/resources/changelog.txt | 5 + src/main/resources/notice.txt | 21 + src/main/resources/readme.txt | 17 + 89 files changed, 3810 insertions(+), 93 deletions(-) rename .classpath => spring-datastore-couchdb/.classpath (60%) create mode 100644 spring-datastore-couchdb/.project rename {.settings => spring-datastore-couchdb/.settings}/org.eclipse.jdt.core.prefs (88%) create mode 100644 spring-datastore-couchdb/.settings/org.maven.ide.eclipse.prefs create mode 100644 spring-datastore-couchdb/pom.xml rename {src => spring-datastore-couchdb/src}/main/java/org/springframework/datastore/document/couchdb/CannotGetCouchDbConnectionException.java (100%) rename {src => spring-datastore-couchdb/src}/main/java/org/springframework/datastore/document/couchdb/CouchDbFactoryBean.java (100%) rename {src => spring-datastore-couchdb/src}/main/java/org/springframework/datastore/document/couchdb/CouchDbUtils.java (100%) rename {src => spring-datastore-couchdb/src}/main/java/org/springframework/datastore/document/couchdb/CouchDocumentSource.java (100%) rename {src => spring-datastore-couchdb/src}/main/java/org/springframework/datastore/document/couchdb/CouchTemplate.java (100%) create mode 100644 spring-datastore-couchdb/template.mf create mode 100644 spring-datastore-document-core/.classpath create mode 100644 spring-datastore-document-core/.project create mode 100644 spring-datastore-document-core/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-datastore-document-core/.settings/org.maven.ide.eclipse.prefs create mode 100644 spring-datastore-document-core/pom.xml rename {src => spring-datastore-document-core/src}/main/java/org/springframework/datastore/document/AbstractDocumentStoreTemplate.java (100%) rename {src => spring-datastore-document-core/src}/main/java/org/springframework/datastore/document/DocumentMapper.java (100%) rename {src => spring-datastore-document-core/src}/main/java/org/springframework/datastore/document/DocumentSource.java (100%) rename {src => spring-datastore-document-core/src}/main/java/org/springframework/datastore/document/DocumentStoreConnectionCallback.java (100%) rename {src => spring-datastore-document-core/src}/main/java/org/springframework/datastore/document/InvalidDocumentStoreApiUageException.java (100%) rename {src => spring-datastore-document-core/src}/main/java/org/springframework/datastore/document/UncategorizedDocumentStoreException.java (100%) create mode 100644 spring-datastore-document-core/template.mf create mode 100644 spring-datastore-document-parent/.project create mode 100644 spring-datastore-document-parent/.settings/org.maven.ide.eclipse.prefs create mode 100644 spring-datastore-document-parent/pom.xml create mode 100644 spring-datastore-mongodb/.classpath create mode 100644 spring-datastore-mongodb/.project create mode 100644 spring-datastore-mongodb/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-datastore-mongodb/.settings/org.maven.ide.eclipse.prefs create mode 100644 spring-datastore-mongodb/pom.xml rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/CannotGetMongoDbConnectionException.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentMapper.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentSource.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/MongoDbFactoryBean.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/MongoDbUtils.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/MongoDocumentSource.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/MongoTemplate.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/query/BasicQuery.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/query/Criteria.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/query/CriteriaSpec.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/query/FieldSpecification.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/query/OrCriteria.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/query/Query.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/query/QueryBuilder.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/query/SliceSpecification.java (100%) rename {src => spring-datastore-mongodb/src}/main/java/org/springframework/datastore/document/mongodb/query/SortSpecification.java (100%) rename template.mf => spring-datastore-mongodb/template.mf (92%) create mode 100644 src/ant/upload-dist.xml create mode 100644 src/assembly/distribution.xml create mode 100644 src/docbkx/index.xml create mode 100644 src/docbkx/preface.xml create mode 100644 src/docbkx/resources/css/highlight.css create mode 100644 src/docbkx/resources/css/html.css create mode 100644 src/docbkx/resources/css/stylesheet.css create mode 100644 src/docbkx/resources/images/callouts/1.png create mode 100644 src/docbkx/resources/images/callouts/10.png create mode 100644 src/docbkx/resources/images/callouts/11.png create mode 100644 src/docbkx/resources/images/callouts/12.png create mode 100644 src/docbkx/resources/images/callouts/13.png create mode 100644 src/docbkx/resources/images/callouts/14.png create mode 100644 src/docbkx/resources/images/callouts/15.png create mode 100644 src/docbkx/resources/images/callouts/2.png create mode 100644 src/docbkx/resources/images/callouts/3.png create mode 100644 src/docbkx/resources/images/callouts/4.png create mode 100644 src/docbkx/resources/images/callouts/5.png create mode 100644 src/docbkx/resources/images/callouts/6.png create mode 100644 src/docbkx/resources/images/callouts/7.png create mode 100644 src/docbkx/resources/images/callouts/8.png create mode 100644 src/docbkx/resources/images/callouts/9.png create mode 100644 src/docbkx/resources/images/logo.png create mode 100644 src/docbkx/resources/images/xdev-spring_logo.jpg create mode 100644 src/docbkx/resources/xsl/fopdf.xsl create mode 100644 src/docbkx/resources/xsl/html.xsl create mode 100644 src/docbkx/resources/xsl/html/html_chunk.xsl create mode 100644 src/docbkx/resources/xsl/html/titlepage.xml create mode 100644 src/docbkx/resources/xsl/html_chunk.xsl create mode 100644 src/docbkx/resources/xsl/pdf/fopdf.xsl create mode 100644 src/docbkx/resources/xsl/pdf/titlepage.xml create mode 100644 src/main/javadoc/doc-files/th-background.png create mode 100644 src/main/javadoc/spring-javadoc.css create mode 100644 src/main/resources/apache-license.txt create mode 100644 src/main/resources/changelog.txt create mode 100644 src/main/resources/notice.txt create mode 100644 src/main/resources/readme.txt diff --git a/.gitignore b/.gitignore index b83d22266..aee5425d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -/target/ +target +.springBeans +.ant-targets-build.xml +src/ant/.ant-targets-upload-dist.xml diff --git a/.project b/.project index a8d7bc1ca..9e61f2e22 100644 --- a/.project +++ b/.project @@ -1,15 +1,10 @@ - spring-datastore-document + spring-datastore-document-dist - - org.eclipse.jdt.core.javabuilder - - - org.maven.ide.eclipse.maven2Builder @@ -18,6 +13,5 @@ org.maven.ide.eclipse.maven2Nature - org.eclipse.jdt.core.javanature diff --git a/.settings/org.maven.ide.eclipse.prefs b/.settings/org.maven.ide.eclipse.prefs index 6bb697c7a..8504bcf22 100644 --- a/.settings/org.maven.ide.eclipse.prefs +++ b/.settings/org.maven.ide.eclipse.prefs @@ -1,4 +1,4 @@ -#Wed Aug 25 00:54:36 EDT 2010 +#Wed Oct 06 14:49:45 EDT 2010 activeProfiles= eclipse.preferences.version=1 fullBuildGoals=process-test-resources diff --git a/pom.xml b/pom.xml index 84ad02131..02ee06786 100644 --- a/pom.xml +++ b/pom.xml @@ -1,33 +1,18 @@ - + 4.0.0 org.springframework.data - spring-datastore-document - Spring Datastore Document - Spring Support for Document Datastores - http://www.springsource.org - jar - 1.0.0.M1-SNAPSHOT - - - org.springframework.data - spring-data-parent - 1.0.0.M1-SNAPSHOT - - - - Issue Tracker - http://jira.springframework.org/browse/DATASQL - - - http://git.springsource.org/spring-data/datastore-sql - - - SpringSource, a division of VMware - http://www.SpringSource.org - - 2010 + spring-datastore-document-dist + Spring Datastore Document Distribution + 1.0.0.BUILD-SNAPSHOT + pom + + spring-datastore-document-parent + spring-datastore-document-core + spring-datastore-mongodb + spring-datastore-couchdb + @@ -69,60 +54,234 @@ UTF-8 - 3.0.4.RELEASE - - - - - junit - junit - 4.8.1 - test - - - - junit - junit - test - - - log4j - log4j - - - commons-logging - commons-logging - 1.1.1 - provided - - - - org.springframework - spring-test - test - - - org.springframework - spring-context - - - org.springframework - spring-tx - ${spring.version} - - - - - org.mongodb - mongo-java-driver - 2.1 - - - com.google.code.jcouchdb - jcouchdb - 0.11.0-1 - - - - + + spring-datastore-document + Spring Datastore Document + DATADOC + ${project.version} + snapshot + ${dist.id}-${dist.version} + ${dist.finalName}.zip + target/${dist.fileName} + dist.springframework.org + + + + + staging + + + spring-site-staging + file:///${java.io.tmpdir}/spring-data/datastore-document/docs/${project.version} + + + spring-milestone-staging + file:///${java.io.tmpdir}/spring-data/datastore-document/milestone + + + spring-snapshot-staging + file:///${java.io.tmpdir}/spring-data/datastore-document/snapshot + + + + + + + http://www.springsource.com/download/community + + spring-site + scp://static.springframework.org/var/www/domains/springframework.org/static/htdocs/spring-data/datastore-document/docs/${project.version} + + + spring-milestone + Spring Milestone Repository + s3://maven.springframework.org/milestone + + + spring-snapshot + Spring Snapshot Repository + s3://maven.springframework.org/snapshot + + + + + + + org.springframework.build.aws + org.springframework.build.aws.maven + 3.0.0.RELEASE + + + + + com.agilejava.docbkx + docbkx-maven-plugin + 2.0.6 + + + + generate-html + generate-pdf + + package + + + + + 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 + + + aggregate + + aggregate + + package + + 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 + + http://static.springframework.org/spring/docs/3.0.x/javadoc-api + http://java.sun.com/javase/6/docs/api + +
+
+
+
+ + 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 + + + +
+ + ${dist.finalName} +
+ + + 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.source.maven.release + SpringSource Maven Release Repository + http://repository.springsource.com/maven/bundles/release + +
\ No newline at end of file diff --git a/.classpath b/spring-datastore-couchdb/.classpath similarity index 60% rename from .classpath rename to spring-datastore-couchdb/.classpath index 16f01e2ee..f42fb64cf 100644 --- a/.classpath +++ b/spring-datastore-couchdb/.classpath @@ -1,6 +1,9 @@ + + + diff --git a/spring-datastore-couchdb/.project b/spring-datastore-couchdb/.project new file mode 100644 index 000000000..705d28a4c --- /dev/null +++ b/spring-datastore-couchdb/.project @@ -0,0 +1,23 @@ + + + spring-datastore-couchdb + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.maven.ide.eclipse.maven2Nature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/spring-datastore-couchdb/.settings/org.eclipse.jdt.core.prefs similarity index 88% rename from .settings/org.eclipse.jdt.core.prefs rename to spring-datastore-couchdb/.settings/org.eclipse.jdt.core.prefs index 89e4fdb41..449698a94 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/spring-datastore-couchdb/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,4 @@ -#Wed Aug 25 00:54:37 EDT 2010 +#Wed Oct 06 14:49:48 EDT 2010 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.compliance=1.5 diff --git a/spring-datastore-couchdb/.settings/org.maven.ide.eclipse.prefs b/spring-datastore-couchdb/.settings/org.maven.ide.eclipse.prefs new file mode 100644 index 000000000..5545b44b1 --- /dev/null +++ b/spring-datastore-couchdb/.settings/org.maven.ide.eclipse.prefs @@ -0,0 +1,9 @@ +#Wed Oct 06 14:49:46 EDT 2010 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +skipCompilerPlugin=true +version=1 diff --git a/spring-datastore-couchdb/pom.xml b/spring-datastore-couchdb/pom.xml new file mode 100644 index 000000000..1247524f8 --- /dev/null +++ b/spring-datastore-couchdb/pom.xml @@ -0,0 +1,103 @@ + + 4.0.0 + + org.springframework.data + spring-datastore-document-parent + 1.0.0.BUILD-SNAPSHOT + ../spring-datastore-document-parent/pom.xml + + spring-datastore-couchdb + jar + Spring Datastore CouchDB Support + + + + + org.springframework + spring-beans + + + org.springframework + spring-tx + + + + + org.springframework.data + spring-datastore-document-core + + + + + org.slf4j + slf4j-api + + + org.slf4j + jcl-over-slf4j + compile + + + org.slf4j + slf4j-log4j12 + runtime + + + log4j + log4j + + + javax.mail + mail + + + javax.jms + jms + + + com.sun.jdmk + jmxtools + + + com.sun.jmx + jmxri + + + runtime + + + + javax.annotation + jsr250-api + true + + + + org.mockito + mockito-all + test + + + + junit + junit + + + + + com.google.code.jcouchdb + jcouchdb + 0.11.0-1 + + + + + + + com.springsource.bundlor + com.springsource.bundlor.maven + + + + diff --git a/src/main/java/org/springframework/datastore/document/couchdb/CannotGetCouchDbConnectionException.java b/spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CannotGetCouchDbConnectionException.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/couchdb/CannotGetCouchDbConnectionException.java rename to spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CannotGetCouchDbConnectionException.java diff --git a/src/main/java/org/springframework/datastore/document/couchdb/CouchDbFactoryBean.java b/spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CouchDbFactoryBean.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/couchdb/CouchDbFactoryBean.java rename to spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CouchDbFactoryBean.java diff --git a/src/main/java/org/springframework/datastore/document/couchdb/CouchDbUtils.java b/spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CouchDbUtils.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/couchdb/CouchDbUtils.java rename to spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CouchDbUtils.java diff --git a/src/main/java/org/springframework/datastore/document/couchdb/CouchDocumentSource.java b/spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CouchDocumentSource.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/couchdb/CouchDocumentSource.java rename to spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CouchDocumentSource.java diff --git a/src/main/java/org/springframework/datastore/document/couchdb/CouchTemplate.java b/spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CouchTemplate.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/couchdb/CouchTemplate.java rename to spring-datastore-couchdb/src/main/java/org/springframework/datastore/document/couchdb/CouchTemplate.java diff --git a/spring-datastore-couchdb/template.mf b/spring-datastore-couchdb/template.mf new file mode 100644 index 000000000..df1b6a1c8 --- /dev/null +++ b/spring-datastore-couchdb/template.mf @@ -0,0 +1,21 @@ +Bundle-SymbolicName: org.springframework.datastore.document +Bundle-Name: Spring Datastore Document +Bundle-Vendor: SpringSource +Bundle-ManifestVersion: 2 +Import-Package: + sun.reflect;version="0";resolution:=optional +Import-Template: + org.springframework.beans.*;version="[3.0.0, 4.0.0)", + org.springframework.core.*;version="[3.0.0, 4.0.0)", + org.springframework.dao.*;version="[3.0.0, 4.0.0)", + org.springframework.util.*;version="[3.0.0, 4.0.0)", + org.springframework.data.core.*;version="[1.0.0, 2.0.0)", + org.springframework.datastore.core.*;version="[1.0.0, 2.0.0)", + org.springframework.datastore.persistence.*;version="[1.0.0, 2.0.0)", + org.springframework.datastore.document.*;version="[1.0.0, 2.0.0)", + org.jcouchdb.*;version="0", + org.aopalliance.*;version="[1.0.0, 2.0.0)";resolution:=optional, + org.apache.commons.logging.*;version="[1.1.1, 2.0.0)", + org.w3c.dom.*;version="0" + + diff --git a/spring-datastore-document-core/.classpath b/spring-datastore-document-core/.classpath new file mode 100644 index 000000000..f42fb64cf --- /dev/null +++ b/spring-datastore-document-core/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-datastore-document-core/.project b/spring-datastore-document-core/.project new file mode 100644 index 000000000..779e03217 --- /dev/null +++ b/spring-datastore-document-core/.project @@ -0,0 +1,23 @@ + + + spring-datastore-document-core + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.maven.ide.eclipse.maven2Nature + + diff --git a/spring-datastore-document-core/.settings/org.eclipse.jdt.core.prefs b/spring-datastore-document-core/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..449698a94 --- /dev/null +++ b/spring-datastore-document-core/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,6 @@ +#Wed Oct 06 14:49:48 EDT 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/spring-datastore-document-core/.settings/org.maven.ide.eclipse.prefs b/spring-datastore-document-core/.settings/org.maven.ide.eclipse.prefs new file mode 100644 index 000000000..5545b44b1 --- /dev/null +++ b/spring-datastore-document-core/.settings/org.maven.ide.eclipse.prefs @@ -0,0 +1,9 @@ +#Wed Oct 06 14:49:46 EDT 2010 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +skipCompilerPlugin=true +version=1 diff --git a/spring-datastore-document-core/pom.xml b/spring-datastore-document-core/pom.xml new file mode 100644 index 000000000..4d2d7ebda --- /dev/null +++ b/spring-datastore-document-core/pom.xml @@ -0,0 +1,90 @@ + + 4.0.0 + + org.springframework.data + spring-datastore-document-parent + 1.0.0.BUILD-SNAPSHOT + ../spring-datastore-document-parent/pom.xml + + spring-datastore-document-core + jar + Spring Datastore Document Database Support + + + + + org.springframework + spring-beans + + + org.springframework + spring-tx + + + + + org.slf4j + slf4j-api + + + org.slf4j + jcl-over-slf4j + compile + + + org.slf4j + slf4j-log4j12 + runtime + + + log4j + log4j + + + javax.mail + mail + + + javax.jms + jms + + + com.sun.jdmk + jmxtools + + + com.sun.jmx + jmxri + + + runtime + + + + javax.annotation + jsr250-api + true + + + + org.mockito + mockito-all + test + + + + junit + junit + + + + + + + com.springsource.bundlor + com.springsource.bundlor.maven + + + + diff --git a/src/main/java/org/springframework/datastore/document/AbstractDocumentStoreTemplate.java b/spring-datastore-document-core/src/main/java/org/springframework/datastore/document/AbstractDocumentStoreTemplate.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/AbstractDocumentStoreTemplate.java rename to spring-datastore-document-core/src/main/java/org/springframework/datastore/document/AbstractDocumentStoreTemplate.java diff --git a/src/main/java/org/springframework/datastore/document/DocumentMapper.java b/spring-datastore-document-core/src/main/java/org/springframework/datastore/document/DocumentMapper.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/DocumentMapper.java rename to spring-datastore-document-core/src/main/java/org/springframework/datastore/document/DocumentMapper.java diff --git a/src/main/java/org/springframework/datastore/document/DocumentSource.java b/spring-datastore-document-core/src/main/java/org/springframework/datastore/document/DocumentSource.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/DocumentSource.java rename to spring-datastore-document-core/src/main/java/org/springframework/datastore/document/DocumentSource.java diff --git a/src/main/java/org/springframework/datastore/document/DocumentStoreConnectionCallback.java b/spring-datastore-document-core/src/main/java/org/springframework/datastore/document/DocumentStoreConnectionCallback.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/DocumentStoreConnectionCallback.java rename to spring-datastore-document-core/src/main/java/org/springframework/datastore/document/DocumentStoreConnectionCallback.java diff --git a/src/main/java/org/springframework/datastore/document/InvalidDocumentStoreApiUageException.java b/spring-datastore-document-core/src/main/java/org/springframework/datastore/document/InvalidDocumentStoreApiUageException.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/InvalidDocumentStoreApiUageException.java rename to spring-datastore-document-core/src/main/java/org/springframework/datastore/document/InvalidDocumentStoreApiUageException.java diff --git a/src/main/java/org/springframework/datastore/document/UncategorizedDocumentStoreException.java b/spring-datastore-document-core/src/main/java/org/springframework/datastore/document/UncategorizedDocumentStoreException.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/UncategorizedDocumentStoreException.java rename to spring-datastore-document-core/src/main/java/org/springframework/datastore/document/UncategorizedDocumentStoreException.java diff --git a/spring-datastore-document-core/template.mf b/spring-datastore-document-core/template.mf new file mode 100644 index 000000000..1317f9753 --- /dev/null +++ b/spring-datastore-document-core/template.mf @@ -0,0 +1,19 @@ +Bundle-SymbolicName: org.springframework.datastore.document +Bundle-Name: Spring Datastore Document +Bundle-Vendor: SpringSource +Bundle-ManifestVersion: 2 +Import-Package: + sun.reflect;version="0";resolution:=optional +Import-Template: + org.springframework.beans.*;version="[3.0.0, 4.0.0)", + org.springframework.core.*;version="[3.0.0, 4.0.0)", + org.springframework.dao.*;version="[3.0.0, 4.0.0)", + org.springframework.util.*;version="[3.0.0, 4.0.0)", + org.springframework.data.core.*;version="[1.0.0, 2.0.0)", + org.springframework.datastore.core.*;version="[1.0.0, 2.0.0)", + org.springframework.datastore.persistence.*;version="[1.0.0, 2.0.0)", + org.aopalliance.*;version="[1.0.0, 2.0.0)";resolution:=optional, + org.apache.commons.logging.*;version="[1.1.1, 2.0.0)", + org.w3c.dom.*;version="0" + + diff --git a/spring-datastore-document-parent/.project b/spring-datastore-document-parent/.project new file mode 100644 index 000000000..1d20f89ae --- /dev/null +++ b/spring-datastore-document-parent/.project @@ -0,0 +1,17 @@ + + + spring-datastore-document-parent + + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.maven.ide.eclipse.maven2Nature + + diff --git a/spring-datastore-document-parent/.settings/org.maven.ide.eclipse.prefs b/spring-datastore-document-parent/.settings/org.maven.ide.eclipse.prefs new file mode 100644 index 000000000..7ccc99204 --- /dev/null +++ b/spring-datastore-document-parent/.settings/org.maven.ide.eclipse.prefs @@ -0,0 +1,9 @@ +#Tue Jun 29 21:59:00 EDT 2010 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +skipCompilerPlugin=true +version=1 diff --git a/spring-datastore-document-parent/pom.xml b/spring-datastore-document-parent/pom.xml new file mode 100644 index 000000000..493a28844 --- /dev/null +++ b/spring-datastore-document-parent/pom.xml @@ -0,0 +1,384 @@ + + + 4.0.0 + org.springframework.data + spring-datastore-document-parent + Spring Datastore Document Parent + http://www.springsource.org/spring-data/datastore-document + 1.0.0.BUILD-SNAPSHOT + pom + + UTF-8 + + 4.8.1 + 1.2.15 + 1.8.4 + 1.5.10 + 3.0.4.RELEASE + + + + strict + + false + + + + fast + + true + true + + + + staging + + + spring-site-staging + file:///${java.io.tmpdir}/spring-data/datastore-document/docs + + + spring-milestone-staging + file:///${java.io.tmpdir}/spring-data/datastore-document/milestone + + + spring-snapshot-staging + file:///${java.io.tmpdir}/spring-data/datastore-document/snapshot + + + + + bootstrap + + + + + + http://www.springsource.com/download/community + + + spring-docs + scp://static.springframework.org/var/www/domains/springframework.org/static/htdocs/spring-data/datastore-document/docs/${project.version} + + + + spring-milestone + Spring Milestone Repository + s3://maven.springframework.org/milestone + + + spring-snapshot + Spring Snapshot Repository + s3://maven.springframework.org/snapshot + + + + + + + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-core + ${org.springframework.version} + + + commons-logging + commons-logging + + + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + + org.springframework.data + spring-datastore-document-core + ${project.version} + + + org.springframework.data + spring-datastore-couchdb + ${project.version} + + + org.springframework.data + spring-datastore-mongodb + ${project.version} + + + + + org.slf4j + slf4j-api + ${org.slf4j.version} + + + org.slf4j + jcl-over-slf4j + ${org.slf4j.version} + runtime + + + org.slf4j + slf4j-log4j12 + ${org.slf4j.version} + runtime + + + 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 + + + + org.mockito + mockito-all + ${org.mockito.version} + test + + + + junit + junit + ${junit.version} + test + + + + + + + + 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 + + + + + + + + + + com.springsource.bundlor + com.springsource.bundlor.maven + 1.0.0.RELEASE + + true + + + + bundlor + + bundlor + + + + + + + + + + + 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 + + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.1 + + false + + + + + diff --git a/spring-datastore-mongodb/.classpath b/spring-datastore-mongodb/.classpath new file mode 100644 index 000000000..f42fb64cf --- /dev/null +++ b/spring-datastore-mongodb/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-datastore-mongodb/.project b/spring-datastore-mongodb/.project new file mode 100644 index 000000000..f40a78f9f --- /dev/null +++ b/spring-datastore-mongodb/.project @@ -0,0 +1,23 @@ + + + spring-datastore-mongodb + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.maven.ide.eclipse.maven2Nature + + diff --git a/spring-datastore-mongodb/.settings/org.eclipse.jdt.core.prefs b/spring-datastore-mongodb/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..449698a94 --- /dev/null +++ b/spring-datastore-mongodb/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,6 @@ +#Wed Oct 06 14:49:48 EDT 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/spring-datastore-mongodb/.settings/org.maven.ide.eclipse.prefs b/spring-datastore-mongodb/.settings/org.maven.ide.eclipse.prefs new file mode 100644 index 000000000..5545b44b1 --- /dev/null +++ b/spring-datastore-mongodb/.settings/org.maven.ide.eclipse.prefs @@ -0,0 +1,9 @@ +#Wed Oct 06 14:49:46 EDT 2010 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +skipCompilerPlugin=true +version=1 diff --git a/spring-datastore-mongodb/pom.xml b/spring-datastore-mongodb/pom.xml new file mode 100644 index 000000000..fc11c2d07 --- /dev/null +++ b/spring-datastore-mongodb/pom.xml @@ -0,0 +1,103 @@ + + 4.0.0 + + org.springframework.data + spring-datastore-document-parent + 1.0.0.BUILD-SNAPSHOT + ../spring-datastore-document-parent/pom.xml + + spring-datastore-mongodb + jar + Spring Datastore MongoDB Support + + + + + org.springframework + spring-beans + + + org.springframework + spring-tx + + + + + org.springframework.data + spring-datastore-document-core + + + + + org.slf4j + slf4j-api + + + org.slf4j + jcl-over-slf4j + compile + + + org.slf4j + slf4j-log4j12 + runtime + + + log4j + log4j + + + javax.mail + mail + + + javax.jms + jms + + + com.sun.jdmk + jmxtools + + + com.sun.jmx + jmxri + + + runtime + + + + javax.annotation + jsr250-api + true + + + + org.mockito + mockito-all + test + + + + junit + junit + + + + + org.mongodb + mongo-java-driver + 2.1 + + + + + + + com.springsource.bundlor + com.springsource.bundlor.maven + + + + diff --git a/src/main/java/org/springframework/datastore/document/mongodb/CannotGetMongoDbConnectionException.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/CannotGetMongoDbConnectionException.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/CannotGetMongoDbConnectionException.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/CannotGetMongoDbConnectionException.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentMapper.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentMapper.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentMapper.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentMapper.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentSource.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentSource.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentSource.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoBeanPropertyDocumentSource.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/MongoDbFactoryBean.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoDbFactoryBean.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/MongoDbFactoryBean.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoDbFactoryBean.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/MongoDbUtils.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoDbUtils.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/MongoDbUtils.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoDbUtils.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/MongoDocumentSource.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoDocumentSource.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/MongoDocumentSource.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoDocumentSource.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/MongoTemplate.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoTemplate.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/MongoTemplate.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/MongoTemplate.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/query/BasicQuery.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/BasicQuery.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/query/BasicQuery.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/BasicQuery.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/query/Criteria.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/Criteria.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/query/Criteria.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/Criteria.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/query/CriteriaSpec.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/CriteriaSpec.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/query/CriteriaSpec.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/CriteriaSpec.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/query/FieldSpecification.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/FieldSpecification.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/query/FieldSpecification.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/FieldSpecification.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/query/OrCriteria.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/OrCriteria.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/query/OrCriteria.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/OrCriteria.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/query/Query.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/Query.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/query/Query.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/Query.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/query/QueryBuilder.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/QueryBuilder.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/query/QueryBuilder.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/QueryBuilder.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/query/SliceSpecification.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/SliceSpecification.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/query/SliceSpecification.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/SliceSpecification.java diff --git a/src/main/java/org/springframework/datastore/document/mongodb/query/SortSpecification.java b/spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/SortSpecification.java similarity index 100% rename from src/main/java/org/springframework/datastore/document/mongodb/query/SortSpecification.java rename to spring-datastore-mongodb/src/main/java/org/springframework/datastore/document/mongodb/query/SortSpecification.java diff --git a/template.mf b/spring-datastore-mongodb/template.mf similarity index 92% rename from template.mf rename to spring-datastore-mongodb/template.mf index 83d97a4f5..4c2cb3f87 100644 --- a/template.mf +++ b/spring-datastore-mongodb/template.mf @@ -12,8 +12,8 @@ Import-Template: org.springframework.data.core.*;version="[1.0.0, 2.0.0)", org.springframework.datastore.core.*;version="[1.0.0, 2.0.0)", org.springframework.datastore.persistence.*;version="[1.0.0, 2.0.0)", + org.springframework.datastore.document.*;version="[1.0.0, 2.0.0)", com.mongodb.*;version="0", - org.jcouchdb.*;version="0", org.bson.*;version="0", org.aopalliance.*;version="[1.0.0, 2.0.0)";resolution:=optional, org.apache.commons.logging.*;version="[1.1.1, 2.0.0)", diff --git a/src/ant/upload-dist.xml b/src/ant/upload-dist.xml new file mode 100644 index 000000000..d0f3f6f89 --- /dev/null +++ b/src/ant/upload-dist.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assembly/distribution.xml b/src/assembly/distribution.xml new file mode 100644 index 000000000..c00e3f99b --- /dev/null +++ b/src/assembly/distribution.xml @@ -0,0 +1,72 @@ + + + + distribution + + zip + + true + + + + src/main/resources + + readme.txt + apache-license.txt + epl-license.txt + notice.txt + changelog.txt + + + dos + + + + target/site/reference + docs/reference + + + + target/site/apidocs + docs/javadoc + + + + + + + org.springframework.data:spring-datastore-document-core + org.springframework.data:spring-datastore-couchdb + org.springframework.data:spring-datastore-mongodb + + + dist + false + false + + + + + + org.springframework.data:spring-datastore-document-core + org.springframework.data:spring-datastore-couchdb + org.springframework.data:spring-datastore-mongodb + + + sources + src + false + false + + + + diff --git a/src/docbkx/index.xml b/src/docbkx/index.xml new file mode 100644 index 000000000..dcb28ac0a --- /dev/null +++ b/src/docbkx/index.xml @@ -0,0 +1,43 @@ + + + + + Spring Datastore Document - Reference Documentation + &version; + + + + Mark + Pollack + + + Thomas + Risberg + + + + + + 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 + distributed in print or electronically. + + + + + + + + + + Reference + + + This part of the reference documentation details the ... + + + + + diff --git a/src/docbkx/preface.xml b/src/docbkx/preface.xml new file mode 100644 index 000000000..a9a31255e --- /dev/null +++ b/src/docbkx/preface.xml @@ -0,0 +1,11 @@ + + + + Preface + + The Spring Datastore Document project applies core Spring concepts to the development of solutions using a document style data store. + We provide a "template" as a high-level abstraction for sending and receiving messages. + You will notice similarities to the JDBC support in the Spring Framework. + + diff --git a/src/docbkx/resources/css/highlight.css b/src/docbkx/resources/css/highlight.css new file mode 100644 index 000000000..ffefef72d --- /dev/null +++ b/src/docbkx/resources/css/highlight.css @@ -0,0 +1,35 @@ +/* + 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 new file mode 100644 index 000000000..10936f337 --- /dev/null +++ b/src/docbkx/resources/css/html.css @@ -0,0 +1,421 @@ +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 new file mode 100644 index 000000000..77569070a --- /dev/null +++ b/src/docbkx/resources/css/stylesheet.css @@ -0,0 +1,99 @@ +@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 new file mode 100644 index 0000000000000000000000000000000000000000..7d473430b7bec514f7de12f5769fe7c5859e8c5d GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQC}X^4DKU-G|w_t}fLBA)Suv#nrW z!^h2QnY_`l!BOq-UXEX{m2up>JTQkX)2m zTvF+fTUlI^nXH#utd~++ke^qgmzgTe~DWM4ffP81J literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/images/callouts/10.png b/src/docbkx/resources/images/callouts/10.png new file mode 100644 index 0000000000000000000000000000000000000000..997bbc8246a316e040e0804174ba260e219d7d33 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQWtZ~+OvdJMW|Y+^UT?O-M{rKJsmzxdayJ{ zDCQA!%%@7Jj$q%-wf8e0_jRx8Dqi$}^?K=?6FriQFLv>>oc^CE+aVHhW3=nZ+fQ4!M=ZC7H>3sl|FJr3LwU zC3?yExf6FO?f@F61vV}-Juk7O6lk8Yg;}bFaZ-|HQc7Azopr01?u8M*si- literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/images/callouts/11.png b/src/docbkx/resources/images/callouts/11.png new file mode 100644 index 0000000000000000000000000000000000000000..ce47dac3f52ac49017749a3fea53db57d006993c GIT binary patch literal 565 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1SD^YpWXnZI14-?iy0V%N{XE z)7O>#600DeuDZ?5tOl@ql94%{~0TwC?8m~C^ZqJRG}m@H-L1 z5L@scq?{XUcxG{OP9jig5ySQaTl#^*93bKF#G<^+ymW>G($Cs~V(bw8rA5i93}62@ zzlJGu&d<$F%`0K}c4pdspcorSSx9C{PAbEScbC)|7#JBmT^vIy=9KoYUDZ+`aP)jU z&ny=ErrK^#Gw!AcR}pdfMERuV^@&0$@(#^6b8c@rn^6RWX3pUb z4*6@PZ+H0#u=rjsXzS?6n6*sBGbHqGTU%mCsH?n#%j;eD^2}qe=iX*J@VQ3BRpz+u z{PX#N(^9X${`$90+;!pWs>o@z_n8G)7Uo7PJz`jrS+)QE@=PWHmc~UIw=WmUe73o7 z>^bR(M752aYoNg~ozu7U7&{(U>{s!;bn#f?ItjL^o`e{*EOQHqO;ccnz9hLK5@2cAyw@AaPFL~Cp#02|E|4xeQteNtB7waMs QVCXP-y85}Sb4q9e0GRUFb^rhX literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/images/callouts/12.png b/src/docbkx/resources/images/callouts/12.png new file mode 100644 index 0000000000000000000000000000000000000000..31daf4e2f25b6712499ee32de9c2e3b050b691ca GIT binary patch literal 617 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1SD^YpWXnZI14-?iy0V%N{XE z)7O>#600De9$%>2LVd81Yeb1-X-P(Y5yQ%LXFPyHJS9LOm(=3qqRfJl%=|nCVNOM5 zpg0#u+&RCXvM4h>ql94%{~0TwC?8m~C^ZqJRG}m@H-L1 z5L@scq?{XUcxG{OP9jig5ySQaTl#^*93bKF#G<^+ymW>G($Cs~V(bw8rA5i93}62@ zzlJGu&d<$F%`0K}c4pdspcorSSx9C{PAbEScbC)|7#JBmT^vIy=Cn>wTzx1(qV@bS z0hYvspf(--lM>otrqbK$7p{3DzJ|+KN8%5ows)AI?zWk_n>jwEHXrTJecpEW_0xL= z?}N`*R`T~d2{AN${y8T#GEn4hUb&52^}Op@TW4{oc)A6)%$5=G}h# z?O{QLj@aRcAIf&y&OiUN=H2gq=_}V|pWfuReDV|{jwXw~>#w)I|9${XE z)7O>#600Dep5bGK9wD%hYeb1-X-P(Y5yQ%LXFPyHJS9LOm(=3qqRfJl%=|nCVNOM5 zpg0#u+&RCXvM4h>ql94%{~0TwC?8m~C^ZqJRG}m@H-L1 z5L@scq?{XUcxG{OP9jig5ySQaTl#^*93bKF#G<^+ymW>G($Cs~V(bw8rA5i93}62@ zzlJGu&d<$F%`0K}c4pdspcorSSx9C{PAbEScbC)|7#JBmT^vIy=Cn>w>~AWNX^a2R zbkveVY|45D7UnZ&JtjPwvdCCscZp0EA*0()#GOw)UH4-^&)y^E*4%UC)*|J}q_Ss;tN`nd8$>x9$_Xb^O2EpX&@C ZI46EzbLxq-voTO7gQu&X%Q~loCIF_C`w;*D literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/images/callouts/14.png b/src/docbkx/resources/images/callouts/14.png new file mode 100644 index 0000000000000000000000000000000000000000..64014b75fe2e84d45ed861974c72462727979360 GIT binary patch literal 411 zcmV;M0c8G(P)!ax*-PXaQ9e~6^e1gu=a6a&KSz}bR`+prYG9ayB$BDjWGfIE;t#wl!+ zR3S(jA%y#i_@eOOedXoc%RQe%L;wH~k+s%ZI~)!<=dD%?4MaplaU9QPGski2q3`>r z(}{j@0a$CLl+)={2vLWml*i-oa5#J}DW$gCZB~Z!(!M#)2St|1_V^0qpmCrBof=Y&NUas@LmfSw=)4B4f;8Fu)(eFsv24 zJzXxBrayquXcR?J{XE z)7O>#600De0j~t#c`vY#Yeb1-X-P(Y5yQ%LXFPyHJS9LOm(=3qqRfJl%=|nCVNOM5 zpg0#u+&RCXvM4h>ql94%{~0TwC?8m~C^ZqJRG}m@H-L1 z5L@scq?{XUcxG{OP9jig5ySQaTl#^*93bKF#G<^+ymW>G($Cs~V(bw8rA5i93}62@ zzlJGu&d<$F%`0K}c4pdspcorSSx9C{PAbEScbC)|7#JBmT^vIy=9Eq_Jl&Ka(%QdX zh{H8O%#_7)Tc@t$mM`p4(Ne7omR*~(>gd8_8AZH{=3ms$Fmzm^yL@_+(#aQQ5>7QW z>3g2fIsH(ugM)!V$x4Rr_+!J_XU%4xbz0aE;^N{m@42Z|@0S@TQ=WbP`TMV5Ok;<| z^Ihv+@6tQ{sciRF9dD7Nr=KobwJJ68zJK$<1Pd9rz%4O)*;}Jzj&~nTGMecz>B%lV zK|`fmIc8mp-h8iSXiGFW=C(L+XH4DRxZQX87^-dLuD>odo6YLT@Sw)dfBEIG)v2@6 zR)%mL7GRj1x-&v&+2q@A%a&h0`Lw7|#(w_!tgT!PoJ|+re`lxaY7e*=hH)_rZeB4|imU1$R#1`!P>&$poQl;nzm}mD5ZFopaX|GsS%q*{P~< z;WtmO%lhToBL0i}yfkaOt?EN=nkLNGuU`ywhI5H)L`iUdT1k0gQ7VIjhO(w-Zen_> zZ(@38a<+nro{^q~f~BRtfrY+-p+a&|W^qZSLvCepNoKNMYO!8QX+eHoiC%Jk?!;Y+ zJAlS%fsM;d&r2*R1)67JkeZlkYGj#gX_9E3W@4U_nw*@Ln38B@k(iuhnUeN2eF0kK0(Y1u|9Rc(19XFPiEBhjaDG}zd16s2gM)^$re|(qda7?? zdS-IAf{C7yo`r&?rM`iMzJZ}aa#3b+Nu@(>WpPPnvR-PjUP@^}eqM=Qa(?c_U5Yz^ z#%Y0#%S_KpEGY$=XJL?(l#*ybuErX#^g`ttQfwn3r>K)tuC)r#2`iJ>Prt42#Ndx#Uc~1)>aw z3jE@Q4|!9Z%lVv}- zc=48cF7H)t`(Ck`^+mtha~Np7bBSw2NpOBzNqJ&XDuaWDvZiNlVtT4?VtQtBwt|VC zk)DNurKP@sg}#BILUK`NaY>~^Ze?*vX0l#tv0h4PL4IC|UUGi!#9fLzfW~Qojmu2W zODrh`nrE42VU(7fm~5G9U~HM3l#*m_WNcxOXkuzEX4g z+-vfUhb0A>b04=Im{6XiQd1v%r%>h0$G8U7E1If8OQ!N~xOYY5h0NDT$p9(iZ?Q&e z18-(+l~J8O`)kc}e&uL$eW&>P-#`~Qm$*ih1m~xflqVLYGB{``YkKA;rl!p+yCFkc(+@-h!Xq*<< zxXkpt#FA2=d1VEBsYynrsitN|Y01eJ$;p;U#>wWX2KP5v&I9V=1L+C? fTFYQ)RAFeOZJ=$?lDoSWD8u0C>gTe~DWM4f^}upZ literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/images/callouts/6.png b/src/docbkx/resources/images/callouts/6.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba694af6c07d947d219b45a629bd32c60a0f5fe GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQ*)Bra@SU# zmiz#bR~{$s2si{S(aY|Z}Vd7tb ouUmn-_&~Y>fYve?8dVq?X&Y!8wB+ut1u%w%U~xZhnMEEs6JbBSw2NpOBzNqJ&XDuaWDvZiNlVtT4?VtQtBwt|VC zk)DNurKP@sg}#BILUK`NaY>~^Ze?*vX0l#tv0h4PL4IC|UUGi!#9fLzfW~Qojmu2W zODrh`nrCEbVQgk$XkwI@Y+{_8nv`N>YGIaQkz#0QY@Te9lBQ<)awbq0A4pdK&{_sV bqY6VKZ3AtCmfYR7Kp6&4S3j3^P6u&S`V$cAh@R~F=4@V4jxkzlaQrcFYWK{)(`o5XZnut z=nE4SU2g1ZW%;@@I$>_e3F8a=8WK~|CVXt1DqisQxtIX|`YW_n&?Nh#1gQ}d)$LrYTw(_{nVG)tp2V+#}WG*e^KRLdkoLz7g? qn(IA84Qgo42`r6v<+Hvch>@C7(8A5T-G@yGywn*$#_oy literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/images/callouts/9.png b/src/docbkx/resources/images/callouts/9.png new file mode 100644 index 0000000000000000000000000000000000000000..a0676d26cc2ff1de12c4ecdeefb44a0d71bc6bde GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQNRqa;^5&H%t0&v*|C|wdb9$wI zR@+N9#RIowg@Uqn&z-__Tzhhz!sG|vTxA7?=O|Y?u(d4T{!RM9c7chr6d%1?R=i16 z?@Ic{f32YJFJnVhX)qGzOMplv!L->5yAlT#}irms+fsQd*FoSE84k zpF44v;trs3T43Wc)AJHbN`dAXo0u6Hr<$gkq?lM38ycjV7+5A5Sr{ayr5c%-n;95g pF*H#D>f!_G3IJNmU}#ifXryhRZP1dtyA~+J;OXk;vd$@?2>@J{cB%jX literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/images/logo.png b/src/docbkx/resources/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f6d959e77f14eed6bdb750190ff83289279793 GIT binary patch literal 9627 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 literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/xsl/fopdf.xsl b/src/docbkx/resources/xsl/fopdf.xsl new file mode 100644 index 000000000..6ca1a684d --- /dev/null +++ b/src/docbkx/resources/xsl/fopdf.xsl @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Copyright © 2005-2007 + + + , + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -5em + -5em + + + + + + + + + + + Spring-WS ( + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 new file mode 100644 index 000000000..aa7930bab --- /dev/null +++ b/src/docbkx/resources/xsl/html.xsl @@ -0,0 +1,91 @@ + + + + + + + + + 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 new file mode 100644 index 000000000..81e6ab235 --- /dev/null +++ b/src/docbkx/resources/xsl/html/html_chunk.xsl @@ -0,0 +1,136 @@ + + + + + + + '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 new file mode 100644 index 000000000..09539c068 --- /dev/null +++ b/src/docbkx/resources/xsl/html/titlepage.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + <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 new file mode 100644 index 000000000..59016d819 --- /dev/null +++ b/src/docbkx/resources/xsl/html_chunk.xsl @@ -0,0 +1,208 @@ +<?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://static.springframework.org/spring-ws/site/" + title="The Spring Framework - Spring Web Services"> + <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 new file mode 100644 index 000000000..2905ee3c2 --- /dev/null +++ b/src/docbkx/resources/xsl/pdf/fopdf.xsl @@ -0,0 +1,518 @@ +<?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 new file mode 100644 index 000000000..dc18e1e0d --- /dev/null +++ b/src/docbkx/resources/xsl/pdf/titlepage.xml @@ -0,0 +1,101 @@ +<?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/main/javadoc/doc-files/th-background.png b/src/main/javadoc/doc-files/th-background.png new file mode 100644 index 0000000000000000000000000000000000000000..72d65e771f0dd4ab8840ca15ab9eec9c9e664957 GIT binary patch literal 2841 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 literal 0 HcmV?d00001 diff --git a/src/main/javadoc/spring-javadoc.css b/src/main/javadoc/spring-javadoc.css new file mode 100644 index 000000000..c438fafa5 --- /dev/null +++ b/src/main/javadoc/spring-javadoc.css @@ -0,0 +1,178 @@ +/* stylesheet.css 2008/04/22 nicolekonicki */ + +/* + * + * Spring-specific Javadoc style sheet + * + */ + + + +.code +{ + border: 1px solid black; + background-color: #F4F4F4; + padding: 5px; +} + +body +{ + font: 12px Verdana, Arial, Helvetica, "Bitstream Vera Sans", sans-serif; + background-color: #fff; + color: #333; +} + + +/* Link colors */ +a +{ + color:#2c7b14; + text-decoration:none; +} + +a:hover +{ + text-decoration:underline; +} + +/* Headings */ +h1 +{ + font-size:28px; + color:#007c00; +} + +/* Table colors */ + +table +{ + border:none; +} + +td +{ + border:none; + border-bottom:1px dotted #ddd; +} + +th +{ + border:none; +} + +.TableHeadingColor th +{ + background-color: #efffcb; + background-image: url(doc-files/th-background.png); + background-repeat: repeat-x; + color:#fff; + font-size:14px; + height:26px; +} + +.TableSubHeadingColor +{ + background: #f7ffee; + +} +.TableRowColor +{ + background: #fff; +} + +.TableRowColor a +{ + border-bottom:none; + color:#2c7b14; + font-weight:normal; +} + +tr.TableRowColor:hover +{ + background:#eef2e1; +} + + +/* Font used in left-hand frame lists */ +.FrameTitleFont +{ + font-size: 120%; + font-weight:bold; +} + +.FrameTitleFont a +{ + color: #333; +} + +.FrameHeadingFont +{ + font-weight: bold; + font-size:95%; +} + +.FrameItemFont +{ + line-height:130%; + font-size: 95%; +} + +.FrameItemFont a +{ + color:#333; +} + +.FrameItemFont a:hover +{ + color:#249901; + border-bottom:none; + text-decoration:underline; +} + +/* Navigation bar fonts and colors */ +.NavBarCell1 +{ + background-color:#fff; + border:none; +} + +.NavBarCell1Rev +{ + background-color:#e3faa5; + border:1px solid #9ad00c; + padding:0; + margin:0; +} + +.NavBarCell1 a +{ + color:#333; + text-decoration:none; +} + +.NavBarFont1Rev +{ + +} + +.NavBarCell2 +{ + border:none; +} + +.NavBarCell2 a +{ + color:#249901; + font-size:90%; +} + +.NavBarCell3 +{ + border:none; +} + +/* Override sizes in font tags */ +font +{ + font: inherit !important; +} diff --git a/src/main/resources/apache-license.txt b/src/main/resources/apache-license.txt new file mode 100644 index 000000000..261eeb9e9 --- /dev/null +++ b/src/main/resources/apache-license.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. diff --git a/src/main/resources/changelog.txt b/src/main/resources/changelog.txt new file mode 100644 index 000000000..a186131f4 --- /dev/null +++ b/src/main/resources/changelog.txt @@ -0,0 +1,5 @@ +Spring Datastore Document 1.0.0 Milestone 1 (?, 2010) +============================================= + +New Features + * Lot's of good stuff \ No newline at end of file diff --git a/src/main/resources/notice.txt b/src/main/resources/notice.txt new file mode 100644 index 000000000..e6900be90 --- /dev/null +++ b/src/main/resources/notice.txt @@ -0,0 +1,21 @@ + ======================================================================== + == NOTICE file corresponding to section 4 d of the Apache License, == + == Version 2.0, in this case for the Spring Integration distribution. == + ======================================================================== + + This product includes software developed by + the Apache Software Foundation (http://www.apache.org). + + The end-user documentation included with a redistribution, if any, + must include the following acknowledgement: + + "This product includes software developed by the Spring Framework + Project (http://www.springframework.org)." + + Alternatively, this acknowledgement may appear in the software itself, + if and wherever such third-party acknowledgements normally appear. + + The names "Spring", "Spring Framework", and "Spring Data" must + not be used to endorse or promote products derived from this software + without prior written permission. For written permission, please contact + enquiries@springsource.com. diff --git a/src/main/resources/readme.txt b/src/main/resources/readme.txt new file mode 100644 index 000000000..842e0e1f8 --- /dev/null +++ b/src/main/resources/readme.txt @@ -0,0 +1,17 @@ +SPRING DATASTORE DOCUMENT 1.0.0 M1 (? ? 2010) +------------------------------------------------- + +Spring Datastore Document is released under the terms of the Apache Software License Version 2.0 (see license.txt). + + +DISTRIBUTION CONTENTS: + +The 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. + + +ADDITIONAL RESOURCES: + +Spring Data Homepage: http://www.springsource.org/spring-data +Spring Data Forum: http://forum.springsource.org/forumdisplay.php?f=??