pacer-dex 2.0.0-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/.gitignore +6 -0
- data/Gemfile +4 -0
- data/README.md +23 -0
- data/Rakefile +35 -0
- data/lib/pacer-dex.rb +13 -0
- data/lib/pacer-dex/graph.rb +23 -0
- data/lib/pacer-dex/rspec.rb +32 -0
- data/lib/pacer-dex/version.rb +14 -0
- data/pacer-dex.gemspec +23 -0
- data/pom.xml +128 -0
- data/pom/standalone.xml +22 -0
- metadata +76 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# Dex Graph Database Adapter for Pacer
|
2
|
+
|
3
|
+
[Pacer](https://github.com/pangloss/pacer) is a
|
4
|
+
[JRuby](http://jruby.org) graph traversal framework built on the
|
5
|
+
[Tinkerpop](http://www.tinkerpop.com) stack.
|
6
|
+
|
7
|
+
This plugin enables full [Dex](http://sparsity-technologies.com) graph support in Pacer.
|
8
|
+
|
9
|
+
|
10
|
+
## Usage
|
11
|
+
|
12
|
+
Here is how you open a Dex graph in Pacer.
|
13
|
+
|
14
|
+
require 'pacer'
|
15
|
+
require 'pacer-dex'
|
16
|
+
|
17
|
+
# Graph will be created if it doesn't exist
|
18
|
+
graph = Pacer.dex 'path/to/graph'
|
19
|
+
|
20
|
+
All other operations are identical across graph implementations (except
|
21
|
+
where certain features are not supported). See Pacer's documentation for
|
22
|
+
more information.
|
23
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
file 'pom.xml' => 'lib/pacer-dex/version.rb' do
|
5
|
+
pom = File.read 'pom.xml'
|
6
|
+
when_writing('Update pom.xml version number') do
|
7
|
+
open 'pom.xml', 'w' do |f|
|
8
|
+
pom.each_line do |line|
|
9
|
+
line.sub!(%r{<gem.version>.*</gem.version>}, "<gem.version>#{ Pacer::Dex::VERSION }</gem.version>")
|
10
|
+
line.sub!(%r{<blueprints.version>.*</blueprints.version>}, "<blueprints.version>#{ Pacer::Dex::BLUEPRINTS_VERSION }</blueprints.version>")
|
11
|
+
line.sub!(%r{<pipes.version>.*</pipes.version>}, "<pipes.version>#{ Pacer::Dex::PIPES_VERSION }</pipes.version>")
|
12
|
+
f << line
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
file Pacer::Dex::JAR_PATH => 'pom.xml' do
|
19
|
+
when_writing("Execute 'mvn package' task") do
|
20
|
+
system('mvn clean package')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
task :note do
|
25
|
+
puts "NOTE: touch lib/pacer-neo4j/version.rb (or rake touch) to force everything to rebuild"
|
26
|
+
end
|
27
|
+
|
28
|
+
task :build => [:note, Pacer::Dex::JAR_PATH]
|
29
|
+
task :install => [:note, Pacer::Dex::JAR_PATH]
|
30
|
+
|
31
|
+
desc 'Touch version.rb so that the jar rebuilds'
|
32
|
+
task :touch do
|
33
|
+
system 'touch', 'lib/pacer-neo4j/version.rb'
|
34
|
+
end
|
35
|
+
|
data/lib/pacer-dex.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'pacer-dex/version'
|
2
|
+
if Pacer::Dex::ENABLED
|
3
|
+
require 'pacer'
|
4
|
+
require Pacer::Dex::JAR
|
5
|
+
|
6
|
+
require 'pacer-dex/graph'
|
7
|
+
else
|
8
|
+
puts "Dex has been disabled."
|
9
|
+
puts
|
10
|
+
puts "Please ensure you are running a compatible JVM (see pacer-dex/version.rb)"
|
11
|
+
puts "or set Pacer::Dex::ENABLED = true to force."
|
12
|
+
puts
|
13
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Pacer
|
2
|
+
class << self
|
3
|
+
# Return a graph for the given path. Will create a graph if none exists at
|
4
|
+
# that location. (The graph is only created if data is actually added to it).
|
5
|
+
def dex(path)
|
6
|
+
dex = com.tinkerpop.blueprints.impls.dex.DexGraph
|
7
|
+
path = File.expand_path(path)
|
8
|
+
open = proc do
|
9
|
+
graph = Pacer.open_graphs[path]
|
10
|
+
unless graph
|
11
|
+
graph = dex.new(path)
|
12
|
+
Pacer.open_graphs[path] = graph
|
13
|
+
end
|
14
|
+
graph
|
15
|
+
end
|
16
|
+
shutdown = proc do |g|
|
17
|
+
g.blueprints_graph.shutdown
|
18
|
+
Pacer.open_graphs[path] = nil
|
19
|
+
end
|
20
|
+
PacerGraph.new(Pacer::YamlEncoder, open, shutdown)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
if Pacer::Dex::ENABLED
|
2
|
+
class RSpec::GraphRunner
|
3
|
+
module Dex
|
4
|
+
def all(usage_style = :read_write, indices = true, &block)
|
5
|
+
super
|
6
|
+
dex(usage_style, indices, &block)
|
7
|
+
end
|
8
|
+
|
9
|
+
def dex(usage_style = :read_write, indices = true, &block)
|
10
|
+
for_graph('dex', usage_style, indices, false, dex_graph, dex_graph2, nil, block)
|
11
|
+
end
|
12
|
+
|
13
|
+
protected
|
14
|
+
|
15
|
+
def dex_graph
|
16
|
+
return @dex_graph if @dex_graph
|
17
|
+
path1 = File.expand_path('tmp/spec.dex')
|
18
|
+
dir = Pathname.new(path1)
|
19
|
+
dir.rmtree if dir.exist?
|
20
|
+
@dex_graph = Pacer.dex(path1)
|
21
|
+
end
|
22
|
+
|
23
|
+
def dex_graph2
|
24
|
+
return @dex_graph2 if @dex_graph2
|
25
|
+
path2 = File.expand_path('tmp/spec.dex.2')
|
26
|
+
dir = Pathname.new(path2)
|
27
|
+
dir.rmtree if dir.exist?
|
28
|
+
@dex_graph2 = Pacer.dex(path2)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Pacer
|
2
|
+
module Dex
|
3
|
+
# Dex segfaults for me under Java 1.7... YMMV
|
4
|
+
if not defined? ENABLED
|
5
|
+
ENABLED = ENV_JAVA['java.runtime.version'] =~ /^1\.6\./
|
6
|
+
end
|
7
|
+
VERSION = "2.0.0"
|
8
|
+
JAR = "pacer-dex-#{ VERSION }-standalone.jar"
|
9
|
+
JAR_PATH = "lib/#{ JAR }"
|
10
|
+
BLUEPRINTS_VERSION = "2.1.0"
|
11
|
+
PIPES_VERSION = "2.1.0"
|
12
|
+
PACER_REQ = ">= 1.0.0"
|
13
|
+
end
|
14
|
+
end
|
data/pacer-dex.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "pacer-dex/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "pacer-dex"
|
7
|
+
s.version = Pacer::Dex::VERSION
|
8
|
+
s.platform = 'java'
|
9
|
+
s.authors = ["Darrick Wiebe"]
|
10
|
+
s.email = ["darrick@innatesoftware.com"]
|
11
|
+
s.homepage = "http://sparsity-technologies.com"
|
12
|
+
s.summary = %q{Dex jars and related code for Pacer}
|
13
|
+
s.description = s.summary
|
14
|
+
|
15
|
+
s.add_dependency 'pacer', Pacer::Dex::PACER_REQ
|
16
|
+
|
17
|
+
s.rubyforge_project = "pacer-dex"
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n") + [Pacer::Dex::JAR_PATH]
|
20
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
end
|
data/pom.xml
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
3
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
4
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
5
|
+
<modelVersion>4.0.0</modelVersion>
|
6
|
+
<groupId>com.tinkerpop.pacer</groupId>
|
7
|
+
<artifactId>pacer-dex</artifactId>
|
8
|
+
<!-- NOTE: the following properties are automatically updated based on the values in lib/pacer-neo4j/version.rb -->
|
9
|
+
<properties>
|
10
|
+
<gem.version>2.0.0</gem.version>
|
11
|
+
<blueprints.version>2.1.0</blueprints.version>
|
12
|
+
<pipes.version>2.1.0</pipes.version>
|
13
|
+
</properties>
|
14
|
+
<!-- NOTE: the following properties are automatically updated based on the values in lib/pacer-neo4j/version.rb -->
|
15
|
+
<version>${gem.version}</version>
|
16
|
+
<packaging>pom</packaging>
|
17
|
+
<url>https://github.com/pangloss/pacer</url>
|
18
|
+
<name>Pacer Dex dependencies and related code.</name>
|
19
|
+
<description>
|
20
|
+
</description>
|
21
|
+
<inceptionYear>2011</inceptionYear>
|
22
|
+
<developers>
|
23
|
+
<developer>
|
24
|
+
<name>Darrick Wiebe</name>
|
25
|
+
<email>darrick@innatesoftware.com</email>
|
26
|
+
<url>http://github.com/pangloss</url>
|
27
|
+
</developer>
|
28
|
+
</developers>
|
29
|
+
<dependencies>
|
30
|
+
<!-- PROPERTY GRAPH MODEL SUPPORT -->
|
31
|
+
<dependency>
|
32
|
+
<groupId>com.tinkerpop.blueprints</groupId>
|
33
|
+
<artifactId>blueprints-core</artifactId>
|
34
|
+
<version>${blueprints.version}</version>
|
35
|
+
</dependency>
|
36
|
+
<dependency>
|
37
|
+
<groupId>com.tinkerpop.blueprints</groupId>
|
38
|
+
<artifactId>blueprints-dex-graph</artifactId>
|
39
|
+
<version>${blueprints.version}</version>
|
40
|
+
</dependency>
|
41
|
+
<!-- GRAPH TRAVERSAL SUPPORT -->
|
42
|
+
<dependency>
|
43
|
+
<groupId>com.tinkerpop</groupId>
|
44
|
+
<artifactId>pipes</artifactId>
|
45
|
+
<version>${pipes.version}</version>
|
46
|
+
</dependency>
|
47
|
+
</dependencies>
|
48
|
+
|
49
|
+
<repositories>
|
50
|
+
<repository>
|
51
|
+
<id>tinkerpop-repository</id>
|
52
|
+
<name>TinkerPop Maven2 Repository</name>
|
53
|
+
<url>http://tinkerpop.com/maven2</url>
|
54
|
+
<snapshots>
|
55
|
+
<enabled>true</enabled>
|
56
|
+
<updatePolicy>always</updatePolicy>
|
57
|
+
</snapshots>
|
58
|
+
</repository>
|
59
|
+
</repositories>
|
60
|
+
|
61
|
+
<distributionManagement>
|
62
|
+
<repository>
|
63
|
+
<id>tinkerpop-repository</id>
|
64
|
+
<name>TinkerPop Maven2 Repository</name>
|
65
|
+
<url>ftp://ftp.tinkerpop.com:21/public/maven2/</url>
|
66
|
+
</repository>
|
67
|
+
</distributionManagement>
|
68
|
+
|
69
|
+
<build>
|
70
|
+
<directory>${basedir}/target</directory>
|
71
|
+
<finalName>${project.artifactId}-${project.version}</finalName>
|
72
|
+
<resources>
|
73
|
+
<resource>
|
74
|
+
<directory>${basedir}/src/main/resources
|
75
|
+
</directory>
|
76
|
+
</resource>
|
77
|
+
</resources>
|
78
|
+
<testResources>
|
79
|
+
<testResource>
|
80
|
+
<directory>${basedir}/src/test/resources
|
81
|
+
</directory>
|
82
|
+
</testResource>
|
83
|
+
</testResources>
|
84
|
+
<plugins>
|
85
|
+
<plugin>
|
86
|
+
<artifactId>maven-compiler-plugin</artifactId>
|
87
|
+
<configuration>
|
88
|
+
<source>1.6</source>
|
89
|
+
<target>1.6</target>
|
90
|
+
</configuration>
|
91
|
+
</plugin>
|
92
|
+
<plugin>
|
93
|
+
<artifactId>maven-assembly-plugin</artifactId>
|
94
|
+
<version>2.2-beta-4</version>
|
95
|
+
<executions>
|
96
|
+
<execution>
|
97
|
+
<phase>package</phase>
|
98
|
+
<goals>
|
99
|
+
<goal>attached</goal>
|
100
|
+
</goals>
|
101
|
+
</execution>
|
102
|
+
</executions>
|
103
|
+
<configuration>
|
104
|
+
<descriptors>
|
105
|
+
<descriptor>pom/standalone.xml</descriptor>
|
106
|
+
</descriptors>
|
107
|
+
<finalName>${project.artifactId}-${project.version}</finalName>
|
108
|
+
<outputDirectory>lib</outputDirectory>
|
109
|
+
<workDirectory>target/assembly/work</workDirectory>
|
110
|
+
<tarLongFileMode>warn</tarLongFileMode>
|
111
|
+
</configuration>
|
112
|
+
</plugin>
|
113
|
+
<plugin>
|
114
|
+
<groupId>org.apache.maven.plugins</groupId>
|
115
|
+
<artifactId>maven-javadoc-plugin</artifactId>
|
116
|
+
<version>2.6.1</version>
|
117
|
+
</plugin>
|
118
|
+
</plugins>
|
119
|
+
<extensions>
|
120
|
+
<extension>
|
121
|
+
<groupId>org.apache.maven.wagon</groupId>
|
122
|
+
<artifactId>wagon-ftp</artifactId>
|
123
|
+
<version>1.0-alpha-6</version>
|
124
|
+
</extension>
|
125
|
+
</extensions>
|
126
|
+
</build>
|
127
|
+
|
128
|
+
</project>
|
data/pom/standalone.xml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
<assembly>
|
2
|
+
<id>standalone</id>
|
3
|
+
<formats>
|
4
|
+
<format>jar</format>
|
5
|
+
</formats>
|
6
|
+
<includeBaseDirectory>false</includeBaseDirectory>
|
7
|
+
|
8
|
+
<fileSets>
|
9
|
+
<fileSet>
|
10
|
+
<directory>target/classes</directory>
|
11
|
+
<outputDirectory>/</outputDirectory>
|
12
|
+
</fileSet>
|
13
|
+
</fileSets>
|
14
|
+
|
15
|
+
<dependencySets>
|
16
|
+
<dependencySet>
|
17
|
+
<outputDirectory>/</outputDirectory>
|
18
|
+
<unpack>true</unpack>
|
19
|
+
<scope>runtime</scope>
|
20
|
+
</dependencySet>
|
21
|
+
</dependencySets>
|
22
|
+
</assembly>
|
metadata
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pacer-dex
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: java
|
7
|
+
authors:
|
8
|
+
- Darrick Wiebe
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: pacer
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ! '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 1.0.0
|
21
|
+
none: false
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.0
|
27
|
+
none: false
|
28
|
+
prerelease: false
|
29
|
+
type: :runtime
|
30
|
+
description: Dex jars and related code for Pacer
|
31
|
+
email:
|
32
|
+
- darrick@innatesoftware.com
|
33
|
+
executables: []
|
34
|
+
extensions: []
|
35
|
+
extra_rdoc_files: []
|
36
|
+
files:
|
37
|
+
- .gitignore
|
38
|
+
- Gemfile
|
39
|
+
- README.md
|
40
|
+
- Rakefile
|
41
|
+
- lib/pacer-dex.rb
|
42
|
+
- lib/pacer-dex/graph.rb
|
43
|
+
- lib/pacer-dex/rspec.rb
|
44
|
+
- lib/pacer-dex/version.rb
|
45
|
+
- pacer-dex.gemspec
|
46
|
+
- pom.xml
|
47
|
+
- pom/standalone.xml
|
48
|
+
- lib/pacer-dex-2.0.0-standalone.jar
|
49
|
+
homepage: http://sparsity-technologies.com
|
50
|
+
licenses: []
|
51
|
+
post_install_message:
|
52
|
+
rdoc_options: []
|
53
|
+
require_paths:
|
54
|
+
- lib
|
55
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ! '>='
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: !binary |-
|
60
|
+
MA==
|
61
|
+
none: false
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: !binary |-
|
67
|
+
MA==
|
68
|
+
none: false
|
69
|
+
requirements: []
|
70
|
+
rubyforge_project: pacer-dex
|
71
|
+
rubygems_version: 1.8.24
|
72
|
+
signing_key:
|
73
|
+
specification_version: 3
|
74
|
+
summary: Dex jars and related code for Pacer
|
75
|
+
test_files: []
|
76
|
+
has_rdoc:
|