neo4j 1.0.0.beta.26-java → 1.0.0.beta.27-java
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.
- 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
|
|