Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

New project structure

  • Loading branch information...
commit fe43054f977c7ab93673612735ea6553aad57c48 1 parent d3cfb7c
@jbrisbin jbrisbin authored
Showing with 2,167 additions and 738 deletions.
  1. +2 −1  .gitignore
  2. +74 −0 build.gradle
  3. +2 −0  doc/api/REST.md
  4. +19 −0 exporter-core/build.gradle
  5. +605 −0 exporter-core/exporter-core.iml
  6. +1 −4 {spring-data-services-exporter/src/main → exporter-core/src/test}/resources/logback.xml
  7. +12 −0 exporter-web/build.gradle
  8. +393 −0 exporter-web/exporter-web.iml
  9. +72 −0 exporter-web/src/main/webapp/WEB-INF/exporter-servlet.xml
  10. 0  {spring-data-services-exporter → exporter-web}/src/main/webapp/WEB-INF/web.xml
  11. 0  {spring-data-services-exporter/src/main → exporter-web/src/test}/resources/META-INF/persistence.xml
  12. +18 −0 exporter-web/src/test/resources/logback.xml
  13. 0  {spring-data-services-exporter → }/gradle.properties
  14. BIN  gradle/wrapper/gradle-wrapper.jar
  15. +6 −0 gradle/wrapper/gradle-wrapper.properties
  16. +164 −0 gradlew
  17. +90 −0 gradlew.bat
  18. +2 −0  settings.gradle
  19. +0 −4 spring-data-services-exporter/.gitignore
  20. +0 −27 spring-data-services-exporter/1.load_data.txt
  21. +0 −4 spring-data-services-exporter/2.list_data.txt
  22. +0 −14 spring-data-services-exporter/3.update_data.txt
  23. +0 −105 spring-data-services-exporter/build.gradle
  24. +0 −10 ...services-exporter/src/main/java/org/springframework/data/services/exporter/repository/PersonRepository.java
  25. +0 −10 ...ervices-exporter/src/main/java/org/springframework/data/services/exporter/repository/ProfileRepository.java
  26. +0 −61 spring-data-services-exporter/src/main/java/org/springframework/data/services/exporter/rest/JsonView.java
  27. +0 −32 spring-data-services-exporter/src/main/java/org/springframework/data/services/exporter/rest/Link.java
  28. +0 −116 spring-data-services-exporter/src/main/java/org/springframework/data/services/exporter/rest/RestExporter.java
  29. +0 −272 ...services-exporter/src/main/java/org/springframework/data/services/exporter/rest/RestExporterController.java
  30. +0 −49 spring-data-services-exporter/src/main/java/org/springframework/data/services/exporter/test/Person.java
  31. +0 −29 spring-data-services-exporter/src/main/java/org/springframework/data/services/exporter/test/Profile.java
  32. +13 −0 spring-data-services.iml
  33. +138 −0 spring-data-services.ipr
  34. +556 −0 spring-data-services.iws
View
3  .gitignore
@@ -1,2 +1,3 @@
.DS_Store
-exporter-*
+exporter-2012-*
+.gradle
View
74 build.gradle
@@ -0,0 +1,74 @@
+apply plugin: "base"
+
+configurations.all {
+ exclude group: "commons-logging"
+ exclude module: "slf4j-log4j12"
+ exclude module: "groovy-all", version: "1.8.0-beta-3-SNAPSHOT"
+}
+
+allprojects {
+ apply plugin: "idea"
+}
+
+subprojects {
+ group = "org.springframework.data.services"
+ version = "$svcsExporterVersion"
+
+ sourceCompatibility = 6
+ targetCompatibility = 6
+
+ releaseBuild = version.endsWith("RELEASE")
+ snapshotBuild = version.endsWith("SNAPSHOT")
+
+ repositories {
+ mavenCentral(artifactUrls: [
+ "http://maven.springframework.org/release",
+ "http://maven.springframework.org/milestone",
+ //"http://repository.jboss.org/maven2/",
+ //"http://download.java.net/maven/2/"
+ ])
+ mavenLocal()
+ }
+
+ apply plugin: "groovy"
+ apply plugin: "java"
+
+ [compileJava, compileTestJava]*.options*.compilerArgs = ["-Xlint:-serial", "-Xlint:-unchecked"]
+
+ dependencies {
+ groovy "org.codehaus.groovy:groovy:$groovyVersion"
+
+ // Logging
+ compile "org.slf4j:slf4j-api:$slf4jVersion"
+ runtime "org.slf4j:jcl-over-slf4j:$slf4jVersion"
+ runtime "ch.qos.logback:logback-classic:$logbackVersion"
+
+ // Jackson JSON
+ compile "org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion"
+
+ // ROME RSS
+ compile "org.rometools:rome-modules:1.0"
+
+ // Spring
+ compile "org.springframework:spring-beans:$springVersion"
+ compile "org.springframework:spring-context:$springVersion"
+ compile "org.springframework:spring-core:$springVersion"
+ compile "org.springframework:spring-web:$springVersion"
+
+ // Testing
+ testCompile "org.spockframework:spock-core:$spockVersion"
+ testCompile "org.hamcrest:hamcrest-all:1.1"
+ testCompile "org.springframework:spring-rest:$springVersion"
+ testRuntime "org.springframework:spring-context-support:$springVersion"
+ }
+
+}
+
+task wrapper(type: Wrapper) { gradleVersion = "1.0-milestone-8-20120117033539+0100" }
+
+idea {
+ project.ipr.withXml { provider ->
+ provider.node.component.find { it.@name == 'VcsDirectoryMappings' }.mapping.@vcs = 'Git'
+ }
+ module.jdkName = "OpenJDK 1.7"
+}
View
2  doc/api/REST.md
@@ -0,0 +1,2 @@
+# REST API
+
View
19 exporter-core/build.gradle
@@ -0,0 +1,19 @@
+dependencies {
+
+ // Spring
+ compile "org.springframework:spring-oxm:$springVersion"
+ compile "org.springframework:spring-tx:$springVersion"
+
+ // JPA
+ compile "org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final"
+ compile "org.hibernate:hibernate-entitymanager:$hibernateVersion"
+
+ // H2
+ compile "org.hsqldb:hsqldb:1.8.0.10"
+
+ // Spring Data
+ compile "org.springframework.data:spring-data-jpa:$sdJpaVersion"
+ compile "org.springframework.data:spring-data-mongodb:$sdMongoVersion"
+ runtime "org.mongodb:mongo-java-driver:$mongoDriverVersion"
+
+}
View
605 exporter-core/exporter-core.iml
@@ -0,0 +1,605 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module relativePaths="true" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/build/classes/main" />
+ <output-test url="file://$MODULE_DIR$/build/classes/test" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/resources" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/.gradle" />
+ <excludeFolder url="file://$MODULE_DIR$/build" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/slf4j-api/1.6.4/jar/2396d74b12b905f780ed7966738bb78438e8371a/slf4j-api-1.6.4.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/slf4j-api/1.6.4/source/a045ecb292c2b2559e8e9778303a08c91f537c68/slf4j-api-1.6.4-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.jackson/jackson-mapper-asl/1.9.2/jar/95400a7922ce75383866eb72f6ef4a7897923945/jackson-mapper-asl-1.9.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.jackson/jackson-mapper-asl/1.9.2/source/f033b16b4df1e2790b3027f59dcbac55fbf62585/jackson-mapper-asl-1.9.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.rometools/rome-modules/1.0/jar/d4d035650bfd7fe3a0b84e29b2edcec7399f1a21/rome-modules-1.0.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.rometools/rome-modules/1.0/source/4e08dfbc4546d6c706ede9a1319d4760bad7816d/rome-modules-1.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-beans/3.1.0.RELEASE/jar/d12bb11cc2469cca2d8ba33d86d188733544d7e0/spring-beans-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-beans/3.1.0.RELEASE/source/b59685ec9d53af4d5e9e522115eda33b4596cfb6/spring-beans-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-context/3.1.0.RELEASE/jar/d36e9ab580dccc8311704bc11f2434f230bdec28/spring-context-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-context/3.1.0.RELEASE/source/b5b20b5c755ad748b607807a6f0e3e3479cdfe1d/spring-context-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-core/3.1.0.RELEASE/jar/3a18c725dd321e457cfb48547d40c2862216bb3b/spring-core-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-core/3.1.0.RELEASE/source/f0bc10850fd7d7f7f5a8742b60e7e81551e9f3a9/spring-core-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-web/3.1.0.RELEASE/jar/c50458fccc24b87170f6557765c6720a489b5eb2/spring-web-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-web/3.1.0.RELEASE/source/f7d078f44b8c1d77d0b639e74013ceecc1332124/spring-web-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-oxm/3.1.0.RELEASE/jar/c8f8e7429596094008d0c395020e157d4e8ca432/spring-oxm-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-oxm/3.1.0.RELEASE/source/8c6490807f8ad8f713915c5702d55e7b0874633a/spring-oxm-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-tx/3.1.0.RELEASE/jar/825dd46d268cc89eb282885ceb1b1664b31a43d3/spring-tx-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-tx/3.1.0.RELEASE/source/d1e15bfd875daff1b1f7003f33858e5393a3226e/spring-tx-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate.javax.persistence/hibernate-jpa-2.0-api/1.0.1.Final/jar/3306a165afa81938fc3d8a0948e891de9f6b192b/hibernate-jpa-2.0-api-1.0.1.Final.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate.javax.persistence/hibernate-jpa-2.0-api/1.0.1.Final/source/574f65373b46a038332eb1a14acc3142bd9e9810/hibernate-jpa-2.0-api-1.0.1.Final-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate/hibernate-entitymanager/3.5.6-Final/jar/f0d8ef059798a9fe8f84532e6aed27f9a25934f4/hibernate-entitymanager-3.5.6-Final.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate/hibernate-entitymanager/3.5.6-Final/source/7dcc6a85b33456f480b9713d161d78f86c31d52e/hibernate-entitymanager-3.5.6-Final-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hsqldb/hsqldb/1.8.0.10/jar/7e9978fdb754bce5fcd5161133e7734ecb683036/hsqldb-1.8.0.10.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework.data/spring-data-jpa/1.0.1.RELEASE/jar/6ef96e39ca5a58df359c03e450dc2264c5eb53ad/spring-data-jpa-1.0.1.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework.data/spring-data-jpa/1.0.1.RELEASE/source/cc07eb9e907691190cbf85fb904b2507f81ad1a7/spring-data-jpa-1.0.1.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework.data/spring-data-mongodb/1.0.0.M5/jar/b92a06ccc48386c0eb1adffd447164af5ab64e81/spring-data-mongodb-1.0.0.M5.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework.data/spring-data-mongodb/1.0.0.M5/source/ed9b68c1cbd2aed287cebe9cb8f30afa9a02158/spring-data-mongodb-1.0.0.M5-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.groovy/groovy/1.8.4/jar/344c49f07cf37471935d5103b6cbe7c5aaa09445/groovy-1.8.4.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.groovy/groovy/1.8.4/source/a527e83e5c715540108d8f2b86ca19a3c9c78ac1/groovy-1.8.4-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.jackson/jackson-core-asl/1.9.2/jar/8493982bba1727106d767034bd0d8e77bc1931a9/jackson-core-asl-1.9.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.jackson/jackson-core-asl/1.9.2/source/11fb8a4f12be3b4a342fd65b5448273b8c32a2bd/jackson-core-asl-1.9.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/jdom/jdom/1.0/jar/a2ac1cd690ab4c80defe7f9bce14d35934c35cec/jdom-1.0.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/jdom/jdom/1.0/source/662abe0196cf554d4d7374f5d6382034171b652c/jdom-1.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/rome/rome/1.0/jar/22b33347f315833e9348cec2751af1a5d5656e4/rome-1.0.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/rome/rome/1.0/source/195e9a962672c32943ec8883e010b6a5ea568745/rome-1.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-asm/3.1.0.RELEASE/jar/de7cf38491d3243c98c7d61ccdb40756df92c6d1/spring-asm-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-asm/3.1.0.RELEASE/source/b442feee99993c71bdfedeba8e049863966034ce/spring-asm-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/commons-logging/commons-logging/1.1.1/jar/5043bfebc3db072ed80fbd362e7caf00e885d8ae/commons-logging-1.1.1.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/commons-logging/commons-logging/1.1.1/source/f3f156cbff0e0fb0d64bfce31a352cce4a33bc19/commons-logging-1.1.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/aopalliance/aopalliance/1.0/jar/235ba8b489512805ac13a8f9ea77a1ca5ebe3e8/aopalliance-1.0.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/aopalliance/aopalliance/1.0/source/4a4b6d692e17846a9f3da036438a7ac491d3c814/aopalliance-1.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-aop/3.1.0.RELEASE/jar/5d998ce239b87cbf66fd18a01dad854de13e2f06/spring-aop-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-aop/3.1.0.RELEASE/source/78511dd53c1e04e2388be79229ddc5a579108a/spring-aop-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-expression/3.1.0.RELEASE/jar/d226f5e14c7c775b97db275950786c083290b983/spring-expression-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-expression/3.1.0.RELEASE/source/e8191f9a849b984a403939a37de818b1b356e7e5/spring-expression-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/commons-lang/commons-lang/2.5/jar/b0236b252e86419eef20c31a44579d2aee2f0a69/commons-lang-2.5.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/commons-lang/commons-lang/2.5/source/bb75ef699b349b6e02d17d41556cebcd755d07ab/commons-lang-2.5-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/antlr/antlr/2.7.7/jar/83cd2cd674a217ade95a4bb83a8a14f351f48bd0/antlr-2.7.7.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/commons-collections/commons-collections/3.1/jar/40fb048097caeacdb11dbb33b5755854d89efdeb/commons-collections-3.1.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/commons-collections/commons-collections/3.1/source/a48ca211fd2a564425c2cb9b90cb0f9158cfce52/commons-collections-3.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/xml-apis/xml-apis/1.0.b2/jar/3136ca936f64c9d68529f048c2618bd356bf85c9/xml-apis-1.0.b2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/xml-apis/xml-apis/1.0.b2/source/d8525661c5a0a05702fa41873d250d135031ec25/xml-apis-1.0.b2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/dom4j/dom4j/1.6.1/jar/5d3ccc056b6f056dbf0dddfdf43894b9065a8f94/dom4j-1.6.1.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/dom4j/dom4j/1.6.1/source/a8e7149359255f43e0e5e3b1837948f9ed5861fb/dom4j-1.6.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/javax.transaction/jta/1.1/jar/2ca09f0b36ca7d71b762e14ea2ff09d5eac57558/jta-1.1.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/javax.transaction/jta/1.1/source/d5dad66d06246bd2e1e369cebff27faa9beb065a/jta-1.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate/hibernate-core/3.5.6-Final/jar/2fbc11d2892b5d80c67b69ec2ef9ca31b0e71080/hibernate-core-3.5.6-Final.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate/hibernate-core/3.5.6-Final/source/f2c55868786673d18db29e8561390174fb2d1a70/hibernate-core-3.5.6-Final-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate/hibernate-commons-annotations/3.2.0.Final/jar/ce990611448fc2865469e3b68d2fe76b050e3c4f/hibernate-commons-annotations-3.2.0.Final.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate/hibernate-commons-annotations/3.2.0.Final/source/6afdc971f4d4dbe7650dbc5ea4a67101779ca001/hibernate-commons-annotations-3.2.0.Final-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate/hibernate-annotations/3.5.6-Final/jar/a07cb36d5485927f925f941ab6dd61f8ffb4b935/hibernate-annotations-3.5.6-Final.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hibernate/hibernate-annotations/3.5.6-Final/source/a85990aa646fa4e97796be89a7e1d36430036b9b/hibernate-annotations-3.5.6-Final-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm/3.2/jar/9bc1511dec6adf302991ced13303e4140fdf9ab7/asm-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/cglib/cglib/2.2/jar/97d03461dc1c04ffc636dcb2579aae7724a78ef2/cglib-2.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/cglib/cglib/2.2/source/962f2bbd66901a9d67b0bb3c8c4a64ce6de0a8c4/cglib-2.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/javassist/javassist/3.9.0.GA/jar/832df7a8f329ff1285a11576046847a38b749d45/javassist-3.9.0.GA.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/javassist/javassist/3.9.0.GA/source/32539a80ce6e71fa150dcd7c76586fb1ae11cfa7/javassist-3.9.0.GA-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework.data/spring-data-commons-core/1.1.0.RELEASE/jar/819de0255a354869a046cc4b3ba6fe59f147b110/spring-data-commons-core-1.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework.data/spring-data-commons-core/1.1.0.RELEASE/source/1e8fa436c8e98eda6e3dad435ab139c5951c40bf/spring-data-commons-core-1.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-jdbc/3.0.5.RELEASE/jar/2af0bad1d8d681ed2e014b684287acc448ab30cb/spring-jdbc-3.0.5.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-jdbc/3.0.5.RELEASE/source/c8ac8ff6f389f6d249f51ed0a266fd811537af9f/spring-jdbc-3.0.5.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-orm/3.0.5.RELEASE/jar/cff2c955d1a510bab6e1eb2d1ced309f6ec37ce9/spring-orm-3.0.5.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-orm/3.0.5.RELEASE/source/7514e501c926fc793fb0214c7d4567021091e77d/spring-orm-3.0.5.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/jcl-over-slf4j/1.6.1/jar/99c61095a14dfc9e47a086068033c286bf236475/jcl-over-slf4j-1.6.1.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/jcl-over-slf4j/1.6.1/source/dbc80dfd897e3bc528199ff97e29e44a0ac4b462/jcl-over-slf4j-1.6.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.aspectj/aspectjrt/1.6.8/jar/8c234df6a43dd5ba355803122e33caa7ccd11011/aspectjrt-1.6.8.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.aspectj/aspectjrt/1.6.8/source/2e399f32ac7388ecbb042017df2ff1bc1ca8c16/aspectjrt-1.6.8-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm-tree/3.2/jar/cd792e29c79d170c5d0bdd05adf5807cf6875c90/asm-tree-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm-commons/3.2/jar/e7a19b8c60589499e35f5d2068d09013030b8891/asm-commons-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm-util/3.2/jar/37ebfdad34d5f1f45109981465f311bbfbe82dcf/asm-util-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm-analysis/3.2/jar/c624956db93975b7197699dcd7de6145ca7cf2c8/asm-analysis-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="" scope="RUNTIME">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/jcl-over-slf4j/1.6.4/jar/aad8e9df65ebb68e3ba6f269e3312707f7f1065f/jcl-over-slf4j-1.6.4.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/jcl-over-slf4j/1.6.4/source/ab90d9b9f6bcc8441bd28078153ff5bdf45a95d4/jcl-over-slf4j-1.6.4-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="" scope="RUNTIME">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/ch.qos.logback/logback-classic/0.9.30/jar/3dc754111cfa4cb622a973cd8244378a4bf56612/logback-classic-0.9.30.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/ch.qos.logback/logback-classic/0.9.30/source/449fc54aa4863fbe4657d724e5d1f77ba2a2b369/logback-classic-0.9.30-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="" scope="RUNTIME">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.mongodb/mongo-java-driver/2.6.5/jar/e33bb494ca9023cbce92f230b5fb4ee9c478e5fe/mongo-java-driver-2.6.5.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.mongodb/mongo-java-driver/2.6.5/source/f752cf1dfa68e102b6433d452d18eb3cfe06d9a3/mongo-java-driver-2.6.5-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="" scope="RUNTIME">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/ch.qos.logback/logback-core/0.9.30/jar/38099654319cb6c81f8390465a7a5bb8c26fd979/logback-core-0.9.30.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/ch.qos.logback/logback-core/0.9.30/source/bc928078b39f33373c41c00ab11ceab994f3d417/logback-core-0.9.30-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.spockframework/spock-core/0.5-groovy-1.8/jar/8d73c5ad61d8f73d93c2c1cb0db67d971e50d1b4/spock-core-0.5-groovy-1.8.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.spockframework/spock-core/0.5-groovy-1.8/source/42ad4b7060807d0c13da2670b94d86c289ac4db6/spock-core-0.5-groovy-1.8-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hamcrest/hamcrest-all/1.1/jar/2ddcad726ed88eab63eb6666c60970db0ac6d44e/hamcrest-all-1.1.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hamcrest/hamcrest-all/1.1/source/aba64ad8b0365a08ed4435c32e3ee2b2ff16f0a5/hamcrest-all-1.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-context-support/3.1.0.RELEASE/jar/379bb71a6eb9f1a965cd7d6d94524deab2a3da07/spring-context-support-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-context-support/3.1.0.RELEASE/source/4b6e100cc17f62fdcdecd83e5eeeebd0641fbef9/spring-context-support-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hamcrest/hamcrest-core/1.2/jar/44d12ff84e43c7d0539131f75c92f2f88dba6549/hamcrest-core-1.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hamcrest/hamcrest-core/1.2/source/e9be1c6a53b4d4e7564756e924a9fa8b1661ec6a/hamcrest-core-1.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/junit/junit-dep/4.8.2/jar/127b170317b80223b74b5a17ffbe44bd4b12e532/junit-dep-4.8.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/junit/junit-dep/4.8.2/source/dc40b58e487595d522d4cbe2417e61ead41555c8/junit-dep-4.8.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="file://$MODULE_DIR$/../unresolved dependency - org.springframework#spring-rest;3.1.0.RELEASE" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="file://$MODULE_DIR$/../unresolved dependency - org.codehaus.groovy#groovy-all;1.8.0-beta-3-SNAPSHOT" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ </component>
+</module>
+
View
5 ...-services-exporter/src/main/resources/logback.xml → exporter-core/src/test/resources/logback.xml
@@ -8,10 +8,7 @@
</encoder>
</appender>
- <logger name="dyn.io.Dynamo" level="INFO"/>
- <logger name="dyn.io" level="DEBUG"/>
-
- <logger name="org.springframework.data.services.exporter" level="DEBUG"/>
+ <logger name="org.springframework.data.services" level="DEBUG"/>
<logger name="org.springframework" level="INFO"/>
<root level="INFO">
View
12 exporter-web/build.gradle
@@ -0,0 +1,12 @@
+apply plugin: "war"
+apply plugin: "jetty"
+
+dependencies {
+
+ // APIS
+ compile "javax.servlet:servlet-api:2.5"
+
+ // Spring
+ compile "org.springframework:spring-webmvc:$springVersion"
+
+}
View
393 exporter-web/exporter-web.iml
@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module relativePaths="true" type="JAVA_MODULE" version="4">
+ <component name="FacetManager">
+ <facet type="web" name="Web">
+ <configuration>
+ <descriptors>
+ <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
+ </descriptors>
+ <webroots>
+ <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
+ </webroots>
+ <sourceRoots>
+ <root url="file://$MODULE_DIR$/src/main/java" />
+ <root url="file://$MODULE_DIR$/src/main/resources" />
+ </sourceRoots>
+ </configuration>
+ </facet>
+ </component>
+ <component name="NewModuleRootManager" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/build/classes/main" />
+ <output-test url="file://$MODULE_DIR$/build/classes/test" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/resources" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/.gradle" />
+ <excludeFolder url="file://$MODULE_DIR$/build" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/slf4j-api/1.6.4/jar/2396d74b12b905f780ed7966738bb78438e8371a/slf4j-api-1.6.4.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/slf4j-api/1.6.4/source/a045ecb292c2b2559e8e9778303a08c91f537c68/slf4j-api-1.6.4-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.jackson/jackson-mapper-asl/1.9.2/jar/95400a7922ce75383866eb72f6ef4a7897923945/jackson-mapper-asl-1.9.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.jackson/jackson-mapper-asl/1.9.2/source/f033b16b4df1e2790b3027f59dcbac55fbf62585/jackson-mapper-asl-1.9.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.rometools/rome-modules/1.0/jar/d4d035650bfd7fe3a0b84e29b2edcec7399f1a21/rome-modules-1.0.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.rometools/rome-modules/1.0/source/4e08dfbc4546d6c706ede9a1319d4760bad7816d/rome-modules-1.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-beans/3.1.0.RELEASE/jar/d12bb11cc2469cca2d8ba33d86d188733544d7e0/spring-beans-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-beans/3.1.0.RELEASE/source/b59685ec9d53af4d5e9e522115eda33b4596cfb6/spring-beans-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-context/3.1.0.RELEASE/jar/d36e9ab580dccc8311704bc11f2434f230bdec28/spring-context-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-context/3.1.0.RELEASE/source/b5b20b5c755ad748b607807a6f0e3e3479cdfe1d/spring-context-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-core/3.1.0.RELEASE/jar/3a18c725dd321e457cfb48547d40c2862216bb3b/spring-core-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-core/3.1.0.RELEASE/source/f0bc10850fd7d7f7f5a8742b60e7e81551e9f3a9/spring-core-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-web/3.1.0.RELEASE/jar/c50458fccc24b87170f6557765c6720a489b5eb2/spring-web-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-web/3.1.0.RELEASE/source/f7d078f44b8c1d77d0b639e74013ceecc1332124/spring-web-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/javax.servlet/servlet-api/2.5/jar/5959582d97d8b61f4d154ca9e495aafd16726e34/servlet-api-2.5.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/javax.servlet/servlet-api/2.5/source/21599814ad9a605b86f3e6381571beccd861a32/servlet-api-2.5-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-webmvc/3.1.0.RELEASE/jar/9a9c88df8825ff3c2ecb79f7ac29ad1e229e6fd6/spring-webmvc-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-webmvc/3.1.0.RELEASE/source/ccd5ec5be1065cc70b03165db468c9a7064e751f/spring-webmvc-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.groovy/groovy/1.8.4/jar/344c49f07cf37471935d5103b6cbe7c5aaa09445/groovy-1.8.4.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.groovy/groovy/1.8.4/source/a527e83e5c715540108d8f2b86ca19a3c9c78ac1/groovy-1.8.4-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.jackson/jackson-core-asl/1.9.2/jar/8493982bba1727106d767034bd0d8e77bc1931a9/jackson-core-asl-1.9.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.codehaus.jackson/jackson-core-asl/1.9.2/source/11fb8a4f12be3b4a342fd65b5448273b8c32a2bd/jackson-core-asl-1.9.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/jdom/jdom/1.0/jar/a2ac1cd690ab4c80defe7f9bce14d35934c35cec/jdom-1.0.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/jdom/jdom/1.0/source/662abe0196cf554d4d7374f5d6382034171b652c/jdom-1.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/rome/rome/1.0/jar/22b33347f315833e9348cec2751af1a5d5656e4/rome-1.0.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/rome/rome/1.0/source/195e9a962672c32943ec8883e010b6a5ea568745/rome-1.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-asm/3.1.0.RELEASE/jar/de7cf38491d3243c98c7d61ccdb40756df92c6d1/spring-asm-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-asm/3.1.0.RELEASE/source/b442feee99993c71bdfedeba8e049863966034ce/spring-asm-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/commons-logging/commons-logging/1.1.1/jar/5043bfebc3db072ed80fbd362e7caf00e885d8ae/commons-logging-1.1.1.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/commons-logging/commons-logging/1.1.1/source/f3f156cbff0e0fb0d64bfce31a352cce4a33bc19/commons-logging-1.1.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/aopalliance/aopalliance/1.0/jar/235ba8b489512805ac13a8f9ea77a1ca5ebe3e8/aopalliance-1.0.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/aopalliance/aopalliance/1.0/source/4a4b6d692e17846a9f3da036438a7ac491d3c814/aopalliance-1.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-aop/3.1.0.RELEASE/jar/5d998ce239b87cbf66fd18a01dad854de13e2f06/spring-aop-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-aop/3.1.0.RELEASE/source/78511dd53c1e04e2388be79229ddc5a579108a/spring-aop-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-expression/3.1.0.RELEASE/jar/d226f5e14c7c775b97db275950786c083290b983/spring-expression-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-expression/3.1.0.RELEASE/source/e8191f9a849b984a403939a37de818b1b356e7e5/spring-expression-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-context-support/3.1.0.RELEASE/jar/379bb71a6eb9f1a965cd7d6d94524deab2a3da07/spring-context-support-3.1.0.RELEASE.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.springframework/spring-context-support/3.1.0.RELEASE/source/4b6e100cc17f62fdcdecd83e5eeeebd0641fbef9/spring-context-support-3.1.0.RELEASE-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/antlr/antlr/2.7.7/jar/83cd2cd674a217ade95a4bb83a8a14f351f48bd0/antlr-2.7.7.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm/3.2/jar/9bc1511dec6adf302991ced13303e4140fdf9ab7/asm-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm-tree/3.2/jar/cd792e29c79d170c5d0bdd05adf5807cf6875c90/asm-tree-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm-commons/3.2/jar/e7a19b8c60589499e35f5d2068d09013030b8891/asm-commons-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm-util/3.2/jar/37ebfdad34d5f1f45109981465f311bbfbe82dcf/asm-util-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/asm/asm-analysis/3.2/jar/c624956db93975b7197699dcd7de6145ca7cf2c8/asm-analysis-3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="" scope="RUNTIME">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/jcl-over-slf4j/1.6.4/jar/aad8e9df65ebb68e3ba6f269e3312707f7f1065f/jcl-over-slf4j-1.6.4.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.slf4j/jcl-over-slf4j/1.6.4/source/ab90d9b9f6bcc8441bd28078153ff5bdf45a95d4/jcl-over-slf4j-1.6.4-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="" scope="RUNTIME">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/ch.qos.logback/logback-classic/0.9.30/jar/3dc754111cfa4cb622a973cd8244378a4bf56612/logback-classic-0.9.30.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/ch.qos.logback/logback-classic/0.9.30/source/449fc54aa4863fbe4657d724e5d1f77ba2a2b369/logback-classic-0.9.30-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" exported="" scope="RUNTIME">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/ch.qos.logback/logback-core/0.9.30/jar/38099654319cb6c81f8390465a7a5bb8c26fd979/logback-core-0.9.30.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/ch.qos.logback/logback-core/0.9.30/source/bc928078b39f33373c41c00ab11ceab994f3d417/logback-core-0.9.30-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.spockframework/spock-core/0.5-groovy-1.8/jar/8d73c5ad61d8f73d93c2c1cb0db67d971e50d1b4/spock-core-0.5-groovy-1.8.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.spockframework/spock-core/0.5-groovy-1.8/source/42ad4b7060807d0c13da2670b94d86c289ac4db6/spock-core-0.5-groovy-1.8-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hamcrest/hamcrest-all/1.1/jar/2ddcad726ed88eab63eb6666c60970db0ac6d44e/hamcrest-all-1.1.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hamcrest/hamcrest-all/1.1/source/aba64ad8b0365a08ed4435c32e3ee2b2ff16f0a5/hamcrest-all-1.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hamcrest/hamcrest-core/1.2/jar/44d12ff84e43c7d0539131f75c92f2f88dba6549/hamcrest-core-1.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/org.hamcrest/hamcrest-core/1.2/source/e9be1c6a53b4d4e7564756e924a9fa8b1661ec6a/hamcrest-core-1.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/junit/junit-dep/4.8.2/jar/127b170317b80223b74b5a17ffbe44bd4b12e532/junit-dep-4.8.2.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES>
+ <root url="jar://$USER_HOME$/.gradle/caches/artifacts-8/filestore/junit/junit-dep/4.8.2/source/dc40b58e487595d522d4cbe2417e61ead41555c8/junit-dep-4.8.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="file://$MODULE_DIR$/../unresolved dependency - org.springframework#spring-rest;3.1.0.RELEASE" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library" scope="TEST">
+ <library>
+ <CLASSES>
+ <root url="file://$MODULE_DIR$/../unresolved dependency - org.codehaus.groovy#groovy-all;1.8.0-beta-3-SNAPSHOT" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ </component>
+</module>
+
View
72 exporter-web/src/main/webapp/WEB-INF/exporter-servlet.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:jdbc="http://www.springframework.org/schema/jdbc"
+ xmlns:jpa="http://www.springframework.org/schema/data/jpa"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
+ http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
+
+ <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
+ <property name="dataSource" ref="dataSource"/>
+ <property name="jpaVendorAdapter">
+ <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
+ <property name="generateDdl" value="true"/>
+ <property name="database" value="HSQL"/>
+ </bean>
+ </property>
+ <property name="persistenceUnitName" value="jpa.sample"/>
+ </bean>
+
+ <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
+ <property name="entityManagerFactory" ref="entityManagerFactory"/>
+ </bean>
+
+ <jdbc:embedded-database id="dataSource" type="HSQL"/>
+
+ <jpa:repositories base-package="org.springframework.data.services.exporter.repository"/>
+
+ <bean id="personRepositoryExporter" class="org.springframework.data.services.exporter.rest.RestExporter">
+ <property name="allowedMethods">
+ <list>
+ <value type="org.springframework.http.HttpMethod">GET</value>
+ <value type="org.springframework.http.HttpMethod">POST</value>
+ <value type="org.springframework.http.HttpMethod">PUT</value>
+ </list>
+ </property>
+ <property name="baseUrl" value="/spring-data-services-exporter"/>
+ <property name="repository" ref="personRepository"/>
+ </bean>
+ <bean id="profileRepositoryExporter" class="org.springframework.data.services.exporter.rest.RestExporter">
+ <property name="allowedMethods">
+ <list>
+ <value type="org.springframework.http.HttpMethod">GET</value>
+ </list>
+ </property>
+ <property name="baseUrl" value="/spring-data-services-exporter"/>
+ <property name="repository" ref="profileRepository"/>
+ </bean>
+
+ <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
+ <property name="mediaTypes">
+ <map>
+ <entry key="json" value="application/json"/>
+ <!--
+ <entry key="atom" value="application/atom+xml"/>
+ <entry key="xml" value="application/xml"/>
+ -->
+ </map>
+ </property>
+ <property name="defaultContentType" value="application/json"/>
+ <property name="defaultViews">
+ <list>
+ <bean id="json" class="org.springframework.data.services.exporter.rest.JsonView"/>
+ </list>
+ </property>
+ </bean>
+
+ <context:component-scan base-package="org.springframework.data.services.exporter.rest"/>
+
+</beans>
View
0  ...services-exporter/src/main/webapp/WEB-INF/web.xml → exporter-web/src/main/webapp/WEB-INF/web.xml
File renamed without changes
View
0  ...orter/src/main/resources/META-INF/persistence.xml → ...r-web/src/test/resources/META-INF/persistence.xml
File renamed without changes
View
18 exporter-web/src/test/resources/logback.xml
@@ -0,0 +1,18 @@
+<configuration>
+
+ <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+ </pattern>
+ </encoder>
+ </appender>
+
+ <logger name="org.springframework.data.services" level="DEBUG"/>
+ <logger name="org.springframework" level="INFO"/>
+
+ <root level="INFO">
+ <appender-ref ref="stdout"/>
+ </root>
+
+</configuration>
View
0  spring-data-services-exporter/gradle.properties → gradle.properties
File renamed without changes
View
BIN  gradle/wrapper/gradle-wrapper.jar
Binary file not shown
View
6 gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Tue Jan 17 09:19:34 CST 2012
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://repo.gradle.org/gradle/distributions-snapshots/gradle-1.0-milestone-8-20120117033539+0100-bin.zip
View
164 gradlew
@@ -0,0 +1,164 @@
+#!/bin/bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/"
+APP_HOME="`pwd -P`"
+cd "$SAVED"
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ JAVA_OPTS="$JAVA_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
View
90 gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
View
2  settings.gradle
@@ -0,0 +1,2 @@
+include "exporter-core",
+ "exporter-web"
View
4 spring-data-services-exporter/.gitignore
@@ -1,4 +0,0 @@
-.DS_Store
-.gradle
-build/
-*.i*
View
27 spring-data-services-exporter/1.load_data.txt
@@ -1,27 +0,0 @@
-POST /spring-data-services-exporter/person HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Content-Length: 46
-
-{
- "firstName": "John",
- "lastName": "Doe"
-}
-POST /spring-data-services-exporter/person HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Content-Length: 46
-
-{
- "firstName": "Jane",
- "lastName": "Doe"
-}
-POST /spring-data-services-exporter/person HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Content-Length: 46
-
-{
- "firstName": "June",
- "lastName": "Doe"
-}
View
4 spring-data-services-exporter/2.list_data.txt
@@ -1,4 +0,0 @@
-GET /spring-data-services-exporter/person HTTP/1.1
-Host: localhost:8080
-Accept: application/json
-
View
14 spring-data-services-exporter/3.update_data.txt
@@ -1,14 +0,0 @@
-PUT /spring-data-services-exporter/person/2 HTTP/1.1
-Host: localhost:8080
-Content-Type: application/json
-Content-Length: 56
-
-{
- "id": 2,
- "firstName": "Bob",
- "lastName": "Doe"
-}
-GET /spring-data-services-exporter/person/2 HTTP/1.1
-Host: localhost:8080
-Accept: application/json
-
View
105 spring-data-services-exporter/build.gradle
@@ -1,105 +0,0 @@
-// used for artifact names, building doc upload urls, etc.
-description = "Spring Data Services Exporter"
-abbreviation = "DATASVCSX"
-
-project.sourceCompatibility = 6
-project.targetCompatibility = 6
-
-apply plugin: "base"
-
-configurations.all {
- exclude group: "commons-logging"
- exclude module: "slf4j-log4j12"
- exclude module: "groovy-all", version: "1.8.0-beta-3-SNAPSHOT"
-}
-
-allprojects {
- group = "org.springframework.data"
- version = "$svcsExporterVersion"
-
- releaseBuild = version.endsWith("RELEASE")
- snapshotBuild = version.endsWith("SNAPSHOT")
-
- repositories {
- mavenLocal()
- mavenCentral(artifactUrls: [
- "http://maven.springframework.org/release",
- "http://maven.springframework.org/milestone",
- //"http://repository.jboss.org/maven2/",
- //"http://download.java.net/maven/2/"
- ])
- }
-
-}
-
-apply plugin: "groovy"
-apply plugin: "java"
-apply plugin: "idea"
-apply plugin: "war"
-apply plugin: "jetty"
-
-[compileJava, compileTestJava]*.options*.compilerArgs = ["-Xlint:-serial", "-Xlint:-unchecked"]
-
-dependencies {
- groovy "org.codehaus.groovy:groovy:$groovyVersion"
-
- // Logging
- compile "org.slf4j:slf4j-api:$slf4jVersion"
- runtime "org.slf4j:jcl-over-slf4j:$slf4jVersion"
- runtime "ch.qos.logback:logback-classic:$logbackVersion"
-
- // Jackson JSON
- compile "org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion"
-
- // ROME RSS
- compile "org.rometools:rome-modules:1.0"
-
- // APIS
- compile "javax.servlet:servlet-api:2.5"
-
- // Spring
- compile "org.springframework:spring-beans:$springVersion"
- compile "org.springframework:spring-context:$springVersion"
- compile "org.springframework:spring-core:$springVersion"
- compile "org.springframework:spring-oxm:$springVersion"
- compile "org.springframework:spring-tx:$springVersion"
- compile "org.springframework:spring-web:$springVersion"
- compile "org.springframework:spring-webmvc:$springVersion"
-
- // JPA
- compile "org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final"
- compile "org.hibernate:hibernate-entitymanager:$hibernateVersion"
-
- // H2
- compile "org.hsqldb:hsqldb:1.8.0.10"
-
- // Spring Data
- compile "org.springframework.data:spring-data-jpa:$sdJpaVersion"
- compile "org.springframework.data:spring-data-mongodb:$sdMongoVersion"
- runtime "org.mongodb:mongo-java-driver:$mongoDriverVersion"
-
- // Testing
- testCompile "org.spockframework:spock-core:$spockVersion"
- testCompile "org.hamcrest:hamcrest-all:1.1"
- testCompile "org.springframework:spring-rest:$springVersion"
- testRuntime "org.springframework:spring-context-support:$springVersion"
-
-}
-
-javaprojects = rootProject
-
-task wrapper(type: Wrapper) { gradleVersion = "1.0-milestone-6" }
-
-task copyDependencies << {
- copy {
- from configurations.runtime
- into "lib"
- }
-}
-
-idea {
- project.ipr.withXml { provider ->
- provider.node.component.find { it.@name == 'VcsDirectoryMappings' }.mapping.@vcs = 'Git'
- }
- module.jdkName = "OpenJDK 1.7"
-}
View
10 ...vices-exporter/src/main/java/org/springframework/data/services/exporter/repository/PersonRepository.java
@@ -1,10 +0,0 @@
-package org.springframework.data.services.exporter.repository;
-
-import org.springframework.data.repository.CrudRepository;
-import org.springframework.data.services.exporter.test.Person;
-
-/**
- * @author Jon Brisbin <jon@jbrisbin.com>
- */
-public interface PersonRepository extends CrudRepository<Person, Long> {
-}
View
10 ...ices-exporter/src/main/java/org/springframework/data/services/exporter/repository/ProfileRepository.java
@@ -1,10 +0,0 @@
-package org.springframework.data.services.exporter.repository;
-
-import org.springframework.data.repository.CrudRepository;
-import org.springframework.data.services.exporter.test.Profile;
-
-/**
- * @author Jon Brisbin <jon@jbrisbin.com>
- */
-public interface ProfileRepository extends CrudRepository<Profile, Long> {
-}
View
61 spring-data-services-exporter/src/main/java/org/springframework/data/services/exporter/rest/JsonView.java
@@ -1,61 +0,0 @@
-package org.springframework.data.services.exporter.rest;
-
-import java.util.List;
-import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.codehaus.jackson.map.ObjectMapper;
-import org.hibernate.LazyInitializationException;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.web.servlet.view.AbstractView;
-
-/**
- * @author Jon Brisbin <jon@jbrisbin.com>
- */
-public class JsonView extends AbstractView {
-
- private ObjectMapper mapper = new ObjectMapper();
-
- public JsonView() {
- setContentType(MediaType.APPLICATION_JSON.toString());
- }
-
- @Override
- protected void renderMergedOutputModel(Map<String, Object> model,
- HttpServletRequest request,
- HttpServletResponse response) throws Exception {
- HttpStatus status = (HttpStatus) model.get("status");
- if (null != status) {
- response.setStatus(status.value());
- }
-
- HttpHeaders headers = (HttpHeaders) model.get("headers");
- if (null != headers) {
- for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
- if (entry.getValue().size() > 1) {
- for (String val : entry.getValue()) {
- response.addHeader(entry.getKey(), val);
- }
- } else {
- response.setHeader(entry.getKey(), entry.getValue().get(0));
- }
- }
- }
-
- Object body = model.get("body");
- Object links = model.get("links");
- if (null != body) {
- try {
- mapper.writeValue(response.getOutputStream(), body);
- } catch (LazyInitializationException e) {
- // Need to support links for these
- }
- } else if (null != links) {
- mapper.writeValue(response.getOutputStream(), links);
- }
- }
-
-}
View
32 spring-data-services-exporter/src/main/java/org/springframework/data/services/exporter/rest/Link.java
@@ -1,32 +0,0 @@
-package org.springframework.data.services.exporter.rest;
-
-/**
- * @author Jon Brisbin <jon@jbrisbin.com>
- */
-public class Link {
-
- private String rel;
- private String href;
-
- public Link(String rel, String href) {
- this.rel = rel;
- this.href = href;
- }
-
- public String getRel() {
- return rel;
- }
-
- public void setRel(String rel) {
- this.rel = rel;
- }
-
- public String getHref() {
- return href;
- }
-
- public void setHref(String href) {
- this.href = href;
- }
-
-}
View
116 ...g-data-services-exporter/src/main/java/org/springframework/data/services/exporter/rest/RestExporter.java
@@ -1,116 +0,0 @@
-package org.springframework.data.services.exporter.rest;
-
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.List;
-
-import org.springframework.aop.support.AopUtils;
-import org.springframework.aop.target.SingletonTargetSource;
-import org.springframework.data.jpa.repository.support.JpaEntityInformation;
-import org.springframework.data.repository.CrudRepository;
-import org.springframework.data.repository.core.EntityInformation;
-import org.springframework.data.repository.core.support.DefaultRepositoryMetadata;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpRequest;
-import org.springframework.util.ReflectionUtils;
-import org.springframework.util.StringUtils;
-import org.springframework.web.util.UriComponentsBuilder;
-
-/**
- * @author Jon Brisbin <jon@jbrisbin.com>
- */
-public class RestExporter {
-
- private String baseUrl = "/";
- private String name;
- private CrudRepository repository;
- private List<HttpMethod> allowedMethods = Collections.emptyList();
- private EntityInformation entityInfo;
-
- public boolean supports(HttpRequest request) {
- if (!allowedMethods.contains(request.getMethod())) {
- return false;
- }
- UriComponentsBuilder uriBuilder = UriComponentsBuilder.newInstance();
- if (!"/".equals(baseUrl)) {
- uriBuilder.path(baseUrl);
- }
- String uri = uriBuilder.
- pathSegment(name).
- build().
- toUriString();
-
- return (request.getURI().getPath().startsWith(uri));
- }
-
- public Class<?> targetType() {
- return entityInfo.getJavaType();
- }
-
- @SuppressWarnings({"unchecked"})
- public Class<? extends Serializable> targetIdType() {
- return entityInfo.getIdType();
- }
-
- public String getBaseUrl() {
- return baseUrl;
- }
-
- public RestExporter setBaseUrl(String baseUrl) {
- this.baseUrl = baseUrl;
- return this;
- }
-
- public String getName() {
- return name;
- }
-
- public RestExporter setName(String name) {
- this.name = name;
- return this;
- }
-
- public EntityInformation getEntityInfo() {
- return entityInfo;
- }
-
- public RestExporter setEntityInfo(EntityInformation entityInfo) {
- this.entityInfo = entityInfo;
- return this;
- }
-
- public CrudRepository getRepository() {
- return repository;
- }
-
- public RestExporter setRepository(CrudRepository repository) {
- this.repository = repository;
- DefaultRepositoryMetadata repoInfo = new DefaultRepositoryMetadata(repository.getClass());
- Class<?> domainClass = repoInfo.getDomainClass();
- Class<?> repoClass = AopUtils.getTargetClass(repository);
- Field infoField = ReflectionUtils.findField(repoClass, "entityInformation");
- ReflectionUtils.makeAccessible(infoField);
- Method m = ReflectionUtils.findMethod(repository.getClass(), "getTargetSource");
- ReflectionUtils.makeAccessible(m);
- try {
- SingletonTargetSource targetRepo = (SingletonTargetSource) m.invoke(repository);
- entityInfo = (JpaEntityInformation) infoField.get(targetRepo.getTarget());
- name = StringUtils.uncapitalize(domainClass.getSimpleName().replaceAll("Repository", ""));
- } catch (Throwable t) {
- throw new IllegalStateException(t);
- }
- return this;
- }
-
- public List<HttpMethod> getAllowedMethods() {
- return allowedMethods;
- }
-
- public RestExporter setAllowedMethods(List<HttpMethod> allowedMethods) {
- this.allowedMethods = allowedMethods;
- return this;
- }
-
-}
View
272 ...vices-exporter/src/main/java/org/springframework/data/services/exporter/rest/RestExporterController.java
@@ -1,272 +0,0 @@
-package org.springframework.data.services.exporter.rest;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.convert.support.ConfigurableConversionService;
-import org.springframework.core.convert.support.DefaultConversionService;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpInputMessage;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpRequest;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.converter.ByteArrayHttpMessageConverter;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.StringHttpMessageConverter;
-import org.springframework.http.converter.feed.AtomFeedHttpMessageConverter;
-import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter;
-import org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter;
-import org.springframework.http.server.ServletServerHttpRequest;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.util.ClassUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.util.UriComponentsBuilder;
-
-/**
- * @author Jon Brisbin <jon@jbrisbin.com>
- */
-@Controller
-public class RestExporterController {
-
- private final Logger log = LoggerFactory.getLogger(getClass());
-
- @Autowired
- private List<RestExporter> exporters = Collections.emptyList();
- @Autowired(required = false)
- private List<HttpMessageConverter> messageConverters = new ArrayList<HttpMessageConverter>();
- @Autowired(required = false)
- private ConfigurableConversionService conversionService = new DefaultConversionService();
-
- {
- messageConverters.add(new MappingJacksonHttpMessageConverter());
- messageConverters.add(new Jaxb2RootElementHttpMessageConverter());
- messageConverters.add(new AtomFeedHttpMessageConverter());
- messageConverters.add(new StringHttpMessageConverter());
- messageConverters.add(new ByteArrayHttpMessageConverter());
- }
-
- public List<RestExporter> getExporters() {
- return exporters;
- }
-
- public RestExporterController setExporters(List<RestExporter> exporters) {
- this.exporters = exporters;
- return this;
- }
-
- public List<HttpMessageConverter> getMessageConverters() {
- return messageConverters;
- }
-
- public RestExporterController setMessageConverters(List<HttpMessageConverter> messageConverters) {
- this.messageConverters = messageConverters;
- return this;
- }
-
- public ConfigurableConversionService getConversionService() {
- return conversionService;
- }
-
- public RestExporterController setConversionService(ConfigurableConversionService conversionService) {
- this.conversionService = conversionService;
- return this;
- }
-
- @SuppressWarnings({"unchecked"})
- @RequestMapping(value = "/**", method = RequestMethod.GET)
- public void get(HttpServletRequest servletRequest, Model model) {
- HttpRequest request = new ServletServerHttpRequest(servletRequest);
-
- for (RestExporter exporter : exporters) {
- if (exporter.supports(request)) {
- UriComponentsBuilder uriBuilder = UriComponentsBuilder.newInstance().
- scheme(request.getURI().getScheme()).
- host(request.getHeaders().getFirst("Host")).
- path(exporter.getBaseUrl());
- String uri = servletRequest.getRequestURI();
- List<String> uriParts = parseUrl(exporter.getBaseUrl(), uri);
- if (uriParts.size() == 1) {
- // GET for all entities
- String name = uriParts.get(0);
- uriBuilder.pathSegment(name);
- Iterable entities = exporter.getRepository().findAll();
- List<Link> links = new ArrayList<Link>();
- if (null != entities) {
- String urlSoFar = uriBuilder.build().toUriString();
- Iterator iter = entities.iterator();
- while (iter.hasNext()) {
- Object o = iter.next();
- Object id = exporter.getEntityInfo().getId(o);
- String sid = conversionService.convert(id, String.class);
- String location = UriComponentsBuilder.fromHttpUrl(urlSoFar).pathSegment(sid).build().toUriString();
- links.add(new Link("self", location));
- }
- }
- Map linksObj = new HashMap();
- linksObj.put("links", links);
- model.addAttribute("links", linksObj);
- return;
- } else if (uriParts.size() == 2) {
- // GET for a specific entity
- String id = uriParts.get(1);
-
- Object oid = (
- ClassUtils.isAssignable(exporter.targetIdType(), Serializable.class) ?
- id :
- conversionService.convert(id, exporter.targetIdType())
- );
- Object domainObj = exporter.getRepository().findOne((Serializable) oid);
- if (null != domainObj) {
- model.addAttribute("body", domainObj);
- return;
- }
- }
- }
- }
-
- addBaseLinks(request, model);
- }
-
- @SuppressWarnings({"unchecked"})
- @RequestMapping(value = "/**", method = {RequestMethod.POST, RequestMethod.PUT})
- public void post(HttpServletRequest servletRequest, final HttpEntity<byte[]> entity, Model model) {
- HttpRequest request = new ServletServerHttpRequest(servletRequest);
-
- for (RestExporter exporter : exporters) {
- if (exporter.supports(request)) {
- UriComponentsBuilder uriBuilder = UriComponentsBuilder.newInstance().
- scheme(request.getURI().getScheme()).
- host(request.getHeaders().getFirst("Host")).
- path(exporter.getBaseUrl());
- String uri = servletRequest.getRequestURI();
- List<String> uriParts = parseUrl(exporter.getBaseUrl(), uri);
- uriBuilder.pathSegment(uriParts.get(0));
-
- Class<?> targetType = exporter.targetType();
- for (HttpMessageConverter converter : messageConverters) {
- if (converter.canRead(targetType, request.getHeaders().getContentType())) {
- try {
- Object o = converter.read(targetType, new HttpInputMessage() {
- @Override public InputStream getBody() throws IOException {
- return new ByteArrayInputStream(entity.getBody());
- }
-
- @Override public HttpHeaders getHeaders() {
- return entity.getHeaders();
- }
- });
- Object domainObj = exporter.getRepository().save(o);
- Object id = exporter.getEntityInfo().getId(domainObj);
- String sid = conversionService.convert(id, String.class);
- uriBuilder.pathSegment(sid);
-
- String location = uriBuilder.build().toUriString();
- if (request.getMethod().equals(HttpMethod.POST)) {
- HttpHeaders headers = new HttpHeaders();
- headers.set("Location", location);
- model.addAttribute("status", HttpStatus.CREATED);
- model.addAttribute("headers", headers);
- } else {
- model.addAttribute("status", HttpStatus.NO_CONTENT);
- }
- return;
- } catch (IOException e) {
- log.error(e.getMessage(), e);
- model.addAttribute("status", HttpStatus.INTERNAL_SERVER_ERROR);
- model.addAttribute("body", e.getMessage());
- }
- }
- }
- }
- }
-
- addBaseLinks(request, model);
- }
-
- @SuppressWarnings({"unchecked"})
- @RequestMapping(value = "/**", method = RequestMethod.DELETE)
- public void delete(HttpServletRequest servletRequest, Model model) {
- HttpRequest request = new ServletServerHttpRequest(servletRequest);
-
- for (RestExporter exporter : exporters) {
- if (exporter.supports(request)) {
- UriComponentsBuilder uriBuilder = UriComponentsBuilder.newInstance().
- scheme(request.getURI().getScheme()).
- host(request.getHeaders().getFirst("Host")).
- path(exporter.getBaseUrl());
- String uri = servletRequest.getRequestURI();
- List<String> uriParts = parseUrl(exporter.getBaseUrl(), uri);
- if (uriParts.size() == 1) {
- // DELETE for all entities
- String name = uriParts.get(0);
- uriBuilder.pathSegment(name);
- Iterable entities = exporter.getRepository().findAll();
- exporter.getRepository().delete(entities);
- model.addAttribute("status", HttpStatus.NO_CONTENT);
- return;
- } else if (uriParts.size() == 2) {
- // DELETE for a specific entity
- String id = uriParts.get(1);
-
- Object oid = (
- ClassUtils.isAssignable(exporter.targetIdType(), Serializable.class) ?
- id :
- conversionService.convert(id, exporter.targetIdType())
- );
- exporter.getRepository().delete(oid);
- model.addAttribute("status", HttpStatus.NO_CONTENT);
- return;
- }
- }
- }
-
- addBaseLinks(request, model);
- }
-
- @SuppressWarnings({"unchecked"})
- private void addBaseLinks(HttpRequest request, Model model) {
- List<Link> links = new ArrayList<Link>();
- for (RestExporter exp : exporters) {
- String location = UriComponentsBuilder.newInstance().
- scheme(request.getURI().getScheme()).
- host(request.getHeaders().getFirst("Host")).
- path(exp.getBaseUrl()).
- pathSegment(exp.getName()).
- build().
- toUriString();
- links.add(new Link(exp.getName(), location));
- }
- Map linksObj = new HashMap();
- linksObj.put("links", links);
- model.addAttribute("status", HttpStatus.OK);
- model.addAttribute("links", linksObj);
- }
-
- private List<String> parseUrl(String baseUri, String uri) {
- String resourceUri = uri.replace(baseUri, "");
- String[] parts = resourceUri.split("/");
- List<String> partsl = new ArrayList<String>();
- for (String part : parts) {
- if (!"".equals(part.trim())) {
- partsl.add(part);
- }
- }
- return partsl;
- }
-
-}
View
49 spring-data-services-exporter/src/main/java/org/springframework/data/services/exporter/test/Person.java
@@ -1,49 +0,0 @@
-package org.springframework.data.services.exporter.test;
-
-import java.util.List;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-
-/**
- * @author Jon Brisbin <jon@jbrisbin.com>
- */
-@Entity