Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix generate.eclipse.project task #9

Closed
wants to merge 324 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
324 commits
Select commit Hold shift + click to select a range
8215656
Just some light variable renaming
Apr 20, 2011
3a047b2
Added some new ENEMY_OF relationships between species to make that mo…
Apr 20, 2011
3f7ba73
Added a new exercise to demonstrate retrieving named indexes from the…
Apr 20, 2011
ee3092d
Just a couple of tweaks to the koan 3 and 4.
Apr 21, 2011
4a1823a
Added the package name details to the new and old traverser slides
Apr 21, 2011
71e50f2
Removed an unused import.
Apr 26, 2011
fee129e
Completed a simple set of examples for CRUDing indexes.
Apr 26, 2011
45f8190
And now removed unused imports. Need to be tidier...
Apr 26, 2011
ab4c0ff
Removed unused import
iansrobinson Apr 26, 2011
c039170
Added a closing slide, and a little blurb on starting neo4j server wi…
Apr 26, 2011
5786167
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
Apr 27, 2011
dddd632
Removed a duplicate koan slide
Apr 27, 2011
bf7fb00
Refactored some of the more elaborate assertions into proper matchers…
Apr 27, 2011
e8f59dc
Revert "Removed unused import"
iansrobinson Apr 27, 2011
5e28df7
Added monster slide
iansrobinson Apr 27, 2011
6b16149
Merge branch 'master' of https://github.com/jimwebber/neo4j-tutorial
iansrobinson Apr 27, 2011
67faa54
Added Spring Data Graph dependencies.
iansrobinson Apr 27, 2011
5a5daaf
Revert "Added monster slide"
iansrobinson Apr 27, 2011
0147d38
Added monster slide
iansrobinson Apr 27, 2011
3155531
iMerge branch 'master' of github.com:jimwebber/neo4j-tutorial
Apr 27, 2011
2c2a8a6
Adding newly refactored matchers
Apr 27, 2011
54a913c
Removed unused imports.
iansrobinson Apr 27, 2011
2198d6c
Added monster slide.
iansrobinson Apr 27, 2011
b6e7d01
Added new matcher for matching only specific species.
iansrobinson Apr 27, 2011
d6ce154
Renamed the Koans so that their numbering scheme does not upset the
Apr 27, 2011
dde1491
Added a guard clause so that the number of matched arguments has to be
Apr 28, 2011
9ae40b5
Ditched some superflous code that counted the number of index hits,
Apr 28, 2011
24e45ad
Production code now compiled with AspectJ compiler.
iansrobinson Apr 28, 2011
ca89a42
Merge branch 'master' of https://github.com/jimwebber/neo4j-tutorial
iansrobinson Apr 28, 2011
cb89e30
Started adding some Spring Data Graph examples.
iansrobinson Apr 28, 2011
8f14baa
Added some slides on what we didn't cover in the tutorial so that att…
Apr 28, 2011
ca4cf26
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
Apr 28, 2011
53f38db
Corrected a numbering mistake in the slide deck.
May 1, 2011
00bd6ea
Added the simplest Koan that uses the simple traversal framework - se…
May 1, 2011
2fc8114
Minor update.
May 1, 2011
ff0589a
Added missing data to the JSON data files.
May 2, 2011
ef29f6f
Added basic season 2 data to the episodes. Refactored each season int…
May 2, 2011
8ae99a4
Refactored the fact method so that it's smaller and uses better named…
May 2, 2011
aadefe1
Fixing up data-centric tests after expanding the data set
May 2, 2011
1cc0d11
Fixing up data-centric tests after expanding the data set
May 2, 2011
a984167
Slowly adding the entire set of episodes into the dataset
May 3, 2011
83d9413
Brought the data set up to date with the latest Doctor Who episodes. …
May 3, 2011
a921b57
Made the tests pass after the marathon data entry session.
May 3, 2011
4a71751
Removed some non-static bindings to newly static fields
May 3, 2011
6cb09bb
Added a simple count-the-regenerations koan for the core API
May 3, 2011
45f3691
Chnaged the snippet start to cover the index work we expect students …
May 3, 2011
d870f1f
Added a more involved core API traversal, to discover the episodes wh…
May 3, 2011
8ec817f
Added a trickier traversal problem using the simple traverser API. In…
May 3, 2011
16f6e16
Split out the old and new traverser APIs into separate koans to make …
May 3, 2011
d1cebf2
Made the universe object (and its underlying database) static for eac…
May 3, 2011
30f475e
Ported the characters to the new fluent interface syntax and started …
May 3, 2011
8971804
fixing up simpler koans that used to use different indexes to just us…
May 3, 2011
724cb41
Completely removed the JSON-based ETL stuff. It now uses a fluent int…
May 4, 2011
3b08155
Formatted the code and removed a bunch of dead commented out code
May 4, 2011
d680382
Just saved the ppt deck
May 4, 2011
0bba47c
Allowed characters to belong to more than one species, to account for…
May 4, 2011
8c68213
Added an example using the new traversal API that finds the first doctor
May 4, 2011
2646c17
Finished up koan 6 with two really simple traversals
May 4, 2011
cf20afd
Fixed a test that failed to take into account that Miss Hartigan is h…
May 4, 2011
9309241
Removing unused imports
May 4, 2011
f61be78
Added some notes to the new traverser API slide
May 4, 2011
c5d1c45
Tweaked koan 6 description and added the skeleton for koan 7
May 4, 2011
239e3b1
Made the error message for failures more descriptive
May 4, 2011
1ff302a
Added some indexing for episodes and characters.
May 4, 2011
60ba628
Added a test for number of master regenerations using path length - m…
May 4, 2011
df841ef
Tweaked the path length in the assertion because it's not the number …
May 4, 2011
1ba839d
Just tidying up the assertions for clarity
May 4, 2011
303d032
Started an explanation of path operations in the deck.
May 5, 2011
db07531
Added preamble for graph matching in the deck
May 5, 2011
469559a
Tidying up an assertion
May 5, 2011
d267d63
Tidying up unused imports
May 5, 2011
be2ae8e
Added the graph matching jar and matching koan.
May 5, 2011
a678d99
Added graph-matching as an ivy dependency
May 5, 2011
8dad61b
Fixed a bug that enemies and enemy species found in episodes didn't
May 6, 2011
f7706a3
Updated the builders to prevent (silent) duplicate relationships bein…
May 6, 2011
9acb940
Fixed the tests after the last push.
May 6, 2011
36ae17a
Added shell as a dependency
May 7, 2011
ea660ba
Minor refactoring for clarity in the Koans.
May 7, 2011
1435f69
Added the Editor as an enemy in the Long Game
May 7, 2011
2515b63
Completed Koan 8, including the slides.
May 7, 2011
7c37bc3
Just mucking around with the Doctor Who Graphics on the slide deck
May 7, 2011
d7679d1
Fixed a bug in the query index slide example.
May 7, 2011
fbd90ce
Added Nixon and Canton to the episodes as Allies of the Doctor. Had t…
May 7, 2011
6131d59
Added some performance data into the slide deck
May 7, 2011
677edfe
Adding a link to the student-ready koan in the slides
May 7, 2011
99539df
added the release script into gitignore
jimwebber May 7, 2011
1071946
Tweaking some of the slides on NOSQL.
jimwebber May 8, 2011
089ee85
Deleted SpeciesRepository - we're not currently doing SDG, and this f…
iansrobinson May 8, 2011
2115fef
Merge branch 'master' of https://github.com/jimwebber/neo4j-tutorial
iansrobinson May 8, 2011
04b3f97
Modified shell startup scrips by removing jar version numbers (as per…
iansrobinson May 8, 2011
84ea5f9
Updated Richard Hurdnall's history
iansrobinson May 8, 2011
b545d8a
Just powerpoint pointlessly updating the last modified status on the …
jimwebber May 8, 2011
c530c90
Updating the roadmap
jimwebber May 8, 2011
4e530b9
Corrected spelling mistake
iansrobinson May 9, 2011
2819504
Just a save from PPT/eclipse.
jimwebber May 9, 2011
8cda2ee
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
jimwebber May 9, 2011
53c0a07
Removed extensions from jars in neo shell scripts
iansrobinson May 10, 2011
ce93c24
Changed a mispelling of Tardis
jimwebber May 10, 2011
ad9dfe8
Fixed a typo in episodes thanks to Michael Nygard.
jimwebber May 10, 2011
f113b86
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
jimwebber May 10, 2011
5be2a6d
Made sure the koans all compile even with the missing snippets
jimwebber May 10, 2011
7807bf1
Removing an explicit delete from the index
jimwebber May 10, 2011
6d0a8ad
Fixed a typo spotted by Michael Nygard
jimwebber May 10, 2011
d55b448
Added a simple release script
jimwebber May 10, 2011
2043f77
Updated the 3rd koan so that the index delete stuff is better documented
jimwebber May 11, 2011
908d6b6
Added an explanation of conventions used in the DW graph to the slide…
jimwebber May 11, 2011
e6a5c7f
Added a slide on the DoctorWhoUniverse helpers to the deck in Koan 3 …
jimwebber May 11, 2011
3499871
Added a release script, which shoudl probably be in Ant. Oh well.
jimwebber May 11, 2011
f3643bb
Added conference dates to the readme
jimwebber May 11, 2011
f58cf3b
Added conference dates to the readme
jimwebber May 11, 2011
7770dd2
Added a check for null before shutting down the DB
jimwebber May 13, 2011
fc33786
Split the performance slides out into 3 slides so that the numbers ca…
jimwebber May 21, 2011
7ac0589
Corrected rmrel shell command spelling
iansrobinson Jun 1, 2011
78e050e
Started Koan 9 - REST API
iansrobinson Jun 2, 2011
e17f608
Making the tests pass!
jimwebber Jun 2, 2011
6b47d0d
Merge branch 'refs/heads/master' of git@github.com:jimwebber/neo4j-tu…
jimwebber Jun 2, 2011
fda567e
Stopping and starting server
iansrobinson Jun 2, 2011
e760c64
Merge branch 'master' into rest-koan
iansrobinson Jun 2, 2011
b4099dc
Starting to refactor into Embedded and Server Doctor Who universes
iansrobinson Jun 2, 2011
4d115c3
Refactored to use EmbeddedDoctorWhoUniverse
iansrobinson Jun 2, 2011
2725838
Refactored to use EmbeddedDoctorWhoUniverse
iansrobinson Jun 2, 2011
7d5d28a
Added ServerDoctorWhoUniverse
iansrobinson Jun 3, 2011
9544149
First REST test - count the enemies of the Doctor
iansrobinson Jun 3, 2011
5a01860
Removed jersey-server dependency from ivy
iansrobinson Jun 3, 2011
6ebd77e
Condensed the opening Doctor Who slides and animated the construction…
jimwebber Jun 7, 2011
6de45dc
Added REST traversal example
iansrobinson Jun 11, 2011
74a8337
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
iansrobinson Jun 11, 2011
4a1fa4e
Added slides and presenter notes to address the feedback from http://…
jimwebber Jun 13, 2011
4a38f1c
Changes to new Evaluator API code, to make it easier to read
iansrobinson Jun 15, 2011
1863eb9
Added more illustrations of data for some of the koans
iansrobinson Jun 15, 2011
149ec7d
Moved to using 1.4.M04
iansrobinson Jun 15, 2011
8d3ad22
Started testing REST batch update in Koan 9
iansrobinson Jun 16, 2011
6f1610b
Added assertions to REST API batch test in Koan 9
iansrobinson Jun 16, 2011
9ac74e4
Added better asserts to tests in Koan 9
iansrobinson Jun 17, 2011
23349a8
Added some more example slides to support Koans
iansrobinson Jun 20, 2011
af08acc
Updated Neoclipse to 1.4.M02
iansrobinson Jun 20, 2011
25ee8c8
Added history of the dalek props
iansrobinson Jun 21, 2011
09a86db
Updated listof tutorials
iansrobinson Jun 21, 2011
8d0b760
Improved dalek prop history domain model
iansrobinson Jun 22, 2011
fadcb24
Removed multiple client instantiations after learning they're really
jimwebber Jun 24, 2011
8226f19
Formatting
jimwebber Jun 24, 2011
3c3e963
Sorting out imports.
jimwebber Jun 24, 2011
f9a1a56
Formatting.
jimwebber Jun 24, 2011
a466813
Added dalek prop exercise to Koan 5 and updated presentation
iansrobinson Jun 28, 2011
2b8d989
Added dalek prop exercise to Koan 5 and updated presentation
iansrobinson Jun 28, 2011
01ae8ab
Merged format changes
iansrobinson Jun 28, 2011
95e9ce4
Corrected test names
iansrobinson Jun 28, 2011
d970dbe
Fixed non-isolatedtest issue in Koan 3
iansrobinson Jun 28, 2011
10cc32b
s/The Silents/The Silence/g
jimwebber Jun 29, 2011
5c58fcc
Changed the Day of the Moon episode number.
jimwebber Jun 29, 2011
09f4fdf
Brought us up to date with season 6.
jimwebber Jun 29, 2011
a2a705b
Fixing up the unit tests to take into account the enlarged universe.
jimwebber Jun 29, 2011
86d4e92
Removing some unecessary stuff from the ant script
jimwebber Jun 30, 2011
f02920d
Updated to 1.M05
iansrobinson Jul 4, 2011
f45d272
Moved to 1.M06 - note that server is still currently at 1.M04
iansrobinson Jul 6, 2011
6f88d92
Moved aspectj task def to narrower scope
iansrobinson Jul 6, 2011
46b2567
Starting a eclipse project generator.
jimwebber Jul 6, 2011
6252199
Merged.
jimwebber Jul 6, 2011
e6a7bb0
Added first Cypher exercise
iansrobinson Jul 6, 2011
a0a8d6d
Added another Cypher exercise
iansrobinson Jul 6, 2011
eb6773b
Added third Cypher exercise
iansrobinson Jul 6, 2011
65d1816
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
jimwebber Jul 6, 2011
474fad1
Added the ant script that generates an eclipse project
jimwebber Jul 7, 2011
f2bf8be
removed bin dir
jimwebber Jul 7, 2011
6c455f2
updating gitignore
jimwebber Jul 7, 2011
3f0718c
Applying Tobias' patch which short-circuits the matcher earlier if
jimwebber Jul 7, 2011
9750d39
Added the first auto-indexing koan as Koan04.
jimwebber Jul 7, 2011
91c930f
Rejigged the slide deck to reflect the new koan ordering
jimwebber Jul 7, 2011
d68c4c5
Refactored prop builder method name
iansrobinson Jul 8, 2011
3407cd0
Back to using 1.4M06
iansrobinson Jul 8, 2011
540b0db
Corrected some of the episode data re. the Daleks
iansrobinson Jul 8, 2011
54e5f73
Updated prop details
iansrobinson Jul 8, 2011
c2707b4
Simplified assertions in Cypher koan
iansrobinson Jul 11, 2011
b3b395e
Added some Cypher slides to the presentation
iansrobinson Jul 11, 2011
d473c8e
Started updating REST documentation in presentation
iansrobinson Jul 12, 2011
3dca994
Examples now use 1.4 GA
iansrobinson Jul 12, 2011
9841ca9
Finished the simple auto-indexing kaon plus slides
jimwebber Jul 13, 2011
de33345
Added a slide on auto index lifecycle
jimwebber Jul 13, 2011
8a32c7a
Added a note to the auto indexing slides that warns about the possibi…
jimwebber Jul 13, 2011
d32edaa
organising imports
jimwebber Jul 13, 2011
184182d
fixed typo in comment
jimwebber Jul 14, 2011
9550000
Updated the slide where we tell people to download the koans, and add…
jimwebber Jul 15, 2011
3b63eef
Added the packaged koans URI to the slide deck
jimwebber Jul 15, 2011
e7ec530
A better version of Koan5 solution
jimwebber Jul 15, 2011
b863f09
Updated episodes in which Daleks appeared to include bit-part appeara…
iansrobinson Jul 16, 2011
08e01dc
Renamed test name
iansrobinson Jul 16, 2011
c2bfe87
Removed IS_A relationship from a Dalek prop to Dalek species
iansrobinson Jul 16, 2011
20bdb44
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
iansrobinson Jul 16, 2011
59b064f
Removed the conference-specific opening slide
jimwebber Jul 29, 2011
804098a
Check for lib dir before bothering with ivy
jimwebber Jul 29, 2011
c8d461d
ant-eclipse is not downloaded if we find the jar already on the file
jimwebber Jul 29, 2011
83c72a9
Removed Neoclipse. We can't have this stuff hanging around in Github.
jimwebber Jul 29, 2011
2af7167
Simple Ant script to pull the latest neoclipse based on the running
jimwebber Jul 29, 2011
45e876a
Fixing a scope bug with <not> and <and>
jimwebber Jul 29, 2011
f81f8f9
Finalising the neoclipse download script
jimwebber Jul 29, 2011
6e36aea
Changed the main ant script target names to be dot separated rather t…
jimwebber Jul 29, 2011
0eca20c
Correcting a silly file naming error (s/Lesson/Koan/g) which prevented
jimwebber Jul 29, 2011
c812c2f
Fixing broken Koan answer (and in the process learned not to take
jimwebber Jul 29, 2011
1729661
trying and failing to remove the unhelpful and inappropriate and wron…
jimwebber Jul 29, 2011
9597d7d
Refactored the script to move many literals into properties.
jimwebber Jul 30, 2011
508cad2
Updated to Neo4j 1.4.1
iansrobinson Aug 8, 2011
68844aa
Assigned null to result so that koans compile
iansrobinson Aug 8, 2011
92beba7
Renamed result set so that we know we're collecting actors, not episodes
iansrobinson Aug 10, 2011
58f7d36
Pulled out ninth Doctor and Rose Tyler real nodes to make it easier t…
iansrobinson Aug 10, 2011
d1ef4a9
Pulled out more index lookups in the pattern matching example, so tha…
iansrobinson Aug 10, 2011
ed08ca4
Updated presentation with a few new pictures
iansrobinson Aug 10, 2011
b47afe2
Added order by clause, but required to use prop.prop? when identifyin…
iansrobinson Aug 10, 2011
d7614bf
Updated the places where we know the tutorial will be presented.
jimwebber Aug 11, 2011
8a2210f
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
jimwebber Aug 11, 2011
a225115
renamed some of the Dalek prop node properties
iansrobinson Aug 11, 2011
6e52422
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
iansrobinson Aug 11, 2011
17c2a73
Added comment on Uniqueness constraint in new Traversal framework
iansrobinson Aug 11, 2011
a25fa9a
Renamed DoctorWhoUniverse to DoctorWhoUniverseGenerator since it is no
jimwebber Aug 15, 2011
bc36115
Removed legacy override annotations
jimwebber Aug 18, 2011
3269d6d
Removed some duplicated slides on property graphs. Went with the new …
jimwebber Aug 25, 2011
8207040
Replaced the opening video with a smaller and shorter version
jimwebber Aug 25, 2011
87df616
s/name/prop/g in the dalek prop supply chain data
jimwebber Sep 9, 2011
79ed399
Added a medium-hard Cypher koan, to bridge between the really tricky
jimwebber Sep 9, 2011
af1d295
Consistent casing of index names (species and Species will result in …
iansrobinson Oct 11, 2011
ffe4f47
Added names to traversal descriptions that state intention.
thobe Oct 11, 2011
5338fa8
Updating readme with new contributors
jimwebber Oct 12, 2011
26d6435
Making readme look nice
jimwebber Oct 12, 2011
217d059
removing out of date tutorials
jimwebber Oct 12, 2011
6521435
Added Keynote version of the presentation material.
thobe Oct 13, 2011
23299a8
Starting to upgrade the Koans to the most recent Neo4j version
thobe Oct 13, 2011
49f5957
adding image
Oct 13, 2011
36e6a67
Edited README.markdown via GitHub
Oct 13, 2011
26975ad
Revert "Starting to upgrade the Koans to the most recent Neo4j version"
thobe Oct 13, 2011
b208a54
fixed up opening video and made sure to use the small version
jimwebber Oct 13, 2011
4e6d428
Merge branch 'master' of github.com:jimwebber/neo4j-tutorial
jimwebber Oct 13, 2011
59e296e
Changed the returnable evaluator to reflect the simplification of
jimwebber Oct 15, 2011
4c09c2e
Moved Relationship names out into a new DoctorWhoUniverse class rather
jimwebber Oct 15, 2011
3f5c403
Applied Neo4j standard formatting.
jimwebber Oct 15, 2011
332b314
Changed DoctorWhoUniverse to DoctorWhoRelationships and changed it to
jimwebber Oct 15, 2011
fc6b0cf
Formatted Cypher to use lower case clauses.
jimwebber Oct 15, 2011
c89ec97
Fixed index lookup code to always use lower case version in lieu of an
jimwebber Oct 15, 2011
acd74d8
Replaced a check for node existence with a stronger check that
jimwebber Oct 18, 2011
a7784b1
The characters index is now keyed in property "character" rather than
jimwebber Oct 18, 2011
16c5b3f
added videos into keynote presentation
jimwebber Oct 18, 2011
6ba69f0
Changed the casing of indexes to be consistently lower case as per co…
jimwebber Oct 18, 2011
fc12989
Removed annoying emphasis from pptx deck title
jimwebber Oct 18, 2011
8d78dbd
Added the doctor's regeneration years in preparation for more
jimwebber Oct 18, 2011
9230b9b
fixed bug where universe was not shut down propertly.
Oct 17, 2011
59d2ab9
finally getting classifier to work
Oct 18, 2011
aa27759
upgrading everything to work with 1.5-SNAPSHOT, phew!
Oct 19, 2011
4a504ec
tweaked the build files, and created a new task that deletes the ivy …
jimwebber Oct 28, 2011
918e0f8
Updated the paths matcher in Koan9 so that it has a better error resp…
jimwebber Oct 28, 2011
a2b5a4c
prettified the code
jimwebber Oct 28, 2011
038d928
added iml file to git ignore
jimwebber Oct 28, 2011
f8c714e
fix generate.eclipse.project task
klauern Oct 30, 2011
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
@@ -1,7 +1,14 @@
.shell_history
.classpath
.project
bin
lib
target
.ivy
.DS_Store
.ant-eclipse
.ant-eclipse
.settings
.idea
tools
neo4j-tutorial.iml
25 changes: 23 additions & 2 deletions README.markdown
@@ -1,18 +1,39 @@
Neo4j Koans
===========

![dalek](https://github.com/jimwebber/neo4j-tutorial/raw/master/presentation/Intro%20to%20Neo4j.key/image54.png)

This set of Koans will provide practical guidance for getting to grips with graph data structures and operations using the Neo4j open source graph database. It's part of a more comprehensive tutorial being developed by the [authors](#authors) which will make its way into conference tutorials soon enough.

Prerequisites
-------------

You'll need to be familiar with the Java programming language, and it'd be helpful if you understood unit testing too. All the graph database knowledge you'll needed will be developed as part of completing the Koans.

Live Sessions
-------------

This tutorial is presented at conferences around the world. If you're interested in participating in a class, then it'll be taught at:

[GOTO Amsterdam](http://gotocon.com/amsterdam-2011/training/)

[QCon San Francisco](http://qconsf.com/sf2011/presentations/show_presentation.jsp?oid=3459)

[Skillsmatter](http://skillsmatter.com/course/nosql/neo4j-tutorial)

[Yow! Australia](http://www.yowconference.com.au/index.html)

Authors <a name="authors">
-------

[Ian Robinson](http://iansrobinson.com)
[Glen Ford](http://usersource.net/), [@glen_ford](http://twitter.com/glen_ford)

[Tobias Ivarsson](http://www.thobe.org/), [@thobe](http://twitter.com/thobe)

Peter Neubauer, [@peterneubauer](http://twitter.com/peterneubauer)

[Ian Robinson](http://iansrobinson.com), [@iansrobinson](http://twitter.com/iansrobinson)

[Jim Webber](http://jimwebber.org/)
[Jim Webber](http://jimwebber.org/), [@jimwebber](http://twitter.com/jimwebber)


95 changes: 59 additions & 36 deletions build.xml
@@ -1,39 +1,44 @@
<project name="neo4j-tutorial" default="test" xmlns:ivy="antlib:org.apache.ivy.ant" basedir=".">
<project name="neo4j-tutorial" default="run.koans" xmlns:ivy="antlib:org.apache.ivy.ant" basedir=".">
<property name="settings.dir" location="settings" />
<property name="lib.dir" location="lib" />


<import file="${settings.dir}/download-neoclipse.xml" />
<import file="${settings.dir}/install-ant-eclipse.xml" />
<import file="${settings.dir}/install-ivy.xml" />
<import file="${settings.dir}/path.xml" />
<import file="${settings.dir}/test.xml" />

<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" />
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="tools/ant/ant-contrib-0.6.jar" />
<import file="${settings.dir}/test.xml" />

<target name="lib.retrieve" depends="install-ivy">
<target name="lib.retrieve" depends="install-ivy" unless="skip.ivy.download">
<mkdir dir="${lib.dir}" />
<ivy:settings file="${settings.dir}/ivysettings.xml" />
<ivy:resolve file="${settings.dir}/ivy.xml" />

<ivy:retrieve type="jar" pattern="${lib.dir}/[artifact]-[revision].[ext]" />
</target>

<target name="ivy-report" depends="lib.retrieve">
<ivy:report todir="target/reports/ivy" />
<ivy:resolve file="${settings.dir}/ivy.xml" />
<ivy:retrieve type="jar" pattern="${lib.dir}/[artifact](-[classifier]).[ext]" changing="true"/>
<ivy:retrieve type="bundle" pattern="${lib.dir}/[artifact].[ext]" changing="true"/>
</target>

<target name="lib.clean-cache">


<target name="clean.dependencies">
<delete dir="${lib.dir}" />
<delete dir="${ivy.dir}"/>
</target>

<target name="clean" description="Compile production classes">
<target name="clean" description="Removes the build directory, but not any cached ivy dependencies">
<delete dir="target" />
<delete dir="build" />
</target>

<target name="compile" description="Compile production classes" depends="lib.retrieve">
<taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties" classpath="${lib.dir}/aspectjtools.jar"/>
<mkdir dir="${main.target}" />
<javac srcdir="${main.src}" destdir="${main.target}" classpathref="path.productionlibs" target="1.6" debug="true" includeAntRuntime="false" />
<property environment="cruise" />

<iajc sourceroots="${main.src}" destDir="${main.target}" classpathref="path.libs" source="1.6">
<aspectpath>
<pathelement location="${lib.dir}/spring-aspects.jar"/>
</aspectpath>
<aspectpath>
<pathelement location="${lib.dir}/spring-data-neo4j.jar"/>
</aspectpath>
</iajc>

<tstamp>
<format property="build.timestamp" pattern="yyyy-MM-dd HH:mm:ss" />
</tstamp>
Expand All @@ -44,32 +49,50 @@
</copy>
</target>

<target name="compile-tests" description="Compile unit test classes" depends="compile">
<target name="compile.tests" description="Compile unit test classes" depends="compile">
<mkdir dir="${test.target}" />
<javac srcdir="${test.src}" destdir="${test.target}" classpathref="path.testing" debug="true" target="1.5" />
</target>

<target name="compile-functional-tests" description="Compile functional test classes" depends="compile-tests">
<mkdir dir="${functionaltest.target}" />
<javac srcdir="${functionaltest.src}" destdir="${functionaltest.target}" classpathref="path.functionaltesting" debug="true" target="1.5" />
</target>


<target name="test" depends="clean, compile, compile-tests">
<target name="test" depends="clean, compile, compile.tests">
<fileset id="unittest.source.files" dir="${test.src}">
<include name="**/*Test*.java" />
</fileset>
<run_junit_tests testclasspath="path.testing" testfileset="unittest.source.files" outputdir="${test.reports}" />
<fail if="tests.failed.or.errored" message="Build failed due to Unit test failures or errors" />
</target>

<!--
<target name="functional-test" depends="clean, compile-functional-tests">
<fileset id="functionaltest.source.files" dir="${functionaltest.src}">
<include name="**/functionaltests/*.java" />

<target name="compile.koans" description="Compile koans">
<mkdir dir="${koan.target}" />
<javac srcdir="${koan.src}" destdir="${koan.target}" classpathref="path.koan" debug="true" target="1.6" />
</target>

<target name="run.koans" depends="test, compile.koans">
<fileset id="koan.source.files" dir="${koan.src}">
<include name="**/Koan*.java" />
</fileset>
<run_junit_tests testclasspath="path.functionaltesting" testfileset="functionaltest.source.files" outputdir="${functionaltest.reports}" />
<fail if="tests.failed.or.errored" message="Build failed due to Unit test failures or errors" />
</target> -->
<run_junit_tests testclasspath="path.koan" testfileset="koan.source.files" outputdir="${koan.reports}" />
<fail if="tests.failed.or.errored" message="Build failed due to Koan failures" />

</target>

<target name="generate.eclipse.project" depends="-install.ant-eclipse, lib.retrieve">
<mkdir dir="${main.target}" />
<mkdir dir="${test.target}" />
<mkdir dir="${koan.target}" />
<eclipse mode="java">
<settings>
<jdtcore compilercompliance="6.0" />
</settings>
<project name="neo4j-tutorial"/>
<classpath>
<library pathref="path.libs" />
<source path="${main.src}" />
<source path="${test.src}" />
<source path="${koan.src}" />
<output path="${target}" />
</classpath>
</eclipse>
</target>

</project>
3 changes: 3 additions & 0 deletions presentation/.gitignore
@@ -0,0 +1,3 @@
Intro to Neo4j.key/thumbs
Intro to Neo4j.key/QuickLook

Binary file not shown.
1 change: 1 addition & 0 deletions presentation/Intro to Neo4j.key/Contents/PkgInfo
@@ -0,0 +1 @@
????????
7 changes: 7 additions & 0 deletions presentation/Intro to Neo4j.key/buildVersionHistory.plist
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>local build-Jul 1 2011</string>
</array>
</plist>
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image-1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image0.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image19.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image20.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image21.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image22.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image23.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image24.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image25.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image26.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image27.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image28.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image29.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image30.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image31.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image32.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image33.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image34.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image35.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image36.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image37.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image38.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentation/Intro to Neo4j.key/image39.png
Binary file added presentation/Intro to Neo4j.key/image40.png
Binary file added presentation/Intro to Neo4j.key/image41.png
Binary file added presentation/Intro to Neo4j.key/image45.png
Binary file added presentation/Intro to Neo4j.key/image46.png
Binary file added presentation/Intro to Neo4j.key/image47.png
Binary file added presentation/Intro to Neo4j.key/image48.png
Binary file added presentation/Intro to Neo4j.key/image49.png
Binary file added presentation/Intro to Neo4j.key/image50.png
Binary file added presentation/Intro to Neo4j.key/image51.png
Binary file added presentation/Intro to Neo4j.key/image52.png
Binary file added presentation/Intro to Neo4j.key/image53.png
Binary file added presentation/Intro to Neo4j.key/image54.png
Binary file added presentation/Intro to Neo4j.key/image55.png
Binary file added presentation/Intro to Neo4j.key/image56.png
Binary file added presentation/Intro to Neo4j.key/image57.png
Binary file added presentation/Intro to Neo4j.key/image58.png
Binary file added presentation/Intro to Neo4j.key/image59.png
Binary file added presentation/Intro to Neo4j.key/image60.png
Binary file added presentation/Intro to Neo4j.key/image61.png
Binary file added presentation/Intro to Neo4j.key/image62.png
Binary file added presentation/Intro to Neo4j.key/image63.png
Binary file added presentation/Intro to Neo4j.key/image64.png
Binary file added presentation/Intro to Neo4j.key/image67.png
Binary file added presentation/Intro to Neo4j.key/image68.png
Binary file added presentation/Intro to Neo4j.key/image69.png
Binary file added presentation/Intro to Neo4j.key/image70.png
Binary file added presentation/Intro to Neo4j.key/image71.png
Binary file added presentation/Intro to Neo4j.key/index.apxl.gz
Binary file not shown.
Binary file added presentation/Intro to Neo4j.key/neo-small.mov
Binary file not shown.
Binary file added presentation/Intro to Neo4j.key/neo-small.mp4
Binary file not shown.
Binary file added presentation/Intro to Neo4j.key/neo-small.png
98 changes: 98 additions & 0 deletions settings/download-neoclipse.xml
@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns:ivy="antlib:org.apache.ivy.ant" basedir="..">

<property name="neoclipse.version" value="1.4" />
<property name="arch" value="${sun.arch.data.model}" />
<property name="tools.dir" location="tools/" />

<property name="mac.installer" value="neoclipse-${neoclipse.version}-macosx.carbon.x86.tar.gz"/>
<property name="win.32.installer" value="neoclipse-${neoclipse.version}-win32.win32.x86.zip"/>
<property name="win.64.installer" value="neoclipse-${neoclipse.version}-win32.win32.x86_64.zip"/>
<property name="linux.32.installer" value="neoclipse-${neoclipse.version}-linux.gtk.x86.tar.gz"/>
<property name="linux.64.installer" value="neoclipse-${neoclipse.version}-linux.gtk.x86_64.tar.gz"/>

<property name="distribution.site" value="http://dist.neo4j.org/"/>

<condition property="is.mac.intel.x86">
<and>
<contains string="${os.arch}" substring="x86" />
<os family="mac" />
</and>
</condition>

<condition property="is.win.32.bit">
<and>
<equals arg1="${arch}" arg2="32" />
<os family="windows" />
</and>
</condition>

<condition property="is.win.64.bit">
<and>
<equals arg1="${arch}" arg2="64" />
<os family="windows" />
</and>
</condition>

<condition property="is.linux.32.bit">
<and>
<equals arg1="${arch}" arg2="32" />
<os family="unix" />
<not>
<os family="mac" />
</not>
</and>
</condition>

<condition property="is.linux.64.bit">
<and>
<equals arg1="${arch}" arg2="64" />
<os family="unix" />
<not>
<os family="mac" />
</not>
</and>
</condition>


<target name="-get.mac.64" if="is.mac.intel.x86">
<echo message="... found Mac OS on Intel x86"/>
<get dest="${tools.dir}/${mac.installer}" src="${distribution.site}${mac.installer}" />
</target>
<target name="-get.win.32" if="is.win.32.bit">
<echo message="... found 32-bit Windows"/>
<get dest="${tools.dir}/${win.32.installer}" src="${distribution.site}${win.32.installer}" />
</target>
<target name="-get.win.64" if="is.win.64.bit">
<echo message="... found 64-bit Windows"/>
<get dest="${tools.dir}/${win.64.installer}" src="${distribution.site}${win.64.installer}" />
</target>
<target name="-get.linux.32" if="is.linux.32.bit">
<echo message="... found 32-bit Linux"/>
<get dest="${tools.dir}/${linux.32.installer}" src="${distribution.site}${linux.32.installer}" />
</target>
<target name="-get.linux.64" if="is.linux.64.bit">
<echo message="... found 64-bit Linux"/>
<get dest="${tools.dir}/${linux.64.installer}" src="${distribution.site}${linux.64.installer}" />
</target>

<target name="-init">
<mkdir dir="${tools.dir}" />
<echo message="Determining the best Neoclipse for your platform..."/>
</target>

<target name="get.neoclipse" depends="-init, -get.mac.64, -get.win.32, -get.win.64, -get.linux.32, -get.linux.64" description="Downloads the most appropriate neoclipse version for the current platform"/>

<target name="get.all.neoclipse.versions" description="Downloads all neoclipse versions which will take a very long time.">
<get dest="${tools.dir}/${mac.installer}" src="${distribution.site}${mac.installer}" />
<get dest="${tools.dir}/${win.32.installer}" src="${distribution.site}${win.32.installer}" />
<get dest="${tools.dir}/${win.64.installer}" src="${distribution.site}${win.64.installer}" />
<get dest="${tools.dir}/${linux.32.installer}" src="${distribution.site}${linux.32.installer}" />
<get dest="${tools.dir}/${linux.64.installer}" src="${distribution.site}${linux.64.installer}" />
</target>

</project>



29 changes: 29 additions & 0 deletions settings/install-ant-eclipse.xml
@@ -0,0 +1,29 @@
<project xmlns:ivy="antlib:org.apache.ivy.ant" basedir="..">

<property name="ant-eclipse.install.version" value="1.0" />
<property name="ant-eclipse.dir" location="${basedir}/.ant-eclipse" />
<property name="ant-eclipse.jar.file" location="${ant-eclipse.dir}/lib/ant-eclipse-1.0-jvm1.2.jar" />

<target name="-ant-eclipse.jar.available">
<available property="skip.ant-eclipse.download" file="${ant-eclipse.jar.file}"/>
</target>

<target name="-download.ant-eclipse" depends="-ant-eclipse.jar.available" unless="skip.ant-eclipse.download">

<mkdir dir="${ant-eclipse.dir}" />
<get dest="${ant-eclipse.dir}/ant-eclipse-1.0.bin.tar.bz2" usetimestamp="true" src="http://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2" />
<untar compression="bzip2" src="${ant-eclipse.dir}/ant-eclipse-1.0.bin.tar.bz2" dest="${ant-eclipse.dir}" />
</target>

<target name="-install.ant-eclipse" depends="-download.ant-eclipse">
<path id="ant-eclipse.lib.path">
<fileset dir="${ant-eclipse.dir}" includes="**/*.jar" />
</path>
<taskdef name="eclipse" classname="prantl.ant.eclipse.EclipseTask" classpathref="ant-eclipse.lib.path" />
</target>

<target name="clean-ant-eclipse">
<delete dir="${ant-eclipse.dir}" />
</target>

</project>
60 changes: 34 additions & 26 deletions settings/install-ivy.xml
@@ -1,29 +1,37 @@
<project xmlns:ivy="antlib:org.apache.ivy.ant">

<property name="ivy.install.version" value="2.2.0" />
<property name="ivy.jar.dir" value="${basedir}/.ivy" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<property name="ivy.cache.dir" value="${basedir}/.ivy/cache" />

<target name="download-ivy" unless="skip.download">
<mkdir dir="${ivy.jar.dir}"/>
<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
<project xmlns:ivy="antlib:org.apache.ivy.ant" basedir="..">

<property name="ivy.install.version" value="2.2.0" />
<property name="ivy.jar.dir" location="${basedir}/.ivy" />
<property name="ivy.jar.file" location="${ivy.jar.dir}/ivy.jar" />
<property name="ivy.cache.dir" location="${basedir}/.ivy/cache" />


<target name="-create.ivy.dir">
<mkdir dir="${ivy.jar.dir}"/>
</target>

<target name="-lib.dir-available" depends="-create.ivy.dir">
<available property="skip.ivy.download" file="${lib.dir}"/>
</target>

<target name="download-ivy" depends="-lib.dir-available" unless="skip.ivy.download">
<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
dest="${ivy.jar.file}" usetimestamp="true"/>
</target>
<target name="install-ivy" depends="download-ivy">
<path id="ivy.lib.path">
<fileset dir="${ivy.jar.dir}" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
</target>
<target name="clean-ivy">
<delete dir="${ivy.jar.dir}"/>
</target>
<target name="clean-ivy-cache" depends="install-ivy">
<ivy:cleancache />
</target>
</target>

<target name="install-ivy" depends="download-ivy">
<path id="ivy.lib.path">
<fileset dir="${ivy.jar.dir}" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
</target>

<target name="clean-ivy">
<delete dir="${ivy.jar.dir}"/>
</target>

<target name="clean-ivy-cache" depends="install-ivy">
<ivy:cleancache />
</target>

</project>