Java Main function
[algorithm] / application.rb
1 # Java Klimbim
2 ENV["JAVA_HOME"] = "/usr/lib/jvm/java-6-sun" unless ENV["JAVA_HOME"]
3 ENV["JAVA_CP"] = File.join File.expand_path(File.dirname(__FILE__)),"java"
4 deps = []
5 deps << "#{ENV["JAVA_HOME"]}/lib/tools.jar"
6 deps << "#{ENV["JAVA_HOME"]}/lib/classes.jar"
7 deps << "#{ENV["JAVA_CP"]}"
8 jars = Dir[ENV["JAVA_CP"]+"/*.jar"].collect {|f| File.expand_path(f) }
9 deps = deps + jars
10 ENV["CLASSPATH"] = deps.join(":")
11
12 require 'rubygems'
13
14
15 # fminer libs to be included before openbabel, otherwise strange SWIG overloading problems
16 require File.join(File.expand_path(File.dirname(__FILE__)), 'libfminer/libbbrc/bbrc') 
17 require File.join(File.expand_path(File.dirname(__FILE__)), 'libfminer/liblast/last')
18 require File.join(File.expand_path(File.dirname(__FILE__)), 'last-utils/lu.rb')
19
20 gem "opentox-ruby", "~> 4"
21 require 'opentox-ruby'
22 require 'rjb'
23 require 'rinruby'
24
25
26 # main
27 require 'fminer.rb'
28 require 'lazar.rb'
29 require 'fs.rb'
30 require 'pc.rb'
31
32 set :lock, true
33
34 before do
35         LOGGER.debug "Request: " + request.path
36 end
37
38 # Get a list of available algorithms
39 #
40 # @return [text/uri-list] algorithm URIs
41 get '/?' do
42         list = [ url_for('/lazar', :full), url_for('/fminer/bbrc', :full), url_for('/fminer/bbrc/sample', :full), url_for('/fminer/last', :full), url_for('/fminer/bbrc/match', :full), url_for('/fminer/last/match', :full), url_for('/feature_selection/rfe', :full), url_for('/pc', :full) ].join("\n") + "\n"
43   case request.env['HTTP_ACCEPT']
44   when /text\/html/
45     content_type "text/html"
46     OpenTox.text_to_html list,@subjectid
47   else
48     content_type 'text/uri-list'
49     list
50   end
51 end