Skip to content

Commit

Permalink
Improved commands
Browse files Browse the repository at this point in the history
  • Loading branch information
yokolet committed Apr 3, 2013
1 parent 4f2b46d commit 7ee4691
Show file tree
Hide file tree
Showing 6 changed files with 103 additions and 82 deletions.
52 changes: 26 additions & 26 deletions Jarfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -31,29 +31,29 @@ groups:
artifacts:
- jar:com.datomic:datomic-free:jar:0.8.3848:
transitive:
com.h2database:h2:jar:1.3.165: {}
org.apache.lucene:lucene-core:jar:3.3.0: {}
io.netty:netty:jar:3.6.0.Final: {}
net.java.dev.jets3t:jets3t:jar:0.8.1:
com.jamesmurty.utils:java-xmlbuilder:jar:0.4: {}
commons-httpclient:commons-httpclient:jar:3.1: {}
org.slf4j:jul-to-slf4j:jar:1.6.4:
org.slf4j:slf4j-api:jar:1.6.4: {}
org.slf4j:log4j-over-slf4j:jar:1.6.4: {}
com.google.guava:guava:jar:12.0.1:
com.google.code.findbugs:jsr305:jar:1.3.9: {}
org.slf4j:jcl-over-slf4j:jar:1.6.4: {}
org.codehaus.janino:commons-compiler-jdk:jar:2.6.1:
org.codehaus.janino:commons-compiler:jar:2.6.1: {}
org.hornetq:hornetq-core:jar:2.2.21.Final: {}
org.clojure:clojure:jar:1.4.0: {}
org.slf4j:jcl-over-slf4j:jar:1.6.4: {}
io.netty:netty:jar:3.6.0.Final: {}
com.amazonaws:aws-java-sdk:jar:1.3.0:
commons-codec:commons-codec:jar:1.3: {}
org.slf4j:log4j-over-slf4j:jar:1.6.4: {}
org.codehaus.janino:commons-compiler-jdk:jar:2.6.1:
org.codehaus.janino:commons-compiler:jar:2.6.1: {}
com.google.guava:guava:jar:12.0.1:
com.google.code.findbugs:jsr305:jar:1.3.9: {}
org.fressian:fressian:jar:0.6.3: {}
org.hornetq:hornetq-core:jar:2.2.21.Final: {}
org.clojure:tools.cli:jar:0.2.2: {}
com.h2database:h2:jar:1.3.165: {}
org.apache.lucene:lucene-core:jar:3.3.0: {}
org.slf4j:slf4j-nop:jar:1.6.4: {}
org.apache.tomcat:tomcat-jdbc:jar:7.0.27:
org.apache.tomcat:tomcat-juli:jar:7.0.27: {}
net.java.dev.jets3t:jets3t:jar:0.8.1:
com.jamesmurty.utils:java-xmlbuilder:jar:0.4: {}
commons-httpclient:commons-httpclient:jar:3.1: {}
runtime:
dependencies:
- com.amazonaws:aws-java-sdk:jar:1.3.0
Expand Down Expand Up @@ -83,29 +83,29 @@ groups:
artifacts:
- jar:com.datomic:datomic-free:jar:0.8.3848:
transitive:
com.h2database:h2:jar:1.3.165: {}
org.apache.lucene:lucene-core:jar:3.3.0: {}
io.netty:netty:jar:3.6.0.Final: {}
net.java.dev.jets3t:jets3t:jar:0.8.1:
com.jamesmurty.utils:java-xmlbuilder:jar:0.4: {}
commons-httpclient:commons-httpclient:jar:3.1: {}
org.slf4j:jul-to-slf4j:jar:1.6.4:
org.slf4j:slf4j-api:jar:1.6.4: {}
org.slf4j:log4j-over-slf4j:jar:1.6.4: {}
com.google.guava:guava:jar:12.0.1:
com.google.code.findbugs:jsr305:jar:1.3.9: {}
org.slf4j:jcl-over-slf4j:jar:1.6.4: {}
org.codehaus.janino:commons-compiler-jdk:jar:2.6.1:
org.codehaus.janino:commons-compiler:jar:2.6.1: {}
org.hornetq:hornetq-core:jar:2.2.21.Final: {}
org.clojure:clojure:jar:1.4.0: {}
org.slf4j:jcl-over-slf4j:jar:1.6.4: {}
io.netty:netty:jar:3.6.0.Final: {}
com.amazonaws:aws-java-sdk:jar:1.3.0:
commons-codec:commons-codec:jar:1.3: {}
org.slf4j:log4j-over-slf4j:jar:1.6.4: {}
org.codehaus.janino:commons-compiler-jdk:jar:2.6.1:
org.codehaus.janino:commons-compiler:jar:2.6.1: {}
com.google.guava:guava:jar:12.0.1:
com.google.code.findbugs:jsr305:jar:1.3.9: {}
org.fressian:fressian:jar:0.6.3: {}
org.hornetq:hornetq-core:jar:2.2.21.Final: {}
org.clojure:tools.cli:jar:0.2.2: {}
com.h2database:h2:jar:1.3.165: {}
org.apache.lucene:lucene-core:jar:3.3.0: {}
org.slf4j:slf4j-nop:jar:1.6.4: {}
org.apache.tomcat:tomcat-jdbc:jar:7.0.27:
org.apache.tomcat:tomcat-juli:jar:7.0.27: {}
net.java.dev.jets3t:jets3t:jar:0.8.1:
com.jamesmurty.utils:java-xmlbuilder:jar:0.4: {}
commons-httpclient:commons-httpclient:jar:3.1: {}
remote_repositories:
- http://clojars.org/repo/
- https://repository.jboss.org/nexus/content/groups/public/
2 changes: 1 addition & 1 deletion datomic_version.cnf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
datomic-free-0.8.3848
datomic-free-0.8.3861
17 changes: 9 additions & 8 deletions diametric.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ as entities into a Datomic database.
EOF
gem.homepage = "https://github.com/relevance/diametric"

gem.files = %w(Gemfile Jarfile Jarfile.lock LICENSE.txt README.md Rakefile datomic_version.cnf diametric.gemspec) + Dir.glob('lib/**/*') + Dir.glob('ext/**/*')
gem.files = %w(Gemfile Jarfile Jarfile.lock LICENSE.txt README.md Rakefile datomic_version.cnf diametric.gemspec) + Dir.glob('lib/**/*') + Dir.glob('ext/**/*') + Dir.glob('spec/**/*')
gem.executables = []
gem.test_files = Dir.glob("spec/**/*.rb")
gem.require_paths = ["lib"]
gem.executables = ["datomic-rest", "download-datomic"]

gem.add_dependency 'edn', '~> 1.0'
gem.add_dependency 'activesupport', '>= 3.0.0'
Expand All @@ -28,15 +29,15 @@ EOF
gem.add_dependency 'rubyzip', '~> 0.9.9'
gem.add_dependency 'rspec', '~> 2.13.0'
gem.add_dependency 'lock_jar', '= 0.7.3' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
gem.add_dependency 'jruby-openssl', '~> 0.8.2' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
gem.add_dependency 'jruby-openssl', '~> 0.8.7' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
gem.add_dependency 'rake-compiler', '~> 0.8.2' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"

gem.add_development_dependency 'rake-compiler', '~> 0.8.2'
gem.add_development_dependency 'pry', '~> 0.9.12'
gem.add_development_dependency 'guard', '~> 1.6.2'
gem.add_development_dependency 'guard-rspec', '~> 2.4.0'
gem.add_development_dependency 'rb-inotify', '~> 0.9.0'
gem.add_development_dependency 'rb-fsevent', '~> 0.9.3'
gem.add_development_dependency 'rb-fchange', '~> 0.0.6'
gem.add_development_dependency 'guard', '~> 1.6.2' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"
gem.add_development_dependency 'guard-rspec', '~> 2.4.0' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"
gem.add_development_dependency 'rb-inotify', '~> 0.9.0' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"
gem.add_development_dependency 'rb-fsevent', '~> 0.9.3' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"
gem.add_development_dependency 'rb-fchange', '~> 0.0.6' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"
gem.add_development_dependency 'yard', '~> 0.8.4.1' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"
gem.add_development_dependency 'redcarpet', '~> 2.2.2' if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"

Expand Down
37 changes: 28 additions & 9 deletions lib/diametric/rest_service.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require 'net/http'

module Diametric
class RestService
class << self
Expand Down Expand Up @@ -82,24 +84,41 @@ def start(opts={})
@db_alias = opts[:db_alias] ? opts[:db_alias] : "free"
@uri = opts[:uri] ? opts[:uri] : "datomic:mem://"

uri = URI("http://#{@host}:#{@port}/")

unless port_available?(uri)
puts "Somebody is using #{@port}. Choose other."
return
end

temp_pid = spawn("#{command} -p #{@port} #{@db_alias} #{@uri}")

uri = URI("http://#{@host}:#{@port}/")
@pid = temp_pid if ready?(uri)
end

def stop
Process.kill("HUP", @pid) if @pid
@pid = nil
end

def port_available?(uri)
response = Net::HTTP.get_response(uri)
false
rescue Errno::ECONNREFUSED
true
end

def ready?(uri)
while true
begin
Net::HTTP.get_response(uri)
break
response = Net::HTTP.get_response(uri)
return true
rescue
sleep 1
redo
end
end
@pid = temp_pid
end

def stop
Process.kill("HUP", @pid) if @pid
@pid = nil
true
end

end
Expand Down
51 changes: 30 additions & 21 deletions script/datomic-rest
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
#!/usr/bin/env ruby

# Find Datomic home
parent_dir = File.join(File.dirname(__FILE__), "../vendor/datomic")
datomic_home = ""
Dir.entries(parent_dir).each {|d| datomic_home = parent_dir + "/" + d if d =~ /datomic/}

# Find jar archives
JARS = Dir["#{datomic_home}/lib/*.jar"]
JARS += Dir["#{datomic_home}/*transactor*.jar"]

# Setup CLASSPATH
CLASSPATH = JARS.join(File::PATH_SEPARATOR)
files = ["samples/clj", "bin", "resources"]
CLASSPATH += File::PATH_SEPARATOR + files.collect {|f| datomic_home + "/" + f}.join(File::PATH_SEPARATOR)

# Command
command = ["java -server -Xmx1g", "-cp", CLASSPATH, "clojure.main", "-i", "#{datomic_home}/bin/bridge.clj", "--main datomic.rest", ARGV].flatten.join(" ")
#puts "#{command}"

# Startup REST server
@pid = spawn(command)
puts @pid
options = {}

opts = OptionParser.new do |opts|
opts.define_head "Usage: datomic-rest -p port -a db_alias -u uri"
opts.separator ""
opts.separator "Example:"
opts.separator " datomc-rest -p 9000 -a free -u datomic:mem://"

opts.on("-p", "--port [port]", Integer, "Port number") do |v|
options[:port] = v
end

opts.on("-a", "--alias [alias]", String, "Alias name") do |v|
options[:db_alias] = v
end

opts.on("-u", "--uri [uri]", String, "URI") do |v|
options[:uri] = v
end
end
opts.parse!

DATOMIC_NAME = File.read(File.join(File.dirname(__FILE__), "..", "datomic_version.cnf"))

require 'diametric/rest_service'

service = Diametric::RestService.new
PID = service.start(options)

puts "Datomic REST service is running (PID = #{PID})" unless PID.nil?
26 changes: 9 additions & 17 deletions script/vendor-datomic-free
Original file line number Diff line number Diff line change
@@ -1,21 +1,13 @@
#!/bin/bash
#!/usr/bin/env ruby

set -e
DATOMIC_NAME = File.read(File.join(File.dirname(__FILE__), "..", "datomic_version.cnf"))

DEFAULT_DATOMIC_VERSION="0.8.3814"
VERSION=${1:-$DEFAULT_DATOMIC_VERSION}

if [ ! -d "vendor/datomic/datomic-free-$VERSION" ]; then
echo "Downloading Datomic Free $VERSION"

mkdir -p vendor/datomic
curl --progress-bar -o datomic-free.zip "http://downloads.datomic.com/$VERSION/datomic-free-$VERSION.zip"
unzip -d vendor/datomic datomic-free.zip > /dev/null
rm datomic-free.zip

echo "Done. Datomic Free $VERSION now available in vendor/datomic/datomic-free-$VERSION"
require 'diametric/rest_service'

if Diametric::RestService.downloaded?
puts "Datomic #{DATOMIC_NAME} is already present in vendor/datomic"
else
echo "Datomic Free $VERSION already present in vendor/datomic/datomic-free-$VERSION"
fi

puts "Now, downloading..."
Diametric::RestService.download
puts "Done. Datomic #{DATOMIC_NAME} has been downloaded in vendor/datomic"
end

0 comments on commit 7ee4691

Please sign in to comment.