project on algorithm moved to dataaccess
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-access/DatabasesResourcesManagerAlgorithms@96621 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
4a73641630
commit
da3697efa1
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="var" path="GLOBUS_LOCATION"/>
|
||||||
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
|
</classpath>
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>DatabasesResourcesManagerAlgorithms</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1,4 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
encoding//src/main/java=UTF-8
|
||||||
|
encoding//src/test/java=UTF-8
|
||||||
|
encoding/<project>=UTF-8
|
|
@ -0,0 +1,12 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.source=1.6
|
|
@ -0,0 +1,4 @@
|
||||||
|
activeProfiles=
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
resolveWorkspaceProjects=true
|
||||||
|
version=1
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,11 @@
|
||||||
|
record_id, name_code, common_name, language, country, reference_id, database_id, is_infraspecies
|
||||||
|
"1","AFD-Pul-1838","pinhead spot","English","USA","52836","7","0"
|
||||||
|
"16","Alg-111","Piedra de mar","Spanish","Spain","52834","7","0"
|
||||||
|
"17","Alg-111","Pierre vermiculée","French","France","52834","7","0"
|
||||||
|
"18","Alg-111","Stone weed","English","UK","52834","7","0"
|
||||||
|
"20","Alg-11694","Neptune’s Necklace","English","New Zealand","0","2","0"
|
||||||
|
"1111710","IOP-171","long-style rush","","USA","52836","7","0"
|
||||||
|
"66","Alg-18","Gracilaire commune","French","France","52834","7","0"
|
||||||
|
"67","Alg-18","Gracilaria común","Spanish","Spain","52834","7","0"
|
||||||
|
"69","Alg-18","Warty gracilaria","English","UK","52834","7","0"
|
||||||
|
"405527","MOS-35163276","Mexican homomallium moss","","USA","52836","7","0"
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
record_id, name_code, common_name, language, country, reference_id, database_id, is_infraspecies
|
||||||
|
"2121604","ITS-175610","Aplomado Falcon","English","","2214020","17","0"
|
||||||
|
"2163895","Fis-128361","秋姑","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"2154291","Fis-11737","深朴丽鱼","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"1081773","ILD-2243","Urd (Hi)","","","86318","15","0"
|
||||||
|
"179632","Fle-131470","blokha","Russian","Russia","0","22","1"
|
||||||
|
"2151134","Fis-114720","Notched triplefin","English","Australia","2537694","10","0"
|
||||||
|
"2262331","Fis-24976","Redstripe rockfish","English","Alaska","2535589","10","0"
|
||||||
|
"2390952","Fis-46978","Clarence River Cod","English","UK","2539030","10","0"
|
||||||
|
"2396602","Fis-50441","Lizz ta' lvant","Maltese","Malta","2538156","10","0"
|
||||||
|
"2160650","Fis-125159","智利深海鰩","Mandarin Chinese","China Main","2538555","10","0"
|
||||||
|
"2222763","Fis-23191","Cazon","Spanish","Nicaragua","2537779","10","0"
|
||||||
|
"2385189","Fis-35123","黄五棘鲷","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"1114713","Rep-252","Rodhain's Purple-glossed Snake","","","","8","0"
|
||||||
|
"2433898","ITS-30890","southern dawnflower","unspecified","","","17","1"
|
||||||
|
"2369600","Fis-32417","多斑鳚","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"2459470","Con-4280","Mexican yew","Eng","GBR, USA","2570458","45","0"
|
||||||
|
"2426904","ITS-184237","thymeleaf sandwort","unspecified","","","17","1"
|
||||||
|
"2319090","Fis-28983","Morena","Spanish","Ecuador","2539421","10","0"
|
||||||
|
"2157206","Fis-122117","Leiltaos Zwergfächerfisch","German","Germany","2537780","10","0"
|
||||||
|
"179986","Fle-135900","blokha","Russian","Russia","0","22","0"
|
||||||
|
"2141580","ITS-76551","deepwater pondsnail","unspecified","","2213296","17","0"
|
||||||
|
"2141881","ITS-81503","chalky pitar","English","","2211683","17","0"
|
||||||
|
"2134159","ITS-561834","Forty-spotted Pardalote","English","","2214020","17","0"
|
||||||
|
"2308351","Fis-27223","Kirjotilapia","Finnish","Finland","2540442","10","0"
|
||||||
|
"2256344","Fis-24442","붕동갈치","Korean","Korea Rep","2541912","10","0"
|
||||||
|
"2267729","Fis-25192","Gelama","Javanese","Indonesia","2536447","10","0"
|
||||||
|
"2211690","Fis-22909","Tomkod atlantycki","Polish","Poland","2536482","10","0"
|
||||||
|
"2258740","Fis-24686","灰鳍大眼海鲫","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"2297412","Fis-26287","黑灰朴丽鱼","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"2167724","Fis-132534","东海无鳍鳐","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"2307967","Fis-27168","Lyretail panchax","English","USA","2535977","10","0"
|
||||||
|
"2180725","Fis-146448","皇","Mandarin Chinese","China Main","2538555","10","0"
|
||||||
|
"2307086","Fis-27070","Indang","Visayan","Philippines","2535272","10","0"
|
||||||
|
"2457623","Con-2620","Wilson spruce","Eng","GBR, USA","2570450","45","0"
|
||||||
|
"2279614","Fis-25608","Halfbeak","English","Mozambique","2536167","10","0"
|
||||||
|
"2312717","Fis-27853","Kokuten Hagi","Japanese","Japan","2537563","10","0"
|
||||||
|
"2368129","Fis-32293","多须须鼬鳚","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"2210079","Fis-22888","Jin mu lu","Mandarin Chinese","Singapore","2538772","10","0"
|
||||||
|
"178337","Fle-113820","blokha","Russian","Russia","0","22","1"
|
||||||
|
"2315532","Fis-28284","雷氏金翅雀鯛","Mandarin Chinese","China Main","2538555","10","0"
|
||||||
|
"2412229","Fis-60060","Huaycuya","Spanish","Spain","2536419","10","1"
|
||||||
|
"2187966","Fis-155686","Chalamathi","Tamil","India","2536709","10","0"
|
||||||
|
"2346423","Fis-30588","Olievis","Afrikaans","Namibia","2539068","10","0"
|
||||||
|
"2365722","Fis-31855","Shadowfin soldier","English","South Africa","2535830","10","0"
|
||||||
|
"2393963","Fis-48802","ปลายอน","Thai","Thailand","2538225","10","0"
|
||||||
|
"2152801","Fis-116136","Barbudo","Spanish","Ecuador","2536930","10","0"
|
||||||
|
"2230329","Fis-23397","Papagaio","Portuguese","Brazil","2536757","10","0"
|
||||||
|
"2194815","Fis-21693","Two-tone wrasse","English","UK","2537104","10","0"
|
||||||
|
"2240303","Fis-23658","Yapot","Tagalog","Philippines","2541391","10","0"
|
||||||
|
"2424944","ITS-179715","Brown Jay","English","","2214989","17","0"
|
||||||
|
"2274801","Fis-25388","Latilus gwinejski","Polish","Poland","2536482","10","0"
|
||||||
|
"2188736","Fis-157561","帕氏波魚","Mandarin Chinese","China Main","2538555","10","0"
|
||||||
|
"2438603","ITS-42261","desert fescue","unspecified","","","17","1"
|
||||||
|
"1085149","ILD-3708","Kitsonakoho (Madagascar)","","","87036","15","0"
|
||||||
|
"2228767","Fis-23339","Tamban","Cebuano","Philippines","2538544","10","0"
|
||||||
|
"2256680","Fis-24462","Streamer searobin","English","USA","2540555","10","0"
|
||||||
|
"2119080","ITS-104991","lucerne plant bug","English","","2215183","17","0"
|
||||||
|
"2395229","Fis-49418","Korop","Ukrainian","Ukraine","2534972","10","1"
|
||||||
|
"2233860","Fis-23491","Mero negro","Spanish","Mexico","2540555","10","0"
|
||||||
|
"2279046","Fis-25596","Clouded eel","English","Australia","2541630","10","0"
|
||||||
|
"2321818","Fis-28979","錐頭粗犁齒海鰻","Mandarin Chinese","China Main","2538555","10","0"
|
||||||
|
"2443009","ITS-528708","beach pinweed","unspecified","","","17","1"
|
||||||
|
"2300388","Fis-26559","Bia","Tagalog","Philippines","2536141","10","0"
|
||||||
|
"2121714","ITS-175673","Slaty-backed Forest Falcon","English","","2214020","17","0"
|
||||||
|
"2424814","ITS-179573","Greater 'Amakihi","English","","2214589","17","0"
|
||||||
|
"2338105","Fis-29907","Marut","Other","Philippines","2541391","10","0"
|
||||||
|
"1077205","ILD-1621","Fula Criqua","","","86686","15","0"
|
||||||
|
"2194962","Fis-21801","Adavalan-tiriki","Tamil","India","2536709","10","0"
|
||||||
|
"2175314","Fis-140816","Corvina","Portuguese","Brazil","2539090","10","0"
|
||||||
|
"2433483","ITS-30496","day flowering jassamine","unspecified","","","17","1"
|
||||||
|
"2231732","Fis-23424","羽鳃鲹","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"2145007","ITS-505084","Chihuahuan fishhook cactus","unspecified","","2214989","17","0"
|
||||||
|
"2130268","ITS-558399","Collared Myna","English","","2214020","17","0"
|
||||||
|
"2125700","ITS-179826","Olomao","English","","2214020","17","0"
|
||||||
|
"2171635","Fis-136714","銅魚","Mandarin Chinese","China Main","2538555","10","0"
|
||||||
|
"2167169","Fis-132642","Marinka Waltonova","Czech","Czech Rep","2540431","10","0"
|
||||||
|
"2152681","Fis-116088","apretador","Spanish","Argentina","2540546","10","0"
|
||||||
|
"2383124","Fis-34758","Susulu","Chokwe","Angola","2537500","10","0"
|
||||||
|
"2315341","Fis-28265","Schreitmüllers Scheibensalmler","German","Germany","2537730","10","0"
|
||||||
|
"2366548","Fis-31903","Vuur-dikkop","Afrikaans","South Africa","2535248","10","0"
|
||||||
|
"1089932","ILD-7149","Arapati","","","85681","15","0"
|
||||||
|
"2214095","Fis-22951","Ivitaruk","Inuktitut","Canada","2538249","10","0"
|
||||||
|
"2305261","Fis-26906","Naithatte","Kannada","India","2540202","10","0"
|
||||||
|
"2287052","Fis-25847","Te bubunabanaba","Kiribati","Kiribati","2538253","10","0"
|
||||||
|
"2256430","Fis-24447","Bacalhau","Portuguese","Brazil","2539686","10","0"
|
||||||
|
"2168289","Fis-132793","Kaboiya","Misima-Paneati","Papua N Guin","2539589","10","0"
|
||||||
|
"2321897","Fis-28992","Snouted mullet","English","UK","2542291","10","0"
|
||||||
|
"2121369","ITS-175367","buse de Swainson","French","","2215127","17","0"
|
||||||
|
"2221182","Fis-23136","Rosada","Spanish","Spain","2535372","10","0"
|
||||||
|
"2156082","Fis-120664","Férit","French","Switzerland","2537804","10","0"
|
||||||
|
"2294894","Fis-26147","Common lizardfish","English","Philippines","2540195","10","0"
|
||||||
|
"2352881","Fis-31035","长副海蛾鱼","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"1086634","ILD-5478","Konyushina Poliova (Ukr)","","","87805","15","0"
|
||||||
|
"2425510","ITS-180035","Mariana flying fox","English","","","17","0"
|
||||||
|
"2222925","Fis-23192","Sucker","English","Trinidad Tob","2538855","10","0"
|
||||||
|
"2282798","Fis-25718","Képaara","Carolinian","N Marianas","2536481","10","0"
|
||||||
|
"2360741","Fis-31473","Isdang bato","Tagalog","Philippines","2541391","10","0"
|
||||||
|
"1666160","Sol-905","Anamama","Malgache","","","64","0"
|
||||||
|
"2308978","Fis-27318","奥洛草鳗","Mandarin Chinese","China Main","2541296","10","0"
|
||||||
|
"2380079","Fis-34138","Längsband-Ziersalmler","German","Germany","2537730","10","0"
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
percentage, isofficial, language, countrycode
|
||||||
|
52.4,true,Pashto,AFG
|
||||||
|
95.6,true,Dutch,NLD
|
||||||
|
86.2,true,Papiamento,ANT
|
||||||
|
97.9,true,Albaniana,ALB
|
||||||
|
86,true,Arabic,DZA
|
||||||
|
90.6,true,Samoan,ASM
|
||||||
|
44.6,false,Spanish,AND
|
||||||
|
37.2,false,Ovimbundu,AGO
|
||||||
|
0,true,English,AIA
|
||||||
|
95.7,false,Creole English,ATG
|
||||||
|
42,true,Arabic,ARE
|
||||||
|
96.8,true,Spanish,ARG
|
||||||
|
93.4,true,Armenian,ARM
|
||||||
|
76.7,false,Papiamento,ABW
|
||||||
|
81.2,true,English,AUS
|
||||||
|
89,true,Azerbaijani,AZE
|
||||||
|
89.7,false,Creole English,BHS
|
||||||
|
67.7,true,Arabic,BHR
|
||||||
|
97.7,true,Bengali,BGD
|
||||||
|
95.1,false,Bajan,BRB
|
||||||
|
59.2,true,Dutch,BEL
|
||||||
|
50.8,true,English,BLZ
|
||||||
|
39.8,false,Fon,BEN
|
||||||
|
100,true,English,BMU
|
||||||
|
50,true,Dzongkha,BTN
|
||||||
|
87.7,true,Spanish,BOL
|
||||||
|
99.2,true,Serbo-Croatian,BIH
|
||||||
|
75.5,false,Tswana,BWA
|
||||||
|
97.5,true,Portuguese,BRA
|
||||||
|
97.3,true,English,GBR
|
||||||
|
0,true,English,VGB
|
||||||
|
45.5,true,Malay,BRN
|
||||||
|
83.2,true,Bulgariana,BGR
|
||||||
|
50.2,false,Mossi,BFA
|
||||||
|
98.1,true,Kirundi,BDI
|
||||||
|
0,true,English,CYM
|
||||||
|
89.7,true,Spanish,CHL
|
||||||
|
0,true,Maori,COK
|
||||||
|
97.5,true,Spanish,CRI
|
||||||
|
43.9,false,Somali,DJI
|
||||||
|
100,false,Creole English,DMA
|
||||||
|
98,true,Spanish,DOM
|
||||||
|
93,true,Spanish,ECU
|
||||||
|
98.8,true,Arabic,EGY
|
||||||
|
100,true,Spanish,SLV
|
||||||
|
49.1,true,Tigrinja,ERI
|
||||||
|
74.4,true,Spanish,ESP
|
||||||
|
22.7,true,Zulu,ZAF
|
||||||
|
31,false,Oromo,ETH
|
||||||
|
0,true,English,FLK
|
||||||
|
50.8,true,Fijian,FJI
|
||||||
|
29.3,true,Pilipino,PHL
|
||||||
|
100,true,Faroese,FRO
|
||||||
|
35.8,false,Fang,GAB
|
||||||
|
34.1,false,Malinke,GMB
|
||||||
|
71.7,true,Georgiana,GEO
|
||||||
|
52.4,false,Akan,GHA
|
||||||
|
88.9,true,English,GIB
|
||||||
|
100,false,Creole English,GRD
|
||||||
|
87.5,true,Greenlandic,GRL
|
||||||
|
95,false,Creole French,GLP
|
||||||
|
37.5,true,English,GUM
|
||||||
|
64.7,true,Spanish,GTM
|
||||||
|
38.6,false,Ful,GIN
|
||||||
|
36.4,false,Crioulo,GNB
|
||||||
|
96.4,false,Creole English,GUY
|
||||||
|
100,false,Haiti Creole,HTI
|
||||||
|
97.2,true,Spanish,HND
|
||||||
|
88.7,false,Canton Chinese,HKG
|
||||||
|
0,true,Norwegian,SJM
|
||||||
|
39.4,false,Javanese,IDN
|
||||||
|
39.9,true,Hindi,IND
|
||||||
|
77.2,true,Arabic,IRQ
|
||||||
|
45.7,true,Persian,IRN
|
||||||
|
98.4,true,English,IRL
|
||||||
|
95.7,true,Icelandic,ISL
|
||||||
|
63.1,true,Hebrew,ISR
|
||||||
|
94.1,true,Italian,ITA
|
||||||
|
0,false,Sunda,TMP
|
||||||
|
92,true,German,AUT
|
||||||
|
94.2,false,Creole English,JAM
|
||||||
|
99.1,true,Japanese,JPN
|
||||||
|
99.6,true,Arabic,YEM
|
||||||
|
97.9,true,Arabic,JOR
|
||||||
|
0,false,Chinese,CXR
|
||||||
|
75.2,true,Serbo-Croatian,YUG
|
||||||
|
88.6,true,Khmer,KHM
|
||||||
|
19.7,false,Fang,CMR
|
||||||
|
60.4,true,English,CAN
|
||||||
|
100,false,Crioulo,CPV
|
||||||
|
46,true,Kazakh,KAZ
|
||||||
|
20.9,false,Kikuyu,KEN
|
||||||
|
23.8,false,Gbaya,CAF
|
||||||
|
92,true,Chinese,CHN
|
||||||
|
59.7,true,Kirgiz,KGZ
|
||||||
|
98.9,true,Kiribati,KIR
|
||||||
|
99,true,Spanish,COL
|
||||||
|
75,true,Comorian,COM
|
||||||
|
51.5,false,Kongo,COG
|
||||||
|
18,false,Luba,COD
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
TEST_ALGORITHM=org.gcube.test.algorithm.SimpleAlg
|
|
@ -0,0 +1,30 @@
|
||||||
|
#### Use two appenders, one to log to console, another to log to a file
|
||||||
|
log4j.rootCategory= R
|
||||||
|
|
||||||
|
#### First appender writes to console
|
||||||
|
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||||
|
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||||
|
log4j.appender.stdout.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %p %t %c - %m%n
|
||||||
|
#log4j.appender.stdout.layout.ConversionPattern=%m%n
|
||||||
|
#log4j.appender.stdout.File=Analysis.log
|
||||||
|
|
||||||
|
#### Second appender writes to a file
|
||||||
|
log4j.logger.AnalysisLogger=trace, stdout,R
|
||||||
|
log4j.appender.R=org.apache.log4j.RollingFileAppender
|
||||||
|
log4j.appender.R.File=Analysis.log
|
||||||
|
log4j.appender.R.MaxFileSize=50000KB
|
||||||
|
log4j.appender.R.MaxBackupIndex=2
|
||||||
|
log4j.appender.R.layout=org.apache.log4j.PatternLayout
|
||||||
|
log4j.appender.R.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %p %t %c - %m%n
|
||||||
|
#log4j.appender.R.layout.ConversionPattern=%m%n
|
||||||
|
|
||||||
|
#### Third appender writes to a file
|
||||||
|
log4j.logger.org.hibernate=H
|
||||||
|
#log4j.appender.H=org.apache.log4j.RollingFileAppender
|
||||||
|
log4j.appender.H=org.apache.log4j.AsyncAppender
|
||||||
|
#log4j.appender.H.File=HibernateLog.log
|
||||||
|
#log4j.appender.H.MaxFileSize=1024KB
|
||||||
|
#log4j.appender.H.MaxBackupIndex=2
|
||||||
|
log4j.appender.H.layout=org.apache.log4j.PatternLayout
|
||||||
|
log4j.appender.H.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %p %t %c - %m%n
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<hibernate-configuration>
|
||||||
|
<session-factory>
|
||||||
|
<property name="connection.driver_class">org.postgresql.Driver</property>
|
||||||
|
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
|
||||||
|
<!-- <property name="connection.url">jdbc:postgresql://localhost/testdb</property> -->
|
||||||
|
<!-- <property name="connection.url">jdbc:postgresql://146.48.87.169/testdb</property> -->
|
||||||
|
<property name="connection.url">jdbc:postgresql://obis2.i-marine.research-infrastructures.eu:5432/obis</property>
|
||||||
|
<property name="connection.username">gcube</property> -->
|
||||||
|
<property name="connection.password">d4science2</property>
|
||||||
|
<!-- <property name="dialect">org.hibernatespatial.postgis.PostgisDialect</property>-->
|
||||||
|
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
|
||||||
|
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
|
||||||
|
<property name="c3p0.timeout">0</property>
|
||||||
|
<property name="c3p0.max_size">1</property>
|
||||||
|
<property name="c3p0.max_statements">0</property>
|
||||||
|
<property name="c3p0.min_size">1</property>
|
||||||
|
<property name="current_session_context_class">thread</property>
|
||||||
|
</session-factory>
|
||||||
|
</hibernate-configuration>
|
|
@ -0,0 +1,3 @@
|
||||||
|
1,AFD-Pul-1838,pinhead spot,English,USA,52836,7,0
|
||||||
|
16,Alg-111,Piedra de mar,Spanish,Spain,52834,7,0
|
||||||
|
17,Alg-111,Pierre vermiculée,French,France,52834,7,0
|
|
@ -0,0 +1,680 @@
|
||||||
|
9.7703E-7,0.00563891
|
||||||
|
1.4364E-4,0.0510053
|
||||||
|
4.19937E-5,0.0279353
|
||||||
|
2.17743E-5,0.0185856
|
||||||
|
1.944E-4,0.0632979
|
||||||
|
3.44589E-6,0.00799436
|
||||||
|
4.25587E-6,0.00841894
|
||||||
|
4.78409E-6,0.0109983
|
||||||
|
6.89079E-5,0.0364259
|
||||||
|
4.13036E-4,0.121509
|
||||||
|
2.31896E-5,0.0191968
|
||||||
|
1.1745E-5,0.0180833
|
||||||
|
2.35434E-5,0.0207482
|
||||||
|
1.59746E-4,0.0812034
|
||||||
|
7.69376E-5,0.0567212
|
||||||
|
1.33776E-5,0.0141317
|
||||||
|
1.55566E-5,0.0205317
|
||||||
|
3.68715E-4,0.116281
|
||||||
|
31.0365,22.4365
|
||||||
|
4.9397E-6,0.00880015
|
||||||
|
1.60402E-5,0.0176136
|
||||||
|
20.0,18
|
||||||
|
0.0152733,1.36372
|
||||||
|
2.79727E-4,0.17039
|
||||||
|
1.38851E-5,0.0161386
|
||||||
|
3.36371,19.7354
|
||||||
|
1.00472E-5,0.0129909
|
||||||
|
7.62046E-4,0.18213
|
||||||
|
6.13964E-5,0.0296894
|
||||||
|
8.63237E-6,0.0123222
|
||||||
|
9.45758E-6,0.0129748
|
||||||
|
7.65775E-6,0.0104123
|
||||||
|
0.333088,8.76726
|
||||||
|
5.47461E-6,0.0114068
|
||||||
|
2.10634E-4,0.0661339
|
||||||
|
0.00120054,0.61099
|
||||||
|
2.35178E-6,0.00580937
|
||||||
|
7.06851E-4,0.137094
|
||||||
|
3.63206E-6,0.00796127
|
||||||
|
12.6305,36.8429
|
||||||
|
9.10321E-6,0.0126034
|
||||||
|
1.5285E-5,0.0157055
|
||||||
|
4.69194E-6,0.0085918
|
||||||
|
9.4151E-4,0.189438
|
||||||
|
1.00963E-5,0.015446
|
||||||
|
13.407,107.25
|
||||||
|
2.32949E-5,0.0252971
|
||||||
|
4.81072E-6,0.0110336
|
||||||
|
1.38707E-5,0.0180138
|
||||||
|
46.125,29.5
|
||||||
|
7.68974E-5,0.0447466
|
||||||
|
7.74824E-6,0.0104459
|
||||||
|
6.3402E-6,0.0098905
|
||||||
|
1.04955E-5,0.0152612
|
||||||
|
1.17834E-4,0.0500829
|
||||||
|
3.40577E-6,0.00804342
|
||||||
|
4.81313E-6,0.0109715
|
||||||
|
4.8783E-6,0.00874993
|
||||||
|
5.67719E-6,0.0114547
|
||||||
|
0.0011657,0.183435
|
||||||
|
6.38817E-6,0.00985259
|
||||||
|
5.2251E-5,0.0386048
|
||||||
|
8.08833E-6,0.012186
|
||||||
|
2.0055E-6,0.00529332
|
||||||
|
1.67406E-5,0.0170766
|
||||||
|
7.32496E-6,0.0117775
|
||||||
|
4.98469E-4,0.102785
|
||||||
|
4.21296E-6,0.0108077
|
||||||
|
0.00144765,0.234982
|
||||||
|
7.00299E-6,0.0121675
|
||||||
|
1.59803E-5,0.0157567
|
||||||
|
1.43714E-5,0.0188496
|
||||||
|
1.65039E-4,0.05943
|
||||||
|
3.16313E-5,0.0224181
|
||||||
|
5.73683E-6,0.0111805
|
||||||
|
4.93268E-6,0.00879117
|
||||||
|
1.37418E-5,0.0182006
|
||||||
|
5.61506E-6,0.011055
|
||||||
|
3.57414E-5,0.0348078
|
||||||
|
23.0204,48.8665
|
||||||
|
5.18973E-5,0.0365254
|
||||||
|
1.52769E-5,0.0162869
|
||||||
|
1.87537E-5,0.0195511
|
||||||
|
1.05333E-5,0.0121601
|
||||||
|
5.4302E-6,0.0112553
|
||||||
|
8.63725E-6,0.0182325
|
||||||
|
1.09125E-5,0.0153535
|
||||||
|
1.63658E-5,0.0169236
|
||||||
|
2.78859E-5,0.0256243
|
||||||
|
6.21926E-6,0.0111308
|
||||||
|
1.0126E-4,0.042484
|
||||||
|
4.62966E-4,0.180625
|
||||||
|
6.32661E-6,0.00981543
|
||||||
|
1.52606E-4,0.0517762
|
||||||
|
2.12023E-5,0.0172204
|
||||||
|
20.0,18
|
||||||
|
3.74942E-5,0.0295507
|
||||||
|
2.05478E-5,0.0219105
|
||||||
|
7.66321E-6,0.0146046
|
||||||
|
1.30299E-4,0.0465436
|
||||||
|
2.71046E-5,0.0252701
|
||||||
|
5.25587E-6,0.0111208
|
||||||
|
1.51102E-5,0.0167551
|
||||||
|
2.39602E-5,0.0219328
|
||||||
|
2.12038E-4,0.063825
|
||||||
|
9.0321E-6,0.0127005
|
||||||
|
0.00137113,0.340533
|
||||||
|
0.00331001,0.865211
|
||||||
|
0.0249418,2.59526
|
||||||
|
3.4304E-6,0.00801633
|
||||||
|
6.51167E-6,0.0115893
|
||||||
|
25.8366,33.9156
|
||||||
|
9.11521E-6,0.0173653
|
||||||
|
1.0255E-5,0.0119973
|
||||||
|
7.2849E-6,0.0103475
|
||||||
|
6.98957E-6,0.0142729
|
||||||
|
1.9099E-4,0.0885071
|
||||||
|
2.58334E-5,0.0229562
|
||||||
|
7.2885E-6,0.0145269
|
||||||
|
6.1871E-6,0.00975862
|
||||||
|
1.46131E-5,0.0168372
|
||||||
|
1.35135E-5,0.0147707
|
||||||
|
2.84612E-5,0.0244796
|
||||||
|
5.57003E-6,0.0109714
|
||||||
|
1.1586E-4,0.0596005
|
||||||
|
1.43117E-5,0.016303
|
||||||
|
2.83717E-4,0.0676009
|
||||||
|
3.46651E-5,0.0325543
|
||||||
|
1.3657E-4,0.0479645
|
||||||
|
6.32937E-5,0.0364656
|
||||||
|
4.90611E-6,0.0110709
|
||||||
|
3.19951E-5,0.0230177
|
||||||
|
6.50331E-5,0.0408002
|
||||||
|
5.68722E-6,0.0110757
|
||||||
|
1.06169E-4,0.0539417
|
||||||
|
7.59937E-6,0.0103364
|
||||||
|
6.62968E-6,0.00974917
|
||||||
|
7.91608E-5,0.0461142
|
||||||
|
1.47453E-5,0.0188568
|
||||||
|
2.5939E-7,0.00330998
|
||||||
|
1.15728E-4,0.102883
|
||||||
|
3.49181E-5,0.0248281
|
||||||
|
1.37263E-4,0.0675856
|
||||||
|
6.22479E-6,0.00976885
|
||||||
|
3.99077E-5,0.0264196
|
||||||
|
2.65142E-5,0.020737
|
||||||
|
3.88691E-6,0.00890433
|
||||||
|
1.43979E-5,0.0151321
|
||||||
|
1.62729E-5,0.0167599
|
||||||
|
5.14887E-5,0.0368274
|
||||||
|
1.0498E-4,0.0706319
|
||||||
|
2.97793E-4,0.0834792
|
||||||
|
5.48516E-6,0.010986
|
||||||
|
5.393E-8,0.00204208
|
||||||
|
3.82439E-5,0.0264744
|
||||||
|
4.12254E-5,0.0303821
|
||||||
|
8.63469E-5,0.0507739
|
||||||
|
8.80536E-6,0.0115935
|
||||||
|
7.98975E-5,0.0650532
|
||||||
|
8.81541E-6,0.012471
|
||||||
|
2.74345E-5,0.0269974
|
||||||
|
1.65052E-5,0.0193822
|
||||||
|
4.29089E-6,0.0106643
|
||||||
|
1.55832E-5,0.0191981
|
||||||
|
20.0,18
|
||||||
|
0.00120422,0.163573
|
||||||
|
41.2624,61.4094
|
||||||
|
1.12162E-4,0.0514486
|
||||||
|
6.26934E-6,0.00976265
|
||||||
|
2.87747E-6,0.0107453
|
||||||
|
5.67042E-6,0.0111357
|
||||||
|
1.15193E-5,0.0152805
|
||||||
|
4.94424E-6,0.00917829
|
||||||
|
7.22401E-6,0.0117199
|
||||||
|
9.5606E-7,0.00466656
|
||||||
|
4.90297E-6,0.00878456
|
||||||
|
5.60354E-6,0.0112022
|
||||||
|
1.73893E-5,0.0247408
|
||||||
|
1.26203E-4,0.0684286
|
||||||
|
10.5093,17.6008
|
||||||
|
7.54061E-6,0.0103009
|
||||||
|
6.33218E-5,0.0396868
|
||||||
|
1.64273E-5,0.0169376
|
||||||
|
1.5592E-4,0.0567286
|
||||||
|
38.4655,106.582
|
||||||
|
7.15368E-6,0.0114791
|
||||||
|
6.90115E-5,0.042822
|
||||||
|
3.93766E-4,0.117894
|
||||||
|
1.17915E-5,0.0156303
|
||||||
|
15.2436,31.9661
|
||||||
|
1.63266E-5,0.0185158
|
||||||
|
1.52654E-4,0.0571452
|
||||||
|
2.55482E-5,0.0246063
|
||||||
|
2.02187E-5,0.0196909
|
||||||
|
4.91042E-6,0.00916803
|
||||||
|
6.08298E-6,0.00959011
|
||||||
|
4.86997E-6,0.00873849
|
||||||
|
9.70018E-6,0.0150352
|
||||||
|
4.11043E-5,0.0310217
|
||||||
|
6.79588E-6,0.0119992
|
||||||
|
4.04501E-6,0.0104922
|
||||||
|
1.53992E-5,0.0148827
|
||||||
|
6.72016E-5,0.0365898
|
||||||
|
27.2604,53.1083
|
||||||
|
9.51526E-5,0.0424098
|
||||||
|
1.96001E-4,0.072912
|
||||||
|
2.22597E-5,0.0204549
|
||||||
|
4.09066E-6,0.0109499
|
||||||
|
4.93808E-6,0.00882365
|
||||||
|
1.1038E-4,0.0522993
|
||||||
|
1.03582E-5,0.0120528
|
||||||
|
1.33266E-5,0.0185396
|
||||||
|
2.49224E-4,0.12057
|
||||||
|
6.28562E-6,0.0111544
|
||||||
|
5.48005E-6,0.013855
|
||||||
|
5.39748E-5,0.043773
|
||||||
|
7.35521E-6,0.0117967
|
||||||
|
1.39825E-4,0.0454189
|
||||||
|
5.58352E-5,0.0321382
|
||||||
|
5.59136E-6,0.0110979
|
||||||
|
8.84707E-5,0.036729
|
||||||
|
3.03348E-5,0.0216452
|
||||||
|
2.78348E-5,0.0214809
|
||||||
|
8.949E-5,0.0524961
|
||||||
|
1.42036E-5,0.0185446
|
||||||
|
6.88417E-6,0.0120961
|
||||||
|
8.78723E-6,0.0123838
|
||||||
|
32.0,24
|
||||||
|
9.72656E-6,0.0153021
|
||||||
|
5.14264E-4,0.118109
|
||||||
|
4.29736E-4,0.124482
|
||||||
|
4.80843E-6,0.0111309
|
||||||
|
0.00746446,0.79918
|
||||||
|
2.3214E-5,0.0209326
|
||||||
|
7.0459E-5,0.0355598
|
||||||
|
3.43171E-6,0.00807386
|
||||||
|
7.0591E-5,0.0487308
|
||||||
|
7.76933E-6,0.0120165
|
||||||
|
2.88501E-5,0.0243687
|
||||||
|
7.24E-5,0.040359
|
||||||
|
7.55489E-5,0.0469141
|
||||||
|
1.56898E-4,0.0632761
|
||||||
|
1.09235E-5,0.0124049
|
||||||
|
4.05651E-5,0.042648
|
||||||
|
1.51465E-5,0.0154193
|
||||||
|
1.78831E-5,0.0203524
|
||||||
|
1.51837E-5,0.0156147
|
||||||
|
7.24739E-6,0.0117771
|
||||||
|
1.64521E-4,0.0643537
|
||||||
|
1.00094E-5,0.0149554
|
||||||
|
4.64507E-6,0.00863177
|
||||||
|
6.99993E-6,0.0115393
|
||||||
|
3.76117E-5,0.030985
|
||||||
|
7.7686E-6,0.014735
|
||||||
|
8.01623E-5,0.0413427
|
||||||
|
1.1339E-5,0.0133611
|
||||||
|
4.87665E-6,0.00874776
|
||||||
|
1.51463E-4,0.0628629
|
||||||
|
6.31441E-6,0.0114204
|
||||||
|
1.77934E-5,0.0168571
|
||||||
|
0.990086,6.94953
|
||||||
|
3.46749E-6,0.00799544
|
||||||
|
3.54416E-5,0.0322305
|
||||||
|
1.45402E-5,0.0146951
|
||||||
|
3.40148E-5,0.0245084
|
||||||
|
1.97484E-5,0.0196968
|
||||||
|
3.87369E-5,0.0247396
|
||||||
|
5.70696E-6,0.0111178
|
||||||
|
99.2602,175.239
|
||||||
|
1.29631E-5,0.014126
|
||||||
|
10.2418,50.4454
|
||||||
|
1.09268E-5,0.0152518
|
||||||
|
12.2007,20.3949
|
||||||
|
6.87815E-5,0.0532574
|
||||||
|
8.57708E-4,0.125572
|
||||||
|
2.15802E-4,0.105642
|
||||||
|
4.796E-6,0.00870184
|
||||||
|
5.71075E-6,0.0110694
|
||||||
|
1.53091E-5,0.0187159
|
||||||
|
1.26111E-5,0.0140716
|
||||||
|
1.76523E-5,0.0171751
|
||||||
|
2.6124E-5,0.0256958
|
||||||
|
7.23155E-5,0.035976
|
||||||
|
5.77085E-5,0.030605
|
||||||
|
2.07301E-5,0.024814
|
||||||
|
7.63905E-5,0.0381513
|
||||||
|
0.00503634,0.3736
|
||||||
|
2.13352E-5,0.0201323
|
||||||
|
2.14379E-4,0.0765103
|
||||||
|
1.29366E-4,0.0653318
|
||||||
|
4.81075E-6,0.0087364
|
||||||
|
1.2456E-5,0.0157668
|
||||||
|
4.72969E-6,0.00877609
|
||||||
|
9.5267E-6,0.0130738
|
||||||
|
2.70645E-5,0.0233318
|
||||||
|
4.12543E-4,0.121654
|
||||||
|
2.28287E-5,0.0245126
|
||||||
|
6.65116E-6,0.0117262
|
||||||
|
1.03708E-5,0.0120501
|
||||||
|
5.11625E-5,0.0310841
|
||||||
|
8.50127E-6,0.0112504
|
||||||
|
3.39338E-5,0.0252766
|
||||||
|
2.3338E-4,0.0896917
|
||||||
|
4.36054E-4,0.102802
|
||||||
|
1.0299E-5,0.013153
|
||||||
|
3.64824E-6,0.0072728
|
||||||
|
8.7311E-6,0.0124873
|
||||||
|
4.99389E-6,0.00883864
|
||||||
|
3.01524E-5,0.0221235
|
||||||
|
1.43308E-5,0.0185584
|
||||||
|
0.0135375,1.15703
|
||||||
|
4.23928E-5,0.0315665
|
||||||
|
7.87581E-6,0.014493
|
||||||
|
2.37326E-5,0.0250884
|
||||||
|
2.33263E-5,0.0210637
|
||||||
|
6.5444E-5,0.0333008
|
||||||
|
1.24917E-5,0.0148961
|
||||||
|
2.5057E-5,0.0258766
|
||||||
|
7.99923E-5,0.0392109
|
||||||
|
6.7407E-7,0.00370689
|
||||||
|
1.64934E-5,0.0156925
|
||||||
|
7.34689E-6,0.0117761
|
||||||
|
1.10116E-5,0.0155375
|
||||||
|
3.49003E-5,0.0240023
|
||||||
|
4.79389E-5,0.0336569
|
||||||
|
5.57741E-6,0.0111047
|
||||||
|
3.36945E-5,0.0233381
|
||||||
|
7.64675E-6,0.010386
|
||||||
|
0.00799724,0.659073
|
||||||
|
6.71526E-5,0.0344918
|
||||||
|
3.96247E-5,0.0253391
|
||||||
|
2.47065E-4,0.0686088
|
||||||
|
9.36907E-5,0.042208
|
||||||
|
1.94518E-4,0.11588
|
||||||
|
4.81752E-6,0.0109983
|
||||||
|
0.00100041,0.179554
|
||||||
|
4.82336E-6,0.00871537
|
||||||
|
3.26412E-4,0.101085
|
||||||
|
2.01583E-5,0.0202071
|
||||||
|
4.58397E-4,0.0947255
|
||||||
|
1.23653E-5,0.0160874
|
||||||
|
5.32341E-6,0.0117989
|
||||||
|
4.30236,13.4722
|
||||||
|
1.96971E-5,0.0183275
|
||||||
|
2.09065E-4,0.0598918
|
||||||
|
0.0028134,0.359766
|
||||||
|
4.87499E-4,0.105899
|
||||||
|
4.89188E-5,0.0320554
|
||||||
|
4.81601E-6,0.00869791
|
||||||
|
4.72743E-6,0.00900802
|
||||||
|
7.07032E-4,0.215604
|
||||||
|
3.35413E-4,0.078974
|
||||||
|
2.72193E-5,0.0288247
|
||||||
|
1.05278E-4,0.0590045
|
||||||
|
5.48046E-6,0.0113265
|
||||||
|
7.62165E-5,0.0417477
|
||||||
|
1.23731E-5,0.015662
|
||||||
|
1.49468E-5,0.024292
|
||||||
|
3.48717E-5,0.0348614
|
||||||
|
0.0164454,0.67151
|
||||||
|
1.7237E-4,0.0548759
|
||||||
|
4.66219E-6,0.00863206
|
||||||
|
7.299E-8,0.00174579
|
||||||
|
2.00278E-5,0.0187269
|
||||||
|
0.00899511,0.602984
|
||||||
|
6.2523E-6,0.00976894
|
||||||
|
8.42477E-4,0.161537
|
||||||
|
3.62395E-6,0.00984839
|
||||||
|
1.04946E-4,0.0435103
|
||||||
|
6.53428,37.7425
|
||||||
|
1.39836E-5,0.0147882
|
||||||
|
4.75411E-4,0.102706
|
||||||
|
6.92834E-6,0.0124173
|
||||||
|
36.908,29.2145
|
||||||
|
3.17329E-5,0.0321644
|
||||||
|
4.80431E-6,0.0087475
|
||||||
|
4.70384E-6,0.00854259
|
||||||
|
8.21236E-5,0.0480911
|
||||||
|
3.49175E-5,0.0260483
|
||||||
|
1.94338E-5,0.0173099
|
||||||
|
5.64119E-5,0.0403665
|
||||||
|
3.33142E-5,0.025431
|
||||||
|
3.13217E-5,0.0234571
|
||||||
|
7.02198E-5,0.0343343
|
||||||
|
7.3128E-7,0.00380925
|
||||||
|
4.78409E-6,0.0109895
|
||||||
|
5.22142E-6,0.00839373
|
||||||
|
1.32269E-5,0.0195893
|
||||||
|
4.29958E-6,0.0114484
|
||||||
|
9.91712E-6,0.0149054
|
||||||
|
5.07431,29.0843
|
||||||
|
2.51492E-4,0.0943709
|
||||||
|
6.32571E-6,0.00984089
|
||||||
|
6.90728E-5,0.046415
|
||||||
|
2.93913E-5,0.0214902
|
||||||
|
2.31863E-5,0.0183523
|
||||||
|
3.47137E-6,0.00809219
|
||||||
|
3.3656E-6,0.00790383
|
||||||
|
4.73489E-5,0.0314832
|
||||||
|
8.05622E-5,0.0354184
|
||||||
|
4.74366E-6,0.00861308
|
||||||
|
16.7146,47.4161
|
||||||
|
3.51564E-6,0.00806651
|
||||||
|
8.33728E-5,0.0630348
|
||||||
|
4.30414E-5,0.0257771
|
||||||
|
7.08169E-6,0.0121962
|
||||||
|
1.94905E-5,0.017493
|
||||||
|
6.39635E-5,0.0425276
|
||||||
|
1.14504E-5,0.0135943
|
||||||
|
62.4943,42.9971
|
||||||
|
1.9094E-5,0.0207893
|
||||||
|
2.76009E-5,0.0207111
|
||||||
|
0.0010282,0.204352
|
||||||
|
2.8121E-6,0.00956001
|
||||||
|
8.52094E-6,0.0124186
|
||||||
|
2.35137E-4,0.0780883
|
||||||
|
1.07303E-4,0.0715886
|
||||||
|
8.19546E-6,0.0120523
|
||||||
|
2.738E-5,0.0253871
|
||||||
|
2.82366E-4,0.102415
|
||||||
|
7.63725E-6,0.0103654
|
||||||
|
2.3305E-4,0.0980442
|
||||||
|
8.84575E-5,0.0414556
|
||||||
|
1.46621E-5,0.0183132
|
||||||
|
0.00185081,0.266569
|
||||||
|
1.61395E-6,0.00704063
|
||||||
|
7.20101E-4,0.130395
|
||||||
|
1.60633E-5,0.0169116
|
||||||
|
8.33848E-4,0.14828
|
||||||
|
6.05287E-4,0.119328
|
||||||
|
7.37463E-6,0.0102347
|
||||||
|
6.90496E-6,0.0114783
|
||||||
|
0.00762325,0.5351
|
||||||
|
1.06799E-5,0.0181149
|
||||||
|
2.26395E-5,0.0190986
|
||||||
|
2.84254E-6,0.0106435
|
||||||
|
2.60988E-5,0.0277546
|
||||||
|
9.38991E-6,0.014974
|
||||||
|
1.20928E-5,0.0152344
|
||||||
|
1.18972E-5,0.0162437
|
||||||
|
1.04221E-4,0.0434984
|
||||||
|
4.62954E-5,0.0304854
|
||||||
|
9.29013E-5,0.0450334
|
||||||
|
6.38068E-6,0.00986119
|
||||||
|
8.70063E-6,0.0123836
|
||||||
|
5.47485E-5,0.0343837
|
||||||
|
1.90552E-4,0.0596715
|
||||||
|
1.60205E-4,0.0605616
|
||||||
|
4.83028E-6,0.00870924
|
||||||
|
1.63153E-5,0.0168672
|
||||||
|
1.0141E-5,0.0130523
|
||||||
|
1.85877E-5,0.022111
|
||||||
|
3.73099E-5,0.0293874
|
||||||
|
1.20618E-5,0.0141322
|
||||||
|
4.80132E-4,0.239321
|
||||||
|
1.86734E-5,0.0183217
|
||||||
|
2.15333E-6,0.00704786
|
||||||
|
2.8177E-7,0.00764778
|
||||||
|
1.19829E-4,0.0600073
|
||||||
|
2.11027E-4,0.0624342
|
||||||
|
4.15023E-5,0.0404231
|
||||||
|
6.3142E-5,0.0475227
|
||||||
|
7.01177E-5,0.0324059
|
||||||
|
3.50275E-5,0.0277303
|
||||||
|
3.76439E-6,0.00804053
|
||||||
|
4.16921E-6,0.0106673
|
||||||
|
7.86189E-6,0.0148531
|
||||||
|
1.17702E-5,0.0140042
|
||||||
|
2.07788E-6,0.00710602
|
||||||
|
7.33329E-6,0.0117783
|
||||||
|
0.00185396,0.334392
|
||||||
|
1.45967E-5,0.0152665
|
||||||
|
1.89768E-5,0.0220377
|
||||||
|
6.33974E-6,0.00988845
|
||||||
|
3.24418E-4,0.101348
|
||||||
|
8.90444E-6,0.0126817
|
||||||
|
2.90857E-5,0.0345513
|
||||||
|
5.68757E-6,0.00918417
|
||||||
|
0.00709752,0.577801
|
||||||
|
1.44068E-4,0.0630899
|
||||||
|
4.7697E-6,0.00871275
|
||||||
|
1.24975E-5,0.013882
|
||||||
|
14.3761,15.9211
|
||||||
|
2.99573E-4,0.0790785
|
||||||
|
3.90447E-5,0.0277512
|
||||||
|
1.04486E-5,0.0120927
|
||||||
|
7.32497E-5,0.0474162
|
||||||
|
0.0328583,1.68561
|
||||||
|
1.25832E-5,0.0169329
|
||||||
|
6.05401E-6,0.00966575
|
||||||
|
0.8522,7.41662
|
||||||
|
2.9527E-5,0.0232313
|
||||||
|
2.05127E-6,0.00704115
|
||||||
|
6.69359E-6,0.0142841
|
||||||
|
3.62366E-5,0.0249559
|
||||||
|
2.28879E-5,0.0194495
|
||||||
|
6.56421E-5,0.0413058
|
||||||
|
2.35693E-5,0.0193053
|
||||||
|
1.90307E-5,0.0178288
|
||||||
|
1.00153E-5,0.018204
|
||||||
|
2.57921E-5,0.0256418
|
||||||
|
20.0,18
|
||||||
|
4.8505E-6,0.0109678
|
||||||
|
5.61072E-6,0.0114127
|
||||||
|
4.7754E-5,0.0301519
|
||||||
|
2.42677E-5,0.0232316
|
||||||
|
1.89188E-5,0.0208227
|
||||||
|
6.61769E-4,0.167716
|
||||||
|
2.97141E-5,0.0223764
|
||||||
|
1.14063E-4,0.0447234
|
||||||
|
9.09487E-5,0.0446335
|
||||||
|
4.67532E-5,0.0283271
|
||||||
|
5.84188E-4,0.12433
|
||||||
|
2.28362E-5,0.0251913
|
||||||
|
4.84907E-5,0.0308274
|
||||||
|
1.11794E-5,0.0137001
|
||||||
|
27.0718,51.0763
|
||||||
|
1.08003E-4,0.0454306
|
||||||
|
9.38431E-6,0.0129279
|
||||||
|
2.04809E-6,0.0070513
|
||||||
|
3.12931E-5,0.028814
|
||||||
|
0.00189977,0.285349
|
||||||
|
1.20323E-5,0.0145518
|
||||||
|
6.43857E-6,0.0115764
|
||||||
|
9.13355E-6,0.0175894
|
||||||
|
1.13331E-5,0.0144328
|
||||||
|
0.00112667,0.202879
|
||||||
|
1.13165E-5,0.0142628
|
||||||
|
2.8717E-5,0.0212844
|
||||||
|
4.96852E-4,0.131825
|
||||||
|
13.4408,74.2049
|
||||||
|
1.95355E-4,0.0738632
|
||||||
|
8.48093E-5,0.0387794
|
||||||
|
8.52129E-6,0.0121269
|
||||||
|
5.15058E-5,0.031754
|
||||||
|
3.37542E-5,0.0249784
|
||||||
|
1.31215E-5,0.0153912
|
||||||
|
2.96757E-4,0.134141
|
||||||
|
4.9007E-5,0.0298154
|
||||||
|
4.18864E-5,0.0305646
|
||||||
|
2.08578E-6,0.00538811
|
||||||
|
0.0146687,2.34031
|
||||||
|
2.59284E-4,0.0825437
|
||||||
|
1.03252E-4,0.0543814
|
||||||
|
90.6332,103.019
|
||||||
|
5.12688E-5,0.0414163
|
||||||
|
8.2902E-7,0.00603566
|
||||||
|
3.18194E-6,0.00689977
|
||||||
|
8.55502E-5,0.0364648
|
||||||
|
4.8763E-6,0.00877332
|
||||||
|
3.54058E-6,0.00809896
|
||||||
|
1.38108E-6,0.00813992
|
||||||
|
1.90862E-5,0.0175106
|
||||||
|
4.88955E-6,0.00911519
|
||||||
|
15.7244,17.2081
|
||||||
|
4.99868E-6,0.0108084
|
||||||
|
0.00539245,0.624264
|
||||||
|
1.69463E-4,0.0630869
|
||||||
|
0.00259102,0.888393
|
||||||
|
8.39712E-5,0.0435661
|
||||||
|
4.73652E-6,0.010929
|
||||||
|
7.24351E-6,0.0116926
|
||||||
|
13.419,30.2048
|
||||||
|
1.11495E-4,0.0497078
|
||||||
|
6.18346E-6,0.00972724
|
||||||
|
6.87393E-6,0.0114111
|
||||||
|
1.79846E-5,0.0175689
|
||||||
|
4.57238E-5,0.0356232
|
||||||
|
8.10548E-4,0.140009
|
||||||
|
2.99394E-4,0.0757078
|
||||||
|
2.45417E-5,0.019924
|
||||||
|
5.04439E-6,0.00884144
|
||||||
|
5.42362E-6,0.0110175
|
||||||
|
2.20127E-5,0.0267511
|
||||||
|
9.94813E-5,0.0508959
|
||||||
|
1.25062,17.9565
|
||||||
|
1.61344E-4,0.0625028
|
||||||
|
0.00112262,0.229034
|
||||||
|
1.04855E-5,0.0131256
|
||||||
|
0.00125686,0.210136
|
||||||
|
5.17521,33.5174
|
||||||
|
4.7696E-6,0.00858219
|
||||||
|
3.081E-8,0.00359469
|
||||||
|
1.08837E-5,0.0146307
|
||||||
|
1.16904E-4,0.0594755
|
||||||
|
1.20467E-4,0.0768319
|
||||||
|
1.45649E-5,0.0152501
|
||||||
|
9.76951E-4,0.208879
|
||||||
|
2.26888E-5,0.0188056
|
||||||
|
1.72038E-5,0.0213398
|
||||||
|
9.7678E-7,0.00611272
|
||||||
|
5.10934E-6,0.00847851
|
||||||
|
4.94181E-6,0.00884812
|
||||||
|
6.06736E-6,0.00963022
|
||||||
|
4.22465E-4,0.106611
|
||||||
|
5.61754E-6,0.011148
|
||||||
|
0.0189674,1.07685
|
||||||
|
6.30447E-6,0.00967734
|
||||||
|
0.63882,14.4948
|
||||||
|
1.05014E-5,0.0152593
|
||||||
|
3.78932E-5,0.0276698
|
||||||
|
1.12453E-5,0.0155788
|
||||||
|
5.50268E-6,0.0113421
|
||||||
|
6.01866E-6,0.00979631
|
||||||
|
9.59838E-6,0.0128491
|
||||||
|
4.78663E-4,0.120393
|
||||||
|
1.80902E-4,0.0679503
|
||||||
|
3.50241E-6,0.00803909
|
||||||
|
1.59405E-5,0.016117
|
||||||
|
3.68681E-5,0.0332498
|
||||||
|
1.06166E-5,0.0129311
|
||||||
|
8.03002E-6,0.0121394
|
||||||
|
6.56986E-6,0.0116726
|
||||||
|
6.12983E-6,0.00961705
|
||||||
|
11.0619,36.9611
|
||||||
|
1.19807E-4,0.052702
|
||||||
|
2.12194E-5,0.0225268
|
||||||
|
8.16354E-6,0.012526
|
||||||
|
12.5088,23.2871
|
||||||
|
6.63737E-6,0.011786
|
||||||
|
8.69258E-6,0.0123714
|
||||||
|
4.05835E-5,0.0308466
|
||||||
|
6.67081E-6,0.0117398
|
||||||
|
1.22291E-4,0.0549408
|
||||||
|
5.35365E-5,0.037192
|
||||||
|
9.66958E-4,0.234486
|
||||||
|
6.06076E-6,0.00968083
|
||||||
|
5.31188E-6,0.0110805
|
||||||
|
4.54449E-6,0.00877477
|
||||||
|
7.30305E-6,0.0120953
|
||||||
|
2.96538E-4,0.0964961
|
||||||
|
2.66118E-5,0.0226364
|
||||||
|
1.95749E-5,0.0201733
|
||||||
|
5.43957E-5,0.0283473
|
||||||
|
2.10492E-6,0.00694118
|
||||||
|
3.22508E-5,0.0245779
|
||||||
|
4.93528E-6,0.00873575
|
||||||
|
8.70525E-5,0.03822
|
||||||
|
1.95783E-5,0.0203246
|
||||||
|
4.83264E-6,0.0090926
|
||||||
|
7.3687E-4,0.200016
|
||||||
|
1.4543E-5,0.0148591
|
||||||
|
6.35245E-6,0.00988494
|
||||||
|
5.644E-7,0.00566877
|
||||||
|
3.38921E-6,0.00804852
|
||||||
|
1.22734E-4,0.0534114
|
||||||
|
1.16764E-5,0.0140771
|
||||||
|
5.72278E-5,0.029283
|
||||||
|
2.69315E-4,0.0838663
|
||||||
|
6.55163E-5,0.0582305
|
||||||
|
8.29973E-6,0.012344
|
||||||
|
6.14166E-5,0.0414622
|
||||||
|
2.56287E-5,0.0206759
|
||||||
|
4.83934E-6,0.011014
|
||||||
|
1.62917E-5,0.0188659
|
||||||
|
1.06344E-5,0.0127406
|
||||||
|
6.25899E-6,0.00976509
|
||||||
|
1.3609E-5,0.0191601
|
||||||
|
3.55264E-5,0.0284813
|
||||||
|
3.06702E-5,0.0236348
|
||||||
|
45.5391,106.753
|
||||||
|
1.04514E-5,0.01559
|
||||||
|
4.62526E-5,0.0378597
|
||||||
|
1.603E-7,0.00442308
|
||||||
|
1.80651E-4,0.0792493
|
||||||
|
2.81819E-5,0.0230531
|
||||||
|
4.54264E-6,0.0108184
|
||||||
|
1.25729E-5,0.0140746
|
||||||
|
5.36799E-5,0.0301957
|
||||||
|
1.15805E-5,0.0135475
|
||||||
|
5.02222E-6,0.00877333
|
||||||
|
8.41231E-5,0.0403267
|
||||||
|
2.04203E-4,0.113848
|
||||||
|
5.58337E-6,0.011363
|
||||||
|
7.66205E-6,0.0104025
|
||||||
|
3.27681E-6,0.00702314
|
||||||
|
1.34649E-5,0.0184943
|
||||||
|
1.03667E-5,0.0120576
|
||||||
|
8.71444E-6,0.0124203
|
||||||
|
3.57407E-5,0.0414939
|
|
@ -0,0 +1,7 @@
|
||||||
|
AQUAMAPS_SUITABLE=org.gcube.dataanalysis.ecoengine.spatialdistributions.AquamapsSuitable
|
||||||
|
AQUAMAPS_NATIVE=org.gcube.dataanalysis.ecoengine.spatialdistributions.AquamapsNative
|
||||||
|
AQUAMAPS_NATIVE_2050=org.gcube.dataanalysis.ecoengine.spatialdistributions.AquamapsNative2050
|
||||||
|
AQUAMAPS_SUITABLE_2050=org.gcube.dataanalysis.ecoengine.spatialdistributions.AquamapsSuitable2050
|
||||||
|
AQUAMAPS_NATIVE_NEURALNETWORK=org.gcube.dataanalysis.ecoengine.spatialdistributions.AquamapsNN
|
||||||
|
AQUAMAPS_SUITABLE_NEURALNETWORK=org.gcube.dataanalysis.ecoengine.spatialdistributions.AquamapsNNSuitable
|
||||||
|
FEED_FORWARD_A_N_N_DISTRIBUTION=org.gcube.dataanalysis.ecoengine.spatialdistributions.FeedForwardNeuralNetworkDistribution
|
|
@ -0,0 +1,3 @@
|
||||||
|
DBSCAN=org.gcube.dataanalysis.ecoengine.clustering.DBScan
|
||||||
|
KMEANS=org.gcube.dataanalysis.ecoengine.clustering.KMeans
|
||||||
|
XMEANS=org.gcube.dataanalysis.ecoengine.clustering.XMeansWrapper
|
|
@ -0,0 +1,3 @@
|
||||||
|
DISCREPANCY_ANALYSIS=org.gcube.dataanalysis.ecoengine.evaluation.DiscrepancyAnalysis
|
||||||
|
QUALITY_ANALYSIS=org.gcube.dataanalysis.ecoengine.evaluation.DistributionQualityAnalysis
|
||||||
|
HRS=org.gcube.dataanalysis.ecoengine.evaluation.HabitatRepresentativeness
|
|
@ -0,0 +1,2 @@
|
||||||
|
LOCAL_WITH_DATABASE=org.gcube.dataanalysis.ecoengine.processing.LocalSplitGenerator
|
||||||
|
SIMPLE_LOCAL=org.gcube.dataanalysis.ecoengine.processing.LocalSimpleSplitGenerator
|
|
@ -0,0 +1 @@
|
||||||
|
HSPEN_MODELER=org.gcube.dataanalysis.ecoengine.modeling.SimpleModeler
|
|
@ -0,0 +1,4 @@
|
||||||
|
HSPEN=org.gcube.dataanalysis.ecoengine.models.ModelHSPEN
|
||||||
|
AQUAMAPSNN=org.gcube.dataanalysis.ecoengine.models.ModelAquamapsNN
|
||||||
|
FEED_FORWARD_ANN=org.gcube.dataanalysis.ecoengine.models.FeedForwardNN
|
||||||
|
FEED_FORWARD_ANN_FILE=org.gcube.dataanalysis.ecoengine.models.testing.FeedForwardNNFile
|
|
@ -0,0 +1 @@
|
||||||
|
AQUAMAPS_SUITABLE=org.gcube.dataanalysis.peeng.models.AquamapsSuitableNode
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
||||||
|
1,2.87747E-6,2,1.603E-7,3,2.84254E-6,4,1.06799E-5,5,8.2902E-7,6,9.5606E-7,7,12.5088,8,2.8121E-6,9,3.62395E-6,10,15.2436,11,27.0718,12,62.4943,13,27.2604,14,38.4655,15,0.00185396,16,8.42477E-4,17,0.00539245,18,5.84188E-4,19,1.00963E-5,20,1.65052E-5,21,4.22465E-4,22,4.83264E-6,23,2.82366E-4,24,3.37542E-5,25,2.26395E-5,26,1.51102E-5,27,9.59838E-6,28,3.44589E-6,29,1.96001E-4,30,4.7696E-6,
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
ABSENCE_CELLS_FROM_AQUAMAPS=org.gcube.dataanalysis.ecoengine.transducers.simplequeryexecutors.MarineAbsencePointsFromAquamapsDistribution
|
||||||
|
BIOCLIMATE_HSPEC=org.gcube.dataanalysis.ecoengine.transducers.BioClimateHSPECTransducer
|
||||||
|
BIOCLIMATE_HCAF=org.gcube.dataanalysis.ecoengine.transducers.BioClimateHCAFTransducer
|
||||||
|
BIOCLIMATE_HSPEN=org.gcube.dataanalysis.ecoengine.transducers.BioClimateHSPENTransducer
|
||||||
|
HCAF_INTERPOLATION=org.gcube.dataanalysis.ecoengine.transducers.InterpolationTransducer
|
||||||
|
HCAF_FILTER=org.gcube.dataanalysis.ecoengine.transducers.simplequeryexecutors.HcafFilter
|
||||||
|
HSPEN_FILTER=org.gcube.dataanalysis.ecoengine.transducers.simplequeryexecutors.HspenFilter
|
||||||
|
OCCURRENCES_MERGER=org.gcube.dataanalysis.ecoengine.transducers.OccurrencePointsMerger
|
||||||
|
OCCURRENCES_INTERSECTOR=org.gcube.dataanalysis.ecoengine.transducers.OccurrencePointsIntersector
|
||||||
|
OCCURRENCES_MARINE_TERRESTRIAL=org.gcube.dataanalysis.ecoengine.transducers.OccurrencePointsInSeaOnEarth
|
||||||
|
OCCURRENCES_DUPLICATES_DELETER=org.gcube.dataanalysis.ecoengine.transducers.OccurrencePointsDuplicatesDeleter
|
||||||
|
OCCURRENCES_SUBTRACTION=org.gcube.dataanalysis.ecoengine.transducers.OccurrencePointsSubtraction
|
||||||
|
PRESENCE_CELLS_GENERATION=org.gcube.dataanalysis.ecoengine.transducers.simplequeryexecutors.MarinePresencePoints
|
||||||
|
FIN_TAXA_MATCH=org.gcube.dataanalysis.fin.taxamatch.TaxaMatchTransducer
|
||||||
|
LISTNAMES_TABLES=org.gcube.dataacces.algorithms.DatabasesResourcesManagerAlgorithms.AbsoluteSpeciesBarChartsAlgorithm
|
||||||
|
TEST_ALG=org.gcube.dataacces.algorithms.DatabasesResourcesManagerAlgorithms.SimpleAlg
|
||||||
|
LISTDBINFO=org.gcube.dataacces.algorithms.drmalgorithms.ListDBInfo
|
||||||
|
LISTDBNAMES=org.gcube.dataacces.algorithms.drmalgorithms.ListNames
|
||||||
|
LISTDBSCHEMA=org.gcube.dataacces.algorithms.drmalgorithms.ListSchemas
|
||||||
|
LISTTABLES=org.gcube.dataacces.algorithms.drmalgorithms.ListTables
|
||||||
|
GETTABLEDETAILS=org.gcube.dataacces.algorithms.drmalgorithms.GetTableDetails
|
||||||
|
LISTSUBMITQUERY=org.gcube.dataacces.algorithms.drmalgorithms.SubmitQuery
|
||||||
|
SAMPLEONTABLE=org.gcube.dataacces.algorithms.drmalgorithms.SampleOnTable
|
||||||
|
SMARTSAMPLEONTABLE=org.gcube.dataacces.algorithms.drmalgorithms.SmartSampleOnTable
|
||||||
|
RANDOMSAMPLEONTABLE=org.gcube.dataacces.algorithms.drmalgorithms.RandomSampleOnTable
|
|
@ -0,0 +1,12 @@
|
||||||
|
ANOMALIES_DETECTION=DBSCAN,KMEANS,XMEANS
|
||||||
|
CLASSIFICATION=FEED_FORWARD_A_N_N_DISTRIBUTION
|
||||||
|
CLIMATE=BIOCLIMATE_HSPEC,BIOCLIMATE_HCAF,BIOCLIMATE_HSPEN,HCAF_INTERPOLATION
|
||||||
|
CORRELATION_ANALYSIS=HRS
|
||||||
|
DATA_CLUSTERING=DBSCAN,KMEANS,XMEANS
|
||||||
|
FILTERING=HCAF_FILTER,HSPEN_FILTER
|
||||||
|
FUNCTION_SIMULATION=FEED_FORWARD_A_N_N_DISTRIBUTION
|
||||||
|
OCCURRENCES=ABSENCE_CELLS_FROM_AQUAMAPS,PRESENCE_CELLS_GENERATION,OCCURRENCES_MERGER,OCCURRENCES_INTERSECTOR,OCCURRENCES_MARINE_TERRESTRIAL,OCCURRENCES_DUPLICATES_DELETER,OCCURRENCES_SUBTRACTION
|
||||||
|
PERFORMANCES_EVALUATION=QUALITY_ANALYSIS,DISCREPANCY_ANALYSIS
|
||||||
|
SPECIES_SIMULATION=AQUAMAPS_SUITABLE,AQUAMAPS_NATIVE,AQUAMAPS_NATIVE_2050,AQUAMAPS_SUITABLE_2050,AQUAMAPS_NATIVE_NEURALNETWORK,AQUAMAPS_SUITABLE_NEURALNETWORK
|
||||||
|
TRAINING=HSPEN,AQUAMAPSNN,FEED_FORWARD_ANN
|
||||||
|
TIME_SERIES=HCAF_INTERPOLATION
|
|
@ -0,0 +1,10 @@
|
||||||
|
Xiphias gladius,135638
|
||||||
|
Fulmarus glacialis,131885
|
||||||
|
Thunnus albacares,124076
|
||||||
|
Pachymetopon blochii,113597
|
||||||
|
Aptenodytes patagonicus,112605
|
||||||
|
Gadus morhua,101777
|
||||||
|
Caretta caretta,101769
|
||||||
|
Thyrsites atun,97986
|
||||||
|
Loligo vulgaris reynaudi,96672
|
||||||
|
Argyrozona argyrozona,96278
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>org.gcube.dataacces.algorithms</groupId>
|
||||||
|
<artifactId>DatabasesResourcesManagerAlgorithms</artifactId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.gcube.tools</groupId>
|
||||||
|
<artifactId>maven-parent</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<!-- <packaging>maven-plugin</packaging> -->
|
||||||
|
|
||||||
|
<!-- <name>DatabasesResourcesManagerAlgorithms Maven Mojo</name> -->
|
||||||
|
<!-- <url>http://maven.apache.org</url> -->
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<!-- <dependency> -->
|
||||||
|
<!-- <groupId>org.gcube.dataanalysis</groupId> -->
|
||||||
|
<!-- <artifactId>ecological-engine</artifactId> -->
|
||||||
|
<!-- <version>[1.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version> -->
|
||||||
|
<!-- </dependency> -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.dataanalysis</groupId>
|
||||||
|
<artifactId>databases-resources-manager</artifactId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <dependency> -->
|
||||||
|
<!-- <groupId>org.apache.maven</groupId> -->
|
||||||
|
<!-- <artifactId>maven-plugin-api</artifactId> -->
|
||||||
|
<!-- <version>2.0</version> -->
|
||||||
|
<!-- </dependency> -->
|
||||||
|
<!-- <dependency> -->
|
||||||
|
<!-- <groupId>junit</groupId> -->
|
||||||
|
<!-- <artifactId>junit</artifactId> -->
|
||||||
|
<!-- <version>3.8.1</version> -->
|
||||||
|
<!-- <scope>test</scope> -->
|
||||||
|
<!-- </dependency> -->
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,10 @@
|
||||||
|
Xiphias gladius,135638
|
||||||
|
Fulmarus glacialis,131885
|
||||||
|
Thunnus albacares,124076
|
||||||
|
Pachymetopon blochii,113597
|
||||||
|
Aptenodytes patagonicus,112605
|
||||||
|
Gadus morhua,101777
|
||||||
|
Caretta caretta,101769
|
||||||
|
Thyrsites atun,97986
|
||||||
|
Loligo vulgaris reynaudi,96672
|
||||||
|
Argyrozona argyrozona,96278
|
|
|
@ -0,0 +1,503 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataaccess.databases.access.DatabasesDiscoverer;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource;
|
||||||
|
import org.gcube.dataaccess.databases.utils.DatabaseManagement;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||||
|
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
|
/** Class that allows to retrieve some information about the chosen table */
|
||||||
|
public class GetTableDetails extends StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
private LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
// object that allows to manage some operations on a database
|
||||||
|
private DatabaseManagement mgt;
|
||||||
|
// variable that keeps track of the database's type
|
||||||
|
private String driverInfo;
|
||||||
|
|
||||||
|
// database's parameters specified by the user
|
||||||
|
private String resourceName = null;
|
||||||
|
private String databaseName = null;
|
||||||
|
private String schemaName = null;
|
||||||
|
private String tableName = null;
|
||||||
|
|
||||||
|
private SessionFactory sf;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
mgt = new DatabaseManagement(config.getConfigPath());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In GetTableDetails->Initialization");
|
||||||
|
|
||||||
|
String scope = config.getGcubeScope();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In GetTableDetails->scope set by config: " + scope);
|
||||||
|
|
||||||
|
// AnalysisLogger.getLogger().debug("In TableDetails->scope set by config: " + config.getGcubeScope());
|
||||||
|
|
||||||
|
if (scope == null || scope.length() == 0) {
|
||||||
|
|
||||||
|
|
||||||
|
scope = ScopeProvider.instance.get();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In GetTableDetails->scope set by ScopeProvider: " + scope);
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
// add a simple description for the algorithm
|
||||||
|
|
||||||
|
return "Algorithm that allows to view table details of a chosen database";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception, IOException,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException,
|
||||||
|
HibernateException {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In GetTableDetails->Processing");
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// retrieve information
|
||||||
|
List<String> Info = retrieveInfo();
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
sf = getConnection(Info);
|
||||||
|
|
||||||
|
// get table's details
|
||||||
|
|
||||||
|
// recover information about the "CreateTableStatement" and
|
||||||
|
// "Number of rows" of the table chosen by the user
|
||||||
|
|
||||||
|
map = getDetails();
|
||||||
|
|
||||||
|
// close the connection
|
||||||
|
sf.close();
|
||||||
|
|
||||||
|
} catch (HibernateException h) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails-> ERROR " + h.getMessage());
|
||||||
|
throw h;
|
||||||
|
} catch (IllegalStateException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails-> ERROR " + e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
} catch (DiscoveryException e1) {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails-> ERROR " + e1.getMessage());
|
||||||
|
|
||||||
|
throw e1;
|
||||||
|
|
||||||
|
} catch (InvalidResultException e2) {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails-> ERROR " + e2.getMessage());
|
||||||
|
|
||||||
|
throw e2;
|
||||||
|
|
||||||
|
} catch (IOException e3) {
|
||||||
|
// e3.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails-> Exception " + e3.getMessage());
|
||||||
|
|
||||||
|
throw e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (Exception e4) {
|
||||||
|
// e4.printStackTrace();
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails-> Exception " + e4.getMessage());
|
||||||
|
|
||||||
|
throw e4;
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
if (sf.isClosed() == false) {
|
||||||
|
mgt.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In GetTableDetails->setting inputs");
|
||||||
|
|
||||||
|
// parameters specified by the user
|
||||||
|
addStringInput("ResourceName", "The name of the resource", "");
|
||||||
|
addStringInput("DatabaseName", "The name of the database", "");
|
||||||
|
addStringInput("SchemaName", "The name of the schema", "");
|
||||||
|
addStringInput("TableName", "The name of the table", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("In GetTableDetails->Shutdown");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In GetTableDetails->retrieving outputs");
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(LinkedHashMap.class.getName(),
|
||||||
|
map, PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
return output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the database's connection
|
||||||
|
private SessionFactory getConnection(List<String> Info) throws IOException {
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
Iterator<String> iterator = Info.iterator();
|
||||||
|
|
||||||
|
String DatabaseUserName = iterator.next();
|
||||||
|
String DatabasePassword = iterator.next();
|
||||||
|
String DatabaseDriver = iterator.next();
|
||||||
|
String DatabaseDialect = iterator.next();
|
||||||
|
String DatabaseURL = iterator.next();
|
||||||
|
String DatabaseName = iterator.next();
|
||||||
|
|
||||||
|
SessionFactory sf = mgt.createConnection(DatabaseUserName,
|
||||||
|
DatabasePassword, DatabaseDriver, DatabaseDialect, DatabaseURL,
|
||||||
|
DatabaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->database " + DatabaseName + ": connected");
|
||||||
|
|
||||||
|
return sf;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method that recover the info useful for the connection
|
||||||
|
private List<String> retrieveInfo() throws Exception,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException {
|
||||||
|
|
||||||
|
resourceName = getInputParameter("ResourceName").trim();
|
||||||
|
|
||||||
|
if ((resourceName == null) || (resourceName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the resource name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
databaseName = getInputParameter("DatabaseName").trim();
|
||||||
|
|
||||||
|
if ((databaseName == null) || (databaseName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the database name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// retrieve the chosen resource
|
||||||
|
DatabasesDiscoverer discovery = new DatabasesDiscoverer();
|
||||||
|
|
||||||
|
List<DBResource> resources = discovery.discover();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->number of database resources: "
|
||||||
|
+ resources.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->Resource's name: "
|
||||||
|
+ resources.get(i).getResourceName());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// list that contains information useful for the connection
|
||||||
|
List<String> info = new ArrayList<String>();
|
||||||
|
|
||||||
|
check: for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
if (resources.get(i).getResourceName().toLowerCase().equals(resourceName.toLowerCase())) {
|
||||||
|
|
||||||
|
normalizeDBInfo(resources.get(i));
|
||||||
|
|
||||||
|
for (int j = 0; j < resources.get(i).getAccessPoints().size(); j++) {
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDatabaseName().equals(databaseName)) {
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getUsername());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getPassword());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver());
|
||||||
|
//
|
||||||
|
// // driverInfo =
|
||||||
|
// // resources.get(i).getAccessPoints().get(j)
|
||||||
|
// // .getDriver();
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDialect());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address());
|
||||||
|
//
|
||||||
|
// info.add(databaseName);
|
||||||
|
//
|
||||||
|
// break check;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address().equals(url)){
|
||||||
|
//
|
||||||
|
// System.out.println("url selezionato");
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDatabaseName().toLowerCase().equals(databaseName.toLowerCase())) {
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getUsername());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->username: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getUsername());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getPassword());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->password: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getPassword());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver());
|
||||||
|
|
||||||
|
driverInfo = resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->driver: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDriver());
|
||||||
|
|
||||||
|
// driverInfo =
|
||||||
|
// resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver();
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDialect());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->dialect: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDialect());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.address());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->url: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).address());
|
||||||
|
|
||||||
|
info.add(databaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->databasename: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDatabaseName());
|
||||||
|
|
||||||
|
break check;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger
|
||||||
|
.getLogger()
|
||||||
|
.debug("In GetTableDetails->information useful for connection: retrieved");
|
||||||
|
return info;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// method that retrieves information such as "CreateTableStatement" and the
|
||||||
|
// number of rows about the table chosen by the user
|
||||||
|
private LinkedHashMap<String, StatisticalType> getDetails()
|
||||||
|
throws Exception {
|
||||||
|
|
||||||
|
tableName = getInputParameter("TableName").trim();
|
||||||
|
|
||||||
|
if ((tableName == null) || (tableName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the table name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
schemaName = getInputParameter("SchemaName").trim();
|
||||||
|
|
||||||
|
if ((schemaName == null) || (schemaName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the schema name");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->getting details on the table: " + tableName);
|
||||||
|
|
||||||
|
// recover metadata of the table
|
||||||
|
|
||||||
|
// recover the "show create" statement
|
||||||
|
|
||||||
|
String createTable = null;
|
||||||
|
|
||||||
|
if ((driverInfo.toLowerCase().contains("postgres"))) {
|
||||||
|
|
||||||
|
createTable = mgt.getCreateTable(tableName, schemaName);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((driverInfo.toLowerCase().contains("mysql"))) {
|
||||||
|
|
||||||
|
createTable = mgt.getCreateTable(tableName, databaseName);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
PrimitiveType valCreateTable = new PrimitiveType(
|
||||||
|
String.class.getName(), createTable, PrimitiveTypes.STRING,
|
||||||
|
"Create Table Statement", "Create Table Statement");
|
||||||
|
|
||||||
|
map.put("CreateTable", valCreateTable);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->getting the \"CreateTableStatement\": "
|
||||||
|
+ createTable);
|
||||||
|
|
||||||
|
// to retrieve the column names of a table
|
||||||
|
List<String> listColumnNamesTable = mgt.getListColumnNamesTable();
|
||||||
|
|
||||||
|
String ColumnName = "";
|
||||||
|
|
||||||
|
for (int i = 0; i < listColumnNamesTable.size(); i++) {
|
||||||
|
|
||||||
|
if (i != listColumnNamesTable.size() - 1) {
|
||||||
|
ColumnName = ColumnName + listColumnNamesTable.get(i) + ",";
|
||||||
|
} else {
|
||||||
|
ColumnName = ColumnName + listColumnNamesTable.get(i);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
PrimitiveType valListColumnNamesTable = new PrimitiveType(
|
||||||
|
String.class.getName(), ColumnName, PrimitiveTypes.STRING,
|
||||||
|
"Column Name", "Column Name");
|
||||||
|
|
||||||
|
map.put("Column Names", valListColumnNamesTable);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->getting the column names list: "
|
||||||
|
+ createTable);
|
||||||
|
|
||||||
|
// recover the number of rows
|
||||||
|
// BigInteger rows = mgt.getNumberOfRows(tableName);
|
||||||
|
|
||||||
|
long rows = mgt.getNumberOfRows(tableName);
|
||||||
|
|
||||||
|
// PrimitiveType valRows = new PrimitiveType(
|
||||||
|
// String.class.getName(), rows.toString(),
|
||||||
|
// PrimitiveTypes.STRING, "NumberRows", "Rows' Number");
|
||||||
|
|
||||||
|
PrimitiveType valRows = new PrimitiveType(String.class.getName(),
|
||||||
|
Long.toString(rows), PrimitiveTypes.STRING, "Number Rows",
|
||||||
|
"Rows' Number");
|
||||||
|
|
||||||
|
map.put("NumberRows", valRows);
|
||||||
|
|
||||||
|
// AnalysisLogger
|
||||||
|
// .getLogger()
|
||||||
|
// .debug("In TableDetails->getting the number of rows: " +
|
||||||
|
// rows.toString());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->getting the number of rows: "
|
||||||
|
+ Long.toString(rows));
|
||||||
|
|
||||||
|
return map;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void normalizeDBInfo(DBResource resource) throws IOException {
|
||||||
|
|
||||||
|
int ap = resource.getAccessPoints().size();
|
||||||
|
|
||||||
|
for (int i = 0; i < ap; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
resource.normalize(i);
|
||||||
|
} catch (IOException e) {
|
||||||
|
|
||||||
|
// e.printStackTrace();
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In GetTableDetails->: Error in normalization process"
|
||||||
|
+ e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,270 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataaccess.databases.access.DatabasesDiscoverer;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource.AccessPoint;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||||
|
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||||
|
|
||||||
|
/** Class that allows to retrieve information about the chosen resource */
|
||||||
|
public class ListDBInfo extends StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
private LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
// database's parameters specified by the user
|
||||||
|
private String resourceName = null;
|
||||||
|
|
||||||
|
// list that contains information about the resource
|
||||||
|
private List<AccessPoint> ap = new ArrayList<AccessPoint>();
|
||||||
|
|
||||||
|
// variable that keeps track of database platform version
|
||||||
|
private String platformVersion = "";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo->Initialization");
|
||||||
|
|
||||||
|
String scope = config.getGcubeScope();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo->scope set by config object: " + scope);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (scope == null || scope.length() == 0) {
|
||||||
|
|
||||||
|
scope = ScopeProvider.instance.get();
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo->scope set by ScopeProvider: " + scope);
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
// add a simple description for the algorithm
|
||||||
|
return "Algorithm that allows to view information about one chosen resource of Database Type in the Infrastructure";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception, IOException, IllegalStateException, DiscoveryException, InvalidResultException {
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo->Processing");
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("Scope: " + ScopeProvider.instance.get());
|
||||||
|
|
||||||
|
|
||||||
|
try{
|
||||||
|
// retrieve information
|
||||||
|
List<AccessPoint> apInfo = retrieveInfo();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("access point dimension: " + apInfo.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < apInfo.size(); i++) {
|
||||||
|
|
||||||
|
PrimitiveType DBName = new PrimitiveType(String.class.getName(),
|
||||||
|
apInfo.get(i).getDatabaseName(), PrimitiveTypes.STRING,
|
||||||
|
"Database Name "
|
||||||
|
, "Database Name");
|
||||||
|
|
||||||
|
int index = i+1;
|
||||||
|
|
||||||
|
map.put("Database Name "+index, DBName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListDBInfo->Database Name: "
|
||||||
|
+ apInfo.get(i).getDatabaseName());
|
||||||
|
|
||||||
|
PrimitiveType url = new PrimitiveType(String.class.getName(),
|
||||||
|
apInfo.get(i).address(), PrimitiveTypes.STRING, "URL",
|
||||||
|
"URL");
|
||||||
|
|
||||||
|
map.put("URL " +index, url);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListDBInfo->URL: " + apInfo.get(i).address());
|
||||||
|
|
||||||
|
PrimitiveType driver = new PrimitiveType(String.class.getName(),
|
||||||
|
apInfo.get(i).getDriver(), PrimitiveTypes.STRING,
|
||||||
|
"Driver Name", "Driver Name");
|
||||||
|
|
||||||
|
map.put("Driver Name "+index, driver);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListDBInfo->Driver Name: "
|
||||||
|
+ apInfo.get(i).getDriver());
|
||||||
|
|
||||||
|
PrimitiveType dialect = new PrimitiveType(String.class.getName(),
|
||||||
|
apInfo.get(i).getDialect(), PrimitiveTypes.STRING,
|
||||||
|
"Dialect Name", "Dialect Name");
|
||||||
|
|
||||||
|
map.put("Dialect Name " +index, dialect);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListDBInfo->Dialect Name: "
|
||||||
|
+ apInfo.get(i).getDialect());
|
||||||
|
|
||||||
|
PrimitiveType platformVersionValue = new PrimitiveType(String.class.getName(),
|
||||||
|
platformVersion, PrimitiveTypes.STRING,
|
||||||
|
"Platform Version", "Platform Version");
|
||||||
|
|
||||||
|
map.put("Platform Version " +index, platformVersionValue);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListDBInfo->Platform Version: "
|
||||||
|
+ platformVersion);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (IllegalStateException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo-> ERROR " + e.getMessage());
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
} catch (DiscoveryException e1) {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo-> ERROR " + e1.getMessage());
|
||||||
|
|
||||||
|
throw e1;
|
||||||
|
|
||||||
|
} catch (InvalidResultException e2) {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo-> ERROR " + e2.getMessage());
|
||||||
|
|
||||||
|
|
||||||
|
throw e2;
|
||||||
|
|
||||||
|
}
|
||||||
|
// catch(IOException e3){
|
||||||
|
//// e3.printStackTrace();
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug("In ListDBInfo-> Exception " + e3.getMessage());
|
||||||
|
//
|
||||||
|
// throw e3;
|
||||||
|
// }
|
||||||
|
|
||||||
|
catch(Exception e4){
|
||||||
|
|
||||||
|
// e4.printStackTrace();
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo-> Exception " + e4.getMessage());
|
||||||
|
|
||||||
|
throw e4;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo->setting inputs");
|
||||||
|
|
||||||
|
// resource name specified by the user
|
||||||
|
addStringInput("ResourceName", "The name of the resource", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo->Shutdown");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListDBInfo->retrieving outputs");
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(LinkedHashMap.class.getName(),
|
||||||
|
map, PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
return output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<AccessPoint> retrieveInfo() throws Exception, IllegalStateException, DiscoveryException, InvalidResultException {
|
||||||
|
|
||||||
|
resourceName = getInputParameter("ResourceName").trim();
|
||||||
|
|
||||||
|
if ((resourceName == null) || (resourceName.equals(""))){
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the resource name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// retrieve information about the chosen resource
|
||||||
|
DatabasesDiscoverer discovery = new DatabasesDiscoverer();
|
||||||
|
|
||||||
|
List<DBResource> resources = discovery.discover();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListDBInfo->number of database resources: "
|
||||||
|
+ resources.size());
|
||||||
|
|
||||||
|
check: for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
if (resources.get(i).getResourceName().toLowerCase().equals(resourceName.toLowerCase())) {
|
||||||
|
|
||||||
|
platformVersion = resources.get(i).getPlatformVersion();
|
||||||
|
|
||||||
|
// ap = resources.get(i).getAccessPoints();
|
||||||
|
|
||||||
|
normalizeDBInfo(resources.get(i));
|
||||||
|
|
||||||
|
ap = resources.get(i).getAccessPoints();
|
||||||
|
|
||||||
|
break check;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return ap;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void normalizeDBInfo(DBResource resource) throws IOException {
|
||||||
|
|
||||||
|
int ap = resource.getAccessPoints().size();
|
||||||
|
|
||||||
|
for (int i = 0; i < ap; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
resource.normalize(i);
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListDBInfo->: Error in normalization process"
|
||||||
|
+ e.getMessage());
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,173 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataaccess.databases.access.DatabasesDiscoverer;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||||
|
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||||
|
|
||||||
|
/** Class that allows to retrieve a list of database resources */
|
||||||
|
public class ListNames extends StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
private LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListNames->Initialization");
|
||||||
|
|
||||||
|
String scope = config.getGcubeScope();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListNames->scope set by config object: " + scope);
|
||||||
|
|
||||||
|
if (scope == null || scope.length() == 0) {
|
||||||
|
|
||||||
|
scope = ScopeProvider.instance.get();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListNames->scope set by ScopeProvider: " + scope);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
// add a simple description for the algorithm
|
||||||
|
return "Algorithm that allows to view the available database resources names in the Infrastructure";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListNames->Processing");
|
||||||
|
|
||||||
|
String scope = ScopeProvider.instance.get();
|
||||||
|
|
||||||
|
if (scope != null) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("getting scope: " + scope);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"getting scope through config: " + config.getGcubeScope());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// retrieve resources
|
||||||
|
List<DBResource> resources = this.retrieveResources();
|
||||||
|
|
||||||
|
// add the name to the list
|
||||||
|
|
||||||
|
// list that contains the resource's names
|
||||||
|
ArrayList<String> listnames = new ArrayList<String>();
|
||||||
|
|
||||||
|
for (int i = 0; i < resources.size(); i++) {
|
||||||
|
PrimitiveType val = new PrimitiveType(String.class.getName(),
|
||||||
|
null, PrimitiveTypes.STRING, "Resource's name",
|
||||||
|
"Resource's name");
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListNames->Resource's name: "
|
||||||
|
+ resources.get(i).getResourceName());
|
||||||
|
|
||||||
|
listnames.add(resources.get(i).getResourceName());
|
||||||
|
|
||||||
|
val.setContent(listnames.get(i));
|
||||||
|
|
||||||
|
map.put(String.valueOf(i), val);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListNames->Output Map Size: " + map.size());
|
||||||
|
|
||||||
|
} catch (IllegalStateException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListNames-> ERROR " + e.getMessage());
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
} catch (DiscoveryException e1) {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListNames-> ERROR " + e1.getMessage());
|
||||||
|
|
||||||
|
throw e1;
|
||||||
|
|
||||||
|
} catch (InvalidResultException e2) {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListNames-> ERROR " + e2.getMessage());
|
||||||
|
|
||||||
|
throw e2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListNames->setting inputs");
|
||||||
|
addStringInput("MaxNumber", "Max Number of Resources (-1 for all)",
|
||||||
|
"-1");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("In ListNames->Shutdown");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListNames->retrieving outputs");
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(LinkedHashMap.class.getName(),
|
||||||
|
map, PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
return output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<DBResource> retrieveResources() throws IllegalStateException,
|
||||||
|
DiscoveryException, InvalidResultException {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListNames->retrieving resources");
|
||||||
|
List<DBResource> resources = new ArrayList<DBResource>();
|
||||||
|
|
||||||
|
// retrieve the resources
|
||||||
|
DatabasesDiscoverer discovery = new DatabasesDiscoverer();
|
||||||
|
|
||||||
|
resources = discovery.discover();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListNames->number of database resources: "
|
||||||
|
+ resources.size());
|
||||||
|
|
||||||
|
return resources;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,464 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataaccess.databases.access.DatabasesDiscoverer;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource;
|
||||||
|
import org.gcube.dataaccess.databases.utils.DatabaseManagement;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||||
|
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* class that allows to retrieve schema's names of a chosen database. In this
|
||||||
|
* case the database's type is "postgresql"
|
||||||
|
*/
|
||||||
|
public class ListSchemas extends StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
private LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
private DatabaseManagement mgt;
|
||||||
|
|
||||||
|
// database's parameters specified by the user
|
||||||
|
private String resourceName = null;
|
||||||
|
private String databaseName = null;
|
||||||
|
|
||||||
|
private SessionFactory sf;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
mgt = new DatabaseManagement(config.getConfigPath());
|
||||||
|
AnalysisLogger.getLogger().debug("In ListSchemas->Initialization");
|
||||||
|
|
||||||
|
String scope = config.getGcubeScope();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->scope set by config object: " + scope);
|
||||||
|
|
||||||
|
if (scope == null || scope.length() == 0) {
|
||||||
|
|
||||||
|
scope = ScopeProvider.instance.get();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->scope set by ScopeProvider: " + scope);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
// add a simple description for the algorithm
|
||||||
|
|
||||||
|
return "Algorithm that allows to view the schema names of a chosen database for which the type is Postgres";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception, IOException,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException,
|
||||||
|
HibernateException {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListSchemas->Processing");
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// retrieve information useful for connection
|
||||||
|
|
||||||
|
List<String> Info = retrieveInfo();
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
sf = getConnection(Info);
|
||||||
|
|
||||||
|
// get the schema's list
|
||||||
|
|
||||||
|
List<String> listSchemas = new ArrayList<String>();
|
||||||
|
listSchemas = getSchemas();
|
||||||
|
|
||||||
|
if (listSchemas.size() == 0) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->Warning: no schema available");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < listSchemas.size(); i++) {
|
||||||
|
|
||||||
|
PrimitiveType val = new PrimitiveType(String.class.getName(),
|
||||||
|
null, PrimitiveTypes.STRING, "schema's name",
|
||||||
|
"schema's name");
|
||||||
|
|
||||||
|
val.setContent(listSchemas.get(i));
|
||||||
|
|
||||||
|
map.put(String.valueOf(i), val);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->getting schema's name: "
|
||||||
|
+ val.getContent());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sf.close();
|
||||||
|
|
||||||
|
} catch (HibernateException h) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas-> ERROR " + h.getMessage());
|
||||||
|
throw h;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (IllegalStateException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas-> ERROR " + e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
} catch (DiscoveryException e1) {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas-> ERROR " + e1.getMessage());
|
||||||
|
|
||||||
|
throw e1;
|
||||||
|
|
||||||
|
} catch (InvalidResultException e2) {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas-> ERROR " + e2.getMessage());
|
||||||
|
|
||||||
|
throw e2;
|
||||||
|
|
||||||
|
} catch (IOException e3) {
|
||||||
|
// e3.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas-> Exception " + e3.getMessage());
|
||||||
|
|
||||||
|
throw e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (Exception e4) {
|
||||||
|
// e4.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas-> Exception " + e4.getMessage());
|
||||||
|
|
||||||
|
throw e4;
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
if (sf.isClosed() == false) {
|
||||||
|
mgt.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListSchemas->setting inputs");
|
||||||
|
|
||||||
|
// resource and database's name specified by the user
|
||||||
|
|
||||||
|
addStringInput("ResourceName", "The name of the resource", "");
|
||||||
|
addStringInput("DatabaseName", "The name of the database", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("In ListSchemas->Shutdown");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListSchemas->retrieving outputs");
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(LinkedHashMap.class.getName(),
|
||||||
|
map, PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
return output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// method that retrieves the schema's list
|
||||||
|
private List<String> getSchemas() throws Exception {
|
||||||
|
|
||||||
|
List<String> listSchemas = new ArrayList<String>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
listSchemas = mgt.getSchemas();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
// System.out.println(e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
finally {
|
||||||
|
|
||||||
|
if (sf.isClosed() == false) {
|
||||||
|
mgt.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return listSchemas;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// method that retrieves information useful for the connection
|
||||||
|
private List<String> retrieveInfo() throws Exception,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException {
|
||||||
|
|
||||||
|
// the user specifies the resource and the database'name
|
||||||
|
|
||||||
|
resourceName = getInputParameter("ResourceName").trim();
|
||||||
|
|
||||||
|
if ((resourceName == null) || (resourceName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the resource name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
databaseName = getInputParameter("DatabaseName").trim();
|
||||||
|
|
||||||
|
if ((databaseName == null) || (databaseName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the database name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// retrieve the chosen resource
|
||||||
|
DatabasesDiscoverer discovery = new DatabasesDiscoverer();
|
||||||
|
|
||||||
|
// list that contains information useful for the connection
|
||||||
|
List<String> info = new ArrayList<String>();
|
||||||
|
|
||||||
|
// try{
|
||||||
|
|
||||||
|
List<DBResource> resources = discovery.discover();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->number of database resources: "
|
||||||
|
+ resources.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->Resource's name: "
|
||||||
|
+ resources.get(i).getResourceName());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
check: for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
if (resources.get(i).getResourceName().toLowerCase()
|
||||||
|
.equals(resourceName.toLowerCase())) {
|
||||||
|
|
||||||
|
normalizeDBInfo(resources.get(i));
|
||||||
|
|
||||||
|
for (int j = 0; j < resources.get(i).getAccessPoints().size(); j++) {
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDatabaseName().equals(databaseName)) {
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getUsername());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getPassword());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver());
|
||||||
|
//
|
||||||
|
// // driverInfo =
|
||||||
|
// // resources.get(i).getAccessPoints().get(j)
|
||||||
|
// // .getDriver();
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDialect());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address());
|
||||||
|
//
|
||||||
|
// info.add(databaseName);
|
||||||
|
//
|
||||||
|
// break check;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address().equals(url)){
|
||||||
|
//
|
||||||
|
// System.out.println("url selezionato");
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDatabaseName().toLowerCase()
|
||||||
|
.equals(databaseName.toLowerCase())) {
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getUsername());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->username: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getUsername());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getPassword());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->password: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getPassword());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->driver: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDriver());
|
||||||
|
|
||||||
|
// driverInfo =
|
||||||
|
// resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver();
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDialect());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->dialect: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDialect());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.address());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->url: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).address());
|
||||||
|
|
||||||
|
info.add(databaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->databasename: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDatabaseName());
|
||||||
|
|
||||||
|
break check;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListSchemas->information useful for connection: retrieved");
|
||||||
|
|
||||||
|
// }
|
||||||
|
// catch(IllegalStateException e)
|
||||||
|
// {
|
||||||
|
// // e.printStackTrace();
|
||||||
|
// throw e;
|
||||||
|
// }
|
||||||
|
// catch(DiscoveryException e1)
|
||||||
|
// {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
// throw e1;
|
||||||
|
// }
|
||||||
|
// catch(InvalidResultException e2)
|
||||||
|
// {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
// throw e2;
|
||||||
|
// }
|
||||||
|
|
||||||
|
return info;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// method that allows to create the connection
|
||||||
|
private SessionFactory getConnection(List<String> Info) throws IOException {
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
Iterator<String> iterator = Info.iterator();
|
||||||
|
|
||||||
|
String DatabaseUserName = iterator.next();
|
||||||
|
String DatabasePassword = iterator.next();
|
||||||
|
String DatabaseDriver = iterator.next();
|
||||||
|
String DatabaseDialect = iterator.next();
|
||||||
|
String DatabaseURL = iterator.next();
|
||||||
|
String DatabaseName = iterator.next();
|
||||||
|
|
||||||
|
SessionFactory sf = mgt.createConnection(DatabaseUserName,
|
||||||
|
DatabasePassword, DatabaseDriver, DatabaseDialect, DatabaseURL,
|
||||||
|
DatabaseName);
|
||||||
|
|
||||||
|
// if (sf.isClosed()){
|
||||||
|
|
||||||
|
// AnalysisLogger.getLogger().debug("In ListSchemas->database "+DatabaseName+": connected");
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
return sf;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void normalizeDBInfo(DBResource resource) throws IOException {
|
||||||
|
|
||||||
|
int ap = resource.getAccessPoints().size();
|
||||||
|
|
||||||
|
for (int i = 0; i < ap; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
resource.normalize(i);
|
||||||
|
} catch (IOException e) {
|
||||||
|
|
||||||
|
// e.printStackTrace();
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->: Error in normalization process"
|
||||||
|
+ e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,450 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataaccess.databases.access.DatabasesDiscoverer;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource;
|
||||||
|
import org.gcube.dataaccess.databases.utils.DatabaseManagement;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||||
|
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
|
/** Class that allows to retrieve the tables's names of a chosen database */
|
||||||
|
public class ListTables extends StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
private LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
private DatabaseManagement mgt;
|
||||||
|
// variable that keeps track of the database's type
|
||||||
|
private String driverInfo;
|
||||||
|
|
||||||
|
// database's parameters specified by the user
|
||||||
|
private String resourceName = null;
|
||||||
|
private String databaseName = null;
|
||||||
|
private String schemaName = null;
|
||||||
|
|
||||||
|
private SessionFactory sf;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
mgt = new DatabaseManagement(config.getConfigPath());
|
||||||
|
AnalysisLogger.getLogger().debug("In ListTables->Initialization");
|
||||||
|
|
||||||
|
String scope = config.getGcubeScope();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->scope set by config object: " + scope);
|
||||||
|
|
||||||
|
if (scope == null || scope.length() == 0) {
|
||||||
|
|
||||||
|
scope = ScopeProvider.instance.get();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->scope set by ScopeProvider: " + scope);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
// add a simple description for the algorithm
|
||||||
|
|
||||||
|
return "Algorithm that allows to view the table names of a chosen database";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception, IOException,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException,
|
||||||
|
HibernateException {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListTables->Processing");
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// retrieve information useful for the connection
|
||||||
|
|
||||||
|
List<String> Info = retrieveInfo();
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
sf = getConnection(Info);
|
||||||
|
|
||||||
|
// get the table' list
|
||||||
|
|
||||||
|
List<String> listTables = new ArrayList<String>();
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
schemaName = getInputParameter("SchemaName").trim();
|
||||||
|
|
||||||
|
if ((schemaName == null) || (schemaName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the schema name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (!schemaName.equals("")) {
|
||||||
|
|
||||||
|
listTables = mgt.getTables(databaseName, schemaName);
|
||||||
|
|
||||||
|
AnalysisLogger
|
||||||
|
.getLogger()
|
||||||
|
.debug("In ListTables->getting table's name for database postgres");
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("mysql")) {
|
||||||
|
|
||||||
|
listTables = mgt.getTables(databaseName, null);
|
||||||
|
|
||||||
|
AnalysisLogger
|
||||||
|
.getLogger()
|
||||||
|
.debug("In ListTables->getting table's name for database mysql");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (listTables.size()==0){
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug("In ListTables->Warning: no table available");
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
// TODO: manage also the oracle type
|
||||||
|
|
||||||
|
if (listTables == null) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->Warning: no tables available");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
for (int i = 0; i < listTables.size(); i++) {
|
||||||
|
|
||||||
|
PrimitiveType val = new PrimitiveType(
|
||||||
|
String.class.getName(), null,
|
||||||
|
PrimitiveTypes.STRING, "Table's name",
|
||||||
|
"Table's name");
|
||||||
|
|
||||||
|
val.setContent(listTables.get(i));
|
||||||
|
|
||||||
|
map.put(String.valueOf(i), val);
|
||||||
|
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In ListTables->getting table's name: "
|
||||||
|
// + val.getContent());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// close the connection
|
||||||
|
sf.close();
|
||||||
|
|
||||||
|
} catch (HibernateException h) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables-> ERROR " + h.getMessage());
|
||||||
|
throw h;
|
||||||
|
} catch (IllegalStateException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables-> ERROR " + e.getMessage());
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
} catch (DiscoveryException e1) {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables-> ERROR " + e1.getMessage());
|
||||||
|
|
||||||
|
throw e1;
|
||||||
|
|
||||||
|
} catch (InvalidResultException e2) {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables-> ERROR " + e2.getMessage());
|
||||||
|
|
||||||
|
throw e2;
|
||||||
|
|
||||||
|
} catch (IOException e3) {
|
||||||
|
// e3.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables-> Exception " + e3.getMessage());
|
||||||
|
|
||||||
|
throw e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (Exception e4) {
|
||||||
|
// e4.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables-> Exception " + e4.getMessage());
|
||||||
|
|
||||||
|
throw e4;
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
if (sf.isClosed() == false) {
|
||||||
|
mgt.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListTables->setting inputs");
|
||||||
|
|
||||||
|
// parameters specified by the user
|
||||||
|
addStringInput("ResourceName", "The name of the resource", "");
|
||||||
|
addStringInput("DatabaseName", "The name of the database", "");
|
||||||
|
addStringInput("SchemaName", "The name of the schema", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("In ListTables->Shutdown");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In ListTables->retrieving outputs");
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(LinkedHashMap.class.getName(),
|
||||||
|
map, PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
return output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> retrieveInfo() throws Exception,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException {
|
||||||
|
|
||||||
|
// parameters specified by the user
|
||||||
|
resourceName = getInputParameter("ResourceName").trim();
|
||||||
|
|
||||||
|
if ((resourceName == null) || (resourceName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the resource name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
databaseName = getInputParameter("DatabaseName").trim();
|
||||||
|
|
||||||
|
if ((databaseName == null) || (databaseName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the database name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// retrieve the chosen resource
|
||||||
|
DatabasesDiscoverer discovery = new DatabasesDiscoverer();
|
||||||
|
|
||||||
|
List<DBResource> resources = discovery.discover();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->number of database resources: "
|
||||||
|
+ resources.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->Resource's name: "
|
||||||
|
+ resources.get(i).getResourceName());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// list that contains information useful for the connection
|
||||||
|
List<String> info = new ArrayList<String>();
|
||||||
|
|
||||||
|
check: for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
if (resources.get(i).getResourceName().toLowerCase()
|
||||||
|
.equals(resourceName.toLowerCase())) {
|
||||||
|
|
||||||
|
normalizeDBInfo(resources.get(i));
|
||||||
|
|
||||||
|
for (int j = 0; j < resources.get(i).getAccessPoints().size(); j++) {
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDatabaseName().equals(databaseName)) {
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getUsername());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getPassword());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver());
|
||||||
|
//
|
||||||
|
// // driverInfo =
|
||||||
|
// // resources.get(i).getAccessPoints().get(j)
|
||||||
|
// // .getDriver();
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDialect());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address());
|
||||||
|
//
|
||||||
|
// info.add(databaseName);
|
||||||
|
//
|
||||||
|
// break check;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address().equals(url)){
|
||||||
|
//
|
||||||
|
// System.out.println("url selezionato");
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDatabaseName().toLowerCase()
|
||||||
|
.equals(databaseName.toLowerCase())) {
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getUsername());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->username: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getUsername());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getPassword());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->password: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getPassword());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver());
|
||||||
|
|
||||||
|
driverInfo = resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->driver: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDriver());
|
||||||
|
|
||||||
|
// driverInfo =
|
||||||
|
// resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver();
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDialect());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->dialect: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDialect());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.address());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->url: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).address());
|
||||||
|
|
||||||
|
info.add(databaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->databasename: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDatabaseName());
|
||||||
|
|
||||||
|
break check;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->information useful for connection: retrieved");
|
||||||
|
|
||||||
|
return info;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private SessionFactory getConnection(List<String> Info) throws IOException {
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
Iterator<String> iterator = Info.iterator();
|
||||||
|
|
||||||
|
String DatabaseUserName = iterator.next();
|
||||||
|
String DatabasePassword = iterator.next();
|
||||||
|
String DatabaseDriver = iterator.next();
|
||||||
|
String DatabaseDialect = iterator.next();
|
||||||
|
String DatabaseURL = iterator.next();
|
||||||
|
String DatabaseName = iterator.next();
|
||||||
|
|
||||||
|
SessionFactory sf = mgt.createConnection(DatabaseUserName,
|
||||||
|
DatabasePassword, DatabaseDriver, DatabaseDialect, DatabaseURL,
|
||||||
|
DatabaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->database " + DatabaseName + ": connected");
|
||||||
|
|
||||||
|
return sf;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void normalizeDBInfo(DBResource resource) throws IOException {
|
||||||
|
|
||||||
|
int ap = resource.getAccessPoints().size();
|
||||||
|
|
||||||
|
for (int i = 0; i < ap; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
resource.normalize(i);
|
||||||
|
} catch (IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ListTables->: Error in normalization process"
|
||||||
|
+ e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,591 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataaccess.databases.access.DatabasesDiscoverer;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource;
|
||||||
|
import org.gcube.dataaccess.databases.utils.DatabaseManagement;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||||
|
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class that allows to perform a random sample operation on a table of a chosen
|
||||||
|
* database. It retrieves 100 rows of a table randomly.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class RandomSampleOnTable extends StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
private LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
// object that allows to manage some operations on a database
|
||||||
|
private DatabaseManagement mgt;
|
||||||
|
|
||||||
|
// file in which information is written
|
||||||
|
// private BufferedWriter out;
|
||||||
|
// private String fileName;
|
||||||
|
|
||||||
|
// database's parameters specified by the user
|
||||||
|
private String resourceName = null;
|
||||||
|
private String databaseName = null;
|
||||||
|
private String schemaName = null;
|
||||||
|
private String tableName = null;
|
||||||
|
|
||||||
|
private SessionFactory sf;
|
||||||
|
|
||||||
|
// variable that keeps track of the driver information
|
||||||
|
private String driverInfo;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
mgt = new DatabaseManagement(config.getConfigPath());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable->Initialization");
|
||||||
|
|
||||||
|
String scope = config.getGcubeScope();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable->scope set by config object: "
|
||||||
|
+ scope);
|
||||||
|
|
||||||
|
if (scope == null || scope.length() == 0) {
|
||||||
|
|
||||||
|
scope = ScopeProvider.instance.get();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable->scope set by ScopeProvider: "
|
||||||
|
+ scope);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
return "Algorithm that allows to perform a sample operation on a table randomly";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception {
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable->Processing");
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// // file that will contain the result
|
||||||
|
// String property = "java.io.tmpdir";
|
||||||
|
// String tempDir = System.getProperty(property);
|
||||||
|
// tempDir = tempDir + "/";
|
||||||
|
// fileName = "./cfg/" + "RandomSampleOnTable.txt";
|
||||||
|
// out = new BufferedWriter(new FileWriter(fileName));
|
||||||
|
|
||||||
|
// retrieve information
|
||||||
|
List<String> Info = retrieveInfo();
|
||||||
|
|
||||||
|
// check on table name field
|
||||||
|
tableName = getInputParameter("TableName").trim();
|
||||||
|
|
||||||
|
if ((tableName == null) || (tableName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the table name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// check on schema name field
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
schemaName = getInputParameter("SchemaName").trim();
|
||||||
|
|
||||||
|
if ((schemaName == null) || (schemaName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the schema name");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
sf = getConnection(Info);
|
||||||
|
|
||||||
|
// smart sample operation on table
|
||||||
|
map = randomSampleOnTable();
|
||||||
|
|
||||||
|
// close the connection
|
||||||
|
sf.close();
|
||||||
|
} catch (HibernateException h) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable-> ERROR " + h.getMessage());
|
||||||
|
throw h;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (IllegalStateException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable-> ERROR " + e.getMessage());
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
} catch (DiscoveryException e1) {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable-> ERROR " + e1.getMessage());
|
||||||
|
throw e1;
|
||||||
|
|
||||||
|
} catch (InvalidResultException e2) {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable-> ERROR " + e2.getMessage());
|
||||||
|
throw e2;
|
||||||
|
|
||||||
|
} catch (IOException e3) {
|
||||||
|
// e3.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable-> ERROR " + e3.getMessage());
|
||||||
|
|
||||||
|
throw e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (Exception e4) {
|
||||||
|
// e4.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSmartSampleOnTable-> Exception "
|
||||||
|
+ e4.getMessage());
|
||||||
|
|
||||||
|
throw e4;
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
// close the connection
|
||||||
|
if (sf.isClosed() == false) {
|
||||||
|
mgt.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
// parameters specified by the user
|
||||||
|
|
||||||
|
addStringInput("ResourceName", "The name of the resource", "");
|
||||||
|
addStringInput("DatabaseName", "The name of the database", "");
|
||||||
|
addStringInput("SchemaName", "The name of the schema", "");
|
||||||
|
addStringInput("TableName", "The name of the table", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->retrieving outputs");
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(LinkedHashMap.class.getName(),
|
||||||
|
map, PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
return output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("In RandomSampleOnTable->Shutdown");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method that recovers the info useful for the connection
|
||||||
|
private List<String> retrieveInfo() throws Exception,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException {
|
||||||
|
|
||||||
|
resourceName = getInputParameter("ResourceName").trim();
|
||||||
|
|
||||||
|
if ((resourceName == null) || (resourceName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the resource name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
databaseName = getInputParameter("DatabaseName").trim();
|
||||||
|
|
||||||
|
if ((databaseName == null) || (databaseName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the database name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// retrieve the chosen resource
|
||||||
|
DatabasesDiscoverer discovery = new DatabasesDiscoverer();
|
||||||
|
|
||||||
|
List<DBResource> resources = discovery.discover();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->number of elements: "
|
||||||
|
+ resources.size());
|
||||||
|
|
||||||
|
// list that contains information useful for the connection
|
||||||
|
List<String> info = new ArrayList<String>();
|
||||||
|
|
||||||
|
check: for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
if (resources.get(i).getResourceName().toLowerCase()
|
||||||
|
.equals(resourceName.toLowerCase())) {
|
||||||
|
|
||||||
|
normalizeDBInfo(resources.get(i));
|
||||||
|
|
||||||
|
for (int j = 0; j < resources.get(i).getAccessPoints().size(); j++) {
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDatabaseName().equals(databaseName)) {
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getUsername());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getPassword());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver());
|
||||||
|
//
|
||||||
|
// // driverInfo =
|
||||||
|
// // resources.get(i).getAccessPoints().get(j)
|
||||||
|
// // .getDriver();
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDialect());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address());
|
||||||
|
//
|
||||||
|
// info.add(databaseName);
|
||||||
|
//
|
||||||
|
// break check;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address().equals(url)){
|
||||||
|
//
|
||||||
|
// System.out.println("url selezionato");
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDatabaseName().toLowerCase()
|
||||||
|
.equals(databaseName.toLowerCase())) {
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getUsername());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->username: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getUsername());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getPassword());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->password: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getPassword());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver());
|
||||||
|
|
||||||
|
driverInfo = resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->driver: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDriver());
|
||||||
|
|
||||||
|
// driverInfo =
|
||||||
|
// resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver();
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDialect());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->dialect: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDialect());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.address());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->url: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).address());
|
||||||
|
|
||||||
|
info.add(databaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->databasename: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDatabaseName());
|
||||||
|
|
||||||
|
break check;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger
|
||||||
|
.getLogger()
|
||||||
|
.debug("In RandomSampleOnTable->information useful for connection: retrieved");
|
||||||
|
|
||||||
|
return info;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to normalize the information related to a database
|
||||||
|
private void normalizeDBInfo(DBResource resource) throws IOException {
|
||||||
|
|
||||||
|
int ap = resource.getAccessPoints().size();
|
||||||
|
|
||||||
|
for (int i = 0; i < ap; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
resource.normalize(i);
|
||||||
|
} catch (IOException e) {
|
||||||
|
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->: Error in normalization process"
|
||||||
|
+ e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the database's connection
|
||||||
|
private SessionFactory getConnection(List<String> Info) throws IOException {
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
Iterator<String> iterator = Info.iterator();
|
||||||
|
|
||||||
|
String DatabaseUserName = iterator.next();
|
||||||
|
String DatabasePassword = iterator.next();
|
||||||
|
String DatabaseDriver = iterator.next();
|
||||||
|
String DatabaseDialect = iterator.next();
|
||||||
|
String DatabaseURL = iterator.next();
|
||||||
|
String DatabaseName = iterator.next();
|
||||||
|
|
||||||
|
SessionFactory sf = mgt.createConnection(DatabaseUserName,
|
||||||
|
DatabasePassword, DatabaseDriver, DatabaseDialect, DatabaseURL,
|
||||||
|
DatabaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->database " + DatabaseName
|
||||||
|
+ ": connected");
|
||||||
|
|
||||||
|
return sf;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to perform the sample operation on the table randomly
|
||||||
|
private LinkedHashMap<String, StatisticalType> randomSampleOnTable()
|
||||||
|
throws Exception {
|
||||||
|
|
||||||
|
LinkedHashMap<String, StatisticalType> mapResults = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
AnalysisLogger
|
||||||
|
.getLogger()
|
||||||
|
.debug("In RandomSampleOnTable->starting the sample operation on table randomly");
|
||||||
|
|
||||||
|
// sample on table operation
|
||||||
|
// List<Object> resultSet = null;
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
// for a postgres database the second parameter is the schema name
|
||||||
|
// resultSet = mgt.randomSampleOnTable(tableName, schemaName,
|
||||||
|
// config.getPersistencePath());
|
||||||
|
mgt.randomSampleOnTable(tableName, schemaName,
|
||||||
|
config.getPersistencePath());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("mysql")) {
|
||||||
|
// for a mysql database the second parameter is the database name
|
||||||
|
// resultSet = mgt.randomSampleOnTable(tableName, databaseName,
|
||||||
|
// config.getPersistencePath());
|
||||||
|
mgt.randomSampleOnTable(tableName, databaseName,
|
||||||
|
config.getPersistencePath());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In RandomSampleOnTable->result retrieved");
|
||||||
|
|
||||||
|
// // processing the information and adding it to the map
|
||||||
|
//
|
||||||
|
// for (int i = 0; i < resultSet.size(); i++) {
|
||||||
|
//
|
||||||
|
// if (resultSet.get(i).getClass().isArray()) {
|
||||||
|
//
|
||||||
|
// Object[] row = (Object[]) resultSet.get(i);
|
||||||
|
//
|
||||||
|
// String RowString = "";
|
||||||
|
//
|
||||||
|
// for (int j = 0; j < row.length; j++) {
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In RandomSampleOnTable->row: " + (i + 1)
|
||||||
|
// + " column: " + (j + 1) + " value= "
|
||||||
|
// + row[j].toString());
|
||||||
|
// // System.out.print("\"" + row[j] + "\"; ");
|
||||||
|
//
|
||||||
|
// // write in a file
|
||||||
|
//
|
||||||
|
// if (j != row.length - 1) {
|
||||||
|
//
|
||||||
|
// out.write(row[j].toString());
|
||||||
|
// out.write(",");
|
||||||
|
// RowString = RowString + row[j].toString() + " ";
|
||||||
|
//
|
||||||
|
// // AnalysisLogger.getLogger().debug(
|
||||||
|
// // "In SubmitQuery->row " + (j+1) + ": " +
|
||||||
|
// // row[j].toString());
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// if (j == row.length - 1) {
|
||||||
|
//
|
||||||
|
// out.write(row[j].toString());
|
||||||
|
// out.newLine();
|
||||||
|
//
|
||||||
|
// RowString = RowString + row[j].toString();
|
||||||
|
//
|
||||||
|
// PrimitiveType valRow = new PrimitiveType(
|
||||||
|
// String.class.getName(), RowString,
|
||||||
|
// PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
//
|
||||||
|
// mapResults.put(String.valueOf(i), valRow);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// } else {
|
||||||
|
// // String RowElement="";
|
||||||
|
//
|
||||||
|
// Object RowElement = (Object) resultSet.get(i);
|
||||||
|
//
|
||||||
|
// // AnalysisLogger.getLogger().debug(
|
||||||
|
// // "In SubmitQuery->Query's Result: ");
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In RandomSampleOnTable->row: " + (i + 1) + " value= "
|
||||||
|
// + RowElement.toString());
|
||||||
|
//
|
||||||
|
// // write in a file
|
||||||
|
//
|
||||||
|
// out.write(RowElement.toString());
|
||||||
|
// out.newLine();
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// // adding the file
|
||||||
|
// PrimitiveType valfile = new PrimitiveType(File.class.getName(),
|
||||||
|
// new File(fileName), PrimitiveTypes.FILE, "ResultQuery",
|
||||||
|
// "ResultQuery");
|
||||||
|
//
|
||||||
|
// mapResults.put("ResultQuery", valfile);
|
||||||
|
//
|
||||||
|
// // close the file
|
||||||
|
// out.close();
|
||||||
|
//
|
||||||
|
// return mapResults;
|
||||||
|
|
||||||
|
// to add the results to the variable map
|
||||||
|
|
||||||
|
// to add the map
|
||||||
|
|
||||||
|
HashMap<String, String> mapResult = new HashMap<String, String>();
|
||||||
|
mapResult = mgt.getMapSampleTableResult();
|
||||||
|
|
||||||
|
String encoded = null;
|
||||||
|
|
||||||
|
encoded = new String(mapResult.get("HEADERS").getBytes(), "UTF-8");
|
||||||
|
|
||||||
|
// // check the encoded value
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In RandomSampleOnTable->string encoded: " + encoded);
|
||||||
|
|
||||||
|
PrimitiveType val = new PrimitiveType(String.class.getName(), encoded,
|
||||||
|
PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
|
||||||
|
mapResults.put("HEADERS", val);
|
||||||
|
|
||||||
|
for (int i = 0; i < mapResult.size() - 1; i++) {
|
||||||
|
|
||||||
|
encoded = new String(mapResult.get(String.valueOf(i)).getBytes(),
|
||||||
|
"UTF-8");
|
||||||
|
|
||||||
|
// // check the encoded value
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In RandomSampleOnTable->string encoded: " + encoded);
|
||||||
|
|
||||||
|
PrimitiveType val1 = new PrimitiveType(String.class.getName(),
|
||||||
|
encoded, PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
|
||||||
|
mapResults.put(String.valueOf(i), val1);
|
||||||
|
// //check value contained in map
|
||||||
|
// String value = (String) val1.getContent();
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In RandomSampleOnTable->value: " + value);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to add the file
|
||||||
|
|
||||||
|
PrimitiveType fileResult = new PrimitiveType(File.class.getName(),
|
||||||
|
mgt.getFileSampleTableResult(), PrimitiveTypes.FILE, "File",
|
||||||
|
"File");
|
||||||
|
|
||||||
|
mapResults.put("File", fileResult);
|
||||||
|
|
||||||
|
return mapResults;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,602 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.URLDecoder;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataaccess.databases.access.DatabasesDiscoverer;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource;
|
||||||
|
import org.gcube.dataaccess.databases.utils.DatabaseManagement;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||||
|
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class that allows to perform a sample operation on a table of a chosen
|
||||||
|
* database. It retrieves the first 100 rows of a table.
|
||||||
|
*/
|
||||||
|
public class SampleOnTable extends StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
private LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
// object that allows to manage some operations on a database
|
||||||
|
private DatabaseManagement mgt;
|
||||||
|
|
||||||
|
// file in which information is written
|
||||||
|
// private BufferedWriter out;
|
||||||
|
// private String fileName;
|
||||||
|
|
||||||
|
// database's parameters specified by the user
|
||||||
|
private String resourceName = null;
|
||||||
|
private String databaseName = null;
|
||||||
|
private String schemaName = null;
|
||||||
|
private String tableName = null;
|
||||||
|
|
||||||
|
private SessionFactory sf;
|
||||||
|
|
||||||
|
// variable that keeps track of the driver information
|
||||||
|
private String driverInfo;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
mgt = new DatabaseManagement(config.getConfigPath());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In SampleOnTable->Initialization");
|
||||||
|
|
||||||
|
String scope = config.getGcubeScope();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->scope set by config object: " + scope);
|
||||||
|
|
||||||
|
if (scope == null || scope.length() == 0) {
|
||||||
|
|
||||||
|
scope = ScopeProvider.instance.get();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->scope set by ScopeProvider: " + scope);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
return "Algorithm that allows to perform a sample operation on a table";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception {
|
||||||
|
AnalysisLogger.getLogger().debug("In SampleOnTable->Processing");
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// // file that will contain the result
|
||||||
|
// String property = "java.io.tmpdir";
|
||||||
|
// String tempDir = System.getProperty(property);
|
||||||
|
// tempDir = tempDir + "/";
|
||||||
|
// fileName = "./cfg/" + "SampleOnTable.txt";
|
||||||
|
// out = new BufferedWriter(new FileWriter(fileName));
|
||||||
|
|
||||||
|
// retrieve information
|
||||||
|
List<String> Info = retrieveInfo();
|
||||||
|
|
||||||
|
// check on table name field
|
||||||
|
tableName = getInputParameter("TableName").trim();
|
||||||
|
|
||||||
|
if ((tableName == null) || (tableName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the table name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// check on schema name field
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
schemaName = getInputParameter("SchemaName").trim();
|
||||||
|
|
||||||
|
if ((schemaName == null) || (schemaName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the schema name");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
sf = getConnection(Info);
|
||||||
|
|
||||||
|
// sample operation on table
|
||||||
|
map = sampleOnTable();
|
||||||
|
|
||||||
|
// close the connection
|
||||||
|
sf.close();
|
||||||
|
|
||||||
|
} catch (HibernateException h) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable-> ERROR " + h.getMessage());
|
||||||
|
throw h;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (IllegalStateException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable-> ERROR " + e.getMessage());
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
} catch (DiscoveryException e1) {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable-> ERROR " + e1.getMessage());
|
||||||
|
throw e1;
|
||||||
|
|
||||||
|
} catch (InvalidResultException e2) {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable-> ERROR " + e2.getMessage());
|
||||||
|
throw e2;
|
||||||
|
|
||||||
|
} catch (IOException e3) {
|
||||||
|
// e3.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable-> ERROR " + e3.getMessage());
|
||||||
|
|
||||||
|
throw e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (Exception e4) {
|
||||||
|
// e4.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable-> Exception " + e4.getMessage());
|
||||||
|
|
||||||
|
throw e4;
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
// close the connection
|
||||||
|
if (sf.isClosed() == false) {
|
||||||
|
mgt.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
// parameters specified by the user
|
||||||
|
addStringInput("ResourceName", "The name of the resource", "");
|
||||||
|
addStringInput("DatabaseName", "The name of the database", "");
|
||||||
|
addStringInput("SchemaName", "The name of the schema", "");
|
||||||
|
addStringInput("TableName", "The name of the table", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger()
|
||||||
|
.debug("In SampleOnTable->retrieving outputs");
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(LinkedHashMap.class.getName(),
|
||||||
|
map, PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
// LinkedHashMap<String, PrimitiveType> result = (LinkedHashMap<String,
|
||||||
|
// PrimitiveType>) output.getContent();
|
||||||
|
//
|
||||||
|
// for (int i=0; i<100;i++){
|
||||||
|
//
|
||||||
|
// PrimitiveType obj = result.get(String.valueOf(i));
|
||||||
|
//
|
||||||
|
// String val = (String) obj.getContent();
|
||||||
|
//
|
||||||
|
// try {
|
||||||
|
// String decoded = URLDecoder.decode(val, "UTF-8");
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug("value decoded: " + decoded);
|
||||||
|
//
|
||||||
|
// } catch (UnsupportedEncodingException e) {
|
||||||
|
// // TODO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
return output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("In SampleOnTable->Shutdown");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method that recovers the info useful for the connection
|
||||||
|
private List<String> retrieveInfo() throws Exception,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException {
|
||||||
|
|
||||||
|
resourceName = getInputParameter("ResourceName").trim();
|
||||||
|
|
||||||
|
if ((resourceName == null) || (resourceName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the resource name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
databaseName = getInputParameter("DatabaseName").trim();
|
||||||
|
|
||||||
|
if ((databaseName == null) || (databaseName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the database name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// retrieve the chosen resource
|
||||||
|
DatabasesDiscoverer discovery = new DatabasesDiscoverer();
|
||||||
|
|
||||||
|
List<DBResource> resources = discovery.discover();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->number of elements: " + resources.size());
|
||||||
|
|
||||||
|
// list that contains information useful for the connection
|
||||||
|
List<String> info = new ArrayList<String>();
|
||||||
|
|
||||||
|
check: for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
if (resources.get(i).getResourceName().toLowerCase()
|
||||||
|
.equals(resourceName.toLowerCase())) {
|
||||||
|
|
||||||
|
normalizeDBInfo(resources.get(i));
|
||||||
|
|
||||||
|
for (int j = 0; j < resources.get(i).getAccessPoints().size(); j++) {
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDatabaseName().equals(databaseName)) {
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getUsername());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getPassword());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver());
|
||||||
|
//
|
||||||
|
// // driverInfo =
|
||||||
|
// // resources.get(i).getAccessPoints().get(j)
|
||||||
|
// // .getDriver();
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDialect());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address());
|
||||||
|
//
|
||||||
|
// info.add(databaseName);
|
||||||
|
//
|
||||||
|
// break check;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address().equals(url)){
|
||||||
|
//
|
||||||
|
// System.out.println("url selezionato");
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDatabaseName().toLowerCase()
|
||||||
|
.equals(databaseName.toLowerCase())) {
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getUsername());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->username: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getUsername());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getPassword());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->password: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getPassword());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver());
|
||||||
|
|
||||||
|
driverInfo = resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->driver: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDriver());
|
||||||
|
|
||||||
|
// driverInfo =
|
||||||
|
// resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver();
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDialect());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->dialect: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDialect());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.address());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->url: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).address());
|
||||||
|
|
||||||
|
info.add(databaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->databasename: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDatabaseName());
|
||||||
|
|
||||||
|
break check;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger
|
||||||
|
.getLogger()
|
||||||
|
.debug("In SampleOnTable->information useful for connection: retrieved");
|
||||||
|
|
||||||
|
return info;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to normalize the information related to a database
|
||||||
|
private void normalizeDBInfo(DBResource resource) throws IOException {
|
||||||
|
|
||||||
|
int ap = resource.getAccessPoints().size();
|
||||||
|
|
||||||
|
for (int i = 0; i < ap; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
resource.normalize(i);
|
||||||
|
} catch (IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->: Error in normalization process"
|
||||||
|
+ e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the database's connection
|
||||||
|
private SessionFactory getConnection(List<String> Info) throws IOException {
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
Iterator<String> iterator = Info.iterator();
|
||||||
|
|
||||||
|
String DatabaseUserName = iterator.next();
|
||||||
|
String DatabasePassword = iterator.next();
|
||||||
|
String DatabaseDriver = iterator.next();
|
||||||
|
String DatabaseDialect = iterator.next();
|
||||||
|
String DatabaseURL = iterator.next();
|
||||||
|
String DatabaseName = iterator.next();
|
||||||
|
|
||||||
|
SessionFactory sf = mgt.createConnection(DatabaseUserName,
|
||||||
|
DatabasePassword, DatabaseDriver, DatabaseDialect, DatabaseURL,
|
||||||
|
DatabaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->database " + DatabaseName + ": connected");
|
||||||
|
|
||||||
|
return sf;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to perform the sample operation on the table
|
||||||
|
private LinkedHashMap<String, StatisticalType> sampleOnTable()
|
||||||
|
throws Exception {
|
||||||
|
|
||||||
|
LinkedHashMap<String, StatisticalType> mapResults = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SampleOnTable->starting the sample operation on table");
|
||||||
|
|
||||||
|
// sample on table operation
|
||||||
|
// List<Object> resultSet = null;
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
// for a postgres database the second parameter is the schema name
|
||||||
|
// resultSet = mgt.sampleOnTable(tableName, schemaName,
|
||||||
|
// config.getPersistencePath());
|
||||||
|
|
||||||
|
mgt.sampleOnTable(tableName, schemaName,
|
||||||
|
config.getPersistencePath());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("mysql")) {
|
||||||
|
// for a mysql database the second parameter is the database name
|
||||||
|
// resultSet = mgt.sampleOnTable(tableName, databaseName,
|
||||||
|
// config.getPersistencePath());
|
||||||
|
|
||||||
|
mgt.sampleOnTable(tableName, databaseName,
|
||||||
|
config.getPersistencePath());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In SampleOnTable->result retrieved");
|
||||||
|
|
||||||
|
// //processing the information and adding it to the map
|
||||||
|
//
|
||||||
|
// for (int i = 0; i < resultSet.size(); i++) {
|
||||||
|
//
|
||||||
|
// if (resultSet.get(i).getClass().isArray()) {
|
||||||
|
//
|
||||||
|
// Object[] row = (Object[]) resultSet.get(i);
|
||||||
|
//
|
||||||
|
// String RowString = "";
|
||||||
|
//
|
||||||
|
// for (int j = 0; j < row.length; j++) {
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SampleOnTable->row: " + (i + 1) + " column: "
|
||||||
|
// + (j + 1) + " value= " + row[j].toString());
|
||||||
|
// // System.out.print("\"" + row[j] + "\"; ");
|
||||||
|
//
|
||||||
|
// // write in a file
|
||||||
|
//
|
||||||
|
// if (j != row.length - 1) {
|
||||||
|
//
|
||||||
|
// out.write(row[j].toString());
|
||||||
|
// out.write(",");
|
||||||
|
// RowString = RowString + row[j].toString() + " ";
|
||||||
|
//
|
||||||
|
// // AnalysisLogger.getLogger().debug(
|
||||||
|
// // "In SubmitQuery->row " + (j+1) + ": " +
|
||||||
|
// // row[j].toString());
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// if (j == row.length - 1) {
|
||||||
|
//
|
||||||
|
// out.write(row[j].toString());
|
||||||
|
// out.newLine();
|
||||||
|
//
|
||||||
|
// RowString = RowString + row[j].toString();
|
||||||
|
//
|
||||||
|
// PrimitiveType valRow = new PrimitiveType(
|
||||||
|
// String.class.getName(), RowString,
|
||||||
|
// PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
//
|
||||||
|
// mapResults.put(String.valueOf(i), valRow);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// } else {
|
||||||
|
// // String RowElement="";
|
||||||
|
//
|
||||||
|
// Object RowElement = (Object) resultSet.get(i);
|
||||||
|
//
|
||||||
|
// // AnalysisLogger.getLogger().debug(
|
||||||
|
// // "In SubmitQuery->Query's Result: ");
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SampleOnTable->row: " + (i + 1) + " value= "
|
||||||
|
// + RowElement.toString());
|
||||||
|
//
|
||||||
|
// // write in a file
|
||||||
|
//
|
||||||
|
// out.write(RowElement.toString());
|
||||||
|
// out.newLine();
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// adding the file
|
||||||
|
// PrimitiveType valfile = new PrimitiveType(File.class.getName(),
|
||||||
|
// new File(fileName), PrimitiveTypes.FILE, "ResultQuery",
|
||||||
|
// "ResultQuery");
|
||||||
|
|
||||||
|
// // close the file
|
||||||
|
// out.close();
|
||||||
|
|
||||||
|
// to add the results to the variable map
|
||||||
|
|
||||||
|
// to add the map
|
||||||
|
|
||||||
|
// HashMap<Integer, String> mapResult = new HashMap<Integer, String>();
|
||||||
|
HashMap<String, String> mapResult = new HashMap<String, String>();
|
||||||
|
mapResult = mgt.getMapSampleTableResult();
|
||||||
|
|
||||||
|
String encoded = null;
|
||||||
|
|
||||||
|
encoded = new String(mapResult.get("HEADERS").getBytes(), "UTF-8");
|
||||||
|
|
||||||
|
// // check encoded value
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SampleOnTable->string encoded: " + encoded);
|
||||||
|
|
||||||
|
PrimitiveType val = new PrimitiveType(String.class.getName(), encoded,
|
||||||
|
PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
|
||||||
|
mapResults.put("HEADERS", val);
|
||||||
|
|
||||||
|
for (int i = 0; i < mapResult.size() - 1; i++) {
|
||||||
|
|
||||||
|
encoded = new String(mapResult.get(String.valueOf(i)).getBytes(),
|
||||||
|
"UTF-8");
|
||||||
|
|
||||||
|
// // check encoded value
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SampleOnTable->string encoded: " + encoded);
|
||||||
|
|
||||||
|
PrimitiveType val1 = new PrimitiveType(String.class.getName(),
|
||||||
|
encoded, PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
|
||||||
|
mapResults.put(String.valueOf(i), val1);
|
||||||
|
// //check value contained in the map
|
||||||
|
// String value = (String) val1.getContent();
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SampleOnTable->value: " + value);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to add the file
|
||||||
|
|
||||||
|
PrimitiveType fileResult = new PrimitiveType(File.class.getName(),
|
||||||
|
mgt.getFileSampleTableResult(), PrimitiveTypes.FILE, "File",
|
||||||
|
"File");
|
||||||
|
|
||||||
|
mapResults.put("File", fileResult);
|
||||||
|
|
||||||
|
return mapResults;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
public enum SmartCorrectionEnum {
|
||||||
|
NONE,
|
||||||
|
POSTGRES,
|
||||||
|
MYSQL,
|
||||||
|
}
|
|
@ -0,0 +1,591 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataaccess.databases.access.DatabasesDiscoverer;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource;
|
||||||
|
import org.gcube.dataaccess.databases.utils.DatabaseManagement;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||||
|
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class that allows to perform a smart sample operation on a table of a chosen
|
||||||
|
* database. It retrieves 100 rows of a table randomly that have the maximum
|
||||||
|
* number of columns not null.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class SmartSampleOnTable extends StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
private LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
// object that allows to manage some operations on a database
|
||||||
|
private DatabaseManagement mgt;
|
||||||
|
|
||||||
|
// file in which information is written
|
||||||
|
// private BufferedWriter out;
|
||||||
|
// private String fileName;
|
||||||
|
|
||||||
|
// database's parameters specified by the user
|
||||||
|
private String resourceName = null;
|
||||||
|
private String databaseName = null;
|
||||||
|
private String schemaName = null;
|
||||||
|
private String tableName = null;
|
||||||
|
|
||||||
|
private SessionFactory sf;
|
||||||
|
|
||||||
|
// variable that keeps track of the driver information
|
||||||
|
private String driverInfo;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
mgt = new DatabaseManagement(config.getConfigPath());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->Initialization");
|
||||||
|
|
||||||
|
String scope = config.getGcubeScope();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->scope set by config object: " + scope);
|
||||||
|
|
||||||
|
if (scope == null || scope.length() == 0) {
|
||||||
|
|
||||||
|
scope = ScopeProvider.instance.get();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->scope set by ScopeProvider: "
|
||||||
|
+ scope);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
|
||||||
|
return "Algorithm that allows to perform a smart sample operation on a table";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In SmartSampleOnTable->Processing");
|
||||||
|
|
||||||
|
try {
|
||||||
|
// // file that will contain the result
|
||||||
|
// String property = "java.io.tmpdir";
|
||||||
|
// String tempDir = System.getProperty(property);
|
||||||
|
// tempDir = tempDir + "/";
|
||||||
|
// fileName = "./cfg/" + "SmartSampleOnTable.txt";
|
||||||
|
// out = new BufferedWriter(new FileWriter(fileName));
|
||||||
|
|
||||||
|
// retrieve information
|
||||||
|
List<String> Info = retrieveInfo();
|
||||||
|
|
||||||
|
// check on table name field
|
||||||
|
tableName = getInputParameter("TableName").trim();
|
||||||
|
|
||||||
|
if ((tableName == null) || (tableName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the table name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// check on schema name field
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
schemaName = getInputParameter("SchemaName").trim();
|
||||||
|
|
||||||
|
if ((schemaName == null) || (schemaName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the schema name");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
sf = getConnection(Info);
|
||||||
|
|
||||||
|
// smart sample operation on table
|
||||||
|
map = smartSampleOnTable();
|
||||||
|
|
||||||
|
// close the connection
|
||||||
|
sf.close();
|
||||||
|
} catch (HibernateException h) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable-> ERROR " + h.getMessage());
|
||||||
|
throw h;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (IllegalStateException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable-> ERROR " + e.getMessage());
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
} catch (DiscoveryException e1) {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable-> ERROR " + e1.getMessage());
|
||||||
|
throw e1;
|
||||||
|
|
||||||
|
} catch (InvalidResultException e2) {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable-> ERROR " + e2.getMessage());
|
||||||
|
throw e2;
|
||||||
|
|
||||||
|
} catch (IOException e3) {
|
||||||
|
// e3.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable-> ERROR " + e3.getMessage());
|
||||||
|
|
||||||
|
throw e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (Exception e4) {
|
||||||
|
// e4.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable-> Exception " + e4.getMessage());
|
||||||
|
|
||||||
|
throw e4;
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
// close the connection
|
||||||
|
if (sf.isClosed() == false) {
|
||||||
|
mgt.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
// parameters specified by the user
|
||||||
|
addStringInput("ResourceName", "The name of the resource", "");
|
||||||
|
addStringInput("DatabaseName", "The name of the database", "");
|
||||||
|
addStringInput("SchemaName", "The name of the schema", "");
|
||||||
|
addStringInput("TableName", "The name of the table", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->retrieving outputs");
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(LinkedHashMap.class.getName(),
|
||||||
|
map, PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
return output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("In SmartSampleOnTable->Shutdown");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method that recovers the info useful for the connection
|
||||||
|
private List<String> retrieveInfo() throws Exception,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException {
|
||||||
|
|
||||||
|
resourceName = getInputParameter("ResourceName").trim();
|
||||||
|
|
||||||
|
if ((resourceName == null) || (resourceName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the resource name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
databaseName = getInputParameter("DatabaseName").trim();
|
||||||
|
|
||||||
|
if ((databaseName == null) || (databaseName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the database name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// retrieve the chosen resource
|
||||||
|
DatabasesDiscoverer discovery = new DatabasesDiscoverer();
|
||||||
|
|
||||||
|
List<DBResource> resources = discovery.discover();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->number of elements: "
|
||||||
|
+ resources.size());
|
||||||
|
|
||||||
|
// list that contains information useful for the connection
|
||||||
|
List<String> info = new ArrayList<String>();
|
||||||
|
|
||||||
|
check: for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
if (resources.get(i).getResourceName().toLowerCase()
|
||||||
|
.equals(resourceName.toLowerCase())) {
|
||||||
|
|
||||||
|
normalizeDBInfo(resources.get(i));
|
||||||
|
|
||||||
|
for (int j = 0; j < resources.get(i).getAccessPoints().size(); j++) {
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDatabaseName().equals(databaseName)) {
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getUsername());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getPassword());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver());
|
||||||
|
//
|
||||||
|
// // driverInfo =
|
||||||
|
// // resources.get(i).getAccessPoints().get(j)
|
||||||
|
// // .getDriver();
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDialect());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address());
|
||||||
|
//
|
||||||
|
// info.add(databaseName);
|
||||||
|
//
|
||||||
|
// break check;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address().equals(url)){
|
||||||
|
//
|
||||||
|
// System.out.println("url selezionato");
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDatabaseName().toLowerCase()
|
||||||
|
.equals(databaseName.toLowerCase())) {
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getUsername());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->username: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getUsername());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getPassword());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->password: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getPassword());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver());
|
||||||
|
|
||||||
|
driverInfo = resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->driver: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDriver());
|
||||||
|
|
||||||
|
// driverInfo =
|
||||||
|
// resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver();
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDialect());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->dialect: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDialect());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.address());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->url: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).address());
|
||||||
|
|
||||||
|
info.add(databaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->databasename: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDatabaseName());
|
||||||
|
|
||||||
|
break check;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger
|
||||||
|
.getLogger()
|
||||||
|
.debug("In SmartSampleOnTable->information useful for connection: retrieved");
|
||||||
|
|
||||||
|
return info;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to normalize the information related to a database
|
||||||
|
private void normalizeDBInfo(DBResource resource) throws IOException {
|
||||||
|
|
||||||
|
int ap = resource.getAccessPoints().size();
|
||||||
|
|
||||||
|
for (int i = 0; i < ap; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
resource.normalize(i);
|
||||||
|
} catch (IOException e) {
|
||||||
|
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->: Error in normalization process"
|
||||||
|
+ e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the database's connection
|
||||||
|
private SessionFactory getConnection(List<String> Info) throws IOException {
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
Iterator<String> iterator = Info.iterator();
|
||||||
|
|
||||||
|
String DatabaseUserName = iterator.next();
|
||||||
|
String DatabasePassword = iterator.next();
|
||||||
|
String DatabaseDriver = iterator.next();
|
||||||
|
String DatabaseDialect = iterator.next();
|
||||||
|
String DatabaseURL = iterator.next();
|
||||||
|
String DatabaseName = iterator.next();
|
||||||
|
|
||||||
|
SessionFactory sf = mgt.createConnection(DatabaseUserName,
|
||||||
|
DatabasePassword, DatabaseDriver, DatabaseDialect, DatabaseURL,
|
||||||
|
DatabaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->database " + DatabaseName
|
||||||
|
+ ": connected");
|
||||||
|
|
||||||
|
return sf;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to perform the sample operation on the table
|
||||||
|
private LinkedHashMap<String, StatisticalType> smartSampleOnTable()
|
||||||
|
throws Exception {
|
||||||
|
|
||||||
|
LinkedHashMap<String, StatisticalType> mapResults = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
AnalysisLogger
|
||||||
|
.getLogger()
|
||||||
|
.debug("In SmartSampleOnTable->starting the smart sample operation on table");
|
||||||
|
|
||||||
|
// sample on table operation
|
||||||
|
// List<Object> resultSet = null;
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
// for a postgres database the second parameter is the schema name
|
||||||
|
// resultSet = mgt.smartSampleOnTable(tableName, schemaName,
|
||||||
|
// config.getPersistencePath());
|
||||||
|
|
||||||
|
mgt.smartSampleOnTable(tableName, schemaName,
|
||||||
|
config.getPersistencePath());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("mysql")) {
|
||||||
|
// for a mysql database the second parameter is the database name
|
||||||
|
// resultSet = mgt.smartSampleOnTable(tableName, databaseName,
|
||||||
|
// config.getPersistencePath());
|
||||||
|
mgt.smartSampleOnTable(tableName, databaseName,
|
||||||
|
config.getPersistencePath());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SmartSampleOnTable->result retrieved");
|
||||||
|
|
||||||
|
// // processing the information and adding it to the map
|
||||||
|
//
|
||||||
|
// for (int i = 0; i < resultSet.size(); i++) {
|
||||||
|
//
|
||||||
|
// if (resultSet.get(i).getClass().isArray()) {
|
||||||
|
//
|
||||||
|
// Object[] row = (Object[]) resultSet.get(i);
|
||||||
|
//
|
||||||
|
// String RowString = "";
|
||||||
|
//
|
||||||
|
// for (int j = 0; j < row.length; j++) {
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SmartSampleOnTable->row: " + (i + 1)
|
||||||
|
// + " column: " + (j + 1) + " value= "
|
||||||
|
// + row[j].toString());
|
||||||
|
// // System.out.print("\"" + row[j] + "\"; ");
|
||||||
|
//
|
||||||
|
// // write in a file
|
||||||
|
//
|
||||||
|
// if (j != row.length - 1) {
|
||||||
|
//
|
||||||
|
// out.write(row[j].toString());
|
||||||
|
// out.write(",");
|
||||||
|
// RowString = RowString + row[j].toString() + " ";
|
||||||
|
//
|
||||||
|
// // AnalysisLogger.getLogger().debug(
|
||||||
|
// // "In SubmitQuery->row " + (j+1) + ": " +
|
||||||
|
// // row[j].toString());
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// if (j == row.length - 1) {
|
||||||
|
//
|
||||||
|
// out.write(row[j].toString());
|
||||||
|
// out.newLine();
|
||||||
|
//
|
||||||
|
// RowString = RowString + row[j].toString();
|
||||||
|
//
|
||||||
|
// PrimitiveType valRow = new PrimitiveType(
|
||||||
|
// String.class.getName(), RowString,
|
||||||
|
// PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
//
|
||||||
|
// mapResults.put(String.valueOf(i), valRow);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// } else {
|
||||||
|
// // String RowElement="";
|
||||||
|
//
|
||||||
|
// Object RowElement = (Object) resultSet.get(i);
|
||||||
|
//
|
||||||
|
// // AnalysisLogger.getLogger().debug(
|
||||||
|
// // "In SubmitQuery->Query's Result: ");
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SmartSampleOnTable->row: " + (i + 1) + " value= "
|
||||||
|
// + RowElement.toString());
|
||||||
|
//
|
||||||
|
// // write in a file
|
||||||
|
//
|
||||||
|
// out.write(RowElement.toString());
|
||||||
|
// out.newLine();
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// // adding the file
|
||||||
|
// PrimitiveType valfile = new PrimitiveType(File.class.getName(),
|
||||||
|
// new File(fileName), PrimitiveTypes.FILE, "ResultQuery",
|
||||||
|
// "ResultQuery");
|
||||||
|
//
|
||||||
|
// mapResults.put("ResultQuery", valfile);
|
||||||
|
//
|
||||||
|
// // close the file
|
||||||
|
// out.close();
|
||||||
|
//
|
||||||
|
// return mapResults;
|
||||||
|
|
||||||
|
// to add the results to the variable map
|
||||||
|
|
||||||
|
// to add the map
|
||||||
|
|
||||||
|
HashMap<String, String> mapResult = new HashMap<String, String>();
|
||||||
|
mapResult = mgt.getMapSampleTableResult();
|
||||||
|
|
||||||
|
String encoded = null;
|
||||||
|
|
||||||
|
encoded = new String(mapResult.get("HEADERS").getBytes(), "UTF-8");
|
||||||
|
|
||||||
|
// //check encoded value
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SmartSampleOnTable->string encoded: " + encoded);
|
||||||
|
|
||||||
|
PrimitiveType val = new PrimitiveType(String.class.getName(), encoded,
|
||||||
|
PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
|
||||||
|
mapResults.put("HEADERS", val);
|
||||||
|
|
||||||
|
for (int i = 0; i < mapResult.size() - 1; i++) {
|
||||||
|
|
||||||
|
encoded = new String(mapResult.get(String.valueOf(i)).getBytes(),
|
||||||
|
"UTF-8");
|
||||||
|
|
||||||
|
// // check encoded value
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SmartSampleOnTable->string encoded: " + encoded);
|
||||||
|
|
||||||
|
PrimitiveType val1 = new PrimitiveType(String.class.getName(),
|
||||||
|
encoded, PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
|
||||||
|
mapResults.put(String.valueOf(i), val1);
|
||||||
|
// //check value
|
||||||
|
// String value = (String) val1.getContent();
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SmartSampleOnTable->value: " + value);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to add the file
|
||||||
|
|
||||||
|
PrimitiveType fileResult = new PrimitiveType(File.class.getName(),
|
||||||
|
mgt.getFileSampleTableResult(), PrimitiveTypes.FILE, "File",
|
||||||
|
"File");
|
||||||
|
|
||||||
|
mapResults.put("File", fileResult);
|
||||||
|
|
||||||
|
return mapResults;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,788 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataaccess.databases.access.DatabasesDiscoverer;
|
||||||
|
import org.gcube.dataaccess.databases.lexer.MySQLLexicalAnalyzer;
|
||||||
|
import org.gcube.dataaccess.databases.lexer.PostgresLexicalAnalyzer;
|
||||||
|
import org.gcube.dataaccess.databases.resources.DBResource;
|
||||||
|
import org.gcube.dataaccess.databases.utils.DatabaseManagement;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||||
|
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
|
import com.adventnet.swissqlapi.sql.exception.ConvertException;
|
||||||
|
import com.adventnet.swissqlapi.sql.parser.ParseException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class that allows to submit a query. It retrieves results in a file and in a
|
||||||
|
* map.
|
||||||
|
*/
|
||||||
|
public class SubmitQuery extends StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
private LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
// object that allows to manage some operations on a database
|
||||||
|
private DatabaseManagement mgt;
|
||||||
|
// variable that keeps track of the database's type
|
||||||
|
private String driverInfo;
|
||||||
|
|
||||||
|
// file that will contain query's result
|
||||||
|
// private BufferedWriter out;
|
||||||
|
// private String fileName;
|
||||||
|
|
||||||
|
private SessionFactory sf;
|
||||||
|
|
||||||
|
// database's parameters specified by the user
|
||||||
|
private String resourceName = null;
|
||||||
|
private String databaseName = null;
|
||||||
|
private String schemaName = null;
|
||||||
|
private String tableName = null;
|
||||||
|
private String query = null;
|
||||||
|
|
||||||
|
private String valueReadOnly = "Read-Only Query";
|
||||||
|
private String smartCorrection = "Apply Smart Correction";
|
||||||
|
private String dialect = "Language";
|
||||||
|
|
||||||
|
String valueRO;
|
||||||
|
String valueSC;
|
||||||
|
String valueDialect="";
|
||||||
|
|
||||||
|
|
||||||
|
// variable used to filter the disallowed queries
|
||||||
|
private boolean NotAllowedQuery = false;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
mgt = new DatabaseManagement(config.getConfigPath());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In SubmitQuery->Initialization");
|
||||||
|
|
||||||
|
String scope = config.getGcubeScope();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->scope set by config object: " + scope);
|
||||||
|
|
||||||
|
if (scope == null || scope.length() == 0) {
|
||||||
|
|
||||||
|
scope = ScopeProvider.instance.get();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->scope set by ScopeProvider: " + scope);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
valueRO = config.getParam(valueReadOnly);
|
||||||
|
valueSC = config.getParam(smartCorrection);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
return "Algorithm that allows to submit a query";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception, IOException,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException,
|
||||||
|
HibernateException {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In SubmitQuery->Processing");
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
// // file that will contain query's result
|
||||||
|
// String property = "java.io.tmpdir";
|
||||||
|
// String tempDir = System.getProperty(property);
|
||||||
|
//
|
||||||
|
// // File f = File.createTempFile("results", ".txt", new
|
||||||
|
// // File(tempDir));
|
||||||
|
// tempDir = tempDir + "/";
|
||||||
|
//
|
||||||
|
// // BufferedWriter out = new BufferedWriter(new
|
||||||
|
// // FileWriter(tempDir+"results.txt"));
|
||||||
|
//
|
||||||
|
// // fileName = "./cfg/" + "results.csv";
|
||||||
|
//
|
||||||
|
// fileName = "./cfg/" + "results.txt";
|
||||||
|
//
|
||||||
|
// // remove comment
|
||||||
|
// // fileName = tempDir + "results.csv";
|
||||||
|
//
|
||||||
|
// out = new BufferedWriter(new FileWriter(fileName));
|
||||||
|
|
||||||
|
// retrieve information
|
||||||
|
List<String> Info = retrieveInfo();
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
sf = getConnection(Info);
|
||||||
|
|
||||||
|
// // check on table name field
|
||||||
|
// tableName = getInputParameter("TableName");
|
||||||
|
//
|
||||||
|
// if ((tableName == null) || (tableName.equals(""))) {
|
||||||
|
//
|
||||||
|
// throw new Exception("Warning: insert the table name");
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // check on schema name field
|
||||||
|
//
|
||||||
|
// if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
//
|
||||||
|
// schemaName = getInputParameter("SchemaName");
|
||||||
|
//
|
||||||
|
// if ((schemaName == null) || (schemaName.equals(""))) {
|
||||||
|
//
|
||||||
|
// throw new Exception("Warning: insert the schema name");
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// submit a query
|
||||||
|
map = submitQuery();
|
||||||
|
|
||||||
|
// close the connection
|
||||||
|
sf.close();
|
||||||
|
|
||||||
|
} catch (HibernateException h) {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery-> ERROR " + h.getMessage());
|
||||||
|
throw h;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (IllegalStateException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery-> ERROR " + e.getMessage());
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
} catch (DiscoveryException e1) {
|
||||||
|
// e1.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery-> ERROR " + e1.getMessage());
|
||||||
|
throw e1;
|
||||||
|
|
||||||
|
} catch (InvalidResultException e2) {
|
||||||
|
// e2.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery-> ERROR " + e2.getMessage());
|
||||||
|
throw e2;
|
||||||
|
|
||||||
|
} catch (IOException e3) {
|
||||||
|
// e3.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery-> ERROR " + e3.getMessage());
|
||||||
|
|
||||||
|
throw e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (Exception e4) {
|
||||||
|
// e4.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery-> Exception " + e4.getMessage());
|
||||||
|
|
||||||
|
throw e4;
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
if (sf.isClosed() == false) {
|
||||||
|
mgt.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In SubmitQuery->retrieving outputs");
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(LinkedHashMap.class.getName(),
|
||||||
|
map, PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
return output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<StatisticalType> getInputParameters() {
|
||||||
|
List<StatisticalType> parameters = new ArrayList<StatisticalType>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// parameters specified by the user
|
||||||
|
PrimitiveType p0= new PrimitiveType(String.class.getName(),
|
||||||
|
"", PrimitiveTypes.STRING, "ResourceName", "The name of the resource");
|
||||||
|
|
||||||
|
|
||||||
|
PrimitiveType p1=new PrimitiveType(String.class.getName(),
|
||||||
|
"", PrimitiveTypes.STRING, "DatabaseName", "The name of the database");
|
||||||
|
|
||||||
|
PrimitiveType p2 = new PrimitiveType(Boolean.class.getName(), null,
|
||||||
|
PrimitiveTypes.BOOLEAN, valueReadOnly,
|
||||||
|
"Check the box if the query must be read-only", "true");
|
||||||
|
|
||||||
|
PrimitiveType p3 = new PrimitiveType(Boolean.class.getName(), null,
|
||||||
|
PrimitiveTypes.BOOLEAN, smartCorrection,
|
||||||
|
"Check the box for smart correction", "true");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// addEnumerateInput(SmartCorrectionEnum.values(), dialect, "Language", "");
|
||||||
|
PrimitiveType p4 = new PrimitiveType(Enum.class.getName(),SmartCorrectionEnum.values(),PrimitiveTypes.ENUMERATED,dialect,"Language", SmartCorrectionEnum.NONE.name());
|
||||||
|
|
||||||
|
PrimitiveType p5 = new PrimitiveType(String.class.getName(),
|
||||||
|
"", PrimitiveTypes.STRING, "Query", "query");
|
||||||
|
|
||||||
|
parameters.add(p0);
|
||||||
|
parameters.add(p1);
|
||||||
|
parameters.add(p2);
|
||||||
|
parameters.add(p3);
|
||||||
|
parameters.add(p4);
|
||||||
|
parameters.add(p5);
|
||||||
|
|
||||||
|
|
||||||
|
return parameters;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In SubmitQuery->setting inputs");
|
||||||
|
|
||||||
|
// parameters specified by the user
|
||||||
|
// addStringInput("ResourceName", "The name of the resource", "");
|
||||||
|
// addStringInput("DatabaseName", "The name of the database", "");
|
||||||
|
|
||||||
|
// PrimitiveType p2 = new PrimitiveType(Boolean.class.getName(), null,
|
||||||
|
// PrimitiveTypes.BOOLEAN, valueReadOnly,
|
||||||
|
// "Check the box if the query must be read-only","true");
|
||||||
|
|
||||||
|
// addEnumerateInput(SubmitQueryEnum.values(), valueReadOnly,
|
||||||
|
// "Check the box if the query must be read-only",
|
||||||
|
// SubmitQueryEnum.TRUE.name());
|
||||||
|
// addStringInput("SchemaName", "The name of the schema", "");
|
||||||
|
// addStringInput("TableName", "The name of the table", "");
|
||||||
|
|
||||||
|
// PrimitiveType p3 = new PrimitiveType(Boolean.class.getName(), null,
|
||||||
|
// PrimitiveTypes.BOOLEAN, smartCorrection,
|
||||||
|
// "Check the box for smart correction","true");
|
||||||
|
// List<StatisticalType> parameters = new ArrayList<StatisticalType>();
|
||||||
|
// parameters.add(p2);
|
||||||
|
// parameters.add(p3);
|
||||||
|
|
||||||
|
// addEnumerateInput(
|
||||||
|
// SubmitQueryEnum.values(),
|
||||||
|
// smartCorrection,
|
||||||
|
// "Check the box for smart correction",
|
||||||
|
// SubmitQueryEnum.TRUE.name());
|
||||||
|
|
||||||
|
// addEnumerateInput(SmartCorrectionEnum.values(), dialect, "Language)",
|
||||||
|
// SmartCorrectionEnum.POSTGRES.name());
|
||||||
|
|
||||||
|
// addEnumerateInput(SmartCorrectionEnum.values(), dialect, "Language", "");
|
||||||
|
// addEnumerateInput(SmartCorrectionEnum.values(), dialect, "Language",
|
||||||
|
// "");
|
||||||
|
|
||||||
|
// addStringInput("Query", "query", "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In SubmitQuery->Shutdown");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method that recovers the info useful for the connection
|
||||||
|
private List<String> retrieveInfo() throws Exception,
|
||||||
|
IllegalStateException, DiscoveryException, InvalidResultException {
|
||||||
|
|
||||||
|
resourceName = getInputParameter("ResourceName").trim();
|
||||||
|
|
||||||
|
if ((resourceName == null) || (resourceName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the resource name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
databaseName = getInputParameter("DatabaseName").trim();
|
||||||
|
|
||||||
|
if ((databaseName == null) || (databaseName.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the database name");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// retrieve the chosen resource
|
||||||
|
DatabasesDiscoverer discovery = new DatabasesDiscoverer();
|
||||||
|
|
||||||
|
List<DBResource> resources = discovery.discover();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->number of elements: " + resources.size());
|
||||||
|
|
||||||
|
// list that contains information useful for the connection
|
||||||
|
List<String> info = new ArrayList<String>();
|
||||||
|
|
||||||
|
check: for (int i = 0; i < resources.size(); i++) {
|
||||||
|
|
||||||
|
if (resources.get(i).getResourceName().toLowerCase()
|
||||||
|
.equals(resourceName.toLowerCase())) {
|
||||||
|
|
||||||
|
normalizeDBInfo(resources.get(i));
|
||||||
|
|
||||||
|
for (int j = 0; j < resources.get(i).getAccessPoints().size(); j++) {
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDatabaseName().equals(databaseName)) {
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getUsername());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getPassword());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver());
|
||||||
|
//
|
||||||
|
// // driverInfo =
|
||||||
|
// // resources.get(i).getAccessPoints().get(j)
|
||||||
|
// // .getDriver();
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDialect());
|
||||||
|
//
|
||||||
|
// info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address());
|
||||||
|
//
|
||||||
|
// info.add(databaseName);
|
||||||
|
//
|
||||||
|
// break check;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .address().equals(url)){
|
||||||
|
//
|
||||||
|
// System.out.println("url selezionato");
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDatabaseName().toLowerCase()
|
||||||
|
.equals(databaseName.toLowerCase())) {
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getUsername());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->username: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getUsername());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getPassword());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->password: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getPassword());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver());
|
||||||
|
|
||||||
|
driverInfo = resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDriver();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->driver: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDriver());
|
||||||
|
|
||||||
|
// driverInfo =
|
||||||
|
// resources.get(i).getAccessPoints().get(j)
|
||||||
|
// .getDriver();
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.getDialect());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->dialect: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDialect());
|
||||||
|
|
||||||
|
info.add(resources.get(i).getAccessPoints().get(j)
|
||||||
|
.address());
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->url: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).address());
|
||||||
|
|
||||||
|
info.add(databaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->databasename: "
|
||||||
|
+ resources.get(i).getAccessPoints()
|
||||||
|
.get(j).getDatabaseName());
|
||||||
|
|
||||||
|
break check;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->information useful for connection: retrieved");
|
||||||
|
|
||||||
|
return info;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// create the database's connection
|
||||||
|
private SessionFactory getConnection(List<String> Info) throws IOException {
|
||||||
|
|
||||||
|
// create the connection
|
||||||
|
Iterator<String> iterator = Info.iterator();
|
||||||
|
|
||||||
|
String DatabaseUserName = iterator.next();
|
||||||
|
String DatabasePassword = iterator.next();
|
||||||
|
String DatabaseDriver = iterator.next();
|
||||||
|
String DatabaseDialect = iterator.next();
|
||||||
|
String DatabaseURL = iterator.next();
|
||||||
|
String DatabaseName = iterator.next();
|
||||||
|
|
||||||
|
SessionFactory sf = mgt.createConnection(DatabaseUserName,
|
||||||
|
DatabasePassword, DatabaseDriver, DatabaseDialect, DatabaseURL,
|
||||||
|
DatabaseName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->database " + DatabaseName + ": connected");
|
||||||
|
|
||||||
|
return sf;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method that allows to submit a query
|
||||||
|
private LinkedHashMap<String, StatisticalType> submitQuery()
|
||||||
|
throws Exception, ParseException, ConvertException {
|
||||||
|
|
||||||
|
// LinkedHashMap<String, StatisticalType> results = new
|
||||||
|
// LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
LinkedHashMap<String, StatisticalType> mapResults = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
query = getInputParameter("Query");
|
||||||
|
|
||||||
|
if ((query == null) || (query.equals(""))) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: insert the query");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->Analyzing the query: " + query);
|
||||||
|
|
||||||
|
// analyze the query to filter it if it is not read-only compliant
|
||||||
|
// String valueRO = getInputParameter(valueReadOnly);
|
||||||
|
|
||||||
|
// //print check
|
||||||
|
AnalysisLogger.getLogger().debug("In SubmitQuery->valueRO: " +
|
||||||
|
valueRO);
|
||||||
|
|
||||||
|
if (valueRO.equals("true")) {
|
||||||
|
|
||||||
|
NotAllowedQuery = analyzeQuery(query);
|
||||||
|
|
||||||
|
// //print check
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SubmitQuery->NotAllowedQuery valueRO: " + NotAllowedQuery);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NotAllowedQuery == false) {
|
||||||
|
|
||||||
|
// formatWithQuotes(query);
|
||||||
|
|
||||||
|
// submit query
|
||||||
|
List<Object> result = new ArrayList<Object>();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->Submitting the query: " + query);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger()
|
||||||
|
.debug("In SubmitQuery->path file: "
|
||||||
|
+ config.getPersistencePath());
|
||||||
|
|
||||||
|
// if user specifies to use the smart correction a translation in
|
||||||
|
// applied on the query
|
||||||
|
// String valueSC = getInputParameter(smartCorrection);
|
||||||
|
|
||||||
|
// //print check
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->valueSC: " + valueSC);
|
||||||
|
|
||||||
|
// dialect to which a query is converted
|
||||||
|
// String valueDialect = getInputParameter(dialect);
|
||||||
|
valueDialect = getInputParameter(dialect);
|
||||||
|
|
||||||
|
// //print check
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->valueDialect: " + valueDialect);
|
||||||
|
|
||||||
|
if ((valueSC.equals("true")) && (!(valueDialect.equals("")))) {
|
||||||
|
String smartCorrectedQuery = "";
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->applying smart correction on the query: "
|
||||||
|
+ query);
|
||||||
|
|
||||||
|
if (valueDialect.equals("POSTGRES")) {
|
||||||
|
|
||||||
|
// //print check
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SubmitQuery->query: " + query);
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In SubmitQuery->dialect: " +
|
||||||
|
// DatabaseManagement.POSTGRESQLDialect);
|
||||||
|
|
||||||
|
// call the SwisSQL library functionality
|
||||||
|
smartCorrectedQuery = mgt.smartCorrectionOnQuery(query,
|
||||||
|
DatabaseManagement.POSTGRESQLDialect);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (valueDialect.equals("MYSQL")) {
|
||||||
|
|
||||||
|
// call the SwisSQL library functionality
|
||||||
|
smartCorrectedQuery = mgt.smartCorrectionOnQuery(query,
|
||||||
|
DatabaseManagement.MYSQLDialect);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery-> query converted: "
|
||||||
|
+ smartCorrectedQuery);
|
||||||
|
|
||||||
|
query = smartCorrectedQuery;
|
||||||
|
|
||||||
|
if (!(smartCorrectedQuery.equals(""))) {
|
||||||
|
|
||||||
|
PrimitiveType valQuery = new PrimitiveType(
|
||||||
|
String.class.getName(), smartCorrectedQuery,
|
||||||
|
PrimitiveTypes.STRING, "Query Converted",
|
||||||
|
"Query Converted");
|
||||||
|
|
||||||
|
mapResults.put("Query Converted", valQuery);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// else if ((valueSC.equals("true")) && (valueDialect.equals("NONE"))) {
|
||||||
|
//
|
||||||
|
// throw new Exception("Warning: specify the language");
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
// for a postgres database the second parameter is the
|
||||||
|
// schema
|
||||||
|
// name
|
||||||
|
|
||||||
|
// result = mgt.submitQuery(query, tableName, schemaName,
|
||||||
|
// sf, config.getPersistencePath());
|
||||||
|
|
||||||
|
result = mgt
|
||||||
|
.submitQuery(query, sf, config.getPersistencePath());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (driverInfo.toLowerCase().contains("mysql")) {
|
||||||
|
// for a mysql database the second parameter is the database
|
||||||
|
// name
|
||||||
|
|
||||||
|
// result = mgt.submitQuery(query, tableName, databaseName,
|
||||||
|
// sf, config.getPersistencePath());
|
||||||
|
|
||||||
|
result = mgt
|
||||||
|
.submitQuery(query, sf, config.getPersistencePath());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result == null) {
|
||||||
|
|
||||||
|
throw new Exception("Warning: the table has not rows");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->Query's Result retrieved");
|
||||||
|
|
||||||
|
HashMap<String, String> mapResult = new HashMap<String, String>();
|
||||||
|
mapResult = mgt.getMapQueryResult();
|
||||||
|
|
||||||
|
String encoded = null;
|
||||||
|
|
||||||
|
encoded = new String(mapResult.get("HEADERS").getBytes(), "UTF-8");
|
||||||
|
|
||||||
|
// // check the encoded value
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In RandomSampleOnTable->string encoded: " + encoded);
|
||||||
|
|
||||||
|
PrimitiveType val = new PrimitiveType(String.class.getName(),
|
||||||
|
encoded, PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
|
||||||
|
mapResults.put("HEADERS", val);
|
||||||
|
|
||||||
|
// to add the rows (result of the query)
|
||||||
|
for (int i = 0; i < mapResult.size() - 1; i++) {
|
||||||
|
|
||||||
|
encoded = new String(mapResult.get(String.valueOf(i))
|
||||||
|
.getBytes(), "UTF-8");
|
||||||
|
|
||||||
|
// // check the encoded value
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In RandomSampleOnTable->string encoded: " + encoded);
|
||||||
|
|
||||||
|
PrimitiveType val1 = new PrimitiveType(String.class.getName(),
|
||||||
|
encoded, PrimitiveTypes.STRING, "Row", "Row");
|
||||||
|
|
||||||
|
mapResults.put(String.valueOf(i), val1);
|
||||||
|
// //check value contained in map
|
||||||
|
// String value = (String) val1.getContent();
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In RandomSampleOnTable->value: " + value);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// to add the file
|
||||||
|
|
||||||
|
PrimitiveType fileResult = new PrimitiveType(File.class.getName(),
|
||||||
|
mgt.getFileQueryResult(), PrimitiveTypes.FILE, "File",
|
||||||
|
"File");
|
||||||
|
|
||||||
|
mapResults.put("File", fileResult);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return mapResults;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// method that allows to analyze the query in order to filter it if it is
|
||||||
|
// not read-only compliant
|
||||||
|
private boolean analyzeQuery(String query) throws Exception {
|
||||||
|
boolean NotAllowed = false;
|
||||||
|
// check if the query is allowed
|
||||||
|
|
||||||
|
// TODO: check also the oracle case
|
||||||
|
if (driverInfo.toLowerCase().contains("postgres")) {
|
||||||
|
|
||||||
|
PostgresLexicalAnalyzer obj = new PostgresLexicalAnalyzer();
|
||||||
|
|
||||||
|
NotAllowed = obj.analyze(query);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (driverInfo.toLowerCase().contains("mysql")) {
|
||||||
|
|
||||||
|
MySQLLexicalAnalyzer obj = new MySQLLexicalAnalyzer();
|
||||||
|
|
||||||
|
NotAllowed = obj.analyze(query);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->Warning: query filtered: " + NotAllowed);
|
||||||
|
|
||||||
|
return NotAllowed;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void normalizeDBInfo(DBResource resource) throws IOException {
|
||||||
|
|
||||||
|
int ap = resource.getAccessPoints().size();
|
||||||
|
|
||||||
|
for (int i = 0; i < ap; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
resource.normalize(i);
|
||||||
|
} catch (IOException e) {
|
||||||
|
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In SubmitQuery->: Error in normalization process"
|
||||||
|
+ e.getMessage());
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// private void formatWithQuotes(String Query){
|
||||||
|
//
|
||||||
|
// if (driverInfo.toLowerCase().contains("postgres")){
|
||||||
|
//
|
||||||
|
// if (Query.contains(tableName))
|
||||||
|
// {
|
||||||
|
//
|
||||||
|
// query=Query.replaceAll(tableName, "\""+tableName+"\"");
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (driverInfo.toLowerCase().contains("mysql")){
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// query=Query.replaceAll(tableName, "\""+tableName+"\"");
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
package org.gcube.dataacces.algorithms.drmalgorithms;
|
||||||
|
|
||||||
|
public enum SubmitQueryEnum {
|
||||||
|
TRUE,
|
||||||
|
FALSE
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class TestListDBInfo {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
System.out.println("TEST 1");
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(testConfigLocal());
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
trans.get(0).getOutput();
|
||||||
|
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testConfigLocal() {
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTDBINFO");
|
||||||
|
// config.setParam("ResourceName", "TabularData Database");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube");
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class TestListNames {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
System.out.println("TEST 1");
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(testConfigLocal());
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType output = trans.get(0).getOutput();
|
||||||
|
System.out.println(output);
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testConfigLocal() {
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTDBNAMES");
|
||||||
|
config.setGcubeScope("/gcube");
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class TestListSchemas {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
System.out.println("TEST 1");
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(testConfigLocal());
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
trans.get(0).getOutput();
|
||||||
|
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testConfigLocal() {
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTDBSCHEMA");
|
||||||
|
|
||||||
|
//A test with a database postgres
|
||||||
|
config.setParam("ResourceName", "GP DB");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//connection's parameters for a database postgres
|
||||||
|
|
||||||
|
//// config.setParam("databaseName", "aquamapsdb");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("userName", "postgres");
|
||||||
|
// config.setParam("password", "d4science2");
|
||||||
|
// config.setParam("driverName", "org.postgresql.Driver");
|
||||||
|
// config.setParam("URL",
|
||||||
|
// "jdbc:postgresql://geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb");
|
||||||
|
|
||||||
|
|
||||||
|
// config.setParam("DatabaseName", "mysql");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Another test with database postgres
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "TabularData Database");
|
||||||
|
|
||||||
|
// config.setParam("DatabaseName", "tabulardata");
|
||||||
|
|
||||||
|
// config.setParam("userName", "tabulardataadmin");
|
||||||
|
// config.setParam("password", "gcube2010");
|
||||||
|
// config.setParam("driverName", "org.postgresql.Driver");
|
||||||
|
// config.setParam("URL",
|
||||||
|
// "jdbc:postgresql://node7.d.d4science.research-infrastructures.eu:5432/tabulardata");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube");
|
||||||
|
// config.setGcubeScope("/d4science.research-infrastructures.eu");
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class TestListTables {
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
System.out.println("TEST 1");
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(testConfigLocal());
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
trans.get(0).getOutput();
|
||||||
|
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testConfigLocal() {
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLES");
|
||||||
|
|
||||||
|
//A test with a database postgres
|
||||||
|
config.setParam("ResourceName", "GP DB");
|
||||||
|
|
||||||
|
//connection's parameters for a database postgres
|
||||||
|
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
|
||||||
|
// config.setParam("userName", "postgres");
|
||||||
|
// config.setParam("password", "d4science2");
|
||||||
|
// config.setParam("driverName", "org.postgresql.Driver");
|
||||||
|
// config.setParam("URL",
|
||||||
|
// "jdbc:postgresql://geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb");
|
||||||
|
|
||||||
|
|
||||||
|
//a test with a database mysql
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube");
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,92 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class TestSubmitQuery {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
System.out.println("TEST 1");
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(testConfigLocal());
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
trans.get(0).getOutput();
|
||||||
|
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testConfigLocal() {
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// // //A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
//
|
||||||
|
// //connection's parameters for a database postgres
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName","area" );
|
||||||
|
// config.setParam("Query","select * from area limit 3" );
|
||||||
|
|
||||||
|
|
||||||
|
// // config.setParam("TableName", "Divisions");
|
||||||
|
// config.setParam("TableName", "all_world");
|
||||||
|
// config.setParam("Query", "select * from all_world");
|
||||||
|
|
||||||
|
// config.setParam("userName", "postgres");
|
||||||
|
// config.setParam("password", "d4science2");
|
||||||
|
// config.setParam("driverName", "org.postgresql.Driver");
|
||||||
|
// config.setParam("URL",
|
||||||
|
// "jdbc:postgresql://geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb");
|
||||||
|
// config.setParam("dialect",
|
||||||
|
// "org.hibernate.dialect.PostgreSQLDialect");
|
||||||
|
|
||||||
|
|
||||||
|
// a test with a database mysql
|
||||||
|
// config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
// config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
// config.setParam("TableName", "common_names");
|
||||||
|
//// config.setParam("Query", "select record_id, name_code from common_names limit 3");
|
||||||
|
//// config.setParam("Query", "select record_id as a, name_code as b from common_names limit 3");
|
||||||
|
//
|
||||||
|
//// config.setParam("Query", "select name_code, record_id from common_names limit 3");
|
||||||
|
//
|
||||||
|
// config.setParam("Query", "select record_id, name_code from common_names limit 3");
|
||||||
|
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
config.setParam("DatabaseName", "testdb");
|
||||||
|
config.setParam("Query", "select count (*)from (select csquarecode from hcaf_d)");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// // a test with postgis
|
||||||
|
// config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
//
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
// config.setParam("Query", "select gid, area from \"Divisions\" limit 30");
|
||||||
|
//
|
||||||
|
//// config.setParam("Query", "select the_geom from Divisions limit 30");
|
||||||
|
//
|
||||||
|
//// config.setParam("Query", "select text(the_geom) from Divisions limit 30");
|
||||||
|
//
|
||||||
|
// config.setParam("Query", "EXPLAIN ANALYZE select gid from \"Divisions\" limit 30");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
// config.setGcubeScope("/gcube");
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,106 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class TestTableDetails {
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
System.out.println("TEST 1");
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(testConfigLocal());
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
trans.get(0).getOutput();
|
||||||
|
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testConfigLocal() {
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLEDETAILS");
|
||||||
|
|
||||||
|
// //A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
//
|
||||||
|
// //connection's parameters for a database postgres
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
//// config.setParam("TableName", "Divisions");
|
||||||
|
//
|
||||||
|
//// config.setParam("TableName", "all_world");
|
||||||
|
//
|
||||||
|
// config.setParam("TableName", "biodiversity_lme");
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// config.setParam("userName", "postgres");
|
||||||
|
// config.setParam("password", "d4science2");
|
||||||
|
// config.setParam("driverName", "org.postgresql.Driver");
|
||||||
|
// config.setParam("URL",
|
||||||
|
// "jdbc:postgresql://geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb");
|
||||||
|
// config.setParam("dialect", "org.hibernate.dialect.PostgreSQLDialect");
|
||||||
|
|
||||||
|
|
||||||
|
// //A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
//
|
||||||
|
// //connection's parameters for a database postgres
|
||||||
|
// config.setParam("DatabaseName", "testdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
//// config.setParam("TableName", "Divisions");
|
||||||
|
//
|
||||||
|
//// config.setParam("TableName", "all_world");
|
||||||
|
//
|
||||||
|
// config.setParam("TableName", "hcaf_d");
|
||||||
|
////
|
||||||
|
//// config.setParam("userName", "utente");
|
||||||
|
//// config.setParam("password", "d4science");
|
||||||
|
//// config.setParam("driverName", "org.postgresql.Driver");
|
||||||
|
//// config.setParam("URL",
|
||||||
|
//// "jdbc:postgresql://geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb");
|
||||||
|
//// config.setParam("dialect", "org.hibernate.dialect.PostgreSQLDialect");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// //a test with a database mysql
|
||||||
|
// config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
// config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
// config.setParam("TableName", "Common_names");
|
||||||
|
|
||||||
|
|
||||||
|
//a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "divisions");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,85 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test.regressiontest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class RegressionListDBInfo {
|
||||||
|
|
||||||
|
static String[] algorithms = { "Postgres", "NullInputValue"};
|
||||||
|
|
||||||
|
// static AlgorithmConfiguration[] configs = { testPostgres1(),
|
||||||
|
// testPostgres2(), testPostgis(), Mysql(), NullInputValue(),
|
||||||
|
// Postgres3() };
|
||||||
|
|
||||||
|
static AlgorithmConfiguration[] configs = { testPostgres1(), NullInputValue()};
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
// System.out.println("TEST 1");
|
||||||
|
|
||||||
|
for (int i = 0; i < algorithms.length; i++) {
|
||||||
|
AnalysisLogger.getLogger().debug("Executing:" + algorithms[i]);
|
||||||
|
|
||||||
|
// ComputationalAgent trans = new WPSProcess(wps, algorithms[i]);
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(configs[i]);
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
// trans.setConfiguration(configs[i]);
|
||||||
|
// trans.init();
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType st = trans.get(0).getOutput();
|
||||||
|
|
||||||
|
// Print Result
|
||||||
|
AnalysisLogger.getLogger().debug("ST:" + st);
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgres1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 1: Postgres");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTDBINFO");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "AquaMaps Service DataBase");
|
||||||
|
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue() {
|
||||||
|
|
||||||
|
System.out.println("TEST 2: NullInputValue");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTDBINFO");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test.regressiontest;
|
||||||
|
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class RegressionListNames {
|
||||||
|
|
||||||
|
static String[] algorithms = { "Postgres1", "Postgres2", "Postgis",
|
||||||
|
"Mysql", "NullInputValue" };
|
||||||
|
|
||||||
|
static AlgorithmConfiguration config;
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
System.out.println("TEST 1");
|
||||||
|
|
||||||
|
// for (int i = 0; i < algorithms.length; i++) {
|
||||||
|
AnalysisLogger.getLogger().debug("Executing:" + "test");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTDBNAMES");
|
||||||
|
config.setGcubeScope("/gcube");
|
||||||
|
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(config);
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
// trans.setConfiguration(configs[i]);
|
||||||
|
// trans.init();
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType st = trans.get(0).getOutput();
|
||||||
|
AnalysisLogger.getLogger().debug("ST:" + st);
|
||||||
|
|
||||||
|
|
||||||
|
// // Print Result
|
||||||
|
// PrimitiveType obj= (PrimitiveType)st;
|
||||||
|
// Object result=(Object) (obj.getContent());
|
||||||
|
// LinkedHashMap map=new LinkedHashMap<String, String>();
|
||||||
|
//
|
||||||
|
// map= (LinkedHashMap) result;
|
||||||
|
//
|
||||||
|
// for(int j=0;j<map.size();j++){
|
||||||
|
//
|
||||||
|
// AnalysisLogger.getLogger().debug("value:" + map.get(j));
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
trans = null;
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// private static AlgorithmConfiguration test() {
|
||||||
|
//
|
||||||
|
// AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
//
|
||||||
|
// config.setAgent("LISTDBNAMES");
|
||||||
|
// config.setGcubeScope("/gcube");
|
||||||
|
// return config;
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,123 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test.regressiontest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class RegressionListSchemas {
|
||||||
|
|
||||||
|
// static String[] algorithms = { "Postgres1", "NullInputValue1", "NullInputValue2"};
|
||||||
|
|
||||||
|
// static AlgorithmConfiguration[] configs = { testPostgres1(),
|
||||||
|
// testPostgres2(), testPostgis(), Mysql(), NullInputValue(),
|
||||||
|
// Postgres3() };
|
||||||
|
|
||||||
|
|
||||||
|
static String[] algorithms = { "Postgres1"};
|
||||||
|
|
||||||
|
static AlgorithmConfiguration[] configs = { testPostgres1()};
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
// System.out.println("TEST 1");
|
||||||
|
|
||||||
|
for (int i = 0; i < algorithms.length; i++) {
|
||||||
|
AnalysisLogger.getLogger().debug("Executing:" + algorithms[i]);
|
||||||
|
|
||||||
|
// ComputationalAgent trans = new WPSProcess(wps, algorithms[i]);
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(configs[i]);
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
// trans.setConfiguration(configs[i]);
|
||||||
|
// trans.init();
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType st = trans.get(0).getOutput();
|
||||||
|
|
||||||
|
// Print Result
|
||||||
|
AnalysisLogger.getLogger().debug("ST:" + st);
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgres1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 1: Postgres table without rows");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTDBSCHEMA");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
// config.setParam("DatabaseName", "testdb");
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
// config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
config.setParam("DatabaseName", "testdb");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 2: NullInputValue1");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTDBSCHEMA");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue2() {
|
||||||
|
|
||||||
|
System.out.println("TEST 3: NullInputValue2");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTDBSCHEMA");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
config.setParam("ResourceName", "GP DB");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,159 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test.regressiontest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class RegressionListTables {
|
||||||
|
|
||||||
|
// static String[] algorithms = { "Postgres1", "Mysql", "NullInputValue1", "NullInputValue2", "NullInputValue3" };
|
||||||
|
|
||||||
|
// static AlgorithmConfiguration[] configs = { testPostgres1(),Mysql(), NullInputValue1(), NullInputValue2(), NullInputValue3()};
|
||||||
|
|
||||||
|
|
||||||
|
static String[] algorithms = { "Postgres1"};
|
||||||
|
static AlgorithmConfiguration[] configs = { testPostgres1()};
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
// System.out.println("TEST 1");
|
||||||
|
|
||||||
|
for (int i = 0; i < algorithms.length; i++) {
|
||||||
|
AnalysisLogger.getLogger().debug("Executing:" + algorithms[i]);
|
||||||
|
|
||||||
|
// ComputationalAgent trans = new WPSProcess(wps, algorithms[i]);
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(configs[i]);
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
// trans.setConfiguration(configs[i]);
|
||||||
|
// trans.init();
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType st = trans.get(0).getOutput();
|
||||||
|
|
||||||
|
// Print Result
|
||||||
|
AnalysisLogger.getLogger().debug("ST:" + st);
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgres1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 1: Postgres table without rows");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLES");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
//
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
config.setParam("DatabaseName", "testdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration Mysql() {
|
||||||
|
|
||||||
|
System.out.println("TEST 2: Mysql");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLES");
|
||||||
|
|
||||||
|
// a test with a database mysql
|
||||||
|
config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 3: Postgis NullInputValue1");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLES");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
// config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue2() {
|
||||||
|
|
||||||
|
System.out.println("TEST 4: Postgis NullInputValue2");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLES");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue3() {
|
||||||
|
|
||||||
|
System.out.println("TEST 5: Postgis NullInputValue3");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLES");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,247 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test.regressiontest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class RegressionRandomSampleOnTable {
|
||||||
|
|
||||||
|
//static AlgorithmConfiguration[] configs = { testPostgres1(), testPostgis(), testMysql1(),testMysql2(), NullInputValue1(), NullInputValue2(), NullInputValue3(), NullInputValue4()};
|
||||||
|
|
||||||
|
// static String[] algorithms = { "Postgres1", "Postgis", "Mysql1", "Mysql2", "NullInputValue1", "NullInputValue2", "NullInputValue3", "NullInputValue4"};
|
||||||
|
|
||||||
|
|
||||||
|
static AlgorithmConfiguration[] configs = { testMysql1()};
|
||||||
|
static String[] algorithms = {"Postgres1"};
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
// System.out.println("TEST 1");
|
||||||
|
|
||||||
|
for (int i = 0; i < algorithms.length; i++) {
|
||||||
|
AnalysisLogger.getLogger().debug("Executing:" + algorithms[i]);
|
||||||
|
|
||||||
|
// ComputationalAgent trans = new WPSProcess(wps, algorithms[i]);
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(configs[i]);
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
// trans.setConfiguration(configs[i]);
|
||||||
|
// trans.init();
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType st = trans.get(0).getOutput();
|
||||||
|
|
||||||
|
// Print Result
|
||||||
|
AnalysisLogger.getLogger().debug("ST:" + st);
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Posgresql database
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgres1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 1: Postgres table without rows");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("RANDOMSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
//
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "area"); // it has not rows
|
||||||
|
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
config.setParam("DatabaseName", "testdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "hcaf_d");
|
||||||
|
config.setParam("TableName", "hspec_id_3f4c79fa_442e_42ba_9344_1b3e64dc3326");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "hspec_id_c8e87e16_a0b4_4f9b_b48e_f1cf60ab104c");
|
||||||
|
//// config.setParam("TableName", "generic_id037d302d_2ba0_4e43_b6e4_1a797bb91728");
|
||||||
|
//// config.setParam("TableName", "bionymoutlevfaked2csvpreprcsv");
|
||||||
|
//
|
||||||
|
//// config.setParam("TableName", "timeseries_id08b3abb9_c7b0_4b82_8117_64b69055416f");
|
||||||
|
//// config.setParam("TableName", "occurrence_species_idaf35d737_fb3e_43a7_b13a_611dfa97b064");
|
||||||
|
// config.setParam("TableName", "generic_id037d302d_2ba0_4e43_b6e4_1a797bb91728");
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "AquaMaps Service DataBase");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsorgupdated");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
////
|
||||||
|
////
|
||||||
|
////
|
||||||
|
//// config.setParam("TableName", "hspec2012_07_11_12_33_05_526");
|
||||||
|
//
|
||||||
|
//// config.setParam("TableName", "custom2013_12_04_15_27_16_493_cet");
|
||||||
|
//
|
||||||
|
// config.setParam("TableName", "hspec_suitable_peng_test_tbsp_1");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// config.setParam("Query", "select * from area limit 3");
|
||||||
|
|
||||||
|
// config.setParam("Query",
|
||||||
|
// "select text(the_geom) from \"Divisions\" limit 1");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "all_world");
|
||||||
|
// config.setParam("TableName", "biodiversity_lme");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgis() {
|
||||||
|
|
||||||
|
System.out.println("TEST 2: Postgis");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("RANDOMSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
config.setParam("ResourceName", "GP DB");
|
||||||
|
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testMysql1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 3: Mysql1");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("RANDOMSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database mysql
|
||||||
|
config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
config.setParam("TableName", "Common_names"); // mysql is not case
|
||||||
|
// sensitive
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testMysql2() {
|
||||||
|
|
||||||
|
System.out.println("TEST 4: Mysql2");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("RANDOMSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database mysql
|
||||||
|
config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
config.setParam("TableName", "example"); // the table does not exist
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 5: Postgis NullInputValue1");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("RANDOMSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
// config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue2() {
|
||||||
|
System.out.println("TEST 6: Postgis NullInputValue2");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("RANDOMSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
private static AlgorithmConfiguration NullInputValue3() {
|
||||||
|
|
||||||
|
System.out.println("TEST 7: Postgis NullInputValue3");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("RANDOMSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
private static AlgorithmConfiguration NullInputValue4() {
|
||||||
|
System.out.println("TEST 8: Postgis NullInputValue4");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("RANDOMSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,238 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test.regressiontest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class RegressionSampleOnTable {
|
||||||
|
|
||||||
|
// static AlgorithmConfiguration[] configs = { testPostgres1(), testPostgis(), testMysql1(),testMysql2(), NullInputValue1(), NullInputValue2(), NullInputValue3(), NullInputValue4()};
|
||||||
|
|
||||||
|
// static String[] algorithms = { "Postgres1", "Postgis", "Mysql1", "Mysql2", "NullInputValue1", "NullInputValue2", "NullInputValue3", "NullInputValue4"};
|
||||||
|
|
||||||
|
static AlgorithmConfiguration[] configs = { testPostgres1()};
|
||||||
|
|
||||||
|
static String[] algorithms = { "Postgres1"};
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
// System.out.println("TEST 1");
|
||||||
|
|
||||||
|
for (int i = 0; i < algorithms.length; i++) {
|
||||||
|
AnalysisLogger.getLogger().debug("Executing:" + algorithms[i]);
|
||||||
|
|
||||||
|
// ComputationalAgent trans = new WPSProcess(wps, algorithms[i]);
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(configs[i]);
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
// trans.setConfiguration(configs[i]);
|
||||||
|
// trans.init();
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType st = trans.get(0).getOutput();
|
||||||
|
|
||||||
|
// Print Result
|
||||||
|
AnalysisLogger.getLogger().debug("ST:" + st);
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgres1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 1: Postgres table without rows");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
//
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "area"); // it has not rows
|
||||||
|
|
||||||
|
// config.setParam("Query", "select * from area limit 3");
|
||||||
|
|
||||||
|
// config.setParam("Query", "select text(the_geom) from \"Divisions\" limit 1");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "all_world");
|
||||||
|
// config.setParam("TableName", "biodiversity_lme");
|
||||||
|
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "DionysusDB");
|
||||||
|
// config.setParam("DatabaseName", "World");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "countrylanguage"); //mysql is not case sensitive
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "AquaMaps Service DataBase");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsorgupdated");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "hspec2012_07_11_12_33_05_526");
|
||||||
|
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
config.setParam("DatabaseName", "testdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "hspec_id_3f4c79fa_442e_42ba_9344_1b3e64dc3326");
|
||||||
|
config.setParam("TableName", "hcaf_d");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgis() {
|
||||||
|
|
||||||
|
System.out.println("TEST 2: Postgis");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
config.setParam("DatabaseName", "testdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "hcaf_d");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testMysql1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 3: Mysql1");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database mysql
|
||||||
|
config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
config.setParam("TableName", "Common_names"); //mysql is not case sensitive
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testMysql2() {
|
||||||
|
|
||||||
|
System.out.println("TEST 4: Mysql2");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database mysql
|
||||||
|
config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
config.setParam("TableName", "example"); //the table does not exist
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
private static AlgorithmConfiguration NullInputValue1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 5: Postgis NullInputValue1");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
// config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue2() {
|
||||||
|
System.out.println("TEST 6: Postgis NullInputValue2");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
private static AlgorithmConfiguration NullInputValue3() {
|
||||||
|
|
||||||
|
System.out.println("TEST 7: Postgis NullInputValue3");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
private static AlgorithmConfiguration NullInputValue4() {
|
||||||
|
System.out.println("TEST 8: Postgis NullInputValue4");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,283 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test.regressiontest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class RegressionSmartSampleOnTable {
|
||||||
|
|
||||||
|
//static AlgorithmConfiguration[] configs = { testPostgres1(), testPostgis(), testMysql1(),testMysql2(), NullInputValue1(), NullInputValue2(), NullInputValue3(), NullInputValue4()};
|
||||||
|
|
||||||
|
// static String[] algorithms = { "Postgres1", "Postgis", "Mysql1", "Mysql2", "NullInputValue1", "NullInputValue2", "NullInputValue3", "NullInputValue4"};
|
||||||
|
|
||||||
|
static AlgorithmConfiguration[] configs = { testPostgres1()};
|
||||||
|
static String[] algorithms = { "Postgres1"};
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
// System.out.println("TEST 1");
|
||||||
|
|
||||||
|
for (int i = 0; i < algorithms.length; i++) {
|
||||||
|
AnalysisLogger.getLogger().debug("Executing:" + algorithms[i]);
|
||||||
|
|
||||||
|
// ComputationalAgent trans = new WPSProcess(wps, algorithms[i]);
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(configs[i]);
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
// trans.setConfiguration(configs[i]);
|
||||||
|
// trans.init();
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType st = trans.get(0).getOutput();
|
||||||
|
|
||||||
|
// Print Result
|
||||||
|
AnalysisLogger.getLogger().debug("ST:" + st);
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgres1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 1: Postgres table without rows");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SMARTSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// // A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
//
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "area"); // it has not rows
|
||||||
|
|
||||||
|
// config.setParam("Query", "select * from area limit 3");
|
||||||
|
|
||||||
|
// config.setParam("Query", "select text(the_geom) from \"Divisions\" limit 1");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "all_world");
|
||||||
|
// config.setParam("TableName", "biodiversity_lme");
|
||||||
|
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
// config.setParam("DatabaseName", "testdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
//// config.setParam("TableName", "hspec_id_3f4c79fa_442e_42ba_9344_1b3e64dc3326");
|
||||||
|
//
|
||||||
|
//// config.setParam("TableName", "hcaf_d");
|
||||||
|
//
|
||||||
|
// config.setParam("TableName", "hspec_id_c8e87e16_a0b4_4f9b_b48e_f1cf60ab104c");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "hcaf_d");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "generic_id037d302d_2ba0_4e43_b6e4_1a797bb91728");
|
||||||
|
// config.setParam("TableName", "bionymoutlevfaked2csvpreprcsv");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "timeseries_id08b3abb9_c7b0_4b82_8117_64b69055416f");
|
||||||
|
// config.setParam("TableName", "occurrence_species_idaf35d737_fb3e_43a7_b13a_611dfa97b064");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "processedoccurrences_id_e3b82f7f_6bd6_493a_bd2c_552cd486004a");
|
||||||
|
// config.setParam("TableName", "hspen_mini_100");
|
||||||
|
// config.setParam("TableName", "hspec_id_c8e87e16_a0b4_4f9b_b48e_f1cf60ab104c");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "hspec_id_3f4c79fa_442e_42ba_9344_1b3e64dc3326");
|
||||||
|
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "AquaMaps Service DataBase");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsorgupdated");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "hspec_suitable_peng_test_tbsp_1");
|
||||||
|
|
||||||
|
|
||||||
|
////// config.setParam("TableName", "hspec2012_07_11_12_33_05_483");
|
||||||
|
// config.setParam("TableName", "hspec_suitable_peng_test_tbsp_1");
|
||||||
|
//// config.setParam("TableName", "hspec_suitable_executor_1");
|
||||||
|
// config.setParam("TableName", "custom2013_12_04_15_27_16_493_cet");
|
||||||
|
// config.setParam("TableName", "hspec2012_07_11_12_33_05_483");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "AquaMaps Service DataBase");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsorgupdated");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "hspec2012_07_11_12_33_05_526");
|
||||||
|
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
config.setParam("DatabaseName", "testdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "hcaf_d");
|
||||||
|
config.setParam("TableName", "hspec_id_3f4c79fa_442e_42ba_9344_1b3e64dc3326");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgis() {
|
||||||
|
|
||||||
|
System.out.println("TEST 2: Postgis");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SMARTSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
config.setParam("ResourceName", "GP DB");
|
||||||
|
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testMysql1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 3: Mysql1");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SMARTSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database mysql
|
||||||
|
config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
config.setParam("TableName", "Common_names"); //mysql is not case sensitive
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testMysql2() {
|
||||||
|
|
||||||
|
System.out.println("TEST 4: Mysql2");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SMARTSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// A test with a database mysql
|
||||||
|
config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
config.setParam("TableName", "example"); //the table does not exist
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
//private static AlgorithmConfiguration testMysql3() { //dati sbagliati
|
||||||
|
//
|
||||||
|
// System.out.println("TEST 4.1: Mysql3");
|
||||||
|
//
|
||||||
|
// AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
//
|
||||||
|
// config.setAgent("SMARTSAMPLEONTABLE");
|
||||||
|
//
|
||||||
|
// // A test with a database mysql
|
||||||
|
// config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
// config.setParam("DatabaseName", "aquamaps");
|
||||||
|
// config.setParam("TableName", "hcaf_d");
|
||||||
|
//
|
||||||
|
// config.setGcubeScope("/gcube/devsec");
|
||||||
|
//
|
||||||
|
// return config;
|
||||||
|
//
|
||||||
|
//}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 5: Postgis NullInputValue1");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SMARTSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
// config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue2() {
|
||||||
|
System.out.println("TEST 6: Postgis NullInputValue2");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SMARTSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
private static AlgorithmConfiguration NullInputValue3() {
|
||||||
|
|
||||||
|
System.out.println("TEST 7: Postgis NullInputValue3");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SMARTSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
private static AlgorithmConfiguration NullInputValue4() {
|
||||||
|
System.out.println("TEST 8: Postgis NullInputValue4");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("SMARTSAMPLEONTABLE");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,319 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test.regressiontest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class RegressionSubmitQuery {
|
||||||
|
|
||||||
|
// static String[] algorithms = { "Postgres1", "Mysql", "Postgres3", "Postgres4", "NullInputValue1", "NullInputValue2", "NullInputValue3", "NullInputValue4", "NullInputValue5", "Postgis"};
|
||||||
|
|
||||||
|
// static AlgorithmConfiguration[] configs = { testPostgres1(),
|
||||||
|
// testPostgres2(), testPostgis(), Mysql(), NullInputValue(),
|
||||||
|
// Postgres3() };
|
||||||
|
|
||||||
|
// static AlgorithmConfiguration[] configs = { testPostgres1(), Mysql(), Postgres3(), Postgres4(), NullInputValue1(), NullInputValue2(), NullInputValue3(), NullInputValue4(), NullInputValue5(), Postgis()};
|
||||||
|
|
||||||
|
static String[] algorithms = {"Postgres1"};
|
||||||
|
static AlgorithmConfiguration[] configs = { Mysql() };
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
// System.out.println("TEST 1");
|
||||||
|
|
||||||
|
for (int i = 0; i < algorithms.length; i++) {
|
||||||
|
AnalysisLogger.getLogger().debug("Executing:" + algorithms[i]);
|
||||||
|
|
||||||
|
// ComputationalAgent trans = new WPSProcess(wps, algorithms[i]);
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(configs[i]);
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
// trans.setConfiguration(configs[i]);
|
||||||
|
// trans.init();
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType st = trans.get(0).getOutput();
|
||||||
|
|
||||||
|
// Print Result
|
||||||
|
AnalysisLogger.getLogger().debug("ST:" + st);
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgres1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 1: Postgres table without rows");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
config.setParam("DatabaseName", "testdb");
|
||||||
|
// config.setParam("", "TRUE");
|
||||||
|
config.setParam("Read-Only Query", "TRUE");
|
||||||
|
config.setParam("Apply Smart Correction", "TRUE");
|
||||||
|
config.setParam("Language", "POSTGRES");
|
||||||
|
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "hcaf_d");
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
config.setParam("Query", "select * from hcaf_d limit 10");
|
||||||
|
// config.setParam("Query", "select csquarecode,months,sum(effort) as effort, sum(total_yft_catch) as total_yft_catch from (select csquarecode,to_char(time,'MM') months,sum(effort) as effort,sum(total_yft_catch) as total_yft_catch from timeseries_idacdbb646_7500_4920_8e0d_aa38cc99a4a6 group by csquarecode,time order by time ASC) as a group by csquarecode,months order by csquarecode");
|
||||||
|
|
||||||
|
// config.setParam("Query", "select csquarecode, total_yft_catch from timeseries_idacdbb646_7500_4920_8e0d_aa38cc99a4a6 limit 3");
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "DionysusDB");
|
||||||
|
// config.setParam("DatabaseName", "World");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "countrylanguage"); //mysql is not case sensitive
|
||||||
|
//// config.setParam("Query", "select * from countrylanguage limit 10");
|
||||||
|
// config.setParam("Query", "SELECT * FROM information_schema.COLUMNS WHERE table_name ='countrylanguage' and table_schema='public'");
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
//
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("", "TRUE");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
// config.setParam("Query","select gid, area, perimeter, nafo_, nafo_id, zone from \"Divisions\" limit 100");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "area"); // it has not rows
|
||||||
|
|
||||||
|
// config.setParam("Query", "select * from area limit 3");
|
||||||
|
// config.setParam("Query", "select gid, area, perimeter, CAST(the_geom as text) from \"Divisions\" limit 10");
|
||||||
|
|
||||||
|
// config.setParam("Query", "select text(the_geom) from \"Divisions\" limit 1");
|
||||||
|
|
||||||
|
// config.setParam("Query", "select perimeter,zone from \"Divisions\" where gid='7'");
|
||||||
|
|
||||||
|
// config.setParam("Query", "select area, CAST(perimeter as text) from \"Divisions\" order by random() limit 2");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "all_world");
|
||||||
|
// config.setParam("TableName", "biodiversity_lme");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration Mysql() {
|
||||||
|
|
||||||
|
System.out.println("TEST 2: Mysql");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// // a test with postgis
|
||||||
|
// config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//a test with a database mysql
|
||||||
|
config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
config.setParam("", "TRUE");
|
||||||
|
config.setParam("TableName", "Common_names"); //mysql is not case sensitive
|
||||||
|
config.setParam("Query", "select * from common_names limit 10");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "specialists");
|
||||||
|
|
||||||
|
// config.setParam("Query", "select * from specialists limit 3");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration Postgres3() {
|
||||||
|
|
||||||
|
System.out.println("TEST 3: Postgis");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions"); //postgres is case sensitive
|
||||||
|
config.setParam("Query", "select the_geom from Divisions limit 3");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration Postgres4() {
|
||||||
|
|
||||||
|
System.out.println("TEST 4: Postgis filter query");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions"); //postgres is case sensitive
|
||||||
|
// config.setParam("Query", "select the_geom from Divisions limit 30");
|
||||||
|
config.setParam("Query", "EXPLAIN ANALYZE select gid from Divisions limit 3");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 5: Postgis NullInputValue1");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
// config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
config.setParam("Query", "EXPLAIN ANALYZE select gid from Divisions limit 3");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue2() {
|
||||||
|
|
||||||
|
System.out.println("TEST 5: Postgis NullInputValue2");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
config.setParam("Query", "EXPLAIN ANALYZE select gid from Divisions limit 3");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue3() {
|
||||||
|
|
||||||
|
System.out.println("TEST 5: Postgis NullInputValue3");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
config.setParam("Query", "EXPLAIN ANALYZE select gid from Divisions limit 3");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue4() {
|
||||||
|
|
||||||
|
System.out.println("TEST 5: Postgis NullInputValue4");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
config.setParam("Query", "EXPLAIN ANALYZE select gid from Divisions limit 3");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue5() {
|
||||||
|
|
||||||
|
System.out.println("TEST 6: Postgis NullInputValue5");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
// config.setParam("Query", "EXPLAIN ANALYZE select gid from Divisions limit 3");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration Postgis() {
|
||||||
|
|
||||||
|
System.out.println("TEST 7: Postgis");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTSUBMITQUERY");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions"); //postgres is case sensitive
|
||||||
|
config.setParam("Query", "select * from \"Divisions\" limit 1");
|
||||||
|
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,212 @@
|
||||||
|
package org.gcube.dataacces.algorithms.test.regressiontest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
|
||||||
|
public class RegressionTableDetails {
|
||||||
|
|
||||||
|
// static String[] algorithms = { "Postgres1", "Postgres2", "Postgis",
|
||||||
|
// "Mysql", "NullInputValue", "Postgres3" };
|
||||||
|
|
||||||
|
// static AlgorithmConfiguration[] configs = { testPostgres1(),
|
||||||
|
// testPostgres2(), testPostgis(), Mysql(), NullInputValue(), Postgres3()};
|
||||||
|
|
||||||
|
static String[] algorithms = { "Postgres1"};
|
||||||
|
static AlgorithmConfiguration[] configs = { testPostgres1()};
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// System.out.println("TEST 1");
|
||||||
|
|
||||||
|
for (int i = 0; i < algorithms.length; i++) {
|
||||||
|
AnalysisLogger.getLogger().debug("Executing:" + algorithms[i]);
|
||||||
|
|
||||||
|
// ComputationalAgent trans = new WPSProcess(wps, algorithms[i]);
|
||||||
|
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(configs[i]);
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
// trans.setConfiguration(configs[i]);
|
||||||
|
// trans.init();
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
StatisticalType st = trans.get(0).getOutput();
|
||||||
|
|
||||||
|
// Print Result
|
||||||
|
AnalysisLogger.getLogger().debug("ST:" + st);
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgres1() {
|
||||||
|
|
||||||
|
System.out.println("TEST 1: Postgres");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("GETTABLEDETAILS");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
// config.setParam("ResourceName", "GP DB");
|
||||||
|
//
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "all_world");
|
||||||
|
// config.setParam("TableName", "biodiversity_lme");
|
||||||
|
|
||||||
|
config.setParam("ResourceName", "StatisticalManagerDataBase");
|
||||||
|
config.setParam("DatabaseName", "testdb");
|
||||||
|
config.setParam("SchemaName", "publicd");
|
||||||
|
|
||||||
|
config.setParam("TableName", "hcaf_d");
|
||||||
|
|
||||||
|
// config.setParam("TableName", "hspec_id_c8e87e16_a0b4_4f9b_b48e_f1cf60ab104c");
|
||||||
|
|
||||||
|
//// config.setParam("TableName", "timeseries_id08b3abb9_c7b0_4b82_8117_64b69055416f");
|
||||||
|
//// config.setParam("TableName", "occurrence_species_idaf35d737_fb3e_43a7_b13a_611dfa97b064");
|
||||||
|
//// config.setParam("TableName", "occcluster_id_15271993_5129_4eda_92a2_fe8d22737007");
|
||||||
|
// config.setParam("TableName", "hspec_id_3f4c79fa_442e_42ba_9344_1b3e64dc3326");
|
||||||
|
|
||||||
|
// config.setParam("ResourceName", "AquaMaps Service DataBase");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsorgupdated");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
////// config.setParam("TableName", "hspec2012_07_11_12_33_05_483");
|
||||||
|
// config.setParam("TableName", "hspec_suitable_peng_test_tbsp_1");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgres2() {
|
||||||
|
|
||||||
|
System.out.println("TEST 2: Postgres");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("TableDetails");
|
||||||
|
|
||||||
|
// A test with a database postgres
|
||||||
|
config.setParam("ResourceName", "GP DB");
|
||||||
|
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "area"); // it has not rows
|
||||||
|
|
||||||
|
// config.setParam("TableName", "all_world");
|
||||||
|
// config.setParam("TableName", "biodiversity_lme");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testPostgis() {
|
||||||
|
|
||||||
|
System.out.println("TEST 3: Postgis");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLEDETAILS");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration Mysql() {
|
||||||
|
|
||||||
|
System.out.println("TEST 4: Mysql");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLEDETAILS");
|
||||||
|
|
||||||
|
// // a test with postgis
|
||||||
|
// config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
// config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
//a test with a database mysql
|
||||||
|
config.setParam("ResourceName", "CatalogOfLife2010");
|
||||||
|
config.setParam("DatabaseName", "col2oct2010");
|
||||||
|
config.setParam("TableName", "Common_names"); //mysql is not case sensitive
|
||||||
|
|
||||||
|
config.setParam("Query", "select * from common_names limit 3");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration NullInputValue() {
|
||||||
|
|
||||||
|
System.out.println("TEST 5: Postgis NullInputValue");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLEDETAILS");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
// config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "Divisions");
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration Postgres3() {
|
||||||
|
|
||||||
|
System.out.println("TEST 6: Postgres");
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("LISTTABLEDETAILS");
|
||||||
|
|
||||||
|
// a test with postgis
|
||||||
|
config.setParam("ResourceName", "Geoserver database ");
|
||||||
|
config.setParam("DatabaseName", "aquamapsdb");
|
||||||
|
config.setParam("SchemaName", "public");
|
||||||
|
config.setParam("TableName", "divisions"); //postgres is case sensitive
|
||||||
|
|
||||||
|
config.setGcubeScope("/gcube/devsec");
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,358 @@
|
||||||
|
package org.gcube.dataaccess.algorithms.examples;
|
||||||
|
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.graphtools.data.conversions.ImageTools;
|
||||||
|
import org.gcube.contentmanagement.graphtools.plotting.graphs.HistogramGraph;
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
import org.jfree.chart.JFreeChart;
|
||||||
|
import org.jfree.data.category.DefaultCategoryDataset;
|
||||||
|
|
||||||
|
public class AbsoluteSpeciesBarChartsAlgorithm extends
|
||||||
|
StandardLocalExternalAlgorithm {
|
||||||
|
|
||||||
|
LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
static String databaseName = "DatabaseName";
|
||||||
|
static String userParameterName = "DatabaseUserName";
|
||||||
|
static String passwordParameterName = "DatabasePassword";
|
||||||
|
static String urlParameterName = "DatabaseURL";
|
||||||
|
|
||||||
|
// static String databaseName = "Obis2Repository";
|
||||||
|
// static String userParameterName = "postgres";
|
||||||
|
// static String passwordParameterName = "0b1s@d4sc13nc3";
|
||||||
|
// static String urlParameterName =
|
||||||
|
// "jdbc:postgresql://obis2.i-marine.research-infrastructures.eu:5432/obis";
|
||||||
|
|
||||||
|
protected String fileName;
|
||||||
|
BufferedWriter out;
|
||||||
|
private String firstSpeciesNumber = " SpeciesNumber :";
|
||||||
|
private String yearStart = "Start year :";
|
||||||
|
private String yearEnd = "End year :";
|
||||||
|
private int speciesNumber;
|
||||||
|
String databaseJdbc;
|
||||||
|
String year_start;
|
||||||
|
String year_end;
|
||||||
|
String databaseUser;
|
||||||
|
String databasePwd;
|
||||||
|
private Connection connection = null;
|
||||||
|
private DefaultCategoryDataset defaultcategorydataset;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
AnalysisLogger.getLogger().debug("Initialization");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
return ": A transducer algorithm that produces the list of top n most observed taxa, i.e. the species taxa having the largest number of occurrence records, in the OBIS database in a given time interval";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fulfilParameters() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("fulfilParameters method");
|
||||||
|
|
||||||
|
// String tmp = getInputParameter(firstSpeciesNumber);
|
||||||
|
|
||||||
|
List<StatisticalType> list = getInputParameters();
|
||||||
|
|
||||||
|
System.out.println("size: " + list.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
|
||||||
|
System.out.println(list.get(i).getName()+" "+list.get(i).getDefaultValue());
|
||||||
|
|
||||||
|
if (list.get(i).getName().equals(firstSpeciesNumber)) {
|
||||||
|
// System.out.println(list.get(i).getName());
|
||||||
|
String tmp = list.get(i).getDefaultValue();
|
||||||
|
speciesNumber = Integer.parseInt(tmp);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (list.get(i).getName().equals(yearStart)) {
|
||||||
|
|
||||||
|
year_start = list.get(i).getDefaultValue();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (list.get(i).getName().equals(yearEnd)) {
|
||||||
|
|
||||||
|
year_end = list.get(i).getDefaultValue();
|
||||||
|
|
||||||
|
}
|
||||||
|
// if (list.get(i).getName().equals(urlParameterName)) {
|
||||||
|
//
|
||||||
|
// databaseJdbc = list.get(i).getDefaultValue();
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// if (list.get(i).getName().equals(userParameterName)) {
|
||||||
|
//
|
||||||
|
// databaseUser = list.get(i).getDefaultValue();
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// if (list.get(i).getName().equals(passwordParameterName)) {
|
||||||
|
//
|
||||||
|
// databasePwd = list.get(i).getDefaultValue();
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
databaseJdbc = getInputParameter("DatabaseURL");
|
||||||
|
databaseUser= getInputParameter("DatabaseUserName");
|
||||||
|
databasePwd= getInputParameter("DatabasePassword");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// System.out.println(tmp);
|
||||||
|
|
||||||
|
// databaseJdbc = getInputParameter(urlParameterName);
|
||||||
|
// year_start = getInputParameter(yearStart);
|
||||||
|
// year_end = getInputParameter(yearEnd);
|
||||||
|
// databaseUser = getInputParameter(userParameterName);
|
||||||
|
// databasePwd = getInputParameter(passwordParameterName);
|
||||||
|
|
||||||
|
// fileName = super.config.getPersistencePath() + "results.csv";
|
||||||
|
|
||||||
|
fileName = config.getConfigPath() + "results.csv";
|
||||||
|
|
||||||
|
// fileName = "./cfg/" + "results.csv";
|
||||||
|
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("Percorso file: " + fileName);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("fulfilParameters method");
|
||||||
|
}
|
||||||
|
|
||||||
|
private ResultSet performeQuery() throws SQLException {
|
||||||
|
|
||||||
|
connection = DriverManager.getConnection(databaseJdbc, databaseUser,
|
||||||
|
databasePwd);
|
||||||
|
|
||||||
|
Statement stmt = connection.createStatement();
|
||||||
|
String query = "SELECT tname, sum(count)AS count FROM public.count_species_per_year WHERE year::integer >="
|
||||||
|
+ year_start
|
||||||
|
+ "AND year::integer <="
|
||||||
|
+ year_end
|
||||||
|
+ "GROUP BY tname ORDER BY count desc;";
|
||||||
|
return stmt.executeQuery(query);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("In the process");
|
||||||
|
|
||||||
|
defaultcategorydataset = new DefaultCategoryDataset();
|
||||||
|
// String driverName = "org.postgresql.Driver";
|
||||||
|
// Class driverClass = Class.forName(driverName);
|
||||||
|
// Driver driver = (Driver) driverClass.newInstance();
|
||||||
|
|
||||||
|
System.out.println("pre fulfill");
|
||||||
|
fulfilParameters();
|
||||||
|
System.out.println("post fulfill");
|
||||||
|
|
||||||
|
// String tmp = getInputParameter(firstSpeciesNumber);
|
||||||
|
// System.out.println("process-> speciesnumber value: " + tmp);
|
||||||
|
|
||||||
|
// String tmp="10";
|
||||||
|
// speciesNumber = Integer.parseInt(tmp);
|
||||||
|
|
||||||
|
// year_start = getInputParameter(yearStart);
|
||||||
|
// year_start="1800";
|
||||||
|
|
||||||
|
// year_end = getInputParameter(yearEnd);
|
||||||
|
// year_end="2020";
|
||||||
|
|
||||||
|
// fileName = super.config.getPersistencePath() + "results.csv";
|
||||||
|
|
||||||
|
// fileName = "results.csv";
|
||||||
|
|
||||||
|
out = new BufferedWriter(new FileWriter(fileName));
|
||||||
|
|
||||||
|
System.out.println("pre query");
|
||||||
|
ResultSet rs = performeQuery();
|
||||||
|
System.out.println("post query");
|
||||||
|
|
||||||
|
// connection =
|
||||||
|
// DriverManager.getConnection("jdbc:postgresql://obis2.i-marine.research-infrastructures.eu:5432/obis",
|
||||||
|
// "postgres",
|
||||||
|
// "0b1s@d4sc13nc3");
|
||||||
|
// Statement stmt = connection.createStatement();
|
||||||
|
// String query =
|
||||||
|
// "SELECT tname, sum(count)AS count FROM public.count_species_per_year WHERE year::integer >="
|
||||||
|
// + year_start
|
||||||
|
// + "AND year::integer <="
|
||||||
|
// + year_end
|
||||||
|
// + "GROUP BY tname ORDER BY count desc;";
|
||||||
|
|
||||||
|
//
|
||||||
|
// System.out.println("pre query");
|
||||||
|
// ResultSet rs=stmt.executeQuery(query);
|
||||||
|
//
|
||||||
|
// System.out.println("post query");
|
||||||
|
//
|
||||||
|
int i = 0;
|
||||||
|
String s = "Species";
|
||||||
|
while (rs.next() && i < speciesNumber) {
|
||||||
|
|
||||||
|
System.out.println(rs.toString());
|
||||||
|
|
||||||
|
String tname = rs.getString("tname");
|
||||||
|
String count = rs.getString("count");
|
||||||
|
|
||||||
|
System.out.println("tname:" + tname);
|
||||||
|
|
||||||
|
System.out.println("count:" + count);
|
||||||
|
|
||||||
|
write(tname + "," + count);
|
||||||
|
int countOcc = Integer.parseInt(count);
|
||||||
|
|
||||||
|
PrimitiveType val = new PrimitiveType(String.class.getName(),
|
||||||
|
count, PrimitiveTypes.STRING, tname, tname);
|
||||||
|
|
||||||
|
|
||||||
|
if (i < 100)
|
||||||
|
map.put(tname, val);
|
||||||
|
if (i < 16)
|
||||||
|
defaultcategorydataset.addValue(countOcc, s, tname);
|
||||||
|
i++;
|
||||||
|
|
||||||
|
}
|
||||||
|
out.close();
|
||||||
|
connection.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
|
||||||
|
System.out.println("Sono in SetParameters");
|
||||||
|
|
||||||
|
addStringInput(
|
||||||
|
firstSpeciesNumber,
|
||||||
|
"Number of species to report (max 17 will be visualized on the chart)",
|
||||||
|
"10");
|
||||||
|
|
||||||
|
// System.out.println(firstSpeciesNumber);
|
||||||
|
|
||||||
|
addStringInput(yearStart, "Starting year of the analysis", "1800");
|
||||||
|
// System.out.println(yearStart);
|
||||||
|
|
||||||
|
addStringInput(yearEnd, "Ending year of the analysis", "2020");
|
||||||
|
// System.out.println(yearEnd);
|
||||||
|
|
||||||
|
// addRemoteDatabaseInput("Obis2Repository", urlParameterName,
|
||||||
|
// userParameterName, passwordParameterName, "driver", "dialect");
|
||||||
|
|
||||||
|
// addRemoteDatabaseInput("Obis2Repository", urlParameterName,
|
||||||
|
// userParameterName, passwordParameterName, "org.postgresql.Driver",
|
||||||
|
// "org.hibernate.dialect.PostgreSQLDialect");
|
||||||
|
|
||||||
|
System.out.println("pre addRemoteDB");
|
||||||
|
// addRemoteDatabaseInput(
|
||||||
|
// "Obis2Repository",
|
||||||
|
// "jdbc:postgresql://obis2.i-marine.research-infrastructures.eu:5432/obis",
|
||||||
|
// "postgres", "0b1s@d4sc13nc3", "org.postgresql.Driver",
|
||||||
|
// "org.hibernate.dialect.PostgreSQLDialect");
|
||||||
|
|
||||||
|
// addRemoteDatabaseInput("Obis2Repository", urlParameterName,
|
||||||
|
// userParameterName, passwordParameterName, "driver", "dialect");
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("post addRemoteDB");
|
||||||
|
|
||||||
|
// super.config.setConfigPath("./cfg/");
|
||||||
|
// config.setConfigPath();
|
||||||
|
|
||||||
|
// super.config.setParam("DatabaseUserName","gcube");
|
||||||
|
// super.config.setParam("DatabasePassword","d4science2");
|
||||||
|
// super.config.setParam("DatabaseURL","jdbc:postgresql://obis2.i-marine.research-infrastructures.eu:5432/obis");
|
||||||
|
// super.config.setParam("DatabaseDriver","org.postgresql.Driver");
|
||||||
|
|
||||||
|
// System.out.println("URL: "+ super.config.getDatabaseURL());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("Shutdown");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("In getOutput");
|
||||||
|
|
||||||
|
PrimitiveType p = new PrimitiveType(Map.class.getName(),
|
||||||
|
PrimitiveType.stringMap2StatisticalMap(outputParameters),
|
||||||
|
PrimitiveTypes.MAP, "Discrepancy Analysis", "");
|
||||||
|
|
||||||
|
|
||||||
|
AnalysisLogger
|
||||||
|
.getLogger()
|
||||||
|
.debug("MapsComparator: Producing Gaussian Distribution for the errors");
|
||||||
|
// build image:
|
||||||
|
HashMap<String, Image> producedImages = new HashMap<String, Image>();
|
||||||
|
|
||||||
|
JFreeChart chart = HistogramGraph
|
||||||
|
.createStaticChart(defaultcategorydataset);
|
||||||
|
Image image = ImageTools.toImage(chart.createBufferedImage(680, 420));
|
||||||
|
|
||||||
|
producedImages.put("Species Observations", image);
|
||||||
|
|
||||||
|
PrimitiveType images = new PrimitiveType(HashMap.class.getName(),
|
||||||
|
producedImages, PrimitiveTypes.IMAGES, "ErrorRepresentation",
|
||||||
|
"Graphical representation of the error spread");
|
||||||
|
// PrimitiveType images = new PrimitiveType("Species Observations",
|
||||||
|
// producedImages, PrimitiveTypes.IMAGES, "ErrorRepresentation",
|
||||||
|
// "Graphical representation of the error spread");
|
||||||
|
PrimitiveType f = new PrimitiveType(File.class.getName(), new File(
|
||||||
|
fileName), PrimitiveTypes.FILE, "OccFile", "OccFile");
|
||||||
|
// end build image
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"Bar Charts Species Occurrences Produced");
|
||||||
|
// collect all the outputs
|
||||||
|
map.put("File", f);
|
||||||
|
map.put("Result", p);
|
||||||
|
map.put("Images", images);
|
||||||
|
|
||||||
|
// generate a primitive type for the collection
|
||||||
|
PrimitiveType output = new PrimitiveType(HashMap.class.getName(), map,
|
||||||
|
PrimitiveTypes.MAP, "ResultsMap", "Results Map");
|
||||||
|
|
||||||
|
// PrimitiveType output=null;
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void write(String writeSt) {
|
||||||
|
try {
|
||||||
|
out.write(writeSt);
|
||||||
|
out.newLine();
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,107 @@
|
||||||
|
package org.gcube.dataaccess.algorithms.examples;
|
||||||
|
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.PrimitiveType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.StatisticalType;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.PrimitiveTypes;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||||
|
|
||||||
|
|
||||||
|
public class SimpleAlg extends
|
||||||
|
StandardLocalExternalAlgorithm{
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
AnalysisLogger.getLogger().debug("Initialization");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
return "An algorithm for testing";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void process() throws Exception {
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("in process");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setInputParameters() {
|
||||||
|
addStringInput("Name","name","");
|
||||||
|
|
||||||
|
addStringInput("Surname","surname","Liccardo");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
AnalysisLogger.getLogger().debug("Shutdown");
|
||||||
|
|
||||||
|
// closes database's connection
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StatisticalType getOutput() {
|
||||||
|
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("retrieving results");
|
||||||
|
|
||||||
|
String name= getInputParameter("Name");
|
||||||
|
|
||||||
|
String surname= getInputParameter("Surname");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
List<StatisticalType> list = getInputParameters();
|
||||||
|
|
||||||
|
System.out.println("size: " + list.size());
|
||||||
|
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
|
||||||
|
System.out.println(list.get(i).getName()+" "+list.get(i).getDefaultValue());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PrimitiveType n = new PrimitiveType(
|
||||||
|
String.class.getName(),
|
||||||
|
getInputParameter("Name") ,
|
||||||
|
PrimitiveTypes.STRING,
|
||||||
|
"Name",
|
||||||
|
"name");
|
||||||
|
|
||||||
|
PrimitiveType s = new PrimitiveType(
|
||||||
|
String.class.getName(),
|
||||||
|
getInputParameter("Surname") ,
|
||||||
|
PrimitiveTypes.STRING,
|
||||||
|
"Surname",
|
||||||
|
"surname");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
LinkedHashMap<String, StatisticalType> map = new LinkedHashMap<String, StatisticalType>();
|
||||||
|
|
||||||
|
map.put("Name", n);
|
||||||
|
|
||||||
|
map.put("Surname", s);
|
||||||
|
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("name: " + name);
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug("surname: " + surname);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
package org.gcube.dataaccess.algorithms.examples;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class TestSimpleAlg {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
System.out.println("TEST 1");
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(testConfigLocal());
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
trans.get(0).getOutput();
|
||||||
|
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testConfigLocal() {
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
config.setAgent("TEST_ALG");
|
||||||
|
|
||||||
|
// AlgorithmConfiguration config=new AlgorithmConfiguration();
|
||||||
|
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
package org.gcube.dataaccess.algorithms.examples;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.interfaces.ComputationalAgent;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.processing.factories.TransducerersFactory;
|
||||||
|
import org.gcube.dataanalysis.ecoengine.test.regression.Regressor;
|
||||||
|
|
||||||
|
public class TestTransducers {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
System.out.println("TEST 1");
|
||||||
|
List<ComputationalAgent> trans = null;
|
||||||
|
trans = TransducerersFactory.getTransducerers(testConfigLocal());
|
||||||
|
trans.get(0).init();
|
||||||
|
|
||||||
|
|
||||||
|
Regressor.process(trans.get(0));
|
||||||
|
trans.get(0).getOutput();
|
||||||
|
|
||||||
|
trans = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AlgorithmConfiguration testConfigLocal() {
|
||||||
|
|
||||||
|
AlgorithmConfiguration config = Regressor.getConfig();
|
||||||
|
|
||||||
|
// AlgorithmConfiguration config=new AlgorithmConfiguration();
|
||||||
|
|
||||||
|
|
||||||
|
config.setConfigPath("./cfg");
|
||||||
|
|
||||||
|
config.setParam("DatabaseName", "Obis2Repository");
|
||||||
|
config.setParam("DatabaseUserName","postgres");
|
||||||
|
config.setParam("DatabasePassword","0b1s@d4sc13nc3");
|
||||||
|
config.setParam("databaseNamebaseDriver","org.postgresql.Driver");
|
||||||
|
config.setParam("DatabaseURL", "jdbc:postgresql://obis2.i-marine.research-infrastructures.eu:5432/obis");
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("config: " + config.getParam("DatabaseUserName"));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// System.out.println(config.getDatabaseURL());
|
||||||
|
|
||||||
|
config.setAgent("LISTNAMES_TABLES");
|
||||||
|
|
||||||
|
config.setParam("longitudeColumn", "decimallongitude");
|
||||||
|
config.setParam("latitudeColumn", "decimallatitude");
|
||||||
|
config.setParam("recordedByColumn", "recordedby");
|
||||||
|
config.setParam("scientificNameColumn", "scientificname");
|
||||||
|
config.setParam("eventDateColumn", "eventdate");
|
||||||
|
config.setParam("lastModificationColumn", "modified");
|
||||||
|
config.setParam("OccurrencePointsTableName", "whitesharkoccurrences2");
|
||||||
|
config.setParam("finalTableName", "whitesharkoccurrencesnoduplicates");
|
||||||
|
config.setParam("spatialTolerance", "0.5");
|
||||||
|
config.setParam("confidence", "80");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue