From fbc6c692b8d2bf50ba80d7c09ecf4697430a5e7b Mon Sep 17 00:00:00 2001 From: Jim Webber Date: Thu, 12 Jan 2012 23:25:44 -0800 Subject: [PATCH] Updated koan and slide deck to 1.6.M03 --- .../A Programmatic Introduction to Neo4j.pptx | Bin 15519442 -> 15519238 bytes settings/ivy.xml | 10 ++-- src/koan/java/org/neo4j/tutorial/Koan08b.java | 47 ++++++++++-------- ...ameAndPasswordForSalariesSecurityRule.java | 17 +------ 4 files changed, 31 insertions(+), 43 deletions(-) diff --git a/presentation/A Programmatic Introduction to Neo4j.pptx b/presentation/A Programmatic Introduction to Neo4j.pptx index 805e46a9ecfaafd614a770bd048b8dfdd61c53b9..cee30ef4a9b53b237398116c7cb132235725e39f 100644 GIT binary patch delta 23308 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 A(EtDd delta 23477 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 c{Xe)+MocV1UrbE?i=16>2Mv9DgXcg diff --git a/settings/ivy.xml b/settings/ivy.xml index 5db2ff0..5cceb69 100644 --- a/settings/ivy.xml +++ b/settings/ivy.xml @@ -2,19 +2,19 @@ - + - - - + + + - + diff --git a/src/koan/java/org/neo4j/tutorial/Koan08b.java b/src/koan/java/org/neo4j/tutorial/Koan08b.java index 978a625..0f401fd 100644 --- a/src/koan/java/org/neo4j/tutorial/Koan08b.java +++ b/src/koan/java/org/neo4j/tutorial/Koan08b.java @@ -170,29 +170,32 @@ public void shouldListTheEnemySpeciesAndCharactersForEachEpisodeWithPeterDavison // SNIPPET_END ExecutionResult result = engine.execute(cql); + + System.out.println(result.dumpToString() ); + assertThat(result.dumpToString(), containsString( - "+----------------------------------------------------------------------------------------------------------+\n" + - "| episode.episode | episode.title | species | characters |\n" + - "+----------------------------------------------------------------------------------------------------------+\n" + - "| 116 | Castrovalva | List(null) | List(Master) |\n" + - "| 118 | Kinda | List(null) | List(Mara) |\n" + - "| 119 | The Visitation | List(null) | List(Terileptils) |\n" + - "| 121 | Earthshock | List(Cyberman) | List(null) |\n" + - "| 122 | Time-Flight | List(null) | List(Master) |\n" + - "| 123 | Arc of Infinity | List(null) | List(Omega) |\n" + - "| 124 | Snakedance | List(null) | List(Mara) |\n" + - "| 125 | Mawdryn Undead | List(null, null) | List(Mawdryn, Black Guardian) |\n" + - "| 126 | Terminus | List(null) | List(Vanir) |\n" + - "| 127 | Enlightenment | List(null) | List(Black Guardian) |\n" + - "| 128 | The King's Demons | List(null) | List(Master) |\n" + - "| 129 | The Five Doctors | List(Dalek, null) | List(null, Master) |\n" + - "| 130 | Warriors of the Deep | List(Silurian, Sea Devil) | List(null, null) |\n" + - "| 131 | The Awakening | List(null) | List(Malus) |\n" + - "| 132 | Frontios | List(Tractator) | List(null) |\n" + - "| 133 | Resurrection of the Daleks | List(Dalek) | List(null) |\n" + - "| 134 | Planet of Fire | List(null) | List(Master) |\n" + - "| 135 | The Caves of Androzani | List(null) | List(Master) |\n" + - "+----------------------------------------------------------------------------------------------------------+" + "+------------------------------------------------------------------------------------------------------------+\n" + + "| episode.episode | episode.title | species | characters |\n" + + "+------------------------------------------------------------------------------------------------------------+\n" + + "| \"116\" | \"Castrovalva\" | List(null) | List(Master) |\n" + + "| \"118\" | \"Kinda\" | List(null) | List(Mara) |\n" + + "| \"119\" | \"The Visitation\" | List(null) | List(Terileptils) |\n" + + "| \"121\" | \"Earthshock\" | List(Cyberman) | List(null) |\n" + + "| \"122\" | \"Time-Flight\" | List(null) | List(Master) |\n" + + "| \"123\" | \"Arc of Infinity\" | List(null) | List(Omega) |\n" + + "| \"124\" | \"Snakedance\" | List(null) | List(Mara) |\n" + + "| \"125\" | \"Mawdryn Undead\" | List(null, null) | List(Mawdryn, Black Guardian) |\n" + + "| \"126\" | \"Terminus\" | List(null) | List(Vanir) |\n" + + "| \"127\" | \"Enlightenment\" | List(null) | List(Black Guardian) |\n" + + "| \"128\" | \"The King's Demons\" | List(null) | List(Master) |\n" + + "| \"129\" | \"The Five Doctors\" | List(Dalek, null) | List(null, Master) |\n" + + "| \"130\" | \"Warriors of the Deep\" | List(Silurian, Sea Devil) | List(null, null) |\n" + + "| \"131\" | \"The Awakening\" | List(null) | List(Malus) |\n" + + "| \"132\" | \"Frontios\" | List(Tractator) | List(null) |\n" + + "| \"133\" | \"Resurrection of the Daleks\" | List(Dalek) | List(null) |\n" + + "| \"134\" | \"Planet of Fire\" | List(null) | List(Master) |\n" + + "| \"135\" | \"The Caves of Androzani\" | List(null) | List(Master) |\n" + + "+------------------------------------------------------------------------------------------------------------+" )); final List columnNames = result.javaColumns(); diff --git a/src/koan/java/org/neo4j/tutorial/koan14/UserNameAndPasswordForSalariesSecurityRule.java b/src/koan/java/org/neo4j/tutorial/koan14/UserNameAndPasswordForSalariesSecurityRule.java index 743e7a1..0aaa29f 100644 --- a/src/koan/java/org/neo4j/tutorial/koan14/UserNameAndPasswordForSalariesSecurityRule.java +++ b/src/koan/java/org/neo4j/tutorial/koan14/UserNameAndPasswordForSalariesSecurityRule.java @@ -1,8 +1,5 @@ package org.neo4j.tutorial.koan14; -import org.neo4j.cypher.ExecutionEngine; -import org.neo4j.cypher.ExecutionResult; -import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.server.rest.security.SecurityRule; import javax.servlet.http.HttpServletRequest; @@ -10,7 +7,7 @@ public class UserNameAndPasswordForSalariesSecurityRule implements SecurityRule { @Override - public boolean isAuthorized(HttpServletRequest httpServletRequest, GraphDatabaseService graphDatabaseService) + public boolean isAuthorized(HttpServletRequest httpServletRequest) { boolean loggedIn = false; @@ -22,18 +19,6 @@ public boolean isAuthorized(HttpServletRequest httpServletRequest, GraphDatabase "X-Password")); // SNIPPET_END - ExecutionEngine engine = new ExecutionEngine(graphDatabaseService); - String cql = null; - - cql = "start char = node:characters(character = 'Rose Tyler')" - + "match (char)-[:COMES_FROM]->(planet)" - + "return planet.planet"; - - ExecutionResult result = engine.execute(cql); - String planet = (String) result.javaColumnAs("planet.planet").next(); - - System.out.println(planet); - return loggedIn; }