neo4j 1.0.0.beta.26-java → 1.0.0.beta.27-java
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/neo4j-shell +107 -0
- data/bin/neo4j-shell~ +108 -0
- data/config/locales/en.yml +5 -0
- data/config/neo4j/config.yml +89 -0
- data/lib/Gemfile~ +3 -0
- data/lib/config2.yml~ +86 -0
- data/lib/neo4j.rb +34 -8
- data/lib/neo4j/config.rb +41 -12
- data/lib/neo4j/database.rb +34 -13
- data/lib/neo4j/index/class_methods.rb +1 -1
- data/lib/neo4j/index/lucene_query.rb +4 -2
- data/lib/neo4j/jars/{geronimo-jta_1.1_spec-1.1.1.jar → core/geronimo-jta_1.1_spec-1.1.1.jar} +0 -0
- data/lib/neo4j/jars/{lucene-core-3.0.2.jar → core/lucene-core-3.0.3.jar} +0 -0
- data/lib/neo4j/jars/core/neo4j-graph-algo-0.8-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-index-1.3-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-kernel-1.3-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/core/neo4j-lucene-index-0.5-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/ha/log4j-1.2.16.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-ha-0.6-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-management-1.3-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/ha/neo4j-shell-1.3-SNAPSHOT.jar +0 -0
- data/lib/neo4j/jars/ha/netty-3.2.1.Final.jar +0 -0
- data/lib/neo4j/jars/ha/org.apache.servicemix.bundles.jline-0.9.94_1.jar +0 -0
- data/lib/neo4j/jars/ha/org.apache.servicemix.bundles.lucene-3.0.1_2.jar +0 -0
- data/lib/neo4j/jars/ha/zookeeper-3.3.2.jar +0 -0
- data/lib/neo4j/mapping/class_methods/relationship.rb +1 -2
- data/lib/neo4j/mapping/class_methods/rule.rb +35 -3
- data/lib/neo4j/mapping/decl_relationship_dsl.rb +1 -1
- data/lib/neo4j/mapping/has_n.rb +4 -1
- data/lib/neo4j/mapping/node_mixin.rb +1 -1
- data/lib/neo4j/mapping/rule.rb +9 -6
- data/lib/neo4j/mapping/rule_node.rb +0 -1
- data/lib/neo4j/migrations.rb +12 -0
- data/lib/neo4j/migrations/extensions.rb +57 -0
- data/lib/neo4j/migrations/global_migration.rb +29 -0
- data/lib/neo4j/migrations/lazy_migration_mixin.rb +47 -0
- data/lib/neo4j/migrations/migration.rb +109 -0
- data/lib/neo4j/migrations/migration_mixin.rb +78 -0
- data/lib/neo4j/migrations/migrations.rb +100 -0
- data/lib/neo4j/neo4j.rb +33 -9
- data/lib/neo4j/node_relationship.rb +2 -4
- data/lib/neo4j/node_traverser.rb +5 -0
- data/lib/neo4j/rails/finders.rb +10 -3
- data/lib/neo4j/rails/lucene_connection_closer.rb +1 -2
- data/lib/neo4j/rails/mapping/property.rb +1 -1
- data/lib/neo4j/rails/model.rb +1 -1
- data/lib/neo4j/rails/persistence.rb +1 -5
- data/lib/neo4j/rails/relationships/relationships.rb +13 -10
- data/lib/neo4j/version.rb +1 -1
- data/lib/perf.rb~ +36 -0
- data/neo4j.gemspec +4 -2
- metadata +40 -78
- data/lib/neo4j/jars/neo4j-graph-algo-0.7-1.2.jar +0 -0
- data/lib/neo4j/jars/neo4j-index-1.2-1.2.jar +0 -0
- data/lib/neo4j/jars/neo4j-kernel-1.2-1.2.jar +0 -0
- data/lib/neo4j/jars/neo4j-lucene-index-0.2-1.2.jar +0 -0
- data/lib/tmp/neo4j/active_tx_log +0 -1
- data/lib/tmp/neo4j/index.db +0 -0
- data/lib/tmp/neo4j/index/lucene-store.db +0 -0
- data/lib/tmp/neo4j/index/lucene.log.active +0 -0
- data/lib/tmp/neo4j/index/lucene/node/Network-exact/_0.cfs +0 -0
- data/lib/tmp/neo4j/index/lucene/node/Network-exact/segments.gen +0 -0
- data/lib/tmp/neo4j/index/lucene/node/Network-exact/segments_2 +0 -0
- data/lib/tmp/neo4j/lucene-fulltext/lucene-store.db +0 -0
- data/lib/tmp/neo4j/lucene-fulltext/lucene.log.active +0 -0
- data/lib/tmp/neo4j/lucene/lucene-store.db +0 -0
- data/lib/tmp/neo4j/lucene/lucene.log.active +0 -0
- data/lib/tmp/neo4j/messages.log +0 -85
- data/lib/tmp/neo4j/neostore +0 -0
- data/lib/tmp/neo4j/neostore.id +0 -0
- data/lib/tmp/neo4j/neostore.nodestore.db +0 -0
- data/lib/tmp/neo4j/neostore.nodestore.db.id +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db.arrays +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db.arrays.id +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db.id +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db.index +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db.index.id +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db.index.keys +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db.index.keys.id +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db.strings +0 -0
- data/lib/tmp/neo4j/neostore.propertystore.db.strings.id +0 -0
- data/lib/tmp/neo4j/neostore.relationshipstore.db +0 -0
- data/lib/tmp/neo4j/neostore.relationshipstore.db.id +0 -0
- data/lib/tmp/neo4j/neostore.relationshiptypestore.db +0 -0
- data/lib/tmp/neo4j/neostore.relationshiptypestore.db.id +0 -0
- data/lib/tmp/neo4j/neostore.relationshiptypestore.db.names +0 -0
- data/lib/tmp/neo4j/neostore.relationshiptypestore.db.names.id +0 -0
- data/lib/tmp/neo4j/nioneo_logical.log.active +0 -0
- data/lib/tmp/neo4j/tm_tx_log.1 +0 -0
@@ -0,0 +1,29 @@
|
|
1
|
+
module Neo4j
|
2
|
+
|
3
|
+
# This node stores the migrations for Neo4j.migrations
|
4
|
+
# Uses the Neo4j.ref_node for keeping the current version of the db.
|
5
|
+
# When the database starts it will check if it needs to run a migration.
|
6
|
+
class GlobalMigration
|
7
|
+
extend Neo4j::Migrations
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def migrate!(version=nil)
|
11
|
+
_migrate!(self, Neo4j.ref_node, version)
|
12
|
+
end
|
13
|
+
|
14
|
+
def db_version
|
15
|
+
Neo4j.ref_node[:_db_version] || 0
|
16
|
+
end
|
17
|
+
|
18
|
+
# Remote all migration and set migrate_to = nil and set the current version to nil
|
19
|
+
def reset_migrations!
|
20
|
+
@migrations = nil
|
21
|
+
@migrate_to = nil
|
22
|
+
Neo4j::Transaction.run do
|
23
|
+
Neo4j.ref_node[:_db_version] = nil
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Neo4j
|
2
|
+
|
3
|
+
# Overrides the init_on_load method so that it will check if any migration is needed.
|
4
|
+
# The init_on_create method is also overriden so that it sets the version to the latest migration number
|
5
|
+
# when a new node is created.
|
6
|
+
#
|
7
|
+
# Migration will take place if needed when the node is loaded.
|
8
|
+
#
|
9
|
+
module LazyMigrationMixin
|
10
|
+
extend ActiveSupport::Concern
|
11
|
+
|
12
|
+
included do
|
13
|
+
extend Neo4j::Migrations
|
14
|
+
end
|
15
|
+
|
16
|
+
module ClassMethods
|
17
|
+
# Remote all migration and set migrate_to = nil
|
18
|
+
# Does not change the version of nodes.
|
19
|
+
def reset_migrations!
|
20
|
+
@migrations = nil
|
21
|
+
@migrate_to = nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def migrate!
|
26
|
+
self.class._migrate!(self._java_node, self)
|
27
|
+
end
|
28
|
+
|
29
|
+
def init_on_create(*)
|
30
|
+
super
|
31
|
+
# set the db version to the current
|
32
|
+
self[:_db_version] = self.class.migrate_to
|
33
|
+
end
|
34
|
+
|
35
|
+
def init_on_load(*) # :nodoc:
|
36
|
+
super
|
37
|
+
migrate!
|
38
|
+
# this if for Neo4j::Rails::Model which keeps the properties in this variable
|
39
|
+
@properties.clear if instance_variable_defined? :@properties
|
40
|
+
end
|
41
|
+
|
42
|
+
def db_version
|
43
|
+
self[:_db_version]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
module Neo4j
|
2
|
+
|
3
|
+
# This is the context in which the Migrations DSL are evaluated in.
|
4
|
+
# This class is also responsible for running the migrations.
|
5
|
+
class Migration
|
6
|
+
attr_reader :up_block, :down_block, :up_migrator, :down_migrator, :version, :name
|
7
|
+
|
8
|
+
def initialize(version, name)
|
9
|
+
@auto_transaction = true
|
10
|
+
@version = version
|
11
|
+
@name = name
|
12
|
+
end
|
13
|
+
|
14
|
+
# Specifies a code block which is run when the migration is upgraded.
|
15
|
+
#
|
16
|
+
def up(&block)
|
17
|
+
@up_block = block
|
18
|
+
end
|
19
|
+
|
20
|
+
# Specifies a code block which is run when the migration is upgraded.
|
21
|
+
#
|
22
|
+
def down(&block)
|
23
|
+
@down_block = block
|
24
|
+
end
|
25
|
+
|
26
|
+
# Specifies if transaction should automatically be created (default)
|
27
|
+
def auto_transaction(run_with_auto_tx)
|
28
|
+
@auto_transaction = run_with_auto_tx
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
# Specifies which fields should be indexed
|
33
|
+
def add_index(*fields)
|
34
|
+
@add_indexed_field = fields
|
35
|
+
end
|
36
|
+
|
37
|
+
# Specifies which fields indexed should be removed
|
38
|
+
def rm_index(*fields)
|
39
|
+
@rm_indexed_field = fields
|
40
|
+
end
|
41
|
+
|
42
|
+
# Runs the up migration. If successful it will set the property
|
43
|
+
# ':_db_version' on the given context.
|
44
|
+
#
|
45
|
+
# === Parameters
|
46
|
+
# context:: the context on which the block is evaluated in
|
47
|
+
# meta_node:: the node on which to set the 'db_version' property
|
48
|
+
#
|
49
|
+
def execute_up(context, meta_node)
|
50
|
+
|
51
|
+
if @auto_transaction
|
52
|
+
Neo4j::Transaction.run do
|
53
|
+
context.instance_eval &@up_block if @up_block
|
54
|
+
add_index_on(context, @add_indexed_field) if @add_indexed_field
|
55
|
+
rm_index_on(context, @rm_indexed_field) if @rm_indexed_field
|
56
|
+
meta_node._java_node[:_db_version] = version # use the raw java node since Neo4j::Rails::Mode wraps it
|
57
|
+
end
|
58
|
+
else
|
59
|
+
context.instance_eval &@up_block if @up_block
|
60
|
+
add_index_on(context, @add_indexed_field) if @add_indexed_field
|
61
|
+
Neo4j::Transaction.run do
|
62
|
+
rm_index_on(context, @rm_indexed_field) if @rm_indexed_field
|
63
|
+
meta_node._java_node[:_db_version] = version # use the raw java node since Neo4j::Rails::Mode wraps it
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# Same as #execute_up but executes the down_block instead
|
69
|
+
def execute_down(context, meta_node)
|
70
|
+
if @auto_transaction
|
71
|
+
Neo4j::Transaction.run do
|
72
|
+
context.instance_eval &@down_block if @down_block
|
73
|
+
add_index_on(context, @rm_indexed_field) if @rm_indexed_field
|
74
|
+
rm_index_on(context, @add_indexed_field) if @add_indexed_field
|
75
|
+
meta_node._java_node[:_db_version] = version - 1
|
76
|
+
end
|
77
|
+
else
|
78
|
+
context.instance_eval &@down_block if @down_block
|
79
|
+
add_index_on(context, @rm_indexed_field) if @rm_indexed_field
|
80
|
+
Neo4j::Transaction.run do
|
81
|
+
rm_index_on(context, @add_indexed_field) if @add_indexed_field
|
82
|
+
meta_node._java_node[:_db_version] = version - 1
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def add_index_on(context, fields) #:nodoc:
|
88
|
+
context.all.each do |node|
|
89
|
+
fields.each do |field|
|
90
|
+
node.add_index(field)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def rm_index_on(context, fields) #:nodoc:
|
96
|
+
context.all.each do |node|
|
97
|
+
fields.each do |field|
|
98
|
+
node.rm_index(field)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
def to_s
|
105
|
+
"Migration version: #{version}, name: #{name}"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module Neo4j
|
2
|
+
|
3
|
+
|
4
|
+
# By including this mixing on a node class one can add migrations to it.
|
5
|
+
# Each class has a unique db version.
|
6
|
+
#
|
7
|
+
# ==== Example
|
8
|
+
#
|
9
|
+
# class Person
|
10
|
+
# include Neo4j::NodeMixin
|
11
|
+
# include MigrationMixin
|
12
|
+
# rule :all # adding the method all to make it possible to find all nodes of this class
|
13
|
+
# end
|
14
|
+
#
|
15
|
+
# Person.migration 1, :split_property do
|
16
|
+
# up do
|
17
|
+
# all.each_raw do |node|
|
18
|
+
# node[:given_name] = node[:name].split[0]
|
19
|
+
# node[:surname] = node[:name].split[1]
|
20
|
+
# node[:name] = nil
|
21
|
+
# end
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# down do
|
25
|
+
# all.each_raw do |node|
|
26
|
+
# node[:name] = "#{node[:given_name]} #{node[:surname]}"
|
27
|
+
# node[:surename] = nil
|
28
|
+
# node[:given_name] = nil
|
29
|
+
# end
|
30
|
+
# end
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# Notice that the up and down methods are evaluated in the context of the class (where the all method is defined
|
34
|
+
# if using the rule :all).
|
35
|
+
#
|
36
|
+
module MigrationMixin
|
37
|
+
extend ActiveSupport::Concern
|
38
|
+
|
39
|
+
included do
|
40
|
+
extend Neo4j::Migrations
|
41
|
+
end
|
42
|
+
|
43
|
+
module ClassMethods
|
44
|
+
def migrate!(version=nil)
|
45
|
+
_migrate!(self, migration_meta_node, version)
|
46
|
+
end
|
47
|
+
|
48
|
+
# The node that holds the db version property
|
49
|
+
def migration_meta_node
|
50
|
+
Neo4j::Mapping::Rule.rule_node_for(self).rule_node
|
51
|
+
end
|
52
|
+
|
53
|
+
# Remote all migration and set migrate_to = nil and set the current version to nil
|
54
|
+
def reset_migrations!
|
55
|
+
@migrations = nil
|
56
|
+
@migrate_to = nil
|
57
|
+
Neo4j::Transaction.run do
|
58
|
+
migration_meta_node[:_db_version] = nil
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# sets the migration db version for this class on a 'meta' node.
|
63
|
+
def db_version=(version)
|
64
|
+
Neo4j::Transaction.run do
|
65
|
+
migration_meta_node[:_db_version] = version
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# returns the current version of the database for this class.
|
70
|
+
def db_version
|
71
|
+
migration_meta_node[:_db_version]
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
module Neo4j
|
2
|
+
module Migrations
|
3
|
+
|
4
|
+
# Sets the the version we request to migrate to
|
5
|
+
# If not set will migrate to the highest possible migration
|
6
|
+
def migrate_to=(version)
|
7
|
+
@migrate_to = version
|
8
|
+
end
|
9
|
+
|
10
|
+
def migrate_to
|
11
|
+
@migrate_to
|
12
|
+
end
|
13
|
+
|
14
|
+
def latest_migration
|
15
|
+
migrations.keys.sort.reverse[0]
|
16
|
+
end
|
17
|
+
|
18
|
+
# contains all the migrations defined with the #migration DSL method
|
19
|
+
def migrations
|
20
|
+
@migrations ||= {}
|
21
|
+
end
|
22
|
+
|
23
|
+
# Specifies a migration to be performed.
|
24
|
+
# Updates the migrate_to variable so that it will migrate to the latest migration.
|
25
|
+
#
|
26
|
+
# === Example
|
27
|
+
#
|
28
|
+
# In the following example the up and down method will be evaluated in the context of a Person node.
|
29
|
+
#
|
30
|
+
# Person.migration 1, :my_first_migration do
|
31
|
+
# up { ... }
|
32
|
+
# down { ... }
|
33
|
+
# end
|
34
|
+
#
|
35
|
+
# See the Neo4j::MigrationMixin::Migration which the DSL is evaluated in.
|
36
|
+
#
|
37
|
+
def migration(version, name, &block)
|
38
|
+
migration = Migration.new(version, name)
|
39
|
+
migration.instance_eval(&block)
|
40
|
+
migrations[version] = migration
|
41
|
+
self.migrate_to = latest_migration
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
def _migrate!(context, meta_node, version=nil) #:nodoc:
|
46
|
+
# set the version we want to migrate to if provided
|
47
|
+
self.migrate_to = version if version
|
48
|
+
|
49
|
+
# requested to migrate to a version ?
|
50
|
+
return if self.migrate_to.nil?
|
51
|
+
|
52
|
+
# which version are we on now ?
|
53
|
+
current_version = meta_node[:_db_version] || 0
|
54
|
+
|
55
|
+
# do we need to migrate ?
|
56
|
+
return if current_version == self.migrate_to
|
57
|
+
|
58
|
+
# ok, so we are running some migrations
|
59
|
+
if Neo4j::Config['migration_thread']
|
60
|
+
Thread.new{ _upgrade_or_downgrade(current_version, context, meta_node)}
|
61
|
+
else
|
62
|
+
_upgrade_or_downgrade(current_version, context, meta_node)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def _upgrade_or_downgrade(current_version, context, meta_node) #:nodoc:
|
67
|
+
if (current_version < self.migrate_to)
|
68
|
+
upgrade((current_version+1).upto(self.migrate_to).collect { |ver| migrations[ver] }, context, meta_node)
|
69
|
+
else
|
70
|
+
downgrade(current_version.downto(self.migrate_to+1).collect { |ver| migrations[ver] }, context, meta_node)
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
# Running the up method on the given migrations.
|
77
|
+
#
|
78
|
+
# === Parameters
|
79
|
+
# migrations :: an enumerable of Migration objects
|
80
|
+
def upgrade(migrations, context, meta_node)
|
81
|
+
migrations.each do |m|
|
82
|
+
Neo4j.logger.info "Running upgrade: #{m}"
|
83
|
+
m.execute_up(context, meta_node)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# Running the down method on the given migrations.
|
88
|
+
#
|
89
|
+
# === Parameters
|
90
|
+
# migrations:: an enumerable of Migration objects
|
91
|
+
def downgrade(migrations, context, meta_node)
|
92
|
+
migrations.each do |m|
|
93
|
+
Neo4j.logger.info "Running downgrade: #{m}"
|
94
|
+
m.execute_down(context, meta_node)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
data/lib/neo4j/neo4j.rb
CHANGED
@@ -10,23 +10,27 @@
|
|
10
10
|
module Neo4j
|
11
11
|
|
12
12
|
class << self
|
13
|
-
|
14
13
|
# Start Neo4j using the default database.
|
15
14
|
# This is usally not required since the database will be started automatically when it is used.
|
16
15
|
#
|
17
|
-
|
18
|
-
|
16
|
+
# ==== Parameters
|
17
|
+
# config_file :: (optionally) if this is nil or not given use the Neo4j::Config, otherwise setup the Neo4j::Config file using the provided YAML configuration file.
|
18
|
+
#
|
19
|
+
def start(config_file=nil)
|
20
|
+
Neo4j.config.default_file = config_file if config_file
|
19
21
|
db.start unless db.running?
|
20
22
|
end
|
21
23
|
|
22
24
|
|
23
|
-
#
|
24
|
-
|
25
|
+
# Sets the Neo4j::Database instance to use
|
26
|
+
# An Neo4j::Database instance wraps both the Neo4j Database and Lucene Database.
|
27
|
+
def db=(my_db)
|
25
28
|
@db = my_db
|
26
29
|
end
|
27
30
|
|
28
|
-
# Returns
|
29
|
-
|
31
|
+
# Returns the database holding references to both the Neo4j Graph Database and the Lucene Database.
|
32
|
+
# Creates a new one if it does not exist, but does not start it.
|
33
|
+
def db
|
30
34
|
@db ||= Database.new
|
31
35
|
end
|
32
36
|
|
@@ -36,11 +40,31 @@ module Neo4j
|
|
36
40
|
|
37
41
|
# Returns a started db instance. Starts it's not running.
|
38
42
|
def started_db
|
39
|
-
db = default_db
|
40
43
|
db.start unless db.running?
|
41
44
|
db
|
42
45
|
end
|
43
46
|
|
47
|
+
# Returns the Neo4j::Config class
|
48
|
+
# Same as typing; Neo4j::Config
|
49
|
+
def config
|
50
|
+
Neo4j::Config
|
51
|
+
end
|
52
|
+
|
53
|
+
def logger
|
54
|
+
@logger ||= Neo4j::Config[:logger] || default_logger
|
55
|
+
end
|
56
|
+
|
57
|
+
def logger=(logger)
|
58
|
+
@logger = logger
|
59
|
+
end
|
60
|
+
|
61
|
+
def default_logger #:nodoc:
|
62
|
+
require 'logger'
|
63
|
+
logger = Logger.new(STDOUT)
|
64
|
+
logger.sev_threshold = Neo4j::Config[:logger_level] || Logger::INFO
|
65
|
+
logger
|
66
|
+
end
|
67
|
+
|
44
68
|
|
45
69
|
# Returns an unstarted db instance
|
46
70
|
#
|
@@ -87,7 +111,7 @@ module Neo4j
|
|
87
111
|
|
88
112
|
# Returns the Neo4j::EventHandler
|
89
113
|
#
|
90
|
-
def event_handler(this_db =
|
114
|
+
def event_handler(this_db = db)
|
91
115
|
this_db.event_handler
|
92
116
|
end
|
93
117
|
|
@@ -53,8 +53,7 @@ module Neo4j
|
|
53
53
|
if type
|
54
54
|
NodeTraverser.new(self).outgoing(type)
|
55
55
|
else
|
56
|
-
raise "
|
57
|
-
NodeTraverser.new(self)
|
56
|
+
raise "Not implemented getting all types of outgoing relationship. Specify a relationship type"
|
58
57
|
end
|
59
58
|
end
|
60
59
|
|
@@ -67,8 +66,7 @@ module Neo4j
|
|
67
66
|
if type
|
68
67
|
NodeTraverser.new(self).incoming(type)
|
69
68
|
else
|
70
|
-
raise "
|
71
|
-
NodeTraverser.new(self)
|
69
|
+
raise "Not implemented getting all types of incoming relationship. Specify a relationship type"
|
72
70
|
end
|
73
71
|
end
|
74
72
|
|