neo4j-core 3.0.0.alpha.1 → 3.0.0.alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 52081ded1131dccd5959a5250721490e7e19edb2
4
- data.tar.gz: 8376070a82544ac1db4ebb5070adbf7bde0c69e9
3
+ metadata.gz: d39f7102c26a7e8aff35bbb2e0bff24cc4f383a3
4
+ data.tar.gz: 04f2ad73f2fe99a55ff14f981474ec2114436d27
5
5
  SHA512:
6
- metadata.gz: 4b3e4f7d925395e6a021421db53ab56498dde23b0d2415b5adb366fbcbc0fe3fe936ace5b4fbaf95cbfc22576de6a32ed0cf2547a67059220a62822ae476cc16
7
- data.tar.gz: ed4927902a386ca3b0c6ca03a3ab9587432f95a3f5019252362611182701894a2f1f8dacb61e11a394b6a558eec0afef279aa631d42f895383da6c9249835a9f
6
+ metadata.gz: c26991e87c194a1be4f4a49c237e2ebeaa181b571450a060c936916fc65cbc658fb451a0f58b93a918a2bd9e109ca2393d7b4ba00f2cf1bccdd83078ab081772
7
+ data.tar.gz: 8f6fcaa0a955b5c14248de1a4d4587bfe40f47d226abb22499f7d90466f5d0ce830967a0391fe3e8c0f1c51713f19827b19e2a39e539073c7ed0db945ef2d643
data/README.md CHANGED
@@ -18,7 +18,7 @@ You need to install the Neo4j server. This can be done by included Rake file.
18
18
  Example
19
19
 
20
20
  ```
21
- rake neo4j:install[community-2.0.0,M06]
21
+ rake neo4j:install[community-2.0.0]
22
22
  rake neo4j:start
23
23
  ```
24
24
 
@@ -158,6 +158,19 @@ Neo4j::Transaction.run do
158
158
  end
159
159
  ```
160
160
 
161
+ Rollback occurs if an exception is thrown, or the failure method is called on the transaction.
162
+
163
+ E.g.
164
+
165
+ ```ruby
166
+ Neo4j::Transaction.run do |tx|
167
+ n = Neo4j::Node.create(name: 'kalle')
168
+ tx.failure # all operations inside this tx will be rollbacked
169
+ n[:age] = 42
170
+ end
171
+
172
+ ```
173
+
161
174
  ### Relationship
162
175
 
163
176
  How to create a relationship between node n1 and node n2 with one property
@@ -1,5 +1,5 @@
1
1
  module Neo4j
2
2
  module Core
3
- VERSION = "3.0.0.alpha.1"
3
+ VERSION = "3.0.0.alpha.2"
4
4
  end
5
5
  end
@@ -1,11 +1,6 @@
1
1
  require 'java'
2
2
 
3
- # TODO: release neo4j-community jar 2.0
4
- # Load Neo4j Jars for the jars folder
5
- jar_folder = File.expand_path('../neo4j/jars', __FILE__)
6
- jars = Dir.new(jar_folder).entries.find_all { |x| x =~ /\.jar$/ }
7
- jars.each { |jar| require File.expand_path(jar, jar_folder) }
8
-
3
+ require 'neo4j-community'
9
4
  require 'neo4j-embedded/to_java'
10
5
  require 'neo4j-embedded/property'
11
6
  require 'neo4j-embedded/embedded_session'
@@ -0,0 +1,17 @@
1
+ Neo4j::Community.load_test_jars!
2
+
3
+ Neo4j::Session.register_db(:impermanent_db) do |*args|
4
+ Neo4j::Embedded::EmbeddedImpermanentSession.new(*args)
5
+ end
6
+
7
+ module Neo4j::Embedded
8
+ class EmbeddedImpermanentSession < EmbeddedSession
9
+ def start
10
+ raise Error.new("Embedded Neo4j db is already running") if running?
11
+ #puts "Start test impermanent embedded Neo4j db at #{db_location}"
12
+ @graph_db = Java::OrgNeo4jTest::TestGraphDatabaseFactory.new.newImpermanentDatabase()
13
+ Neo4j::Session._notify_listeners(:session_available, self)
14
+ end
15
+ end
16
+ end
17
+
@@ -56,10 +56,7 @@ module Neo4j::Embedded
56
56
  tx_methods :exist?
57
57
 
58
58
  def labels
59
- iterator = _labels.iterator
60
- iterator.to_a.map{|x| x.name.to_sym}
61
- ensure
62
- iterator && iterator.close
59
+ _labels.iterator.map{|x| x.name.to_sym}
63
60
  end
64
61
  tx_methods :labels
65
62
 
@@ -4,9 +4,6 @@ Neo4j::Session.register_db(:embedded_db) do |*args|
4
4
  Neo4j::Embedded::EmbeddedSession.new(*args)
5
5
  end
6
6
 
7
- Neo4j::Session.register_db(:impermanent_db) do |*args|
8
- Neo4j::Embedded::EmbeddedImpermanentSession.new(*args)
9
- end
10
7
 
11
8
  module Neo4j::Embedded
12
9
  class EmbeddedSession < Neo4j::Session
@@ -31,6 +28,7 @@ module Neo4j::Embedded
31
28
  puts "Start embedded Neo4j db at #{db_location}"
32
29
  factory = Java::OrgNeo4jGraphdbFactory::GraphDatabaseFactory.new
33
30
  @graph_db = factory.newEmbeddedDatabase(db_location)
31
+ Neo4j::Session._notify_listeners(:session_available, self)
34
32
  end
35
33
 
36
34
  def factory_class
@@ -138,14 +136,6 @@ module Neo4j::Embedded
138
136
 
139
137
  end
140
138
 
141
- class EmbeddedImpermanentSession < EmbeddedSession
142
- def start
143
- raise Error.new("Embedded Neo4j db is already running") if running?
144
- #puts "Start test impermanent embedded Neo4j db at #{db_location}"
145
- @graph_db = Java::OrgNeo4jTest::TestGraphDatabaseFactory.new.newImpermanentDatabase()
146
- end
147
- end
148
-
149
139
 
150
140
 
151
141
  end
@@ -17,6 +17,7 @@ module Neo4j::Server
17
17
  def initialize(data_url)
18
18
  Neo4j::Session.register(self)
19
19
  initialize_resource(data_url)
20
+ Neo4j::Session._notify_listeners(:session_available, self)
20
21
  end
21
22
 
22
23
  def to_s
@@ -38,9 +39,7 @@ module Neo4j::Server
38
39
  end
39
40
 
40
41
  def begin_tx
41
- tx = wrap_resource(self, 'transaction', CypherTransaction, nil, :post)
42
- Thread.current[:neo4j_curr_tx] = tx
43
- tx
42
+ Thread.current[:neo4j_curr_tx] = wrap_resource(self, 'transaction', CypherTransaction, nil, :post)
44
43
  end
45
44
 
46
45
  def create_node(props=nil, labels=[])
@@ -82,7 +81,7 @@ module Neo4j::Server
82
81
  data_resource = JSON.parse(response.body)
83
82
 
84
83
  property_keys = data_resource.map do |row|
85
- row['property-keys'].map(&:to_sym)
84
+ row['property_keys'].map(&:to_sym)
86
85
  end
87
86
 
88
87
  {
@@ -48,7 +48,7 @@ module Neo4j::Server
48
48
  cr.set_data(first_result['data'], first_result['columns'])
49
49
  else
50
50
  first_error = response['errors'].first
51
- cr.set_error(first_error['message'], first_error['status'], first_error['code'])
51
+ cr.set_error(first_error['message'], first_error['code'], first_error['code'])
52
52
  end
53
53
  cr
54
54
  end
@@ -1,6 +1,6 @@
1
1
  module Neo4j
2
2
  module PropertyValidator
3
-
3
+ require 'set'
4
4
  class InvalidPropertyException < Exception
5
5
 
6
6
  end
data/lib/neo4j/session.rb CHANGED
@@ -106,6 +106,19 @@ module Neo4j
106
106
  @@current_session = session
107
107
  end
108
108
 
109
+ def add_listener(&listener)
110
+ self._listeners << listener
111
+ end
112
+
113
+ def _listeners
114
+ @@listeners ||= []
115
+ @@listeners
116
+ end
117
+
118
+ def _notify_listeners(event, data)
119
+ _listeners.each {|li| li.call(event, data)}
120
+ end
121
+
109
122
  def register(session)
110
123
  set_current(session) unless @@current_session
111
124
  @@current_session
@@ -4,15 +4,17 @@ require 'os'
4
4
  namespace :neo4j do
5
5
  desc "Install Neo4j"
6
6
  task :install, :edition, :version do |t, args|
7
- args.with_defaults(:edition => "community", :version => "1.7")
8
- puts "Installing Neo4j-#{args[:edition]}-#{args[:version]}"
7
+ args.with_defaults(:edition => "community")
8
+
9
+ file = args[:version] ? "#{args[:edition]}-#{args[:version]}" : "#{args[:edition]}"
10
+ puts "Installing Neo4j-#{file}"
9
11
 
10
12
  if OS::Underlying.windows?
11
- # Download Neo4j
13
+ # Download Neo4j
12
14
  unless File.exist?('neo4j.zip')
13
15
  df = File.open('neo4j.zip', 'wb')
14
16
  begin
15
- df << HTTParty.get("http://dist.neo4j.org/neo4j-#{args[:edition]}-#{args[:version]}-windows.zip")
17
+ df << HTTParty.get("http://dist.neo4j.org/neo4j-#{file}-windows.zip")
16
18
  ensure
17
19
  df.close()
18
20
  end
@@ -31,7 +33,7 @@ namespace :neo4j do
31
33
  end
32
34
  end
33
35
  end
34
- FileUtils.mv "neo4j-#{args[:edition]}-#{args[:version]}", "neo4j"
36
+ FileUtils.mv "neo4j-#{file}", "neo4j"
35
37
  end
36
38
 
37
39
  # Install if running with Admin Privileges
@@ -40,11 +42,12 @@ namespace :neo4j do
40
42
  puts "Neo4j Installed as a service."
41
43
  end
42
44
 
43
- else
44
- %x[wget http://dist.neo4j.org/neo4j-#{args[:edition]}-#{args[:version]}-unix.tar.gz]
45
- %x[tar -xvzf neo4j-#{args[:edition]}-#{args[:version]}-unix.tar.gz]
46
- %x[mv neo4j-#{args[:edition]}-#{args[:version]} neo4j]
47
- %x[rm neo4j-#{args[:edition]}-#{args[:version]}-unix.tar.gz]
45
+ else
46
+ # E.g. http://dist.neo4j.org/neo4j-community-2.0.0-unix.tar.gz
47
+ %x[wget http://dist.neo4j.org/neo4j-#{file}-unix.tar.gz]
48
+ %x[tar -xvzf neo4j-#{file}-unix.tar.gz]
49
+ %x[mv neo4j-#{file} neo4j]
50
+ %x[rm neo4j-#{file}-unix.tar.gz]
48
51
  puts "Neo4j Installed in to neo4j directory."
49
52
  end
50
53
  puts "Type 'rake neo4j:start' to start it"
data/neo4j-core.gemspec CHANGED
@@ -30,6 +30,8 @@ It comes included with the Apache Lucene document database.
30
30
  s.add_dependency("httparty")
31
31
  s.add_dependency("json")
32
32
  s.add_dependency("neo4j-cypher")
33
- # s.add_dependency("neo4j-community", '>=1.9.M05', '<2.0')
34
- # s.add_dependency("neo4j-cypher", '~> 1.0.0')
33
+
34
+ if RUBY_PLATFORM =~ /java/
35
+ s.add_dependency("neo4j-community", '~> 2.0.0')
36
+ end
35
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neo4j-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.alpha.1
4
+ version: 3.0.0.alpha.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Ronge
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-14 00:00:00.000000000 Z
11
+ date: 2013-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -64,18 +64,6 @@ extra_rdoc_files:
64
64
  - README.md
65
65
  files:
66
66
  - lib/neo4j/entity_equality.rb
67
- - lib/neo4j/jars/concurrentlinkedhashmap-lru-1.3.1.jar
68
- - lib/neo4j/jars/geronimo-jta_1.1_spec-1.1.1.jar
69
- - lib/neo4j/jars/lucene-core-3.6.2.jar
70
- - lib/neo4j/jars/neo4j-cypher-2.0.0-M06.jar
71
- - lib/neo4j/jars/neo4j-kernel-2.0-SNAPSHOT-tests.jar
72
- - lib/neo4j/jars/neo4j-kernel-2.0.0-M06.jar
73
- - lib/neo4j/jars/neo4j-lucene-index-2.0.0-M06.jar
74
- - lib/neo4j/jars/neo4j-management-2.0.0-M06.jar
75
- - lib/neo4j/jars/org.apache.servicemix.bundles.jline-0.9.94_1.jar
76
- - lib/neo4j/jars/parboiled-core-1.1.6.jar
77
- - lib/neo4j/jars/parboiled-scala_2.10-1.1.6.jar
78
- - lib/neo4j/jars/scala-library-2.10.2.jar
79
67
  - lib/neo4j/label.rb
80
68
  - lib/neo4j/node.rb
81
69
  - lib/neo4j/property_container.rb
@@ -91,6 +79,7 @@ files:
91
79
  - lib/neo4j-core/version.rb
92
80
  - lib/neo4j-core.rb
93
81
  - lib/neo4j-embedded/embedded_database.rb
82
+ - lib/neo4j-embedded/embedded_impermanent_session.rb
94
83
  - lib/neo4j-embedded/embedded_label.rb
95
84
  - lib/neo4j-embedded/embedded_node.rb
96
85
  - lib/neo4j-embedded/embedded_relationship.rb
Binary file