diff --git a/pom.xml b/pom.xml index df6f083ff..819ff623d 100644 --- a/pom.xml +++ b/pom.xml @@ -170,6 +170,12 @@ 4.4 runtime + + javax.media + jai_core + 1.1.3 + runtime + index.xml diff --git a/src/docbkx/index.xml b/src/docbkx/index.xml index af068c04a..692811e82 100644 --- a/src/docbkx/index.xml +++ b/src/docbkx/index.xml @@ -59,5 +59,6 @@ + diff --git a/src/docbkx/introduction/get-started.xml b/src/docbkx/introduction/get-started.xml index c21a0c875..9f4abc6dc 100644 --- a/src/docbkx/introduction/get-started.xml +++ b/src/docbkx/introduction/get-started.xml @@ -4,14 +4,15 @@ Getting Started - The focus on NOSQL databases is a recent one, even if many of those stores have existed for some years now. + NOSQL databases has come into focus only recently, even if some of them have existed for a few years by now. That's why this document will not only guide you through the relevant parts of the DATAGRAPH API, but also explain some key concepts of graph databases. - After reading this document, you should be able to integrate DATAGRAPH in your own existing or new applications. + After reading this document, you should be able to integrate DATAGRAPH into your existing or future applications. If there are any issues that you don't understand or think are explained in a too complicated way, please report back any - problems or suggestions. This would also benefit future readers of this documentation. + problems or suggestions. Your input will also benefit future readers of this documentation. For details on how to get help + and provide feedback, see .
@@ -32,13 +33,13 @@ to know the Spring APIs, understanding the concepts behind them is essential. The Spring Framework documentation home page is a good starting point for - developers wanting become more familiar with Spring Framework. + developers who want to become more familiar with Spring Framework.
Knowing NOSQL and graph databases - The recent interest in NOSQL databases is mainly driven by the need for finding the best suited storage solution for data + The recent interest in NOSQL databases is mainly driven by the need to find the best suited storage solution for data structured in a specific way. It should fit the data, not the other way round. Another issue is the scalability of the - database, especially with today's fast growing user bases handling large amounts of data in a short time. There are many NOSQL databases, + database, especially with today's fast growing user bases. There are many NOSQL databases, and one should become familiar with the different concepts, advantages, and disadvantages before choosing a solution. A problem with the NOSQL databases is the different data access APIs that are provided. Spring Data aims at easing this burden by providing consistent abstractions over those APIs, leveraging SpringSource's experience and good reputation in this area. @@ -55,31 +56,7 @@ and unit test cases (if you accessed the sources via github or Maven). - The current distribution contains: - - - Hello Worlds sample - The Hello Worlds sample application is a simple console application with unit tests, that - creates some Worlds (entities / nodes) and Rocket Routes (relationships) in a Galaxy (graph) and then - reads them back and prints them out. - The unit tests demonstrate some other features of DATAGRAPH. The sample comes with a minimal config for - Maven and spring to get up and running quickly. - - - - IMDB sample - A web application that imports datasets from the Internet Movie Database (IMDB) into the graph database. It allows listings of movies with their actors and actors with their roles in different movies. It also uses graph traversal operations to calculate the Kevin Bacon number (distance to an actor that has acted with Kevin Bacon). This sample application shows the basic usage of DATAGRAPH in a more complex setting with several annotated entities and relationships as well as usage of indices and graph traversal. - - - MyRestaurant sample - Simple webapp for managing users and restaurants, with the ability to add restaurants as favorites to a user. - - - MyRestaurant-Social sample - An extended version of the MyRestaurant sample application that adds social networking functionality to it. It is possible to have friends and to add rated relationships to restaurants. The relationships and some of the properties of the entities are transparently stored in the graph database. There is also a graph traversal that provides a recommendation based on your friends' (and their friends') rating of restaurants. - - - Most of the samples are web applications that can be easily built and run using mvn jetty:run. + For more information on the samples, see .
diff --git a/src/docbkx/introduction/introduction.xml b/src/docbkx/introduction/introduction.xml index 13fe99792..5df0fa714 100644 --- a/src/docbkx/introduction/introduction.xml +++ b/src/docbkx/introduction/introduction.xml @@ -5,10 +5,10 @@ This document is the reference guide for Spring Data Graph. - It explains the underlying concepts, usage, infrastructure of the framework and semantics for the used graph database. + It explains the underlying concepts, usage, infrastructure of the framework and the semantics for the used graph database. For an introduction to graph databases or Spring, or Spring Data examples, please refer to - - this documentation refers only to Spring Data Graph and - assumes the reader is familiar with Spring concepts. - \ No newline at end of file + . This documentation refers only to Spring Data Graph and + assumes that the reader is familiar with Spring concepts.
+ diff --git a/src/docbkx/introduction/requirements.xml b/src/docbkx/introduction/requirements.xml index 2cf0c41ae..8db5706ff 100644 --- a/src/docbkx/introduction/requirements.xml +++ b/src/docbkx/introduction/requirements.xml @@ -1,15 +1,15 @@ Requirements - Spring Data Graph 1.x binaries require JDK level 6.0 and above, + The Spring Data Graph 1.x binaries requires JDK level 6.0 or higher, and Spring Framework - 3.0.x and above. + 3.0.x or higher. - In terms of graph databases, Neo4j version 1.2 and above is required. - Neo4j has a dependency on Apache Lucene for indexing. Users are encouraged to use the latest version of Neo4j + For the graph database binary, Neo4j version 1.2 or higher is required. + Neo4j has a dependency on Apache Lucene for indexing. Users are encouraged to use the latest version of Neo4j available. For building the project, Apache Maven (version 2.10 and above) is strongly recommended. - \ No newline at end of file +
diff --git a/src/docbkx/introduction/why-sd-graph.xml b/src/docbkx/introduction/why-sd-graph.xml index d097440b4..738ad196e 100644 --- a/src/docbkx/introduction/why-sd-graph.xml +++ b/src/docbkx/introduction/why-sd-graph.xml @@ -5,14 +5,15 @@ Why Spring Data Graph? NOSQL - stores provide alternative storage solutions that are more tailored to the needs of - the data structure requirements that are specific to each project than just using a relational + stores provide storage solutions that are more tailored to the specific + data storage requirements of each project than just using a relational database as a "one-size-fits-all" solution. - Graph databases provide excellent support for network data, i.e. data that easily can be structured - as connected nodes. Property graph databases like Neo4j support arbitrary numbers of named properties on both - nodes and relationships. They are highly performant when traversing large, complex datasets with + Graph databases provide excellent support for graph-like data (networks); that is data that easily can + be structured as connected nodes. + Property graph databases like Neo4j support an arbitrary number of named properties on both + nodes and relationships. Neo4j is highly performant when traversing large, complex datasets with millions of nodes and relationships, even on commodity hardware. @@ -22,15 +23,18 @@ The Spring Data Graph (or DATAGRAPH) framework makes it easy to - integrate graph databases in existing or new Spring applications by providing + integrate graph databases in existing or new Spring applications. It provides infrastructure that reduces the amount of boilerplate data access code and uses common patterns and idioms that are well known in the Spring Framework community. - Those practices are based on a simple POJO programming model that leverages annotations to add metadata and can be - integrated in any part of a Spring application, like the web or service layers. + Those practices are based on a simple POJO programming model that leverages + annotations to add metadata. It can be integrated in any part of a Spring application, + like the web or service layers. - A special use case of Spring Data Graph is the cross-store solution that can extend existing JPA data models with new parts - (properties, entities, relationships) that are stored exclusively in the graph while being transparently integrated with the JPA - entities. This enables for easy and seamless addition of new features that were not available before to JPA-based applications. + A special use case of Spring Data Graph is the cross-store solution that can extend + existing JPA data models with new, graph database backed parts (properties, entities, relationships). + These parts are stored exclusively in the graph database while being transparently + integrated with the JPA entities. This enables easy and seamless addition of new features + that have not been available to JPA-based applications previously. - \ No newline at end of file + diff --git a/src/docbkx/resources/images/helloworlds.png b/src/docbkx/resources/images/helloworlds.png new file mode 100644 index 000000000..9d517ce2b Binary files /dev/null and b/src/docbkx/resources/images/helloworlds.png differ diff --git a/src/docbkx/resources/images/imdb.png b/src/docbkx/resources/images/imdb.png new file mode 100644 index 000000000..1a8dc6c41 Binary files /dev/null and b/src/docbkx/resources/images/imdb.png differ diff --git a/src/docbkx/samples.xml b/src/docbkx/samples.xml new file mode 100644 index 000000000..e1ae74785 --- /dev/null +++ b/src/docbkx/samples.xml @@ -0,0 +1,83 @@ + + + + Samples + +
+ Introduction + + DATAGRAPH comes with a number of samples. + The source code of the samples is found on + GitHub. + The different sample projects are introduced below. + +
+ +
+ Hello Worlds sample + The Hello Worlds sample application is a simple console application with unit tests, that + creates some Worlds (entities / nodes) and Rocket Routes (relationships) in a Galaxy (graph) + and then reads them back and prints them out. + The unit tests demonstrate some other features of DATAGRAPH. The sample comes with a + minimal configuration for Maven and spring to get up and running quickly. + Executing the application creates the following graph in the Graph Database: + + + + + +
+ +
+ IMDB sample + A web application that imports datasets from the Internet Movie Database (IMDB) into + the + graph database. It allows listings of movies with their actors and actors with their roles in + different movies. It also uses graph traversal operations to calculate the Kevin Bacon number + (distance to an actor that has acted with Kevin Bacon). This sample application shows the + basic usage of DATAGRAPH in a more complex setting with several annotated entities and + relationships as well as usage of indices and graph traversal. + See the readme file for instruction on how to compile and run the application. + An excerpt of the data stored in the Graph Database after executing the application: + + + + + + +
+ + +